计算机组成原理教案
速度。多体交叉存储器就是基于这种思想提出来的。
存储器地址交叉的方式:采用模除的方法,即二进制地址的低位表示该单元所在的模块。 多模块交叉存储器存取时间的定量分析:公式,公式。
在二模块交叉存储器实例中,主存储器按字节编址,而不是按字编址。
注意四个字节允许信号。
3.4.3 相联存储器
相联存储器的特点:按内容寻址
相联存储器的组成:
在计算机系统中,相联存储器主要用于虚拟存储器中存放分段表、页表和快表;在高速缓冲存储器中,相联存储器作为存放从主存调入快存的页面单元地址之用。这是因为,在这两种应用中,都需要快速查找。具体可参考下节内容:Cache存储器。
3.5 Cache存储器
3.5.1 Cache基本原理
Cache是为了解决CPU和主存之间速度匹配问题而采用的一项重要技术。它的存取速度要比主存快,由高速的SRAM组成,全部功能由硬件实现,保证了其高速度。Cache与存储系统的关系见。
Cache除了有SRAM外,还要有控制逻辑。
注意:Cache与主存之间数据交换的单位是“块”。
Cache的基本操作方式:CPU首先在Cache中进行比较(可使用相联存储器),若Cache中有要访问的数据,则无需访存,若没有在进行主存读写,同时,把该数据所在的块复制到Cache中。
Cache的这种操作是基于程序执行的局部性原理,程序的局部性包括时间局部性、空间局部性等,例如,循环程序。具体内容可参考操作系统中的存储管理。
几个计算公式:命中率的计算,存储系统的平均访问时间,访问效率。
3.5.2 主存与Cache的地址映射
由于Cache比主存小的多,因此必须使用一种机制将主存地址定位到Cache中,即地址映射。这个映射过程全部由硬件实现,对程序员透明。
映射的三种方式:
全相联:灵活,不易产生冲突。其缺点是比较电路难于实现,且效率低,速度慢。 直接映射:硬件简单,成本低,但容易产生冲突,不能有效利用Cache空间。 组相联:结合上面两种的优点。
3.5.3 替换策略
当使用全相联和组相联方式时,就会使用到替换策略或是替换算法。
较为简单的替换算法有FIFO,但其效果不是很好,不符合程序的局部性原则,经常出现所谓的“颠簸” 现象。
常用的替换算法有如下三种:
最不经常使用(LFU)算法:这种算法将计数周期限定在对这些特定行两次替换之间的时间间隔内,因而不能严格反映近期访问情况。没有考虑对新调入行的处理,因为新调入行的计数值小,容易被替换出去。
近期最少使用(LRU)算法:目前使用较多的一种策略,能够有效的提高命