一、前言
在過(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)存類型。您可能知道,計(jì)算機(jī)內(nèi)部有多種內(nèi)存類型。有一個(gè)主存儲(chǔ)(如硬盤或SSD),用于存儲(chǔ)大量數(shù)據(jù)(操作系統(tǒng)和所有程序)。
接下來(lái),我們有隨機(jī)存取存儲(chǔ)器,通常稱為RAM。這比主存儲(chǔ)要快得多。
最后,CPU自身具有更快的存儲(chǔ)單元,我們稱之為緩存。
計(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)镃PU每秒都能夠執(zhí)行大量指令。為了充分利用其功能,CPU需要訪問(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)存。就訪問(wèn)優(yōu)先級(jí)而言,L1緩存具有CPU在完成特定任務(wù)時(shí)最可能需要的數(shù)據(jù)。
就其大小而言,L1高速緩存通常最多可達(dá)256KB。但是,一些真正功能強(qiáng)大的CPU現(xiàn)在將其占用近1MB?,F(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訪問(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高速緩存的專用空間,并且占用了很大一部分空間。
五、緩存命中或未命中以及延遲
數(shù)據(jù)會(huì)從RAM依次流到L3高速緩存,然后是L2,最后是L1。
當(dāng)處理器正在尋找要執(zhí)行操作的數(shù)據(jù)時(shí),它首先嘗試在L1高速緩存中找到它。如果CPU能夠找到它,則該情況稱為高速緩存命中。然后,它繼續(xù)在L2和L3中找到它。
如果找不到數(shù)據(jù),它將嘗試從主內(nèi)存訪問(wèn)數(shù)據(jù)。這稱為高速緩存未命中。
現(xiàn)在,眾所周知,高速緩存旨在加快主內(nèi)存和CPU之間的數(shù)據(jù)傳輸。
從內(nèi)存訪問(wèn)數(shù)據(jù)所需的時(shí)間稱為延遲,L1具有最低的延遲,是最快的,并且最接近核心,而L3具有最高的延遲。緩存未命中時(shí),延遲會(huì)增加很多。這是因?yàn)镃PU必須從主存儲(chǔ)器中獲取數(shù)據(jù)。
隨著計(jì)算機(jī)變得越來(lái)越快和越來(lái)越好,我們看到延遲減少了。現(xiàn)在,我們擁有低延遲的DDR4 RAM,以及具有低訪問(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í)充滿希望。
責(zé)任編輯:xj
原文標(biāo)題:干貨 | CPU緩存L1,L2,L3的工作原理
文章出處:【微信公眾號(hào):旺材芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
cpu
+關(guān)注
關(guān)注
68文章
10698瀏覽量
209328 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7168瀏覽量
87142 -
緩存
+關(guān)注
關(guān)注
1文章
223瀏覽量
26579
原文標(biāo)題:干貨 | CPU緩存L1,L2,L3的工作原理
文章出處:【微信號(hào):wc_ysj,微信公眾號(hào):旺材芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論