解讀CPU快取,它們如何工作的?
導讀 | 究竟什麼是 CPU 快取?為什麼有 L1、L2 和 L3 快取?以下是您需要了解的內容以及它們的工作原理。 |
近年來,計算機中央處理器已經取得了相當大的進步,電晶體每年都在變小,效能也變得更加強大。每當提到處理器的效能時,人們往往會想到電晶體和頻率。實際上,除了更多的電晶體數量和更高的頻率之外,快取也非常重要。
對於大部分人來講,他們大都聽說過快取。但是,並沒有對 CPU 快取的容量給予足夠的關注。那麼,CPU 快取到底有多重要,它是如何工作的?
簡而言之,CPU 快取只是一種非常快速的記憶體型別。在計算的早期,處理器速度和記憶體速度都很低。然而,在 1980 年代,處理器速度開始迅速提高。當時的系統記憶體(RAM)無法應對或匹配不斷增加的CPU速度,因此一種新型的超快記憶體誕生了:CPU快取。
現在,您的計算機內部有多種型別的記憶體,例如有主儲存(如硬碟或 SSD)儲存大部分資料,即作業系統和程式。
還有“隨機存取儲存器”, 俗稱記憶體,它比主儲存快得多,但只是一個短期儲存介質,它讓計算機及其程式使用 RAM 來儲存經常訪問的資料,從而幫助保持計算機上的操作良好而快速。
最後,CPU 內部還具有更快的記憶體單元,稱為 CPU 快取。
計算機記憶體具有基於其執行速度的層次結構。CPU 快取位於此層次結構的頂部,是最快的。它也是最接近中央處理的地方,是CPU本身的一部分。從技術上來看,快取記憶體的執行速度比 RAM 快 10 到 100 倍,只需要幾納秒即可響應 CPU 請求。
計算機記憶體也有不同的型別,其中快取記憶體是靜態RAM(SRAM)的一種形式,而常規系統RAM稱為動態RAM(DRAM)。靜態RAM可以儲存資料而無需不斷重新整理,這與DRAM不同,這使得SRAM成為快取的理想選擇。
計算機上的應用程式被設計為 CPU 解釋和執行的一組指令。當您執行程式時,指令會從主儲存(硬碟驅動器)傳輸到 CPU,這就是記憶體層次結構發揮作用的地方。
資料首先載入到 RAM 中,然後傳送到 CPU。CPU每秒能夠執行大量指令。為了充分利用其功能,CPU 需要訪問超快記憶體,這就是 CPU 快取的用武之地。
記憶體控制器從 RAM 獲取資料並將其傳送到 CPU 快取,然後記憶體快取在 CPU 內來回執行資料。當然,記憶體層次結構也存在於 CPU 快取中。
CPU 快取記憶體分為三個“級別”:L1、L2 和 L3,記憶體層次結構則根據速度以及快取大小進行排列。
L1(級別 1)快取是計算機系統中存在的最快記憶體。就訪問優先順序而言,一級快取具有 CPU 在完成特定任務時最有可能需要的資料。
一級快取的大小取決於 CPU。一些高階消費類CPU現在具有1MB的L1快取,如Intel i9-9980XE,但這些要花費大量資金,而且仍然很少。一些伺服器晶片組,如英特爾的Xeon系列,還具有1-2MB的L1記憶體快取。
由於一級快取的大小沒有“標準”,因此您必須在購買前仔細檢視 CPU 規格以確定確切的一級記憶體快取大小。
英特爾 CPU L1 資料快取圖
一級快取通常分為兩部分:指令快取和資料快取。指令快取記憶體處理有關 CPU 必須執行的操作的資訊,而資料快取記憶體儲存要對其執行操作的資料。
L2(級別 2)快取比 L1 快取慢,但容量更大。L1 快取可能以 KB 為單位,而 L2 記憶體快取以兆位元組為單位。例如,AMD Ryzen 5 5600X具有384KB的L1快取和3MB的L2快取(加上32MB的L3快取)。
二級快取大小因 CPU 而異,但其大小通常在 256KB 到 32MB 之間。大多數 CPU 將包含超過 256KB 的二級快取,這在現階段是最小的。此外,一些最強大的 CPU 具有更大的二級記憶體快取,遠遠超過 8MB。
在速度方面,二級快取落後於一級快取,但仍然比您的系統 RAM 快得多。一級記憶體快取通常比 RAM 快 100 倍,而二級快取大約快 25 倍。
早期,L3記憶體快取實際上是在主機板上找到的。現在,CPU 中的 L3 快取可能非常龐大,高階消費類 CPU 具有高達 32MB 的 L3 快取,某些伺服器 CPU L3 快取可能會超過此值,最高可達 128MB。
L3 快取是最大但也是最慢的快取單元。 但是,雖然晶片本身的每個核心都存在L1和L2快取,但L3快取更類似於整個晶片都可以利用的通用記憶體池。
快取越多、容量越大,則會越好,價格也會越高。新一代的CPU自然會比老一代包含更多的CPU快取,並且快取也可能更快。
因此,我們可以根據自己的實際應用場景需求,在購買產品之前仔細檢視產品的規則,以此來保證買到自己想要的產品。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2943134/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CPU快取重新整理的誤解快取
- 從CPU快取看快取的套路快取
- CPU快取快取
- 快取的基礎概念解讀快取
- Redis快取篇(一)Redis是如何工作的Redis快取
- CPU快取記憶體快取記憶體
- CPU、記憶體、快取的關係詳細解釋!記憶體快取
- CPU快取是什麼?一二三級快取哪個對CPU最重要?快取
- 多核cpu、cpu快取記憶體、快取一致性協議、快取行、記憶體快取記憶體協議
- 都在使用的快取,騰訊大牛告訴你他們是如何使用快取的快取
- 電腦CPU二級快取的開啟方法和如何檢視二級快取的引數快取
- 一文讀懂快取穿透、快取擊穿、快取雪崩及其解決方案快取穿透
- 詳解CPU的主頻、核心、執行緒、快取、架構執行緒快取架構
- 在Linux中,什麼是守護程序,它們是如何工作的?Linux
- 個人總結-CPU快取快取
- 面試/工作必備!3種常用的快取讀寫策略!面試快取
- Spring Boot + Redis 快取方案深度解讀Spring BootRedis快取
- Masa Framework原始碼解讀-02快取模組(分散式快取進階之多級快取)Framework原始碼快取分散式
- CPU快取和記憶體屏障快取記憶體
- 談談CPU快取記憶體快取記憶體
- 在Linux中,什麼是檔案許可權?它們是如何工作的?Linux
- JavaScript是如何工作的: CSS 和 JS 動畫底層原理及如何優化它們的效能JavaScriptCSSJS動畫優化
- JAVA 拾遺 — CPU Cache 與快取行Java快取
- 人人都應該知道的CPU快取執行效率快取
- 快取穿透、快取擊穿、快取雪崩的場景以及解決方法快取穿透
- 精讀《函式快取》函式快取
- 快取問題(四) 快取穿透、快取雪崩、快取併發 解決案例快取穿透
- Java中volatile副作用:不使用CPU快取Java快取
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- 一文詳解 JuiceFS 讀效能:預讀、預取、快取、FUSE 和物件儲存UI快取物件
- Golang 中如何獲取當前路徑,它們之間有啥差異Golang
- 解讀MySQL 8.0資料字典快取管理機制MySql快取
- CPU快取學習及C6678快取使用總結(知識歸納)快取
- 系統效能調優:提升 CPU 快取的命中率快取
- 快取穿透、快取擊穿、快取雪崩概念及解決方案快取穿透
- 【Redis】快取穿透,快取擊穿,快取雪崩及解決方案Redis快取穿透
- REDIS快取穿透,快取擊穿,快取雪崩原因+解決方案Redis快取穿透
- 淺解強快取和協商快取快取