資源描述:
《cache和主存的三種映射方式》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Cache與主存之間的全相聯(lián)映射,直接映射和組相聯(lián)映射的區(qū)別1.高速緩沖存儲(chǔ)器的功能、結(jié)構(gòu)與工作原理 高速緩沖存儲(chǔ)器是存在于主存與CPU之間的一級(jí)存儲(chǔ)器,由靜態(tài)存儲(chǔ)芯片(SRAM)組成,容量比較小但速度比主存高得多,接近于CPU的速度。Cache的功能是用來(lái)存放那些近期需要運(yùn)行的指令與數(shù)據(jù)。目的是提高CPU對(duì)存儲(chǔ)器的訪問(wèn)速度。為此需要解決2個(gè)技術(shù)問(wèn)題:一是主存地址與緩存地址的映象及轉(zhuǎn)換;二是按一定原則對(duì)Cache的內(nèi)容進(jìn)行替換?! ache的結(jié)構(gòu)和工作原理如圖2.3.1所示。??主要由三大部分組成: Cache存儲(chǔ)體:存放由主存調(diào)入的指令與數(shù)據(jù)塊。
2、地址轉(zhuǎn)換部件:建立目錄表以實(shí)現(xiàn)主存地址到緩存地址的轉(zhuǎn)換?! √鎿Q部件:在緩存已滿時(shí)按一定策略進(jìn)行數(shù)據(jù)塊替換,并修改地址轉(zhuǎn)換部件。2.地址映象與轉(zhuǎn)換 地址映象是指某一數(shù)據(jù)在內(nèi)存中的地址與在緩沖中的地址,兩者之間的對(duì)應(yīng)關(guān)系。下面介紹三種地址映象的方式?! ?.全相聯(lián)方式 地址映象規(guī)則:主存的任意一塊可以映象到Cache中的任意一塊 (1)主存與緩存分成相同大小的數(shù)據(jù)塊?! ?2)主存的某一數(shù)據(jù)塊可以裝入緩存的任意一塊空間中?! ∪嗦?lián)方式的對(duì)應(yīng)關(guān)系如圖2.3.2所示。如果Cache的塊數(shù)為Cb,主存的塊數(shù)為Mb,則映象關(guān)系共有Cb×Mb種。??圖2.3.3
3、示出了目錄表的格式及地址變換規(guī)則。目錄表存放在相關(guān)(聯(lián))存儲(chǔ)器中,其中包括三部分:數(shù)據(jù)塊在主存的塊地址、存入緩存后的塊地址、及有效位(也稱裝入位)。由于是全相聯(lián)方式,因此,目錄表的容量應(yīng)當(dāng)與緩存的塊數(shù)相同。?舉例:某機(jī)主存容量為1M,Cache的容量為32KB,每塊的大小為16個(gè)字(或字節(jié))。劃出主、緩存的地址格式、目錄表格式及其容量?! ∪萘浚号c緩沖塊數(shù)量相同即211=2048(或32K/16=2048)。 優(yōu)點(diǎn):命中率比較高,Cache存儲(chǔ)空間利用率高?! ∪秉c(diǎn):訪問(wèn)相關(guān)存儲(chǔ)器時(shí),每次都要與全部?jī)?nèi)容比較,速度低,成本高,因而應(yīng)用少?! ?.直接
4、相聯(lián)方式 地址映象規(guī)則:主存儲(chǔ)器中一塊只能映象到Cache的一個(gè)特定的塊中。 (1)主存與緩存分成相同大小的數(shù)據(jù)塊?! ?2)主存容量應(yīng)是緩存容量的整數(shù)倍,將主存空間按緩存的容量分成區(qū),主存中每一區(qū)的塊數(shù)與緩存的總塊數(shù)相等?! ?3)主存中某區(qū)的一塊存入緩存時(shí)只能存入緩存中塊號(hào)相同的位置?! D2.3.4示出了直接相聯(lián)映象規(guī)則。可見(jiàn),主存中各區(qū)內(nèi)相同塊號(hào)的數(shù)據(jù)塊都可以分別調(diào)入緩存中塊號(hào)相同的地址中,但同時(shí)只能有一個(gè)區(qū)的塊存入緩存。由于主、緩存塊號(hào)相同,因此,目錄登記時(shí),只記錄調(diào)入塊的區(qū)號(hào)即可。? 圖2.3.5示出了主、緩沖地址格式、目錄表的格式及地址變
5、換規(guī)則。主、緩存塊號(hào)及塊內(nèi)地址兩個(gè)字段完全相同。目錄表存放在高速小容量存儲(chǔ)器中,其中包括二部分:數(shù)據(jù)塊在主存的區(qū)號(hào)和有效位。目錄表的容量與緩存的塊數(shù)相同。? 地址變換過(guò)程:用主存地址中的塊號(hào)B去訪問(wèn)目錄存儲(chǔ)器,把讀出來(lái)的區(qū)號(hào)與主存地址中的區(qū)號(hào)E進(jìn)行比較,比較結(jié)果相等,有效位為1,則Cache命中,可以直接用塊號(hào)及塊內(nèi)地址組成的緩沖地址到緩存中取數(shù);比較結(jié)果不相等,有效位為1,可以進(jìn)行替換,如果有效位為0,可以直接調(diào)入所需塊?! ?yōu)點(diǎn):地址映象方式簡(jiǎn)單,數(shù)據(jù)訪問(wèn)時(shí),只需檢查區(qū)號(hào)是否相等即可,因而可以得到比較快的訪問(wèn)速度,硬件設(shè)備簡(jiǎn)單?! ∪秉c(diǎn):替換操作頻繁,
6、命中率比較低?! ∨e例:上例中,主存容量為1M,Cache的容量為32KB,每塊的大小為16個(gè)字(或字節(jié))。劃出主、緩存的地址格式、目錄表格式及其容量。? 容量:與緩沖塊數(shù)量相同即211=2048(或32K/16=2048)。 3.組相聯(lián)映象方式 組相聯(lián)的映象規(guī)則: (1)主存和Cache按同樣大小劃分成塊?! ?2)主存和Cache按同樣大小劃分成組?! ?3)主存容量是緩存容量的整數(shù)倍,將主存空間按緩沖區(qū)的大小分成區(qū),主存中每一區(qū)的組數(shù)與緩存的組數(shù)相同?! ?4)當(dāng)主存的數(shù)據(jù)調(diào)入緩存時(shí),主存與緩存的組號(hào)應(yīng)相等,也就是各區(qū)中的某一塊只能存入緩存的同
7、組號(hào)的空間內(nèi),但組內(nèi)各塊地址之間則可以任意存放,即從主存的組到Cache的組之間采用直接映象方式;在兩個(gè)對(duì)應(yīng)的組內(nèi)部采用全相聯(lián)映象方式?! D2.3.6示出了組相聯(lián)的映象關(guān)系,圖中緩存共分Cg個(gè)組,每組包含有Gb塊;主存是緩存的Me倍,所以共分有Me個(gè)區(qū),每個(gè)區(qū)有Cg組,每組有Gb塊。那么,主存地址格式中應(yīng)包含4個(gè)字段:區(qū)號(hào)、區(qū)內(nèi)組號(hào)、組內(nèi)塊號(hào)和塊內(nèi)地址。而緩存中包含3個(gè)字段:組號(hào)、組內(nèi)塊號(hào)、塊內(nèi)地址。主存地址與緩存地址的轉(zhuǎn)換有兩部分,組地址是按直接映象方式,按地址進(jìn)行訪問(wèn),而塊地址是采用全相聯(lián)方式,按內(nèi)容訪問(wèn)。組相聯(lián)的地址轉(zhuǎn)換部件也是采用相關(guān)存儲(chǔ)器實(shí)現(xiàn),見(jiàn)
8、圖2.3.7。 相關(guān)存儲(chǔ)器中每個(gè)單元包含有:主存地