电脑的内存条包含内容?:如何排除电脑故障( 二 )



高速缓冲存储器Cache是位于CPU与内存之间的姑且存储器,它的容量比内存小但互换速度快 。在Cache

中的数据是内存中的一小部分,但这一小部分是短期内CPU行将拜候的,当CPU调用大量数据时,就可

避开内存直接从Cache中调用,从而加快读取速度 。由此可见,在CPU中加入Cache是一种高效的解决方

案,这样整个内存储器(Cache 内存)就变成了既有Cache的高速度,又有内存的大容量的存储体系了 。

Cache对CPU的性能影响很大,首要是因为CPU的数据互换顺序和CPU与Cache间的带宽引起的 。

高速缓存的工作原理

1.读取顺序

CPU要读取1个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到

,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据地点的数据块调入Cache中,可以使

得往后对整块数据的读取都从Cache中进行,没必要再调用内存 。

正是这样的读取机制使CPU读取Cache的命中率非常高(大部分数CPU可达90%左右),也就是说CPU下一

次要读取的数据90%都在Cache中,只有大约10%需要从内存读取 。这大大节省了CPU直接读取内存的时间

,也使CPU读取数据时基本无需等待 。总的来讲,CPU读取数据的顺序是先Cache后内存 。

2.缓存分类

前边是把Cache作为1个整体来思量的,现在要分类阐发了 。Intel从Pentium开始将Cache分开,通

常分为一级高速缓存L1和二级高速缓存L2 。

在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache 。在L1中还分数据Cache(I-Cache)

和指令Cache(D-Cache) 。它们别离用来储存安放数据和执行这些个数据的指令,并且两个Cache可以同时被CPU

拜候,减少了争用Cache所造成的冲突,提高了处理器效能 。

在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%) 。那么还有的数据就

不得不从内存调用,但这已经是1个相当小的比例了 。在一些高端领域的CPU(像Intel的Itanium)中,

我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据预设的―种Cache,在拥有L3 Cache的CPU中

,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率 。

为了保证CPU拜候时有较高的命中率,Cache中的内容应该按一定的算法替代 。一种较常用的算法是

推荐阅读