文档介绍:低功耗 cache 现状 Cache 低功耗结构设计技术现状一. 概述纵观计算机系统和微处理器的发展, 随着半导体加工工艺水平的不断提高, CPU 和存储器的性能都有了很大的提高。 CPU 频率的提高,必然要求系统中存储器的存取速度要提高, 还要求其容量要增大。主存储器 DRA M 容量的提高还是比较快的, 但是 DRAM 读取时间的提高却很慢。从而在速度上与 CPU 主频的提高产生了极不相配的情况, 这样会影响整个系统的性能。 CPU 设计的问题之一就是解决高速 CPU 和低速 DRAM 之间的平衡或匹配问题,以求系统性能的整体提高。在它们之间加入高速缓冲存储器 Cache ,就是这个问题的解决方案之一。 1) Cache 的工作原理从分级存储器体系结构来看, 系统执行程序时, 被访问的数据从下向上移动,当该数据被上移的新数据替换时,便又向下移动。一般来说,某级存储器中的数据是存储在下一级上数据的一个子集。 Cache 的存储区划分成行( line ) ,也称为块( block ) ,它与下一级存储器之间以块为单位交换信息。若 CPU 发出读请求,并且 cache 中相应数据存在,就可以从 cache 中读出, 这称为命中( hit ), 否则称为未命中或缺失( miss )。当 CPU 要访问的数据不在 cache 中,系统将把包括相应数据的一块从下一级存储器读入 cache 中。如果此时 cache 已满,则需要决定将 cache 中某一块移出去,判定哪一块移出需要一种判断规则,称为替换算法。如果 CPU 执行写操作, 数据需要改变 cache 和下级存储器中所有相应单元中的数据,这时有两种处理方法:一种是 cache 和下级存储器中数据同时被修改,称为通写法( write through ) ;另一种方法是只修改 cache 中的数据,只有在 cache 中相应块被替换出去时才将其写到下级存储器中, 这称为回写法( write back )。 2) Cache 的组织形式 Cache 的设计需要考虑很多结构上的问题,如数据在那里查找,查找的方式如何以及 cache 块应该存在 cache 中的什么位置等等,这与 cach e 的组织形式有关。 Cache 中的数据块与主存之中的数据块的对应关系由其采用的映象方式决定。而程序代码和数据也有两种存放方式, 一种是将指令和数据分别存放在两个独立的 cache 中( 分离式 cache ): 指令 cache ( instruction cache , I-cache ) 和数据 cache ( data cache , D-cache ) 分离; 另一种是将指令和数据共同存放在一个公用 cache 中(合一式 cache ) 。在 cache 中查找和存储数据,既可以使用虚地址(虚 cache ) ,也可以使用实地址(实 cache )。 Cache 的映象方式决定了 cache 的基本布局,一般包括直接映象、全相联映象和组相联映象,其它映象方式不过是此三种方式的延伸。直接映象 cache 是结构最简单的 cache , 存储器的地址唯一地确定了用于存放存储器数据块的 cache 组( set ) ,即任意一个存储器数据块只能放在 cache 的一个固定位置上。其优点是每次 cache 访问只需进行一次标签比较, 因此节省大量复杂的全同比较线路, 可提高时钟速度。由于任意一个主存块只能放在 cache 的一个固定的组上,因此直接映象 cache 无需替换算法从而简化了 cache 设计。它的缺点是如果两个被频繁访问的主存块映象到同一位置, 便会产生冲突( conflict ), 或颠簸( thrashing ), 其原因是将地址映象到 cach e 块时, 并未使用该地址的标签字段, 因此, 如果两个地址的差别仅在于它们的标签字段, 对它们进行映象时就会互相冲突。因此, 和其他映象方式相比,直接映象 cache 的命中率较低。全相联映象方式下,主存的任意一块数据都可以放到 cache 的任意一行上。它的优点是命中率较高, 可以避免冲突现象。它的缺点是需要同时对所有块的标签字段进行匹配比较, 因而需要价格昂贵的 CAM ( 相联存储器)来实现,而且访问速度要低于直接映象 cache 。此外,为提高全相联 cache 的命中率, 需采用合适的替换算法, 这也将增加 cache 结构的复杂度。组相联映象方式是前两种映象方式的折中,它将 cache 和主存各分成若干大小相同的组( set ), 主存和 cache 的组数相等, 称每个 cache 组内所包含的每一块称为一路( way )。主存组号与 cache 组号一一对应, 亦即组间采用直接映象方式。主存组内一个数据块可以放到 c