




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第4章章 主存儲(chǔ)器邏輯設(shè)計(jì)主存儲(chǔ)器邏輯設(shè)計(jì)1. 存儲(chǔ)器容量擴(kuò)展存儲(chǔ)器容量擴(kuò)展n位擴(kuò)展位擴(kuò)展n字?jǐn)U展字?jǐn)U展n字位擴(kuò)展字位擴(kuò)展2. 存儲(chǔ)控制存儲(chǔ)控制n集中刷新集中刷新n分散刷新分散刷新n異步刷新異步刷新3. 存儲(chǔ)校驗(yàn)線路存儲(chǔ)校驗(yàn)線路半導(dǎo)體存儲(chǔ)器的組成與控制半導(dǎo)體存儲(chǔ)器的組成與控制復(fù)習(xí)(一)復(fù)習(xí)(一)vRAM存儲(chǔ)器芯片總結(jié)存儲(chǔ)器芯片總結(jié) RAM存儲(chǔ)器芯片有多種型號(hào),每一存儲(chǔ)器芯片有多種型號(hào),每一RAM存儲(chǔ)器芯存儲(chǔ)器芯片具有:片具有:n地址線地址線Ai:引腳數(shù)與存儲(chǔ)芯片的單元數(shù)有關(guān);:引腳數(shù)與存儲(chǔ)芯片的單元數(shù)有關(guān);n數(shù)據(jù)線數(shù)據(jù)線Di:引腳數(shù)與存儲(chǔ)芯片的字長(zhǎng)有關(guān);:引腳數(shù)與存儲(chǔ)芯片的字長(zhǎng)有關(guān);n片選信
2、號(hào)片選信號(hào)CS:只有:只有CS有效時(shí),芯片才被選中,有效時(shí),芯片才被選中,所連地址線才有效,才能進(jìn)行讀所連地址線才有效,才能進(jìn)行讀/寫(xiě)操作。寫(xiě)操作。n讀讀/寫(xiě)信號(hào)寫(xiě)信號(hào)WE:為:為0,控制寫(xiě)入電路進(jìn)行寫(xiě)入;,控制寫(xiě)入電路進(jìn)行寫(xiě)入;為為1,控制讀出電路進(jìn)行讀出。,控制讀出電路進(jìn)行讀出。n電源線、地線電源線、地線復(fù)習(xí)(二)復(fù)習(xí)(二)例例1:某:某RAM芯片,其存儲(chǔ)容量為芯片,其存儲(chǔ)容量為16K8位,問(wèn):位,問(wèn):(1)該芯片引出線的最小數(shù)目應(yīng)為多少?)該芯片引出線的最小數(shù)目應(yīng)為多少?(2)存儲(chǔ)器芯片的地址范圍是什么?)存儲(chǔ)器芯片的地址范圍是什么?解:解:(1)16K=214,所以地址線,所以地址線1
3、4根;字長(zhǎng)根;字長(zhǎng)8位,所以數(shù)據(jù)線位,所以數(shù)據(jù)線8根。根。14 + 8 + 1 + 1 + 1 + 1 = 26地址線地址線 數(shù)據(jù)線數(shù)據(jù)線 片選片選 讀讀/寫(xiě)寫(xiě) 電源線電源線 地線地線(2)存儲(chǔ)器芯片的)存儲(chǔ)器芯片的地址范圍地址范圍為為0000H3FFFH存儲(chǔ)器芯片的地址范圍:存儲(chǔ)器芯片的地址范圍:地址線從全地址線從全“0”到全到全“1”的所有編碼的所有編碼復(fù)習(xí)(三)復(fù)習(xí)(三)vSRAM芯片芯片2114(1K4位)位)外特性:外特性:地址端:地址端:21142114(1K1K4 4)1 19 910101818A6 A5 A4 A3 A0 A1 A2 CS GNDA6 A5 A4 A3 A0
4、A1 A2 CS GNDVccVcc A7 A8 A9 D0 D1 D2 D3 WE A7 A8 A9 D0 D1 D2 D3 WEA9A9A0A0(入)入)數(shù)據(jù)端:數(shù)據(jù)端: D3D3D0D0(入入/ /出)出)控制端:控制端:片選片選CSCS= 0 = 0 選中芯片選中芯片= 1 = 1 未選中芯片未選中芯片寫(xiě)使能寫(xiě)使能WEWE= 0 = 0 寫(xiě)寫(xiě)= 1 = 1 讀讀電源、地電源、地1、存儲(chǔ)器容量擴(kuò)展、存儲(chǔ)器容量擴(kuò)展位位擴(kuò)展擴(kuò)展 擴(kuò)展每個(gè)存儲(chǔ)單元的位數(shù)擴(kuò)展每個(gè)存儲(chǔ)單元的位數(shù) (擴(kuò)展擴(kuò)展寬度寬度)字字?jǐn)U展擴(kuò)展 擴(kuò)展存儲(chǔ)單元的個(gè)數(shù)擴(kuò)展存儲(chǔ)單元的個(gè)數(shù) (擴(kuò)展擴(kuò)展長(zhǎng)度長(zhǎng)度)字位字位擴(kuò)展擴(kuò)展 兩者的綜
5、合兩者的綜合 (擴(kuò)展擴(kuò)展寬度和長(zhǎng)度寬度和長(zhǎng)度) 假設(shè)擴(kuò)展同種芯片,則需要的芯片假設(shè)擴(kuò)展同種芯片,則需要的芯片 : 總片數(shù)總?cè)萘靠偲瑪?shù)總?cè)萘? /(容量(容量/ /片)片) 位擴(kuò)展位擴(kuò)展字?jǐn)U展字?jǐn)U展字位擴(kuò)展字位擴(kuò)展1、存儲(chǔ)器容量擴(kuò)展、存儲(chǔ)器容量擴(kuò)展位擴(kuò)展位擴(kuò)展例例2 使用使用8K1位位RAM芯片組成芯片組成8K8位的存位的存儲(chǔ)器,畫(huà)出邏輯框圖。儲(chǔ)器,畫(huà)出邏輯框圖。分析:分析:芯片位數(shù)小于存儲(chǔ)器所要求的位數(shù),需進(jìn)行位擴(kuò)芯片位數(shù)小于存儲(chǔ)器所要求的位數(shù),需進(jìn)行位擴(kuò)展。展。8個(gè)芯片的關(guān)系是平等的,同時(shí)工作,并聯(lián)的,對(duì)個(gè)芯片的關(guān)系是平等的,同時(shí)工作,并聯(lián)的,對(duì)應(yīng)的地址一一相連。應(yīng)的地址一一相連。詳細(xì)的連接
6、見(jiàn)下圖:詳細(xì)的連接見(jiàn)下圖:I/OI/OI/OI/OI/OI/OCS8K1位位RAM芯片組成芯片組成8K8位的存儲(chǔ)器位的存儲(chǔ)器D0D7數(shù)數(shù)據(jù)據(jù)線線 I/O8K1I/OWEA0A12地地址址線線每片一位組成一個(gè)字節(jié)每片一位組成一個(gè)字節(jié) 例:用例:用64K1b的存儲(chǔ)器芯片組成的存儲(chǔ)器芯片組成64K8b(64KB)的存儲(chǔ)器。)的存儲(chǔ)器。 采用位擴(kuò)展方式,需要芯片數(shù)為:采用位擴(kuò)展方式,需要芯片數(shù)為: = 8片片 每片芯片應(yīng)有每片芯片應(yīng)有16根地址線:根地址線:A0 0 A1515, 8片芯片的地址線片芯片的地址線A1515A0 0分別連在一起同分別連在一起同CPU的地址線的地址線A1515 A0 0相連
7、;每片只有一位數(shù)據(jù)線,相連;每片只有一位數(shù)據(jù)線,8片芯片的片芯片的8位數(shù)據(jù)線分別和位數(shù)據(jù)線分別和CPU的的 數(shù)據(jù)線數(shù)據(jù)線D7 7D0 0相連。相連。 當(dāng)當(dāng)CPU訪問(wèn)該存儲(chǔ)器時(shí),其發(fā)出的訪問(wèn)該存儲(chǔ)器時(shí),其發(fā)出的16位地址同時(shí)傳給位地址同時(shí)傳給8個(gè)芯片,選個(gè)芯片,選 中每個(gè)芯片的同一單元;中每個(gè)芯片的同一單元;CPU發(fā)出的發(fā)出的 讀讀/寫(xiě)控制信號(hào)同時(shí)傳給寫(xiě)控制信號(hào)同時(shí)傳給8個(gè)芯片。個(gè)芯片。 該存儲(chǔ)器連接如圖所示。該存儲(chǔ)器連接如圖所示。位擴(kuò)展總結(jié):位擴(kuò)展總結(jié):v當(dāng)構(gòu)成內(nèi)存的存儲(chǔ)當(dāng)構(gòu)成內(nèi)存的存儲(chǔ)芯片的字長(zhǎng)芯片的字長(zhǎng) 內(nèi)存單元的字長(zhǎng)內(nèi)存單元的字長(zhǎng)時(shí),時(shí),就要進(jìn)行就要進(jìn)行位擴(kuò)展位擴(kuò)展,使每個(gè)單元的字長(zhǎng)滿足
8、要求。,使每個(gè)單元的字長(zhǎng)滿足要求。v位擴(kuò)展位擴(kuò)展方法方法: 將每片的地址線、片選將每片的地址線、片選CS、讀寫(xiě)控制線、讀寫(xiě)控制線并聯(lián)并聯(lián),數(shù)據(jù),數(shù)據(jù)線線分別引出分別引出。v位擴(kuò)展位擴(kuò)展特點(diǎn)特點(diǎn): 存儲(chǔ)器的存儲(chǔ)器的單元數(shù)不變,位數(shù)增加單元數(shù)不變,位數(shù)增加。存儲(chǔ)器容量擴(kuò)展存儲(chǔ)器容量擴(kuò)展字?jǐn)U展字?jǐn)U展例例 使用使用16K8位的位的RAM芯片組成一個(gè)芯片組成一個(gè)64K8位的存儲(chǔ)器。位的存儲(chǔ)器。分析:分析:芯片芯片的字?jǐn)?shù)不夠,的字?jǐn)?shù)不夠,需進(jìn)行需進(jìn)行字?jǐn)U展。字?jǐn)U展。共需芯片數(shù)目是共需芯片數(shù)目是64K16K4。將。將4片片RAM的地的地址線、數(shù)據(jù)線、讀寫(xiě)線一一對(duì)應(yīng)并聯(lián)。址線、數(shù)據(jù)線、讀寫(xiě)線一一對(duì)應(yīng)并聯(lián)。 出
9、現(xiàn)地址線不夠問(wèn)題,如何解決?出現(xiàn)地址線不夠問(wèn)題,如何解決? 可以用高可以用高2位位地址作為選片端。地址作為選片端。詳細(xì)的連接見(jiàn)下圖:詳細(xì)的連接見(jiàn)下圖: CSWE CSWE CSWE CSWE16K8位的位的RAM芯片組成一個(gè)芯片組成一個(gè)64K8位的存儲(chǔ)器位的存儲(chǔ)器地地址址端端地地址址端端 CSWE地地址址端端地地址址端端10 例:例: 用用6464K K8b8b的存儲(chǔ)器芯片組成的存儲(chǔ)器芯片組成512K512K8b8b(512KB512KB)的存儲(chǔ)器。)的存儲(chǔ)器。 采用字?jǐn)U展方式,所需芯片數(shù)為:采用字?jǐn)U展方式,所需芯片數(shù)為: = 8 片片 每片芯片應(yīng)有每片芯片應(yīng)有16根根地址線:地址線:A0 0
10、 - A1515 ;計(jì)算機(jī)系統(tǒng)有;計(jì)算機(jī)系統(tǒng)有20根根地址線:地址線: A0 0-A1919 , 8片芯片的片芯片的地址線地址線A15A0分別連在一起同分別連在一起同CPU的的20位地址線中位地址線中 A15 A0相連;相連; 采用全譯碼方式時(shí),采用全譯碼方式時(shí),高高4位地址線位地址線 A1616 A1919通過(guò)譯碼器通過(guò)譯碼器譯碼譯碼產(chǎn)生產(chǎn)生 16個(gè)片選信號(hào),其中個(gè)片選信號(hào),其中8個(gè)個(gè)分別同分別同8片片芯片的芯片的片選信號(hào)片選信號(hào)連接;每片只有連接;每片只有8位位 數(shù)據(jù)線,數(shù)據(jù)線,8片芯片的片芯片的8位數(shù)據(jù)線位數(shù)據(jù)線并聯(lián)分別和并聯(lián)分別和CPU的數(shù)據(jù)線的數(shù)據(jù)線D7 7D0 0相連。相連。 采用
11、字?jǐn)U展法的存儲(chǔ)器連接如圖所示。采用字?jǐn)U展法的存儲(chǔ)器連接如圖所示。字?jǐn)U展總結(jié):字?jǐn)U展總結(jié):v特點(diǎn)特點(diǎn): 地址空間的擴(kuò)展。芯片每個(gè)單元中的字長(zhǎng)滿足,地址空間的擴(kuò)展。芯片每個(gè)單元中的字長(zhǎng)滿足,但但單元數(shù)不滿足單元數(shù)不滿足。v擴(kuò)展原則:擴(kuò)展原則: 每個(gè)芯片的地址線、數(shù)據(jù)線、讀寫(xiě)控制線每個(gè)芯片的地址線、數(shù)據(jù)線、讀寫(xiě)控制線并并聯(lián)聯(lián),僅片選端,僅片選端分別引出分別引出,以實(shí)現(xiàn)每個(gè)芯片占據(jù)不,以實(shí)現(xiàn)每個(gè)芯片占據(jù)不同的地址范圍。同的地址范圍。存儲(chǔ)器容量擴(kuò)展存儲(chǔ)器容量擴(kuò)展字位擴(kuò)展字位擴(kuò)展v實(shí)際存儲(chǔ)器往往需要在字向、位向兩個(gè)方向同時(shí)實(shí)際存儲(chǔ)器往往需要在字向、位向兩個(gè)方向同時(shí)擴(kuò)展。擴(kuò)展。v一個(gè)存儲(chǔ)器的容量為一個(gè)存儲(chǔ)器
12、的容量為MN位,若使用位,若使用LK位的位的存儲(chǔ)芯片,則該存儲(chǔ)器共需的芯片個(gè)數(shù)為:存儲(chǔ)芯片,則該存儲(chǔ)器共需的芯片個(gè)數(shù)為:M NL Kv需解決:需解決: 芯片的選用、芯片的選用、地址分配與片選邏輯、地址分配與片選邏輯、信號(hào)線的連接。信號(hào)線的連接。要求:要求:1、確定整個(gè)存儲(chǔ)器所需的芯片數(shù)及芯片的分、確定整個(gè)存儲(chǔ)器所需的芯片數(shù)及芯片的分組情況組情況 ;2、確定存儲(chǔ)器及每組芯片的地址范圍;、確定存儲(chǔ)器及每組芯片的地址范圍;3、說(shuō)明地址線的分配方法,并畫(huà)出存儲(chǔ)器的、說(shuō)明地址線的分配方法,并畫(huà)出存儲(chǔ)器的結(jié)構(gòu)圖。結(jié)構(gòu)圖。2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的存儲(chǔ)器例例4用用
13、2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器。的存儲(chǔ)器。2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的存儲(chǔ)器1.計(jì)算芯片數(shù)計(jì)算芯片數(shù)先擴(kuò)展位數(shù),再擴(kuò)展單元數(shù)。先擴(kuò)展位數(shù),再擴(kuò)展單元數(shù)。 2片片1K4 1K8 4組組1K8 4K8 8片片 分析:分析:整個(gè)存儲(chǔ)器所需要芯片數(shù)整個(gè)存儲(chǔ)器所需要芯片數(shù)=(48)/ (14)=8片片每組需每組需2114(1K4)SRAM 芯片芯片2片片,共,共4組組。位擴(kuò)展位擴(kuò)展2片芯片片芯片CS連在一起,連在一起,4組字?jǐn)U展組字?jǐn)U展CS要分開(kāi)。要分開(kāi)。2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的
14、存儲(chǔ)器存儲(chǔ)器尋址邏輯存儲(chǔ)器尋址邏輯2.地址分配與片選邏輯地址分配與片選邏輯芯片內(nèi)的尋址系統(tǒng)芯片內(nèi)的尋址系統(tǒng)(二級(jí)譯碼二級(jí)譯碼)芯片外的芯片外的地址分配地址分配與與片選邏輯片選邏輯為芯片分配哪幾位地址,為芯片分配哪幾位地址,以便尋找片內(nèi)的存儲(chǔ)單元以便尋找片內(nèi)的存儲(chǔ)單元由哪幾位地址形成芯由哪幾位地址形成芯片選擇邏輯,以便尋片選擇邏輯,以便尋找芯片找芯片存儲(chǔ)空間分配:存儲(chǔ)空間分配:4KB存儲(chǔ)器在存儲(chǔ)器在16位地址空間位地址空間(64KB)中占據(jù)任意中占據(jù)任意連續(xù)區(qū)間。連續(xù)區(qū)間。2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的存儲(chǔ)器A11 A10 A9 A00 0 0 00 0
15、1 10 1 1 11 0 1 10 1 0 01 0 0 01 1 0 01 1 1 1片選片選 芯片地址芯片地址 64KB1K4 1K41K4 1K41K41K41K41K4需需12位地位地址尋址:址尋址:4KBA11A02114芯片為芯片為1K4位,片內(nèi)尋址需要位,片內(nèi)尋址需要10根地址線,為根地址線,為A0A9低位地址分配給芯片,高位地址形成片選邏輯。低位地址分配給芯片,高位地址形成片選邏輯。 芯片芯片 芯片地址芯片地址 片選信號(hào)片選信號(hào) 片選邏輯片選邏輯1K1K1K1KA9A0A9A0A9A0A9A0CS0CS1CS2CS3A11A10A11A10A11A10A11A10整個(gè)存儲(chǔ)器的
16、地址范圍:整個(gè)存儲(chǔ)器的地址范圍:000HFFFH共分為共分為4組,每組的地址范圍為:組,每組的地址范圍為:第一組:第一組:000H3FFH第二組:第二組:400H7FFH第三組:第三組:800HBFFH第四組:第四組:C00HFFFH2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的存儲(chǔ)器2114(1K4)SRAM芯片組成容量為芯片組成容量為4K8的存儲(chǔ)器的存儲(chǔ)器3.連接方式連接方式(1)擴(kuò)展位數(shù))擴(kuò)展位數(shù)(2)擴(kuò)展單元數(shù))擴(kuò)展單元數(shù)(3)連接控制線)連接控制線 (4)形成片選邏輯電路)形成片選邏輯電路11100100v例:某半導(dǎo)體存儲(chǔ)器總?cè)萘磕嘲雽?dǎo)體存儲(chǔ)器總?cè)萘?K4K8
17、 8位。其中位。其中固化區(qū)固化區(qū)2K2K字節(jié),選用字節(jié),選用EPROMEPROM芯片芯片27162716(2K2K8 8位);工作區(qū)位);工作區(qū)2K2K字節(jié),選用字節(jié),選用SRAMSRAM芯芯片片21142114(1K1K4/4/片)。地址總線片)。地址總線A A1515A A0 0(低),雙向數(shù)據(jù)總線(低),雙向數(shù)據(jù)總線D D7 7D D0 0(低)。(低)。2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C000FFF1K81K8設(shè)計(jì)目標(biāo):設(shè)計(jì)目標(biāo):4K8的地址空間的地址空間v片選信號(hào)的產(chǎn)生邏輯片選信號(hào)的產(chǎn)生邏輯尋找地址空間的尋找地址空間的特征值n4K4K空間需空間
18、需1212位地址,位地址,不用不用n芯片芯片1:000007FF,全部占用為地址信號(hào),全部占用為地址信號(hào),始終為始終為0,此空間外地址的,此空間外地址的必為必為1,故片選邏輯為,故片選邏輯為n芯片芯片2:08000BFF,全部占用為地址信號(hào),全部占用為地址信號(hào),始終為始終為1, 始終為始終為0,故片選邏輯為,故片選邏輯為 n芯片芯片3:0C000FFF,全部占用為地址信號(hào),全部占用為地址信號(hào),始終為始終為1, 始終為始終為1,故片選邏輯為,故片選邏輯為 v設(shè)計(jì)結(jié)果n芯片芯片1 1使用使用1111位地址位地址, 并將并將2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C0
19、00FFF27162114211421142114D74D30R/WCS0CS1CS2A11A11A10A11A10A100A90A90地址地址v 芯片級(jí)存儲(chǔ)器邏輯圖應(yīng)表示出:芯片級(jí)存儲(chǔ)器邏輯圖應(yīng)表示出: n所用存儲(chǔ)芯片。所用存儲(chǔ)芯片。n各芯片的地址線。各芯片的地址線。n片選邏輯。片選邏輯。 注意,芯片的片選信號(hào)一般是注意,芯片的片選信號(hào)一般是/CS,即即低電平有效,設(shè)計(jì)往往先從邏輯命題真寫(xiě)出邏輯式低電平有效,設(shè)計(jì)往往先從邏輯命題真寫(xiě)出邏輯式n數(shù)據(jù)線。數(shù)據(jù)總線是雙向總線,數(shù)據(jù)通路寬度數(shù)據(jù)線。數(shù)據(jù)總線是雙向總線,數(shù)據(jù)通路寬度8位。位。ROM芯片數(shù)據(jù)為芯片數(shù)據(jù)為單向輸出。輸出。RAM芯片為芯片為雙
20、向連接。連接。2114每片每片4位,分別連到數(shù)據(jù)線位,分別連到數(shù)據(jù)線D7D4和和D3D0,兩組兩組拼接為為8位。位。 n讀讀/寫(xiě)控制寫(xiě)控制R/W。2716沒(méi)有沒(méi)有R/W輸入端,輸入端,R/W信號(hào)信號(hào)只送至只送至RAM芯片芯片2114。 思考題:思考題:用用8K8位的位的ROM芯片和芯片和8K4位的位的RAM芯片組成存儲(chǔ)器,按字節(jié)編址,其中芯片組成存儲(chǔ)器,按字節(jié)編址,其中RAM的地址為的地址為2000H7FFFH,ROM的地址為的地址為C000HFFFFH,畫(huà)出此存儲(chǔ)器組成結(jié)構(gòu)圖,畫(huà)出此存儲(chǔ)器組成結(jié)構(gòu)圖及與及與CPU的連接圖。的連接圖。解題提示:解題提示:ROM芯片在聯(lián)機(jī)工作中是只讀不寫(xiě),即單向
21、輸出,無(wú)芯片在聯(lián)機(jī)工作中是只讀不寫(xiě),即單向輸出,無(wú)WE線。線。RAM芯片可讀可寫(xiě),雙向連接。芯片可讀可寫(xiě),雙向連接。思考題:思考題:1.計(jì)算容量和芯片數(shù)計(jì)算容量和芯片數(shù)高位地址高位地址A15A14A13為為001011,RAM的容量為的容量為8K3=24K,需要需要8K4位的位的RAM芯片芯片6片片。RAM區(qū):地址范圍展開(kāi)為區(qū):地址范圍展開(kāi)為 0010 0000 0000 0000 0111 1111 1111 1111RAM單個(gè)芯片的容量為單個(gè)芯片的容量為8K=2130111 1111 1111 11110010 0000 0000 0000ROM區(qū):區(qū): 末地址首地址末地址首地址=FFFF
22、H C000H=3FFFH所以所以ROM的容量為的容量為214=16K,需要,需要8K8位的位的ROM芯片芯片2片片。高位地址高位地址A15A14A13為為110111 ROM的地址范圍展開(kāi)為的地址范圍展開(kāi)為1111 1111 1111 11111100 0000 0000 0000CS1 A15A14A13CS3 A15A14A13CS6 A15A14A13CS7 A15A14A130 0 1 1 1思考題:思考題:A15A14A13A12A00 0 1 0 0 1 1 0 1 1 1 1 0 0 0低位地址分配給芯片,高位地址形成片選邏輯。低位地址分配給芯片,高位地址形成片選邏輯。選用選用
23、3:8譯碼器(譯碼器(74LS138)40KB需需16位地位地址尋址:址尋址:RAMA15A0ROM64KB8K88K48K48K48K48K48K48K80 1 00 1 00 1 10 1 11 1 11 1 1片選信號(hào)片選信號(hào) 片選邏輯片選邏輯CS2 A15A14A13存儲(chǔ)系統(tǒng)存儲(chǔ)系統(tǒng)vCPU與主存與主存n巨大的性能差距巨大的性能差距Memory Wallv提高訪存效率的途徑提高訪存效率的途徑n增強(qiáng)存儲(chǔ)器的性能增強(qiáng)存儲(chǔ)器的性能n增加存儲(chǔ)器字長(zhǎng)增加存儲(chǔ)器字長(zhǎng)n采用并行操作的雙端口存儲(chǔ)器采用并行操作的雙端口存儲(chǔ)器n每個(gè)周期存取多個(gè)字每個(gè)周期存取多個(gè)字nCPU與主存之間插入高速的與主存之間插入
24、高速的Cache存儲(chǔ)系統(tǒng)存儲(chǔ)系統(tǒng)CACHE主存(內(nèi)存)主存(內(nèi)存)輔存(外存)輔存(外存)v根據(jù)各種存儲(chǔ)器的存儲(chǔ)根據(jù)各種存儲(chǔ)器的存儲(chǔ)容量、存取速度和價(jià)格容量、存取速度和價(jià)格比的不同,將它們按照比的不同,將它們按照一定的體系結(jié)構(gòu)組織起一定的體系結(jié)構(gòu)組織起來(lái),使所放的程序和數(shù)來(lái),使所放的程序和數(shù)據(jù)按照一定的層次分布據(jù)按照一定的層次分布在各種存儲(chǔ)器中。在各種存儲(chǔ)器中。CPU Cache是為彌補(bǔ)主存速度的不足,在是為彌補(bǔ)主存速度的不足,在CPU 和主存和主存之間設(shè)置的高速、小容量的緩沖存儲(chǔ)器。之間設(shè)置的高速、小容量的緩沖存儲(chǔ)器。 組成組成: 小容量的小容量的SRAM和高速緩存控制器組成。和高速緩存控制
25、器組成。 功能:將功能:將CPU當(dāng)前快要用到的部分?jǐn)?shù)據(jù)塊由主存當(dāng)前快要用到的部分?jǐn)?shù)據(jù)塊由主存復(fù)制到容量小、速度快的復(fù)制到容量小、速度快的SRAM中,由中,由SRAM向向CPU直接提供它所需要的數(shù)據(jù)。直接提供它所需要的數(shù)據(jù)。高速緩沖存儲(chǔ)器(高速緩沖存儲(chǔ)器(CacheCache) 為了使為了使CPU不至因?yàn)榈却鎯?chǔ)器讀寫(xiě)操作的完成不至因?yàn)榈却鎯?chǔ)器讀寫(xiě)操作的完成而無(wú)事可做,可以采取一些加速而無(wú)事可做,可以采取一些加速CPU和存儲(chǔ)器之間和存儲(chǔ)器之間有效傳輸?shù)奶厥獯胧?。?shí)現(xiàn)的途徑有:有效傳輸?shù)奶厥獯胧?。?shí)現(xiàn)的途徑有:1)主存儲(chǔ)器采用更高速的技術(shù)來(lái)縮短存儲(chǔ)器的讀出時(shí)主存儲(chǔ)器采用更高速的技術(shù)來(lái)縮短存儲(chǔ)器的
26、讀出時(shí)間,或加長(zhǎng)存儲(chǔ)器的字長(zhǎng);間,或加長(zhǎng)存儲(chǔ)器的字長(zhǎng);2)采用并行操作的雙端口存儲(chǔ)器;采用并行操作的雙端口存儲(chǔ)器;3)在在CPU和主存儲(chǔ)器之間插入一個(gè)高速緩沖存儲(chǔ)器和主存儲(chǔ)器之間插入一個(gè)高速緩沖存儲(chǔ)器(cache),以縮短讀出時(shí)間;以縮短讀出時(shí)間;4)4)在每個(gè)存儲(chǔ)器周期中存取幾個(gè)字。在每個(gè)存儲(chǔ)器周期中存取幾個(gè)字。 高速緩沖存儲(chǔ)器(高速緩沖存儲(chǔ)器(CacheCache)圖4 -39 CPU存儲(chǔ)器系統(tǒng)的關(guān)系Cache的基本原理的基本原理v 介于介于CPU與主存之間與主存之間v 基于高速的基于高速的SRAMv 小容量、高速度小容量、高速度v 硬件實(shí)現(xiàn)的管理功能硬件實(shí)現(xiàn)的管理功能v 對(duì)程序員透明對(duì)程
27、序員透明可以集成到可以集成到CPU中中一種高速緩沖器,解決一種高速緩沖器,解決CPU與主存之間速度不與主存之間速度不匹配的一項(xiàng)技術(shù)匹配的一項(xiàng)技術(shù)Cache的基本原理的基本原理v讀操作讀操作nCPU發(fā)送地址到發(fā)送地址到Cache/主存主存nCache命中則直接讀出數(shù)據(jù)命中則直接讀出數(shù)據(jù)n否則主存將數(shù)據(jù)送至否則主存將數(shù)據(jù)送至CPU和和Cache圖4 -40 cache原理圖主存主存 Cache以塊為單位,即:復(fù)制目標(biāo)存以塊為單位,即:復(fù)制目標(biāo)存取字在內(nèi)的一塊數(shù)據(jù)取字在內(nèi)的一塊數(shù)據(jù)目的:下次讀取時(shí)可以直接訪目的:下次讀取時(shí)可以直接訪問(wèn)問(wèn)CacheCache的基本原理的基本原理v程序局部性原理程序局部
28、性原理CPU訪問(wèn)存儲(chǔ)器時(shí),無(wú)論是取指令還是存取數(shù)據(jù),所訪問(wèn)的存儲(chǔ)單元都趨于聚集在一個(gè)較小的連續(xù)區(qū)域中。v兩種不同類型的局部性兩種不同類型的局部性n 時(shí)間局部性(時(shí)間局部性(Temporal Locality):如果一個(gè)信息項(xiàng)正在):如果一個(gè)信息項(xiàng)正在被訪問(wèn),那么在近期它很可能還會(huì)被再次訪問(wèn)。程序循環(huán)、被訪問(wèn),那么在近期它很可能還會(huì)被再次訪問(wèn)。程序循環(huán)、堆棧等是產(chǎn)生時(shí)間局部性的原因。堆棧等是產(chǎn)生時(shí)間局部性的原因。n 空間局部性(空間局部性(Spatial Locality):在最近的將來(lái)將用到的):在最近的將來(lái)將用到的信息很可能與現(xiàn)在正在使用的信息在空間地址上是臨近的。信息很可能與現(xiàn)在正在使用的
29、信息在空間地址上是臨近的。指令的順序執(zhí)行、數(shù)組的連續(xù)存放等是產(chǎn)生空間局部性的原指令的順序執(zhí)行、數(shù)組的連續(xù)存放等是產(chǎn)生空間局部性的原因。因。 Cache的基本原理的基本原理v帕雷托法則帕雷托法則(Pareto principle),也稱為),也稱為80/20法法則,此法則指在眾多現(xiàn)象中,則,此法則指在眾多現(xiàn)象中,80%的結(jié)果取決于的結(jié)果取決于20%的原因,而這一法則在很多方面被廣泛的應(yīng)的原因,而這一法則在很多方面被廣泛的應(yīng)用。用。 v在計(jì)算機(jī)科學(xué)里,帕雷托法則可借由觀察在計(jì)算機(jī)科學(xué)里,帕雷托法則可借由觀察80%的的資源是由資源是由20%所操作使用,來(lái)最佳化資源。在軟所操作使用,來(lái)最佳化資源。在軟
30、件工程上,常有接近件工程上,常有接近90%的電腦程序執(zhí)行次數(shù)花的電腦程序執(zhí)行次數(shù)花費(fèi)在費(fèi)在10%的程式源代碼執(zhí)行。在圖書(shū)資訊學(xué)里,的程式源代碼執(zhí)行。在圖書(shū)資訊學(xué)里,一間圖書(shū)館的一間圖書(shū)館的20%館藏是由館藏是由80%的讀者所借閱。的讀者所借閱。 Cache的基本原理的基本原理vCache的組成的組成n基于基于SRAM的存儲(chǔ)實(shí)體的存儲(chǔ)實(shí)體n硬件控制邏輯硬件控制邏輯v存取單位存取單位nCPU與與Cache之間的數(shù)之間的數(shù)據(jù)交換以字為單位據(jù)交換以字為單位nCache與主存之間的數(shù)與主存之間的數(shù)據(jù)交換以塊為單位,一據(jù)交換以塊為單位,一個(gè)塊由若干字組成,是個(gè)塊由若干字組成,是定長(zhǎng)的。定長(zhǎng)的。圖4 -40
31、 cache原理圖Cache的基本原理的基本原理v數(shù)據(jù)塊數(shù)據(jù)塊nCache與主存之間的數(shù)與主存之間的數(shù)據(jù)交換單位據(jù)交換單位n主存單元的邏輯劃分主存單元的邏輯劃分n主存中的塊對(duì)應(yīng)主存中的塊對(duì)應(yīng)Cache中的行,二者長(zhǎng)度相等中的行,二者長(zhǎng)度相等且固定且固定一一對(duì)應(yīng)一一對(duì)應(yīng)n數(shù)據(jù)字地址被劃分為數(shù)據(jù)字地址被劃分為塊塊號(hào)號(hào)/行標(biāo)記行標(biāo)記和和塊塊/行內(nèi)部行內(nèi)部地址地址兩部分兩部分Cache主存主存標(biāo)記標(biāo)記塊塊行行命中:地址的塊號(hào)與某一命中:地址的塊號(hào)與某一行的行標(biāo)記匹配行的行標(biāo)記匹配主存與主存與Cache的地址映射的地址映射Cache主存主存標(biāo)記標(biāo)記塊塊行行?主存標(biāo)記主存標(biāo)記Cache塊號(hào)塊號(hào)塊內(nèi)地址塊內(nèi)
32、地址主存塊號(hào)主存塊號(hào)主存地址主存地址7位位4位位9位位Cache塊號(hào)塊號(hào)塊內(nèi)地址塊內(nèi)地址cache地址地址4位位9位位圖4 -40 cache原理圖主存與主存與Cache的地址映射的地址映射v地址映射地址映射n建立主存數(shù)據(jù)塊與建立主存數(shù)據(jù)塊與Cache行,行,以及主存地址與以及主存地址與Cache存儲(chǔ)存儲(chǔ)單元的對(duì)應(yīng)關(guān)系單元的對(duì)應(yīng)關(guān)系n利用硬件實(shí)現(xiàn)利用硬件實(shí)現(xiàn)n對(duì)對(duì)CPU/程序員透明程序員透明v映射策略映射策略n全相聯(lián)映射全相聯(lián)映射n直接映射直接映射n組相聯(lián)映射組相聯(lián)映射主存與主存與Cache的地址映射的地址映射v直接映射直接映射n主存中的某個(gè)字塊只能緩主存中的某個(gè)字塊只能緩存與存與Cache中
33、的特定行中的特定行n利用利用模運(yùn)算模運(yùn)算克服克服Cache與與主存的容量差距,主存的容量差距,模即為模即為Cache中的行數(shù)中的行數(shù)v例如:例如:n對(duì)于對(duì)于4行行Cache而言,主存而言,主存中的第中的第0、4、8、16塊塊均只能緩存于第均只能緩存于第0行行主存與主存與Cache的地址映射的地址映射v 直接映射實(shí)例直接映射實(shí)例 主存為主存為1MB,劃分,劃分2048塊;塊;Cache容量容量為為8KB,直接映射,直接映射Cache如何設(shè)計(jì)?如何設(shè)計(jì)?1. 主存容量為主存容量為1MB,塊內(nèi)容量,塊內(nèi)容量512B。Cache容量容量為為8KB,行容量為,行容量為512B,共,共16行。行。2. 主
34、存可以劃分為主存可以劃分為2048/16=128個(gè)區(qū),每區(qū)含個(gè)區(qū),每區(qū)含16塊??偟刂窞閴K??偟刂窞?0位;其中塊內(nèi)地址位;其中塊內(nèi)地址9位,位,4位位地址作為區(qū)內(nèi)編號(hào)(地址),高地址作為區(qū)內(nèi)編號(hào)(地址),高7位作為區(qū)編位作為區(qū)編號(hào)。號(hào)。區(qū)編號(hào)作為行標(biāo)記存儲(chǔ)。區(qū)編號(hào)作為行標(biāo)記存儲(chǔ)。主存與主存與Cache的地址映射的地址映射v 直接映射實(shí)例直接映射實(shí)例3.讀過(guò)程讀過(guò)程nCPU給出給出20位地址。位地址。nCache利用中間利用中間4位的區(qū)內(nèi)編號(hào)確定目標(biāo)行。位的區(qū)內(nèi)編號(hào)確定目標(biāo)行。nCache將高將高7位的區(qū)編號(hào)與該行的標(biāo)記進(jìn)行比較。位的區(qū)編號(hào)與該行的標(biāo)記進(jìn)行比較。n命中則利用低命中則利用低9位的
35、塊(行)內(nèi)地址完成訪問(wèn)。位的塊(行)內(nèi)地址完成訪問(wèn)。n否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)據(jù)塊到否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)據(jù)塊到Cache。例如:地址0000000 1000 XXXXXXXXX對(duì)應(yīng)某區(qū)的第8塊和Cache的第8行,只要該行標(biāo)記為0000000,則表示第0區(qū)的第8行位于Cache中,即命中主存地址主存地址 i = j mod ni = j mod n相當(dāng)于將主存的地址空間按相當(dāng)于將主存的地址空間按CacheCache的空間大小分區(qū),每的空間大小分區(qū),每 個(gè)區(qū)內(nèi)可按個(gè)區(qū)內(nèi)可按CacheCache塊號(hào)編號(hào),這樣主存地址結(jié)構(gòu)如下:塊號(hào)編號(hào),這樣主存地址結(jié)構(gòu)如下: “ “區(qū)號(hào)區(qū)號(hào)”作為標(biāo)記(表示
36、為作為標(biāo)記(表示為T(mén)agTag)存放在)存放在“地址映像表地址映像表”中,用于判中,用于判斷是斷是 否命中;否命中; “ “塊號(hào)塊號(hào)”是區(qū)內(nèi)塊號(hào),同是區(qū)內(nèi)塊號(hào),同CacheCache塊號(hào),用于直接查塊號(hào),用于直接查“地址映像表地址映像表”(用(用作作 查表索引),以及在查表索引),以及在CacheCache中進(jìn)行中進(jìn)行“塊尋址塊尋址”; “ “塊內(nèi)地址塊內(nèi)地址”用于在塊內(nèi)選擇字或字節(jié)(表示為用于在塊內(nèi)選擇字或字節(jié)(表示為BSBS););例如例如 一塊有一塊有10241024個(gè)字(個(gè)字(1616位)或字節(jié),則塊內(nèi)地址為位)或字節(jié),則塊內(nèi)地址為1010位(位(10241024個(gè)字個(gè)字節(jié))或節(jié))或1
37、111位(位(10241024個(gè)字)。在上例中,主存地址中區(qū)號(hào)為個(gè)字)。在上例中,主存地址中區(qū)號(hào)為5 5位,塊號(hào)為位,塊號(hào)為3 3位,塊內(nèi)地址為位,塊內(nèi)地址為1010位(塊內(nèi)字地址)共位(塊內(nèi)字地址)共1818位。位。主存塊號(hào)主存塊號(hào)直接映像的訪存過(guò)程直接映像的訪存過(guò)程 訪存過(guò)程以圖表示。訪存過(guò)程以圖表示。 直接映像方式下的直接映像方式下的CacheCache內(nèi)容由調(diào)入內(nèi)容由調(diào)入的數(shù)據(jù)和調(diào)入塊的主存的數(shù)據(jù)和調(diào)入塊的主存 (稱為(稱為“”)組成。)組成。 訪問(wèn)存儲(chǔ)器時(shí)給出主存地址,由區(qū)號(hào)(標(biāo)記)、塊號(hào)和塊內(nèi)地址訪問(wèn)存儲(chǔ)器時(shí)給出主存地址,由區(qū)號(hào)(標(biāo)記)、塊號(hào)和塊內(nèi)地址 組成,以塊號(hào)到組成,以塊號(hào)到
38、CacheCache中檢索到該塊號(hào)所對(duì)應(yīng)塊,取出標(biāo)記部分同主存中檢索到該塊號(hào)所對(duì)應(yīng)塊,取出標(biāo)記部分同主存 地址中的標(biāo)記(區(qū)號(hào))送比較器進(jìn)行比較:地址中的標(biāo)記(區(qū)號(hào))送比較器進(jìn)行比較: ,說(shuō)明被命中,由該塊號(hào)加上塊內(nèi)地址構(gòu)成的,說(shuō)明被命中,由該塊號(hào)加上塊內(nèi)地址構(gòu)成的CacheCache地址訪地址訪 問(wèn)問(wèn)CacheCache。 ,說(shuō)明未被命中,則以主存地址訪問(wèn)主存,并把主存中該,說(shuō)明未被命中,則以主存地址訪問(wèn)主存,并把主存中該 塊數(shù)據(jù)調(diào)入填補(bǔ)空塊(直接映像只能調(diào)入指定塊內(nèi),不需要采用替換塊數(shù)據(jù)調(diào)入填補(bǔ)空塊(直接映像只能調(diào)入指定塊內(nèi),不需要采用替換 策略)或替換原有的副本,且修改標(biāo)記值。策略)或替換
39、原有的副本,且修改標(biāo)記值。 例例4-1:設(shè)在直接映像的設(shè)在直接映像的Cache中,主存地址的區(qū)號(hào)中,主存地址的區(qū)號(hào)5位,塊位,塊號(hào)號(hào)3位,位,CPU訪存過(guò)程中,依次訪問(wèn)主存單元高訪存過(guò)程中,依次訪問(wèn)主存單元高8位地址為:位地址為: 00010110,00011010,00010110,00011010,00010000,00000 011,00010000,00010010。 要求寫(xiě)出每次訪問(wèn)后要求寫(xiě)出每次訪問(wèn)后CacheCache中的內(nèi)容中的內(nèi)容。 解:解:(1 1) 開(kāi)始工作時(shí)開(kāi)始工作時(shí)CacheCache的初始狀態(tài)如表的初始狀態(tài)如表 (2 2) 訪問(wèn)訪問(wèn)00101100010110,Y0
40、0010(00010110) Cache中塊地址為中塊地址為110的塊內(nèi)無(wú)數(shù)據(jù)的塊內(nèi)無(wú)數(shù)據(jù)有效有效位為位為N,未命中,訪問(wèn)主存,將主存塊號(hào),未命中,訪問(wèn)主存,將主存塊號(hào)00010110的內(nèi)容調(diào)入的內(nèi)容調(diào)入Cache 塊地址為塊地址為110的數(shù)據(jù)段中后,的數(shù)據(jù)段中后,Cache中塊地址為中塊地址為110的有效位寫(xiě)為的有效位寫(xiě)為Y,標(biāo),標(biāo)記字段寫(xiě)入記字段寫(xiě)入00010。Cache內(nèi)容如下表所示內(nèi)容如下表所示,(,(0001011000010110)表示塊內(nèi)表示塊內(nèi)容容)。)。 (3 3)訪問(wèn))訪問(wèn)0001101000011010,Y00011 (00011010) Cache Cache中塊地址為
41、中塊地址為010010的塊內(nèi)無(wú)數(shù)據(jù)的塊內(nèi)無(wú)數(shù)據(jù)有效有效 位為位為N N,未命中,訪問(wèn)主存,將主存塊號(hào),未命中,訪問(wèn)主存,將主存塊號(hào)0001101000011010的內(nèi)容調(diào)入的內(nèi)容調(diào)入CacheCache 塊地址為塊地址為010010的數(shù)據(jù)段中后,的數(shù)據(jù)段中后,CacheCache中塊地址為中塊地址為010010的有效位寫(xiě)為的有效位寫(xiě)為Y Y, 標(biāo)記字段寫(xiě)入標(biāo)記字段寫(xiě)入0001100011,CacheCache內(nèi)容如下表所示,(內(nèi)容如下表所示,(0001101000011010)表示塊表示塊 內(nèi)容)。內(nèi)容)。 (4 4) 訪問(wèn)訪問(wèn)0001011000010110命中,訪問(wèn)命中,訪問(wèn)CacheCa
42、che,CacheCache中內(nèi)容不變;中內(nèi)容不變; (5 5) 訪問(wèn)訪問(wèn)0001101000011010命中,訪問(wèn)命中,訪問(wèn)CacheCache,CacheCache中內(nèi)容不變;中內(nèi)容不變; (6 6) 訪問(wèn)訪問(wèn)0001000000010000, Cache Cache中塊地址為中塊地址為000000的塊內(nèi)無(wú)數(shù)據(jù)的塊內(nèi)無(wú)數(shù)據(jù)有效有效 位為位為N N,未命中,訪問(wèn)主存,將主存塊號(hào),未命中,訪問(wèn)主存,將主存塊號(hào)0001000000010000的內(nèi)容調(diào)入的內(nèi)容調(diào)入CacheCache 塊地址為塊地址為000000的數(shù)據(jù)段中后,的數(shù)據(jù)段中后,CacheCache中塊地址為中塊地址為000000的有效
43、位寫(xiě)為的有效位寫(xiě)為Y Y,標(biāo),標(biāo) 記字段寫(xiě)入記字段寫(xiě)入0001000010,CacheCache內(nèi)容如下表所示。,(內(nèi)容如下表所示。,(00010000001000)表示塊表示塊 內(nèi)容)。內(nèi)容)。Y00010(00010000) (7 7) 訪問(wèn)訪問(wèn)0000001100000011, Cache Cache中塊地址為中塊地址為011011的塊內(nèi)無(wú)數(shù)據(jù)的塊內(nèi)無(wú)數(shù)據(jù)有效位有效位 為為N N,未命中,訪問(wèn)主存,將主存塊號(hào),未命中,訪問(wèn)主存,將主存塊號(hào)0000001100000011的內(nèi)容調(diào)入的內(nèi)容調(diào)入CacheCache 塊地塊地 址為址為011011的數(shù)據(jù)段中后,的數(shù)據(jù)段中后,CacheCache
44、中塊地址為中塊地址為011011的有效位寫(xiě)為的有效位寫(xiě)為Y Y,標(biāo)記字,標(biāo)記字 段寫(xiě)入段寫(xiě)入0000000000,CacheCache內(nèi)容如下表所示。內(nèi)容如下表所示。(00000011) Y 00000 (8 8)訪問(wèn))訪問(wèn)0001000000010000命中,訪問(wèn)命中,訪問(wèn)CacheCache,CacheCache中內(nèi)容不變;中內(nèi)容不變; (9 9)訪問(wèn))訪問(wèn)0001001000010010, Cache Cache中塊地址為中塊地址為010010的塊標(biāo)記為的塊標(biāo)記為00011000100001100010 ,未命中,訪問(wèn)主存,以(,未命中,訪問(wèn)主存,以(0001001000010010)替
45、換()替換(0001101000011010),修改標(biāo)記),修改標(biāo)記 為為0001000010,CacheCache內(nèi)容如表所示。內(nèi)容如表所示。00010(00010010)直接映像的特點(diǎn)直接映像的特點(diǎn) 直接映像的地址變換速度快;直接映像的地址變換速度快; 不涉及替換策略;不涉及替換策略; 實(shí)現(xiàn)的硬件簡(jiǎn)單,成本低;實(shí)現(xiàn)的硬件簡(jiǎn)單,成本低; 缺點(diǎn)是每一主存塊只能調(diào)入缺點(diǎn)是每一主存塊只能調(diào)入CacheCache中某一指定的區(qū)域,中某一指定的區(qū)域,塊沖突的概率高,塊沖突的概率高,CacheCache的效率低;的效率低;主存與主存與Cache的地址映射的地址映射v全相聯(lián)映射全相聯(lián)映射n主存中的每一個(gè)字
46、主存中的每一個(gè)字塊映像到塊映像到cache中中的任意一行的任意一行n塊號(hào)即為行標(biāo)記塊號(hào)即為行標(biāo)記主存與主存與Cache的地址映射的地址映射v 全相聯(lián)映射實(shí)例全相聯(lián)映射實(shí)例 主存為主存為1MB,劃分,劃分2048塊;塊;Cache容量為容量為8KB,全相聯(lián)全相聯(lián)Cache如何設(shè)計(jì)?如何設(shè)計(jì)?1. 主存容量為主存容量為1MB,塊內(nèi)容量,塊內(nèi)容量512B。主存地址為。主存地址為20位;位;其中塊地址其中塊地址11位,塊內(nèi)地址位,塊內(nèi)地址9位。位。2. Cache容量為容量為8KB,行容量為,行容量為512B,共,共16行。行內(nèi)地行。行內(nèi)地址址9位。位。3. Cache中各行標(biāo)記為中各行標(biāo)記為11位,
47、對(duì)應(yīng)主存中的數(shù)據(jù)塊編號(hào)位,對(duì)應(yīng)主存中的數(shù)據(jù)塊編號(hào)(地址)。(地址)。主存與主存與Cache的地址映射的地址映射v全相聯(lián)映射實(shí)例全相聯(lián)映射實(shí)例4.讀過(guò)程讀過(guò)程nCPU給出給出20位地址。位地址。nCache將高將高11位的塊地址與所有位的塊地址與所有各行的標(biāo)記進(jìn)行比較。各行的標(biāo)記進(jìn)行比較。n命中則將低命中則將低9位的塊(行)內(nèi)地位的塊(行)內(nèi)地址送入址送入Cache完成訪問(wèn)。完成訪問(wèn)。n否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)據(jù)塊到據(jù)塊到Cache。圖4 -40 cache原理圖優(yōu)點(diǎn):存放位置靈活,命中率高優(yōu)點(diǎn):存放位置靈活,命中率高缺點(diǎn):當(dāng)缺點(diǎn):當(dāng)Cache或主存規(guī)模很大時(shí),塊地址
48、比較過(guò)程非常復(fù)雜,或主存規(guī)模很大時(shí),塊地址比較過(guò)程非常復(fù)雜,硬件實(shí)現(xiàn)復(fù)雜度高。硬件實(shí)現(xiàn)復(fù)雜度高。結(jié)論:全相聯(lián)映射僅適用于小容量的結(jié)論:全相聯(lián)映射僅適用于小容量的Cache設(shè)計(jì)設(shè)計(jì)全相聯(lián)映像下的訪存過(guò)程全相聯(lián)映像下的訪存過(guò)程訪存過(guò)程訪存過(guò)程 以圖表示。以圖表示。 Cache Cache由存放從主存調(diào)入的數(shù)據(jù)和調(diào)入塊的主存塊號(hào)(作為由存放從主存調(diào)入的數(shù)據(jù)和調(diào)入塊的主存塊號(hào)(作為“標(biāo)記標(biāo)記”)組成;)組成;CPUCPU訪問(wèn)存儲(chǔ)器時(shí),給出由訪問(wèn)存儲(chǔ)器時(shí),給出由“主存塊號(hào)主存塊號(hào)”及及“塊內(nèi)地址塊內(nèi)地址”組成的主存地址。將主存地址中的標(biāo)記依次組成的主存地址。將主存地址中的標(biāo)記依次分別同分別同CacheC
49、ache中的各標(biāo)記送比較器比較中的各標(biāo)記送比較器比較: 若有一個(gè)相等若有一個(gè)相等,說(shuō)明被命中,由說(shuō)明被命中,由主存塊號(hào)主存塊號(hào)轉(zhuǎn)換為轉(zhuǎn)換為CacheCache塊號(hào)塊號(hào),同,同 主存地址中的塊內(nèi)地址主存地址中的塊內(nèi)地址組合為組合為CacheCache地址訪問(wèn)地址訪問(wèn)CacheCache; 若無(wú)一個(gè)相等若無(wú)一個(gè)相等,說(shuō)明未被命中,則以主存塊地址說(shuō)明未被命中,則以主存塊地址訪問(wèn)主存訪問(wèn)主存,并,并 在在CacheCache中各塊未充滿情況下,則將該中各塊未充滿情況下,則將該塊數(shù)據(jù)調(diào)入到塊數(shù)據(jù)調(diào)入到CacheCache 任意空任意空 塊塊中,或在中,或在CacheCache中各塊都已充滿情況下,則采用
50、一定的中各塊都已充滿情況下,則采用一定的替換算法替換算法 替換替換掉掉CacheCache中某一塊中某一塊,然后把該塊的主存塊號(hào)作為新標(biāo)記寫(xiě)入到,然后把該塊的主存塊號(hào)作為新標(biāo)記寫(xiě)入到 Cache Cache中該塊的標(biāo)記處以中該塊的標(biāo)記處以修改標(biāo)記修改標(biāo)記。全相聯(lián)映像的特點(diǎn)全相聯(lián)映像的特點(diǎn) 全相聯(lián)映像在全相聯(lián)映像在CacheCache中各塊全部裝滿時(shí)才會(huì)出現(xiàn)塊沖突,中各塊全部裝滿時(shí)才會(huì)出現(xiàn)塊沖突,可以靈活地進(jìn)行塊的分配,所以塊沖突概率低;可以靈活地進(jìn)行塊的分配,所以塊沖突概率低; Cache Cache的利用率高;的利用率高; 標(biāo)記檢查速度慢,控制復(fù)雜,比較電路較難實(shí)現(xiàn);標(biāo)記檢查速度慢,控制復(fù)雜
51、,比較電路較難實(shí)現(xiàn); 用硬件來(lái)實(shí)現(xiàn)替換算法;用硬件來(lái)實(shí)現(xiàn)替換算法; 適用于容量較小的適用于容量較小的CacheCache中,使參與比較的標(biāo)記較少、比中,使參與比較的標(biāo)記較少、比較電路相應(yīng)簡(jiǎn)單、檢索速度也不會(huì)太長(zhǎng)。較電路相應(yīng)簡(jiǎn)單、檢索速度也不會(huì)太長(zhǎng)。 例:例:設(shè)在全相聯(lián)映像的設(shè)在全相聯(lián)映像的CacheCache中,主存地址塊號(hào)中,主存地址塊號(hào)8 8位,位,CacheCache塊塊號(hào)號(hào)3 3位,位,CPUCPU在訪存過(guò)程中依次訪問(wèn)主存單元的高在訪存過(guò)程中依次訪問(wèn)主存單元的高8 8位地址為:位地址為: 0001011000010110,0001101000011010,000101100001011
52、0,0001101000011010,0001000000010000,0000001100000011,0001000000010000,0001001000010010。 要求畫(huà)出全相聯(lián)映像下完成上述訪問(wèn)后要求畫(huà)出全相聯(lián)映像下完成上述訪問(wèn)后CacheCache的調(diào)入塊的分配的調(diào)入塊的分配情況,并同直接映像的分配情況作對(duì)比。情況,并同直接映像的分配情況作對(duì)比。 解:解:為簡(jiǎn)單起見(jiàn),把被訪問(wèn)的為簡(jiǎn)單起見(jiàn),把被訪問(wèn)的8 8個(gè)主存單元的塊地址依次用十進(jìn)制表示個(gè)主存單元的塊地址依次用十進(jìn)制表示 為:為:2222、2626、2222、2626、1616、3 3、1616、18,18,省略省略Cache
53、Cache標(biāo)記等,根據(jù)例標(biāo)記等,根據(jù)例4-14-1的的 分析,可畫(huà)出直接映像方式下分析,可畫(huà)出直接映像方式下CacheCache中的塊分配情況如圖中的塊分配情況如圖4-194-19所示,第所示,第8 8 次訪問(wèn)時(shí),雖然次訪問(wèn)時(shí),雖然CacheCache中中8 8塊僅裝入了塊僅裝入了4 4塊,但還是發(fā)生了塊沖突,因?yàn)閴K,但還是發(fā)生了塊沖突,因?yàn)?818 mod 8 = 26 mod 8 mod 8 = 26 mod 8必須進(jìn)行替換操作。必須進(jìn)行替換操作。18同樣,可畫(huà)出全相聯(lián)映像方式下同樣,可畫(huà)出全相聯(lián)映像方式下CacheCache中的塊分配情況如圖中的塊分配情況如圖4- 4-2020所示,從圖
54、可見(jiàn),所示,從圖可見(jiàn),8 8次訪問(wèn)后,次訪問(wèn)后,CacheCache未被裝滿,不會(huì)發(fā)生未被裝滿,不會(huì)發(fā)生塊沖突。塊沖突。22222622262226222616222616 3 222616 3222616 318主存與主存與Cache的地址映射的地址映射v組相聯(lián)映射組相聯(lián)映射nCache被劃分為被劃分為 組,每組包含組,每組包含 行行(稱為(稱為v路)路)n以以 為模確定數(shù)據(jù)塊緩存的目標(biāo)組為模確定數(shù)據(jù)塊緩存的目標(biāo)組n數(shù)據(jù)塊可以存儲(chǔ)于目標(biāo)組的任意一行數(shù)據(jù)塊可以存儲(chǔ)于目標(biāo)組的任意一行與直接映射相與直接映射相比,將行擴(kuò)展比,將行擴(kuò)展為組為組主存與主存與Cache的地址映射的地址映射v 組相聯(lián)映射實(shí)
55、例組相聯(lián)映射實(shí)例 主存為主存為1MB,劃分,劃分2048塊;塊;Cache容量為容量為8KB,組相聯(lián)組相聯(lián)Cache如何設(shè)計(jì)?如何設(shè)計(jì)? (假設(shè)每組包含(假設(shè)每組包含2行,行,即即2路組相聯(lián)路組相聯(lián)Cache)1. 主存容量為主存容量為1MB,塊內(nèi)容量,塊內(nèi)容量512B。Cache容量為容量為8KB,行容量為行容量為512B,共,共16行,行,8組。組。2. 主存可以劃分為主存可以劃分為2048/8=256個(gè)區(qū)??偟刂窞閭€(gè)區(qū)??偟刂窞?0位;其位;其中塊內(nèi)地址中塊內(nèi)地址9位,位, 3位地址為組編號(hào),位地址為組編號(hào), 高高8位地址作為位地址作為區(qū)編號(hào)(組內(nèi)塊編號(hào))。區(qū)編號(hào)(組內(nèi)塊編號(hào))。區(qū)編號(hào)作
56、為行標(biāo)記存儲(chǔ)。區(qū)編號(hào)作為行標(biāo)記存儲(chǔ)。主存與主存與Cache的地址映射的地址映射v組相聯(lián)映射實(shí)例組相聯(lián)映射實(shí)例3.讀過(guò)程讀過(guò)程nCPU給出給出20位地址。位地址。nCache利用中間利用中間3位的組編號(hào)確定目標(biāo)組。位的組編號(hào)確定目標(biāo)組。nCache將高將高8位的區(qū)編號(hào)與組內(nèi)各行的標(biāo)記比較。位的區(qū)編號(hào)與組內(nèi)各行的標(biāo)記比較。n命中則利用低命中則利用低9位的塊(行)內(nèi)地址完成訪問(wèn)。位的塊(行)內(nèi)地址完成訪問(wèn)。n否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)據(jù)塊到否則從主存讀出數(shù)據(jù)并復(fù)制數(shù)據(jù)塊到Cache。全相聯(lián)與直接映射的混合體,將逐行匹配工作局限于組內(nèi),全相聯(lián)與直接映射的混合體,將逐行匹配工作局限于組內(nèi),兼具靈活性和易
57、于實(shí)現(xiàn)等優(yōu)點(diǎn)兼具靈活性和易于實(shí)現(xiàn)等優(yōu)點(diǎn)例如:地址00000000 100 XXXXXXXXX對(duì)應(yīng)某區(qū)的第4塊和Cache的第4組(第6、7行),只要兩行標(biāo)記之一為00000000,則表示第0區(qū)的第8行位于Cache中,即命中主存和主存和CacheCache的地址結(jié)構(gòu)的地址結(jié)構(gòu) 組相聯(lián)映像中主存地址結(jié)構(gòu)為:組相聯(lián)映像中主存地址結(jié)構(gòu)為: Cache地址結(jié)構(gòu)為:地址結(jié)構(gòu)為: Cache地址中塊內(nèi)地址和組號(hào)部分直接取自主存地址。組內(nèi)地址即地址中塊內(nèi)地址和組號(hào)部分直接取自主存地址。組內(nèi)地址即 組內(nèi)塊號(hào)是查找地址映像表的結(jié)果。組內(nèi)塊號(hào)是查找地址映像表的結(jié)果。 組相聯(lián)地址映像表又稱為組相聯(lián)地址映像表又稱為“
58、塊表塊表”。用來(lái)檢索。用來(lái)檢索Cache是否被命中,是否被命中, 形成命中塊的形成命中塊的Cache地址,地址, “塊表塊表”如下圖所示。如下圖所示。 檢索標(biāo)記包括二部分檢索標(biāo)記包括二部分: 區(qū)號(hào)標(biāo)記區(qū)號(hào)標(biāo)記和和組內(nèi)塊號(hào)標(biāo)記組內(nèi)塊號(hào)標(biāo)記。 訪存時(shí),根據(jù)主存地址中組號(hào)在訪存時(shí),根據(jù)主存地址中組號(hào)在“地址映像表地址映像表”中的該組對(duì)應(yīng)的中的該組對(duì)應(yīng)的表表 項(xiàng)中項(xiàng)中 ,查找有無(wú)和主存地址的區(qū)號(hào)和組內(nèi)塊號(hào)相同的主存區(qū)號(hào)標(biāo)記,查找有無(wú)和主存地址的區(qū)號(hào)和組內(nèi)塊號(hào)相同的主存區(qū)號(hào)標(biāo)記 和組內(nèi)塊號(hào)標(biāo)記:和組內(nèi)塊號(hào)標(biāo)記: 若有若有,表示表示Cache被被命中命中,將對(duì)應(yīng)的將對(duì)應(yīng)的Cache塊號(hào)取出,形成塊號(hào)取出,
59、形成Cache 地址地址訪問(wèn)訪問(wèn)Cache。 若無(wú),若無(wú),表示表示Cache未被命中未被命中,在對(duì)在對(duì)主存進(jìn)行訪問(wèn)主存進(jìn)行訪問(wèn)同時(shí),將主存中對(duì)同時(shí),將主存中對(duì) 應(yīng)塊應(yīng)塊調(diào)入調(diào)入Cache中相應(yīng)組中相應(yīng)組的的一塊一塊中,并在地址映像表中對(duì)應(yīng)中,并在地址映像表中對(duì)應(yīng)Cache塊塊 號(hào)標(biāo)記處寫(xiě)入主存區(qū)號(hào)、組內(nèi)塊號(hào),改變地址映像關(guān)系。號(hào)標(biāo)記處寫(xiě)入主存區(qū)號(hào)、組內(nèi)塊號(hào),改變地址映像關(guān)系。 主存塊存入主存塊存入Cache中哪一組是由直接映像規(guī)定的,關(guān)于存入該組中中哪一組是由直接映像規(guī)定的,關(guān)于存入該組中 哪一塊是由全相聯(lián)映像規(guī)定,這里也涉及替換操作及替換算法。哪一塊是由全相聯(lián)映像規(guī)定,這里也涉及替換操作及替
60、換算法。 例例 設(shè)兩路組相聯(lián)映像設(shè)兩路組相聯(lián)映像CacheCache中,主存塊地址(塊號(hào))中,主存塊地址(塊號(hào))8 8位,位,CacheCache塊號(hào)塊號(hào)3 3位,分區(qū)分組情況同圖位,分區(qū)分組情況同圖4-214-21,CPUCPU在訪存過(guò)程中,依次訪問(wèn)在訪存過(guò)程中,依次訪問(wèn)主存單元的兩主存單元的兩8 8位地址(塊地址)為:位地址(塊地址)為: 00010110 00010110(2222),),0001101000011010(2626),),0001011000010110(2222),),0001101000011010(2626),),0001000000010000(1616),),0
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫室施工方案
- 現(xiàn)場(chǎng)實(shí)行豬舍施工方案
- 明渠導(dǎo)流施工方案
- 機(jī)場(chǎng)塔臺(tái)結(jié)構(gòu)施工方案
- 斜槽帆布更換施工方案
- 2025年度特色輔導(dǎo)班家長(zhǎng)責(zé)任協(xié)議
- 二零二五年度歷年合同法司考備考資料定制合同
- 2025年度車輛抵押消費(fèi)貸款合同范本
- 2025年度租賃合同解除與合同解除解除爭(zhēng)議訴訟起訴狀
- 二零二五年度農(nóng)家樂(lè)房屋租賃與鄉(xiāng)村旅游生態(tài)保護(hù)合同
- 港珠澳大橋及背后的故事中國(guó)建造課程組30課件講解
- 2025年吉林長(zhǎng)白朝鮮族自治縣事業(yè)單位招聘16人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 初中歷史七年級(jí)上冊(cè)第8課 百家爭(zhēng)鳴
- 中國(guó)教育史課件
- 第18課排序計(jì)算有方法(教案)四年級(jí)全一冊(cè)信息技術(shù)人教版
- 規(guī)?;i場(chǎng)生物安全
- 2025年春節(jié)后復(fù)產(chǎn)復(fù)工方案及安全技術(shù)措施
- 維修基金使用合同范例
- 幼兒園小班美術(shù)欣賞《漂亮的糖紙》課件
- 互聯(lián)網(wǎng)接入服務(wù)提供商服務(wù)承諾
- 解除凍結(jié)及撤銷納入失信和限高令申請(qǐng)書(shū)(文本)
評(píng)論
0/150
提交評(píng)論