当前位置: 移动技术网 > 科技>硬件教程>cpu > 浅析CPU二级缓存容量对CPU性能的影响

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

2020年09月20日  | 移动技术网科技  | 我要评论
浅析CPU二级缓存容量对CPU性能的影响  现代桌面级PC的CPU二级缓存容量大多数在64KB到2MB之间。因为CPU二级缓存容量对CPU性能有不小的影响,所以低端CPU和中高端CPU在物理结构上的差异主要就是二级缓存容量的大小。那么... 09-04-21
  现代桌面级pc的cpu二级缓存容量大多数在64kb到2mb之间。因为cpu二级缓存容量对cpu性能有不小的影响,所以低端cpu和中高端cpu在物理结构上的差异主要就是二级缓存容量的大小。那么二级缓存容量为什么如此重要?它对cpu性能有什么样的影响呢?

  cpu二级缓存作为一级缓存的“后备仓库”,用于为一级缓存存储更多的数据,减少cpu直接访问内存 的次数。理论上,cpu访问并调用缓存的数据所占的比重越大,则cpu访问并调用内存的数据所占的比重就越小,那么因访问内存而耽误的时间 就越少。所以缓存的容量越大,cpu的实际效率也就越高,性能就越强。

  实际上,在移动技术网上讲到,现在intel和amd处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对cpu性能的影响也不尽相同。因为cpu读取的 数据(包括指令)中有80%的数据来自一级缓存,所以一级缓存的逻辑结构决定了cpu二级缓存容量对cpu性能的影响。intel的pentium 4及celeron系列处理器的一级数据缓存被称为“数据代码指令追踪(读写)缓存”;amd的athlon 64/athlon xp/sempron/duron系列处理器 的一级数据缓存叫作“实数据读写缓存”。

  这两类cpu一级缓存不同的逻辑结构有什么不同?下面,我用一个例子来描述。

  假设有一个运算任务,要从“1”一直递加到“999999”。在传统的“实数据读写缓存”架构下,这一系列数据中最先用到的数据(如 “1、2……449、450”)将存储在cpu一级数据缓存中,更多的数据(如“451、452……899999、900000”)存储在cpu二级缓存中,其余的数 据(如“900001、999002……999998、999999”)暂存在内存中,cpu将按照一级数据缓存、二级缓存和内存的顺序读取这些数据。

  传统的一级数据缓存的存储方式

  但是在“数据代码指令追踪缓存”架构的cpu中,一级数据缓存并不存储这些最先用到的数据(“1、2……449、450”),而是将这些 数据存储到二级缓存中,一级数据缓存仅仅存储这些数据在二级缓存中的起止地址(又称为:指令代码)。例如,数据“1、2……449、450” 顺序存储在二级缓存中,数据“1”所在地址为“00001f”,数据“450” 所在地址为“00451f”,实际上一级数据缓存只需要存储“00001f”和“00451f”这两个地址就可以了,而不需要存储大量的数据。

  “数据代码指令追踪缓存”架构的一级数据缓存的存储方式
  
  但是由于其一级数据缓存不存储数据,数据存储在二级缓存中,因此对二级缓存容量的依赖非常大,所以cpu需要更大的二级缓存容量 才能发挥出应有的性能。在实际应用中,cpu处理的数据中大多数都是0kb~128kb大小的数据,128kb~256kb的数据约有10%,256kb~512kb的 数据有5%,512kb~1mb的数据仅有3%左右。所以对于这种cpu来说,二级缓存容量从0kb增加到256kb对cpu性能的提高几乎是直线性的;增加 到512kb对cpu性能的提高稍微小一些;从512kb增加到1mb,普通用户就很难体会到cpu性能有提高了。正因为如此,大家能感受到pentium 4 c(512kb二级缓存)与celeron(128kb二级缓存)的性能差异,却很难感受到pentium 4 c(512kb二级缓存)与pentium 4 e(1mb二级缓存)的性能差异了。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网