http://blog.cnyes.com/My/b31k23/article291145

 6.L1/L2快取



算完一堆數學有點頭昏腦脹了嗎?接下來也是個數大便是美的規格,但不必再乘來乘去了,快取(Cache)。



在這一系列教學的第一篇就有講到,CPU需要記憶體做資料暫存,但CPU實在太快了,在記憶體裡運算資料還是嫌太慢了,所以現在CPU都直接在晶片裡內裝記憶體,也就是快取機制,由於快取記憶體根本就在CPU裡面,時脈和CPU一致,速度飛快。一般是64KB的「L1資料快取」和64KB的「L1指令快取」,還有1MB到4MB不等的「L2資料快取」。


電腦很多地方都有「快取」的設計,它的意義很簡單,就是高速裝置和慢速裝置中間的緩衝區。以CPU為例,當你執行一個軟體,比如Word,資料就先從硬碟載到記憶體,再從記憶體讀到CPU快取裡,CPU是從快取裡執行,這樣遇到需要重複使用的資料時,就能從快取裡讀,不必再繞遠路去翻記憶體。而L1和L2就是第一、第二層快取,因為.....該死的!CPU實在太快,必須要有非常非常快的快取做為它的暫存區,這就是L1,可是這種超高速的快取製作困難,成本極高,量不能太大,通常只有64KB或128KB,暫存最近執行的資料。而第二層的L2就比較大,1MB、2MB、4MB都有人做,放一些較久之前執行的資料,再更久一點的就到記憶體去,而不太常用的才回到硬碟。


而CPU找資料也是從L1、L2、記憶體、硬碟依序從最近(最快,容量最小,最貴),到最遠(最慢、容量最大,最便宜)找下去,而儲存資料時,比如存檔Word文件,也是這樣一步一步回到硬碟去。一些伺服器用的CPU還會有更大的L3快取做第三層緩衝,未來製程進步,也許一般消費端CPU也會有L3。快取是愈大愈好,因為CPU內部的運算單元執行速度超快,對一點點的延遲都很敏感,最好一切都能在快取內執行,需要載入新資料時,不得已才從記憶體裡讀。所以快取大小是評斷CPU效能的依據,通常性能愈強的CPU,也會搭配更大的快取。


但要注意,不同廠商的快取大小不能混為一談,因為所用的架構不同,比如Intel CPU的快取通常是AMD CPU的兩倍或更大,這是有特殊原因的。







CPU存取資料的順序如上圖所示,由最快最近的地方找起,如果沒抓到想要的資料再一層層往下找,因此愈上層的部分,影響效能就愈明顯。寫入資料時也是一層層往下寫,除了硬碟可以永久儲存之外,其他都是一斷電,資料就消失,所以如果你在編輯一個Word檔,在還沒有存檔之前,只有CPU的快取和記憶體裡有資料,一跳電,就完了。






快取對CPU有多重要?有圖有真相,這是一張CPU晶圓的顯微照相圖,周圍一塊是L3快取、中間是L2快取、裡面還有L1快取。事實上,現在CPU電晶體將近1/2都是快取。






CPU-Z裡有個「latency.exe」,執行就可以看讀快取的延遲,圖中顯示L1是3個時脈週期,L2是14個時脈週期。存取記憶體的話,大概需要3位數的時脈週期。
 






 




[圖]
 






 


 






[圖]
 








[圖]
 









[圖]
 




--
 熱門文章         ott板 首頁        看板討論區          看板列表         ott板 熱門文章 


 



 
※ 編輯: ott 時間: 2017-11-20 07:47:12
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 115 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇