cpu中的一级缓存是什么

2017-05-12

爱学习的小伙伴们,你们知道cpu中一级缓存是什么吗?不知道的话跟着小编一起来学习cpu中一级缓存。

cpu中的一级缓存介绍

一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小。

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。

分类

一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB+64KB来表示,其余的CPU的一级缓存表示方法以此类推。

数据缓存设计

根据工作原理的不同,目前主流处理器所采用的一级数据缓存又可以分为实数据读写缓存和数据代码指令追踪缓存2种,它们分别被AMD和Intel所采用。

二级缓存

提到二级缓存容量的差距,还得从两大CPU巨头对一级缓存的理解说起。对,没看错,就是平常曝光率远逊于二级缓存的“一级缓存”!它才是造成上面提到巨大差异的“罪魁祸首”。

现今的CPU中,Intel对一级缓存的理解是“数据代码指令追踪缓存”,即是说一级缓存中存储的其实只是二级缓存中数据和指令的地址,而不是这些数据和指令的复制。二级缓存的容量相当程度上影响了IntelCPU的性能。

相比之下,AMD对一级缓存的定位是“实数据读写缓存”,即二级缓存中的一部分数据都要在一定的规则下搬到一级缓存中。

不仅在一级缓存的工作方式上有区别,而且AMD的CPU在一级缓存的大小上还占有优势,以AMDAthlon64X26000+AM2(盒)为例,两个内核各配备64KB数据高速缓存、64KB指令高速缓存。而价格稍高的IntelCore2DuoE6320(三年盒),两个内核各配备32KB数据高速缓存、32KB指令高速缓存。

当然,上面只是Intel的AMD的CPU二级缓存巨大差异的主要原因。事实上CPU对二级缓存容量的“敏感”与否还受到诸如内存控制器,流水线长度、频率、总线架构和指令集等等多方面的影响。在多核CPU中还关乎各个物理内核之间的数据交换问题。

c

更多相关阅读

最新发布的文章