複製鏈接
請複製以下鏈接發送給好友

L1緩存

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

L1緩存作用

但是一級緩存二級緩存大,它究竟有多少好處呢?你得告訴我們經銷商,實際上你得用最普通的話跟他講。所以我們給他們打個比方,説這個就好比你開汽車的時候,後備箱是整個的二級緩存,假如説扶手裏面有一個小箱子,那是你的一級緩存。一級緩存大好在哪裏呢?就是你隨時開車的時候,隨時在裏面都可以取東西了。假如你一級緩存小的話,你還得把車停下來,到後備箱裏取東西。
首先我們來簡單瞭解一下一級緩存。所有主流處理器大都具有一級緩存和二級緩存,少數高端處理器還集成了三級緩存。其中,一級緩存可分為一級指令緩存和一級數據緩存。一級指令緩存用於暫時存儲並向CPU遞送各類運算指令;一級數據緩存用於暫時存儲並向CPU遞送運算所需數據,這就是一級緩存的作用。
那麼,二級緩存的作用又是什麼呢?簡單地説,二級緩存就是一級緩存的緩衝器:一級緩存製造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的數據。同樣道理,三級緩存和內存可以看作是二級緩存的緩衝器,它們的容量遞增,但單位制造成本卻遞減。需要注意的是,無論是二級緩存、三級緩存還是內存都不能存儲處理器操作的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而餘下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。

L1緩存數據緩存設計

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

L1緩存AMD一級數據緩存設計

AMD採用的一級緩存設計屬於傳統的“實數據讀寫緩存”設計。基於該架構的一級數據緩存主要用於存儲CPU最先讀取的數據;而更多的讀取數據則分別存儲在二級緩存系統內存當中。做個簡單的假設,假如處理器需要讀取“AMD ATHLON 64 3000+ IS GOOD”這一串數據(不記空格),那麼首先要被讀取的“AMDATHL”將被存儲在一級數據緩存中,而餘下的“ON643000+ISGOOD”則被分別存儲在二級緩存和系統內存當中(如下圖所示)。
需要注意的是,以上假設只是對AMD處理器一級數據緩存的一個抽象描述,一級數據緩存和二級緩存所能存儲的數據長度完全由緩存容量的大小決定,而絕非以上假設中的幾個字節。“實數據讀寫緩存”的優點是數據讀取直接快速,但這也需要一級數據緩存具有一定的容量,增加了處理器的製造難度(一級數據緩存的單位制造成本較二級緩存高)。

L1緩存Intel一級數據緩存設計

自P4時代開始,Intel開始採用全新的“數據代碼指令追蹤緩存”設計。基於這種架構的一級數據緩存不再存儲實際的數據,而是存儲這些數據在二級緩存中的指令代碼(即數據在二級緩存中存儲的起始地址)。假設處理器需要讀取“INTEL P4 IS GOOD”這一串數據(不記空格),那麼所有數據將被存儲在二級緩存中,而一級數據代碼指令追蹤緩存需要存儲的僅僅是上述數據的起始地址(如下圖所示)。
由於一級數據緩存不再存儲實際數據,因此“數據代碼指令追蹤緩存”設計能夠極大地降CPU對一級數據緩存容量的要求,降低處理器的生產難度。但這種設計的弊端在於數據讀取效率較“實數據讀寫緩存設計”低,而且對二級緩存容量的依賴性非常大。