第四章存儲系統(tǒng)_第1頁
第四章存儲系統(tǒng)_第2頁
第四章存儲系統(tǒng)_第3頁
第四章存儲系統(tǒng)_第4頁
第四章存儲系統(tǒng)_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理第四章存儲系統(tǒng)2/6/2023上午10時23分1第一章計算機系統(tǒng)概論第二章運算方法和運算器第三章存儲系統(tǒng)第四章指令系統(tǒng)第五章中央處理器第六章總線系統(tǒng)第七章外圍設(shè)備第八章輸入輸出系統(tǒng)目錄2教材白中英,計算機組成原理·網(wǎng)絡(luò)版,科學(xué)出版社,2002參考書石磊,計算機組成原理·第2版,清華大學(xué)出版社,2006錢曉捷,微型計算機原理及應(yīng)用,清華大學(xué)出版社,2006王愛英,計算機組成與結(jié)構(gòu)·第3版,清華大學(xué)出版社,2001白中英鄺堅,計算機組織與結(jié)構(gòu)·網(wǎng)絡(luò)版,科學(xué)出版社,200333.1存儲器概述3.2隨機讀寫存儲器3.3只讀存儲器和閃速存儲器

3.4高速存儲器3.5cache存儲器

3.6虛擬存儲器第3章存儲系統(tǒng)3.1.1存儲器分類半導(dǎo)體存儲器:用半導(dǎo)體器件組成的存儲器磁表面存儲器:用磁性材料做成的存儲器★按存儲介質(zhì)分

★按存儲方式分

隨機存儲器:任何存儲單元的內(nèi)容都能被隨機存取,且存取時間和存儲單元的物理位置無關(guān)(半導(dǎo)體)順序存儲器:只能按某種順序來存取,存取時間和存儲單元的物理位置有關(guān)(磁表面)★按存儲器的讀寫功能分:ROM,RAM

★按信息的可保存性分:非永久記憶,永久記憶

★按在計算機系統(tǒng)中的作用分:

控制存儲器、高速緩存、主存、輔存虛擬存儲器磁盤cache3.1.2存儲器的分級結(jié)構(gòu)寄存器微處理器內(nèi)部的存儲單元高速緩存(Cache)完全用硬件實現(xiàn)主存儲器的速度提高主存儲器存放當(dāng)前運行程序和數(shù)據(jù),采用半導(dǎo)體存儲器構(gòu)成輔助存儲器磁記錄或光記錄方式磁盤或光盤形式存放可讀可寫或只讀內(nèi)容以外設(shè)方式連接和訪問示意圖存儲訪問的局部性原理分級結(jié)構(gòu)解決存儲器件的容量、速度和價格矛盾出色效率來源于存儲器訪問的局部性原理:

處理器訪問存儲器時,所訪問的存儲單元在一段時間內(nèi)都趨向于一個較小的連續(xù)區(qū)域中空間局部:緊鄰被訪問單元的地方也將被訪問時間局部:剛被訪問的單元很快將再次被訪問程序運行過程中,絕大多數(shù)情況都能夠直接從快速的存儲器中獲取指令和讀寫數(shù)據(jù);當(dāng)需要從慢速的下層存儲器獲取指令或數(shù)據(jù)時,每次都將一個程序段或一個較大數(shù)據(jù)塊讀入上層存儲器,后續(xù)操作就可以直接訪問快速的上層存儲器3.1.3主存儲器的技術(shù)指標(biāo)存儲容量主存存儲容量:以字節(jié)B(Byte)為基本單位半導(dǎo)體存儲器芯片:以位b(Bit)為基本單位存儲容量以210=1024表達KB,MB,GB和TB存取時間(訪問時間)發(fā)出讀/寫命令到數(shù)據(jù)傳輸操作完成所經(jīng)歷的時間存取周期兩次存儲器訪問所允許的最小時間間隔存取周期大于等于存取時間存儲器帶寬(數(shù)據(jù)傳輸速率)單位時間里存儲器所存取的信息量3.2隨機讀寫存儲器SRAM(靜態(tài)RAM:StaticRAM)以觸發(fā)器為基本存儲單元不需要額外的刷新電路速度快,但集成度低,功耗和價格較高DRAM(動態(tài)RAM:DynamicRAM)以單個MOS管為基本存儲單元要不斷進行刷新(Refresh)操作集成度高、價格低、功耗小,但速度較SRAM慢3.2.1SRAM存儲器六管靜態(tài)MOS存儲元是由兩個MOS反相器交叉耦合而成的觸發(fā)器。一個存儲元存一位二進制代碼。3.2.1SRAM存儲存儲陣列1、存儲元

SRAM中,用一個鎖存器(觸發(fā)器)作為存儲元。只要直流供電電源一直加在這個記憶電路上,它就無限期地保持記憶的1狀態(tài)或0狀態(tài)。如果電源斷電,那么存儲的數(shù)據(jù)(1或0)就會丟失。2、三組信號線地址線

數(shù)據(jù)線

控制線圖3.2基本的靜態(tài)存儲元陣列

3.2.2基本SRAM的邏輯結(jié)構(gòu)SRAM芯大多采用雙譯碼方式,以便組織更大的存儲容量。存儲陣列為三維結(jié)構(gòu),即256行×128列×8位地址譯碼器二級譯碼:將地址分成x向、y向兩部分第一級進行x向(行譯碼)和y向(列譯碼)的獨立譯碼,然后在存儲陣列中完成第二級的交叉譯碼。讀與寫的互鎖邏輯控制信號中/CS是片選信號,/CS有效時(低電平),門G1、G2均被打開。/OE為讀出使能信號,/OE有效時(低電平),門G2開啟,當(dāng)寫命令/WE=1時(高電平),門G1關(guān)閉,存儲器進行讀操作。寫操作時,/WE=0,門G1開啟,門G2關(guān)閉。注意,門G1和G2是互鎖的,一個開啟時另一個必定關(guān)閉,這樣保證了讀時不寫,寫時不讀。32K×8位的SRAM邏輯結(jié)構(gòu)圖

3.2.2SRAM存儲器N(=1/4/8/16/32)個存儲元組成一個存儲單元存儲器芯片由大量存儲單元構(gòu)成存儲體存儲器芯片結(jié)構(gòu):

存儲單元數(shù)×每個存儲單元的數(shù)據(jù)位數(shù) =2M×N=芯片的存儲容量M=芯片地址線的個數(shù)N=數(shù)據(jù)線的個數(shù)舉例存儲結(jié)構(gòu)2K×816K位存儲容量11個地址引腳8個數(shù)據(jù)引腳6264SRAM芯片28腳雙列直插(DIP)芯片容量:8KB13個地址線A12~A08個數(shù)據(jù)線D7~D0存儲結(jié)構(gòu):8K×8控制引腳片選:CS1*,CS2讀控制:OE*寫控制:WE*無連接NC計算機是一個有嚴(yán)格時序控制要求的機器。與CPU連接時,CPU的控制信號與存儲器的讀、寫周期之間的配合問題是非常重要的。

注意:讀出時間與讀周期是兩個不同的概念。

讀出時間:是指從CPU給出有效地址開始,到外部數(shù)據(jù)總線上穩(wěn)定地出現(xiàn)所讀出的數(shù)據(jù)信息所經(jīng)歷的時間。

讀周期時間:則是指對存儲片進行兩次連續(xù)讀操作時所必須間隔的時間。

顯然總有:讀周期≥讀出時間3.2.3存儲器的讀、寫周期讀周期在讀周期中,地址線先有效,以便進行地址譯碼,選中存儲單元。為了讀出數(shù)據(jù),片選信號/CS和讀出使能信號/OE也必須有效(由高電平變?yōu)榈碗娖?。從地址有效開始經(jīng)tAQ(讀出)時間,數(shù)據(jù)總線I/O上出現(xiàn)了有效的讀出數(shù)據(jù)。之后/CS、/OE信號恢復(fù)高電平,tRC以后才允許地址總線發(fā)生改變。tRC時間稱為讀周期時間。寫周期數(shù)據(jù)總線I/O上必須置寫入數(shù)據(jù),在tWD時間段將數(shù)據(jù)寫入存儲器。在寫周期中,也是地址線先有效,接著片選信號/CS有效,寫命令/WE有效(低電平)。之后撤消寫命令/WE和/CS。為了寫入可靠,I/O線的寫入數(shù)據(jù)要有維持時間thD,/CS的維持時間也比讀周期長。tWC時間稱為寫周期時間。為了控制方便,一般取tRC=tWC,通常稱為存取周期?!纠?.1】圖3.5(a)是SRAM的寫入時序圖。其中R/W是讀/寫命令控制線,當(dāng)R/W線為低電平時,存儲器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫入存儲器。請指出圖3.5(a)寫入時序中的錯誤,并畫出正確的寫入時序圖。

讀/寫入時序圖解:寫入存儲器的時序信號必須同步。當(dāng)R/W線加負(fù)脈沖時,地址線和數(shù)據(jù)線的電平必須是穩(wěn)定的。當(dāng)R/W線達到低電平時,數(shù)據(jù)立即被存儲。當(dāng)R/W線處于低電平時,如果數(shù)據(jù)線改變了數(shù)值,那么存儲器將存儲新的數(shù)據(jù)⑤。當(dāng)R/W線處于低電平時地址線如果發(fā)生了變化,那么同樣數(shù)據(jù)將存儲到新的地址②或③。3.3DRAM存儲器3.3.1DRAM存儲位元的記憶原理SRAM存儲器的存儲位元是一個觸發(fā)器,它具有兩個穩(wěn)定的狀態(tài)。而DRAM存儲器的存儲元是由一個MOS晶體管和電容器組成的記憶電路:圖3.6一個DRAM存儲元的寫、讀、刷新操作0恒101DRAM芯片圖3.7(a)示出1M×4位DRAM芯片的管腳圖,其中有兩個電源腳、兩個地線腳,為了對稱,還有一個空腳(NC)。1M×4位DRAM芯片的邏輯結(jié)構(gòu)圖與SRAM不同的是:(1)增加了行地址鎖存器和列地址鎖存器。采取的辦法是分時傳送地址碼。先傳送地址碼A10~A19,由行選通信號RAS打入到行地址鎖存器;然后傳送地址碼A0~A9,由列選通信號CRS打入到列地址鎖存器。芯片內(nèi)部兩部分合起來,地址線寬度達20位,存儲容量為1M×4位。(2)增加了刷新計數(shù)器和相應(yīng)的控制電路。DRAM讀出后必須刷新,而未讀寫的存儲元也要定期刷新,而且要按行刷新,刷新操作與讀/寫操作是交替進行的,所以通過2選1多路開關(guān)來提供刷新行地址或正常讀/寫的行地址。讀周期、寫周期讀周期、寫周期的定義是從行選通信號RAS下降沿開始,到下一個RAS信號的下降沿為止的時間,也就是連續(xù)兩個讀周期的時間間隔。通常為控制方便,讀周期和寫周期時間相等。DRAM的刷新(Refresh)(1)DRAM的刷新利用電容存儲電荷的原理來保存信息的,由于電容會逐漸放電,所以,對動態(tài)RAM必須不斷進行讀出和再寫入,以使泄放的電荷受到補充,也就是進行刷新。刷新是對動態(tài)存儲元不斷充電的過程

動態(tài)MOS存儲器采用“讀出”方式進行刷新,先將原存信息讀出,再由刷新放大器形成原信息并重新寫入。(2)刷新周期從上一次對整個存儲器刷新結(jié)束到下一次對整個存儲器全部刷新一遍為止,這一段時間間隔叫刷新周期。一般為2ms,4ms,8ms。(3)刷新方式常用的刷新方式有三種:

集中式、分散式、異步式。

在整個刷新間隔內(nèi),前一段時間重復(fù)進行讀/寫周期或維持周期,等到需要進行刷新操作時,便暫停讀/寫或維持周期,而逐行刷新整個存儲器,它適用于高速存儲器。tCtCtCtCtCtCtC?

集中式刷新

例如:對128128矩陣存儲器刷新。刷新時間相當(dāng)于128個讀周期;設(shè)刷新周期為2ms,讀/寫周期為0.5s,則刷新周期有4000個周期,其中

3782個周期(1936s)用來讀/寫或維持信息;

128個周期(64s)用來刷新操作;當(dāng)3781個周期結(jié)束,便開始進行128個周期,64s的刷新操作集中式刷新適用于高速存儲器。存在不能進行讀寫操作的死區(qū)時間.tCtCtCtCtCtCtC把一個存儲周期tc分為兩半,周期前半段時間tm用來讀/寫操作或維持信息,周期后半段時間tr作為刷新操作時間。這樣,每經(jīng)過128個系統(tǒng)周期時間,整個存儲器便全部刷新一遍。?分散式刷新分散式刷新系統(tǒng)速度降低,但不存在停止讀寫操作的死時間。W/RREFW/RREFW/RREF?異步式刷新是前兩種方式的結(jié)合。例如:對2116來說,在2ms中內(nèi)把128行刷新一遍。

2000s12815.5

s

即:每15.5s刷新一行。

說明1M×1位(=512×2048)DRAM芯片的刷新方法,刷新周期定為8ms【例2】【解】分散式刷新:逐行進行刷新

512行,每行2048個存儲元同時進行刷新,整個芯片在8ms內(nèi)進行512次刷新操作。集中刷新 在8ms中某個時間段,連續(xù)進行512次刷新操作

“死時間”:t0=512T

(T為存儲器讀寫周期)異步刷新8ms分成512個時間段,每隔8ms÷512=15.625μs對芯片刷新一次(一行),消除長時間的“死時間”

CPU對存儲器進行讀/寫操作,首先由地址總線給出地址信號,然后要對存儲器發(fā)出讀操作或?qū)懖僮鞯目刂菩盘?,最后在?shù)據(jù)總線上進行信息交流。所以,存儲器與CPU之間,要完成:①地址線的連接;②數(shù)據(jù)線的連接;③控制線的連接。

存儲器芯片的容量是有限的,為了滿足實際存儲器的容量要求,需要對存儲器進行擴展。3.3.4存儲器容量的擴展A0A12D0D7位擴展法只加大字長,而存儲器的字?jǐn)?shù)與存儲器芯片字?jǐn)?shù)一致,對片子沒有選片要求。用8k*1的片子組成8k*8的存儲器需8個芯片地址線——需13根數(shù)據(jù)線——8根控制線——WR接存儲器的WE

WRWE2:416K816K816K816K8字?jǐn)U展法用16K8位的芯片組成64K8位的存儲器需4個芯片地址線——共需16根片內(nèi):(214=16384)14根,選片:2根數(shù)據(jù)線——8根控制線——WE存儲器系統(tǒng)的存儲容量:M×N位使用芯片的存儲容量:L×K位(L≤M,K≤N)需要存儲器芯片個數(shù):(M×N)/(L×K)[例]:利用2K×4位的存儲芯片,組成16K×8位的存儲器,共需要多少塊芯片?

[解]:(16K×8)/(2K×4)=8×2=16即:共需16塊芯片。(既需要位擴展,又需要字?jǐn)U展)[又例]:利用1K×4位的存儲芯片,組成2K×8位的存儲器,共需要芯片數(shù):(2K×8)/(1K×4)=2×2=4字、位同時擴展法:字位同時擴展:2114存儲芯片1K×4擴展成2K×8存儲器

D4--D7D3--D0A0A1…A9WECPUA10

2114CSR/W

2114CSR/W

2114CSR/W

2114CSR/W字位同時擴展法:既增加存儲單元的數(shù)量,也加長各單元的位數(shù)例設(shè)有若干片256K×8位的SRAM芯片,問:

(1)采用字?jǐn)U展方法構(gòu)成2048KB的存儲器需要多少片SRAM芯片?

(2)該存儲器需要多少字節(jié)地址位?

(3)畫出該存儲器與CPU連接的結(jié)構(gòu)圖,設(shè)CPU的接口信號有地址信號、數(shù)據(jù)信號、控制信號MREQ#和R/W#。解:(1)該存儲器需要2048K/256K=8片SRAM芯片; (2)需要21條地址線,因為221=2048K,其中高3位用于芯片選擇,低18位作為每個存儲器芯片的地址輸入。 (3)該存儲器與CPU連接的結(jié)構(gòu)圖如下。

ramsel73-8譯碼ramsel2ramsel1ramsel0…A20-18A20-0A17-0OE#MREQ#R/W#CPUD7~D0D7~D0D7~D0D7~D0D7~D0WEA

CE256K×8DWEA

CE256K×8DWEA

CE256K×8DWEA

CE256K×8D例

設(shè)有若干片256K×8位的SRAM芯片,問:

(1)如何構(gòu)成2048K×32位的存儲器?

(2)需要多少片RAM芯片?

(3)該存儲器需要多少字節(jié)地址位?

(4)畫出該存儲器與CPU連接的結(jié)構(gòu)圖,設(shè)CPU的接口信號有地址信號、數(shù)據(jù)信號、控制信號MREQ#和R/W#。解:采用字位擴展的方法。需要32片SRAM芯片。

ramsel73-8譯碼ramsel2ramsel1ramsel0…A22-20A22-2A19-2OE#MREQ#R/W#CPUD31~D0D31~D0D31~D0D31~D0D31~D0WEA

CE256Kx84片DWEA

CE256Kx84片DWEA

CE256Kx84片DWEA

CE256Kx84片D3.3.5高性能的主存儲器主要技術(shù)手段:提高時鐘頻率和帶寬,縮短存儲周期,增加小塊SRAM。FPMDRAM(快頁方式DRAM)同一行的傳送僅改變列地址頁內(nèi)訪問速度加快FPMDRAM(快頁方式DRAM)CDRAM芯片(帶高速緩沖存儲器的DRAM)

CDRAM芯片又稱增強型DRAM芯片,它在DRAM芯片上集成了一個SRAM實現(xiàn)的小容量高速緩沖存儲器,從而使DRAM芯片的性能得到顯著改進3.3.5高性能的主存儲器如果連續(xù)的地址高11位相同,意味著屬于同一行地址,那么連續(xù)變動的9位列地址就會使SRAM中相應(yīng)位組連續(xù)讀出,這稱為猝發(fā)式讀取。

CDRAM內(nèi)存條1.一片CDRAM的容量為1M×4位,8片這樣的芯片(位擴展)可組成1M×32位的存儲模塊。BE3-BE0接CAS3-CAS0同時有效

1M*4b-1M*32b2.A23-A22用作模塊選擇,接CAS3-CAS0。當(dāng)某模塊被選中,此模塊的8個CDRAM芯片同時動作,8個4位數(shù)據(jù)端口D3—D0同時與32位數(shù)據(jù)總線交換數(shù)據(jù),完成一次32位字的存取。4MB-16MB高性能DRAMSDRAM(同步DRAM(SynchronousDRAM))公共的系統(tǒng)時鐘,它與CPU的數(shù)據(jù)交換同步于外部的系統(tǒng)時鐘信號,并且以CPU/存儲器總線的最高速度運行,而不需要插入等待狀態(tài)。采用成組傳送方式,內(nèi)部采用交叉存儲3.3.6DRAM主存儲器讀、寫的正確性校驗DRAM通常用做主存儲器,其讀寫操作的正確性與可靠性至關(guān)重要。增加的附加位要同數(shù)據(jù)位一起寫入DRAM中保存。奇偶校驗海明校驗主存正確性校驗3.3ROM芯片ROM叫做只讀存儲器。它工作時只能讀出,不能寫入。其中存儲的原始數(shù)據(jù),必須在它工作以前寫入。3.3ROM芯片的類型MROM(掩膜ROM)掩膜工藝直接制作,是一個存儲內(nèi)容固定的ROM,由生產(chǎn)廠家提供產(chǎn)品。OTP-ROM(一次性編程ROM)用戶后寫入內(nèi)容,允許用戶進行一次性編程可編程存儲器用戶寫入內(nèi)容,可以多次寫入。EPROM(可擦除可編程ROM)紫外光擦除、并可重復(fù)編程的ROMEEPROM(電擦除可編程ROM)擦除和編程(擦寫)通過加電進行FlashMemory(閃速存儲器)新型的電擦除可編程ROM快速擦除整片或數(shù)據(jù)塊

2764EPROM芯片存儲容量64K位存儲結(jié)構(gòu)8K×813個地址線A12~A08個數(shù)據(jù)線O7~O0控制信號片選CE*輸出OE*編程控制PGM*編程電源VppEPROM工作方式前4種正常讀取狀態(tài),后4種為編程狀態(tài)“讀Intel標(biāo)識符“用于識別器件、防止假冒標(biāo)準(zhǔn)EPROM編程寫入每個存儲單元需50ms寬負(fù)脈沖快速編程重復(fù)送1ms寬的編程負(fù)脈沖寫入后即進行校驗再送4×N寬度的脈沖鞏固示意圖例CPU的地址總線16根(A15—A0,A0為低位);雙向數(shù)據(jù)總線8根(D7—D0),控制總線中與主存有關(guān)的信號有:

MREQ,R/W。主存地址空間分配如下:

0—8191為系統(tǒng)程序區(qū),由只讀存儲芯片組成;

8192—32767為用戶程序區(qū);最后(最大地址)2K地址空間為系統(tǒng)程序工作區(qū)。

現(xiàn)有如下存儲器芯片:

EPROM:8K×8位(控制端僅有CS);SRAM:16K×1位,2K×8位,4K×8位,8K×8位.解:(1)主存地址空間分布如圖所示。16根地址線尋址——64K0000~FFFFH(65535)EPROM:8K×8位SRAM:16K×1位,2K×8位,4K×8位,8K×8位.00001FFF20007FFFF800FFFF63488請從上述芯片中選擇適當(dāng)芯片設(shè)計該計算機主存儲器,畫出主存儲器邏輯框圖,注意畫出選片邏輯(可選用門電路及3∶8譯碼器74LS138)與CPU的連接,說明選哪些存儲器芯片,選多少片。(2)連接電路片內(nèi)尋址:8K芯片——片內(nèi)13根A12~A02K芯片——片內(nèi)11根A10~A0片間尋址:前32KA15A14A13

000001

010011最后2K111加A12A11

1100001FFF20003FFF60007FFFF800FFFF40005FFF63488ABCY0Y1Y2Y3Y7。。。。。MREQA0A12A0A12A0A12A0A12A0A10CSCSCSCSCSR/WR/WR/WR/W3.4.2閃速存儲器1.什么是閃速存儲器FlashMemory

閃速存儲器是一種高密度、非易失性的讀/寫半導(dǎo)體存儲器.是在EPROM功能基礎(chǔ)上增加了芯片的電擦除和重新編程能力.它突破了傳統(tǒng)的存儲器體系,改善了現(xiàn)有存儲器的特性。它既有RAM的優(yōu)點,又有ROM的優(yōu)點,

特點:固有的非易失性(2)廉價的高密度(3)可直接執(zhí)行(4)固態(tài)性能3.5高速存儲器3.5.1

雙端口存儲器同一個存儲器具有兩組相互獨立的讀寫控制線路,提供了兩個相互獨立的端口,都可以對存儲器中任何位置上的數(shù)據(jù)進行獨立的存取操作3.5.2

多模塊交叉存儲器每個模塊各自以等同的方式與CPU傳送信息。連續(xù)地址分布在相鄰的模塊,對連續(xù)字的成塊傳送可以重疊進行實現(xiàn)流水線并行存取3.5.3

相聯(lián)存儲器按內(nèi)容尋址的存儲器把存儲單元所存內(nèi)容的某一部分作為檢索項,去檢索該存儲器,并對存儲器中與該檢索項符合的存儲單元內(nèi)容進行讀出或?qū)懭?.5

雙端口存儲器1.雙端口存儲器的邏輯結(jié)構(gòu)雙端口存儲器

——指同一個存儲器具有兩組相互獨立的讀寫控制線路,

是一種高速工作的存儲器。雙讀單寫端口存儲器單元結(jié)構(gòu)2.無沖突的讀寫控制3.有沖突的讀寫控制3.5.2多模塊交叉存儲器1).存儲器的模塊化組織一個由若干個模塊組成的主存儲器是線性編址的。這些地址在各模塊中有兩種安排方式:

順序方式

交叉方式順序方式各模塊一個接一個串行工作。同一個模塊內(nèi)的地址都是連續(xù)的。交叉方式連續(xù)地址分布在相鄰的不同模塊內(nèi),同一個模塊內(nèi)的地址都是不連續(xù)的。對連續(xù)字的成塊傳送可實現(xiàn)多模塊流水式并行存取,大大提高存儲器的帶寬。模體地址編址序列對應(yīng)二進制地址最低二位M0M1M2M30,4,8,12,...4j+0,...1,5,9,13,...4j+1,...2,6,10,14,...4j+2,...3,7,11,15,...4j+3,...000110112)模四交叉各模塊的編址序列3)

多模塊交叉存儲器存取控制方式多模塊交叉存儲器可以有兩種不同的方式進行訪問:一種是所有模塊同時啟動一次存儲周期,相對各自的數(shù)據(jù)寄存器并行地讀出或?qū)懭胄畔?;稱為“同時訪問”,同時訪問要增加數(shù)據(jù)總線寬度。(2)交叉訪問:一個模塊的存儲周期T,總線傳送周期τ交叉存取度m=T/τ(3)存儲器的模塊數(shù)M>=m順序存儲器t2=nT

交叉存儲器t1=T+(n-1)τ設(shè)存儲器容量為32字,字長64位,模塊數(shù)m=4,分別用順序方式和交叉方式進行組織。存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期τ=50ns。問順序存儲器和交叉存儲器連續(xù)讀出32個字所需的時間?【解】

順序存儲器和交叉存儲器連續(xù)讀出4個字所需的時間分別是:

t2=mT=4×200ns=800ns=8×10-7s;

t1=T+(m-1)τ=200ns+150ns=350ns=35×10-7s順序存儲器和交叉存儲器連續(xù)讀出m=4個字的信息總量都是:q=64位×4=256位順序存儲器和交叉存儲器的帶寬分別是:

W2=q/t2=256÷(8×10-7)=32×107[位/s];W1=q/t1=256÷(35×10-7)=73×107[位/s]3.6

Cache存儲器Cache:asafeplaceforhidingorstoringthings.在相對容量較大而速度較慢的主存與高速處理器之間設(shè)置的少量但快速的存儲器(SRAM)主要目的:提高存儲器速度為追求高速,包括管理在內(nèi)的全部功能由硬件實現(xiàn)3.6.1Cache基本原理CPU與cache之間的數(shù)據(jù)交換以字(字節(jié))為單位Cache與主存間的數(shù)據(jù)傳送以數(shù)據(jù)塊為單位一個塊(Block)由若干字組成Cache的讀操作高速命中(Hit):微處理器讀取主存的內(nèi)容已包含在Cache中,可以直接讀取Cache,不用訪問主存從CPU接收地址RAY(命中hit)N(失效miss)開始Cache中含RA?從Cache讀RA的字送CPU從主存讀含RA的塊向CPU傳送RA的字向Cache傳送含RA的主存塊結(jié)束高速失效(Miss)、缺失、未命中:微處理器讀取主存的內(nèi)容不在Cache中,需要訪問主存讀取一個數(shù)據(jù)塊Cache的命中率命中率(HitRate):高速命中的概率h=NcNc+Nmcache/主存系統(tǒng)的平均訪問時間ta:

ta=htc+(1-h)tm tc=命中時的cache訪問時間

tm=未命中時的主存訪問時間h=命中率Nc=cache完成存取的總次數(shù)Nm=主存完成存取的總次數(shù)設(shè)r=tm/tc表示主存慢于cache的倍率tce=ta=tchtc+

(1-h)tm1h+

(1-h)r==1r+

(1-r)hCache的訪問效率e【例5】CPU執(zhí)行一段程序時,cache完成存取的次數(shù)為1900次,主存完成存取的次數(shù)為100次,已知cache存取周期為50ns,主存存取周期為250ns,求:cache命中率是多少?cache/主存系統(tǒng)平均訪問時間和效率?!窘狻?/p>

h=Nc/(Nc+Nm)=1900/(1900+100)=0.95

ta=h·tc+(1-h)·tm=60nse=tc/ta=60/50=0.833或者r=tm/tc=250ns/50ns=5e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%

ta=tc/e=50ns/0.833=60ns【例】已知cache/主存系統(tǒng)效率為85%,平均訪問時間為60ns,主存存取周期是cache存取周期4倍,求主存儲器周期是多少?cache命中率是多少?解:因為:e=tc/ta所以:tc=ta×e=60×0.85=510ns(cache存取周期)tm=tc×r=510×4=204ns(主存存取周期)因為:e=1/[r+(1–r)h]所以:h=2.4/2.55=0.94ta=h·tc+(1-h)·tm3.6.2主存與Cache的地址映射Cache通過地址映射(mapping)的方法確定主存塊與Cache行之間的對應(yīng)關(guān)系,確定一個主存塊應(yīng)該存放到哪個Cache行中全相聯(lián)映射(fullyassociativemapping)可以將一個主存塊存儲到任意一個Cache行直接映射(directmapping)將一個主存塊存儲到唯一的一個Cache行組相聯(lián)映射(setassociativemapping)可以將一個主存塊存儲到唯一的一個Cache組中任意一個行直接映射、2/4/8路組相聯(lián)映射使用較多Cache存儲器——地址映射CACHE的數(shù)據(jù)塊大小稱為行(塊)。主存的數(shù)據(jù)塊大小稱為塊。行與塊是等長的。1全相聯(lián)映射方式:

在全相聯(lián)映射中,將主存中一個塊的地址與塊的內(nèi)容一起存于CACHE的行(塊)中,其中塊地址存于CACHE行(塊)的標(biāo)記部分中。是一種多對一的映射關(guān)系第N-1塊···第1塊第0塊第MN-1塊···第1塊第0塊圖全相聯(lián)映像1.全相聯(lián)映象變換過程,如圖

塊內(nèi)地址15塊標(biāo)記......1塊標(biāo)記0塊標(biāo)記2047塊…15塊…1塊0塊主存塊標(biāo)號11位Cache主存主存地址主存塊號11位9位由于每個Cache塊可以映射2048個主存塊中的任一塊,因此每塊的Cache標(biāo)記也需要11位,用來表明它現(xiàn)在所映像的主存塊號。例如:某機主存為1MB,Cache為8KB,按每塊512B劃分。主存分為2048塊;Cache為16塊。塊內(nèi)地址塊號B塊內(nèi)地址塊號b有效位Cache塊號b主存塊號BbB主存地址Cache地址命中逐行相聯(lián)比較目錄表(由相聯(lián)存儲器組成,共Cb個字)地址變換過程:標(biāo)記位數(shù)B+b位,使Cache標(biāo)記容量加大;在訪問Cache時,需要和Cache的全部標(biāo)記進行“比較”才能判斷出所訪主存地址的內(nèi)容是否已在Cache中。由于Cache速度要求高,所以全部“比較”操作都要用硬件實現(xiàn),所需邏輯電路甚多,以致無法用于Cache中。全相聯(lián)映射方式優(yōu)點:可使主存的一個塊直接拷貝到cache中的任意一行(塊)上,非常靈活。命中率較高,Cache的存儲空間利用率高主要缺點:是比較器電路難于設(shè)計和實現(xiàn),線路復(fù)雜,成本高,速度低。因此只適合于小容量cache采用。是一個理想的方案,實際上由于它的成本太高而不能采用。例題:設(shè)一個全相聯(lián)映像的Cache中有8個塊,訪問主存進行讀的塊地址順序為十進制數(shù)22、26、22、26、16、4、6、18、14、17、25,求每次訪問后Cache中的內(nèi)容。表昂全相聯(lián)映像的塊分配情況訪問順序1234567891011主存塊地址22262226164618141725000塊2222222222222222222225001塊26262626262626262626010塊16161616161616011塊444444100塊66666101141414111塊1717操作狀態(tài)調(diào)入調(diào)入命中命中調(diào)入調(diào)入調(diào)入調(diào)入調(diào)入調(diào)入替換

這也是一種多對一的映射關(guān)系,但一個主存塊只能拷貝到cache的一個特定行(塊)位置上去。

2直接映射方式第N-1塊···第1塊第0塊第MN-1塊···第(M-1)N-1塊第(M-1)N塊···第N-1塊···第1塊第0塊第0組第M-1組主存cache的直接映射圖cache的行(塊)號i和主存的塊號j有如下函數(shù)關(guān)系:i=jmodN(N為cache中的總行數(shù))塊內(nèi)地址B組內(nèi)塊號地址S組號地址Q塊內(nèi)地址B組內(nèi)塊號地址S有效位組號Q(按地址訪問)1相等比較主存地址Cache地址比較相等,且有效位為1,訪問Cache塊失效命中組表存儲器地址映象表根據(jù)S找到S行直接相聯(lián)映像主存地址格式:QSB組號組內(nèi)塊號塊內(nèi)地址Cache地址格式:SB組內(nèi)塊號塊內(nèi)地址主存中存儲塊的數(shù)據(jù)可以調(diào)入Cache中相同組號內(nèi)的任一塊中,而主存中一個組的地址空間只能映像到Cache中相同組中。

地址變換過程用主存地址中的塊號S去訪問組表存儲器把讀出來的組號與主存地址中組號Q進行比較比較結(jié)果相等,且有效位為1,則Cache命中,主存地址中的塊號S與塊內(nèi)地址B構(gòu)成Cache地址比較結(jié)果相等,有效位為0,表示Cache中的這一塊已經(jīng)作廢比較結(jié)果不相等,有效位為0,表示Cache中的這一塊是空的直接映象方法的主要優(yōu)點硬件實現(xiàn)很簡單,成本低。不需要相聯(lián)訪問存儲器,訪問速度也比較快.直接映象方法的主要缺點

塊的沖突率太高,每個主存塊在cache中只有一個固定的位置。因此適合大容量cache采用。

第一組的第0塊和第二組的第0塊都映象到cache第0塊例如:設(shè)有一個Cache容量4K字,每個塊為32字,主存的容量為256K字,試問:(1)該Cache分為多少塊?主存可分為多少塊?(2)在直接映像方式下,主存的第j塊映像到Cache中的哪一塊?(3)進行直接地址映像時,Cache地址有多少位?Cache的地址分為哪幾段?各段分別為幾位?(4)進行直接地址映像時,主存地址有多少位?分為哪幾段?各段分別為幾位?解:(1)Cache中有4K/32=1024*4/32=128塊;主存可分為256K/32=8192塊(2)i=jmod128

i是Cache的字塊號,j是主存的字塊號。(3)Cache的容量4K字=212字,Cache的字地址為12位。分成兩段:塊地址和塊內(nèi)地址。每個塊為32字=25字,塊內(nèi)地址是5位字地址;Cache中有128塊=27塊,塊地址為7位。(4)主存的容量256K字=218字,所以主存的地址為18位。分成三段:主存字塊標(biāo)記(主存組地址)、塊地址和塊內(nèi)地址。主存字塊標(biāo)記的長度為主存地址長度減去Cache地址長度之差,即18-12=6位。因為主存的塊地址和塊內(nèi)地址與Cache的相同,所以塊內(nèi)地址是5位,塊地址為7位。

例如:設(shè)一個直接相聯(lián)映像的Cache中有8個塊,訪問主存進行讀的塊地址順序為十進制數(shù)22、26、22、26、16、4、16、18,求每次訪問后Cache中的內(nèi)容。

解:22MOD8=6表直接映像的塊分配情況訪問順序12345678主存塊地址222622261641618Cache0塊16161616Cache1塊Cache2塊26262626262618Cache3塊Cache4塊444Cache5塊Cache6塊2222222222222222Cache7塊操作狀態(tài)調(diào)入調(diào)入命中命中調(diào)入調(diào)入命中替換

這種方式是前兩種方式的折衷方案。定義及規(guī)則:各組之間是直接映象,組內(nèi)各塊間是全相聯(lián)映象組號相同每個組號相同的主存塊可以映象到組號相同的任意cache塊中它將cache分成u組,每組v塊,主存塊存放到cache哪個組是固定的,至于存到該組哪一塊是靈活的,即有如下函數(shù)關(guān)系:cache分成u組,每組v塊,Cache塊數(shù):N=u×v

主存塊號:j主存對應(yīng)Cache的組號:q=Int(j/v)modu

3組相聯(lián)映射方式方法1圖組相聯(lián)映象主存第N-1塊······第0塊第MN-1塊······第(M-1)N塊···第N-1塊······第0塊第0組第1組第0區(qū)第M-1區(qū)第0組第1組第0組第1組Cache組相聯(lián)映像主存地址格式:tqsb區(qū)號組號組內(nèi)塊號塊內(nèi)地址Cache地址格式:qS`b組號組內(nèi)塊號塊內(nèi)地址主存中存儲塊的數(shù)據(jù)可以調(diào)入Cache中相同組號內(nèi)的任一塊中,而主存中一個組的地址空間只能映像到Cache中相同組中。

塊內(nèi)地址b組內(nèi)塊號地址s組號地址q區(qū)號地址t塊內(nèi)地址b組內(nèi)塊號地址s′組號地址q相聯(lián)比較組內(nèi)塊號s′區(qū)號t,組內(nèi)塊號s相聯(lián)比較(S個塊)主存地址不等相等Cache地址組內(nèi)相聯(lián)查找塊表存儲器q地址變換過程用主存地址的組號按地址訪問塊表存儲器把讀出來的一組區(qū)號和塊號與主存地址中的區(qū)號和塊號進行相聯(lián)比較如果有相等的,表示Cache命中,取出組內(nèi)塊號s′與塊內(nèi)地址b構(gòu)成Cache地址如果沒有相等的,表示Cache沒有命中例題:

設(shè)一個4路組相連映像的Cache中有8個塊,訪問主存進行讀的塊地址順序為十進制數(shù)22、26、22、26、16、4、16、18,求每次訪問后Cache中的內(nèi)容。地址的分段:主存:區(qū)號、組號、塊號、塊內(nèi)地址;CACHE:組號、塊號、塊內(nèi)地址;q=Int(j/v)modu=int(22/4)mod2=5mod2=1

q=Int(j/v)modu=int(26/4)mod2=6mod2=04路組相連映像的塊分配情況訪問順序12345678組號主存塊地址222622261641618Cache000塊26262626262626第0組Cache001塊16161616Cache010塊Cache011塊18Cache100塊2222222222222222第1組Cache101塊444Cache110塊Cache111塊操作狀態(tài)調(diào)入調(diào)入命中命中調(diào)入調(diào)入命中調(diào)入3組相聯(lián)映射方式方法2組相聯(lián)映射方式方法2P97-98Cache:每組v行,m組。共i=m*v行主存:每組m行,n組。共j=n*m行主存每組的第q行一定映射到Cache的第q組的任意行。組相聯(lián)映像方式的優(yōu)點:塊的沖突率比較低塊的利用率大幅度提高塊失效率明顯降低組相聯(lián)映像方式的缺點:實現(xiàn)難度和造價要比直接映象方式高3.6.3替換策略替換問題新主存塊要進入Cache,決定

溫馨提示

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

評論

0/150

提交評論