菜鳥進(jìn)階十一:徹底認(rèn)識硬件之"CPU"篇
大家應(yīng)該經(jīng)常聽到“處理器緩存”這個詞,也聽話說過什么一級緩存二級緩存,可是緩存究竟是干什么用的,和內(nèi)存有什么區(qū)別,更大的緩存為什么能提高處理器的工作效率?
1、緩存是什么
緩存的英文是CACHE,目前常見的緩存是片內(nèi)一級緩存和二級緩存,所謂“片內(nèi)”,也就是和CPU核心封裝在一塊晶圓里面。這么做的好處是可以大幅降低核心到緩存的延遲時間,獲得最高的傳輸效率,而壞處就是緩存必須使用于精密的CPU核心一樣的制造和封裝工藝,成本很高,而且增加的大量晶體管,會造成核心部分的功耗增加,散熱不良。也就是說,CPU片內(nèi)緩存不可能做的很大,即使是不計(jì)成本,也很難突破晶體管數(shù)量這個物理極限。CPU的緩存和我們平時見到的DRAM內(nèi)存不同,緩存是SRAM,存取速度方面的性能是天壤之別,目前市售最快的DRAM,也只是DDR2 800MHZ,而CPU的緩存,是和處理器的核心頻率同頻的。打個比方說,你使用的是P4 3.2G的處理器,那么你的處理器的緩存的工作頻率,也是3.2GHZ。加上處理器和緩存之間使用的是256BIT的帶寬,其存取速度和數(shù)據(jù)流量是很恐怖的。

2、緩存怎樣工作
常見的處理器,一般擁有一級緩存(L1 CACHE)和二級緩存(L2 CACHE),一級緩存主要是用來存放處理器指令集和正在處理器流水線中運(yùn)算的數(shù)據(jù)的鏡像和一些初步運(yùn)算的結(jié)果,所以有時候我們會聽到一級數(shù)據(jù)緩存與一級指令緩存的說法。二級緩存和一級緩存不同,他和處理器之間有一定的延遲,所以存取速度比一級緩存略慢,但是容量要大的多。
二級緩存的主要作用,首先是為一級緩存充當(dāng)臨時的存儲空間,一級緩存運(yùn)算時,過一會就要用到的數(shù)據(jù),如果存入內(nèi)存的話,存取時間過長,如果留在一級緩存中的話,又會影響其他數(shù)據(jù)的載入,所以放在略慢于一級緩存,而比內(nèi)存快很多倍的二級緩存中,是最好的選擇。
二級緩存的另一個重要作用就是放置內(nèi)存鏡像表,也可以理解為內(nèi)存中所存數(shù)據(jù)的總目錄。這樣做的好處就是,一旦需要存取的數(shù)據(jù)過大或者數(shù)據(jù)不在LI\\L2緩存中的時候,需要從主內(nèi)存中調(diào)用的時候,可以方便的從主內(nèi)存中存取,而省去了搜索這個數(shù)據(jù)所需的時間。要知道進(jìn)行一次主內(nèi)存的搜索,對于高速運(yùn)轉(zhuǎn)的處理器來說,就好像數(shù)年那樣漫長。
現(xiàn)在,隨著多核心處理器的發(fā)展,三級緩存也走入了中低端CPU,三級緩存是為讀取二級緩存后未命中的數(shù)據(jù)設(shè)計(jì)的—種緩存,在擁有三級緩存的CPU中,只有約5%的數(shù)據(jù)需要從內(nèi)存中調(diào)用,這進(jìn)一步提高了CPU的效率。
緩存是決定CPU的重要性能參數(shù)之一,AMD和Intel的各級別產(chǎn)品,緩存大小也會不一樣,大家在選購CPU時可以注意這一點(diǎn)。
關(guān)注我們


