軟件工程--04存儲器_第1頁
軟件工程--04存儲器_第2頁
軟件工程--04存儲器_第3頁
軟件工程--04存儲器_第4頁
軟件工程--04存儲器_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章 存 儲 器第四章 存 儲 器概述主存儲器高速緩沖存儲器虛擬存儲器4.1 概 述一、存儲器分類1. 按存儲介質(zhì)分類(1) 半導體存儲器(2) 磁表面存儲器(3) 磁芯存儲器(4) 光盤存儲器易失TTL 、MOS磁頭、載磁體硬磁材料、環(huán)狀元件激光、磁光材料非易失磁芯存儲器(1) 存取時間與物理地址無關(guān)(隨機訪問) 順序存取存儲器 磁帶2. 按存取方式分類 直接存取存儲器 磁盤(3)相聯(lián)存儲器按內(nèi)容檢索到存儲位置進行讀寫 快表每個單元讀寫時間一樣,且與各單元所在位置無關(guān)。 內(nèi)存(注:原意主要強調(diào)地址譯碼時間相同?,F(xiàn)在的DRAM芯片采用行緩沖, 因而可能因為位置不同而使訪問時間有所差別。)(2

2、) 存取時間與物理地址有關(guān)(串行訪問)3. 按信息的可更改性分類(1)讀寫存儲器(Read / Write Memory):可讀可寫(2)只讀存儲器(Read Only Memory):只能讀不能寫4.按斷電后信息的可保存性分類(1)非易失(不揮發(fā))性存儲器(Nonvolatile Memory) 信息可一直保留, 不需電源維持。(如 :ROM、磁表面存儲器、光存儲器等)(2)易失(揮發(fā))性存儲器(Volatile Memory) 電源關(guān)閉時信息自動丟失。(如:RAM、Cache等)5.按功能/容量/速度/所在位置分類寄存器(Register)封裝在CPU內(nèi),用于存放當前正在執(zhí)行的指令和使用的

3、數(shù)據(jù)用觸發(fā)器實現(xiàn),速度快,容量?。◣资畟€)高速緩存(Cache)位于CPU內(nèi)部或附近,存放當前要執(zhí)行的局部程序段和數(shù)據(jù)用SRAM實現(xiàn),速度可與CPU匹配,容量?。◣譓B)內(nèi)存儲器MM(主存儲器Main (Primary) Memory)位于CPU之外,用來存放已被啟動的程序及所用的數(shù)據(jù)用DRAM實現(xiàn)(部分ROM),速度較快,容量較大(幾GB)外存儲器AM (輔助存儲器)位于主機之外,存放暫不運行的程序、數(shù)據(jù)或存檔文件用磁表面或光存儲器實現(xiàn),容量大而速度慢2. 存儲速度二、 存儲器的技術(shù)指標1. 存儲容量3. 存儲器的帶寬主存 存放二進制代碼的總數(shù)量 讀出時間 寫入時間 存儲器的 訪問時間 存取

4、時間 存取周期 讀周期 寫周期 連續(xù)兩次獨立的存儲器操作(讀或?qū)懀┧璧?最小間隔時間 位/秒高低小大快慢外設速度容量價格/ 位1. 存儲器三個主要特性的關(guān)系 三、存儲器的層次結(jié)構(gòu)CPU主機 寄存器緩存內(nèi)(主)存磁盤光盤磁帶輔存主存緩存CPU主存輔存2. 緩存 主存層次和主存 輔存層次虛擬存儲器10 ns20 ns200 nsms虛地址邏輯地址實地址物理地址主存儲器(速度)(容量)緩存主存主存輔存i5-480M (2.66 G)2 ns10 ns四、主存的組成和基本操作1. 主存的基本組成存儲體驅(qū)動器譯碼器MAR控制電路讀寫電路MDR.地址總線數(shù)據(jù)總線讀寫0110100110101010存儲內(nèi)

5、容00001000000001000011001001111011111存儲單元地址2. 主存和 CPU 的聯(lián)系MDRMARCPU主 存讀數(shù)據(jù)總線地址總線寫地址寄存器地址譯碼器讀寫控制電路控制線讀/寫控制信號記憶單元數(shù)據(jù)線讀/寫的數(shù)據(jù)(64位)主存地址地址線(36位)0110100110101010存儲內(nèi)容00001000000001000011001001111011111存儲單元地址MDRMARCPUMM設地址線 24 根按 字節(jié) 尋址按 字 尋址若字長為 16 位按 字 尋址若字長為 32 位3. 主存中存儲單元地址的分配224 = 16 M8 M4 M 一般計算機系統(tǒng)即可按字尋址,也可

6、按字節(jié)尋址。不同的機器存儲字長可以不同,但都是字節(jié)的整數(shù)倍。字地址從0開始編址,若字長為 16 位則為0,2,4,6,;若字長為 32 位則為0,4,8,12,4.內(nèi)存儲器的分類及應用內(nèi)存由半導體存儲器芯片組成,芯片有多種類型:半導體存儲器只讀存儲器(ROM)隨機存取存儲器(RAM)靜態(tài)存儲器SRAM動態(tài)存儲器DRAM 不可在線改寫內(nèi)容的ROM閃存(Flash ROM)(用作Cache) (用作主存儲器) 每個存儲單元(cell)由6個晶體管組成 只要加上電源,信息就能一直保持 對電器干擾相對不很敏感 比DRAM更快,也更貴 每個存儲單元由1個電容和1個晶體管組成. 每隔一段時間必須刷新一次

7、對電器干擾比較敏感 比SRAM慢,但便宜(用作BIOS)(BASIC解釋程序) 一、 基本存儲單元(cell)A 觸發(fā)器非端1T4T觸發(fā)器5TT6、行開關(guān)7TT8、列開關(guān)7TT8、一列共用A 觸發(fā)器原端T1 T4T5T6T7T8AA寫放大器寫放大器DIN寫選擇讀選擇DOUT讀放位線A位線A列地址選擇行地址選擇T1 T44.2 半導體隨機存取存儲器1.靜態(tài) RAM (SRAM) AT1 T4T5T6T7T8A寫放大器寫放大器DIN寫選擇讀選擇讀放位線A位線A列地址選擇行地址選擇DOUT 靜態(tài) RAM 基本電路的 讀 操作 行選 T5、T6 開T7、T8 開列選讀放DOUTVAT6T8DOUTT1

8、 T4T5T6T7T8AADIN位線A位線A 列地址選擇行地址選擇寫放寫放讀放DOUT寫選擇讀選擇 靜態(tài) RAM 基本電路的 寫 操作 行選T5、T6 開 兩個寫放 DIN列選T7、T8 開(左) 反相T5A(右) T8T6ADINDINT700101012. 動態(tài) RAM ( DRAM )讀出時數(shù)據(jù)線有電流 為 “1” 數(shù)據(jù)線CsT字線01寫入時CS充電 為 “1” 放電 為 “0” T無電流有電流 3. 動態(tài) RAM 和靜態(tài) RAM 的比較DRAMSRAM存儲原理集成度芯片引腳功耗價格速度刷新電容觸發(fā)器高低少多小大低高慢快有無主存緩存二、靜態(tài)RAM芯片芯片容量1. SRAM芯片的基本結(jié)構(gòu)1

9、K 4位16K 1位8K 8位譯碼驅(qū)動存儲矩陣讀寫電路片選線讀/寫控制線地址線數(shù)據(jù)線地址線(單向)數(shù)據(jù)線(雙向)1041411380,015,015,70,7 讀/寫控制電路 地址譯碼器 字線015168矩陣07D07D 位線 讀 / 寫選通A3A2A1A02. 半導體存儲芯片的譯碼驅(qū)動方式(1) 線選法(一維)00000,00,7007D07D 讀 / 寫選通A3A2A1A0A40,310,031,031,31 Y 地址譯碼器 X地址譯碼器 3232 矩陣A9I/OA8A7A56AY0Y31X0X31D讀/寫(2) 重合法(二維)00000000000,031,00,31I/OD0,0讀 3

10、. 靜態(tài) RAM 讀 時序 ACSDOUT地址有效地址失效片選失效數(shù)據(jù)有效數(shù)據(jù)穩(wěn)定tAtCOtOHAtOTDtRC片選有效讀周期 tRC 地址有效下一次地址有效讀時間 tA 地址有效 數(shù)據(jù)穩(wěn)定 tCO 片選有效 數(shù)據(jù)穩(wěn)定片選失效 輸出高阻地址失效后的數(shù)據(jù)維持時間ACSWEDOUTDIN (4) 靜態(tài) RAM (2114) 寫 時序 tWCtWtAWtDWtDHtWRtDH WE 失效后的數(shù)據(jù)維持時間寫周期 tWC 地址有效下一次地址有效寫時間 tw:寫命令的有效時間tAW 地址有效片選有效的滯后時間片選失效下一次地址有效tDW數(shù)據(jù)穩(wěn)定WE 失效存儲芯片片選線的作用用 16K 1位 的存儲芯片組

11、成 64K 8位 的存儲器 32片當?shù)刂窞?65 529(FFF9) 時,此 8 片的片選有效 8片16K 1位 8片16K 1位 8片16K 1位 8片16K 1位00003FFF4000 7FFF8000 BFFFC000 FFFF 5. 靜態(tài) RAM 芯片舉例 Intel 2114 外特性存儲容量1K4位.I/O1I/O2I/O3I/O4A0A8A9WECSCCVGNDIntel 2114 Intel 2114 RAM 矩陣 (64 64) 讀A3A4A5A6A7A8A0A1A2A9150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015

12、行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS第一組第二組第三組第四組四個位平面150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS第一組第二組第三組第四組0000000000 Intel 2114 RAM 矩陣 (64 64) 讀第一組第二組第三組第四組150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS0000000000 Intel 2114 RAM

13、 矩陣 (64 64) 讀150311647326348第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 讀150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS0000000000150311647326348150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS0000000000150311647326348第一組第二組第三組第四組 Int

14、el 2114 RAM 矩陣 (64 64) 讀0163248CSWE第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 讀150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECSCSWE15031164732634801632480000000000第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 讀150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O

15、1I/O2I/O3I/O4WECS0000000000CSWE1503116473263480163248第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 讀150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS0000000000CSWE1503116473263480163248讀寫電路讀寫電路讀寫電路讀寫電路第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 讀150311647326348150311647326348讀寫

16、電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼I/O1I/O2I/O3I/O4WECS0000000000CSWE讀寫電路讀寫電路讀寫電路讀寫電路1503116473263480163248I/O1I/O2I/O3I/O4第一組第二組第三組第四組 Intel 2114 RAM 矩陣 (64 64) 寫I/O1I/O2I/O3I/O4150311647326348150311647326348讀寫電路讀寫電路讀寫電路讀寫電路0163015行地址譯碼列地址譯碼WECS0000000000150311647326348I/O1I/O2I/O3I/O4讀寫電路讀寫電路讀寫電路讀寫電路W

17、ECS016324816M位=4Mb x 4=2048 x 2048 x 4=211x211x4(1) 地址線:11根分時復用,由RAS和CAS提供控制時序。(2) 需四個位平面,對相同行、列交叉點的4位一起讀/寫(3) 內(nèi)部結(jié)構(gòu)框圖1.舉例:典型的16M位DRAM(4Mx4) 三、 動態(tài) RAM 芯片舉例:典型的16M位DRAM(4Mx4)四個位平面各片同時按“行”進行刷新!二選一問題:刷新計數(shù)器的位數(shù)是幾位? 行地址和列地址分時復用, 每出現(xiàn)新一代存儲器芯片,至少要增加一根地址線每加一根地址線,則行地址和列地址各增加一位,所以行數(shù)和列數(shù)各增加一倍。因而容量至少提高到4倍。問題: 為什么每出

18、現(xiàn)新一代存儲器芯片,容量至少提高到4倍? 2. 動態(tài) RAM 時序 行、列地址分開傳送寫時序行地址 RAS 有效寫允許 WE 有效(高)數(shù)據(jù) DOUT 有效數(shù)據(jù) DIN 有效讀時序行地址 RAS 有效寫允許 WE 有效(低)列地址 CAS 有效列地址 CAS 有效3. 動態(tài) RAM 刷新 刷新與行地址有關(guān) 集中刷新(存取周期為0.5s)“死時間率” 為 32/4000 100% = 0.8%“死區(qū)” 為 0.5 s 32 = 16 s周期序號地址序號tc0123967396801tctctctc3999VW0131讀/寫或維持刷新讀/寫或維持3968個周期(1984)32個周期(16)刷新時間

19、間隔(2ms)刷新序號sstcXtcY 以 32 32 矩陣為例tC = tM + tR讀寫刷新無 “死區(qū)” 分散刷新(存取周期為1s)(存取周期為 0.5 s + 0.5 s)W/RREF0W/RtRtMtCREF126REF127REFW/RW/RW/RW/R刷新間隔128個讀寫周期以 128 128 矩陣為例 分散刷新與集中刷新相結(jié)合(異步) 對于 128 128 的存儲芯片(存取周期為 0.5s)將刷新安排在指令譯碼階段,不會出現(xiàn) “死區(qū)”“死區(qū)” 為 0.5 s若每隔 15.6 s 刷新一行而且每行每隔 2 ms 刷新一次若每隔 2 ms 集中刷新一次“死區(qū)” 為 64 s2ms/1

20、284. SDRAM芯片技術(shù)CPU與存儲器之間的通信方式 異步方式(讀操作)過程(需握手信號)CPU送地址到地址線,主存進行地址譯碼CPU發(fā)讀命令,然后等待存儲器發(fā)回“完成”信號主存收到讀命令后開始讀數(shù),完成后發(fā)“完成”信號給CPUCPU接收到“完成”信號,從數(shù)據(jù)線取數(shù)寫操作過程類似4. SDRAM芯片技術(shù)CPU與存儲器之間的通信方式 同步方式的特點CPU和主存由統(tǒng)一時鐘信號控制,無需應答信號主存總是在確定的時間內(nèi)準備好數(shù)據(jù)CPU送出地址和讀命令后,總是在確定的時間取數(shù)據(jù) 存儲器芯片必須支持同步方式 SDRAM是同步存儲芯片每步操作都在系統(tǒng)時鐘控制下進行有確定的等待時間(讀命令開始到數(shù)據(jù)線有效

21、的時間, 稱為CAS潛伏期)CL,例如 CL=2 clks連續(xù)傳送(Burst)數(shù)據(jù)個數(shù) BL=1 / 2 / 4 / 8多體(緩沖器)交叉存取利用總線時鐘上升沿與下降沿同步傳送 DDR3 SDRAM一個時鐘內(nèi)傳送8個數(shù)據(jù)4.3 只讀存儲器和Flash存儲器特點:信息只能讀不能(在線)寫。非破壞性讀出,無需再生。也以隨機存取方式工作。信息用特殊方式寫入,一經(jīng)寫入,就可長久保存,不受斷電影響。故是非易失性存儲器。4.3 只讀存儲器和Flash存儲器用途:用來存放一些固定程序。如監(jiān)控程序、啟動程序等。只要一接通電源,這些程序就能自動地運行;可作為控制存儲器,存放微程序。還可作為函數(shù)發(fā)生器和代碼轉(zhuǎn)換

22、器。在輸入/出設備中,被用作字符發(fā)生器,漢字庫等。在嵌入式設備中用來存放固化的程序。一、只讀存儲器(ROM) 1. 掩膜 ROM ( MROM ) 行列選擇線交叉處有 MOS 管為“1”行列選擇線交叉處無 MOS 管為“0” 2. PROM (一次性編程) 熔絲斷為 “0”為 “1”熔絲未斷VCC行線列線熔絲 3. EPROM (多次性編程 ) N型溝道浮動柵 MOS 電路G 柵極S 源極D 漏極紫外線全部擦洗D 端加正電壓形成浮動柵S 與 D 不導通為 “0”D 端不加正電壓不形成浮動柵S 與 D 導通為 “1”SGDN+N+P基片GDS浮動柵SiO2+ + + + +_ _ _ 4. EE

23、PROM (多次性編程 ) 電可擦寫局部擦寫全部擦寫3264B二、 Flash Memory (快擦型存儲器) 比 E2PROM快EPROM價格便宜 集成度高EEPROM電可擦洗重寫具備 RAM 功能閃存的讀取速度與DRAM相近,是磁盤的100倍左右; 寫數(shù)據(jù)(快擦編程)則與硬盤相近 4.4 存儲器與 CPU 的連接 一、 存儲器容量的擴展 (1) 位擴展(增加存儲字長) 用 2片 1K 4位 存儲芯片組成 1K 8位 的存儲器10根地址線8根數(shù)據(jù)線9AA021142114CSWE0DDD47 (2) 字擴展(增加存儲字的數(shù)量) 用 2片 1K 8位 存儲芯片組成 2K 8位 的存儲器11根地

24、址線8根數(shù)據(jù)線 1K 8位 1K 8位D7D0 WEA1A0 A9CS0A10 1CS1 (3) 字、位擴展用 8片 1K 4位 存儲芯片組成 4K 8位 的存儲器8根數(shù)據(jù)線12根地址線WEA8A9A0.D7D0A11A10片選譯碼.1K41K41K41K41K41K41K41K4CS0CS1CS2CS3存儲控制器(行地址i, 列地址j)DRAM 7DRAM 003178151623243263394047485556bits0-7bits8-15bits16-23bits24-31bits32-39bits40-47bits48-55bits56-63 最多讀64位0317815162324

25、3263394047485556主存儲器地址 A 處的64-bit數(shù)據(jù)地址A4096行由8片16M8 bits DRAM芯片構(gòu)成128MB的存儲器行、列地址各12位為什么呢?每1行共4096列(8位/列)選中某一行并讀出之后再由列地址選擇其中的一列(8個二進位) 送出問題:主存地址和片內(nèi)地址的關(guān)系?主存地址27位,片內(nèi)地址24位,與高24位主存地址相同。問題:主存低3位地址的作用是什么?確定8個字節(jié)中的哪個,用來進行片選。行、列地址為(i,j)的8個單元輸出主存地址在各個芯片上交叉編址,可同時讀寫所有芯片(1) 地址線的連接2. 存儲器與 CPU 的連接 將低位地址線直接連到芯片的地址輸入端

26、將高位地址線經(jīng)譯碼后產(chǎn)生片選信號, 分別連接各組芯片上(1) 地址線的連接(2) 數(shù)據(jù)線的連接(3) 讀/寫線的連接(4) 片選線的連接(5) 合理選用芯片(6) 其他 時序、負載2. 存儲器與 CPU 的連接例4.1 解: (1) 寫出對應的二進制地址碼(2) 確定芯片的數(shù)量及類型0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 A15 A14 A13 A12 A11 A10 A7 A4 A3 A00 1 1 0 0 1 1 1 1 1 1 1 1 1 1 10 1 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 1 0 1 0 1 1 1 1 1 1 1 1 1

27、 12K8位1K8位RAM2片1K4位ROM1片 2K8位(3) 分配地址線A10 A0 接 2K 8位 ROM 的地址線A9 A0 接 1K 4位 RAM 的地址線(4) 確定片選信號CBA 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 A15 A14 A13 A12 A11 A10 A7 A4 A3 A0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 12K 8位1片 ROM1K 4位2片RAM 2K 8位 ROM 1K 4位 RA

28、M1K 4位 RAM&PD/ProgrY5Y4G1CBAG2BG2AMREQA14A15A13A12A11A10A9A0D7D4D3D0WR例 4.1 CPU 與存儲器的連接圖(1) 寫出對應的二進制地址碼例4.2 假設同前,要求最小 8K為系統(tǒng)程序區(qū),相鄰 16K 為用戶程序區(qū),最大4K為系統(tǒng)程序工作區(qū)。0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 A15 A14 A13 A12 A11 A7 A4 A3 A00 0 0 1 1 1 1 11 1 1 11 1 1 10 0 1 0 0 0 0 00 0 0 00 0 0 00 0 1 1 1 1 1 11 1 1 11 1

29、1 10 1 0 0 0 0 0 0 0 0 0 00 0 0 00 1 0 1 1 1 1 11 1 1 11 1 1 18K8位ROM1片 8K8位16K8位RAM2片8K8位例4.2 假設同前,要求最小 8K為系統(tǒng)程序區(qū),相鄰 16K 為用戶程序區(qū),最大4K為系統(tǒng)程序工作區(qū)。1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 A15 A14 A13 A12 A11 A7 A4 A3 A01 1 1 1 1 1 1 11 1 1 11 1 1 14K8位RAM1片 4K8位&PD/ProgrMREQA15A14A13A12A11A0D7D0WR例 4.2 CPU 與存儲器的連接圖

30、Y7Y2G1CBAG2BG2AY1Y0 8K 8位 8K 8位 ROM RAM4K 8位 RAM8K 8位 RAM5V例 4.3 設 CPU 有 20 根地址線,8 根數(shù)據(jù)線。并用 IO/M 作訪存控制信號。RD 為讀命令,WR 為寫命令。 現(xiàn)有 2764 EPROM ( 8K 8位 ), 外特性如下:D7D0CEOECE片選信號OE允許輸出PGM可編程端PGMA0A12 用 138 譯碼器及其他門電路(門電路自定)畫出 CPU和 2764 的連接圖。要求地址為 F0000HFFFFFH , 并寫出每片 2764 的地址范圍。1 1 1 1 0 0 0 0 0 0 A19 A18 A17 A1

31、6 A15 A14 A13 A12 A11 A01 1 1 1 0 0 0 1 1 11 1 1 1 0 0 1 0 0 01 1 1 1 0 0 1 1 1 11 1 1 1 1 1 1 1 1 1幾片2764?216 / 213怎樣形成片選信號?請同學們畫出CPU和 2764 的連接圖例 4.4 設 CPU 有 20 根地址線,16 根數(shù)據(jù)線。并用 IO/M 作訪存 控制信號。RD 為讀命令, WR 為寫命令。CPU通過BHE和A0 控制按字節(jié)或按字訪存。 CPU按字節(jié)訪存和按字訪存的地址范圍各是多少? CPU按字節(jié)訪存時需分奇偶體,且最大64KB為系統(tǒng)程序區(qū), 與其相鄰的64KB為用戶程

32、序區(qū)。 寫出每片存儲芯片對應的二進制地址碼 畫出CPU與存儲芯片的連接圖。 無操作 1 1 傳送D7D0 (偶字節(jié)) 1 0 傳送D15D8 (奇字節(jié)) 0 1 傳送16位D15D0(字) 0 0數(shù)據(jù)傳送狀態(tài)BHE A0奇地址(高位)存儲體偶地址(低位)存儲體D8D15D0D7DjD0CEOEPGMA0AiDjD0CEOEWEA0Ai現(xiàn)有 EPROM64K 8位32K 8位64K 8位32K 8位32K 16位32K 16位現(xiàn)有 RAM1 1 1 1 1 1 1 1 1 1 A19 A18 A17 A16 A15 A14 A13 A12 A11 A01 1 1 1 0 0 0 0 0 01 1

33、 1 0 1 1 1 1 1 11 1 1 0 0 0 0 0 0 0如何選擇芯片?怎樣形成片選信號?216=64K32K8位兩片ROM32K8位兩片RAMIO/ MA19A18A17A16BHEA0A15A1D15D8D7D0WRRDCPU&G1CBAG2BG2AY0Y1Y2Y4Y5Y6VCCVCCCPU與存儲芯片的連接圖 采用高速器件 調(diào)整主存結(jié)構(gòu) 采用層次結(jié)構(gòu) Cache 主存 4.5 并行存儲器結(jié)構(gòu)技術(shù)提高訪存速度的措施一、雙口存儲器 兩套獨立的讀/寫控制電路、地址緩存、地址譯碼及地址線和數(shù)據(jù)線, 通常作為雙口RAM或指令預取部件雙口存儲器結(jié)構(gòu)二、單體多字系統(tǒng) W位W位W位W位W位地址

34、寄存器主存控制部件. . . . . . . . . . .單字長寄存器 數(shù)據(jù)寄存器 存儲體 增加存儲器的帶寬 三、 多體并行系統(tǒng)1. 高位交叉 各個體并行工作M0地址01n1M1nn+12n1M22n2n+13n1M33n3n+14n1譯碼體內(nèi)地址體號01n101n101n101n11. 高位交叉 體內(nèi)地址體號M0017M189 15M2161723M3242531 01 701 701 701 70 0 0 0 00 0 0 0 10 0 1 1 10 1 0 0 00 1 1 1 11 0 0 0 01 0 1 1 11 1 0 0 01 1 1 1 1M0M1M2M32. 低位交叉M0

35、地址044n4M1154n3M2264n2M3374n1譯碼 體號體內(nèi)地址各個體輪流編址體內(nèi)地址 體號2. 低位交叉各個體輪流編址M00428M115 29M22630M33731 01 701 701 701 70 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 00 0 1 1 1 1 1 1 0 01 1 1 0 11 1 1 1 01 1 1 1 1M0M1M2M3M0M1M0M1M2M3低位交叉的特點在不改變存取周期的前提下,增加存儲器的帶寬時間 單體訪存周期 單體訪存周期啟動存儲體 0啟動存儲體 1啟動存儲體

36、2啟動存儲體 34.6 高速緩沖存儲器一、概述1. 問題的提出避免 CPU “空等” 現(xiàn)象CPU 和主存(DRAM)的速度差異緩存CPU主存容量小速度高容量大速度低程序訪問的局部性原理空間、時間 80-20 程序?qū)ζ浯鎯臻g的訪問中,80%的訪問局限于存儲空間中20%的區(qū)域,而另外20%的訪問則分布在存儲空間其余80%的區(qū)域中。 時間局部性是指程序在最近的未來要用到的信息很可能是 現(xiàn)在正在使用的信息。空間局部性是指程序在最近的未來要用到的信息與現(xiàn)在正在 使用的信息很可能在程序空間上是相鄰或相近的最典型的例子是循環(huán)程序要被多次重復地執(zhí)行 數(shù)據(jù)一般是以向量、陣列、樹形、表格等形式存放,其中每類數(shù)據(jù)

37、都是簇聚地存儲,因此,程序執(zhí)行時訪問存儲器的地址分布不會是隨機的、均勻的,而是簇聚成自然的塊或頁面 自學P149151 例題二、 Cache 的工作原理1. 主存和緩存的編址主存和緩存按塊存儲 塊的大小相同B 為塊長主存塊號主存儲器012m1字塊 0字塊 1字塊 M1主存塊號塊內(nèi)地址m位b位n位M塊B個字緩存塊號塊內(nèi)地址c位b位C塊B個字字塊 0字塊 1字塊 C1012c1標記Cache緩存塊號行或槽2. Cache 的命中率緩存共有 C 塊主存共有 M 塊M C主存塊 調(diào)入 緩存主存塊與緩存塊 建立 了對應關(guān)系用 標記記錄 與某緩存塊建立了對應關(guān)系的 主存塊塊號命中未命中主存塊與緩存塊 未建

38、立 對應關(guān)系主存塊 未調(diào)入 緩存Cache 的命中率CPU 欲訪問的信息在 Cache 中的 比率命中率 與 Cache 的 容量 與 塊長 有關(guān) cache的命中率與cache容量的關(guān)系一般每塊可取 4 至 8 個字塊長取一個存取周期內(nèi)從主存調(diào)出的信息長度 CRAY_1 16體交叉 塊長取 16 個存儲字 IBM 370/168 4體交叉 塊長取 4 個存儲字(64位4 = 256位)主存結(jié)構(gòu)塊長與命中率的關(guān)系主 存Cache替換機構(gòu)訪問主存替換CacheN可裝進?訪問主存裝入CacheNY主存Cache 地址映象 變換機構(gòu) Y 命中?塊號塊內(nèi)地址主存地址 Cache 存儲體塊號塊內(nèi)地址Ca

39、che地址數(shù)據(jù)總線CPU直接通路地址總線3. Cache 的基本結(jié)構(gòu)由 CPU 完成4. Cache 的 讀寫 操作 訪問Cache取出信息送CPU 訪問主存取出信息送CPU將新的主存塊調(diào)入Cache中執(zhí)行替換算法 騰出空位 結(jié)束命中?Cache滿?CPU發(fā)出訪問地址 開始YNYN寫Cache 和主存的一致性 讀寫操作方法(分命中和不命中兩種情況) 寫直達法 也叫通過式寫或通過式存,每次寫Cache時同時寫主存。 寫回法 每次寫Cache中某一塊時,暫不寫主存,直至該塊從Cache中調(diào)出時,才寫入主存。按寫分配法 寫Cache不命中時,寫主存并將主存中相應的塊調(diào)入Cache。 不按寫分配法 寫

40、Cache不命中時,只寫入主存,不將主存中的相應塊調(diào)入Cache。 5. Cache 的改進(1) 增加 Cache 的級數(shù)片載(片內(nèi))Cache片外 Cache(2) 統(tǒng)一緩存和分開緩存指令 Cache數(shù)據(jù) Cache與主存結(jié)構(gòu)有關(guān)與指令執(zhí)行的控制方式有關(guān)是否流水Pentium 8K 指令 Cache 8K 數(shù)據(jù) CachePowerPC620 32K 指令 Cache 32K 數(shù)據(jù) Cache三、Cache 主存的地址映象 字塊2m1 字塊2c+1 字塊2c+11 字塊2c +1 字塊2c 字塊2c1 字塊1 字塊0主存儲體 字塊 1 標記 字塊 0 標記字塊 2c1標記Cache存儲體t

41、位01C1 字塊字塊地址 主存字 塊標記t 位c 位b 位主存地址 比較器(t位)= 不命中有效位=1?*m位 Cache內(nèi)地址否是命中1. 直接映象每個緩存塊 i 可以和 若干 個 主存塊 對應每個主存塊 j 只能和 一 個 緩存塊 對應i = j mod C 字塊2c+1 字塊2c 字塊0 字塊 0區(qū)號Cache地址 字塊127 字塊16 字塊15 字塊9 字塊8 字塊7 字塊1 字塊0主存儲體 字塊 1 標記 字塊 0 標記 字塊 7標記Cache存儲體t位01C1 字塊字塊地址 主存字 塊標記t 位c 位b 位主存地址 比較器(t位)= 不命中有效位=1?*m位 Cache內(nèi)地址否是命

42、中Cache有8塊,每塊4個字主存有128塊,每塊4個字 4 3 20001分為16個區(qū) 字塊9 字塊 10 0 0 1 0 0 1 X X0 0 0 1 0 0 1 0 1命中 0 0 1 0 0 0 1 0 1不命中 =目錄(SRAM) 例:主存和Cache之間直接映射,塊大小為16B,字長為4B。Cache的數(shù)據(jù)區(qū)容量為64KB,主存地址為32位,按字節(jié)編址。要求:說明主存地址如何劃分和訪存過程。 1612231 20Memory Address64KB/16B32-12-2-2Vtag128b16bdata4KLines(塊)Index=Hit32323232Mux32DataWord

43、Block offset16 Byte offsetByteMux問題:Cache有多少行?容量多大?容量 4Kx(1+16)+64Kx8=580Kbits=72.5KB, 數(shù)據(jù)占64KB / 72.5KB = 88.3% 稱“行”的由來2. 全相聯(lián)映象主存 中的 任一塊 可以映象到 緩存 中的 任一塊字塊2m1字塊2c1字塊1 字塊0字塊2c1字塊1字塊0標記標記標記主存字塊標記 字塊內(nèi)地址主存地址m 位b位mCache 存儲器主存儲器 字塊0主存塊號Cache容量很大時,目錄表也很大,查表速度很難提高為加快速度,將每個Cache行設置一個比較器,但硬件開銷會很大 字塊內(nèi)地址組地址主存字塊標

44、記s = m-q 位q 位b 位主存地址m 位 字塊 3標記 字塊 1標記字塊 2c1標記 字塊 2標記 字塊 0標記字塊 2c2標記組012q1Cache共 Q 組,每組內(nèi)2r (r = 1兩塊)字塊2m1字塊2q+1 字塊2q+ 1 字塊2q字塊2q 字塊1 字塊0主存儲器1某一主存塊 j 按模 Q 映射到 緩存 的第 i 組中的 任一塊i = j mod Q直接映象全相聯(lián)映象3. 組相聯(lián)映象主存區(qū)號 字塊0 字塊 1 字塊 0 字塊2q 字塊2q+1例4.9設主存容量為512K16位,Cache容量為409616位,塊長為4個16位的字,訪存地址為字地址。(1)設計直接映射方式的主存地址

45、格式(2)設計全相聯(lián)映射方式的主存地址格式(3)設計二路組相聯(lián)映射方式的主存地址格式(4)若主存容量為512K32位,其余不變,設計四路組相聯(lián)映射方式的主存地址格式解(1)直接映射方式的主存地址格式主存字塊標記Cache字塊地址字塊內(nèi)地址7 10 24096/4=1024512K/4=128K主存字塊標記字塊內(nèi)地址(2)設計全相聯(lián)映射方式的主存地址格式主存字塊標記組地址字塊內(nèi)地址主存字塊標記組地址字塊內(nèi)地址(3)設計二路組相聯(lián)映射方式的主存地址格式(4)四路組相聯(lián)映射方式的主存地址格式 17 210 8 28 9 2例4.10 設主存容量為16MB,Cache容量為8KB,塊長為8個32位的字

46、,設計一個四路組相聯(lián)映象的Cache組織。(1)設計主存地址格式(2)設Cache初態(tài)為空,CPU依次從主存第0,1,2,99號單元讀出100個字(主存一次讀出一個字),并重復讀100次,問命中率是多少?(3)若Cache的速度是主存的5倍,求加速比是多少?(4)系統(tǒng)的效率是多少?解: (1)主存地址格式主存字塊標記組地址字塊內(nèi)地址13 6 58KB/32B=256256/4=64按字節(jié)編址(2)設Cache初態(tài)為空,CPU依次從主存第0,1,2,99號單元讀出100個字(主存一次讀出一個字),并重復讀10次,問命中率是多少?(3)若Cache的速度是主存的5倍,求加速比是多少?等效存儲周期加

47、速比速度提高的倍數(shù)為3.75和P153頁公式不同!(4)系統(tǒng)的效率四、替換算法 1. 先進先出 ( FIFO )算法 2. 近期最少使用法( LRU)算法 將最先調(diào)入Cache的塊替換出來。不記錄各個塊的使用情況,容易實現(xiàn),開銷小,但可能把一些需要經(jīng)常使用的塊調(diào)出(沒有考慮訪存局部性原理)。 將近期最少使用的塊調(diào)出??紤]了訪存局部性原理。需隨時記錄Cache中各個字塊的使用情況,比較復雜。 替換掉Cache中引用次數(shù)最少的塊。 (這種算法與LRU有點類似,但不完全相同。)4. 隨機法隨機地從候選的cache行中選取一個淘汰, 與使用情況無關(guān)。3.最不經(jīng)常用(LFU)算法 時間t 1 2 3 4

48、 5 6 7 8 9 10 11 12 塊地址流 1 2 1 0 4 1 3 4 2 1 4 1 FIFO法 LRU法 1 調(diào)進12調(diào)進1*20調(diào)進2*41替換12命中4*13命中42*0替換410*替換243*替換21*3命中21*3替換4*13替換1 調(diào)進12調(diào)進12命中12*0調(diào)進1*40替換140*命中1*43命中2*41命中2*41命中14*3替換243*替換24*1替換 命中率=3/12=25% 命中率=5/12=41% LRU法 1 調(diào)進12調(diào)進12命中12*0調(diào)進1*40替換140*命中1*43命中2*41命中2*41命中14*3替換243*替換24*1替換 命中率=5/12=

49、41% 這里所采用的LRU法是一種簡化的方法,即近期最久未使用法,從例題中可看出,每次總是把最久沒被訪問的塊替換出去。 例: 設有一道程序,有1至5共5個塊,程序執(zhí)行時的塊地址流為: 1,2,3,4,1,2,5,1,2,3,4,5采用FIFO算法,求緩存塊數(shù)分別為3塊和4塊時的命中率。112123423413412512512512532534534時間: 1 2 3 4 5 6 7 8 9 10 11 12塊流: 1 2 3 4 1 2 5 1 2 3 4 5 H=3/12=0.25112123123412341234523451345124512341234523H=2/12=0.167

50、FIFO算法不能保證緩存的塊數(shù)增加而命中率也隨之提高。但是,LRU算法具有這一性質(zhì),這是因為它屬于堆棧型替換算法。時間: 1 2 3 4 5 6 7 8 9 10 11 12塊流: 2 3 2 1 5 2 4 5 3 2 5 2 LRU2322312351232513425135421335421235415234125341St(1)St(2)St(3)St(4)St(5)St(6)n=1n=5 n=2 n=3 n=4 替換LRU是一種堆棧算法,它的命中率隨組的增大而提高。當分塊局部化范圍(即:某段時間集中訪問的存儲區(qū))超過了Cache存儲容量時,命中率變得很低。極端情況下,假設地址流是1,

51、2,3,4,1 2,3,4,1,,而Cache每組只有3行,那么,不管是FIFO,還是LRU算法,其命中率都為0。這種現(xiàn)象稱為顛簸(Thrashing / PingPong)。該算法具體實現(xiàn)時,并不是通過移動塊來實現(xiàn)的,而是通過給每個cache行設定一個計數(shù)器,根據(jù)計數(shù)值來記錄這些主存塊的使用情況。這個計數(shù)值稱為LRU位。計數(shù)器變化規(guī)則:每組4行時,計數(shù)器有2位。計數(shù)值越小則說明越被常用。未命中且該組未滿時,新裝入行計數(shù)器置為0,其余全加1。命中時,被訪問行的計數(shù)器置0,比其低的計數(shù)器加1,其余不變。未命中且該組已滿時,計數(shù)值為3的那一行中的主存塊被淘汰,新行計數(shù)器置為0,其余加1。 2 3

52、2 1 5 2 4 5 3 2 5 224350321243513202435031224353201241521302415103223150321231523102311202301231020例4-10 假定計算機系統(tǒng)有一個容量為32Kx16位的主存,按字編址,每字16位,且有一個數(shù)據(jù)區(qū)為4K字的4路組相聯(lián)Cache,主存和Cache之間的數(shù)據(jù)交換塊的大小為64字。假定Cache開始為空,處理器順序地從存儲單元0、1、4351中取數(shù),一共重復10次。設Cache的速度是主存的10倍。采用LRU算法。試分析Cache的結(jié)構(gòu)和主存地址的劃分。說明采用Cache后速度提高了多少?解: 主存:3

53、2K字=215字= 29塊 x 26字 / 塊 Cache:4K字=212字= 24組 x 22行 / 組 x 26 字 / 行 主存地址劃分為:塊內(nèi)標志位組號6454352/64=68,所以訪問過程實際上是對前68塊連續(xù)訪問10次。第0組第1組第2組第3組第4組第15組第0 行第1 行第2 行第3 行0123415161718192031323334353647484950515263LRU算法:第一次循環(huán),對于每一塊只有第一字未命中,其余都命中;以后9次循環(huán),有20塊的第一字未命中,其余都命中.所以,命中率h為 (43520-68-9x20)/43520=99.43%加速比:tm/ta=t

54、m/(tc+(1-h)tm)=10/(1+10 x(1-h)=9.5倍0/641/652/663/670/64/481/65/492/66/503/67/5132/1633/1734/1835/1948/3249/3350/3451/3516/017/118/219/316/0/6417/1/6518/2/6619/3/674.6.6 Cache性能評估(自學)4.6.7影響 Cache性能的因素(自學)4.7 虛擬存儲器4.4.1 虛擬存儲器1. 什么是虛擬存儲器 容量非常大的存儲器的邏輯模型借助于磁盤等外部(輔助)存儲器來擴大主存容量以透明的方式給用戶提供了 一個比實際主存空間大得多的程序

55、地址空間緩存CPU主存輔存10 ns20 ns200 nsms虛擬存儲技術(shù)的實質(zhì)編程空間編程空間用戶程序1用戶程序k磁盤物理空間用戶程序1用戶程序k用戶程序2主存物理空間用戶程序1片段用戶程序2片段用戶程序k片段操作系統(tǒng)程序虛擬(邏輯)空間僅裝入當前所需的代碼和數(shù)據(jù)全部裝入發(fā)生缺頁時,調(diào)入新頁虛擬(邏輯)空間 主存-外存層次和cache-主存層次用的地址變換映射方法和替換策略是相同的,都基于程序局部性原理2. 主存-外存(輔存)層次的基本信息傳送單位段頁段頁 段是按照程序的邏輯結(jié)構(gòu)劃分成的多個相對獨立部分 頁是主存物理空間中劃分出來的等長的固定區(qū)域 段頁式管理采用分段和分頁結(jié)合的方法它們遵循的

56、原則是: 程序中最近常用的部分駐留在高速的存儲器中一旦這部分變得不常用了,把它們送回到 低速的存儲器中這種換入換出是由硬件或操作系統(tǒng)完成的,對用戶是 力圖使存儲系統(tǒng)的性能接近高速存儲器,價格接近低速存儲器透明的操作系統(tǒng)中詳細介紹分頁(Paging)基本思想:內(nèi)存被分成固定長且比較小的存儲塊(頁框、實頁、物理頁) 頁的大小通常是0.5KB的整數(shù)倍,在一般計算機系統(tǒng)中, 頁的大小為2KB至64KB每個進程也被劃分成固定長的程序塊(頁、虛頁、邏輯頁)程序塊可裝到存儲器中可用的存儲塊中無需用連續(xù)頁框來存放一個進程操作系統(tǒng)為每個進程生成一個頁表通過頁表(page table)實現(xiàn)邏輯地址向物理地址轉(zhuǎn)換(

57、Address Mapping )邏輯地址(Logical Address):程序中的指令所用的地址,也稱為虛擬地址物理地址(physical或Memory Address):存放指令或數(shù)據(jù)的實際內(nèi)存地址,也稱為實地址、主存地址0123頁號主存頁號0123頁表用戶程序主存儲器和CPU(Cache)和主存層次相比:頁大小比Cache中Block大得多!2KB64KB采用全相聯(lián)映射邏輯地址物理地址通過軟件來處理“缺頁” 采用Write Back寫策略頁表中的修改位用來表示相應的實頁是否被修改地址轉(zhuǎn)換用硬件實現(xiàn)主存-磁盤層次bNVNrnvnr全相聯(lián)映象的地址變換方法(頁表法、目錄表法)頁表法由于多用

58、戶虛存空間比主存空間大得多,虛頁數(shù)比實頁數(shù)多得多。地址變換所需的頁表存儲容量是由虛頁數(shù)決定的,故而只能將容量較大的頁表放在主存中。主存的工作速度較低,所以地址變換費時較多每一道程序都有一個最大為2Nv行的頁表,主存只有2nv個實頁位置,N道程序頁表的全部N 2Nv行中,最多只有2nv行的裝入位為1。頁表的空間利用率低XNVNr用戶標志U 用戶虛頁號 頁內(nèi)位移多用戶虛地址多用戶用戶虛頁號某道程序的地址U轉(zhuǎn)換成基號bx0bN-1頁表基址寄存器查到查不到+nv1xx+nvnr實頁號 頁內(nèi)位移主存地址寄存器X道程序的內(nèi)頁表Y道程序的內(nèi)頁表nv目錄表法用目錄表來代替頁表,目錄表的存儲容量由實頁數(shù)決定,因

59、此,目錄表所需的存儲容量較小。用一個容量較小的高速存儲器(相聯(lián)存儲器)來存放目錄表,從而加快查表的速度全相聯(lián)映象的地址變換方法(頁表法、目錄表法) 只有當一個虛頁裝入主存的一個實頁位置時,才在目錄表中占有一行,因此目錄表的行數(shù)(存儲字數(shù))是主存的實頁數(shù)多用戶虛頁號修改位實頁號其他標志 NVnv 地址變換時,以多用戶虛地址中的多用戶虛頁號作為關(guān)鍵字段對目錄表中所有存儲字多用戶虛頁號進行并行查找相聯(lián)存儲器(AMAssociative Memory) 又稱為按內(nèi)容訪問存儲器 相聯(lián)存儲器除具備一般存儲器的讀寫功能外,還能實現(xiàn)對存儲器中所有存儲字的并行查找操作。相聯(lián)存儲器AM中有一個比較寄存器C,用來存

60、放待查找的一個存儲字的內(nèi)容,AM中還有一個屏蔽寄存器M,用來存放一個屏蔽字的內(nèi)容,屏蔽字用來屏蔽掉寄存器C中不需要查找的某些位。由C和M共同決定對對相聯(lián)存儲器的所有存儲字進行并行查找,因此,查找的速度比隨機訪問存儲器(RAM)快得多,是一般RAM的10倍。相聯(lián)存儲器的缺點就是造價太高,因此,只適用于容量需求較小的存儲情況b+Nvnv基號+用戶虛頁號 實頁號 其他信息2nv行bNvNr目錄表比較nvnr(Nr)查不到,頁面失效查到某用戶虛地址主存實地址頁面失效時,從磁盤存儲器中把要訪問的那個頁調(diào)入主存 提高虛擬存儲器等效訪存速度的措施快慢表 由于程序在執(zhí)行過程中具有局部性,也就是說,在一段時間內(nèi)

溫馨提示

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

最新文檔

評論

0/150

提交評論