Cache在POWERPC处理器板中的应用
扫描二维码
随时随地手机看文章
摘要:高速缓冲存储器Cache技术是现代处理器设计中的核心技术,文中详细讨论了Cache如何应用在POWERPC计算机板中。
关键词:L1Cache;L2Cache;主存;命中率
Gibson提出高速缓存存储器(Cache)技术后,1969年首先在IBM360/80计算机上得以实现这种技术。现在,这一技术不仅为大、中型计算机而且也为小型、微型计算机广泛采用。解决主存与CPU的速度差异问题的技术措施有多种,设置Cache是提高存储系统速度一个有效方法。 Cache是介于主存和CPU之间、速度数倍于主存而容量较小的快速存储器,它的作用是使CPU能使用一个速度与CPU相当,而容量与主存相同的存储系统。使用这种方法可使微机系统在成本增加不大的前提下性能得到较大提高。
一般的处理器中只有一级Cache,它与主存储器构成一个两级的存储系统。一些高性能的处理器都采用两级Cache,第一级Cache在CPU内部,容量很小,速度很快;第二级Cache在主板上,容量较大,速度比第一级低5倍左右。
Cache与主存储器相比容量较小,它所保存的信息只是主存内容的一个子集。特别要注意的是,CPU与Cache之间的信息交换以“字”为单位,而Cache与主存之间的信息交换是以“块”为单位,一个块由若干字组成,是定长的。块的大小通常取一个主存周期所访问到的字节数。
当CPU试图读取主存一个字时,发出此字内存地址到Cache和主存,此时Cache控制逻辑依据地址进行判断此字当前是否在Cache中。若是,此字立即递交给CPU,否则,要用主存读取周期把这个字从主存读出送到CPU,与此同时把含有这个字的整个数据块从主存读出送到Cache中。由于程序的存储器访问具有局部性,当为满足一次访问需求而取来一数据块时,下面的多次访问很可能读取此块中的其他字。
1 局部性原理和命中率
对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,程序对存储器的访问不是任意的、随机的,而是对某一局部范围的存储器地址频繁访问,对此范围以外地址则访问很少,这就是程序访问的局部性。根据程序的局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。CPU访问存储器时,首先检查Cache,如果访问的数据在Cache中,则CPU就能很快完成访问,这种情况称之命中。命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的命中率决定于Cache容量、Cache控制算法和Cache的结构。设计较好的Cache系统,命中率应存90%以上。至于没有命中的数据,CPU只好直接从主存中获取,同时也把它复制到Cache中,以备下次访问。
2 Cache一致性与写策略
在由Cache和主存储器共同构成的Cache存储系统中,从工作原理可知,CPU只对Cache某行信息进行修改,而主存储器内容却没有修改,而其他的主控者(处理器、I/O控制器等)全由主存储器得到过时的信息。同样,若其他主控者修改主存储器信息,而Cache却没有得到修改相应行的通知,CPU会由Cache得到过时的信息。这两方面都会导致Cache与主存容不一致,也就是Cache的一致性问题。
为了维护Cache的一致性必须从两方面入手,一方面涉及到处理器所采用的Cache写策略,另一方面涉及到处理器所采用的Cache一致性协议。
2.1 写直达法(Write—Through)
中文译名称为写贯通法。顾名思义,它的做法是当Cache写命中,Cache与主存同时发生写修改。这种策略显然较好地维护了Cache与主存的内容一致性,但这并不等于说全部解决一致性问题。例如在多处理器系统中各CPU都有自己的Cache,一个主存块若在多个Cache中都有一份拷贝的话,某个CPU以写直达法来修改它的Cache和主存时,其他Cache中的原拷贝就过时了。即使在单处理器系统中,也有I/O设备不经过Cache向主存写入的情况。
2.2 写回法(Write—Back)
当CPU对Cache写命中时,只修改Cache的内容不立即写入主存,只当此行被换出时才写回主存。这种策略使Cache在CPU-主存之间,不仅在读方向而且在写方向上都起到高速缓存作用。对一Cache行的多次写命中都在Cache中快速完成修改,只是需要替换时才写回主存,减少了访问主存的次数从而提高了效率。
2.3 写一次法(Write—Once)
写一次法是一种基于写回法又结合了写直达法的写策略,即写命中和写未命中的处理与写回法基本相同,只是第一次写命中时要同时写入主存。这种方法主要用于某些处理器的片内Cache。
L1Cache在POWERPC中的使用MPC755处理器内部Cache的执行有以下特点:
分别有两个32-Kbyte的数据和指令Cache;
指令和数据Cache有8种设置联系方式;
Cache的地址是物理寻址的,物理地址的标签储藏在Cache的地址录中;
每一种Cache的打开与设置,可以通过设置寄存器HID0和特殊的寄存器SPR来设置。
2.4 在POWERPC处理器中设置Cache
在Memory中设置WIMG。其中,WIM改变是在页表方式和块方式下进行改变和设置的。
配置MMU寄存器,对MMU寄存器的块模式进行配置。
配置HID0寄存器的Cache管理化。
3 L2Cache在POWERPC中的使用
PPC755配置成1M的L2Cache,如下图。
3.1 L2Cache的初始化
清除L2CR的L2E,L2CR地址为“1017”;
设置L2CR的参数;
置 L2CR[L2I]位,执行L2Cahe的global_invalidata动作;
判 L2CR[IP]位,如果为“1”,则表示global_invalidata动作完成,否则继续判,直到变为“1”;
如果 L2CR[IP]位变为“1”,则清除L2CR[L2I]位;
使能 L2Cache,设置L2CR[L2E]位为“1”。
3.2 2Cache有效性测试
在原有程序基础上,初始化L2Cache,使能L1Cache和L2Cache;
运行某段程序(或任务),通过设置输出离散量的高低电平,观察示波器波形长短,来判断L2Cache的有效性。
4 结束语
在计算机系统中,Cache技术有效地解决了处理器和存储器速度问不匹配问题。通过对POWERPC处理器L1Cache与L2Cache的使用,使POW ERPC处理器的性能得到了很大的提高。