什么是高速緩存
什么是高速緩存
高速緩存
高速緩存(英語(yǔ):cache)
其原始意義是指訪(fǎng)問(wèn)速度比一般隨機(jī)存取存儲(chǔ)器(RAM)快的一種RAM,通常它不像系統(tǒng)主存那樣使用DRAM技術(shù),而使用昂貴但較快速的SRAM技術(shù)。
原理
Cache一詞來(lái)源于1967年的一篇電子工程期刊論文。其作者將法語(yǔ)詞“cache”賦予“safekeeping storage”的涵義,用于電腦工程領(lǐng)域。
當(dāng)CPU處理數(shù)據(jù)時(shí),它會(huì)先到Cache中去尋找,如果數(shù)據(jù)因之前的操作已經(jīng)讀取而被暫存其中,就不需要再?gòu)碾S機(jī)存取存儲(chǔ)器(Main memory)中讀取數(shù)據(jù)——由于CPU的運(yùn)行速度一般比主內(nèi)存的讀取速度快,主存儲(chǔ)器周期(訪(fǎng)問(wèn)主存儲(chǔ)器所需要的時(shí)間)為數(shù)個(gè)時(shí)鐘周期。因此若要訪(fǎng)問(wèn)主內(nèi)存的話(huà),就必須等待數(shù)個(gè)CPU周期從而造成浪費(fèi)。
提供“高速緩存”的目的是為了讓數(shù)據(jù)訪(fǎng)問(wèn)的速度適應(yīng)CPU的處理速度,其基于的原理是內(nèi)存中“程序執(zhí)行與數(shù)據(jù)訪(fǎng)問(wèn)的局域性行為”,即一定程序執(zhí)行時(shí)間和空間內(nèi),被訪(fǎng)問(wèn)的代碼集中于一部分。為了充分發(fā)揮高速緩存的作用,不僅依靠“暫存剛剛訪(fǎng)問(wèn)過(guò)的數(shù)據(jù)”,還要使用硬件實(shí)現(xiàn)的指令預(yù)測(cè)與數(shù)據(jù)預(yù)取技術(shù)——盡可能把將要使用的數(shù)據(jù)預(yù)先從內(nèi)存中取到高速緩存里。
CPU的高速緩存曾經(jīng)是用在超級(jí)計(jì)算機(jī)上的一種高級(jí)技術(shù),不過(guò)現(xiàn)今電腦上使用的的AMD或Intel微處理器都在芯片內(nèi)部集成了大小不等的數(shù)據(jù)高速緩存和指令高速緩存,通稱(chēng)為L(zhǎng)1高速緩存(L1 Cache即Level 1 On-die Cache,第一級(jí)片上高速緩沖存儲(chǔ)器);而比L1更大容量的L2高速緩存曾經(jīng)被放在CPU外部(主板或者CPU接口卡上),但是現(xiàn)在已經(jīng)成為CPU內(nèi)部的標(biāo)準(zhǔn)組件;更昂貴的CPU會(huì)配備比L2高速緩存還要大的L3高速緩存(level 3 On-die Cache第三級(jí)高速緩沖存儲(chǔ)器)。