一、前言
在過(guò)去的幾年中,計(jì)算機(jī)處理器取得了相當(dāng)大的進(jìn)步,晶體管的尺寸每年都在變小,而且這種進(jìn)步達(dá)到了摩爾定律迅速變得多余的地步。
當(dāng)涉及到處理器時(shí),不僅晶體管和頻率很重要,高速緩存也很重要。
在討論 CPU(Central Processing Units)時(shí),您可能聽(tīng)說(shuō)過(guò)高速緩存。但是,我們并沒(méi)有過(guò)多地關(guān)注這些數(shù)字,它們也不是這些 CPU 廣告的主要亮點(diǎn)。
那么,CPU 緩存到底有多重要,它又是如何工作的?
二、什么是 CPU 緩存?
首先,緩存只是一種非常快速的內(nèi)存類(lèi)型。您可能知道,計(jì)算機(jī)內(nèi)部有多種內(nèi)存類(lèi)型。有一個(gè)主存儲(chǔ)(如硬盤(pán)或 SSD),用于存儲(chǔ)大量數(shù)據(jù)(操作系統(tǒng)和所有程序)。
接下來(lái),我們有隨機(jī)存取存儲(chǔ)器,通常稱(chēng)為 RAM。這比主存儲(chǔ)要快得多。
最后,CPU 自身具有更快的存儲(chǔ)單元,我們稱(chēng)之為緩存。
計(jì)算機(jī)的內(nèi)存具有基于速度的層次結(jié)構(gòu),而緩存位于該層次結(jié)構(gòu)的頂部,是最快的。它也是最靠近中央處理的地方,它是 CPU 本身的一部分。
高速緩存是靜態(tài) RAM(SRAM),而系統(tǒng) RAM 是動(dòng)態(tài) RAM(DRAM)。靜態(tài) RAM 是一種可以保存數(shù)據(jù)但是不要用一直刷新的存儲(chǔ)器,與 DRAM 不同,SRAM 更加適合用于高速緩存。
三、CPU 緩存如何工作?
我們已經(jīng)知道,程序被設(shè)計(jì)為一組指令,最終由 CPU 運(yùn)行。
當(dāng)我們運(yùn)行程序的時(shí)候,這些指令必須從主存儲(chǔ)器取指令到 CPU。這是內(nèi)存層次結(jié)構(gòu)起作用的地方。
數(shù)據(jù)首先被加載到 RAM 中,然后被發(fā)送到 CPU。因?yàn)?CPU 每秒都能夠執(zhí)行大量指令。為了充分利用其功能,CPU 需要訪(fǎng)問(wèn)超高速內(nèi)存,這是緩存的來(lái)源。
內(nèi)存控制器執(zhí)行從 RAM 中獲取數(shù)據(jù)并將其發(fā)送到緩存的工作。根據(jù)系統(tǒng)中使用的 CPU,此控制器可以位于主板的北橋芯片組上,也可以位于 CPU 本身內(nèi)部。
然后,高速緩存在 CPU 內(nèi)執(zhí)行數(shù)據(jù)的來(lái)回傳輸。內(nèi)存的層次結(jié)構(gòu)也存在于緩存中。
四、緩存級(jí)別:L1,L2 和 L3
CPU 緩存分為三個(gè)主要的**“級(jí)別”**,即 L1,L2 和 L3。這里的層次結(jié)構(gòu)是根據(jù)緩存速度來(lái)劃分的。
L1(1 級(jí))高速緩存是計(jì)算機(jī)系統(tǒng)中存在的最快的內(nèi)存。就訪(fǎng)問(wèn)優(yōu)先級(jí)而言,L1 緩存具有 CPU 在完成特定任務(wù)時(shí)最可能需要的數(shù)據(jù)。
就其大小而言,L1 高速緩存通常最多可達(dá) 256KB。但是,一些真正功能強(qiáng)大的 CPU 現(xiàn)在將其占用近 1MB。現(xiàn)在,某些服務(wù)器芯片組(如 Intel 的高端 Xeon CPU)具有 1-2MB 的一級(jí)緩存。
L1 緩存通常也分為兩種方式,分為指令緩存和數(shù)據(jù)緩存。指令高速緩存處理有關(guān) CPU 必須執(zhí)行的操作的信息,而數(shù)據(jù)高速緩存則保留要在其上執(zhí)行操作的數(shù)據(jù)。
L2(2 級(jí))緩存比 L1 緩存慢,但大小更大。它的大小通常在 256KB 到 8MB 之間,盡管更新,功能強(qiáng)大的 CPU 往往會(huì)超過(guò)此大小。L2 高速緩存保存下一步可能由 CPU 訪(fǎng)問(wèn)的數(shù)據(jù)。在大多數(shù)現(xiàn)代 CPU 中,L1 和 L2 高速緩存位于 CPU 內(nèi)核本身,每個(gè)內(nèi)核都有自己的高速緩存。
L3(3 級(jí))高速緩存是最大的高速緩存存儲(chǔ)單元,也是最慢的一個(gè)。它的范圍從 4MB 到 50MB 以上。現(xiàn)代 CPU 在 CPU 裸片上具有用于 L3 高速緩存的專(zhuān)用空間,并且占用了很大一部分空間。
五、緩存命中或未命中以及延遲
數(shù)據(jù)會(huì)從 RAM 依次流到 L3 高速緩存,然后是 L2,最后是 L1。
當(dāng)處理器正在尋找要執(zhí)行操作的數(shù)據(jù)時(shí),它首先嘗試在 L1 高速緩存中找到它。如果 CPU 能夠找到它,則該情況稱(chēng)為高速緩存命中。然后,它繼續(xù)在 L2 和 L3 中找到它。
如果找不到數(shù)據(jù),它將嘗試從主內(nèi)存訪(fǎng)問(wèn)數(shù)據(jù)。這稱(chēng)為高速緩存未命中。
現(xiàn)在,眾所周知,高速緩存旨在加快主內(nèi)存和 CPU 之間的數(shù)據(jù)傳輸。
從內(nèi)存訪(fǎng)問(wèn)數(shù)據(jù)所需的時(shí)間稱(chēng)為延遲,L1 具有最低的延遲,是最快的,并且最接近核心,而 L3 具有最高的延遲。緩存未命中時(shí),延遲會(huì)增加很多。這是因?yàn)?CPU 必須從主存儲(chǔ)器中獲取數(shù)據(jù)。
隨著計(jì)算機(jī)變得越來(lái)越快和越來(lái)越好,我們看到延遲減少了。現(xiàn)在,我們擁有低延遲的 DDR4 RAM,以及具有低訪(fǎng)問(wèn)時(shí)間的超高速 SSD 作為主要存儲(chǔ),這兩項(xiàng)都大大降低了整體延遲。
以前,緩存設(shè)計(jì)曾經(jīng)使 L2 和 L3 緩存位于 CPU 外部,這對(duì)延遲產(chǎn)生了負(fù)面影響。
然而,CPU 制造工藝的進(jìn)步使得在比以前更小的空間中安裝數(shù)十億個(gè)晶體管。因此,為緩存留出了更多空間,這使緩存盡可能地靠近核心,從而大大減少了延遲。
六、緩存的未來(lái)
緩存設(shè)計(jì)一直在發(fā)展,尤其是隨著內(nèi)存變得更便宜,更快和更密集。英特爾和 AMD 在緩存設(shè)計(jì)方面進(jìn)行了相當(dāng)多的試驗(yàn),英特爾甚至還在試驗(yàn) L4 緩存。CPU 市場(chǎng)正在以前所未有的速度向前發(fā)展。
這樣,我們必定會(huì)看到緩存設(shè)計(jì)跟上 CPU 不斷增長(zhǎng)的能力。
緩存設(shè)計(jì)方面進(jìn)行了相當(dāng)多的試驗(yàn),英特爾甚至還在試驗(yàn) L4 緩存。CPU 市場(chǎng)正在以前所未有的速度向前發(fā)展。
這樣,我們必定會(huì)看到緩存設(shè)計(jì)跟上 CPU 不斷增長(zhǎng)的能力。
此外,還有很多工作可以減少現(xiàn)代計(jì)算機(jī)的瓶頸。減少內(nèi)存延遲可能是其中最大的一部分。業(yè)界正在為相同的解決方案而努力,并且未來(lái)看起來(lái)確實(shí)充滿(mǎn)希望。
審核編輯黃宇
-
處理器
+關(guān)注
關(guān)注
68文章
19349瀏覽量
230283 -
cpu
+關(guān)注
關(guān)注
68文章
10881瀏覽量
212218 -
RAM
+關(guān)注
關(guān)注
8文章
1369瀏覽量
114778 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3037瀏覽量
74148
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論