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