版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章 存儲系統(tǒng),,存儲器概述,主存儲器的基本構(gòu)造和操作,主存儲器組織,高速緩沖存儲器Cache 高速存儲器,半導(dǎo)體存儲器芯片,虛擬存儲器,原因:主存工作速度總落后于CPU的需求,主存容量總是落后于軟件的需求.提高存儲器性能的方法: 提高主存工作速度—(1)提高主存讀寫速度:從最早使用的DRAM到后來的FPM DRAM、EDO DRAM、SDRAM 、DDR SDRAM 和若RDRAM等;(2)在DRAM芯片中采用
2、高速存取方式,如相聯(lián)存儲器、雙端口存儲器等;(3)采用并行主存技術(shù). 改善系統(tǒng)結(jié)構(gòu)—采用多級存儲體系結(jié)構(gòu),3.6 高速存儲器,3.6.1 相聯(lián)存儲器(CAM——Content Access Memory),一、相聯(lián)(聯(lián)想)存儲器的實(shí)質(zhì)(工作原理)與常規(guī)存儲器按地址訪問不同,CAM是既可按地址尋址,又可按內(nèi)容(通常是某些字段)尋址.CAM的每個字由若干字段組成,待檢索的某字段作為關(guān)鍵字,用它與存儲體中所有單元進(jìn)行比較,
3、找出關(guān)鍵字相同的所有數(shù)據(jù)字.用于信息檢索、Cache和虛擬存儲器.二、相聯(lián)存儲器的結(jié)構(gòu)與功能 結(jié)構(gòu)框圖如下:,檢索寄存器(n位),屏蔽寄存器(n位),數(shù)據(jù)寄存器(n位),存儲體(包括比較電路)(m個單元,每單元n位),譯碼電路,,地址寄存器,,,,,,,,,,,,,,,,,,,1,2,m,┇,匹配寄存器,┇,┇,┇,??? ???,??? ???,??? ???,圖3.32 相聯(lián)存儲器的結(jié)構(gòu)框圖
4、,①用來存放待檢索內(nèi)容,②屏蔽關(guān)鍵字段以外的值,即進(jìn)行檢索時,將MR中要比較的位置置為1,不需要比較的位置置為0.,③存儲體中各單元相應(yīng)字段同時與關(guān)鍵字比較,相同者,匹配寄存器相應(yīng)位置為1.若同時有i個字滿足要求,則相應(yīng)有i位為1,④譯碼電路找到對應(yīng)的存儲單元.,也具備按地址訪問的功能。,CR,MR,CAM在Cache中的具體應(yīng)用,⑤數(shù)據(jù)寄存器存放讀出或?qū)懭氲臄?shù)據(jù). ⑥字選擇寄存器用來確定哪些字參與檢
5、索.,,,,,┇,字選擇寄存器,,,,,,559,,,,,,,0…0,0…0,0…0,0…0,11…1,第一次檢索寄存器內(nèi)容,屏蔽寄存器內(nèi)容,,,,,,1,趙XX,男,17,582,,,,,,2,錢XX,男,18,611,,,,,,3,孫XX,女,17,584,,,,,,4,李XX,男,19,604,,,,,,…,,,,,,N,丁XX,女,18,520,,,,,,,,,,,,,序號,姓名,性別,年齡,分?jǐn)?shù),圖3.33 相聯(lián)存儲器檢索舉
6、例,,例如:某高校學(xué)生入學(xué)總成績已經(jīng)存入相聯(lián)存儲器如圖3.33,要求列出“總分”在560-600分范圍內(nèi)學(xué)生名單.可用二次查找完成:第一次找出“總分”大于559的考生,第二次再找出“總分”小于601的考生.,,匹配寄存器,字選擇寄存器,,,,,,559,,,,,,,0…0,0…0,0…0,0…0,11…1,第一次檢索寄存器內(nèi)容,屏蔽寄存器內(nèi)容,,,,,,1,趙XX,男,17,582,,,,,,2,錢XX,男,18,611,,,,,,3,
7、孫XX,女,17,584,,,,,,4,李XX,男,19,604,,,,,,…,,,,,,N,丁XX,女,18,520,,,,,,,,,,,,,序號,姓名,性別,年齡,分?jǐn)?shù),圖3.33 相聯(lián)存儲器檢索舉例,,分別將559和601作為關(guān)鍵字段內(nèi)容置于比較寄存器中,屏蔽寄存器只在“總分”字段上設(shè)置11…1,而在其他字段設(shè)置00…0,表示不必比較,第一次查找結(jié)果送入匹配寄存器,為了進(jìn)行第二次查找,先將匹配寄存器內(nèi)容送入字選擇寄存器,并將比較
8、寄存器中的559更換為601,然后將第二次查找結(jié)果送入匹配寄存器,匹配寄存器和字選擇寄存器內(nèi)容同時為1位所對應(yīng)的考生,即為查找結(jié)果。,,匹配寄存器,字選擇寄存器,1,1,1,1,0,1,0,1,0,1,檢索寄存器(n位),屏蔽寄存器(n位),數(shù)據(jù)寄存器(n位),存儲體(包括比較電路)(m個單元,每單元n位),譯碼電路,,地址寄存器,,,,,,,,,,,,,,,,,,,1,2,m,┇,匹配寄存器,┇,┇,┇,???
9、???,??? ???,??? ???,圖3.32 相聯(lián)存儲器的結(jié)構(gòu)框圖,CR,MR,從按地址訪問的存儲器中檢索某一個單元,平均約W/2次操作(W為存儲單元數(shù)),而在相聯(lián)存儲器中僅需要進(jìn)行一次檢索操作,故大大提高了處理速度。,3.6.2 雙端口存儲器,端口:指讀/寫控制電路。常規(guī)存儲器為單端口存儲器,即每次只能接收一個地址,訪問一個存儲單元。在高速系統(tǒng)中,主存是信息交換的中心,CPU、外設(shè)需要頻繁訪問主存,而單端口存儲器每次只能
10、接受一個訪存者,影響工作速度。雙端口存儲器:具有兩個彼此獨(dú)立的讀/寫口,每個讀/寫口有獨(dú)立的地址寄存器和譯碼電路,可以并行地獨(dú)立工作。,地址寄存器,地址寄存器,譯碼器,譯碼器,存儲體,,,,,,,,,,,,,,,,,,應(yīng)用實(shí)例:FPM DRAM+雙口技術(shù)用于視頻卡(VRAM),,,地址,地址,MDR,MDR,,,,,數(shù)據(jù),數(shù)據(jù),讀寫電路,讀寫電路,,,,,WE,,WE,,MAR,MAR,工作方式:兩個讀
11、/寫口可以按各自接收的地址,同時并行訪問主存。與兩個獨(dú)立存儲器不同的是,兩套讀/寫口的訪存空間相同,可以訪問同一區(qū)間、同一存儲單元。在發(fā)生訪存沖突時由存儲器仲裁邏輯解決。,圖3.34 雙端口存儲器示意圖,3.6.3 多模塊交叉(多體交叉)存儲器,,一、并行主存系統(tǒng)用W/w片字長w的芯片可以擴(kuò)展成W位字長的存儲器,一般把這種擴(kuò)展叫存儲芯片的并聯(lián)組織(位擴(kuò)展)。各個芯片同時工作,在一個Tm內(nèi)讀出一個W位的字,獲得Bm=W/Tm的頻寬
12、。同理可進(jìn)一步把n個W位字長的同容量存儲器并成一個更大的存儲器以獲得Bm=n X W/Tm的頻寬。這樣組織的主存系統(tǒng)叫并行主存系統(tǒng)。作用:加快從主存讀出信息到CPU的速度,以解決主存和CPU之間速度不匹配的問題。二、并行主存系統(tǒng)的兩種組成方式——單體多字方式與多體并行方式多個存儲體共用一套地址寄存器和控制邏輯還是各個模塊有各自獨(dú)立的控制部件?即各塊是否可以獨(dú)立工作?單體多字和多體并行即因此而有別。,1、單體多字并行主存系統(tǒng)
13、 如下圖所示,多個并行工作的存儲器共用一套地址寄存器,按同一地址碼并行地訪問各自的對應(yīng)單元,假定送入的地址碼為A,則n個存儲器同時訪問各自的A號單元.可將這n個存儲器視作一個大的主存儲器,每個編址對應(yīng)于n字×w位,故稱為單體多字方式,適用于向量運(yùn)算. 即一個向量型的操作數(shù)
14、 是 n個標(biāo)量型操作數(shù)的 集合,可按同一地址分 別存放于n個并行主存
15、 中.,地址寄存器,,,地址,,M0,M1,….,M n-1,,,,,,,,,,,,W位,W位,….,W位,,n×w,圖3.35 單體多字并行主存系統(tǒng),地址譯碼器,,2、多體并行主存系統(tǒng) (1)多體交叉存儲器組成: n個容量相同的存儲器(或稱為n個存儲體),它們具有自己的地址寄存器、數(shù)據(jù)線、讀寫時序,形成可以同時工作又獨(dú)立編址且容量
16、相同的n個分存儲體,故稱為多體系統(tǒng).,,總 線 控 制,CPU,,,,,,,,,,地址寄存器,地址寄存器,地址寄存器,地址寄存器,存 控 部 件,,,,,,,,,,,,,,,,…,,,,,,,…,…,…,0,4,M0,1,5,2,6,3,7,M1,M2,M3,數(shù)據(jù),存控部件:接收系統(tǒng)中各部件或設(shè)備的訪存請求,按預(yù)定的優(yōu)先順序進(jìn)行排隊(duì),響應(yīng)其訪存請求;分時接收各請求源發(fā)來的訪存地址,轉(zhuǎn)送至相應(yīng)存儲體等等。,(2)多
17、體交叉編址 分為高位交叉(順序方式)和低位交叉編址(交叉方式)。 高位交叉編址:程序按體內(nèi)地址連續(xù)存放,一個存儲體存滿后再存入下一個存儲體,存儲器地址寄存器的高位表示體號,低位表示體內(nèi)地址.,MDR,M0,,,地址譯碼,MAR,MDR,M1,,,地址譯碼,MAR,MDR,Mn-1,,,地址譯碼,MAR,,,,,,,,,,,,,體號,體內(nèi)地址,,,,,,,,,,,,圖3.36(a) 高位交叉編址的多體存儲器,……
18、,,,,,,,,,00000,,,,,,,,,,,,,,,,,,,,,,,,,M0,M1,M2,M3,,,4 3 2 1 0,00001,00010,00011,00100,00101,00110,00111,01000,01001,01010,01011,01100,01101,01110,01111,10000,10001,10010,10011,10100,10101,10110,1
19、0111,11000,11001,11010,11011,11100,11101,11110,11111,模塊(分體)號,塊內(nèi)字地址,數(shù)據(jù)寄存器MDR(16位),,DB(16位),,,,,,圖3.36(b)高位交叉編址的多體存儲器(例),16位,16位,16位,16位,高位交叉即模塊地址在高位,低位交叉編址:同一存儲體中的地址是不連續(xù)的,程序連續(xù)存放在相鄰體中.存儲器地址寄存器的低位部分選擇不同的存儲體,而高位部分則指
20、向存儲體內(nèi)的存儲字.,MDR,M0,,,地址譯碼,MAR,MDR,M1,,,地址譯碼,MAR,MDR,Mn-1,,,地址譯碼,MAR,,,,,,,,,,,,,體號,體內(nèi)地址,,,,,,,,,,,圖3.37(a) 低位交叉編址的多體存儲器,,……,,,,,,,,,00000,,,,,,,,,,,,,,,,,,,,,,,,,數(shù)據(jù)總線DB(16位),,,4 3 2 1 0,00001,0001
21、0,00011,00100,00101,00110,00111,01000,01001,01010,01011,01100,01101,01110,01111,10000,10001,10010,10011,10100,10101,10110,10111,11000,11001,11010,11011,11100,11101,11110,11111,模塊(分體)號,塊內(nèi)字地址,,,譯碼器,尋找模塊,圖3.37(b)低位交叉編
22、址的多體存儲器(例),MDR0,MDR3,MDR2,MDR1,,,,,,,,,MAR0,MAR3,MAR2,MAR1,,16位,16位,16位,16位,高位交叉編址特點(diǎn):地址高位選擇模塊,地址低位選擇字;某模塊進(jìn)行存取時,其它模塊不工作;某模塊出現(xiàn)故障時,不影響其它模塊;擴(kuò)容方便;各模塊串行工作,存儲器帶寬受限.低位交叉編址特點(diǎn):地址低位選擇模塊,地址高位選擇字;連續(xù)地址分布在不同模塊中,模塊可同時并行工作,提高了帶寬;
23、但一個模塊出錯,則程序出錯.,例:一個四體并行交叉存儲器,每個模塊的容量是16K×32位,存取周期為200ns,在下述說法中( )是正確的。在200ns內(nèi),該存儲器能向CPU提供256位二進(jìn)制信息B. 在200ns內(nèi),該存儲器能向CPU提供128位二進(jìn)制信息C. 在50ns內(nèi),每個存儲模塊能向CPU提供32位二進(jìn)制信息D. 在50ns內(nèi),該存儲器能向CPU提供128位二進(jìn)制信息,(3)多體交叉存儲體分時工作原
24、理無論多體存儲器中有幾個分體,CPU與主存之間數(shù)據(jù)通路仍是一個W位.n個W位如何在一個存儲周期Tm中讀出? 分時啟動多個分體,使得每個Tm周期內(nèi)得到多個單體字寬的數(shù)據(jù).設(shè)主存有n個分體(模塊),各自的存取周期都是Tm;則第一個分體啟動后,每隔1/n個Tm再啟動下一個分體.,例:設(shè)有4體交叉的存儲器,分時即每隔1/4Tm啟動一個分體.要點(diǎn):存儲器讀出雖用一個Tm,一旦讀出后在主存——CPU的總線上傳遞的速度以及處理的速度要比讀內(nèi)存
25、快得多.,,M3M2M1M0 1/4 2/4 3/4 1 2 t(Tm),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,圖3.38 模4交叉存取分時工作示意圖,,,,,,,,,,單體訪存周期,,單體訪存周期,,,,,,,,,,,,,,,,,,T
26、,,?,時間,字,模塊,W0 M0,W1 M1,W2 M2,W3 M3,W0 M0,圖3.29 流水方式存取示意圖,設(shè)每個體的存儲字長和數(shù)據(jù)總線的寬度一致, 低位交叉編址的存儲器模塊數(shù)為n,存取周期為T,總線傳輸周期為?,當(dāng)采用流水線方式時,應(yīng)滿足T= n?. n=T/?稱為交叉存取度,要求模塊數(shù)>=n,以保證啟動某模塊后經(jīng)n?時間再啟動該模塊時,它的上一次存取操作已經(jīng)完成.,,,,,,,,,
27、,,,,,,,,,T,,?,時間,字,模塊,W0 M0,W1 M1,W2 M2,W3 M3,W0 M0,圖3.29 流水方式存取示意圖,對于低位交叉存儲器,連續(xù)讀取n個字所需時間t1為:t1=T+(n-1)?對于高位交叉存儲器,連續(xù)讀取n個字所需時間t2為:t2=nT,例:設(shè)存儲器容量為32字,字長64位,模塊數(shù)m=4,分別用順序方式和交叉方式進(jìn)行組織.存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線
28、傳送周期?=50ns.問順序存儲器和交叉存儲器的帶寬各是多少?解:二者讀出4個字的信息量均為64 × 4=256位;所需時間不同,分別為:T1=T+(m-1)?=350nsT2=mT =800ns帶寬分別為:W1=256/350=73 × 107位/sW2=256/800=32 × 107位/s,例:某機(jī)器采用4體交叉存儲器,今執(zhí)行一小段循環(huán)程序,此程序放在存儲器的連續(xù)地址單元中.假設(shè)每,條指
29、令的執(zhí)行時間相等,而且不需要到存儲器存取數(shù)據(jù),請問在下面兩種情況中(執(zhí)行的指令數(shù)相等),程序的運(yùn)行時間是否相等?(1)循環(huán)程序由6條指令組成,重復(fù)執(zhí)行80次.(2)循環(huán)程序由8條指令組成,重復(fù)執(zhí)行60次.,,,,,,,,,…,…,…,…,,,,,,,,,,,,,指令1,指令5,指令2,指令6,指令3,指令4,指令7,指令8,M0,M3,M2,M1,(1)T1=(T+7 ? ) + 8? × 79=T+639 ?,(2)T2
30、=(T+7 ? ) + 8? × 59=T+479 ?,T1-T2=160?,∴T1>T2,解:,(1)6條指令,重復(fù)80次(2)8條指令重復(fù)60次,例:設(shè)某計(jì)算機(jī)采用直接映像Cache,已知主存容量為4MB,Cache容量為4096B,字塊長度為8個字(32位/字). (1)畫出反映主存與Cache映像關(guān)系的主存地址各字段分配框圖,并說明各字段的名稱及位數(shù); (2)設(shè)cache初始狀態(tài)為空,若
31、CPU依次從主存第0,1,…,99號單元讀出100個字 (主存一次讀出一個字),并重復(fù)按此次序讀10次,問命中率為多少? (3)若Cache的存取時間為50ns,主存的存取時間為500ns,根據(jù)(2)求出的命中率,計(jì)算平均存取時間; (4)計(jì)算Cache-主存系統(tǒng)的效率.,解:(1)回顧—計(jì)算機(jī)系統(tǒng)既可按照字節(jié)尋址,也可按照字尋址.若某機(jī)主存容量為16K×32位,如果采用字編址,地址碼14位,如果采用字
32、節(jié)編址,則地址碼為16位。見下圖。,,,,,,,,,,,,,,,字地址,,字節(jié)地址,0,1,2,3,4,5,6,7,8,9,A,B,FFFCH,FFFDH,FFFEH,FFFFH,0000 0000 0000 0000,0000 0000 0000 0100,0000 0000 0000 1000,,1111 1111 1111 1100,……..,字地址,0,31,00 0000 0000 0000,00 0000 0000 0001
33、,00 0000 0000 0010,11 1111 1111 1111,按字節(jié)編址與按字編址的區(qū)別,解:本題目中,主存容量為4MB,Cache容量為4KB,字長為32位(4B),字塊大小為8個字(32B),則地址分配見下圖所示.,主存,,,,,,,,,字地址,,字節(jié)地址,0,1,2,3,4,5,6,8,9,A,B,3FFFFC,3FFFFD,3FFFFE,3FFFFF,00 0000 0000 0000 0000 0000,00 00
34、00 0000 0000 0000 0100,00 0000 0000 0000 0000 1000,,11 1111 1111 1111 1111 1100,……..,7,主存容量4MB,其地址22位,字塊8個字,共32B,故塊內(nèi)地址5位.主存分4MB/4KB=210組,故組數(shù)10位.Cache分4KB/(23×22)B=27塊,故組內(nèi)塊數(shù)7位.,,,,組數(shù)(10位),組內(nèi)塊數(shù)(7位),塊內(nèi)地址(5位),(2)由于Cache
35、初始為空,且塊長為8,故CPU第一次讀出100個字時,共有13次未命中(即讀第0、8、16、…、96號單元時未命中),以后9次重復(fù)讀這100個字時,均命中,故命中率為: (100×10-13)/1000 ×100% =98.7%(3)平均訪問時間=0.987×50ns+(1-0.987) ×500ns=55.85ns(4)Cache-主存系統(tǒng)的效率為: (50ns/55.8
36、5ns) ×100%=89.5%,例:(大綱中示例題:二、綜合應(yīng)用題43)某計(jì)算機(jī)的主存地址位數(shù)為32位,按字節(jié)編址.假定數(shù)據(jù)Cache中最多存放128個主存塊,采用4路組相聯(lián)方式,塊大小為64B,每塊設(shè)置了1位有效位.采用一次性寫回策略,為此每塊設(shè)置了1位“臟(Dirty)”位.要求:(1)分別指出主存地址中標(biāo)記(Tag)、組號(Index)和塊內(nèi)地址(Offset)三部分的位置和位數(shù).,【解答】(1)主存地址格式劃分
37、如下:,標(biāo)記(Tag),組號(Index),塊內(nèi)地址(Offset),Cache每塊64B,并且是字節(jié)尋址,故Offset段為6位;四路組相聯(lián)的Cache共128塊,所以組數(shù)為:128/4=25;組號Index為5位;32位主存地址中其余32-5-6=21位即Tag字段的位數(shù)(主存標(biāo)記).,例:(大綱中示例題:二、綜合應(yīng)用題43)某計(jì)算機(jī)的主存地址位數(shù)為32位,按字節(jié)編址.假定數(shù)據(jù)Cache中最多存放128個主存塊,采用4路組相聯(lián)方
38、式,塊大小為64B,每塊設(shè)置了1位有效位.采用一次性寫回策略,為此每塊設(shè)置了1位“臟(Dirty)”位.要求:(2)計(jì)算該數(shù)據(jù)Cache的總位數(shù)(請給出詳細(xì)計(jì)算過程).,【解答】(2)Cache的容量(位數(shù))計(jì)算如下:該數(shù)據(jù)Cache有128塊;每塊數(shù)據(jù)部分64Byte=64 ×8=512位除數(shù)據(jù)外,每塊還有Tag標(biāo)記21位、有效位1位和“臟(Dirty)”位1位,即每塊除了數(shù)據(jù)外還要有21+1+1=23位;所以有
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論