cpu缓存一般分为 CPU缓存( 四 )


在P4处理器中使用了一种先进的一级指令Cache——动态跟踪缓存 。 它直接和执行单元及动态跟踪引擎相连 , 通过动态跟踪引擎可以很快地找到所执行的指令 , 并且将指令的顺序存储在追踪缓存里 , 这样就减少了主执行循环的解码周期 , 提高了处理器的运算效率 。
以前的L2 Cache没集成在CPU中 , 而在主板上或与CPU集成在同一块电路板上 , 因此也被称为片外Cache 。 但从PⅢ开始 , 由于工艺的提高L2 Cache被集成在CPU内核中 , 以相同于主频的速度工作 , 结束了L2 Cache与CPU大差距分频的历史 , 使L2 Cache与L1 Cache在性能上平等 , 得到更高的传输速度 。 L2Cache只存储数据 , 因此不分数据Cache和指令Cache 。 在CPU核心不变化的情况下 , 增加L2 Cache的容量能使性能提升 , 同一核心的CPU高低端之分往往也是在L2 Cache上做手脚 , 可见L2 Cache的重要性 。 现在CPU的L1 Cache与L2 Cache惟一区别在于读取顺序 。
3、读取命中率
CPU在Cache中找到有用的数据被称为命中 , 当Cache中没有CPU所需的数据时(这时称为未命中) , CPU才访问内存 。 从理论上讲 , 在一颗拥有2级Cache的CPU中 , 读取L1 Cache的命中率为80% 。 也就是说CPU从L1 Cache中找到的有用数据占数据总量的80% , 剩下的20%从L2 Cache读取 。 由于不能准确预测将要执行的数据 , 读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%) 。 那么还有的数据就不得不从内存调用 , 但这已经是一个相当小的比例了 。 在一些高端领域的CPU(像Intel的Itanium)中 , 我们常听到L3 Cache , 它是为读取L2 Cache后未命中的数据设计的—种Cache , 在拥有L3 Cache的CPU中 , 只有约5%的数据需要从内存中调用 , 这进一步提高了CPU的效率 。
为了保证CPU访问时有较高的命中率 , Cache中的内容应该按一定的算法替换 。 一种较常用的算法是“最近最少使用算法”(LRU算法) , 它是将最近一段时间内最少被访问过的行淘汰出局 。 因此需要为每行设置一个计数器 , LRU算法是把命中行的计数器清零 , 其他各行计数器加1 。 当需要替换时淘汰行计数器计数值最大的数据行出局 。 这是一种高效、科学的算法 , 其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache , 提高Cache的利用率 。 缓存技术的发展
总之 , 在传输速度有较大差异的设备间都可以利用Cache作为匹配来调节差距 , 或者说是这些设备的传输通道 。 在显示系统、硬盘和光驱 , 以及网络通讯中 , 都需要使用Cache技术 。 但Cache均由静态RAM组成 , 结构复杂 , 成本不菲 , 使用现有工艺在有限的面积内不可能做得很大 , 不过 , 这也正是技术前进的源动力 , 有需要才有进步!
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器 , 它的容量比内存小的多但是交换速度却比内存要快得多 。 缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾 , 因为CPU运算速度要比内存读写速度快很多 , 这样会使CPU花费很长时间等待数据到来或把数据写入内存 。 在缓存中的数据是内存中的一小部分 , 但这一小部分是短时间内CPU即将访问的 , 当CPU调用大量数据时 , 就可避开内存直接从缓存中调用 , 从而加快读取速度 。 由此可见 , 在CPU中加入缓存是一种高效的解决方案 , 这样整个内存储器(缓存 内存)就变成了既有缓存的高速度 , 又有内存的大容量的存储系统了 。 缓存对CPU的性能影响很大 , 主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的 。
缓存的工作原理是当CPU要读取一个数据时 , 首先从缓存中查找 , 如果找到就立即读取并送给CPU处理;如果没有找到 , 就用相对慢的速度从内存中读取并送给CPU处理 , 同时把这个数据所在的数据块调入缓存中 , 可以使得以后对整块数据的读取都从缓存中进行 , 不必再调用内存 。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。