我們知道,CPU效能是主要由CPU構架、核心執行緒數量、主頻、快取等諸多因素共同決定,而“快取”是很多網友容易忽視的一個地方。那麼,CPU快取是什麼?在電腦CPU中,一二三級快取究竟誰對CPU效能影響最重要呢?下面“”小編就來帶大家全面科普一下。
CPU的一二三級快取哪個重要?
CPU快取是什麼?
CPU快取(Cache Memory)是位於CPU與記憶體之間的臨時儲存器,它的容量比記憶體小的多但是交換速度卻比記憶體要快得多。CPU快取記憶體的出現主要是為了解決CPU運算速度與記憶體讀寫速度不匹配的矛盾,因為CPU運算速度要比記憶體讀寫速度快很多,這樣會使CPU花費很長時間等待資料到來或把資料寫入記憶體。在快取中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU呼叫大量資料時,就可先快取中呼叫,從而加快讀取速度。
CPU快取
快取大小是CPU的重要指標之一,而且快取的結構和大小對CPU速度的影響非常大,CPU內快取的執行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統記憶體和硬碟。實際工作時,CPU往往需要重複讀取同樣的資料塊,而快取容量的增大,可以大幅度提升CPU內部讀取資料的命中率,而不用再到記憶體或者硬碟上尋找,以此提高系統效能。但是從CPU晶片面積和成本的因素來考慮,快取都很小。
CPU快取設計示意圖
按照資料讀取順序和與CPU結合的緊密程度,CPU快取可以分為一級快取,二級快取,如今主流CPU還有三級快取,甚至有些CPU還有四級快取。每一級快取中所儲存的全部資料都是下一級快取的一部分,這三種快取的技術難度和製造成本是相對遞減的,所以其容量也是相對遞增的。
為什麼CPU會有L1、L2、L3這樣的快取設計?主要是因為現在的處理器太快了,而從記憶體中讀取資料實在太慢(一個是因為記憶體本身速度不夠,另一個是因為它離CPU太遠了,總的來說需要讓CPU等待幾十甚至幾百個時鐘週期),這個時候為了保證CPU的速度,就需要延遲更小速度更快的記憶體提供幫助,而這就是快取,如下圖所示。
當CPU要讀取一個資料時,首先從一級快取中查詢,如果沒有找到再從二級快取中查詢,如果還是沒有就從三級快取或記憶體中查詢。一般來說,每級快取的命中率大概都在80%左右,也就是說全部資料量的80%都可以在一級快取中找到,只剩下20%的總資料量才需要從二級快取、三級快取或記憶體中讀取,由此可見一級快取是整個CPU快取架構中最為重要的部分。