CPU緩存作用知識科普
說到CPU的規(guī)格參數(shù),相信很多小伙伴都看到過電商、評測、官方的各種表格,大家覺著最重要的是什么?第幾代核心?頻率?還是制造工藝?從這些參數(shù)在表格里的位置就知道,它們確實(shí)很重要,不過和它們一起擠在表格最前面的,常常還有“緩存”這個(gè)參數(shù),下面就讓小編帶你去看看CPU緩存作用知識科普,希望能幫助到大家!
CPU緩存的作用
CPU緩存(CPU Cache)是位于CPU與內(nèi)存之間的靜態(tài)隨機(jī)存取存儲器(StaticRandom Access Memory,SRAM)。所謂“靜態(tài)”指的是這種存儲器只要保持通電,里面存儲的數(shù)據(jù)就可以恒常保持。相比之下,電腦的內(nèi)存——?jiǎng)討B(tài)隨機(jī)存取存儲器(DRAM)里面所存儲的數(shù)據(jù)則需要周期性地刷新。
內(nèi)存簡介
電腦存儲器
SRAM的優(yōu)勢在于它不需要像DRAM一樣刷新(每隔一段時(shí)間充電一次)電路就能保存它內(nèi)部存儲的數(shù)據(jù)。因此緩存(SRAM)具有比內(nèi)存(DRAM)更高的性能。SRAM的缺點(diǎn)是SRAM集成度較低,功耗較DRAM大,相同容量的DRAM內(nèi)存可以設(shè)計(jì)得更小,但SRAM卻需要保持很大的體積,因此SRAM更加昂貴。
2.CPU緩存的工作原理
電腦在運(yùn)行程序時(shí),當(dāng)CPU要讀取一個(gè)數(shù)據(jù),首先將從緩存中查找,如果找到就立即送給CPU處理。緩存與CPU之間的數(shù)據(jù)交換速度要比CPU和內(nèi)存之間快得多。
如果CPU沒有在緩存中找到需要的數(shù)據(jù)。
就用相對慢的速度從內(nèi)存中讀取并送給CPU處理。
同時(shí)把這個(gè)數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中。
這樣,可以使得下次再使用同樣的數(shù)據(jù)時(shí),可以通過緩存快速讀取,而不必再調(diào)用內(nèi)存。而CPU在需要訪問特定的數(shù)據(jù)時(shí),也會(huì)先檢查一下緩存,看看其中是不是有自己需要的數(shù)據(jù)。
這樣的數(shù)據(jù)讀取機(jī)制使CPU讀取緩存數(shù)據(jù)的命中率(hit)非常高(90%左右),也就是說經(jīng)過上面所示的數(shù)據(jù)讀取與調(diào)用后,CPU經(jīng)常要用的數(shù)據(jù)很大可能被保存在了緩存中,當(dāng)它下一次要讀取相同的數(shù)據(jù)時(shí),90%的數(shù)據(jù)都在緩存中了,無需再從較遠(yuǎn)的內(nèi)存中調(diào)用。這大大節(jié)省了CPU直接讀取內(nèi)存的時(shí)間,也使CPU讀取數(shù)據(jù)時(shí)基本無需訪問內(nèi)存。
一臺電腦如果沒有CPU緩存,它雖然仍可以工作,但是相比擁有CPU緩存的電腦,它的運(yùn)行速度會(huì)慢很多。
3.CPU緩存解決的問題
由于CPU核心的發(fā)展速度遠(yuǎn)遠(yuǎn)超過了內(nèi)存技術(shù)的發(fā)展速度,導(dǎo)致CPU處理數(shù)據(jù)的速度太快,快到內(nèi)存提供的數(shù)據(jù)跟不上CPU處理數(shù)據(jù)的速度。緩存沒有出現(xiàn)之前,在處理器時(shí)鐘周期內(nèi),CPU常常需要等待內(nèi)存供應(yīng)數(shù)據(jù),這不僅浪費(fèi)資源,還降低了CPU的工作效率。
因此緩存便應(yīng)運(yùn)而生,它的出現(xiàn)是為了緩解CPU和內(nèi)存之間速度的不匹配問題。
緩存的出現(xiàn)解決了CPU運(yùn)行速度提升的瓶頸問題。
4.CPU的三級緩存
CPU緩存有三種不同的等級,包括L1一級緩存、L2二級緩存、L3三級緩存。
L1一級緩存
L1一級緩存也被稱為“主緩存”,這個(gè)名詞出現(xiàn)應(yīng)該是在Intel公司奔騰(Pentium)處理器時(shí)代把緩存開始分類的時(shí)候,當(dāng)時(shí)在CPU內(nèi)部集成的CPU緩存已經(jīng)不能滿足整機(jī)的性能需求,而制造工藝上的限制不能在CPU內(nèi)部大幅提高緩存的數(shù)量,所以出現(xiàn)了集成在主板上的緩存,當(dāng)時(shí)人們把CPU內(nèi)部集成的CPU緩存成為一級緩存,而把CPU外部主板上的緩存稱為二級緩存。
一級緩存位于CPU的內(nèi)部,CPU訪問它速度與CPU自身的速度相當(dāng),因此一級緩存速度非???。它是電腦中速度最快的緩存。
一級緩存其實(shí)還分為一級數(shù)據(jù)緩存(Data Cache,D-Cache,L1d)和一級指令緩存(Instruction Cache,I-Cache,L1i),分別用于存放數(shù)據(jù)及執(zhí)行數(shù)據(jù)的指令解碼,兩者可同時(shí)被CPU訪問,減少了CPU多核心、多線程爭用緩存造成的沖突,提高了處理器的效能。一般CPU的L1i和L1d具備相同的容量,例如i7-8700K的L1即為32KB+32KB。
L2二級緩存
L2二級緩存也被稱為“外部緩存”。它被用于存儲最近被處理器訪問但還沒有被一級緩存存儲的數(shù)據(jù)。二級緩存的容量要比一級緩存大,但速度卻沒有一級緩存那么快。
概括地說CPU在尋找需要的數(shù)據(jù)時(shí),沒有在一級緩存中找到自己需要的數(shù)據(jù),它便會(huì)搜索二級緩存。
隨著CPU制造工藝的發(fā)展,本來處于CPU外部的二級緩存也可以輕易地集成進(jìn)CPU內(nèi)部。
在這種情況下再用緩存是否處于CPU內(nèi)部來判斷一、二級緩存已經(jīng)不再確切。集成進(jìn)CPU的二級緩存運(yùn)行速率漸漸可以跟上CPU的運(yùn)行速度了。
L3三級緩存
早期,出現(xiàn)L3三級緩存的CPU是AMD的K6-III處理器,當(dāng)時(shí)受限于制造工藝,L3只能集成在主板上。隨后Intel首次推出L3三級緩存的CPU是Itanium安騰服務(wù)器處理器,接著就是P4EE和至強(qiáng)MP。
三級緩存的出現(xiàn)其實(shí)對CPU性能提升呈一個(gè)爬坡曲線——三級緩存在0到2M的情況下CPU性能提升非常明顯,但三級緩存在2M到6M下,對CPU性能的提升可能就只有10%不到了,這是在近代CPU多核共享L3的情況下;當(dāng)L3集成進(jìn)CPU正式成為CPU內(nèi)部緩存后,CPU處理數(shù)據(jù)時(shí)只有5%需要在內(nèi)存中調(diào)用數(shù)據(jù),進(jìn)一步地減少了內(nèi)存延遲,使系統(tǒng)的響應(yīng)更為快速。
同理,三級緩存是二級緩存與主內(nèi)存之間的緩沖器,主要體現(xiàn)在提升CPU對大數(shù)據(jù)處理方面的性能,對游戲表現(xiàn)方面有較大的幫助。
三級緩存的容量比二級緩存要大,但速度卻比二級緩存要慢。三級緩存也被稱為共享緩存。因?yàn)樗拇鎯臻g是被CPU之間的所有內(nèi)核共享的。
而一級和二級緩存則是專用的,CPU中每個(gè)核心都有自己的一級和二級核心。
總結(jié)
由于數(shù)據(jù)的局限性,CPU往往需要在短時(shí)間內(nèi)重復(fù)多次讀取數(shù)據(jù),內(nèi)存的運(yùn)行頻率自然是遠(yuǎn)遠(yuǎn)跟不上CPU的處理速度的。此時(shí),緩存的重要性就凸顯出來了,CPU可以避開內(nèi)存在緩存里讀取到想要的數(shù)據(jù),稱之為命中(hit)。一級的運(yùn)行速度很快,但是它的數(shù)據(jù)容量很小,CPU能在一級緩存里命中的概率大概在80%左右;二級、三級緩存的機(jī)制也類似如此。這樣一來,電腦在運(yùn)行程序時(shí),CPU需要在內(nèi)存中讀取的數(shù)據(jù)大概為其所需數(shù)據(jù)的5%-10%,其余數(shù)據(jù)命中全部可以在L1、L2、L3中做到,這大大減少了系統(tǒng)的響應(yīng)時(shí)間,總的來說,所有CPU讀取數(shù)據(jù)的順序都是先緩存再內(nèi)存。
為了加深讀者對CPU緩存和三級緩存的了解,這里用一個(gè)比喻來總結(jié)以上內(nèi)容。
如果我們把CPU中的一個(gè)核心可以看成是一個(gè)只會(huì)算加減乘除以及與或非之類的簡單邏輯運(yùn)算的小學(xué)生,它的任務(wù)也就是不停地算一個(gè)個(gè)的加減乘除與或非這樣的計(jì)算題。
CPU緩存有什么用?來,科普一下!
CPU沒有存儲功能,那么緩存到底是干什么的?CPU緩存是用于減少處理器訪問內(nèi)存所需平均時(shí)間的部件,作用類似于CPU內(nèi)部的內(nèi)存。
更詳細(xì)來講,在計(jì)算機(jī)系統(tǒng)中,CPU高速緩存在金字塔式存儲體系中它位于自頂向下的第二層,僅次于CPU寄存器。其容量遠(yuǎn)小于內(nèi)存,但速度卻可以接近處理器的頻率,比內(nèi)存快得多。
緩存的出現(xiàn)主要是為了解決CPU運(yùn)算速度與內(nèi)存讀寫速度不匹配的矛盾,因?yàn)镃PU運(yùn)算速度要比內(nèi)存讀寫速度快很多,這樣會(huì)使CPU花費(fèi)很長時(shí)間等待數(shù)據(jù)到來或把數(shù)據(jù)寫入內(nèi)存。
按照數(shù)據(jù)讀取順序和與CPU結(jié)合的緊密程度,CPU緩存可以分為一級緩存,二級緩存,部分高端CPU還具有三級緩存。
之所以CPU需要采用這種層級結(jié)構(gòu),主要就是是從成本、性能、容量還有面積上來平衡的。
提升命中率:所謂的命中率是在高速緩存中找到內(nèi)存引用的速率,我們希望能夠首先通過緩存中獲得信息,以得到速度優(yōu)勢,所以緩存需要最大限度地實(shí)現(xiàn)這一目標(biāo)。對于單個(gè)高速緩存,大小、關(guān)聯(lián)性和塊大小決定命中率。
降低更低級別內(nèi)存下的開銷:高速緩存是內(nèi)存層次結(jié)構(gòu)的一部分,其性能會(huì)影響其它性能,處理其它內(nèi)存花費(fèi)的時(shí)間越長,意味著系統(tǒng)性能越低,也就是說盡可能讓處理在緩存中完成。
減少錯(cuò)失懲罰:緩存中不能命中是無法避免的事情,但是我們可以減少處理未命中所需的時(shí)間以獲得更好的處理器性能,通過提升命中率并通過應(yīng)用不同的優(yōu)化,能夠降低錯(cuò)失懲罰。
高速緩存是CPU中十分重要的部分,占據(jù)了大量的資源開銷和成本,如果您看過CPU架構(gòu)圖的話,您就會(huì)發(fā)現(xiàn)緩存占據(jù)了至少50%的面積,絕對至關(guān)重要。
CPU緩存是什么 知道它挑選更明智
現(xiàn)在大家看到的CPU緩存一般分三級,就是一級緩存(L1 Cache)、二級緩存(L2 Cache)和三級緩存(L3 Cache),它們的位置、大小、作用差別都很大,咱們分別說說。
CPU的一級緩存一般做在CPU的每個(gè)核心內(nèi)部,因?yàn)榭臻g受限,不會(huì)很大,都是幾十kB。它們的任務(wù)是存儲核心計(jì)算時(shí)候的暫時(shí)性數(shù)據(jù),可以說是每個(gè)核心自用的小內(nèi)存,更形象地說就是給每個(gè)核心童鞋計(jì)算時(shí)配的草稿紙。
二級緩存同樣是跟著每個(gè)核心的,一般有幾百kB,它也只存儲每個(gè)核心自己的數(shù)據(jù),這點(diǎn)類似更大但更慢的一級緩存。此外它存儲的是比較“成型”的數(shù)據(jù)結(jié)果,這些數(shù)據(jù)要和三級緩存做交流的。形象地說,就是除了草稿之外,也存了不少核心童鞋需要處理和已經(jīng)做完,要上交的作業(yè)、試卷。
三級緩存可就大了,現(xiàn)在主流CPU的配備都是成MB的,一般是整個(gè)CPU或者其中的某幾個(gè)核心共用。它首先是多個(gè)核心的“會(huì)議桌”,相互間的數(shù)據(jù)交換都在這里進(jìn)行,當(dāng)然內(nèi)置顯示核心也要使用。另外它也和硬盤等配件的緩存一樣,負(fù)責(zé)和內(nèi)存交換數(shù)據(jù)。
一般來說,英特爾和AMD的一、二級緩存容量差不多,但三級差別很大,比如同樣是中端CPU,銳龍5就有十幾、幾十MB的三級緩存,酷睿i5只有幾MB,高端就差更多了。這樣銳龍就可以靠大緩存把盡量多數(shù)據(jù)放在身邊,減少對內(nèi)存的依賴,提升性能,從現(xiàn)在對銳龍大量的“真香”評論可以看出,這招真的很管用。
雖然用第三代銳龍的超大緩存舉例有點(diǎn)極端,不過挺能說明問題,就是“核心效率不夠高,緩存幫你性能提一提”。所以在選擇CPU的時(shí)候,如果感覺核心有點(diǎn)過時(shí),或者頻率有點(diǎn)低的話,不妨看一看緩存,如果緩存比對手大不少,那么還是可以考慮的,其實(shí)低頻率的筆記本CPU常常也是這樣做的哦。