![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
CPU 緩存(Cache Memoney)是位于 CPU 與內(nèi)存之間的臨時存儲器。它的容量比內(nèi)存小,但交換速度更快。緩存中的數(shù)據(jù),只是內(nèi)存數(shù)據(jù)中的一小部分,但這一小部分是短時間內(nèi) CPU 即將訪問的,當(dāng) CPU 調(diào)用大量數(shù)據(jù)時,就可避開內(nèi)存直接從緩存中調(diào)用,從而加快讀取速度。由此可見,在 CPU 中加入緩存,是一種高效的解決方案。這樣,整個內(nèi)存儲器(緩存+內(nèi)存)就變成了既有緩存的高速度,又有內(nèi)存的大容量的存儲系統(tǒng)了。緩存對 CPU 的性能影響很大。主要是因為 CPU 的數(shù)據(jù)交換順序和 CPU 與緩存間的帶寬引起的。
緩存的工作原理,是當(dāng) CPU 要讀取一個數(shù)據(jù)時,首先從緩存中查找,如果找到,就立即讀取并送給 CPU 處理;如果沒有找到,就用相對慢的速度從內(nèi)存中讀取并送給 CPU 處理,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存中進(jìn)行,不必再調(diào)用內(nèi)存。
正是這樣的讀取機(jī)制,使 CPU 讀取緩存的命中率非常高(大多數(shù) CPU 可達(dá) 90% 左右),也就是說,CPU 下一次要讀取的數(shù)據(jù) 90% 都在緩存中,只有大約 10% 需要從內(nèi)存讀取。這就大大節(jié)省了 CPU 直接讀取內(nèi)存的時間,也使 CPU 讀取數(shù)據(jù)時基本無需等待�?偟膩碚f,CPU 讀取數(shù)據(jù)的順序,是先緩存,后內(nèi)存。
早先的 CPU 緩存是個整體的,而且容量很低,英特爾公司從 Pentium 時代開始,把緩存進(jìn)行了分類。當(dāng)時集成在 CPU 內(nèi)核中的緩存已不足以滿足 CPU 的需求,而制造工藝上的限制,又不能大幅度提高緩存的容量。因此出現(xiàn)了集成在與 CPU 同一塊電路板上或主板上的緩存,此時,就把 CPU 內(nèi)核集成的緩存,稱為一級緩存。而外部的稱為二級緩存。一級緩存中,還分?jǐn)?shù)據(jù)緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數(shù)據(jù)和執(zhí)行這些數(shù)據(jù)的指令,而且兩者可以同時被 CPU 訪問,減少了爭用 Cache 所造成的沖突,提高了處理器的效能。英特爾公司在推出 Pentium 4 處理器時,還新增了一種一級追蹤緩存,容量為 12KB。
隨著 CPU 制造工藝的發(fā)展,二級緩存也能輕易的集成在 CPU 內(nèi)核中,容量也在逐年提升�,F(xiàn)在再用集成在 CPU 內(nèi)部與否來定義一、二級緩存,已不確切。而且隨著二級緩存被集成入 CPU 內(nèi)核中,以往二級緩存與 CPU 大差距分頻的情況也被改變,此時其以相同于主頻的速度工作,可以為 CPU 提供更高的傳輸速度。
二級緩存是 CPU 性能表現(xiàn)的關(guān)鍵之一。在 CPU 核心不變的情況下,增加二級緩存容量,能使性能大幅度提高。而同一核心的 CPU 高低端之分,往往也是在二級緩存上有差異。由此可見,二級緩存對于 CPU 的重要性。
CPU 在緩存中找到有用的數(shù)據(jù)被稱為命中,當(dāng)緩存中沒有 CPU 所需的數(shù)據(jù)時(這時稱為未命中),CPU 才訪問內(nèi)存。從理論上講,在一顆擁有二級緩存的 CPU 中,讀取一級緩存的命中率為 80%。也就是說,CPU 一級緩存中找到的有用數(shù)據(jù),占數(shù)據(jù)總量的 80%,剩下的 20% 從二級緩存中讀取。由于不能準(zhǔn)確預(yù)測將要執(zhí)行的數(shù)據(jù),讀取二級緩存的命中率也在 80% 左右(從二級緩存讀到有用的數(shù)據(jù)占總數(shù)據(jù)的 16%)。那么,還有的數(shù)據(jù)就不得不從內(nèi)存調(diào)用,但這已經(jīng)是一個相當(dāng)小的比例了。目前的較高端的 CPU 中,還會帶有三級緩存,它是為讀取二級緩存后未命中的數(shù)據(jù)設(shè)計的種緩存,在擁有三級緩存的 CPU 中,只有約 5% 的數(shù)據(jù)需要從內(nèi)存中調(diào)用,這進(jìn)一步提高了 CPU 的效率。
為了保證 CPU 訪問時有較高的命中率,緩存中的內(nèi)容應(yīng)該按一定的算法替換。一種較常用的算法,是 近 少使用算法(LRU 算法),它是將 近一段時間內(nèi) 少被訪問過的行淘汰出局。因此,需要為每行設(shè)置一個計數(shù)器,LRU 算法是把命中行的計數(shù)器清零,其他各行計數(shù)器加 1。當(dāng)需要替換時,淘汰行計數(shù)器計數(shù)值 大的數(shù)據(jù)行出局。這是一種高效、科學(xué)的算法。其計數(shù)器清零過程,可以把一些頻繁調(diào)用后再不需要的數(shù)據(jù)淘汰出緩存,提高緩存的利用率。
CPU 產(chǎn)品中,一級緩存的容量基本在 4KB 到 64KB 之間,二級緩存的容量則分為 128KB、256KB、512KB、1MB、2MB 等。一級緩存容量,各產(chǎn)品之間相差不大,而二級緩存容量,則是提高 CPU 性能的關(guān)鍵。二級緩存容量的提升,是由 CPU 制造工藝所決定的,容量增大必然導(dǎo)致 CPU 內(nèi)部晶體管數(shù)的增加,要在有限的 CPU 面積上集成更大的緩存,對制造工藝的要求也就越高。
|
關(guān)于收錄1 |
關(guān)于收錄2 |
網(wǎng)站幫助 |
廣告合作 |
下載聲明 |
友情連接 |
網(wǎng)站地圖 |
| 共有文章: 11783 篇
今日新文: 148 篇
當(dāng)前在線: