免费注册 找回密码     

查看: 2186|回复: 0
打印 上一主题 下一主题

浅析CPU二级缓存容量对CPU性能的影响

[复制链接]

8776

主题

9753

帖子

1万

积分

金牌会员

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

跳转到指定楼层
1
发表于 2012/2/14 23:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现代桌面级PC的CPU二级缓存容量大多数在64KB到2MB之间。因为CPU二级缓存容量对CPU性能有不小的影响,所以低端CPU和中高端CPU在物理结构上的差异主要就是二级缓存容量的大小。那么二级缓存容量为什么如此重要?它对CPU性能有什么样的影响呢?<BR><BR>  CPU二级缓存作为一级缓存的“后备仓库”,用于为一级缓存存储更多的数据,减少CPU直接访问内存&nbsp;的次数。理论上,CPU访问并调用缓存的数据所占的比重越大,则CPU访问并调用内存的数据所占的比重就越小,那么因访问内存而耽误的时间&nbsp;就越少。所以缓存的容量越大,CPU的实际效率也就越高,性能就越强。<BR><BR>  实际上,在52硬件上讲到,现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。因为CPU读取的&nbsp;数据(包括指令)中有80%的数据来自一级缓存,所以一级缓存的逻辑结构决定了CPU二级缓存容量对CPU性能的影响。Intel的Pentium&nbsp;4及Celeron系列处理器的一级数据缓存被称为“数据代码指令追踪(读写)缓存”;AMD的Athlon&nbsp;64/Athlon&nbsp;XP/Sempron/Duron系列处理器&nbsp;的一级数据缓存叫作“实数据读写缓存”。<BR><BR>  这两类CPU一级缓存不同的逻辑结构有什么不同?下面,我用一个例子来描述。<BR><BR>  假设有一个运算任务,要从“1”一直递加到“999999”。在传统的“实数据读写缓存”架构下,这一系列数据中最先用到的数据(如&nbsp;“1、2……449、450”)将存储在CPU一级数据缓存中,更多的数据(如“451、452……899999、900000”)存储在CPU二级缓存中,其余的数&nbsp;据(如“900001、999002……999998、999999”)暂存在内存中,CPU将按照一级数据缓存、二级缓存和内存的顺序读取这些数据。<BR><BR>  传统的一级数据缓存的存储方式<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>  但是在“数据代码指令追踪缓存”架构的CPU中,一级数据缓存并不存储这些最先用到的数据(“1、2……449、450”),而是将这些&nbsp;数据存储到二级缓存中,一级数据缓存仅仅存储这些数据在二级缓存中的起止地址(又称为:指令代码)。例如,数据“1、2……449、450”&nbsp;顺序存储在二级缓存中,数据“1”所在地址为“00001F”,数据“450”&nbsp;所在地址为“00451F”,实际上一级数据缓存只需要存储“00001F”和“00451F”这两个地址就可以了,而不需要存储大量的数据。<BR><BR>  “数据代码指令追踪缓存”架构的一级数据缓存的存储方式<BR>  <BR>  但是由于其一级数据缓存不存储数据,数据存储在二级缓存中,因此对二级缓存容量的依赖非常大,所以CPU需要更大的二级缓存容量&nbsp;才能发挥出应有的性能。在实际应用中,CPU处理的数据中大多数都是0KB~128KB大小的数据,128KB~256KB的数据约有10%,256KB~512KB的&nbsp;数据有5%,512KB~1MB的数据仅有3%左右。所以对于这种CPU来说,二级缓存容量从0KB增加到256KB对CPU性能的提高几乎是直线性的;增加&nbsp;到512KB对CPU性能的提高稍微小一些;从512KB增加到1MB,普通用户就很难体会到CPU性能有提高了。正因为如此,大家能感受到Pentium&nbsp;4&nbsp;C(512KB二级缓存)与Celeron(128KB二级缓存)的性能差异,却很难感受到Pentium&nbsp;4&nbsp;C(512KB二级缓存)与Pentium&nbsp;4&nbsp;E(1MB二级缓存)的性能差异了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|兴宁A8 ( 粤ICP备17110913号 粤公网安备44140202000139号)  

GMT+8, 2024/11/25 04:31

© 兴宁A8

手机绑定 兴宁A8支持手机、电脑、平板一站式访问!

快速回复 返回顶部 返回列表