高速緩沖存儲(chǔ)器Cache是位于CPU與內(nèi)存之間的姑且存儲(chǔ)器,它的容量比內(nèi)存小但互換速度快 。在Cache
中的數(shù)據(jù)是內(nèi)存中的一小部分,但這一小部分是短期內(nèi)CPU行將拜候的,當(dāng)CPU調(diào)用大量數(shù)據(jù)時(shí),就可
避開內(nèi)存直接從Cache中調(diào)用,從而加快讀取速度 。由此可見,在CPU中加入Cache是一種高效的解決方
案,這樣整個(gè)內(nèi)存儲(chǔ)器(Cache 內(nèi)存)就變成了既有Cache的高速度,又有內(nèi)存的大容量的存儲(chǔ)體系了 。
Cache對(duì)CPU的性能影響很大,首要是因?yàn)镃PU的數(shù)據(jù)互換順序和CPU與Cache間的帶寬引起的 。
高速緩存的工作原理
1.讀取順序
CPU要讀取1個(gè)數(shù)據(jù)時(shí),首先從Cache中查找,如果找到就立即讀取并送給CPU處理;如果沒有找到
,就用相對(duì)慢的速度從內(nèi)存中讀取并送給CPU處理,同時(shí)把這個(gè)數(shù)據(jù)地點(diǎn)的數(shù)據(jù)塊調(diào)入Cache中,可以使
得往后對(duì)整塊數(shù)據(jù)的讀取都從Cache中進(jìn)行,沒必要再調(diào)用內(nèi)存 。
正是這樣的讀取機(jī)制使CPU讀取Cache的命中率非常高(大部分?jǐn)?shù)CPU可達(dá)90%左右),也就是說CPU下一
次要讀取的數(shù)據(jù)90%都在Cache中,只有大約10%需要從內(nèi)存讀取 。這大大節(jié)省了CPU直接讀取內(nèi)存的時(shí)間
,也使CPU讀取數(shù)據(jù)時(shí)基本無需等待 。總的來講,CPU讀取數(shù)據(jù)的順序是先Cache后內(nèi)存 。
2.緩存分類
前邊是把Cache作為1個(gè)整體來思量的,現(xiàn)在要分類闡發(fā)了 。Intel從Pentium開始將Cache分開,通
常分為一級(jí)高速緩存L1和二級(jí)高速緩存L2 。
在以往的觀念中,L1 Cache是集成在CPU中的,被稱為片內(nèi)Cache 。在L1中還分?jǐn)?shù)據(jù)Cache(I-Cache)
和指令Cache(D-Cache) 。它們別離用來儲(chǔ)存安放數(shù)據(jù)和執(zhí)行這些個(gè)數(shù)據(jù)的指令,并且兩個(gè)Cache可以同時(shí)被CPU
拜候,減少了爭(zhēng)用Cache所造成的沖突,提高了處理器效能 。
在P4處理器中使用了一種先進(jìn)的一級(jí)指令Cache――動(dòng)態(tài)跟蹤緩存 。它直接和執(zhí)行單元及動(dòng)態(tài)跟蹤
引擎相連,通過動(dòng)態(tài)跟蹤引擎可以很快地找到所執(zhí)行的指令,并且將指令的順序存儲(chǔ)在追蹤緩存里,這
樣就減少了主執(zhí)行循環(huán)的解碼周期,提高了處理器的運(yùn)算效率 。
以前的L2 Cache沒集成在CPU中,而在主板上或與CPU集成在統(tǒng)一塊電路板上,因此也被稱為片外
Cache 。但從PⅢ開始,由于工藝的提高L2 Cache被集成在CPU內(nèi)核中,以相同于主頻的速度工作,結(jié)束
了L2 Cache與CPU大差距分頻的汗青,使L2 Cache與L1 Cache在性能上平等,得到更高的傳輸速度 。
L2Cache只存儲(chǔ)數(shù)據(jù),因此不分?jǐn)?shù)據(jù)Cache和指令Cache 。在CPU核心不變化的情況下,增加L2 Cache的容
量能使性能提升,統(tǒng)一核心的CPU高低端之分往往也是在L2 Cache上做手腳,可見L2 Cache的重要性 。
現(xiàn)在CPU的L1 Cache與L2 Cache惟一區(qū)別在于讀取順序 。
3.讀取命中率
CPU在Cache中找到有用的數(shù)據(jù)被稱為命中,當(dāng)Cache中沒有CPU所需的數(shù)據(jù)時(shí)(這時(shí)候稱為未命中),
CPU才拜候內(nèi)存 。從理論上講,在一顆擁有2級(jí)Cache的CPU中,讀取L1 Cache的命中率為80% 。也就是說
CPU從L1 Cache中找到的有用數(shù)據(jù)占數(shù)據(jù)總量的80%,剩下的20%從L2 Cache讀取 。由于不克不及準(zhǔn)確預(yù)測(cè)將
要執(zhí)行的數(shù)據(jù),讀取L2的命中率也在80%左右(從L2讀到有用的數(shù)據(jù)占總數(shù)據(jù)的16%) 。那么還有的數(shù)據(jù)就
不得不從內(nèi)存調(diào)用,但這已經(jīng)是1個(gè)相當(dāng)小的比例了 。在一些高端領(lǐng)域的CPU(像Intel的Itanium)中,
我們常聽到L3 Cache,它是為讀取L2 Cache后未命中的數(shù)據(jù)預(yù)設(shè)的―種Cache,在擁有L3 Cache的CPU中
,只有約5%的數(shù)據(jù)需要從內(nèi)存中調(diào)用,這進(jìn)一步提高了CPU的效率 。
為了保證CPU拜候時(shí)有較高的命中率,Cache中的內(nèi)容應(yīng)該按一定的算法替代 。一種較常用的算法是
推薦閱讀
- mp3怎么下載歌曲?
- 太白粉是什么 太白粉是什么粉
- 諾基亞3110c--超高性價(jià)比
- 電腦中桌面上我電腦圖標(biāo)不見具體解決方法
- 賣油翁人物描寫手法 賣油翁人物的描寫手法
- 想找這樣 的書??希望有人推薦一下!如何排除電腦故障
- 世界電信和信息社會(huì)日簡(jiǎn)筆畫的教程世界電信和信息社會(huì)日簡(jiǎn)筆畫的步驟
- 口碑最好的踏板摩托車 什么踏板摩托車最省油最便宜
- HKCG908手機(jī)內(nèi)置大容量ROM無法讀取的解決辦法
- H797拿到售后服務(wù)維修后出現(xiàn)的問題
