天天看點

淺析CPU二級緩存容量對CPU性能的影響

 代桌面級PC的CPU二級緩存容量大多數在64KB到2MB之間。因為CPU二級緩存容量對CPU性能有不小的影響,是以低端CPU和中高端CPU在實體結構上的差異主要就是二級緩存容量的大小。那麼二級緩存容量為什麼如此重要?它對CPU性能有什麼樣的影響呢?

  CPU二級緩存作為一級緩存的“後備倉庫”,用于為一級緩存存儲更多的資料,減少CPU直接通路記憶體 的次數。理論上,CPU通路并調用緩存的資料所占的比重越大,則CPU通路并調用記憶體的資料所占的比重就越小,那麼因通路記憶體而耽誤的時間 就越少。是以緩存的容量越大,CPU的實際效率也就越高,性能就越強。

  實際上,在52硬體上講到,現在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二級緩存)的性能差異了。

繼續閱讀