具有Cache的計算機(jī),當(dāng)CPU需要進(jìn)行存儲器存取時,首先檢查所需數(shù)據(jù)是否在Cache中。如果存在,則可以直接存取其中的數(shù)據(jù)而不必插入任何等待狀態(tài),這是最佳情況,稱為高速命中;
當(dāng)CPU所需信息不在Cache中時,則需切換存取主儲器,由于速度較慢,需要插入等待,這種情況稱高速未命中;
在CPU存取主存儲器的時候,按照最優(yōu)化原則將存儲信息同時寫入到Cache中以保證下次可能的高速緩存命中。
因此,同一數(shù)據(jù)可能同時存儲在主存儲器和Cache中。同樣,按照優(yōu)化算法,可以淘汰Cache中一些不常使用的數(shù)據(jù)。
傳統(tǒng)的Socket架構(gòu)通常采用兩級緩沖結(jié)構(gòu),即在CPU中集成了一級緩存(L1Cache),在主板上裝二級緩存(L2 Cache),而SlotⅠ架構(gòu)下的L2 Cache則與CPU做在同一塊電路板上,以內(nèi)核速度或者內(nèi)核速度的一半運行,速度比Socket下的以系統(tǒng)外頻運行的L2 Cache更快,能夠更大限度發(fā)揮高主頻的優(yōu)勢,當(dāng)然對Cache工藝要求也更高。
?CPU首先在L1 Cache中查找數(shù)據(jù),如找不到,則在L2Cache中尋找。
?若數(shù)據(jù)在L2 Cache中,控制器在傳輸數(shù)據(jù)的同時,修改L1Cache;
?若數(shù)據(jù)既不在L1 Cache中,又不在L2 Cache中,Cache控制器則從主存中獲取數(shù)據(jù),將數(shù)據(jù)提供給CPU的同時修改兩級Cache。
?K6-Ⅲ則比較特殊,64KB L1 Cache,256KB Full Core Speed L2 Cache,原先主板上的緩存實際上就成了L3 Cache。
根據(jù)有關(guān)測試表明:
當(dāng)512K2MB的三級緩存發(fā)揮作用時,系統(tǒng)性能還可以有2%10%的提高;
Tri-level成為PC系統(tǒng)出現(xiàn)以來提出的解決高速CPU與低速內(nèi)存之間瓶頸最為細(xì)致復(fù)雜的方案;而且,今后Cache的發(fā)展方向也是大容。
在主存-Cache存儲體系中,所有的指令和數(shù)據(jù)都存在主存中,Cache只是存放主存中的一部分程序塊和數(shù)據(jù)塊的副本,只是一種以塊為單位的存儲方式。
Cache和主存被分為塊,每塊由多個字節(jié)組成。
由上述的程序局部性原理可知,Cache中的程序塊和數(shù)據(jù)塊會使CPU要訪問的內(nèi)容在大多數(shù)情況下已經(jīng)在Cache中,CPU的讀寫操作主要在CPU和Cache之間進(jìn)行。
CPU訪問存儲器時,送出訪問單元的地址,由地址總線傳送到Cache控制器中的主存地址寄存器MAR,主存-Cache地址轉(zhuǎn)換機(jī)構(gòu)從MA獲取地址并判斷該單元內(nèi)容是否已在Cache中存有副本,如果副本已存在于Cache中,即命中。當(dāng)命中時,立即把訪問地址變換成它在Cache中的地址,然后訪問Cache。
?存儲體由若跟個存儲單元組成,存儲單元由多個存儲元件組成
?存儲體----存儲單元(存儲一串二進(jìn)制串)----存儲元件(存儲一個0/1)
?存儲單元:存放一串二進(jìn)制代碼。
?存儲字:存儲單元中的二進(jìn)制代碼
?存儲字長:存儲單元中二進(jìn)制代碼位數(shù)。
?存儲單元按照地址進(jìn)行尋址
?MAR:存儲器地址寄存器,反應(yīng)存儲單元個數(shù)。保存了存儲體的地址(存儲單元的編號),反應(yīng)了存儲單元的個數(shù)。所以MAR的位數(shù)和存儲單元的個數(shù)有關(guān)。
?MDR:存儲器數(shù)據(jù)寄存器,反應(yīng)存儲字長(存儲單元長度)。保存了要送入CPU中的數(shù)據(jù)或要保存到存儲體中的數(shù)據(jù)或者剛剛從存儲體中取出來來的數(shù)據(jù)。這個寄存器的長度和存儲單元的長度相同。
如果CPU要訪問的內(nèi)容不在Cache中,即不命中,則CPU轉(zhuǎn)去直接訪問主存,并將包含此存儲單元的整個數(shù)據(jù)塊(包括該塊數(shù)據(jù)的地址信息)傳到Cache中,使得以后的若干次對內(nèi)存的訪問可轉(zhuǎn)化為對Cache的訪問。
若Cache存儲器已滿,則需在替換控制部件的控制下,根據(jù)某種替換算法/策略,用此塊信息替換掉Cache中原來的某塊信息。
之前記得當(dāng)時面試的時候讓我用golang手寫緩存管理算法,哈哈哈。
所以,要想提高系統(tǒng)效率,必須提高Cache命中率,而Cache命中率的提高則取決于Cache的映像方式和Cache刷新算法等一系列因素,同時Cache中內(nèi)容應(yīng)與主存中的部分保持一致,也就是說,如果主存中的內(nèi)容在調(diào)入Cache之后發(fā)生了變化,那么它在Cache中的映像也應(yīng)該隨之發(fā)生相應(yīng)改變,反之,當(dāng)CPU修改了Cache中的內(nèi)容后,主存中的相應(yīng)內(nèi)容也應(yīng)作修改。
-
存儲器
+關(guān)注
關(guān)注
38文章
7529瀏覽量
164383 -
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213110 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7546瀏覽量
88696 -
Cache
+關(guān)注
關(guān)注
0文章
129瀏覽量
28445
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file.elecfans.com/web2/M00/78/CB/pYYBAGNpFMuAL7OgABVe9qwB9TA586.jpg)
cache 問題
機(jī)械硬盤的工作原理是什么
高速緩存(cache)的工作原理是什么?高速緩存可分為哪幾類
Cache的工作原理
高速緩沖存儲器Cache的原理、設(shè)計及實現(xiàn)
cache結(jié)構(gòu)與工作原理
![<b class='flag-5'>cache</b>結(jié)構(gòu)與<b class='flag-5'>工作原理</b>](https://file.elecfans.com/web1/M00/95/39/pIYBAFz0vRWAUKAnAAAP88xsRbk149.png)
什么是 Cache? Cache讀寫原理
深入理解Cache工作原理
![深入理解<b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>](https://file1.elecfans.com/web2/M00/88/E0/wKgaomR1reyALuZjAAA5QafdIA8632.png)
Cache工作原理講解 Cache寫入方式原理簡介
![<b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>講解 <b class='flag-5'>Cache</b>寫入方式原理簡介](https://file1.elecfans.com/web2/M00/A8/94/wKgaomUt9DmAaM0iAAAtFEUPbgs064.png)
Cache分類與替換算法
![<b class='flag-5'>Cache</b>分類與替換算法](https://file1.elecfans.com/web2/M00/AD/39/wKgZomVAcv-ALzI7AAC9tAEnO7s448.jpg)
評論