存储器层次结构

        本文主要是对《深入理解计算机系统》第6章存储层次结构的总结。

一、主存的访问

        总线结构:

        

        a. CPU执行读内存指令

             movl A, %eax  地址A的内容被加载到寄存器%eax中。CPU芯片上称为总线接口(bus interface)的电路发起总线上的读事务。读事务由三个步骤组成的。首先,CPU将地址A放到系统总线上。I/O桥将信号传递到存储器总线。其次,主存感觉到存储器总线上的地址信号,从存储器总线读地址,从DRAM取出数据字,并将数据写到存储器总线。I/O桥将存储器总线信号翻译成系统总线信号,然后沿着系统总线传递。最后,CPU感觉到系统总线上的数据,从总线上读数据,并将数据拷贝到寄存器%eax。

        b. CPU执行写内存指令

             movl %eax,  A 寄存器%eax的内容被写到地址A,CPU发起写事务。同样,有三个基本步骤。首先CPU将地址放到系统总线上。存储器从存储器总线读出地址,并等待数据到达。其次,CPU将%eax中的数据字拷贝到系统总线。最后,主存从存储器总线读出数据字,并将这些位存储到DRAM中。


二、磁盘的访问

       总线结构:

       

             读一个磁盘扇区的流程:

             (1).

                     

             (2)

                           

                   (3).

                                


     三、局部性

           a. 时间局部性

           b. 空间局部性

           c. 读数据和取指令的局部性

            简单原则:

            1).  重复引用同一个变量的程序有良好的时间局部性。

            2).  对于步长位k的引用模式的程序,步长越小,空间局部性越好。具有步长位1的引用模式的程序具有很好的空间局部性。在存储器中以大步长跳来跳去的程序空间局部                性会很差

            3). 对于取指令来说,循环有好的时间和空间局部性。循环体越好,循环迭代次数越多,局部性越好。


     四、高速缓存

            结构图:

             

             编程时要充分利用时间和空间局部性原理。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值