網際論壇 - 硬體技術交流 - 〔分享〕CPU二级缓存与CPU性能
» 遊客:  註冊 | 登錄 | 會員 | 幫助
 

免費線上小說
動漫分類 : 最新上架熱門連載全本小說最新上架玄幻奇幻都市言情武俠仙俠軍事歷史網游競技科幻靈異 ... 更多小說

作者:
標題: 〔分享〕CPU二级缓存与CPU性能 上一主題 | 下一主題
  supmax
  進階會員 
 



  積分 2370
  發文 20
  註冊 2010-11-18
  狀態 離線
#1  〔分享〕CPU二级缓存与CPU性能

随着45NM制程CPU的普及,CPU的二级缓存也增至4MB、6MB甚至是8MB。在CPU的频率相同的情况下,二级缓存对于CPU性能的影响还是是相当大的。那么二级缓存对与CPU的性能有多大影响呢?  CPU的缓存是CPU和内存通信的中转站,而二级缓存作为一级缓存的“后备仓库”,用于为一级缓存存储更多的数据,减少CPU直接访问内存的次数。CPU访问并调用缓存的数据所占的比重越大,则CPU访问并调用内存的数据所占的比重就越小,那么因访问内存而耽误的时间就越少。所以理论上而言CPU二级缓存越大,CPU的实际效率也就越高,性能就越强。
  实际上,现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。因为CPU读取的数据(包括指令)中有80%的数据来自一级缓存,所以一级缓存的逻辑结构决定了CPU二级缓存容量对CPU性能的影响。Intel的Pentium4及Celeron系列处理器的一级数据缓存被称为“数据代码指令追踪(读写)缓存”;AMD的Athlon64/AthlonXP/Sempron/Duron系列处理器的一级数据缓存叫作“实数据读写缓存”。
  那么INTEL和AMD的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性能有提高了。正因为如此,大家能感受到Pentium4C(512KB二级缓存)与Celeron(128KB二级缓存)的性能差异,却很难感受到Pentium4C(512KB二级缓存)与Pentium4E(1MB二级缓存)的性能差异了。


2010-12-16 12:08 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  levis50515
  中級會員 
 



  積分 1172
  發文 208
  註冊 2005-9-13
  狀態 離線
#2  

透過你的解說,對cpu又有更深一層的了解

2012-1-16 03:08 PM
查看資料  發短消息   編輯文章  引用回覆
  xmen
  一般會員 
 


  積分 302
  發文 63
  註冊 2005-9-17
  狀態 離線
#3  

又深一層的了解,謝謝分享。

2013-5-16 11:18 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆

可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題

論壇跳轉選單: