L1快取

L1快取

一級快取即L1 Cache。集成在CPU內部中,用於CPU在處理數據過程中數據的暫時保存。由於快取指令和數據與CPU同頻工作,L1級高速快取快取的容量越大,存儲信息越多,可減少CPU與記憶體之間的數據交換次數,提高CPU的運算效率。但因高速緩衝存儲器均由靜態RAM組成,結構較複雜,在有限的CPU晶片面積上,L1級高速快取的容量不可能做得太大。

作用

但是一級快取和二級快取的大,它究竟有多少好處呢?你得告訴我們經銷商,實際上你得用最普通的話跟他講。所以我們給他們打個比方,說這個就好比你開汽車的時候,後備箱是整個的二級快取,假如說扶手裡面有一個小箱子,那是你的一級快取。一級快取大好在哪裡呢?就是你隨時開車的時候,隨時在裡面都可以取東西了。假如你一級快取小的話,你還得把車停下來,到後備箱裡取東西。

首先我們來簡單了解一下一級快取。目前所有主流處理器大都具有一級快取和二級快取,少數高端處理器還集成了三級快取。其中,一級快取可分為一級指令快取和一級數據快取。一級指令快取用於暫時存儲並向CPU遞送各類運算指令;一級數據快取用於暫時存儲並向CPU遞送運算所需數據,這就是一級快取的作用。

那么,二級快取的作用又是什麼呢?簡單地說,二級快取就是一級快取的緩衝器:一級快取製造成本很高因此它的容量有限,二級快取的作用就是存儲那些CPU處理時需要用到、一級快取又無法存儲的數據。同樣道理,三級快取和記憶體可以看作是二級快取的緩衝器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級快取、三級快取還是記憶體都不能存儲處理器操作的原始指令,這些指令只能存儲在CPU的一級指令快取中,而餘下的二級快取、三級快取和記憶體僅用於存儲CPU所需數據。

數據快取設計

根據工作原理的不同,目前主流處理器所採用的一級數據快取又可以分為實數據讀寫快取和數據代碼指令追蹤快取2種,它們分別被AMD和Intel所採用。不同的一級數據快取設計對於二級快取容量的需求也各不相同,下面讓我們簡單了解一下這兩種一級數據快取設計的不同之處。

AMD一級數據快取設計

AMD採用的一級快取設計屬於傳統的“實數據讀寫快取”設計。基於該架構的一級數據快取主要用於存儲CPU最先讀取的數據;而更多的讀取數據則分別存儲在二級快取和系統記憶體當中。做個簡單的假設,假如處理器需要讀取“AMD ATHLON 64 3000+ IS GOOD”這一串數據(不記空格),那么首先要被讀取的“AMDATHL”將被存儲在一級數據快取中,而餘下的“ON643000+ISGOOD”則被分別存儲在二級快取和系統記憶體當中(如下圖所示)。

需要注意的是,以上假設只是對AMD處理器一級數據快取的一個抽象描述,一級數據快取和二級快取所能存儲的數據長度完全由快取容量的大小決定,而絕非以上假設中的幾個位元組。“實數據讀寫快取”的優點是數據讀取直接快速,但這也需要一級數據快取具有一定的容量,增加了處理器的製造難度(一級數據快取的單位製造成本較二級快取高)。

Intel一級數據快取設計

自P4時代開始,Intel開始採用全新的“數據代碼指令追蹤快取”設計。基於這種架構的一級數據快取不再存儲實際的數據,而是存儲這些數據在二級快取中的指令代碼(即數據在二級快取中存儲的起始地址)。假設處理器需要讀取“INTEL P4 IS GOOD”這一串數據(不記空格),那么所有數據將被存儲在二級快取中,而一級數據代碼指令追蹤快取需要存儲的僅僅是上述數據的起始地址(如下圖所示)。

由於一級數據快取不再存儲實際數據,因此“數據代碼指令追蹤快取”設計能夠極大地降CPU對一級數據快取容量的要求,降低處理器的生產難度。但這種設計的弊端在於數據讀取效率較“實數據讀寫快取設計”低,而且對二級快取容量的依賴性非常大。

相關詞條

相關搜尋

熱門詞條

聯絡我們