CPU緩衝【摘抄】

來源:互聯網
上載者:User

CPU緩衝

多數CPU只有一級緩衝和二級緩衝,部分還有三級緩衝
CPU緩衝(Cache Memory)位於CPU與記憶體之間的臨時儲存空間,它的容量比記憶體小但交換速度快。在緩衝中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量資料時,就可避開記憶體直接從緩衝中調用,從而加快讀取速度。

CPU的緩衝是提高了CPU對記憶體反覆的資料的處理速度。CPU要運算的資料都是從記憶體取來的,但是記憶體速度比CPU慢很多,CPU總是在乾等,劃 不來,於是在CPU裡設計了快取(容量相對記憶體很小)。事先把CPU可能會用到的資料從記憶體取到緩衝,由於預測機制的作用,在90%以上的情況下, CPU需要的資料就在緩衝裡面,很快就可以取到。 這樣明顯可以大幅提高系統的效率。

而硬碟的緩衝是提高CPU與硬碟之間的速度.同 樣,記憶體裡面的資料大部分是從硬碟取來的, 記憶體速度比硬碟要快幾十倍,記憶體等硬碟讀盤也等得很煩。 於是在硬碟裡面設計了跟記憶體速度差不多的緩衝 事先把記憶體可能用到的資料從硬碟讀到緩衝。 然後記憶體要資料的話,先到硬碟緩衝找找, 實在找不到再讓硬碟讀盤。

快取分為一級緩衝(即L1 Cache)和二級緩衝(即L2Cache)。CPU在運行時首先從一級緩衝讀取資料,然後從二級緩衝讀取資料,然後從記憶體和虛擬記憶體讀取資料,因此高速 緩衝的容量和速度直接影響到CPU的工作效能。 一級緩衝都內建在CPU內部並與CPU同速運行,可以有效提高CPU的運行效率。一級緩衝越大,CPU的運行效率越高,但受到CPU內部結構的限制,一 級緩衝的容量都很小。 二級緩衝對CPU運行效率的影響也很大,現在的二級緩衝一般都整合在中,但有分為晶片內部和外部兩種,整合在晶片內部的二級緩衝與CPU同頻率二級緩衝
(即全速二級緩衝),而整合在晶片外部的二級緩衝的運行頻率 是CPU的運行頻率的一半(即半速二級緩衝),因此運行效率較低。 但是一級緩衝和二級緩衝的大,它究竟有多少好處呢?你得告訴我們經銷商,實際上你得用最普通的話跟他講。所以我們給他們打個比方,說這個就好比你開汽車的 時候,後備箱是整個的一級緩衝,假如說扶手裡面有一個小箱子,那是你的二級緩衝。二級緩衝大好在哪裡呢?就是你隨時開車的時候,隨時在裡面都可以取東西 了。假如你二級緩衝小的話,你還得把車停下來,到後備箱裡取東西。
首先我們來簡單瞭解一下一級緩衝。目前所有主流處理器大都具有一級緩衝和二 級緩衝,少數高端處理器還整合了三級緩衝。其中,一級緩衝可分為一級指令緩衝和一級資料緩衝。一級指令緩衝用於暫時儲存並向CPU遞送各類運算指令;一級 資料緩衝用於暫時儲存並向CPU遞送運算所需資料,這就是一級緩衝的作用(如果大家對上述文字理解困難的話,可參照所示)。
那麼,二級緩 存的作用又是什麼呢?簡單地說,二級緩衝就是一級緩衝的緩衝器:一級緩衝製造成本很高因此它的容量有限,二級緩衝的作用就是儲存那些CPU處理時需要用 到、一級緩衝又無法儲存的資料。同樣道理,三級緩衝和記憶體可以看作是二級緩衝的緩衝器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級 緩衝、三級緩衝還是記憶體都不能儲存處理器操作的原始指令,這些指令只能儲存在CPU的一級指令緩衝中,而餘下的二級緩衝、三級緩衝和記憶體僅用於儲存CPU 所需資料。
根據工作原理的不同,目前主流處理器所採用的一級資料緩衝又可以分為實資料讀寫緩衝和資料代碼指令追蹤緩衝2種,它們分別被AMD和Intel所採用。不同的一級資料緩衝設計對於二級緩衝容量的需求也各不相同,下面讓我們簡單瞭解一下這兩種一級資料緩衝設計的不同之處。

 

CPU緩衝(Cache Memory)位於CPU與記憶體之間的臨時儲存空間,它的容量比記憶體小但交換速度快。在緩衝中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將 訪問的,當CPU調用大量資料時,就可避開記憶體直接從緩衝中調用,從而加快讀取速度。由此可見,在CPU中加入緩衝是一種高效的解決方案,這樣整個記憶體儲 器(緩衝+記憶體)就變成了既有緩衝的高速度,又有記憶體的大容量的儲存系統了。緩衝對CPU的效能影響很大,主要是因為CPU的資料交換順序和CPU與緩衝
間的頻寬引起的。

緩衝的工作原理是當CPU要讀取一個資料時,首先從緩衝中尋找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從記憶體中讀取並送給CPU處理,同時把這個資料所在的資料區塊調入緩衝中,可以使得以後對整塊資料的讀取都從緩衝中進行,不必再調用記憶體。

正 是這樣的讀取機制使CPU讀取緩衝的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的資料90%都在緩衝中,只有大約10%需 要從記憶體讀取。這大大節省了CPU直接讀取記憶體的時間,也使CPU讀取資料時基本無需等待。總的來說,CPU讀取資料的順序是先緩衝後記憶體。

最 早先的CPU緩衝是個整體的,而且容量很低,英特爾公司從Pentium時代開始把緩衝進行了分類。當時整合在CPU核心中的緩衝已不足以滿足CPU的需 求,而製造工藝上的限制又不能大幅度提高緩衝的容量。因此出現了整合在與CPU同一塊電路板上或主板上的緩衝,此時就把 CPU核心整合的緩衝稱為一級緩衝,而外部的稱為二級緩衝。一級緩衝中還分資料緩衝(Data Cache,D-Cache)和指令緩衝(Instruction Cache,I-Cache)。二者分別用來存放資料和執行這些資料的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的衝突,提高了處
理器效能。英特爾公司在推出Pentium 4處理器時,用新增的一種一級追蹤緩衝替代指令緩衝,容量為12KμOps,表示能儲存12K條微指令。

隨 著CPU製造工藝的發展,二級緩衝也能輕易的整合在CPU核心中,容量也在逐年提升。現在再用整合在CPU內部與否來定義一、二級緩衝,已不確切。而且隨 著二級緩衝被整合入CPU核心中,以往二級緩衝與CPU大差距分頻的情況也被改變,此時其以相同於主頻的速度工作,可以為CPU提供更高的傳輸速度。

二級緩衝是CPU效能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩衝容量能使效能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩衝上有差異,由此可見二級緩衝對於CPU的重要性。

CPU 在緩衝中找到有用的資料被稱為命中,當緩衝中沒有CPU所需的資料時(這時稱為未命中),CPU才訪問記憶體。從理論上講,在一顆擁有二級緩衝的CPU中, 讀取一級緩衝的命中率為80%。也就是說CPU一級緩衝中找到的有用資料占資料總量的80%,剩下的20%從二級緩衝中讀取。由於不能準確預測將要執行的 資料,讀取二級緩衝的命中率也在80%左右(從二級緩衝讀到有用的資料佔總資料的16%)。那麼還有的資料就不得不從記憶體調用,但這已經是一個相當小的比 例了。目前的較高端的CPU中,還會帶有三級緩衝,它是為讀取二級緩衝後未命中的資料設計的—種緩衝,在擁有三級緩衝的CPU中,只有約5%的資料需要從
記憶體中調用,這進一步提高了CPU的效率。

為了保證CPU訪問時有較高的命中率,緩衝中的內容應該按一定的演算法替換。一種較常用的算 法是“最近最少使用演算法”(LRU演算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設定一個計數器,LRU演算法是把命中行的計數器 清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的資料行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁調用後再不需要 的資料淘汰出緩衝,提高緩衝的利用率。

CPU產品中,一級緩衝的容量基本在4KB到64KB之間,二級緩衝的容量則分為128KB、 256KB、512KB、1MB、2MB等。一級緩衝容量各產品之間相差不大,而二級緩衝容量則是提高CPU效能的關鍵。二級緩衝容量的提升是由CPU制 造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上整合更大的緩衝,對製造工藝的要求也就越高。

CPU的二級緩衝是預設開啟的,所謂的在註冊表中修改相應的secondlevelcache索引值來開啟二級緩衝是不對的,那隻是一個映射,如果不開啟二級緩衝,電腦的效能會很受影響.
Windows XP系統中,預設狀態下CPU二級緩衝並未開啟。為了提高系統效能,我們可以通過修改註冊表,或使用“Windows最佳化大師”等軟體來開啟它。
運 行登錄編輯程式,展開HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management分支,雙擊右側視窗中的“SecondLevelDataCace”,然後在彈出的視窗中直接填入當前電腦所使用的CPU的二級緩 存容量即可。
賽揚處理器的二級緩衝為128KB,應將其值設定為80(16進位,下同)。PⅡ、PⅢ、P4均為512KB二級緩衝,應設定為 200;PⅢE(EB)、P4 Willamette只有256KB二級緩衝,應設定為100;AMD Duron只有64KB二級緩衝,應設定為40;K6-3擁有256KB二級緩衝;Athlon擁有512KB二級緩衝;Athlon XP擁有256KB二級緩衝;Athlon XP(Barton核心)擁有512KB二級緩衝。
使用Windows最佳化大師也可以正確設定CPU的二級緩衝:啟動Windows最佳化大師,選擇“系統效能最佳化”,在“檔案系統最佳化”中,最上面就是關於CPU二級緩衝的設定項。拖動滑塊到相應的位置後,儲存設定並重新啟動電腦即可。

先我們來簡單瞭解一下一級緩衝。目前所有主流處理器大都具有一級緩衝和二級緩衝,少數高端處理器還整合了三級緩衝。其中,一級緩衝可分為一級指令緩 存和一級資料緩衝。一級指令緩衝用於暫時儲存並向CPU遞送各類運算指令;一級資料緩衝用於暫時儲存並向CPU遞送運算所需資料,這就是一級緩衝的作用

那麼,二級緩衝的作用又是什麼呢?簡單地說,二級緩衝就是一級緩衝的緩衝器:一級緩衝製造成本很高因此它的容量有限,二 級緩衝的作用就是儲存那些CPU處理時需要用到、一級緩衝又無法儲存的資料。同樣道理,三級緩衝和記憶體可以看作是二級緩衝的緩衝器,它們的容量遞增,但單 位製造成本卻遞減。需要注意的是,無論是二級緩衝、三級緩衝還是記憶體都不能儲存處理器操作的原始指令,這些指令只能儲存在CPU的一級指令緩衝中,而餘下 的二級緩衝、三級緩衝和記憶體僅用於儲存CPU所需資料。

根據工作原理的不同,目前主流處理器所採用的一級資料緩衝又可以分為實資料讀寫緩衝和資料代碼指令追蹤緩衝2種,它們分別被AMD和Intel所採用。不同的一級資料緩衝設計對於二級緩衝容量的需求也各不相同,下面讓我們簡單瞭解一下這兩種一級資料緩衝設計的不同之處。
一、AMD一級資料緩衝設計

AMD 採用的一級緩衝設計屬於傳統的“實資料讀寫緩衝”設計。基於該架構的一級資料緩衝主要用於儲存CPU最先讀取的資料;而更多的讀取資料則分別儲存在二級緩 存和系統記憶體當中。做個簡單的假設,假如處理器需要讀取“AMD ATHLON 64 3000+ IS GOOD”這一串資料(不記空格),那麼首先要被讀取的“AMDATHL”將被儲存在一級資料緩衝中,而餘下的“ON643000+ISGOOD”則被分 別儲存在二級緩衝和系統記憶體當中(如所示)。

需要注意的是,以上假設只是對AMD處理器一級資料緩衝的一個抽象 描述,一級資料緩衝和二級緩衝所能儲存的資料長度完全由緩衝容量的大小決定,而絕非以上假設中的幾個位元組。“實資料讀寫緩衝”的優點是資料讀取直接快速, 但這也需要一級資料緩衝具有一定的容量,增加了處理器的製造難度(一級資料緩衝的單位製造成本較二級緩衝高)。
二、Intel一級資料緩衝設計

自 P4時代開始,Intel開始採用全新的“資料代碼指令追蹤緩衝”設計。基於這種架構的一級資料緩衝不再儲存實際的資料,而是儲存這些資料在二級緩衝中的 指令代碼(即資料在二級緩衝中儲存的起始地址)。假設處理器需要讀取“INTEL P4 IS GOOD”這一串資料(不記空格),那麼所有資料將被儲存在二級緩衝中,而一級資料代碼指令追蹤緩衝需要儲存的僅僅是上述資料的起始地址(如所示)。

由於一級資料緩衝不再儲存實際資料,因此“資料代碼指令追蹤緩衝”設計能夠極大地降CPU對一級資料緩衝容量的要求,降低處理器的生產難度。但這種設計的弊端在於資料讀取效率較“實資料讀寫緩衝設計”低,而且對二級緩衝容量的依賴性非常大。

在瞭解了一級緩衝、二級緩衝的大致作用及其分類以後,下面我們來回答以下硬體一菜鳥網友提出的問題。
從 理論上講,二級緩衝越大處理器的效能越好,但這並不是說二級緩衝容量加倍就能夠處理器帶來成倍的效能增長。目前CPU處理的絕大部分資料的大小都在 0-256KB之間,小部分資料的大小在256KB-512KB之間,只有極少數資料的大小超過512KB。所以只要處理器可用的一級、二級緩衝容量達到 256KB以上,那就能夠應付正常的應用;512KB容量的二級緩衝已經足夠滿足絕大多數應用的需求。

這其中,對於採用“實資料讀寫 緩衝”設計的AMD Athlon 64、Sempron處理器而言,由於它們已經具備了64KB一級指令緩衝和64KB一級資料緩衝,只要處理器的二級緩衝容量大於等於128KB就能夠存 儲足夠的資料和指令,因此它們對二級緩衝的依賴性並不大。這就是為什麼主頻同為1.8GHz的Socket 754 Sempron 3000+(128KB二級緩衝)、Sempron 3100+(256KB二級緩衝)以及Athlon 64 2800+(512KB二級緩衝)在大多數評測中效能非常接近的主要原因。所以對於普通使用者而言754
Sempron 2600+是值得考慮的。

反 觀Intel目前主推的P4、賽揚系列處理器,它們都採用了“資料代碼指令追蹤緩衝”架構,其中Prescott核心的一級緩衝中只包含了12KB一級指 令緩衝和16KB一級資料緩衝,而Northwood核心更是只有12KB一級指令緩衝和8KB一級資料緩衝。所以P4、賽揚系列處理器對二級緩衝的依賴 性是非常大的,賽揚D 320(256KB二級緩衝)與賽揚 2.4GHz(128KB二級緩衝)效能上的巨大差距就很好地證明了這一點;而賽揚D和P4 E處理器之間的效能差距同樣十分明顯。

最 後,如果您是狂熱的遊戲發燒友或者從事多媒體製作的專業使用者,那麼具有1MB二級緩衝的P4處理器和具有512KB/1MB二級緩衝的Athlon 64處理器才是您理想的選擇。因為在高負荷的運算下,CPU的一級緩衝和二級緩衝近乎“爆滿”,在這個時候大容量的二級緩衝能夠為處理器帶來5%-10% 左右的效能提升,這對於那些要求苛刻的使用者來說是完全有必要的。

 

目前所有主流處理器大都具有一級緩衝和二級緩衝,少數高端處理器還整合了三級緩衝。其中,一級緩衝可分為一級指令緩衝和一級資料緩衝。一級指令緩衝用於暫時儲存並向CPU遞送各類運算指令;一級資料緩衝用於暫時儲存並向CPU遞送運算所需資料,這就是一級緩衝的作用.

二 級緩衝就是一級緩衝的緩衝器:一級緩衝製造成本很高因此它的容量有限,二級緩衝的作用就是儲存那些CPU處理時需要用到、一級緩衝又無法儲存的資料。同樣 道理,三級緩衝和記憶體可以看作是二級緩衝的緩衝器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級緩衝、三級緩衝還是記憶體都不能儲存處 理器操作的原始指令,這些指令只能儲存在CPU的一級指令緩衝中,而餘下的二級緩衝、三級緩衝和記憶體僅用於儲存CPU所需資料。

根據工作原理的不同,目前主流處理器所採用的一級資料緩衝又可以分為實資料讀寫緩衝和資料代碼指令追蹤緩衝2種,它們分別被AMD和Intel所採用。不同的一級資料緩衝設計對於二級緩衝容量的需求也各不相同,下面讓我們簡單瞭解一下這兩種一級資料緩衝設計的不同之處。

 

一級最重要,但是現在CPU的一級緩衝幾乎都一樣,所以忽略。
二級緩衝的話對於Intel的CPU是很重要的,Intel的CPU的二級緩衝越大效能提升非常明顯,而AMD的CPU雖然二級緩衝也很重要,但是二級緩衝大小對AMD的CPU的效能提升不是很明顯。
三級緩衝其實只是做了個輔助的作用,除了伺服器,其實對我們家庭機沒什麼用的,記憶體還是很重要的。

所以說現在衡量CPU效能除了頻率外就是二級緩衝的大小了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.