快取簡介
快取大小也是CPU的重要指標之一,而且快取的結構和大小對CPU速度的影響非常大,CPU內快取的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統記憶體和硬碟。實際工作時,CPU往往需要重複讀取同樣的數據塊,而快取容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到記憶體或者硬碟上尋找,以此提高系統性能。但是由於CPU晶片面積和成本的因素來考慮,快取都很小。快取
快取作用
CPU快取(Cache Memory)是位於CPU與記憶體之間的臨時存儲器,它的容量比記憶體小的多但是交換速度卻比記憶體要快得多。快取的出現主要是為了解決CPU運算速度與記憶體讀寫速度不匹配的矛盾,因為CPU運算速度要比記憶體讀寫速度快很多,這樣會使CPU花費很長時間等待數據到來或把數據寫入記憶體。在快取中的數據是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開記憶體直接從快取中調用,從而加快讀取速度。由此可見,在CPU中加入快取是一種高效的解決方案,這樣整個記憶體儲器(快取 記憶體)就變成了既有快取的高速度,又有記憶體的大容量的存儲系統了。快取對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與快取間的頻寬引起的。工作原理
快取的工作原理是當CPU要讀取一個數據時,首先從快取中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從記憶體中讀取並送給CPU處理,同時把這個數據所在的數據塊調入快取中,可以使得以後對整塊數據的讀取都從快取中進行,不必再調用記憶體。正是這樣的讀取機制使CPU讀取快取的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在快取中,只有大約10%需要從記憶體讀取。這大大節省了CPU直接讀取記憶體的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先快取後記憶體。
性能優缺點
目前快取基本上都是採用SRAM存儲器,SRAM是英文Static RAM的縮寫,它是一種具有靜態存取功能的存儲器,不需要刷新電路即能保存它內部存儲的數據。不像DRAM記憶體那樣需要刷新電路,每隔一段時間,固定要對DRAM刷新充電一次,否則內部的數據即會消失,因此SRAM具有較高的性能,但是SRAM也有它的缺點,即它的集成度較低,相同容量的DRAM記憶體可以設計為較小的體積,但是SRAM卻需要很大的體積,這也是目前不能將快取容量做得太大的重要原因。它的特點歸納如下:優點是節能、速度快、不必配合記憶體刷新電路、可提高整體的工作效率,缺點是集成度低、相同的容量體積較大、而且價格較高,只能少量用於關鍵性系統以提高效率。一級快取
一級快取的重要性
按照數據讀取順序和與CPU結合的緊密程度,CPU快取可以分為一級快取,二級快取,部分高端CPU還具有三級快取,每一級快取中所儲存的全部數據都是下一級快取的一部分,這三種快取的技術難度和製造成本是相對遞減的,所以其容量也是相對遞增的。當CPU要讀取一個數據時,首先從一級快取中查找,如果沒有找到再從二級快取中查找,如果還是沒有就從三級快取或記憶體中查找。一般來說,每級快取的命中率大概都在80%左右,也就是說全部數據量的80%都可以在一級快取中找到,只剩下20%的總數據量才需要從二級快取、三級快取或記憶體中讀取,由此可見一級快取是整個CPU快取架構中最為重要的部分。位置
一級快取(Level 1 Cache)簡稱L1 Cache,位於CPU核心的旁邊,是與CPU結合最為緊密的CPU快取,也是歷史上最早出現的CPU快取。由於一級快取的技術難度和製造成本最高,提高容量所帶來的技術難度增加和成本增加非常大,所帶來的性能提升卻不明顯,性價比很低,而且現有的一級快取的命中率已經很高,所以一級快取是所有快取中容量最小的,比二級快取要小得多。組成部分
一般來說,一級快取可以分為一級數據快取(Data Cache,D-Cache)和一級指令快取(Instruction Cache,I-Cache)。二者分別用來存放數據以及對執行這些數據的指令進行即時解碼,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的衝突,提高了處理器效能。目前大多數CPU的一級數據快取和一級指令快取具有相同的容量,例如AMD的Athlon XP就具有64KB的一級數據快取和64KB的一級指令快取,其一級快取就以64KB 64KB來表示,其餘的CPU的一級快取表示方法以此類推。