緩存的對應
① 璇鋒暀浠涔堟槸鐢佃剳鐨勪竴綰х紦瀛橈紝浜岀駭緙撳瓨錛屼笁綰х紦瀛樺晩錛熻兘璇寸殑綆鍗曢氫織鐐瑰悧錛熶婦涓鍒楀瓙錛佽阿璋㈠暒錛
鎸夌収鏁版嵁璇誨彇欏哄簭鍜屼笌CPU緇撳悎鐨勭揣瀵嗙▼搴︼紝CPU緙撳瓨鍙浠ュ垎涓轟竴綰х紦瀛橈紝浜岀駭緙撳瓨錛岄儴鍒嗛珮絝疌PU榪樺叿鏈変笁綰х紦瀛橈紝姣忎竴綰х紦瀛樹腑鎵鍌ㄥ瓨鐨勫叏閮ㄦ暟鎹閮芥槸涓嬩竴綰х紦瀛樼殑涓閮ㄥ垎錛岃繖涓夌嶇紦瀛樼殑鎶鏈闅懼害鍜屽埗閫犳垚鏈鏄鐩稿歸掑噺鐨勶紝鎵浠ュ叾瀹歸噺涔熸槸鐩稿歸掑炵殑銆傚綋CPU瑕佽誨彇涓涓鏁版嵁鏃訛紝棣栧厛浠庝竴綰х紦瀛樹腑鏌ユ壘錛屽傛灉娌℃湁鎵懼埌鍐嶄粠浜岀駭緙撳瓨涓鏌ユ壘錛屽傛灉榪樻槸娌℃湁灝變粠涓夌駭緙撳瓨鎴栧唴瀛樹腑鏌ユ壘銆備竴鑸鏉ヨ達紝姣忕駭緙撳瓨鐨勫懡涓鐜囧ぇ姒傞兘鍦80%宸﹀彸錛屼篃灝辨槸璇村叏閮ㄦ暟鎹閲忕殑80%閮藉彲浠ュ湪涓綰х紦瀛樹腑鎵懼埌錛屽彧鍓╀笅20%鐨勬繪暟鎹閲忔墠闇瑕佷粠浜岀駭緙撳瓨銆佷笁綰х紦瀛樻垨鍐呭瓨涓璇誨彇銆 涓綰х紦瀛橈紙Level 1 Cache錛夌畝縐癓1 Cache錛屼綅浜嶤PU鍐呮牳鐨勬梺杈癸紝鏄涓嶤PU緇撳悎鏈涓虹揣瀵嗙殑CPU緙撳瓨錛屼篃鏄鍘嗗彶涓婃渶鏃╁嚭鐜扮殑CPU緙撳瓨銆傜敱浜庝竴綰х紦瀛樼殑鎶鏈闅懼害鍜屽埗閫犳垚鏈鏈楂橈紝鎻愰珮瀹歸噺鎵甯︽潵鐨勬妧鏈闅懼害澧炲姞鍜屾垚鏈澧炲姞闈炲父澶э紝鎵甯︽潵鐨勬ц兘鎻愬崌鍗翠笉鏄庢樉錛屾т環姣斿緢浣庯紝鑰屼笖鐜版湁鐨勪竴綰х紦瀛樼殑鍛戒腑鐜囧凡緇忓緢楂橈紝鎵浠ヤ竴綰х紦瀛樻槸鎵鏈夌紦瀛樹腑瀹歸噺鏈灝忕殑錛屾瘮浜岀駭緙撳瓨瑕佸皬寰楀氥
渚嬪侼orthwood鏍稿績鐨勪竴綰х紦瀛樹負8KB+12K渭Ops錛屽氨琛ㄧず鍏朵竴綰ф暟鎹緙撳瓨涓8KB錛屼竴綰ц拷韙緙撳瓨涓12K渭Ops錛涜孭rescott鏍稿績鐨勪竴綰х紦瀛樹負16KB+12K渭Ops錛屽氨琛ㄧず鍏朵竴綰ф暟鎹緙撳瓨涓16KB錛屼竴綰ц拷韙緙撳瓨涓12K渭Ops銆傚湪榪欓噷12K渭Ops緇濆逛笉絳変簬12KB錛屽崟浣嶉兘涓嶅悓錛屼竴涓鏄渭Ops錛屼竴涓鏄疊yte錛堝瓧鑺傦級錛岃屼笖浜岃呯殑榪愯屾満鍒跺畬鍏ㄤ笉鍚屻傛墍浠ラ偅浜涙妸Intel鐨凜PU涓綰х紦瀛樼畝鍗曠浉鍔狅紝渚嬪傛妸Northwood鏍稿績璇存垚鏄20KB涓綰х紦瀛橈紝鎶奝rescott鏍稿績璇存垚鏄28KB涓綰х紦瀛橈紝騫朵笖鎹姝よや負Intel澶勭悊鍣ㄧ殑涓綰х紦瀛樺歸噺榪滆繙浣庝簬AMD澶勭悊鍣128KB鐨勪竴綰х紦瀛樺歸噺鐨勭湅娉曟槸瀹屽叏閿欒鐨勶紝浜岃呬笉鍏鋒湁鍙姣旀с傚湪鏋舵瀯鏈変竴瀹氬尯鍒鐨凜PU瀵規瘮涓,寰堝氱紦瀛樺凡緇忛毦浠ユ壘鍒板瑰簲鐨勪笢瑗,鍗充嬌綾諱技鍚嶇О鐨勭紦瀛樺湪璁捐℃濊礬鍜屽姛鑳藉畾涔変笂涔熸湁鍖哄埆浜嗭紝姝ゆ椂涓嶈兘鐢ㄧ畝鍗曠殑綆楁湳鍔犳硶鏉ヨ繘琛屽規瘮錛涜屽湪鏋舵瀯鏋佷負榪戜技鐨凜PU瀵規瘮涓錛屽垎鍒瀵規瘮鍚勭嶅姛鑳界紦瀛樺ぇ灝忔墠鏈変竴瀹氱殑鎰忎箟銆
② 緩存是啥意思
緩存指的是將需要頻繁訪問的網路內容存放在離用戶最近、訪問速度更快的系統中,以提高內容訪問速度的一種技術。緩存伺服器就是存放頻繁訪問內容的伺服器。
幀緩沖存儲器(Frame Buffer):簡稱幀緩存或顯存,它是屏幕所顯示畫面的一個直接映象,又稱為位映射圖(Bit Map)或光柵。幀緩存的每一存儲單元對應屏幕上的一個像素,整個幀緩存對應一幀圖像。
可刻錄CD或DVD驅動器一般具有2MB-4MB以上的大容量緩沖器,用於防止緩存欠載(buffer underrun)錯誤,同時可以使刻錄工作平穩、恆定的寫入。一般來說,驅動器越快,就有更多的緩沖存儲器,以處理更高的傳輸速率。
(2)緩存的對應擴展閱讀
緩存工作原理
1、讀取順序
CPU要讀取一個數據時,首先從Cache中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入Cache中,可以使得以後對整塊數據的讀取都從Cache中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取Cache的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在Cache中,只有大約10%需要從內存讀取。
這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先Cache後內存。
2、緩存分類
Intel從Pentium開始將Cache分開,通常分為一級高速緩存L1和二級高速緩存L2。在以往的觀念中,L1 Cache是集成在CPU中的,被稱為片內Cache。在L1中還分數據Cache(D-Cache)和指令Cache(I-Cache)。
它們分別用來存放數據和執行這些數據的指令,而且兩個Cache可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。
3、讀取命中率
CPU在Cache中找到有用的數據被稱為命中,當Cache中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有2級Cache的CPU中,讀取L1 Cache的命中率為80%。
也就是說CPU從L1 Cache中找到的有用數據占數據總量的80%,剩下的20%從L2 Cache讀取。由於不能准確預測將要執行的數據,讀取L2的命中率也在80%左右(從L2讀到有用的數據占總數據的16%)。那麼還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。
在一些高端領域的CPU(像Intel的Itanium)中,我們常聽到L3 Cache,它是為讀取L2 Cache後未命中的數據設計的—種Cache,在擁有L3 Cache的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
③ 一級緩存、二級緩存、三級緩存各指什麼 高速緩沖與寄存對應哪一個
一級緩存(L1 Cache)二級緩存(L2 Cache)三級緩存(L3 Cache)都屬於高速緩存(Cache)
我們知道,CPU本身的寄存器只能存儲32個位元組,所以要使用數據的時候,必須要從內存里取出來才能使用。內存距離CPU非常遙遠,大約是10cm左右的樣子(笑)。CPU通過電信號告訴內存:「喂,內存,把1234號地址的數據給我送來。」而這樣電信號傳送的時間會很漫長,那麼CPU不得不等很長一段時間才可以繼續工作(大概比CPU工作的時間大個幾百倍)。而如果反復讀取同樣一個內存的數據,那麼不得不消耗很長一段時間。、
為了提高速度,CPU旁邊就裝了一個高速緩存。讀入內存的時候先告訴高速緩存xx地址的數值是yy,這樣再讀取同一個地址時直接利用高速緩存的數據,可以馬上回答出xx地址的數字是yy。寫入內存的時候也是先更新高速緩存然後才能寫入內存
。
一級緩存設在CPU內部,但是比起寄存器還是稍微遙遠一些。由於CPU很小,沒內存大,所以一級緩存就比內存小很多(笑),大概只有8KB-16KB
二級緩存在CPU之外,因為主板上的空間很大,所以二級緩存比一級緩存大得多(笑),大概是256KB-1MB左右,但是它的速度慢,因為它離CPU比較遠。二級緩存通常用作一級緩存與內存的交換空間
三級緩存更大,更慢
當CPU需要寫入內存的時候通常只更新三級緩存,如果數據寫入頻繁將會更新到二級乃至一級緩存
綜上所述,當CPU需要利用內存中的數據時,如圖所示: