程序和數(shù)據(jù)都是儲(chǔ)存在內(nèi)存上的,CPU要處理程序必須要頻繁訪問內(nèi)存。但是內(nèi)存?zhèn)骰谻PU的速度要比CPU處理的速度來得慢。根據(jù)木桶效應(yīng),整體性能被內(nèi)存?zhèn)鬏數(shù)倪^程拖累了。在沒有辦法能提高內(nèi)存速度的情況下如何降低傳輸慢對系統(tǒng)性能帶來負(fù)面影響成為重要的研究課題。(感覺像寫起了綜述論文,咳咳)緩存這一技術(shù)應(yīng)運(yùn)而生。
我們知道程序運(yùn)行具有一定規(guī)律——順序和反復(fù)性,即順序執(zhí)行和循環(huán)執(zhí)行。對于順序執(zhí)行,可以采取預(yù)讀策略。即將后面的程序一并讀取至緩存中,減少內(nèi)存讀取次數(shù)(注意CPU的讀指令并沒有減少,只是內(nèi)存響應(yīng)次數(shù)少了)。緩存行是緩存的基本單位,目前主流緩存行大小是64字節(jié)因?yàn)閮?nèi)存一次讀操作是64字節(jié),而64位CPU對數(shù)據(jù)的讀取是8字節(jié)即64bit,因此若CPU要讀的八字節(jié)落入某一緩存行中,該緩存行的內(nèi)容將會(huì)全部從內(nèi)存中被讀取到緩存中,接下來的程序也被這次讀寫一并帶到了緩存中去。對于循環(huán)執(zhí)行,則正是緩存的強(qiáng)項(xiàng),之前訪問過的程序都存儲(chǔ)在緩存中,再次讀取時(shí),直接可以從緩存而不是從內(nèi)存中讀取,大大提高了運(yùn)行效率。
為什么緩存讀取速度要比內(nèi)存快呢?這就和緩存的底層電路原理有關(guān)系了。緩存采用的是SRAM存儲(chǔ)器內(nèi)建在CPU上,而內(nèi)存采用的是DRAM。前者可以達(dá)到很高的讀取速度但是面積占用比較大因此容量上不去,在幾M容量就止步了。后者讀取速度慢每次讀取后都要刷新(有空再講),但面積占用小,因此容量可以達(dá)到好幾個(gè)G甚至幾百幾千個(gè)G。至于容量動(dòng)輒幾TB的硬盤那就要另當(dāng)別論了。
緩存又有分為一級緩存、二級緩存等等。他們的速度也有所不同,從一級緩存以后讀取速度依次降低。為什么呢?雖然都是采用的SRAM存儲(chǔ)器,但是數(shù)據(jù)檢索需要時(shí)間,數(shù)據(jù)存儲(chǔ)量大的三級緩存找的時(shí)間就比數(shù)據(jù)存儲(chǔ)量小的一級緩存找的時(shí)間久。為什么要找呢?不是直接根據(jù)地址選出對應(yīng)的數(shù)據(jù)就行了嗎?這個(gè)過程所需時(shí)間與其存儲(chǔ)的數(shù)據(jù)容量有什么關(guān)系呢?在內(nèi)存中、在CPU的寄存器組中這個(gè)過程所需時(shí)間確實(shí)與數(shù)據(jù)容量沒有太大關(guān)系。那怎么規(guī)則到緩存這里就變了呢?
如果把內(nèi)存比作圖書館的書架,那么緩存就像是CPU面前的一張桌子。給你地址讓你去找CPU想要的數(shù)據(jù),如果你是在書架上找,你可以很清楚這個(gè)數(shù)據(jù)放在哪一行哪一列,如果恰好你運(yùn)動(dòng)速度是光速的話,那么你總能在一個(gè)確定的時(shí)間內(nèi)拿到CPU想要的數(shù)據(jù)??墒蔷彺婢筒灰粯恿耍瑫驮谀忝媲?,還亂糟糟的,你需要翻閱查看地址是否對應(yīng)上了。因此桌子越大,你找得也就越慢。
就沒有別的辦法了嗎?當(dāng)然有。桌子亂可以整理整理嘛。比如規(guī)定一下,第一書架的書只能放在桌子上的A區(qū),第二書架放B區(qū)……以此類推。這樣一來,找的人便會(huì)方便很多,放的人也沒有什么困難。后者的辦法被稱為組關(guān)聯(lián),組關(guān)聯(lián)還分為一路組關(guān)聯(lián)、雙路組關(guān)聯(lián)、四路組關(guān)聯(lián)等等。組關(guān)聯(lián)就沒有壞處嗎?也有。如果桌子太小了怎么辦?劃分出來的每個(gè)區(qū)連一本書都放不下怎么辦?
我程序一直在讀取某個(gè)書架上的書怎么辦?別的區(qū)域不能放該書架上的書,而該書架的書已經(jīng)在該區(qū)域摞得老高了,這樣緩存利用效率就很低下。
審核編輯:劉清
-
DRAM
+關(guān)注
關(guān)注
40文章
2320瀏覽量
183680 -
cpu
+關(guān)注
關(guān)注
68文章
10888瀏覽量
212362 -
SRAM存儲(chǔ)器
+關(guān)注
關(guān)注
0文章
88瀏覽量
13349
發(fā)布評論請先 登錄
相關(guān)推薦
評論