容量小速度快—小缓存里的大学问

本文详细介绍了高速缓存(cache)的基本原理及其在CPU中的应用。包括缓存的分类、读取机制、命中率等关键概念,并探讨了不同级别的缓存如何协同工作以提高CPU效率。
  高速缓冲存储器cache是位于cpu与内存之间的临时存储器,它的容量比内存小但交换速度快.在cache中的数据是内存中的一小部分,但这一小部分是短时间内cpu即将访问的,当cpu调用大量数据时,就可避开内存直接从cache中调用,从而加快读取速度.由此可见,在cpu中加入cache是一种高效的解决方案,这样整个内存储器(cache+内存)就变成了既有cache的高速度,又有内存的大容量的存储系统了.cache对cpu的性能影响很大,主要是因为cpu的数据交换顺序与cpu与cache间的带宽引起的. 

   高速缓存的工作原理

  1.读取顺序

  cpu要读取一个数据时,首先从cache中查找,如果找到就立即读取并送给cpu处理;如果没有找到,就用相对慢的速度从内存中读取并送给cpu处理,同时把这个数据所在的数据块调入cache中,可以使得以后对整块数据的读取都从cache中进行,不必再调用内存.

  正是这样的读取机制使cpu读取cache的命中率非常高(大多数cpu可达90%左右),也就是说cpu下一次要读取的数据90%都在cache中,只有大约10%需要从内存读取.这大大节省了cpu直接读取内存的时间,也使cpu读取数据时基本无需等待.总的来说,cpu读取数据的顺序是先cache后内存.

  2.缓存分类

  前面是把cache作为一个整体来考虑的,现在要分类分析了. 

  在以往的观念中,l1cache是集成在cpu中的,被称为片内cache.在l1中还分数据cache(i-cache)与指令cache(d-cache).它们分别用来存放数据与执行这些数据的指令,而且两个cache可以同时被cpu访问,减少了争用cache所造成的冲突,提高了处理器效能.  

  在p4处理器中使用了一种先进的一级指令cache——动态跟踪缓存.它直接与执行单元及动态跟踪引擎相连,通过动态跟踪引擎可以很快地找到所执行的指令,并且将指令的顺序存储在追踪缓存里,这样就减少了主执行循环的解码周期,提高了处理器的运算效率.

  以前的l2cache没集成在cpu中,而在主板上或与cpu集成在同一块电路板上,因此也被称为片外cache.但从pⅲ开始,由于工艺的提高l2cache被集成在cpu内核中,以相同于主频的速度工作,结束了l2cache与cpu大差距分频的历史,使l2cache与l1cache在性能上平等,得到更高的传输速度.l2cache只存储数据,因此不分数据cache与指令cache.在cpu核心不变化的情况下,增加l2cache的容量能使性能提升,同一核心的cpu高低端之分往往也是在l2cache上做手脚,可见l2cache的重要性.现在cpu的l1cache与l2cache惟一区别在于读取顺序.

  3.读取命中率

  cpu在cache中找到有用的数据被称为命中,当cache中没有cpu所需的数据时(这时称为未命中),cpu才访问内存.
从理论上讲,在一颗拥有2级cache的cpu中,读取l1cache的命中率为80%.也就是说cpu从l1cache中找到的有用数据占数据总量的80%,剩下的20%从l2cache读取.由于不能准确预测将要执行的数据,读取l2的命中率也在80%左右(从l2读到有用的数据占总数据的16%).那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了.在一些高端领域的cpu(像intel的itanium)中,我们常听到l3cache,它是为读取l2cache后未命中的数据设计的—种cache,在拥有l3cache的cpu中,只有约5%的数据需要从内存中调用,这进一步提高了cpu的效率.

  为了保证cpu访问时有较高的命中率,cache中的内容应该按一定的算法替换.一种较常用的算法是“最近最少使用算法”(lru算法),它是将最近一段时间内最少被访问过的行淘汰出局.因此需要为每行设置一个计数器,lru算法是把命中行的计数器清零,其他各行计数器加1.当需要替换时淘汰行计数器计数值最大的数据行出局.这是一种高效.科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出cache,提高cache的利用率.

  缓存技术的发展

  总之,在传输速度有较大差异的设备间都可以利用cache作为匹配来调节差距,或者说是这些设备的传输通道.在显示系统.硬盘与光驱,以及网络通讯中,都需要使用cache技术.但cache均由静态ram组成,结构复杂,成本不菲,使用现有工艺在有限的面积内不可能做得很大,不过,这也正是技术前进的源动力,有需要才有进步!


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-417684/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-417684/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值