深入解讀CPU,CPU緩存對(duì)性能的影響有多大?
CPU,其實(shí)也就是我們的電腦、筆記本中存在的一個(gè)芯片。對(duì)于CPU的認(rèn)識(shí),其實(shí)大家也都停留在表面,并未對(duì)CPU有過(guò)多的研究。為增進(jìn)大家對(duì)CPU的認(rèn)識(shí),本文將對(duì)CPU的緩存予以介紹。如果你對(duì)CPU具有興趣,不妨和小編一起來(lái)繼續(xù)往下閱讀哦。
說(shuō)到CPU,不得不說(shuō)的就是CPU緩存,目前CPU的緩存已經(jīng)成了衡量CPU性能的一個(gè)必要指標(biāo),那么CPU緩存到底對(duì)CPU性能的影響有多大呢?
我們知道,CPU執(zhí)行指令時(shí),會(huì)將執(zhí)行結(jié)果放在一個(gè)叫“寄存器”的元件中,由于“寄存器”集成在CPU內(nèi)部,與ALU等構(gòu)成CPU的重要元件,因此寄存器中的指令很快被CPU所訪問(wèn),但畢竟寄存器的容量太小,CPU所需的大量指令和數(shù)據(jù)還在內(nèi)存(RAM)當(dāng)中,所以CPU為了完成指令操作,需要頻繁地向內(nèi)存發(fā)送接收指令、數(shù)據(jù)。
由于內(nèi)存的處理速度遠(yuǎn)遠(yuǎn)低于CPU,所以傳統(tǒng)的系統(tǒng)瓶頸在這里就產(chǎn)生了,CPU在處理指令時(shí)往往花費(fèi)很多時(shí)間在等待內(nèi)存做準(zhǔn)備工作。
為了解決這個(gè)問(wèn)題,人們?cè)贑PU內(nèi)部集成了一個(gè)比內(nèi)存快許多的“Cache”,這就是最早的“高速緩存”。
L1高速緩存是與CPU完全同步運(yùn)行的存儲(chǔ)器,也就是我們常說(shuō)的一級(jí)緩存,如果CPU需要的數(shù)據(jù)和指令已經(jīng)在高速緩存中了,那么CPU不必等待,直接就可以從一級(jí)緩存(L1)中取得數(shù)據(jù),如果數(shù)據(jù)不在L1中,CPU再?gòu)亩?jí)緩存(L2)中提取數(shù)據(jù),大大提高了系統(tǒng)的工作效率。
我們可以形象地把CPU的運(yùn)算單元想象成是一間坐落在城市中心的工廠,把內(nèi)存看成是工廠設(shè)置在郊區(qū)的一間面積很大的倉(cāng)庫(kù)A。
工廠生產(chǎn)所需要的原材料每次都要花時(shí)間去遠(yuǎn)處的倉(cāng)庫(kù)A調(diào)運(yùn),而且到達(dá)倉(cāng)庫(kù)后,還要等待倉(cāng)庫(kù)準(zhǔn)備好材料,中間浪費(fèi)了不少時(shí)間。這就是CPU頻率未變的情況下,CPU與內(nèi)存的數(shù)據(jù)交換不同步的現(xiàn)象。
而突然有一天,由于資金短缺,倉(cāng)庫(kù)A從近郊區(qū)“搬到”了遠(yuǎn)郊區(qū),這樣原料和成品在工廠與倉(cāng)庫(kù)A之間的運(yùn)輸所花費(fèi)的時(shí)間就更長(zhǎng)了,工廠生產(chǎn)所需的原料供應(yīng)不足,經(jīng)常處于空運(yùn)轉(zhuǎn)的狀態(tài)下。這就是說(shuō)當(dāng)CPU頻率增加后,CPU與內(nèi)存交換數(shù)據(jù)等待需時(shí)間會(huì)變得更長(zhǎng)。
要解決CPU與內(nèi)存交換數(shù)據(jù)不同步這個(gè)系統(tǒng)瓶頸問(wèn)題,其中一個(gè)辦法是在靠近工廠的市區(qū)設(shè)置一個(gè)小型的倉(cāng)庫(kù)B(L1 Cache)。
平時(shí)把生產(chǎn)最迫切需要、用得最多的原材料(指令和數(shù)據(jù))從倉(cāng)庫(kù)A(內(nèi)存)調(diào)配到倉(cāng)庫(kù)B(L1 Cache),這樣工廠生產(chǎn)所需要的原材料就可以很快地調(diào)配過(guò)來(lái),減少空運(yùn)轉(zhuǎn)的時(shí)間。當(dāng)所需的原材料在倉(cāng)庫(kù)B中找不到(緩存未命中)時(shí),仍然要到倉(cāng)庫(kù)A(內(nèi)存)里調(diào)配,雖然無(wú)可避免地使工廠又進(jìn)入空運(yùn)轉(zhuǎn),或部分空運(yùn)轉(zhuǎn)(CPU等待若干個(gè)時(shí)鐘周期),但這樣畢竟使等待時(shí)間大大降低了。
小知識(shí):緩存有一個(gè)“預(yù)讀”功能,也就是可以通過(guò)一定的算法,猜測(cè)接下來(lái)所要的數(shù)據(jù),并預(yù)先取入緩存。
隨著CPU的頻率提高,與內(nèi)存之間交換數(shù)據(jù)不同步的現(xiàn)象更明顯了,可以理解為倉(cāng)庫(kù)A(內(nèi)存)搬離郊區(qū),遷到更遠(yuǎn)的地方了。解決這一問(wèn)題的一個(gè)更好的辦法就是在城市的邊緣再設(shè)立一個(gè)比倉(cāng)庫(kù)B大的倉(cāng)庫(kù)C,也就是我們說(shuō)的二級(jí)緩存。
它的作用是把郊區(qū)之外的倉(cāng)庫(kù)A(內(nèi)存)中最迫切用的材料(指令)運(yùn)到倉(cāng)庫(kù)C,而工廠如果在倉(cāng)庫(kù)B中找不到所需的材料,就可以到倉(cāng)庫(kù)C中找,而不必老遠(yuǎn)跑到倉(cāng)庫(kù)A那里找,節(jié)省了不少時(shí)間。
通常情況下,L2包括L1所有的數(shù)據(jù),另外還有一些附加的數(shù)據(jù)。換言之,L1與L2、L2與內(nèi)存之間是子母關(guān)系,所以CPU緩存的出現(xiàn)更有效地解決了CPU空等待所造成的資源浪費(fèi)問(wèn)題。
當(dāng)然,CPU緩存并不是越大越好,因?yàn)榫彺娌捎玫氖撬俣瓤?、價(jià)格昂貴的靜態(tài)RAM(SRAM),由于每個(gè)SRAM內(nèi)存單元都是由4~6個(gè)晶體管構(gòu)成,增加緩存會(huì)帶來(lái)CPU集成晶體管個(gè)數(shù)大增,發(fā)熱量也隨之增大,給設(shè)計(jì)制造帶來(lái)很大的難度。所以就算緩存容量做得很大,但如果設(shè)計(jì)不合理會(huì)造成緩存的延時(shí),CPU的性能也未必得到提高
以上便是此次小編帶來(lái)的CPU相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)CPU已經(jīng)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!