2023年進(jìn)一步深入CACHE_第1頁
2023年進(jìn)一步深入CACHE_第2頁
2023年進(jìn)一步深入CACHE_第3頁
2023年進(jìn)一步深入CACHE_第4頁
2023年進(jìn)一步深入CACHE_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2023年進(jìn)一步深入CACHE下面是我為大家整理的進(jìn)一步深入CACHE,供大家參考。

進(jìn)一步深入CACHE所謂映象問題是指如何確定Cache中的內(nèi)容是主存中的哪一部分的拷貝,即必須應(yīng)用某種函數(shù)把主存地址映象到Cache中定位,也稱地址映象。

當(dāng)信息按這種方式裝入Cache中后,執(zhí)行程序時(shí),應(yīng)將主存地址變換為Cache地址,這個(gè)變換過程叫作地址變換。

地址映象方式通常采用直接映象、全相聯(lián)映象、組相聯(lián)映象三種。

每個(gè)主存地址映像到Cache中的一個(gè)指定地址的方式,稱為直接映象方式。

在直接映象方式下,主存中存儲(chǔ)單元的數(shù)據(jù)只可調(diào)入Cache中的一個(gè)位置,如果主存中另一個(gè)存儲(chǔ)單元的數(shù)據(jù)也要調(diào)入該位置則將發(fā)生沖突。

地址映像的方法一般是將主存空間按Cache的尺寸分區(qū),每區(qū)內(nèi)相同的塊號(hào)映像到Cache中相同的塊位置。

一般地,Cache被分為2N塊,主存被分為同樣大小的2M塊,主存與Cache中塊的對應(yīng)關(guān)系可用如下映像函數(shù)表示:

j=imod2N。

式中,j是Cache中的塊號(hào),i是主存中的塊號(hào)。

直接映象是一種最簡單的地址映像方式,它的地址變換速度快,而且不涉及其他兩種映像方式中的替換策略問題。

但是這種方式的塊沖突概率較高,當(dāng)稱序往返訪問兩個(gè)相互沖突的塊中的數(shù)據(jù)時(shí),Cache的命中率將急劇下降,因?yàn)檫@時(shí)即使Cache中有其他空閑塊,也因?yàn)楣潭ǖ牡刂酚诚耜P(guān)系而無法應(yīng)用。

主存中的每一個(gè)字塊可映像到Cache任何一個(gè)字塊位置上,這種方式稱為全相聯(lián)映像。

這種方式只有當(dāng)Cache中的塊全部裝滿后才會(huì)出現(xiàn)塊沖突,所以塊沖突的概率低,可達(dá)到很高的Cache命中率;但實(shí)現(xiàn)很復(fù)雜。

當(dāng)訪問一個(gè)塊中的數(shù)據(jù)時(shí),塊地址要與Cache塊表中的所有地址標(biāo)記進(jìn)行比較已確定是否命中。在數(shù)據(jù)塊調(diào)入時(shí)存在著一個(gè)比較復(fù)雜的替換問題,即決定將數(shù)據(jù)塊調(diào)入Cache中什么位置,將Cache中那一塊數(shù)據(jù)調(diào)出主存。

為了達(dá)到較高的速度,全部比較和替換都要用硬件實(shí)現(xiàn)。

組相聯(lián)映象方式是直接映象和全相聯(lián)映象的一種折衷方案。

這種方法將存儲(chǔ)空間分為若干組,各組之間是直接映像,而組內(nèi)各塊之間則是全相聯(lián)映像。

它是上述兩種映像方式的一般形式,如果組的大小為1,即Cache空間分為2N組,就變?yōu)橹苯佑诚?;如果組的大小為Cache整個(gè)的尺寸,就變?yōu)榱巳嗦?lián)映像。

組相聯(lián)方式在判斷塊命中及替換算法上都要比全相聯(lián)方式簡單,塊沖突的概率比直接映像的低,其命中率也介于直接映像和全相聯(lián)映像方式之間。

Cache和存儲(chǔ)器一樣具有兩種基本操作,即讀操作和寫操作。

當(dāng)CPU發(fā)出讀操作命令時(shí),根據(jù)它產(chǎn)生的主存地址分為兩種情形:

一種是需要的數(shù)據(jù)已在Cache中,那么只需直接訪問Cache,從對應(yīng)單元中讀取信息到數(shù)據(jù)總線;另一種是需要的數(shù)據(jù)尚未裝入Cache,CPU需從主存中讀取信息的同時(shí),Cache替換部件把該地址所在的那塊存儲(chǔ)內(nèi)容從主存拷貝到Cache中;若Cache中相應(yīng)位置已被字塊占滿,就必須去掉舊的字塊。有兩種:

1.FIFO(FirstInFirstOut)

策略總是把最先調(diào)入的Cache字塊替換出去,它不需要隨時(shí)記錄各個(gè)字塊的使用情況,較容易實(shí)現(xiàn);缺點(diǎn)是經(jīng)常使用的塊,如一個(gè)包含循環(huán)程序的塊也可能由于它是最早的塊而被替換掉。

2.LRU(LeastRecentlyUsed)

策略是把當(dāng)前近期Cache中使用次數(shù)最少的那塊信息塊替換出去,這種替換算法需要隨時(shí)記錄Cache中字塊的使用情況。

LRU的平均命中率比FIFO高,在組相聯(lián)映像方式中,當(dāng)分組容量加大時(shí),LRU的命中率也會(huì)提高。

當(dāng)CPU發(fā)出寫操作命令時(shí),也要根據(jù)它產(chǎn)生的主存地址分為兩種情形:

一種是不命中時(shí),只向主存寫入信息,不必同時(shí)把這個(gè)地址單元所在的整塊內(nèi)容調(diào)入Cache中;另一種是命中時(shí),這時(shí)會(huì)遇到如何問題,通常有三種處理方式:

1.即CPU在向Cache寫入數(shù)據(jù)的同時(shí),也把數(shù)據(jù)寫入主存以保證Cache和主存中相應(yīng)單元數(shù)據(jù)的一致性,其特點(diǎn)是簡單可靠,但由于CPU每次更新時(shí)都要對主存寫入,速度必然受影響。

2.即CPU在更新Cache時(shí)不直接更新主存中的數(shù)據(jù),而是把更新的數(shù)據(jù)送入一個(gè)緩存器暫存,在適當(dāng)?shù)臅r(shí)候再把緩存器中的內(nèi)容寫入主存。

在這種方式下,CPU不必等待主存寫入而造成的時(shí)延,在一定程度上提高了速度,但由于緩存器只有有限的容量,只能鎖存一次寫入的數(shù)據(jù),如果是連續(xù)寫入,CPU仍需要等待。

3.即CPU只向Cache寫入,并用標(biāo)記加以注明,直到Cache中被寫過的塊要被進(jìn)入的信息塊取代時(shí),才一次寫入主存。

這種方式考慮到寫入的往往是中間結(jié)果,每次寫入主存速度慢而且不必要。

其特點(diǎn)是速度快,避免了不必要的冗余寫操作,但結(jié)構(gòu)上較復(fù)雜。

此外,還有一種設(shè)置不可Cache區(qū)(Non-cacheableBlock)

的方式,即在主存中開辟一塊區(qū)域,該區(qū)域中的數(shù)據(jù)不受Cache控制器的管理,不能調(diào)入Cac

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論