組成原理課件 - 高速緩沖存儲(chǔ)器_第1頁(yè)
組成原理課件 - 高速緩沖存儲(chǔ)器_第2頁(yè)
組成原理課件 - 高速緩沖存儲(chǔ)器_第3頁(yè)
組成原理課件 - 高速緩沖存儲(chǔ)器_第4頁(yè)
組成原理課件 - 高速緩沖存儲(chǔ)器_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

§7·5高速緩沖存儲(chǔ)器一、高速緩沖存儲(chǔ)器和工作原理1、高速緩沖存儲(chǔ)器

CACHE是一個(gè)高速度、小容量的緩沖存儲(chǔ)器,存儲(chǔ)CPU最經(jīng)常訪問(wèn)的指令或數(shù)據(jù),一般用SRAM芯片構(gòu)成,其全部功能由硬件實(shí)現(xiàn),對(duì)程序員是透明的。CACHE用于解決CPU與主存間的速度匹配問(wèn)題,其理論依據(jù)是程序訪問(wèn)的局部性原理。在一個(gè)較短的時(shí)間內(nèi),CPU對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問(wèn),而對(duì)此址范圍外的地址訪問(wèn)很少。程序訪問(wèn)的局部性原理2、工作原理

為了使主存與cache之間映射,將主存與緩存都分在若干個(gè)塊,每個(gè)塊包含若干個(gè)字,并使塊的大小相等。將主存n位地址分為高m位和低b位,緩存地址也分成高c位和低b位。主存的塊數(shù)M=2m遠(yuǎn)大于緩存的塊數(shù)C=2c塊。由于緩存的塊數(shù)遠(yuǎn)小于主存的塊數(shù),一個(gè)緩存塊不能唯一、永久地對(duì)應(yīng)一個(gè)主存塊,每個(gè)緩存塊需設(shè)一個(gè)標(biāo)記,用來(lái)表示當(dāng)前存放的是哪一個(gè)主存塊,該標(biāo)記的內(nèi)容相當(dāng)于主存塊的編號(hào)(即主存地址的高m位)。CPU讀信息時(shí)根據(jù)主存地址的低位部分,將主存地址的高位部分與緩存塊的標(biāo)記進(jìn)行比較,以判斷所讀信息是否在緩存中。

~~~~~~~~主存儲(chǔ)器Cache

主存塊號(hào)0122m-1::::::::::::::::::::字塊0字塊1字塊2字塊M-1字塊0字塊1字塊C-1012c-1標(biāo)記(1)CACAHE命中:CPU訪問(wèn)的數(shù)據(jù)或指令已存在于CACHE中。(2)命中時(shí)間:在CACHE命中時(shí)的訪存時(shí)間,它等于CACHE的訪問(wèn)時(shí)間。(3)失效時(shí)間:CACHE不命中時(shí)因訪存而增加的訪問(wèn)時(shí)間,它等于對(duì)主存的訪問(wèn)時(shí)間和將主存中的數(shù)據(jù)調(diào)入CACHE的時(shí)間。M=2mC=2c3、高速緩沖存儲(chǔ)器設(shè)計(jì)中要考慮的問(wèn)題(1)地址映象:主存中的塊放入CACHE中的什么地方。(2)塊的替換策略:CACHE放滿時(shí)將哪塊數(shù)據(jù)移去再調(diào)入要訪問(wèn)的塊。(3)塊的更新策略:解決CACHE數(shù)據(jù)寫操作與主存寫操作的關(guān)系。(4)CACHE容量16KB~256K和塊的容量4B~128B。二、地址映象根據(jù)主存的地址來(lái)構(gòu)成CACHE的地址,即主存地址與CACHE地址之間的邏輯關(guān)系。

地址映象關(guān)系是用地址映象表來(lái)表示的,這張表反映了主存單元和CACHE單元間的對(duì)應(yīng)關(guān)系,這張表是用硬件實(shí)現(xiàn)的。

塊號(hào)塊內(nèi)地址地址映象表塊號(hào)塊內(nèi)地址CACHE主存地址在訪問(wèn)存儲(chǔ)器時(shí),根據(jù)主存地址的低位部分在地址映象表中查找標(biāo)志并與主存地址的高位部分進(jìn)行比較,相同命中,將高速CACHE中數(shù)據(jù)送CPU,不相同從主存調(diào)入數(shù)據(jù),再送入CPU。地址變換和替換算法均用硬件實(shí)現(xiàn),CACHE對(duì)程序員是透明的。主存命中?調(diào)入?替換機(jī)構(gòu)CPU訪問(wèn)主存替換CacheNNYY訪問(wèn)主存裝入Cache數(shù)據(jù)直接通路Cache地址數(shù)據(jù)總線、1、直接映象:一個(gè)主存塊只能映象到CACHE中的唯一一個(gè)指定塊的地址映象方式。

第1塊第2塊第3塊第4塊第1塊第2塊第3塊第4塊第5塊第6塊第7塊第8塊第9塊第10塊第11塊第12塊第13塊第14塊第15塊第16塊一個(gè)塊由若干個(gè)字節(jié)組成,由于主存容量比CACHE大得多,所以主存有許多塊會(huì)映射到CACHE的同一個(gè)塊上,將主存塊地址對(duì)CACHE的塊數(shù)取模即得到CACHE中的塊地址。主存地址:區(qū)號(hào)、塊號(hào)、塊內(nèi)地址區(qū)號(hào):作為標(biāo)志存放在地址映象表中,用于判斷命中與否。塊號(hào):用于查找地址映象表和在CACHE中的塊尋址。塊內(nèi)地址:用于塊內(nèi)尋址。

在訪存操作時(shí),根據(jù)地址中的塊號(hào)讀出塊表中的區(qū)號(hào)并與當(dāng)前地址的區(qū)號(hào)進(jìn)行比較,比較結(jié)果相同表示CACHE命中,訪問(wèn)可對(duì)CACHE進(jìn)行,比較不相同則表示不命中,訪問(wèn)需要對(duì)主存進(jìn)行。特點(diǎn):不需采用相聯(lián)存儲(chǔ)器,判斷命中的方法簡(jiǎn)單,也不要替換算法,速度快,可實(shí)現(xiàn)大容量的CACHE。但數(shù)據(jù)塊的沖突率高。區(qū)號(hào)主存塊號(hào)塊內(nèi)地址塊號(hào)塊內(nèi)地址比較主存區(qū)號(hào)標(biāo)志主存地址Cach地址不相等塊失效相等塊表按塊號(hào)查找例:有一個(gè)CACHE的容量為2K字,每個(gè)塊16個(gè)字,求(1)該CACHE可容納多少個(gè)塊?(2)如果主存的容量是256K字,則有多少個(gè)塊?(3)主存的地址有多少位?CACHE地址有多少位?(4)在直接映象方式下,主存中的第i塊映象到CACHE中哪一個(gè)塊中?(5)進(jìn)行地址映象時(shí),存儲(chǔ)器的地址分成哪幾段?各段分別有多少位?(1)CACHE塊數(shù):2K/16=128塊(2)主存塊數(shù):256K/16=16K(3)主存的地址位數(shù):log2256K=18位CACHE地址位數(shù):log22K=11位(4)在直接映象方式下,主存中的第i塊映象到CACHE中的imod128個(gè)塊中(5)存儲(chǔ)器的地址分成區(qū)號(hào)、主存塊號(hào)和塊內(nèi)地址三段區(qū)號(hào):主存地址位數(shù)與CACHE地址位數(shù)之差:18-11=7主存塊號(hào):塊地址長(zhǎng)度與CACHE的塊數(shù)有關(guān),CACHE是128塊,所以主存塊號(hào)有l(wèi)og2128=7位塊內(nèi)地址:每個(gè)塊由16個(gè)字組成,所以塊內(nèi)地址的位數(shù):log216=4位。

2、全相聯(lián)映象:每個(gè)主存塊可映象到任何CACHE塊的地址映象。

在訪問(wèn)操作時(shí),根據(jù)地址中的塊號(hào)在塊表中查找是否有相同的主存塊號(hào)。如果有,則表示CACHE命中,將對(duì)應(yīng)的CACHE塊號(hào)取出并對(duì)CACHE進(jìn)行訪問(wèn),如果沒有,則CACHE沒有命中,需對(duì)主存訪問(wèn),在將主存中的塊調(diào)入CACHE中的同時(shí)將主存塊號(hào)寫入塊表中,以改變地址映象關(guān)系。特點(diǎn):是最靈活的地址映象方式,地址是映象算法復(fù)雜,需要采用

相聯(lián)存儲(chǔ)器,適合小容量的CACHE,速度慢。第0塊第1塊…….第N-1塊第0塊第1塊第M(N-1)主存塊號(hào)塊內(nèi)地址塊號(hào)塊內(nèi)地址比較主存塊號(hào)標(biāo)志CACHE塊號(hào)不相等塊失效相等塊表相聯(lián)查找0123、組相聯(lián)映象:是將存儲(chǔ)空間分成若干組,各組之間是直接映象,而組內(nèi)各塊之間則采用全相聯(lián)映象。此方式是上述兩種方式的折衷。CACHE0組第0區(qū)0組1組1組

0組第M-1區(qū)1組第0塊………..第N-1塊第0塊…….…..第N-1塊…….第(M-1)N….第MN-1

在訪存操作時(shí),根據(jù)地址中的組號(hào)和塊號(hào)在塊表中的該組對(duì)應(yīng)的若干項(xiàng)中查找是否有相同的主存區(qū)號(hào)和組內(nèi)塊號(hào)。如果有相同的,CACHE命中,將對(duì)應(yīng)的CACHE組內(nèi)塊號(hào)取出以對(duì)CACHE訪問(wèn),沒有相同的表示不命中,在對(duì)主存進(jìn)行訪問(wèn)并將主存中的塊調(diào)入CACHE中的同時(shí)將主存區(qū)號(hào)和組內(nèi)塊號(hào)和CACHE的組內(nèi)塊號(hào)寫入塊表中,以改變地址映象關(guān)系。特點(diǎn):適合于容量小,速度較低的場(chǎng)合。區(qū)號(hào)組號(hào)主存塊號(hào)塊內(nèi)地址塊內(nèi)地址塊號(hào)組號(hào)比較主存地址不相等塊失效CACHE相等塊表區(qū)號(hào)標(biāo)志主存塊號(hào)標(biāo)志CACHE塊號(hào)組內(nèi)相聯(lián)查找三、替換策略及更新策略(一)替換策略在全相聯(lián)和組相聯(lián)映象方式下,主存中的數(shù)據(jù)塊寫入CACH中若干位置,這就有一個(gè)選擇替換掉哪一個(gè)CACHE存儲(chǔ)塊的問(wèn)題。1、隨機(jī)法(RAND):隨機(jī)地確定替換存儲(chǔ)單元,沒有根據(jù)訪存局部性原理,不能提高系統(tǒng)的命中率。2、先進(jìn)先出法(FIFO):替換最早調(diào)入的存儲(chǔ)單元。3、近期最少使用法(LRU):替換出近期用得最少的存儲(chǔ)塊,利用了訪存局部性的原理,但實(shí)現(xiàn)復(fù)雜。例:設(shè)一個(gè)容量為4個(gè)塊的全相聯(lián)CACHE,采用FIFO替換算法,若主存的地址塊號(hào)序列為2、11、2、9、7、6、4、3畫出每次訪問(wèn)后CACHE中的內(nèi)容訪問(wèn)順序12345678地址塊號(hào)211297643塊分配情況22112112119211976119764976437(二)更新策略(寫操作策略)由于Cache的內(nèi)容只是主存部分內(nèi)容的復(fù)制,它應(yīng)當(dāng)和主存內(nèi)容保持一致。當(dāng)程序運(yùn)行時(shí)需對(duì)某個(gè)單元進(jìn)行寫操作,則會(huì)出現(xiàn)Cache和主存中的內(nèi)容不一致。1、寫操作CACHE命中時(shí)(1)寫直達(dá)法:寫CACHE又寫主存。(2)寫回法:寫CACHE不寫主存,當(dāng)CACHE中數(shù)據(jù)被替換出去時(shí)才寫主存。2、寫操作CACHE不命中時(shí)(1)按寫分配法:從主存將塊調(diào)入CACHE。(2)不按寫分配法:當(dāng)CACHE寫不命中時(shí)該地址所對(duì)應(yīng)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論