![計算機(jī)組成與系統(tǒng)結(jié)構(gòu)_第1頁](http://file4.renrendoc.com/view/e4c76ee5760a5d1b1c113b1866f13066/e4c76ee5760a5d1b1c113b1866f130661.gif)
![計算機(jī)組成與系統(tǒng)結(jié)構(gòu)_第2頁](http://file4.renrendoc.com/view/e4c76ee5760a5d1b1c113b1866f13066/e4c76ee5760a5d1b1c113b1866f130662.gif)
![計算機(jī)組成與系統(tǒng)結(jié)構(gòu)_第3頁](http://file4.renrendoc.com/view/e4c76ee5760a5d1b1c113b1866f13066/e4c76ee5760a5d1b1c113b1866f130663.gif)
![計算機(jī)組成與系統(tǒng)結(jié)構(gòu)_第4頁](http://file4.renrendoc.com/view/e4c76ee5760a5d1b1c113b1866f13066/e4c76ee5760a5d1b1c113b1866f130664.gif)
![計算機(jī)組成與系統(tǒng)結(jié)構(gòu)_第5頁](http://file4.renrendoc.com/view/e4c76ee5760a5d1b1c113b1866f13066/e4c76ee5760a5d1b1c113b1866f130665.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Ch4:MemoryCh4:MemoryHierarchy存儲器層次結(jié)構(gòu)第一講第二講第三講基本概念和主存儲器高速緩沖存儲器(Cache)虛擬存儲器(VirtualMemory)1第一講基本概念和主存儲器主要內(nèi)容信息的存儲、傳送、處理單位的含義– ////機(jī)器字長存儲器分類–///第一講基本概念和主存儲器主要內(nèi)容信息的存儲、傳送、處理單位的含義– ////機(jī)器字長存儲器分類–////功能來分半導(dǎo)體存儲器隨機(jī)訪問存儲器––SRAM的原理和特點DRAM的原理和特點RAM芯片組織–––如何由記憶單元構(gòu)成存儲陣列如何讀寫存儲陣列中的信息如何由芯片構(gòu)成存儲器提高存儲器速度的措施:–––芯片內(nèi)采用行緩存,同行內(nèi)數(shù)據(jù)直接從緩存中取采用多模塊存儲器,多個存儲器交叉存取引入Cache(下一講的主要內(nèi)容)memory.22009年4月16日星期四回顧:存儲器基本術(shù)語(//位元)(Cell)–具有兩種穩(wěn)態(tài)的能夠表示二進(jìn)制數(shù)碼0和1的物理器件存儲單元/編址單位(AddressingUnit)–主存中具有相同地址的那些位構(gòu)成一個存儲單元,也稱為一個編址單位存儲體回顧:存儲器基本術(shù)語(//位元)(Cell)–具有兩種穩(wěn)態(tài)的能夠表示二進(jìn)制數(shù)碼0和1的物理器件存儲單元/編址單位(AddressingUnit)–主存中具有相同地址的那些位構(gòu)成一個存儲單元,也稱為一個編址單位存儲體/存儲矩陣/存儲陣列(Bank)–所有存儲單元構(gòu)成一個存儲陣列編址方式(AddressingMode)–對存儲體中各存儲單元進(jìn)行編號的方式??按字節(jié)編址(基本上現(xiàn)代計算機(jī)都按字節(jié)編址)按字編址(早期有機(jī)器按字編址)存儲器地址寄存器(MemoryAddressRegister-MAR)–用于存放主存單元地址的寄存器存儲器數(shù)據(jù)寄存器(MemoryDataRegister-MDR(MBR))–用于存放主存單元中的數(shù)據(jù)的寄存器memory.32009年4月16日星期四回顧:存儲器基本術(shù)語機(jī)器字長–運算器中參加運算的寄存器的位數(shù),即:數(shù)據(jù)通路的寬度存儲字–存儲芯片中的一個讀寫單位,一般等于芯片的數(shù)據(jù)線寬度(注:最好存儲器按機(jī)器字長組織成一個“自然”單位。它的長度一般應(yīng)等于一個數(shù)或指令的位數(shù)。但很多機(jī)器的數(shù)據(jù)和指令都是變長的。)編址單位–一個存儲單元的位數(shù)?,F(xiàn)在都按字節(jié)編址,即編址單位為8位傳輸單位回顧:存儲器基本術(shù)語機(jī)器字長–運算器中參加運算的寄存器的位數(shù),即:數(shù)據(jù)通路的寬度存儲字–存儲芯片中的一個讀寫單位,一般等于芯片的數(shù)據(jù)線寬度(注:最好存儲器按機(jī)器字長組織成一個“自然”單位。它的長度一般應(yīng)等于一個數(shù)或指令的位數(shù)。但很多機(jī)器的數(shù)據(jù)和指令都是變長的。)編址單位–一個存儲單元的位數(shù)?,F(xiàn)在都按字節(jié)編址,即編址單位為8位傳輸單位–對主存而言,指一次從主存讀出或?qū)懭氲臄?shù)的位數(shù),它可以不等于存儲字的長度,也可不等于編址單位。對外存而言,數(shù)據(jù)通常按塊傳輸,傳輸單位為塊。–(例如:386/486等,其編址單位為字節(jié),字長為32位,單字位數(shù)為16位,但傳輸單位可以是8/16/24/32位。)memory.42009年4月16日星期四回顧:存儲器分類依據(jù)不同的特性有多種分類方法(1)按工作性質(zhì)/存取方式分類–隨機(jī)存取存儲器RandomAccessMemory(RAM)?每個單元的讀寫時間一樣,且與各單元所在位置無關(guān)。如:內(nèi)存。(注:原意主要強(qiáng)調(diào)地址譯碼時間相同?,F(xiàn)在的DRAM芯片采用行緩沖,因而可能因為位置不同而使訪問時間有所差別。)順序存取存儲器Sequential回顧:存儲器分類依據(jù)不同的特性有多種分類方法(1)按工作性質(zhì)/存取方式分類–隨機(jī)存取存儲器RandomAccessMemory(RAM)?每個單元的讀寫時間一樣,且與各單元所在位置無關(guān)。如:內(nèi)存。(注:原意主要強(qiáng)調(diào)地址譯碼時間相同。現(xiàn)在的DRAM芯片采用行緩沖,因而可能因為位置不同而使訪問時間有所差別。)順序存取存儲器SequentialAccessMemory(SAM)–?數(shù)據(jù)按順序從存儲載體的始端讀出或?qū)懭?,因而存取時間的長短與信息所在位置有關(guān)。例如:磁帶。–直接存取存儲器DirectAccessMemory(DAM)?利用一個共享讀寫機(jī)制,直接定位到要讀寫的數(shù)據(jù)塊,在讀寫某個數(shù)據(jù)塊時按順序進(jìn)行。例如:磁盤。–相聯(lián)存儲器AssociateMemoryorContentAddressedMemory(CAM)?按內(nèi)容檢索到存儲位置進(jìn)行讀寫。例如:快表。memory.52009年4月16日星期四回顧:存儲器分類(2)按存儲介質(zhì)分類半導(dǎo)體存儲器:雙極型,靜態(tài)MOS型,動態(tài)MOS型磁表面存儲器:磁盤(Disk)、磁帶回顧:存儲器分類(2)按存儲介質(zhì)分類半導(dǎo)體存儲器:雙極型,靜態(tài)MOS型,動態(tài)MOS型磁表面存儲器:磁盤(Disk)、磁帶(Tape)光存儲器:CD,CD-ROM,DVD(3)按信息的可更改性分類讀寫存儲器(ReadWriteMemory):可讀可寫只讀存儲器(ReadOnlyMemory):只能讀不能寫(4)按斷電后信息的可保存性分類非易失(不揮發(fā))性存儲器(NonvolatileMemory)–信息可一直保留,不需電源維持。(如:ROM、磁表面存儲器、光存儲器等)易失(揮發(fā))性存儲器(VolatileMemory)–電源關(guān)閉時信息自動丟失。(如:RAM、Cache等)memory.62009年4月16日星期四回顧:存儲器分類(5)按功能/容量/速度/所在位置分類–寄存器(Register)回顧:存儲器分類(5)按功能/容量/速度/所在位置分類–寄存器(Register)封裝在CPU內(nèi),用于存放當(dāng)前正在執(zhí)行的指令和使用的數(shù)據(jù)用觸發(fā)器實現(xiàn),速度快,容量小(幾十個)高速緩存(Cache)位于CPU內(nèi)部或附近,用來存放當(dāng)前要執(zhí)行的局部程序段和數(shù)據(jù)用SRAM實現(xiàn),速度可與CPU匹配,容量小(幾MB)內(nèi)存儲器MM(主存儲器Main(PrimaryMemory)位于CPU之外,用來存放已被啟動的程序及所用的數(shù)據(jù)用DRAM實現(xiàn),速度較快,容量較大(幾GB)外存儲器AM輔助存儲器AuxiliarySecondaryStorage)–––??位于主機(jī)之外,用來存放暫不運行的程序、數(shù)據(jù)或存檔文件用磁表面或光存儲器實現(xiàn),容量大而速度慢memory.72009年4月16日星期四回顧:內(nèi)存與外存的關(guān)系及比較CPU③逐條執(zhí)行指令,按指令要求完成對數(shù)據(jù)的運算和處理①任務(wù)啟動時,執(zhí)行該任務(wù)的程序和數(shù)據(jù)將從外存成批傳送到內(nèi)存②CPU從內(nèi)存中逐條讀取該程序的指令及相關(guān)的數(shù)據(jù)外存儲器⑤任務(wù)完成后,將處理得到的全部結(jié)果成批傳送到外存以長久保存結(jié)果送回內(nèi)存保存memory.82009年4月16日星期四回顧:內(nèi)存與外存的關(guān)系及比較CPU③逐條執(zhí)行指令,按指令要求完成對數(shù)據(jù)的運算和處理①任務(wù)啟動時,執(zhí)行該任務(wù)的程序和數(shù)據(jù)將從外存成批傳送到內(nèi)存②CPU從內(nèi)存中逐條讀取該程序的指令及相關(guān)的數(shù)據(jù)外存儲器⑤任務(wù)完成后,將處理得到的全部結(jié)果成批傳送到外存以長久保存結(jié)果送回內(nèi)存保存memory.82009年4月16日星期四內(nèi)存儲器(簡稱內(nèi)存或主存)存取速度快成本高、容量相對較小直接與CPU連接,CPU(指令)可以對內(nèi)存中的指令及數(shù)據(jù)進(jìn)行讀、寫操作屬于易失性存儲器(volatile),用于臨時存放正在運行的程序和數(shù)據(jù)外存儲器(簡稱外存或輔存)–存取速度慢–成本低、容量很大–不與CPU直接連接,計算機(jī)運行程序時,外存中的程序及相關(guān)數(shù)據(jù)必須先傳送到內(nèi)存,然后才能被CPU使用。–屬于非易失性存儲器(Nonvolatile),用于長久存放系統(tǒng)中幾乎所有的信息數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)m問題:主存中存放的是什么信息?CPU何時會訪問主存?數(shù)據(jù)線(64位)地址線(36位)控制線主存是CPU可直接訪問的存儲器,用于存放供CPU處理的指令和數(shù)據(jù)性能指標(biāo):–––以字節(jié)為單位進(jìn)行連續(xù)編址,每個存儲單元為1個字節(jié)(8個二進(jìn)位)存儲容量:主存儲器中所包含的存儲單元的總數(shù)(單位:MB或GB)存取時間TA:從CPU送出內(nèi)存單元的地址碼開始,到主存讀出數(shù)據(jù)并送到CPU(或者是把CPU數(shù)據(jù)寫入主存)所需要的時間(單位:ns,1ns=10-9s)存儲周期TMC:連讀兩次訪問存儲器所需的最小時間間隔,它應(yīng)等于存取時間加上下一–存取開始前所要求的附加時間,因此,TMC比TA大(因為存儲器由于讀出放大器、驅(qū)動電路等都有一段穩(wěn)定恢復(fù)時間,所以讀出后不能立即進(jìn)行下一次訪問。)MM0000000001000100001100100存儲 存單元 儲地址 內(nèi)容1111011111讀寫控制電路0110100110101010讀/寫的數(shù)據(jù)MDR主存地址MARCPU讀/寫控制信號問題:主存中存放的是什么信息?CPU何時會訪問主存?數(shù)據(jù)線(64位)地址線(36位)控制線主存是CPU可直接訪問的存儲器,用于存放供CPU處理的指令和數(shù)據(jù)性能指標(biāo):–––以字節(jié)為單位進(jìn)行連續(xù)編址,每個存儲單元為1個字節(jié)(8個二進(jìn)位)存儲容量:主存儲器中所包含的存儲單元的總數(shù)(單位:MB或GB)存取時間TA:從CPU送出內(nèi)存單元的地址碼開始,到主存讀出數(shù)據(jù)并送到CPU(或者是把CPU數(shù)據(jù)寫入主存)所需要的時間(單位:ns,1ns=10-9s)存儲周期TMC:連讀兩次訪問存儲器所需的最小時間間隔,它應(yīng)等于存取時間加上下一–存取開始前所要求的附加時間,因此,TMC比TA大(因為存儲器由于讀出放大器、驅(qū)動電路等都有一段穩(wěn)定恢復(fù)時間,所以讀出后不能立即進(jìn)行下一次訪問。)MM0000000001000100001100100存儲 存單元 儲地址 內(nèi)容1111011111讀寫控制電路0110100110101010讀/寫的數(shù)據(jù)MDR主存地址MARCPU讀/寫控制信號存儲容量和速度的單位memory.102009年4月16日星期四NotationsandConventionsforNumbersPrefixAbbreviationMeaningNumericValuemillmOnethousandth103microμOnemillionth106nanonOnebillionth109picopOnetrillionth1012femtofOnequadrillionth1015attaaOnequintillionth10存儲容量和速度的單位memory.102009年4月16日星期四NotationsandConventionsforNumbersPrefixAbbreviationMeaningNumericValuemillmOnethousandth103microμOnemillionth106nanonOnebillionth109picopOnetrillionth1012femtofOnequadrillionth1015attaaOnequintillionth1018kiloK(ork)Thousand103or210megaMMillion106or220gigaGBillion109or230teraTTrillion1012or240petaPQuadrillion1015or250exaEQuintillion1018or260回顧:內(nèi)存儲器的分類及應(yīng)用內(nèi)存由半導(dǎo)體存儲器芯片組成,芯片有多種類型:靜態(tài)隨機(jī)存取存儲器SRAM(用作Cache存儲器)每個存儲單元(cell)由6個晶體管組成只要加上電源,信息就能一直保持對電器干擾相對不很敏感比DRAM更快,也更貴隨機(jī)存取存儲器(RAM)(用作回顧:內(nèi)存儲器的分類及應(yīng)用內(nèi)存由半導(dǎo)體存儲器芯片組成,芯片有多種類型:靜態(tài)隨機(jī)存取存儲器SRAM(用作Cache存儲器)每個存儲單元(cell)由6個晶體管組成只要加上電源,信息就能一直保持對電器干擾相對不很敏感比DRAM更快,也更貴隨機(jī)存取存儲器(RAM)(用作主存儲器)動態(tài)隨機(jī)存取存儲器DRAM每個存儲單元由1個電容和1個晶體管組成.每隔一段時間必須刷新一次對電器干擾比較敏感比SRAM慢,但便宜半導(dǎo)體存儲器不可在線改寫內(nèi)容的ROM存儲器(ROM)(用作BIOS存儲器)(圖形卡、硬盤控制器)快擦除存儲器(FlashROM)memory.112009年4月16日星期四回顧:六管靜態(tài)MOS管電路6管靜態(tài)NMOS記憶單元信息存儲原理:看作帶時鐘的RS觸發(fā)器位線D位線D行線字線UDDVV24VVQ5Q6VV13 I/OYI/OSRAM中數(shù)據(jù)保存在一對正負(fù)反饋門電路中,只要供電,數(shù)據(jù)就一直保持,所以不是破環(huán)性讀出,也不需要重寫數(shù)據(jù)來保持?jǐn)?shù)據(jù)不變。即:無需刷新!memory.122009年4月16日星期四讀出時:置2個位線為高電平置字線為1根據(jù)存儲單元的狀態(tài)改變位線的輸出電平寫入時:位線上是被寫入的二進(jìn)位信息0或1置字線為1存儲單元(觸發(fā)器)按位線的狀態(tài)設(shè)置成0或1回顧:六管靜態(tài)MOS管電路6管靜態(tài)NMOS記憶單元信息存儲原理:看作帶時鐘的RS觸發(fā)器位線D位線D行線字線UDDVV24VVQ5Q6VV13 I/OYI/OSRAM中數(shù)據(jù)保存在一對正負(fù)反饋門電路中,只要供電,數(shù)據(jù)就一直保持,所以不是破環(huán)性讀出,也不需要重寫數(shù)據(jù)來保持?jǐn)?shù)據(jù)不變。即:無需刷新!memory.122009年4月16日星期四讀出時:置2個位線為高電平置字線為1根據(jù)存儲單元的狀態(tài)改變位線的輸出電平寫入時:位線上是被寫入的二進(jìn)位信息0或1置字線為1存儲單元(觸發(fā)器)按位線的狀態(tài)設(shè)置成0或1回顧:記憶單元的基本原理字線動態(tài)單管MOS記憶單元電路構(gòu)造和表示:接地數(shù)據(jù)記憶在電容CS上,T為門控管,控制數(shù)據(jù)的進(jìn)出。其柵極接讀/寫選擇線(字線),漏和源分別接數(shù)據(jù)線(位線)和記憶電容C回顧:記憶單元的基本原理字線動態(tài)單管MOS記憶單元電路構(gòu)造和表示:接地數(shù)據(jù)記憶在電容CS上,T為門控管,控制數(shù)據(jù)的進(jìn)出。其柵極接讀/寫選擇線(字線),漏和源分別接數(shù)據(jù)線(位線)和記憶電容CS。數(shù)據(jù)1或0以電容CS上電荷量的有無來判別。讀寫原理:在選擇(字)線上加高電平,使T管導(dǎo)通。寫“0”時,在數(shù)據(jù)線上加低電平,使CS上電荷對數(shù)據(jù)線放電;寫“1”時,在數(shù)據(jù)線上加高電平,使數(shù)據(jù)線對CS充電;讀出時,在數(shù)據(jù)線上有一讀出電壓。它與CS上電荷量成正比。優(yōu)點:電路元件少,功耗小,集成度高,所以被廣泛應(yīng)用于大容量存儲器中缺點:速度慢、是破壞性讀出(讀后狀態(tài)被改變,需讀后再生)、需定時刷新DRAM的一個重要特點是,數(shù)據(jù)以電荷的形式保存在電容中,電容的放電使得電荷通常只能維持2毫秒左右,相當(dāng)于1000000個時鐘左右,因此要定期在2ms內(nèi)刷新(讀出后重新寫回),按行進(jìn)行刷新(所有芯片中的同一行一起進(jìn)行),所以刷新操作所需時間只占1%~2%左右。memory.132009年4月16日星期四位線回顧:半導(dǎo)體RAM的組織記憶單元(Cell)存儲器芯片(Chip)內(nèi)存條(存儲器模塊)存儲器芯片:存儲體+外圍電路(地址譯碼和讀寫控制)存儲體(MemoryBank):由記憶單元(位元)構(gòu)成的存儲陣列記憶單元的組織:字線W選擇線(字線)位元位線S0回顧:半導(dǎo)體RAM的組織記憶單元(Cell)存儲器芯片(Chip)內(nèi)存條(存儲器模塊)存儲器芯片:存儲體+外圍電路(地址譯碼和讀寫控制)存儲體(MemoryBank):由記憶單元(位元)構(gòu)成的存儲陣列記憶單元的組織:字線W選擇線(字線)位元位線S0位線S1數(shù)據(jù)線(位線)R/WR/WDinDoutDinDoutmemory.142009年4月16日星期四讀寫控制讀寫控制位元回顧:字片式存儲體陣列組織地址驅(qū)動線一維地址譯碼系統(tǒng)有2m條!假定有m位地址,則地址譯碼驅(qū)動(選擇)線的條數(shù)為多少?一般SRAM為字片式芯片,只在單方向上譯碼,同時讀出一條字線上的所有位!memory.15回顧:字片式存儲體陣列組織地址驅(qū)動線一維地址譯碼系統(tǒng)有2m條!假定有m位地址,則地址譯碼驅(qū)動(選擇)線的條數(shù)為多少?一般SRAM為字片式芯片,只在單方向上譯碼,同時讀出一條字線上的所有位!memory.152009年4月16日星期四X向譯碼器回顧:位片式存儲體陣列組織假定有m位地址,其地址譯碼驅(qū)動(選擇)線的條數(shù)為多少?有2m/2+1回顧:位片式存儲體陣列組織假定有m位地址,其地址譯碼驅(qū)動(選擇)線的條數(shù)為多少?有2m/2+1位片式可在字方向和位方向擴(kuò)充,需要有片選信號!memory.162009年4月16日星期四回顧:位片式芯片框圖memory.172009年4月回顧:位片式芯片框圖memory.172009年4月16日星期四位擴(kuò)展為芯片位數(shù)的16倍4倍位擴(kuò)展為芯片位數(shù)的16倍4倍問題:共幾位地址?幾位選片,幾位片內(nèi)選址?編址單位是多少?共12位地址,高兩位用來選片,低10位用于片內(nèi)選址memory.182009年4月16日星期四舉例:TMS4116動態(tài)MOS存儲器芯片總體性能:––存儲容量:16Kx1位7根地址線復(fù)用(2x舉例:TMS4116動態(tài)MOS存儲器芯片總體性能:––存儲容量:16Kx1位7根地址線復(fù)用(2x7=14)芯片引腳芯片框圖地址緩沖器和地址譯碼器存儲陣列讀出再生放大器基本時序、讀寫操作定時由4116芯片構(gòu)成64K字X16位的存儲器問題:CPU送出的地址有幾位?CPU送出的地址位數(shù)由物理空間大小決定;送4116有14位地址。問題:7個地址引腳何時送行地址?何時送列地址?RAS有效時送行地址送到4116芯片的地址有幾位?CAS有效時送列地址問題:WE的含義是什么?WE低時寫操作,高時讀操作mem2009年4月16日星期四memory.202009年4memory.202009年4月16日星期四ST0結(jié)束時,清除地址緩存器中的信息。memo年ST0結(jié)束時,清除地址緩存器中的信息。memo年4月16日星期四有效所存行或列地址信息。7個地址緩存器的輸出分別接到地址譯碼器的7個輸入有效所存行或列地址信息。7個地址緩存器的輸出分別接到地址譯碼器的7個輸入128種組合!每個輸入可能Ai或Ai,共多少種組合?行向和列向共256個譯碼器!m每個譯碼器輸出連到一根行線或列線上。memory.232009年4每個譯碼器輸出連到一根行線或列線上。memory.232009年4月16日星期四memory.242009年4memory.242009年4月16日星期四memory.252009年4memory.252009年4月16日星期四memory.262009年4memory.262009年4月16日星期四memory.272009年4月memory.272009年4月16日星期四IN舉例:典型的16M位DRAM(4Mx4)16M位舉例:典型的16M位DRAM(4Mx4)16M位=4Mbx4=2048x2048x4=211x211x4地址線:11根分時復(fù)用,由RAS和CAS提供控制時序。存儲字是4位,需四個位平面,對相同行、列交叉點的四個位一起讀/寫內(nèi)部結(jié)構(gòu)框圖問題:為什么每出現(xiàn)新一代存儲器芯片,容量至少提高四倍?行地址和列地址分時復(fù)用,每出現(xiàn)新一代存儲器芯片,至少要增加一根地址線每加一根地址線,則行地址和列地址各增加一位,所以行數(shù)和列數(shù)各增加一倍因而:容量至少提高四倍SKIPmemory.282009年4月16日星期四舉例:典型的16M位DRAM(4Mx4)所有DRAM芯片同時刷新,由刷新計數(shù)器自動計數(shù),按行刷新(只產(chǎn)生行地址),對CPU透明。讀/寫行地址和刷新行地址被送到一個多路選擇器,由內(nèi)部控制電路選擇哪個地址被送到行譯碼器四個位平面BACKmemory.292009年4月16日星期四舉例:典型的16M位DRAM(4Mx4)所有DRAM芯片同時刷新,由刷新計數(shù)器自動計數(shù),按行刷新(只產(chǎn)生行地址),對CPU透明。讀/寫行地址和刷新行地址被送到一個多路選擇器,由內(nèi)部控制電路選擇哪個地址被送到行譯碼器四個位平面BACKmemory.292009年4月16日星期四DRAM芯片的刷新刷新周期:從上次對整個存儲器刷新結(jié)束到下次對整個存儲器全部刷新一遍為止的時間間隔,一般為2ms。即:DRAM芯片的刷新刷新周期:從上次對整個存儲器刷新結(jié)束到下次對整個存儲器全部刷新一遍為止的時間間隔,一般為2ms。即:2ms內(nèi)必須對每個單元刷新一遍。有四種刷新方式:集中式、分散式、異步和透明刷新。前一段時間正常讀/寫,后一段時間停止讀/寫,集中逐行刷新。特點:集中刷新時間長,不能正常讀/寫(死區(qū)),很少使用該方法。一個存儲周期分為兩段:前一段用于正常讀/寫操作,后一段用于刷新操作。特點:不存在死區(qū),但每個存儲周期加長。很少使用。結(jié)合上述兩種方式。以128行為例,在2ms時間內(nèi)必須輪流對每一行刷新一次,即每隔2ms/128=15.5μs刷新一行。這時假定讀/寫與刷新操作時間都為0.5μs,則可用前15μs進(jìn)行CPU讀/寫,最后0.5μs完成刷新操作。特點:結(jié)合前兩種,效率高,用得較多。④透明刷新(或稱穩(wěn)含式刷新):在存儲器空閑時由存儲控制器控制插入刷新操作,對CPU透明。特點:不占用CPU時間,對CPU而言透明的。目前高檔微機(jī)中大部分采用這種方式。memory.302009年4月16日星期四SDRAM芯片技術(shù)CPU和主存之間有同步和異步兩種通信方式–異步方式(讀操作)過程??CPU送地址到地址線,主存譯碼CPU發(fā)讀命令,然后等待存儲器發(fā)回“完成”信號主存接受到讀命令后,讀數(shù)據(jù)送至數(shù)據(jù)線,然后發(fā)“完成”信號給CPUCPU接受到“完成”信號,從數(shù)據(jù)線取數(shù)據(jù)需握手信號SDRAM芯片技術(shù)CPU和主存之間有同步和異步兩種通信方式–異步方式(讀操作)過程??CPU送地址到地址線,主存譯碼CPU發(fā)讀命令,然后等待存儲器發(fā)回“完成”信號主存接受到讀命令后,讀數(shù)據(jù)送至數(shù)據(jù)線,然后發(fā)“完成”信號給CPUCPU接受到“完成”信號,從數(shù)據(jù)線取數(shù)據(jù)需握手信號??寫操作過程類似同步方式的特點–?CPU和主存在同一個時鐘信號控制下工作,不需要應(yīng)答信號(如“完成”)主存總是在確定的時間內(nèi)準(zhǔn)備好數(shù)據(jù),CPU送出地址和讀命令后,總是在確定的幾個時鐘周期后去取數(shù)據(jù)??存儲器芯片必須支持同步方式DDRSDRAMSDRAM是同步存儲器芯片––––每步操作都在系統(tǒng)時鐘控制下進(jìn)行成組(突發(fā)/猝發(fā))傳送方式多體(緩沖器)交叉存取利用總線時鐘上升沿與下降沿同步傳送數(shù)據(jù)總線DDR2SDRAMDDR3:一個時鐘內(nèi)傳送8個數(shù)據(jù)memory.312009年4月16日星期四陣列陣列只讀存儲器和Flash存儲器特點:只讀存儲器和Flash存儲器特點:信息只能讀不能寫。非破壞性讀出,無需再生。也以隨機(jī)存取方式工作。信息用特殊方式寫入,一經(jīng)寫入,就可長久保存,不受斷電影響。故是非易失性存儲器。用途:用來存放一些固定程序。如監(jiān)控程序、啟動程序等。只要一接通電源,這些程序就能自動地運行;可作為控制存儲器,存放微程序。還可作為函數(shù)發(fā)生器和代碼轉(zhuǎn)換器。在輸入/出設(shè)備中,被用作字符發(fā)生器,漢字庫等。在嵌入式設(shè)備中用來存放固化的程序。memory.322009年4月16日星期四回顧:只讀存儲器(ReadOnlyMemory)MROM:腌膜只讀存儲器(MaskROM)PROM:可編程只讀存儲器(ProgrammableROM)EPROM:可擦除可編程只讀存儲器(Erasable回顧:只讀存儲器(ReadOnlyMemory)MROM:腌膜只讀存儲器(MaskROM)PROM:可編程只讀存儲器(ProgrammableROM)EPROM:可擦除可編程只讀存儲器(ErasablePROM))(ElectricallyEPROM)flashmemory:閃存閃存的讀取速度與DRAM相近,是磁盤的100倍左右;寫數(shù)據(jù)(快擦-編程)則與硬盤相近(a)“0”狀態(tài)(b)“1”狀態(tài)(a)“0”(b)“1”(a)“0”(b)“1”控制柵加足夠正電壓時,浮空柵儲存大量負(fù)電荷,為“0”控制柵不加正電壓時,浮空柵少帶或不帶負(fù)電荷,為“1”有三種操作:編程、讀取、擦除memory.33最初都是1;編程:寫0;擦除:寫1讀出:控制柵加正電壓,若為0,則讀出電路檢測不到電流;若為1,則檢測到電流。2009年4月16日星期四存儲器芯片的擴(kuò)展字?jǐn)U展–位數(shù)不變、擴(kuò)充容量例如,用16K×8位芯片擴(kuò)展成64K×8位存儲器,需幾個芯片?地址范圍各是多少?字方向擴(kuò)展4倍,即4存儲器芯片的擴(kuò)展字?jǐn)U展–位數(shù)不變、擴(kuò)充容量例如,用16K×8位芯片擴(kuò)展成64K×8位存儲器,需幾個芯片?地址范圍各是多少?字方向擴(kuò)展4倍,即4個芯片。0000-3FFFH,4000-7FFFH,8000-BFFFH,C000-FFFFH地址共16位,高兩位由外部譯碼器譯碼生成4個輸出,分別連到4個片選信號,片內(nèi)地址有14位地址線、讀/寫控制線等對應(yīng)相接,片選信號則分別與外部譯碼器各個譯碼輸出端相連–位擴(kuò)展–字?jǐn)?shù)不變,位數(shù)擴(kuò)展例如,用4096×1位芯片構(gòu)成4K×8位存儲器,需幾個芯片?地址范圍各是多少?位方向擴(kuò)展8倍,字方向無需擴(kuò)展。即8個芯片,地址范圍都一樣:000-FFFH地址共12位,全部作為片內(nèi)地址芯片的地址線及讀/寫控制線對應(yīng)相接,而數(shù)據(jù)線單獨引出,沒有外部譯碼器–字位同時擴(kuò)展–字和位同時擴(kuò)展例如,用16K×4位芯片構(gòu)成64K×8位存儲器,需幾個芯片,地址范圍各是多少?字向4倍、位向2倍,8個芯片。0000-3FFFH,4000-7FFFH,8000-BFFFH,C000-FFFFH地址線、讀/寫控制線等對應(yīng)相接,片選信號則分別與外部譯碼器各個譯碼輸出端相連–有兩種容量擴(kuò)展方式:交叉編址和連續(xù)編址memory.342009年4月16日星期四舉例:128MB的DRAM存儲器連續(xù)?片。地址A總?cè)萘?28MB由8片DRAM芯片構(gòu)成bits行地址、列地址各12位為什么呢?每1行共4096列(8位/列)選中某一行并讀出之后再由列地址選擇其中的一列(8個二進(jìn)位)送出bits bits56-6348-55bitsbitsbitsbitsbits8-15bits0-7存儲控制器寫多個芯片。行、列地址為(i,j)的8個單元問題:地址范圍?存儲器地址位數(shù)27位,片內(nèi)地址24位,與高24位存儲器地址相同。最多讀64位memory.35低3確定8個字節(jié)中的哪個,用來進(jìn)行片選。2009年4月16日星期四63 5655 4847 4039 3231 24231615 87 0主存儲器地址A舉例:128MB的DRAM存儲器連續(xù)?片。地址A總?cè)萘?28MB由8片DRAM芯片構(gòu)成bits行地址、列地址各12位為什么呢?每1行共4096列(8位/列)選中某一行并讀出之后再由列地址選擇其中的一列(8個二進(jìn)位)送出bits bits56-6348-55bitsbitsbitsbitsbits8-15bits0-7存儲控制器寫多個芯片。行、列地址為(i,j)的8個單元問題:地址范圍?存儲器地址位數(shù)27位,片內(nèi)地址24位,與高24位存儲器地址相同。最多讀64位memory.35低3確定8個字節(jié)中的哪個,用來進(jìn)行片選。2009年4月16日星期四63 5655 4847 4039 3231 24231615 87 0主存儲器地址A處的64-bit數(shù)據(jù)(行地址i列地址j)DRAM0DRAM74096行舉例:SPARCstation20’sMemoryModuleMemoryBus存儲器總線的寬度為128位DRAMSIMM每個內(nèi)存條最多能同時讀出128位數(shù)據(jù)每次訪存操作總是在某一個內(nèi)存條內(nèi)進(jìn)行!memory.362009年4月16日星期四SIMMSlot0SIMMSlot1SIMMSlot2舉例:SPARCstation20’sMemoryModuleMemoryBus存儲器總線的寬度為128位DRAMSIMM每個內(nèi)存條最多能同時讀出128位數(shù)據(jù)每次訪存操作總是在某一個內(nèi)存條內(nèi)進(jìn)行!memory.362009年4月16日星期四SIMMSlot0SIMMSlot1SIMMSlot2SIMMSlot3SIMMSlot4SIMMSlot5SIMMSlot6SIMMSlot7DRAMDRAMDRAMDRAMDRAMDRAMDRAMDRAMDRAMDRAMMemoryControllerSPARCstation20舉例:SPARCstation20’sMemoryModuleonememorymodule(內(nèi)存條)––Smallest:4MB=16x2MbDRAMchips,8KBofPageModeSRAM舉例:SPARCstation20’sMemoryModuleonememorymodule(內(nèi)存條)––Smallest:4MB=16x2MbDRAMchips,8KBofPageModeSRAMBiggest:64MB=32x16Mbchips,16KBofPageModeSRAM每個芯片有512行x512列,并有8個位平面每次讀/寫各芯片內(nèi)同行同列的8位,共16x8=128位512cols問題:行緩沖數(shù)據(jù)的地址有何特點?一定在同行中,故行地址相同!8bitsbits<127:0>MemoryBus<127:0>8SRAMbits<7:0>行緩沖16個芯片的行緩沖可以緩存16x512x8位數(shù)據(jù)當(dāng)CPU訪問一塊連續(xù)的內(nèi)存區(qū)(即:行地址相同)時,可直接從行緩沖讀取,行緩沖用SRAM實現(xiàn),速度極快!Cache行讀要求從內(nèi)存讀一塊連續(xù)區(qū),給定一個首地址,采用突發(fā)傳輸方式2009年4月16日星期四memory.37512rows8SRAMOnepageDRAMChip0256Kx8=2MbDRAMChip15256Kx8=2MbPC機(jī)主存儲器的物理結(jié)構(gòu)主存儲器由若干內(nèi)存條組成內(nèi)存條的組成:把若干片DRAM芯片焊裝在一小條印制電路板上制成目前流行的是DDR和PC機(jī)主存儲器的物理結(jié)構(gòu)主存儲器由若干內(nèi)存條組成內(nèi)存條的組成:把若干片DRAM芯片焊裝在一小條印制電路板上制成目前流行的是DDR和DDR2–––均采用雙列直插式,其觸點分布在內(nèi)存條的兩面DDR條有184個引腳,DDR2有240個引腳PC機(jī)主板中一般都配備有2個或4個DIMM插槽memory.382009年4月16日星期四存儲器芯片和CPU的連接通過總線連接–地址線的連接CPU地址線數(shù)決定了整個主存空間的尋址范圍,故比存儲芯片地址引腳線多。通常將CPU地址線的低位和存儲芯片地址線相連,高位部分用作字?jǐn)U展時的片選信號的譯碼。存儲器芯片和CPU的連接通過總線連接–地址線的連接CPU地址線數(shù)決定了整個主存空間的尋址范圍,故比存儲芯片地址引腳線多。通常將CPU地址線的低位和存儲芯片地址線相連,高位部分用作字?jǐn)U展時的片選信號的譯碼。數(shù)據(jù)線的連接CPU數(shù)據(jù)線數(shù)決定了一次可讀寫的最大數(shù)據(jù)寬度,故比存儲芯片數(shù)據(jù)引腳線多,通常將CPU數(shù)據(jù)線連到多個進(jìn)行位擴(kuò)展的芯片中,使擴(kuò)展后的位數(shù)與CPU數(shù)據(jù)線數(shù)相等控制線的連接如果CPU讀/寫命令線和存儲芯片的讀/寫控制線都是一根,且電平信號一致,則可直接相連。若CPU讀/寫命令線分開,則需要分別進(jìn)行連接。––ROM區(qū)和RAM區(qū)的劃分––主存空間包括ROM和RAM區(qū)ROM區(qū)用來存放系統(tǒng)程序、標(biāo)準(zhǔn)子程序等,選用ROM芯片構(gòu)造;RAM區(qū)用來存放用戶程序,選用RAM芯片構(gòu)造選擇存儲芯片的類型和數(shù)量時,必須先確定好ROM區(qū)和RAM區(qū)的地址范圍–memory.392009年4月16日星期四舉例:CPU和主存的連接D7~D0,WR為讀/寫信號,MREQ為訪存請求信號。0000H~3FFFH為系統(tǒng)程舉例:CPU和主存的連接D7~D0,WR為讀/寫信號,MREQ為訪存請求信號。0000H~3FFFH為系統(tǒng)程序區(qū),4000H~FFFFH為用戶程序區(qū)。用8K×4位ROM芯片和16K×8位RAM芯片構(gòu)成該存儲器,要求說明地址譯碼方案,并將ROM芯片、RAM芯片與CPU連接。解:因為0000H~3FFFH為系統(tǒng)程序區(qū),ROM區(qū)高兩位總是00,低14位為全譯碼。ROM區(qū)大小為:214×8位=16K×8位=16KBROM芯片數(shù)為:16K×8位/8K×4位=2×2=8,字方向擴(kuò)展2倍,位方向擴(kuò)展2倍ROM芯片內(nèi)地址位數(shù)為13位,連到CPU低13位地址線A12~A0由最高三位確定。RAM芯片的片選信問題:交叉/連續(xù)編址方案?因為4000H~FFFFH為用戶程序區(qū),RAM區(qū)高兩位是01、10、11,低14位為全譯碼。RAM區(qū)大小為:3×214×8位=3×16K×8位48KB是連續(xù)編址!RAM芯片數(shù)為:48K×8位/16K×8位=3×1=3,字方向上擴(kuò)展3倍,位方向上不擴(kuò)展。RAM芯片內(nèi)地址位數(shù)為14位,連到CPU低14位地址線A13~A0。連到ROM芯片上?因為ROM芯片只需讀寫信號。01X11X001000信號的作用是什么?為有效(低電平)時,memory.40片選信號CS是哪一個?回顧:存儲器與CPU速度差距愈來愈大1,000,000100,00010,0001,0001001010由于CPU工作速度很快,內(nèi)存速度比較慢(差1~2個數(shù)量級),從內(nèi)存取數(shù)或向內(nèi)存寫數(shù)時,CPU往往需要等待。198019851990199520002005解決內(nèi)存訪問速度慢的措施有三個:提高主存芯片本身的速度采用多模塊存儲器技術(shù)在主存和CPU之間加入Cache2009年4月16日星期四從上圖可以看出什么?回顧:存儲器與CPU速度差距愈來愈大1,000,000100,00010,0001,0001001010由于CPU工作速度很快,內(nèi)存速度比較慢(差1~2個數(shù)量級),從內(nèi)存取數(shù)或向內(nèi)存寫數(shù)時,CPU往往需要等待。198019851990199520002005解決內(nèi)存訪問速度慢的措施有三個:提高主存芯片本身的速度采用多模塊存儲器技術(shù)在主存和CPU之間加入Cache2009年4月16日星期四從上圖可以看出什么?的速度差距愈來愈大!memory.41nsDiskseektimeDRAMaccesstimeSRAMaccesstimeCPUcycletime提高DRAM存儲器速度的措施之一:采用芯片內(nèi)部行緩沖,以提高芯片本身的速度反復(fù)多次使用芯片內(nèi)部緩沖器中的內(nèi)容,不要每次都重復(fù)地進(jìn)行“行訪問”DDRSDRAM(Doubledata-ratesynchronousDRAM)和DDR2SDRAM提高DRAM存儲器速度的措施之一:采用芯片內(nèi)部行緩沖,以提高芯片本身的速度反復(fù)多次使用芯片內(nèi)部緩沖器中的內(nèi)容,不要每次都重復(fù)地進(jìn)行“行訪問”DDRSDRAM(Doubledata-ratesynchronousDRAM)和DDR2SDRAM時鐘頻率=100MHz 內(nèi)部頻率=100MHz傳輸頻率=200MHz時鐘頻率=100MHz內(nèi)部頻率=200MHz傳輸頻率=400MHz數(shù)據(jù)總線DDR2SDRAMDDRSDRAM之二:多模塊技術(shù)2個、4個或多個存儲器同時工作memory.42數(shù)據(jù)總線陣列陣列加快訪存速度措施之二:多模塊存儲器多體存儲器和多模塊存儲器–多體存儲器由若干個小體組成共用地址寄存器MAR和數(shù)據(jù)寄存器MDR不能提高數(shù)據(jù)訪問速度–雙口存儲器通常作為雙口RAM加快訪存速度措施之二:多模塊存儲器多體存儲器和多模塊存儲器–多體存儲器由若干個小體組成共用地址寄存器MAR和數(shù)據(jù)寄存器MDR不能提高數(shù)據(jù)訪問速度–雙口存儲器通常作為雙口RAM或指令預(yù)取部件兩套獨立的讀/寫控制電路、地址緩存、地址譯碼及地址線和數(shù)據(jù)線能同時進(jìn)行兩個數(shù)據(jù)的讀/寫–多模塊存儲器也包含多個小體每個體有其自己的MAR、MDR和讀寫電路可獨立組成一個存儲模塊能提高數(shù)據(jù)訪問速度根據(jù)不同的編址方式可分為連續(xù)編址和交叉編址memory.432009年4月16日星期四連續(xù)編址多模塊存儲器按高位地址劃分模塊程序從某個單元開始訪問后,繼續(xù)在同一模塊訪問,完畢后才跳到下一個。為什么能提高吞吐量?使多個模塊并行存取!例如:一個模塊執(zhí)行程序,另一個模塊實現(xiàn)DMA連續(xù)編址多模塊存儲器按高位地址劃分模塊程序從某個單元開始訪問后,繼續(xù)在同一模塊訪問,完畢后才跳到下一個。為什么能提高吞吐量?使多個模塊并行存?。±纾阂粋€模塊執(zhí)行程序,另一個模塊實現(xiàn)DMA訪問,可提高存儲器總的吞吐量。地址在同一模塊內(nèi)連續(xù)編號,稱“連續(xù)編址”第1模塊第0模塊第7模塊memory.442009年4月16日星期四交叉編址多模塊存儲器按低位地址劃分模塊程序從某個單元開始訪問后,總是在所有模塊間交替進(jìn)行。地址在不同模塊之間交叉編號,稱“交叉編址”第1模塊第2交叉編址多模塊存儲器按低位地址劃分模塊程序從某個單元開始訪問后,總是在所有模塊間交替進(jìn)行。地址在不同模塊之間交叉編號,稱“交叉編址”第1模塊第2模塊第0模塊第3模塊在存儲地址“相關(guān)”或出現(xiàn)“轉(zhuǎn)移”時,并行性被破壞。為什么能提高吞吐量?使多個模塊交叉存?。∶扛?/4周期在數(shù)據(jù)總線上得到一個信息,使主存吞吐量提高4倍!memory.452009年4月16日星期四IncreasingBandwidthInterleaving(交叉)AccessPatternwithoutInterleaving:CPUMemoryD1availableStartAccessforD1StartAccessforD2MemoryBankIncreasingBandwidthInterleaving(交叉)AccessPatternwithoutInterleaving:CPUMemoryD1availableStartAccessforD1StartAccessforD2MemoryBank1AccessPatternwithInterleaving:CPUAccessBank1AccessBank2AccessBank3WecanAccessBank0againmemory.462009年4月16日星期四AccessBank0MemoryBank3MemoryBank2MemoryBank0第一講小結(jié)信息的存儲、傳送、處理單位– ////機(jī)器字長存儲器分類–/第一講小結(jié)信息的存儲、傳送、處理單位– ////機(jī)器字長存儲器分類–////功能來分半導(dǎo)體存儲器隨機(jī)訪問存儲器––SRAM:速度快,容量小,可做快速小容量存儲器DRAM:速度慢,容量大,用作主存RAM芯片組織:–––存儲陣列:按行、列排,分別由行地址和列地址指出位置地址譯碼器:分行、列地址譯碼器讀寫邏輯:可控制多個位平面的同一位數(shù)據(jù)一起讀/寫提高存儲器速度的措施:–––芯片內(nèi)采用行緩存,行內(nèi)數(shù)據(jù)直接從緩存中取采用多模塊存儲器,多個存儲器交叉存取引入Cache(下一講的主要內(nèi)容)memory.472009年4月16日星期四第二講高速緩沖存儲器(Cache)主要內(nèi)容什么是程序訪問的局部化特性具有Cache機(jī)制的CPU的基本訪存過程Cache和主存之間的映射方式第二講高速緩沖存儲器(Cache)主要內(nèi)容什么是程序訪問的局部化特性具有Cache機(jī)制的CPU的基本訪存過程Cache和主存之間的映射方式//組相聯(lián)映射cache容量和塊大小的選擇Cache替換算法的程序Cache的寫策略WriteBack和WriteThroughCache失靶處理Cache性能評估m(xù)emory.482009年4月16日星期四Whatwewantinamemory到目前為止,已經(jīng)了解到有以下幾種存儲器:Register,SRAM,DRAM,Whatwewantinamemory到目前為止,已經(jīng)了解到有以下幾種存儲器:Register,SRAM,DRAM,HardDisk,MagneticTapeandOpticalDisk問題:你認(rèn)為哪一種最適合做計算機(jī)的存儲器呢?單獨用某一種存儲器,都不能滿足我們的需要!考慮結(jié)合各種存儲器的特點,采用分層存儲器結(jié)構(gòu)來構(gòu)建計算機(jī)的存儲體系!memory.492009年4月16日星期四1ns100GB10ms100GB10ns1GB2ns1MB1ns〈1KB計算機(jī)中存儲器的層次結(jié)構(gòu)典型容量<1KB1MB典型存取時間ns(0.5~1cycle)ns(1~3cycle)寄存器cache存儲器內(nèi)存儲器10ns(10~100cycle)256MB-1GB主存儲器(RAM和ROM)外存儲器計算機(jī)中存儲器的層次結(jié)構(gòu)典型容量<1KB1MB典型存取時間ns(0.5~1cycle)ns(1~3cycle)寄存器cache存儲器內(nèi)存儲器10ns(10~100cycle)256MB-1GB主存儲器(RAM和ROM)外存儲器40GB-200GB10TB-100TB10ms(10~100cycle)外存儲器(軟盤、硬盤、光盤)10s后備存儲器(磁帶庫、光盤庫)分析:速度越快,成本較高為提高性能/價格,各存儲器組成一個層狀塔式結(jié)構(gòu),取長補短,協(xié)調(diào)工作工作過程:CPU運行時,需要的操作數(shù)大部分來自寄存器如需要從(向)存儲器中取(存)數(shù)據(jù)時,先訪問cache,如在,取自cache如操作數(shù)不在cache,則訪問RAM,如在RAM中,則取自RAM如操作數(shù)不在RAM,則訪問硬盤,操作數(shù)從硬盤中讀出→RAM→cachememory.502009年4月16日星期四回顧:傳統(tǒng)存儲器分級體系結(jié)構(gòu)傳統(tǒng)結(jié)構(gòu)五層金字塔形分層系統(tǒng)從上到下的特點:1,每位價格降低2,容量增大3回顧:傳統(tǒng)存儲器分級體系結(jié)構(gòu)傳統(tǒng)結(jié)構(gòu)五層金字塔形分層系統(tǒng)從上到下的特點:1,每位價格降低2,容量增大3,存取時間增大4,訪問頻度降低TraditionalMemoryHierarchymemory.512009年4月16日星期四現(xiàn)代存儲器分級體系結(jié)構(gòu)開辟一部分內(nèi)存區(qū),用作“DiskCache”,用于存放將被送到磁現(xiàn)代存儲器分級體系結(jié)構(gòu)開辟一部分內(nèi)存區(qū),用作“DiskCache”,用于存放將被送到磁盤上的數(shù)據(jù)。引入“DiskCache”的好處:寫盤時按“簇”進(jìn)行,以避免頻繁地小塊數(shù)據(jù)寫盤。有些中間結(jié)果數(shù)據(jù)在寫回盤之前可被快速地再次使用。ContemporaryMemoryHierarchy(現(xiàn)代結(jié)構(gòu))memory.522009年4月16日星期四層次化存儲器結(jié)構(gòu)(MemoryHierarchy)LowerLevelMemoryUpperLevelMemoryBlockXToCPUFromCPUBlockY數(shù)據(jù)總是在相鄰兩層之間復(fù)制傳送Upper層次化存儲器結(jié)構(gòu)(MemoryHierarchy)LowerLevelMemoryUpperLevelMemoryBlockXToCPUFromCPUBlockY數(shù)據(jù)總是在相鄰兩層之間復(fù)制傳送UpperLevel:上層更靠CPUSmaller,faster,andusesmoreexpensivetechnologyLowerLevel:下層更遠(yuǎn)離CPUBigger,slower,anduseslessexpensivetechnologyBlock:最小傳送單位是一個定長塊,互為副本問題:為什么這種層次化結(jié)構(gòu)是有效的?主要是基于“程序訪問局部化”特點!時間局部性(TemporalLocality)含義:剛被訪問過的單元很可能不久又被訪問做法:讓最近被訪問過的信息保留在靠近CPU的存儲器中Locality)含義:剛被訪問過的單元的鄰近單元很可能不久被訪問做法:將剛被訪問過的鄰近單元調(diào)到靠近CPU的存儲器中memory.532009年4月16日星期四加快訪存速度措施之三:引入Cache大量典型程序的運行情況分析結(jié)果表明––在較短時間間隔內(nèi),程序產(chǎn)生的地址往往集中在存儲器的一個很小范圍內(nèi)這種現(xiàn)象稱為程序訪問的局部性程序具有訪問局部性特征的原因––指令:指令按序存放,地址連續(xù),循環(huán)程序段或子程序段重復(fù)執(zhí)行。數(shù)據(jù):連續(xù)存放,數(shù)組元素重復(fù)、按序訪問程序訪問局部性分為空間局部性和時間局部性基于程序訪問的局部性使訪存要求能快速得到響應(yīng)–在CPU加快訪存速度措施之三:引入Cache大量典型程序的運行情況分析結(jié)果表明––在較短時間間隔內(nèi),程序產(chǎn)生的地址往往集中在存儲器的一個很小范圍內(nèi)這種現(xiàn)象稱為程序訪問的局部性程序具有訪問局部性特征的原因––指令:指令按序存放,地址連續(xù),循環(huán)程序段或子程序段重復(fù)執(zhí)行。數(shù)據(jù):連續(xù)存放,數(shù)組元素重復(fù)、按序訪問程序訪問局部性分為空間局部性和時間局部性基于程序訪問的局部性使訪存要求能快速得到響應(yīng)–在CPU和主存之間設(shè)置一個快速小容量的存儲器,其中總是存放最活躍(被頻繁訪問)的程序塊和數(shù)據(jù),由于程序訪問的局部性特征,大多數(shù)情況下,CPU能直接從這個高速緩存中取得指令和數(shù)據(jù),而不必訪問主存。這個高速緩存就是位于主存和CPU之間的Cache!SKIPmemory.542009年4月16日星期四TypicalMemoryReferenceTypicalMemoryReferencePatterns下面用一個例子來說明!memory.552009年4月16日星期四程序的局部性原理舉例1高級語言源程序?qū)?yīng)的匯編語言程序主存的布局:0x0FC0x1000x1040x1080x10C0x1100x114每條指令4個組元素4字節(jié)連續(xù)存放sum,ap,i,t器;A,V為內(nèi)存地址0x4000x4040x4080x40C0x4100x414A問題:指令和數(shù)據(jù)的時間局部性和空間局部性各自體現(xiàn)在哪里?指令:0x0FC(I0程序的局部性原理舉例1高級語言源程序?qū)?yīng)的匯編語言程序主存的布局:0x0FC0x1000x1040x1080x10C0x1100x114每條指令4個組元素4字節(jié)連續(xù)存放sum,ap,i,t器;A,V為內(nèi)存地址0x4000x4040x4080x40C0x4100x414A問題:指令和數(shù)據(jù)的時間局部性和空間局部性各自體現(xiàn)在哪里?指令:0x0FC(I0)→0x108(I3)→0x10C(I4)→0x11C(I8)→0x120(I9)N次若n足夠大,在一段時間內(nèi)就一直在局部區(qū)域內(nèi)執(zhí)行指令,故循環(huán)內(nèi)指令的時間局部性好;按順序執(zhí)行,故程序的空間局部性好!V數(shù)據(jù):只有數(shù)組在主存中:0x400→0x404→0x408→0x40C→……→0x7A4數(shù)組元素按順序存放,也按順序訪問,所以,空間局部性好;每個數(shù)組元素都被訪問1次,所以沒有時間局部性。0x7A4BACK2009年4月16日星期四memory.56指令數(shù)據(jù)I0: sum<--0I1: ap<--A A是數(shù)組a的起始地址I2: i <--0I3: if(i>=n)gotodonei4:loop:t ap數(shù)組元素a[i]的值I5: sumsumt 累計在sum中I6: ap<--ap4 計算下1個數(shù)組元素的地址I7: i <--i+1I8: if(i<n)gotoloopI9:done:V<--sum 累計結(jié)果保存至地址vI0I1I2I3I4I5I6???a[0]a[1]a[2]a[3]a[4]a[5]???sum=0;for(i=0;i<n;i++)sum+=a[i];*v=sum;程序的局部性原理舉例2以下程序A和B中,哪一個對數(shù)組A引用的空間局部性更好?時間局部性呢?變量sum的空間局部性和時間局部性如何?對于指令來說,for循環(huán)體的空間局部性和時間局部性如何?假定數(shù)組在存儲器中按行優(yōu)先順序存放M=N=2048時主存的布局:I1I20x0FC0x100for循環(huán)體0x17C0x1800x184程序的局部性原理舉例2以下程序A和B中,哪一個對數(shù)組A引用的空間局部性更好?時間局部性呢?變量sum的空間局部性和時間局部性如何?對于指令來說,for循環(huán)體的空間局部性和時間局部性如何?假定數(shù)組在存儲器中按行優(yōu)先順序存放M=N=2048時主存的布局:I1I20x0FC0x100for循環(huán)體0x17C0x1800x184???I33I34I35???程序段B:intsumarraycols(intA[M][N]){inti,j,sum=0;for(j=0;j<N,j++)for(i=0;i<M,i++)sum+=A[i][j];returnsum;}0x4000x404AA[0][0]A[0][1]???A[0][2047]A[1][0]A[1][1]???sum2009年4月16日星期四memory.57指令數(shù)據(jù)程序段A:intsumarrayrows(intA[M][N]){inti,j,sum=0;for(i=0;i<M,i++)for(j=0;j<N,j++)sum+=A[i][j];returnsum;}程序的局部性原理舉例2I1I20x0FC0x100for循環(huán)體0x17C0x1800x184???I33I34I35???0x4000x404AA[0][0]A[0][1]???A[0][2047]程序的局部性原理舉例2I1I20x0FC0x100for循環(huán)體0x17C0x1800x184???I33I34I35???0x4000x404AA[0][0]A[0][1]???A[0][2047]A[1][0]A[1][1]程序段A的時間局部性和空間局部性分析(1)數(shù)組A:訪問順序為A[0][0],A[0][1],……,A[0][2047];A[1][0],A[1][1],……,A[1][2047];……與存放順序一致,故空間局部性好!因為每個A[i][j]都只被訪問一次,所以時間局部性差?。?)變量sum:單個變量不考慮空間局部性;每次循環(huán)都要訪問sum,所以其時間局部性較好!???sum器使循環(huán)中的sum分配在寄存器中,最后才寫回存儲器!2009年4月16日星期四(3)for循環(huán)體:循環(huán)體內(nèi)指令按序連續(xù)存放,所以空間局部性好!循環(huán)體被連續(xù)重復(fù)執(zhí)行2048x2048次,所以時間局部性好!memory.58指令數(shù)據(jù)程序段A:……inti,j,sum=0;for(i=0;i<2048,i++)for(j=0;j<2048,j++)sum+=A[i][j];returnsum;……程序的局部性原理舉例2I1I20x0FC0x100程序段B:……inti,j,sum=0;for(j=0;j<2048,j++)for(i=0;i<2048,i++)sum+=A[i][j];returnsum;for循環(huán)體0x17C0x1800x184???程序的局部性原理舉例2I1I20x0FC0x100程序段B:……inti,j,sum=0;for(j=0;j<2048,j++)for(i=0;i<2048,i++)sum+=A[i][j];returnsum;for循環(huán)體0x17C0x1800x184???I33I34I35???}0x4000x404AA[0][0]A[0][1]???A[0][2047]A[1][0]A[1][1]程序段B的時間局部性和空間局部性分析(1)數(shù)組A:訪問順序為A[0][0],A[1][0],……,A[2047][0];A[0][1],A[1][1],……,A[2047][1];……與存放順序不一致,每次跳過2048個單元,若交換單位小于2KB,則沒有空間局部性?。〞r間局部性差,同程序A)???sum變量sum:(同程序A)for循環(huán)體:(同程序A)實際運行結(jié)果(2GHzIntelPentium4):程序A:59,393,288時鐘周期程序B:1,277,877,876時鐘周期程序A比程序B快21.5倍!!memory.592009年4月16日星期四指令數(shù)據(jù)Cache(高速緩存)是什么樣的?Cache是一種小容量高速緩沖存儲器,它由SRAM組成Cache直接制作在CPU芯片內(nèi),速度幾乎與CPU一樣快程序運行時,CPU使用的一部分?jǐn)?shù)據(jù)/指令會預(yù)先成批拷貝在Cache中,Cache的內(nèi)容是主存儲器中部分內(nèi)容的映象當(dāng)CPU需要從內(nèi)存讀(寫)數(shù)據(jù)或指令時,先檢查Cache,若有,就直接從Cache中讀取,而不用訪問主存儲器數(shù)據(jù)訪問過程:Cache存儲器Cache(高速緩存)是什么樣的?Cache是一種小容量高速緩沖存儲器,它由SRAM組成Cache直接制作在CPU芯片內(nèi),速度幾乎與CPU一樣快程序運行時,CPU使用的一部分?jǐn)?shù)據(jù)/指令會預(yù)先成批拷貝在Cache中,Cache的內(nèi)容是主存儲器中部分內(nèi)容的映象當(dāng)CPU需要從內(nèi)存讀(寫)數(shù)據(jù)或指令時,先檢查Cache,若有,就直接從Cache中讀取,而不用訪問主存儲器數(shù)據(jù)訪問過程:Cache存儲器主存中的部分信息拷貝在Cache存儲器中 10 主存儲器問題:要實現(xiàn)Cache機(jī)制需要解決哪些問題?如何分塊?主存塊和Cache之間如何映射?Cache已滿時,怎么辦?寫數(shù)據(jù)時怎樣保證Cache和MM的一致性?給出的主存地址怎樣轉(zhuǎn)換為Cache地址?……Cache對程序員(編譯器)是否透明?為什么?是透明的,程序員(編譯器)在編寫/生成低級語言程序時無需了解Cache是否存在或如何設(shè)置。主存分成若干大小相同的塊,稱為主存塊(Block),Cache也被分成相同大小的塊,稱為Cache行(line)或槽(Slot)但是,對Cache深入了解有助于編寫出高效的程序!memory.602009年4月16日星期四151413121110987654321031094Cache的操作過程問題:什么情況下,CPU產(chǎn)生訪存要求?讀寫數(shù)據(jù)!息不在Cache的操作過程問題:什么情況下,CPU產(chǎn)生訪存要求?讀寫數(shù)據(jù)!息不在cache失靶(miss)失靶處理cache(hit)memory.612009年4月16日星期四Cache映射(CacheMapping)什么是Cache的映射功能?––把訪問的局部主存區(qū)域取到Cache中時,該放到CacheCache映射(CacheMapping)什么是Cache的映射功能?––把訪問的局部主存區(qū)域取到Cache中時,該放到Cache的何處?Cache槽比主存塊少,多個主存塊映射到一個Cache槽中如何進(jìn)行映射?––把主存劃分成大小相等的主存塊(Block)Cache中存放一個主存塊的對應(yīng)單位稱為槽(Slot)或行(line)或項(Entry)或塊(Block)將主存塊和Cache槽按照以下三種方式進(jìn)行映射–???直接(Direct):每個主存塊映射到Cache的固定槽中全相聯(lián)(FullAssociate):每個主存塊映射到Cache的任意槽中組相聯(lián)(SetAssociate):每個主存塊映射到Cache的固定組中的任意槽中memory.622009年4月16日星期四TheSimplestCache:DirectMappedCacheDirectMappedCache(直接映射TheSimplestCache:DirectMappedCacheDirectMappedCache(直接映射Cache)–––把主存的每一塊映射到一個固定的Cache槽也稱模映射(ModuleMapping)映射關(guān)系為:Cache槽號=主存塊號modCache槽數(shù)舉例:4=100mod16(假定Cache共有16槽)(說明:主存第100塊應(yīng)映射到Cache的第4槽中。)特點:–––容易實現(xiàn),命中時間短無需考慮淘汰(替換)問題但不夠靈活,Cache存儲空間得不到充分利用,命中率低例如,需將主存第0塊與第16塊同時復(fù)制到Cache中時,由于它們都只能復(fù)制到Cache第0槽,即使Cache其它槽空閑,也有一個主存塊不能寫入CacheCache裝入。SKIPmemory.632009年4月16日星期四直接映射Cache組織示意圖假定:數(shù)據(jù)在主存和Cache之間按塊傳送的單位為512字。直接映射Cache組織示意圖假定:數(shù)據(jù)在主存和Cache之間按塊傳送的單位為512字。213字x512字/槽主存大?。?20字塊x512字/塊Cache標(biāo)記(tag)指出對應(yīng)槽取自哪個主存塊群主存tag指出對應(yīng)地址位于哪個塊群Cache為空,如何對0220CH單元進(jìn)行訪問?BACKmemory.6400000010001000001100B第1塊群中的0001塊(即第17塊)中第12個單元!2009年4月16日星期四00000010220CHCacheOrganization:CacheTagandCacheIndex假定主存地址為32位,按字節(jié)編址假定Cache是塊大小為1B的直接映射Cache––31CacheIndex:ThelowerNbitsoftheCacheOrganization:CacheTagandCacheIndex假定主存地址為32位,按字節(jié)編址假定Cache是塊大小為1B的直接映射Cache––31CacheIndex:ThelowerNbitsofthememoryaddressCacheTag:Theupper(32-N)bitsofthememoryaddress0N①=1否32N-1––利用了時間局部性:某字節(jié)不久又可能被用沒有利用空間局部性:某字節(jié)的鄰近字節(jié)不久可能也被用,但沒有被調(diào)到Cache(每次調(diào)入的一塊信息只有一個字節(jié)?。┌l(fā)生沖突概率增大,因為塊小使映射到同一個Cache行的主存塊增加–可以通過增大塊的大小來利用空間局部性memory.652009年4月16日星期四Byte3:Byte2N-10x50:?1:CacheTag Example:0x50CacheIndex Ex:0x03ValidBit Cache“tag” ②=否? 2N CacheDataBytesByte0 0Byte1 1Byte2 2Ex2:1KBDirectMappedCachewith32BBlocksFora2Nbytecache(N=10inthisexample):––Theuppermost(32-N)addressbitsarealwaystheCacheTagThelowestMaddressbitsaretheByteSelectEx2:1KBDirectMappedCachewith32BBlocksFora2Nbytecache(N=10inthisexample):––Theuppermost(32-N)addressbitsarealwaystheCacheTagThelowestMaddressbitsaretheByteSelect(BlockSize=2M)SupposeBlocksizeis32B,M=531010954Ex:0x01Ex:0x00②④①ValidBitCacheTagCacheData01231③::Byte1023Byte99231memory.662009年4月16日星期四:Byte31:Byte1Byte0Byte63:Byte33Byte320x50:CacheTag Example:0x50CacheIndexByteSelectEx3:64KBDirectMappedCachewith16BBlocks假定主存和Cache之間采用直接映射方式,塊大小為16B。Cache的數(shù)據(jù)區(qū)容量為64KB,主存地址為32位,按字節(jié)編址。要求:說明主存地址如何劃分,訪存過程的硬件實現(xiàn)。MemoryAddress031Byte22②⑤16①12HitByteoffsetBlockoffsetMuxTagIndex16 tag WorddataV=M③(64K/16)=4K行問題:Cache有多少行?容量多大?數(shù)據(jù)占64KB/72.5KB=88.3%memory.672009年4月16日星期四4KEntries32ux32 ④ DataEx3:64KBDirectMappedCachewith16BBlocks假定主存和Cache之間采用直接映射方式,塊大小為16B。Cache的數(shù)據(jù)區(qū)容量為64KB,主存地址為32位,按字節(jié)編址。要求:說明主存地址如何劃分,訪存過程的硬件實現(xiàn)。MemoryAddress031Byte22②⑤16①12HitByteoffsetBlockoffsetMuxTagIndex16 tag WorddataV=M③(64K/16)=4K行問題:Cache有多少行?容量多大?數(shù)據(jù)占64KB/72.5KB=88.3%memory.672009年4月16日星期四4KEntries32ux32 ④ Data如何計算Cache的容量?Consideracachewith64Blocksandablocksizeof16如何計算Cache的容量?Consideracachewith64Blocksandablocksizeof16bytes.Whatblocknumberdoesbyteaddress1200mapto?答:地址1200對應(yīng)存放在第11槽。[1200/16=75]module64=11Howmanytotalbitsarerequiredforadirectedmappedcachewith16KEntriesofdataand1-wordblocks,assuminga32-bitaddress?(Cache:直接映射方式、16K項數(shù)據(jù)、塊大小為1個32位字、32位地址)答:Cache的存儲布局如下:Cache共有16Kx4B=64KB數(shù)據(jù)14213232–14–2所以,Cache的大小為:214×(32(32-14-2)+1214×49=784Kbits214×(4×32+(32-14-2-2)+1)=214×143=2288Kbits×(2m×32+(32-14-2-m)+1)2009年4月16日星期四若塊大小為4個字呢?若塊大小為2m個字呢?214memory.68全相聯(lián)映射Cache組織示意圖各主存塊可裝到Cache任一槽Slot(行Line或項全相聯(lián)映射Cache組織示意圖各主存塊可裝到Cache任一槽Slot(行Line或項Entry)中。稱為全映射或全相聯(lián)映射假定:數(shù)據(jù)在主存和Cache之間塊傳送的單位為512字。Cache大?。?13字=8K字=16槽x512字/槽主存大小:220字=1024K字=2048x512字/塊Cache標(biāo)記(tag)指出對應(yīng)槽取自哪個主存塊主存tag指出對應(yīng)地址位于哪個主存塊兩個標(biāo)記相等時,說明要找的地址在對應(yīng)槽中。比較所有標(biāo)記都不等,則失靶。舉例:假定Cache為空,如何對0220CH單元進(jìn)行訪問?00000010001000001100B第17塊中的第12個單元!可映射到任意cache槽中memory.692009年4月16日星期四舉例:FullyAssociativeFullyAssociativeCache–無需Cache索引,為什么?因為同時比較所有Cache項的標(biāo)志Bydefinition:ConflictMiss=0–(全相聯(lián)映射沒有沖突失靶,因為只要有空閑Cache塊,都不會發(fā)生沖突)Example32bitsmemoryaddress32Bblocks.比較器位數(shù)多長?–31weneedN27-bitcomparators40Ex:0x01CacheDataCache舉例:FullyAssociativeFullyAssociativeCache–無需Cache索引,為什么?因為同時比較所有Cache項的標(biāo)志Bydefinition:ConflictMiss=0–(全相聯(lián)映射沒有沖突失靶,因為只要有空閑Cache塊,都不會發(fā)生沖突)Example32bitsmemoryaddress32Bblocks.比較器位數(shù)多長?–31weneedN27-bitcomparators40Ex:0x01CacheDataCacheTagValidBit====:=memory.702009年4月16日星期四Byte31:Byte1Byte0Byte63:Byte33Byte32:::CacheTag(27bitslong)ByteSelect–––比直接映射靈活,命中率高。采用相聯(lián)存取技術(shù)(按內(nèi)容訪問),實現(xiàn)復(fù)雜、速度慢。不適合大容量CacheCache標(biāo)志位數(shù)增加,比較邏輯成本隨之增加。–––比直接映射靈活
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國太陽能十字路口單黃閃警示燈市場調(diào)查研究報告
- 2025年木窗簾項目可行性研究報告
- 2025至2031年中國四層多用蒸鍋行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年隔爆型電加熱器項目投資價值分析報告
- 2025至2030年超高速噴水織機(jī)項目投資價值分析報告
- 2025至2030年中國美式防塵眼鏡數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年手機(jī)分銷連鎖管理軟件項目投資價值分析報告
- 2025至2030年冷熱敷袋項目投資價值分析報告
- 2025至2030年中國全棉比尼帽數(shù)據(jù)監(jiān)測研究報告
- 咖啡開業(yè)活動方案
- 成本合約規(guī)劃培訓(xùn)
- 山東省濟(jì)寧市2025屆高三歷史一輪復(fù)習(xí)高考仿真試卷 含答案
- 五年級數(shù)學(xué)(小數(shù)乘法)計算題專項練習(xí)及答案
- 交通法規(guī)教育課件
- 產(chǎn)前診斷室護(hù)理工作總結(jié)
- 6S管理知識培訓(xùn)課件
- 小學(xué)校長任期五年工作目標(biāo)(2024年-2029年)
- 醫(yī)院培訓(xùn)課件:《猴痘流行病學(xué)特點及中國大陸首例猴痘病例調(diào)查處置》
- 氫氣-安全技術(shù)說明書MSDS
- 產(chǎn)科護(hù)士臨床思維能力培養(yǎng)
- 開曼群島公司法2024版中文譯本(含2024年修訂主要內(nèi)容)
評論
0/150
提交評論