




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章第七章 存儲器層次結(jié)構(gòu)存儲器層次結(jié)構(gòu)7.1 存儲器概述7.2 主存儲器7.3 高速緩沖存儲器7.4 Cache性能的評估與提高7.5 虛擬存儲器7.1 7.1 概概 述述一、存儲器的分類一、存儲器的分類1 1、按存儲介質(zhì)分:、按存儲介質(zhì)分: 半導(dǎo)體存儲器(半導(dǎo)體存儲器(TTLTTL、MOSMOS) 磁表面存儲器磁表面存儲器 光盤存儲器光盤存儲器 2 2、按存取方式分:、按存取方式分: 隨機(jī)訪問存儲器(隨機(jī)訪問存儲器(RAMRAM、ROMROM) 串行訪問存儲器(磁盤、磁帶)串行訪問存儲器(磁盤、磁帶)3 3、按在計算機(jī)中的作用分:、按在計算機(jī)中的作用分: 主存、輔存、緩存主存、輔存、緩存
2、RAMROM磁盤、磁帶、光盤磁盤、磁帶、光盤 高速緩沖存儲器(高速緩沖存儲器(Cache)存存儲儲器器主存儲器主存儲器輔助存儲器輔助存儲器MROMPROMEPROMEEPROM靜態(tài)靜態(tài) RAM動態(tài)動態(tài) RAM易失易失非非易易失失高高低低小小大大快快慢慢輔存輔存寄存器寄存器緩存緩存主存主存磁盤磁盤光盤光盤磁帶磁帶光盤光盤磁帶磁帶速度速度容量容量 價格價格 位位1. 存儲器三個主要特性的關(guān)系存儲器三個主要特性的關(guān)系 二、存儲器的層次結(jié)構(gòu)二、存儲器的層次結(jié)構(gòu)CPUCPU主機(jī)主機(jī)緩存緩存CPU主存主存輔存輔存2. 緩存緩存 主存層次和主存主存層次和主存 輔存層次輔存層次緩存緩存主存主存輔存輔存主存主存
3、10 ns20 ns200 nsms(速度)(速度)(容量)(容量)7.2主存儲器v1、主存的主要性能指標(biāo)、主存的主要性能指標(biāo)v2、主存和、主存和cpu聯(lián)系聯(lián)系v3、半導(dǎo)體讀寫存儲器、半導(dǎo)體讀寫存儲器v4、只讀存儲器、只讀存儲器v5、存儲器與、存儲器與cpu的連接的連接 S(容量)(容量)=W(存儲字?jǐn)?shù))(存儲字?jǐn)?shù))*L(字長(位)(字長(位) 難點:對于一定容量的存儲器,按字節(jié)或字尋難點:對于一定容量的存儲器,按字節(jié)或字尋址訪問范圍是不同的。址訪問范圍是不同的。 例:設(shè)地址線例:設(shè)地址線24根:根: 按字節(jié)尋址按字節(jié)尋址 224=16M 若字長若字長16位:位: 按字尋址按字尋址 8M 若字
4、長若字長32位:位: 按字尋址按字尋址 4M一、一、 主存的技術(shù)指標(biāo)主存的技術(shù)指標(biāo)(1) 存儲容量存儲容量主存主存 存放二進(jìn)制代碼的總位數(shù)存放二進(jìn)制代碼的總位數(shù) (2) 存儲速度存儲速度一、一、 主存的技術(shù)指標(biāo)主存的技術(shù)指標(biāo) 讀出時間讀出時間 寫入時間寫入時間 存儲器的存儲器的 訪問時間訪問時間 存取時間存取時間 存取周期存取周期 讀周期讀周期 寫周期寫周期 連續(xù)兩次獨立的存儲器操作連續(xù)兩次獨立的存儲器操作(讀或?qū)懀┧璧模ㄗx或?qū)懀┧璧?最小間隔時間最小間隔時間 即單位時間內(nèi)存儲器存取的信息量,用字即單位時間內(nèi)存儲器存取的信息量,用字/ /秒,字節(jié)秒,字節(jié)/ /秒,秒,或位或位/ /秒為單位
5、進(jìn)行表示。秒為單位進(jìn)行表示。 例:存取周期為例:存取周期為500ns500ns,每個存取周期可訪問,每個存取周期可訪問1616位數(shù)據(jù),位數(shù)據(jù), 則存儲器帶寬為:則存儲器帶寬為: 16bit/500ns=32M 16bit/500ns=32M位位/ /秒秒 存儲器帶寬決定了以存儲器為中心的機(jī)器獲得信息的存儲器帶寬決定了以存儲器為中心的機(jī)器獲得信息的傳輸速度,它是改善機(jī)器瓶頸的一個關(guān)鍵因素。為了提高傳輸速度,它是改善機(jī)器瓶頸的一個關(guān)鍵因素。為了提高存儲器帶寬,可采用如下措施:存儲器帶寬,可采用如下措施: 1 1、縮短存取周期、縮短存取周期 2 2、增加存儲字長,使每個存取周期可讀、增加存儲字長,使
6、每個存取周期可讀/ /寫更多位寫更多位 3 3、增加存儲體,使用存儲器分段的交叉存取技術(shù)、增加存儲體,使用存儲器分段的交叉存取技術(shù)(3) 存儲器的帶寬存儲器的帶寬二、二、 主存和主存和 CPU 的聯(lián)系的聯(lián)系MDRMARCPU主主 存存讀讀數(shù)據(jù)總線數(shù)據(jù)總線地址總線地址總線寫寫芯片容量芯片容量三、半導(dǎo)體讀寫存儲器三、半導(dǎo)體讀寫存儲器1. 半導(dǎo)體存儲芯片的基本結(jié)構(gòu)半導(dǎo)體存儲芯片的基本結(jié)構(gòu)譯譯碼碼驅(qū)驅(qū)動動存存儲儲矩矩陣陣讀讀寫寫電電路路1K4位位16K1位位8K8位位片選線片選線讀讀/寫控制線寫控制線地地址址線線數(shù)數(shù)據(jù)據(jù)線線地址線地址線(單向)(單向)數(shù)據(jù)線數(shù)據(jù)線(雙向)(雙向)104141138二、
7、半導(dǎo)體存儲芯片簡介二、半導(dǎo)體存儲芯片簡介1. 半導(dǎo)體存儲芯片的基本結(jié)構(gòu)半導(dǎo)體存儲芯片的基本結(jié)構(gòu)譯譯碼碼驅(qū)驅(qū)動動存存儲儲矩矩陣陣讀讀寫寫電電路路片選線片選線讀讀/寫控制線寫控制線地地址址線線數(shù)數(shù)據(jù)據(jù)線線片選線片選線讀讀/寫控制線寫控制線(低電平寫(低電平寫 高電平讀)高電平讀)(允許讀)(允許讀)CSCEWE(允許寫)(允許寫)WEOE存儲芯片片選線的作用存儲芯片片選線的作用用用 16K 1位位 的存儲芯片組成的存儲芯片組成 64K 8位位 的存儲器的存儲器 32片片當(dāng)?shù)刂窞楫?dāng)?shù)刂窞?65 535 時,此時,此 8 片的片選有效片的片選有效 8片片16K 1位位 8片片16K 1位位 8片片16
8、K 1位位 8片片16K 1位位0,015,015,70,7 讀讀/寫控制電路寫控制電路 地地址址譯譯碼碼器器 字線字線015168矩陣矩陣07D07D 位線位線 讀讀 / 寫選通寫選通A3A2A1A02. 半導(dǎo)體存儲芯片的譯碼驅(qū)動方式半導(dǎo)體存儲芯片的譯碼驅(qū)動方式(1) 線選法線選法00000,00,7007D07D 讀讀 / 寫寫選通選通 讀讀/寫控制電路寫控制電路 A3A2A1A0A40,310,031,031,31 Y 地址譯碼器地址譯碼器 X地地址址譯譯碼碼器器 3232 矩陣矩陣A9I/OA8A7A56AY0Y31X0X31D讀讀/寫寫(2) 重合法重合法00000000000,03
9、1,00,31I/OD0,0讀讀3、 靜態(tài)靜態(tài) RAM 芯片舉例芯片舉例(1)Intel 2114 外特性外特性存儲容量存儲容量1K4 位位I/O1I/O2I/O3I/O4A0A8A9WECSVCCGNDIntel 2114ACSDOUT地址有效地址有效地址失效地址失效片選失效片選失效數(shù)據(jù)有效數(shù)據(jù)有效數(shù)據(jù)穩(wěn)定數(shù)據(jù)穩(wěn)定高阻高阻(2)靜態(tài))靜態(tài) RAM 讀讀 時序時序 tAtCOtOHAtOTDtRC片選有效片選有效讀周期讀周期 t tRCRC 地址有效地址有效 下一次地址有效下一次地址有效讀時間讀時間 t tA A 地址有效地址有效數(shù)據(jù)穩(wěn)定數(shù)據(jù)穩(wěn)定 t tCOCO 片選有效片選有效數(shù)據(jù)穩(wěn)定數(shù)據(jù)穩(wěn)
10、定t tOTDOTD 片選失效片選失效輸出高阻輸出高阻t tOHAOHA 地址失效后的地址失效后的數(shù)據(jù)維持時間數(shù)據(jù)維持時間ACSWEDOUTDIN (3) 靜態(tài)靜態(tài) RAM (2114) 寫寫 時序時序 tWCtWtAWtDWtDHtWR寫周期寫周期 t tWCWC 地址有效地址有效下一次地址有下一次地址有效效寫時間寫時間 t tW W 寫命令寫命令 WEWE 的有效時間的有效時間t tAWAW 地址有效地址有效片選有效的滯后時間片選有效的滯后時間t tWRWR 片選失效片選失效下一次地址有效下一次地址有效t tDWDW 數(shù)據(jù)穩(wěn)定數(shù)據(jù)穩(wěn)定 WE WE 失效失效t tDHDH WE WE 失效后
11、的數(shù)據(jù)維持時間失效后的數(shù)據(jù)維持時間時序與控制時序與控制 行時鐘行時鐘列時鐘列時鐘寫時鐘寫時鐘 WERASCAS A6A0存儲單元陣列存儲單元陣列基準(zhǔn)單元基準(zhǔn)單元行行譯譯碼碼列譯碼器列譯碼器再生放大器再生放大器列譯碼器列譯碼器讀讀出出放放大大基準(zhǔn)單元基準(zhǔn)單元存儲單元陣列存儲單元陣列行行譯譯碼碼 I/O緩存器緩存器數(shù)據(jù)輸出數(shù)據(jù)輸出驅(qū)動驅(qū)動數(shù)據(jù)輸入數(shù)據(jù)輸入寄存器寄存器 DINDOUT行地址行地址緩存器緩存器列地址列地址緩存器緩存器 4、動態(tài)動態(tài)RAM 芯片舉例芯片舉例(1) RAM 4116 (16K 1 1位位) 外特性外特性 讀放大器讀放大器 讀放大器讀放大器 讀放大器讀放大器063641271
12、28 根行線根行線Cs01271128列列選選擇擇讀讀/寫線寫線數(shù)據(jù)輸入數(shù)據(jù)輸入I/O緩沖緩沖輸出驅(qū)動輸出驅(qū)動DOUTDINCs (2)4116 (16K 1位位) 芯片芯片 讀讀 原理原理 讀放大器讀放大器 讀放大器讀放大器 讀放大器讀放大器630 0 0I/O緩沖緩沖輸出驅(qū)動輸出驅(qū)動OUTD 讀放大器讀放大器 讀放大器讀放大器 讀放大器讀放大器06364127128 根行線根行線Cs01271128列列選選擇擇讀讀/寫線寫線數(shù)據(jù)輸入數(shù)據(jù)輸入I/O緩沖緩沖輸出驅(qū)動輸出驅(qū)動DOUTDINCs 4116 (16K1位位) 芯片芯片 寫寫 原理原理數(shù)據(jù)輸入數(shù)據(jù)輸入I/O緩沖緩沖I/O緩沖緩沖DIN
13、讀出放大器讀出放大器 讀放大器讀放大器630 (3) 動態(tài)動態(tài) RAM 時序時序 行、列地址分開傳送行、列地址分開傳送寫時序?qū)憰r序行地址行地址 RAS 有效有效寫允許寫允許 WE 有效有效(高高)數(shù)據(jù)數(shù)據(jù) DOUT 有效有效數(shù)據(jù)數(shù)據(jù) DIN 有效有效讀時序讀時序行地址行地址 RAS 有效有效寫允許寫允許 WE 有效有效(低低)列地址列地址 CAS 有效有效列地址列地址 CAS 有效有效 5. 動態(tài)動態(tài) RAM 和靜態(tài)和靜態(tài) RAM 的比較的比較DRAMSRAM存儲原理存儲原理集成度集成度芯片引腳芯片引腳功耗功耗價格價格速度速度刷新刷新電容電容觸發(fā)器觸發(fā)器高高低低少少多多小小大大低低高高慢慢快快
14、有有無無主存主存緩存緩存 四、只讀存儲器(四、只讀存儲器(ROM) 1. 掩模掩模 ROM ( MROM ) 行列選擇線交叉處有行列選擇線交叉處有 MOS 管為管為“1”行列選擇線交叉處無行列選擇線交叉處無 MOS 管為管為“0” 2. PROM (一次性編程一次性編程) VCC行線行線列線列線熔絲熔絲熔絲斷熔絲斷為為 “0”為為 “1”熔絲未斷熔絲未斷 3. EPROM (多次性編程多次性編程 ) (1) N型溝道浮動?xùn)判蜏系栏訓(xùn)?MOS 電路電路G 柵極柵極S 源源D 漏漏紫外線全部擦洗紫外線全部擦洗D 端加正電壓端加正電壓形成浮動?xùn)判纬筛訓(xùn)臩 與與 D 不導(dǎo)通為不導(dǎo)通為 “0”D 端
15、不加正電壓端不加正電壓不形成浮動?xùn)挪恍纬筛訓(xùn)臩 與與 D 導(dǎo)通為導(dǎo)通為 “1”SGDN+N+P基片基片GDS浮動?xùn)鸥訓(xùn)臩iO2+ + + + +_ _ _ 控制邏輯控制邏輯Y 譯碼譯碼X 譯譯碼碼數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū)Y 控制控制128 128存儲矩陣存儲矩陣PD/ProgrCSA10A7A6A0DO0DO7112A7A1A0VSSDO2DO0DO127162413VCCA8A9VPPCSA10PD/ProgrDO3DO7(2) 2716 EPROM 的邏輯圖和引腳的邏輯圖和引腳PD/ProgrPD/Progr功率下降功率下降 / 編程輸入端編程輸入端 讀出時讀出時 為為 低電平低電平 4.
16、 EEPROM (多次性編程多次性編程 ) 電可擦寫電可擦寫局部擦寫局部擦寫全部擦寫全部擦寫5. Flash Memory (閃速型存儲器閃速型存儲器) 比比 EEPROM快快EPROM價格便宜價格便宜 集成度高集成度高EEPROM電可擦洗重寫電可擦洗重寫具備具備 RAM 功能功能 用用 1K 4位位 存儲芯片組成存儲芯片組成 1K 8位位 的存儲器的存儲器?片?片 五、存儲器與五、存儲器與 CPU 的連接的連接 1. 存儲器容量的擴(kuò)展存儲器容量的擴(kuò)展 (1) 位擴(kuò)展位擴(kuò)展(增加存儲字長)(增加存儲字長)10根地址線根地址線8根數(shù)據(jù)線根數(shù)據(jù)線DDD0479AA021142114CSWE2片片
17、(2) 字?jǐn)U展(增加存儲字的數(shù)量)字?jǐn)U展(增加存儲字的數(shù)量) 用用 1K 8位位 存儲芯片組成存儲芯片組成 2K 8位位 的存儲器的存儲器11根地址線根地址線8根數(shù)據(jù)線根數(shù)據(jù)線?片?片2片片1K 8 8位位1K 8 8位位D7D0WEA1A0A9CS0A10 1CS1 (3) 字、位擴(kuò)展字、位擴(kuò)展用用 1K 4位位 存儲芯片組成存儲芯片組成 4K 8位位 的存儲器的存儲器8根數(shù)據(jù)線根數(shù)據(jù)線12根地址線根地址線WEA8A9A0.D7D0A11A10CS0CS1CS2CS3片選片選譯碼譯碼1K41K41K41K41K41K41K41K4?片?片8片片 2. 存儲器與存儲器與 CPU 的連接的連接
18、(1) 地址線的連接地址線的連接(2) 數(shù)據(jù)線的連接數(shù)據(jù)線的連接(3) 讀讀/寫命令線的連接寫命令線的連接(4) 片選線的連接片選線的連接(5) 合理選擇存儲芯片合理選擇存儲芯片(6) 其他其他 時序、負(fù)載時序、負(fù)載例:某機(jī)器字長是例:某機(jī)器字長是16位,位,cpu可輸出可輸出20條地址條地址線,線,16條數(shù)據(jù)線,一條控制線條數(shù)據(jù)線,一條控制線 we .實際使用實際使用主存空間為主存空間為64K*16位。由位。由16k*8位的位的ROM芯芯片片4片構(gòu)成片構(gòu)成32K*16位的空間;由位的空間;由K*16位的芯片片構(gòu)成位的芯片片構(gòu)成32K*16位的位的空間空間要求畫出與主存之間的連線圖,要求畫出與
19、主存之間的連線圖,并說明實際存儲器中并說明實際存儲器中ROM和和RAM的地址范圍。的地址范圍。六、提高訪存速度的措施六、提高訪存速度的措施 采用高速器件采用高速器件 調(diào)整主存結(jié)構(gòu)調(diào)整主存結(jié)構(gòu)1. 單體多字系統(tǒng)單體多字系統(tǒng) W位位W位位W位位W位位W位位 地址寄存器地址寄存器 主存控制器主存控制器. . . . . . 單字長寄存器單字長寄存器 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 存儲體存儲體 采用層次結(jié)構(gòu)采用層次結(jié)構(gòu) Cache 主存主存 增加存儲器的帶寬增加存儲器的帶寬 加長存儲器的字長加長存儲器的字長2. 多體并行系統(tǒng)多體并行系統(tǒng)(1) 高位交叉高位交叉 M0M1M2M3體內(nèi)地址體內(nèi)地址體號體號體號體號
20、地址地址00 000000 000100 111101 000001 000101 111110 000010 000110 111111 000011 000111 1111順序編址順序編址 各個體并行工作各個體并行工作M0地址地址01n1M1nn+12n1M22n2n+13n1M33n3n+14n1地址譯碼地址譯碼體內(nèi)地址體內(nèi)地址體號體號體號體號(1) 高位交叉高位交叉 M0M1M2M3體號體號體內(nèi)地址體內(nèi)地址地址地址0000 000000 010000 100000 110001 000001 010001 100001 111111 001111 011111 101111 11(2)
21、 低位交叉低位交叉各個體輪流編址各個體輪流編址M0地址地址044n4M1154n3M2264n2M3374n1地址譯碼地址譯碼 體號體號體內(nèi)地址體內(nèi)地址 體號體號(2) 低位交叉低位交叉 各個體輪流編址各個體輪流編址低位交叉的特點低位交叉的特點在不改變存取周期的前提下,增加存儲器的帶寬在不改變存取周期的前提下,增加存儲器的帶寬時間時間 單體單體訪存周期訪存周期 單體單體訪存周期訪存周期啟動存儲體啟動存儲體 0啟動存儲體啟動存儲體 1啟動存儲體啟動存儲體 2啟動存儲體啟動存儲體 37.3 7.3 高速緩沖存儲器高速緩沖存儲器CacheCache 問題的提出問題的提出避免避免 CPU “空等空等”
22、 現(xiàn)象現(xiàn)象CPU 和主存(和主存(DRAM)的速度差異的速度差異緩存緩存CPU主存主存容量小容量小速度高速度高容量大容量大速度低速度低程序訪問的局部性原理程序訪問的局部性原理一、局部性原理一、局部性原理 CPU CPU從主存取指令或取數(shù)據(jù),在一定時間內(nèi),只是對主存從主存取指令或取數(shù)據(jù),在一定時間內(nèi),只是對主存局部地址區(qū)域的訪問,稱為程序訪問的局部性原理。分為時間局部地址區(qū)域的訪問,稱為程序訪問的局部性原理。分為時間局部性和空間局部性兩種:局部性和空間局部性兩種:1 1、時間局部性、時間局部性 如果一個數(shù)據(jù)項被引用,在不久的將來它很可能再次被引如果一個數(shù)據(jù)項被引用,在不久的將來它很可能再次被引用
23、。例如:循環(huán)程序中某個變量的引用。用。例如:循環(huán)程序中某個變量的引用。2 2、空間局部性、空間局部性 如果一個數(shù)據(jù)項被引用,那么與它地址相近的數(shù)據(jù)項可能如果一個數(shù)據(jù)項被引用,那么與它地址相近的數(shù)據(jù)項可能很快也會被引用。例如:數(shù)組處理。很快也會被引用。例如:數(shù)組處理。 基于程序訪問的局部性原理,使得存儲器層次結(jié)構(gòu)系統(tǒng)變基于程序訪問的局部性原理,使得存儲器層次結(jié)構(gòu)系統(tǒng)變得可行。得可行。 由于每次數(shù)據(jù)只能在相鄰的兩級存儲器中進(jìn)行交換,因此由于每次數(shù)據(jù)只能在相鄰的兩級存儲器中進(jìn)行交換,因此存儲器管理是以兩級存儲器為單位進(jìn)行的。存儲器管理是以兩級存儲器為單位進(jìn)行的。 相鄰兩級存儲器之間信息交換的最小單位
24、稱為塊(相鄰兩級存儲器之間信息交換的最小單位稱為塊(blockblock) 數(shù)據(jù)傳輸CPU兩級存儲器層次結(jié)構(gòu)兩級存儲器層次結(jié)構(gòu)二、命中與缺失二、命中與缺失 兩級存儲器可以分為高層存儲器和低層存儲器,如果兩級存儲器可以分為高層存儲器和低層存儲器,如果CPUCPU要訪問的字塊已經(jīng)在高層存儲器中,就稱為命中(要訪問的字塊已經(jīng)在高層存儲器中,就稱為命中(hithit),反),反之稱為缺失(之稱為缺失(missmiss)。)。 存儲器訪問命中的概率稱為存儲器訪問命中的概率稱為命中率命中率(hit ratehit rate)。)。 缺失率缺失率(miss ratemiss rate)則是指存儲器訪問失效的
25、概率。)則是指存儲器訪問失效的概率。 命中時間命中時間是訪問高層存儲器所需時間,包括了判斷本次是訪問高層存儲器所需時間,包括了判斷本次訪問是命中還是失效的時間。訪問是命中還是失效的時間。 缺失損失包括了用低層存儲器中相應(yīng)的塊替換高層存儲缺失損失包括了用低層存儲器中相應(yīng)的塊替換高層存儲器中的塊的時間以及將所訪問的數(shù)據(jù)傳送到處理器的時間。器中的塊的時間以及將所訪問的數(shù)據(jù)傳送到處理器的時間。 因為高層存儲器與低層存儲器相比容量小、速度快,所因為高層存儲器與低層存儲器相比容量小、速度快,所以命中時間要遠(yuǎn)低于缺失損失,也就是說以命中時間要遠(yuǎn)低于缺失損失,也就是說缺失損失對存儲器缺失損失對存儲器性能的影響
26、更大。性能的影響更大。 根據(jù)時間局部性,我們應(yīng)盡可能地將最近用過的數(shù)據(jù)和指根據(jù)時間局部性,我們應(yīng)盡可能地將最近用過的數(shù)據(jù)和指令存放在靠近令存放在靠近CPUCPU的存儲器中。的存儲器中。 根據(jù)空間局部性,將與最近使用過的數(shù)據(jù)和指令相鄰近的根據(jù)空間局部性,將與最近使用過的數(shù)據(jù)和指令相鄰近的數(shù)據(jù)和指令也盡可能存放在高層存儲器中。數(shù)據(jù)和指令也盡可能存放在高層存儲器中。 在存儲器層次結(jié)構(gòu)中,靠近在存儲器層次結(jié)構(gòu)中,靠近CPUCPU的存儲器容量雖小但速度更的存儲器容量雖小但速度更快。介于快。介于CPUCPU與主存之間的高速緩沖存儲器稱為與主存之間的高速緩沖存儲器稱為CacheCache。 在下圖中我們可以
27、看到在下圖中我們可以看到CacheCache中有字串中有字串X1,X2X(n-1),X1,X2X(n-1),當(dāng)當(dāng)訪問字訪問字XnXn時,將發(fā)生缺失,這時需要將主存中的字時,將發(fā)生缺失,這時需要將主存中的字XnXn調(diào)入到調(diào)入到CacheCache中。中。X3Xn C1Xn C2X1X4X3Xn C1Xn C2X1X4XnX2X2A.訪問Xn之前B.訪問Xn之后三、主存與三、主存與CacheCache的地址映射的地址映射 使用使用CacheCache有兩個問題需要解決:有兩個問題需要解決: 第一,怎樣知道一個數(shù)據(jù)項是否在第一,怎樣知道一個數(shù)據(jù)項是否在CacheCache中?中? 第二,如果在怎樣找
28、到它?第二,如果在怎樣找到它? 如果每個字都放在如果每個字都放在CacheCache中確定的位置,那么如果它在中確定的位置,那么如果它在CacheCache中,就知道如何找到它。這就是地址映射所解決的問題。中,就知道如何找到它。這就是地址映射所解決的問題。1 1、直接映射(多對一映射)、直接映射(多對一映射) 最簡單的解決方法是采用直接映射(最簡單的解決方法是采用直接映射(direct mappeddirect mapped),),即主存中的每個信息塊只能對應(yīng)即主存中的每個信息塊只能對應(yīng)CacheCache中的一個特定塊??梢灾械囊粋€特定塊??梢杂萌缦乱?guī)則建立起主存與用如下規(guī)則建立起主存與Ca
29、cheCache之間的對應(yīng)關(guān)系之間的對應(yīng)關(guān)系: :CacheCache單元地址單元地址 =( =(主存中的塊地址主存中的塊地址ma) modma) mod(CacheCache中的塊數(shù)中的塊數(shù)k k)直接映射直接映射 000001010011100101110111CacheMainMemory0000100101010010110110001101011100111101 多對一映射,多個內(nèi)存塊競爭多對一映射,多個內(nèi)存塊競爭同一同一CacheCache塊位置,易產(chǎn)生沖突而造塊位置,易產(chǎn)生沖突而造成頻繁的塊替換,故效率不高,但成頻繁的塊替換,故效率不高,但實現(xiàn)機(jī)制簡單。實現(xiàn)機(jī)制簡單。2 2、直
30、接映射方式下、直接映射方式下CacheCache塊的構(gòu)成塊的構(gòu)成 因為有多個存儲器地址對應(yīng)到同一個因為有多個存儲器地址對應(yīng)到同一個CacheCache塊上,所以是多塊上,所以是多對一關(guān)系,因此對一關(guān)系,因此CPUCPU在某一在某一CacheCache塊中訪問到的數(shù)據(jù)具體是哪一塊中訪問到的數(shù)據(jù)具體是哪一個內(nèi)存單元中的數(shù)據(jù)無法確定,為此,在每個個內(nèi)存單元中的數(shù)據(jù)無法確定,為此,在每個CacheCache塊中增加一塊中增加一個標(biāo)記項(個標(biāo)記項(tagtag),用來存放存儲器地址的高位。),用來存放存儲器地址的高位。 還需要一種方法判斷還需要一種方法判斷CacheCache塊中沒有數(shù)據(jù),例如:當(dāng)處理器
31、塊中沒有數(shù)據(jù),例如:當(dāng)處理器啟動時,啟動時,CacheCache是空的,而此時的標(biāo)記字段沒有意義,為此,在是空的,而此時的標(biāo)記字段沒有意義,為此,在每個每個CacheCache塊中再增加一個有效位字段,用來說明此塊中是否為塊中再增加一個有效位字段,用來說明此塊中是否為空,最后空,最后CacheCache塊的構(gòu)成如下:塊的構(gòu)成如下:有效位(1位)標(biāo)記位(30-m位)數(shù)據(jù)位(32位)NY10110101.01N000001010111四、訪問四、訪問CacheCache CPU CPU以以3232位的內(nèi)存地址訪問位的內(nèi)存地址訪問CacheCache,此內(nèi)存地址首先轉(zhuǎn),此內(nèi)存地址首先轉(zhuǎn)換成主存塊地址
32、,用主存塊地址的低換成主存塊地址,用主存塊地址的低m m位定位位定位CacheCache塊,若塊,若有效位為有效位為Y Y,將,將CacheCache塊中的標(biāo)記與主存塊地址的高(塊中的標(biāo)記與主存塊地址的高(30-m30-m)位比較,若相等,則命中,否則缺失。位比較,若相等,則命中,否則缺失。例:假設(shè)一個例:假設(shè)一個CacheCache的大小為的大小為8 8個字,采用直接映射方式。下個字,采用直接映射方式。下圖說明了該圖說明了該CacheCache如何響應(yīng)處理器的讀請求。假設(shè)如何響應(yīng)處理器的讀請求。假設(shè)CPUCPU需要訪需要訪問的主存塊地址序列為問的主存塊地址序列為2222、2626、2222、
33、2626、1616、3 3、1616、1818。主存地址訪問序列(十進(jìn)制)主存地址訪問序列(二進(jìn)制)Hit or missin Cache(11010two mod 8)010two(10110two mod 8)110two(11010two mod 8)010two(10000two mod 8)000two(00011two mod 8)011two(10000two mod 8)000two(10010two mod 8)010two(10110two mod 8)110two與主存相對應(yīng)的Cache塊索引號22262226163161810110two11010two10110two
34、11010two10000two00011two10000two10010twoMissMissHitHitMissMissHitMissC 處理完失效的地址(11010two)后Cache的狀態(tài)D 處理完失效的地址(10000two)后Cache的狀態(tài)IndexV TagData000001010011100101110111NNYNNNYN11twoMemory(11010two)10twoMemory(10110two)IndexV TagData000001010011100101110111YNYNNNYN11twoMemory(11010two)10twoMemory(10110t
35、wo)10twoMemory(10000two)E處理完失效的地址(00011two)后Cache的狀態(tài)IndexV TagData000001010011100101110111YNYYNNYN11twoMemory(11010two)10twoMemory(10110two)10twoMemory(10000two)00twoMemory(00011two)F 處理完失效的地址(10010two) 后Cache的狀態(tài)IndexV TagData000001010011100101110111YNYYNNYN10twoMemory(10010two)10twoMemory(10110two)
36、10twoMemory(10000two)00twoMemory(00011two)來自來自CPUCPU的主存物理地址由幾部分組成如下:的主存物理地址由幾部分組成如下: vv索引(下標(biāo)):用于選取索引(下標(biāo)):用于選取CacheCache中的單元。中的單元。 vv標(biāo)記:用于與標(biāo)記:用于與CacheCache中每一單元的標(biāo)志進(jìn)行比較。中每一單元的標(biāo)志進(jìn)行比較。 vvyteyte offset offset:字節(jié)偏移,由塊大小確定。:字節(jié)偏移,由塊大小確定。 在直接映射方式中,當(dāng)在直接映射方式中,當(dāng)CPUCPU給出一地址,首先由索引確給出一地址,首先由索引確定定CacheCache中的一單元,然后
37、地址標(biāo)志和該單元的單元標(biāo)記進(jìn)中的一單元,然后地址標(biāo)志和該單元的單元標(biāo)記進(jìn)行比較。若相同且行比較。若相同且CacheCache中的該單元已經(jīng)置了有效位,就命中的該單元已經(jīng)置了有效位,就命中,即要訪問的信息塊在中,即要訪問的信息塊在CacheCache中,否則缺失。中,否則缺失。2010ByteoffsetV alidTagDataIndex012102110221023TagIndex203231 3013 12 112 1032位 地 址數(shù) 據(jù)命 中CPU地址與地址與Cache結(jié)構(gòu)的關(guān)系結(jié)構(gòu)的關(guān)系 v下標(biāo)用于選取下標(biāo)用于選取CacheCache中的單元,假如下標(biāo)有中的單元,假如下標(biāo)有n n位,
38、則下位,則下標(biāo)可以有標(biāo)可以有2 2n n個值,因此個值,因此CacheCache中的單元數(shù)必須是以中的單元數(shù)必須是以2 2為為基數(shù)的指數(shù)基數(shù)的指數(shù)v在在MIPSMIPS機(jī)器結(jié)構(gòu)中,一個字由四個字節(jié)組成,因此機(jī)器結(jié)構(gòu)中,一個字由四個字節(jié)組成,因此CPUCPU地址的最后兩位用作塊偏移地址,用于從信息塊中選地址的最后兩位用作塊偏移地址,用于從信息塊中選取所需字節(jié)取所需字節(jié) vCacheCache的實際位數(shù)為:的實際位數(shù)為:CacheCache單元數(shù)單元數(shù)( (字塊大小字塊大小標(biāo)志位數(shù)標(biāo)志位數(shù)有效位數(shù)有效位數(shù)) ),以,以上機(jī)器的上機(jī)器的CacheCache實際位數(shù)為實際位數(shù)為2 2n n(32(32
39、(32(32n n2)2)1)= 1)= 2 2n n(63(63n)n)。例:例:CacheCache中的位數(shù)中的位數(shù) 假設(shè)一個直接映射的假設(shè)一個直接映射的CacheCache有有64KB64KB數(shù)據(jù),塊大小為一個數(shù)據(jù),塊大小為一個字,地址為字,地址為3232位,那么該位,那么該CacheCache共需要多少位?共需要多少位?【解答解答】 塊大小為塊大小為1 1個字,則個字,則CacheCache共有共有16K16K塊,塊, 那么那么CacheCache塊地址為塊地址為1414位,位, 每個每個CacheCache塊中標(biāo)記字段為塊中標(biāo)記字段為30-14=1630-14=16位,位, 有效位有
40、效位1 1位,位, 則每個則每個CacheCache塊共塊共1+16+32=491+16+32=49位位 Cache Cache大小總計為大小總計為16K16K49bit=784Kbit=98KB49bit=784Kbit=98KB 即:該即:該CacheCache實際大小約為實際大小約為CacheCache數(shù)據(jù)容量的數(shù)據(jù)容量的1.51.5倍倍五、五、 CacheCache讀缺失處理讀缺失處理 數(shù)據(jù)缺失和指令缺失的處理方法完全相同數(shù)據(jù)缺失和指令缺失的處理方法完全相同 ,處理指令,處理指令缺失缺失, ,流程如下所示:流程如下所示:1 1、取得實際指令地址(當(dāng)前、取得實際指令地址(當(dāng)前PC-4PC
41、-4)。)。2 2、指示主存根據(jù)取得的指令地址進(jìn)行讀操作并等待操作、指示主存根據(jù)取得的指令地址進(jìn)行讀操作并等待操作完成。完成。3 3、從指令地址中獲取索引號來找到、從指令地址中獲取索引號來找到CacheCache中相應(yīng)的單元,中相應(yīng)的單元,將從主存中讀出的數(shù)據(jù)寫入將從主存中讀出的數(shù)據(jù)寫入CacheCache,然后再將指令地址的,然后再將指令地址的高位寫入高位寫入CacheCache的單元標(biāo)志字段的單元標(biāo)志字段agag,并置有效位,并置有效位V V為。為。4 4、從、從CacheCache中讀取指令,重新開始指令的執(zhí)行。中讀取指令,重新開始指令的執(zhí)行。CacheCache實例介紹實例介紹 為了滿
42、足在一個時鐘周期內(nèi)同時得到指令位和數(shù)據(jù)位的這為了滿足在一個時鐘周期內(nèi)同時得到指令位和數(shù)據(jù)位的這種要求,種要求, DECStationDECStation 3100 3100工作站機(jī)器使用了兩個獨立的工作站機(jī)器使用了兩個獨立的CacheCache,指令,指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache。下圖展示了。下圖展示了DECStationDECStation 3100 3100工作站數(shù)據(jù)工作站數(shù)據(jù)CacheCache的結(jié)構(gòu)。的結(jié)構(gòu)。vv對這兩個對這兩個Cache(Cache(指令指令cachecache和數(shù)據(jù)和數(shù)據(jù)cache)cache)的讀操作如下:的讀操作如下: 1 1 給這兩
43、個緩存分別送入不同的地址。這兩個地址分別給這兩個緩存分別送入不同的地址。這兩個地址分別來自于來自于PC(PC(用于讀指令用于讀指令) )和和ALU(ALU(用于數(shù)據(jù)訪問用于數(shù)據(jù)訪問) )。 2 2 假如假如CacheCache命中,我們可以從數(shù)據(jù)線上直接讀取信息。命中,我們可以從數(shù)據(jù)線上直接讀取信息。如果發(fā)生失效,就把地址送入主存,將主存讀到的信息寫如果發(fā)生失效,就把地址送入主存,將主存讀到的信息寫入入CacheCache。1614B y teo ffse tV a lidT agD a taD ata1 63 216 bits3 2 b its3 1 3017 1 6 155 4 3 2 1
44、032位 地 址16K單 元命 中DECStationDECStation 3100 3100的的CacheCache結(jié)構(gòu)結(jié)構(gòu) v寫操作的情況不同。對存儲指令,我們僅將數(shù)據(jù)寫入寫操作的情況不同。對存儲指令,我們僅將數(shù)據(jù)寫入CacheCache而不改變主存的內(nèi)容會導(dǎo)致稱作而不改變主存的內(nèi)容會導(dǎo)致稱作CacheCache和主存的不一致。和主存的不一致。1 1、直寫、直寫 信息在被寫入信息在被寫入CacheCache的同時,利用的同時,利用CPUCPU和主存之間的數(shù)據(jù)通和主存之間的數(shù)據(jù)通路寫入主存的對應(yīng)塊中,稱作直寫(路寫入主存的對應(yīng)塊中,稱作直寫(write throughwrite throug
45、h)。)。2 2、回寫、回寫 除了直寫,另外一個策略就是回寫(除了直寫,另外一個策略就是回寫(write backwrite back),即信),即信息只寫入息只寫入CacheCache,僅當(dāng)被修改過的單元被替換出,僅當(dāng)被修改過的單元被替換出CacheCache時,才將時,才將它寫入主存的相應(yīng)存儲塊中。它寫入主存的相應(yīng)存儲塊中。DECStationDECStation 3100 3100的寫的寫CacheCache操作采用直寫策略,流程如下:操作采用直寫策略,流程如下: 1 1、使用地址的、使用地址的15152 2位作為索引號查找位作為索引號查找CacheCache中映射的單中映射的單元。元。
46、2 2、將地址的、將地址的31311616位作為標(biāo)志寫入位作為標(biāo)志寫入CacheCache特定單元的標(biāo)特定單元的標(biāo)志字段,把數(shù)據(jù)寫入該單元的數(shù)據(jù)位,置有效位為。志字段,把數(shù)據(jù)寫入該單元的數(shù)據(jù)位,置有效位為。3 3、將數(shù)據(jù)寫入主存中的相應(yīng)塊。、將數(shù)據(jù)寫入主存中的相應(yīng)塊。 采用直寫策略,每一次寫采用直寫策略,每一次寫CacheCache都將引起一次主存的寫操都將引起一次主存的寫操作。處理器將停下來等待寫主存完成,性能并不好。解決方法作。處理器將停下來等待寫主存完成,性能并不好。解決方法是設(shè)置寫緩沖器是設(shè)置寫緩沖器(write buffer)(write buffer)。 采用回寫策略,其性能很高,
47、特別是當(dāng)處理器產(chǎn)生寫操作采用回寫策略,其性能很高,特別是當(dāng)處理器產(chǎn)生寫操作的速度比主存完成寫操作的速度快時。但是這種策略要比直寫的速度比主存完成寫操作的速度快時。但是這種策略要比直寫復(fù)雜得多。復(fù)雜得多。六、空間局部性原理的利用六、空間局部性原理的利用 為了利用空間局部性原理,我們需要增加為了利用空間局部性原理,我們需要增加CacheCache的字塊容的字塊容量。當(dāng)發(fā)生缺失時,我們需要把引起缺失的字塊的相鄰幾個字量。當(dāng)發(fā)生缺失時,我們需要把引起缺失的字塊的相鄰幾個字也讀入也讀入CacheCache,因為鄰近的幾個字在將來可能會被用到。,因為鄰近的幾個字在將來可能會被用到。處理器采用前文提到的映射
48、公式從處理器采用前文提到的映射公式從CacheCache中找到需要訪問的塊:中找到需要訪問的塊: ( (主存中的塊地址主存中的塊地址) modulo) modulo(CacheCache中的塊數(shù))中的塊數(shù)) 主存中的塊地址可以通過字地址除以每一塊的字?jǐn)?shù)求得主存中的塊地址可以通過字地址除以每一塊的字?jǐn)?shù)求得(或是由字節(jié)地址除以每一塊的字節(jié)數(shù))。(或是由字節(jié)地址除以每一塊的字節(jié)數(shù))。1612ByteoffsetVTagDataHitData163216 bits128 bitsMux323232232Block offsetIndexTag3116 154 32 1 0CPU地址組成4 4K K單單
49、元元每個塊為四個字的每個塊為四個字的Cache 例:例: 某某CacheCache大小為大小為6464塊,塊大小為塊,塊大小為1616字節(jié)。求字節(jié)地字節(jié)。求字節(jié)地 址址12001200所映射所映射CacheCache的塊號。的塊號。 塊地址所映射的塊地址所映射的CacheCache中的塊號為(中的塊號為(75 mod 6475 mod 64)1111其中包括了位于:其中包括了位于:字節(jié)地址字節(jié)地址11111616字節(jié)地址字節(jié)地址111116+(16-1)16+(16-1)之間的所有地之間的所有地址址v多字塊和單字塊,處理讀多字塊和單字塊,處理讀CacheCache缺失是一樣的,總是將主存缺失是
50、一樣的,總是將主存中的整個字塊調(diào)入中的整個字塊調(diào)入CacheCache。vv多字塊和單字塊,處理寫多字塊和單字塊,處理寫CacheCache缺失不一樣。因為多字塊缺失不一樣。因為多字塊CacheCache的塊包含不止一個字,我們不能直接寫入標(biāo)志的塊包含不止一個字,我們不能直接寫入標(biāo)志TagTag和數(shù)和數(shù)據(jù)。據(jù)。 為解決這個問題,在執(zhí)行寫操作前要先比較標(biāo)志為解決這個問題,在執(zhí)行寫操作前要先比較標(biāo)志TagTag,如,如果命中就將數(shù)據(jù)直接寫入果命中就將數(shù)據(jù)直接寫入CacheCache。 假如缺失,就需要先訪問主存,讀取主存的塊(四個字)假如缺失,就需要先訪問主存,讀取主存的塊(四個字)把它寫入把它寫
51、入CacheCache,然后處理器再向,然后處理器再向CacheCache寫入引起寫缺失的字。寫入引起寫缺失的字。 與單字塊與單字塊CacheCache不同的是,多字塊不同的是,多字塊CacheCache寫之前需要先訪寫之前需要先訪問主存將引起寫失效的字所在的塊從內(nèi)存讀出然后寫入問主存將引起寫失效的字所在的塊從內(nèi)存讀出然后寫入CacheCache。v增加塊大小能有效地降低失效率,因為大塊較好地利用了空增加塊大小能有效地降低失效率,因為大塊較好地利用了空間局部性。間局部性。v當(dāng)塊的容量增大時,當(dāng)塊的容量增大時,CacheCache所能容納的塊數(shù)減少,映射到所能容納的塊數(shù)減少,映射到CacheCa
52、che的主存塊之間的競爭就非常激烈。因此當(dāng)?shù)闹鞔鎵K之間的競爭就非常激烈。因此當(dāng)CacheCache的大小的大小超過某個上限值時再繼續(xù)增加塊大小,反而會使失效率上升。超過某個上限值時再繼續(xù)增加塊大小,反而會使失效率上升。v因而可知:當(dāng)因而可知:當(dāng)CacheCache容量較小時,不能使塊取得過大。容量較小時,不能使塊取得過大。 塊大小與缺失率的關(guān)系:見塊大小與缺失率的關(guān)系:見P439 P439 v增加塊大小引起的另一個問題是增大了缺失損失增加塊大小引起的另一個問題是增大了缺失損失。 兩種方法可以適量減少缺失損失:兩種方法可以適量減少缺失損失:1、一種叫作預(yù)取法預(yù)取法(early restart)。
53、 CPU在接收到第一個它所需要的字時就開始執(zhí)行,而不是等到完整的塊到達(dá)時才執(zhí)行。適用于取指令,而對取數(shù)據(jù)則效用不大。2、另一種稱為申請字優(yōu)先法申請字優(yōu)先法(critical word first)。它讓主存首先傳輸處理器申請訪問的字,其余的字稍后再傳。但需要復(fù)雜的機(jī)制來重新組織存儲器。還可以通過提高存儲器帶寬減少缺失損失。還可以通過提高存儲器帶寬減少缺失損失。7.3 Cache性能的評估與提高性能的評估與提高一、一、CacheCache性能的測量與分析性能的測量與分析CPUCPU時間分為時間分為CPUCPU執(zhí)行程序的時鐘周期和執(zhí)行程序的時鐘周期和CPUCPU等待存儲系統(tǒng)的時等待存儲系統(tǒng)的時鐘周
54、期,正常情況下,把鐘周期,正常情況下,把CacheCache訪問命中的開銷看成是訪問命中的開銷看成是CPUCPU正常正常執(zhí)行周期中的一部分,因此有:執(zhí)行周期中的一部分,因此有: CPUCPU時間時間= =(CPUCPU執(zhí)行程序的時鐘周期數(shù)執(zhí)行程序的時鐘周期數(shù)+ +存儲器引起阻塞的時鐘周期數(shù))存儲器引起阻塞的時鐘周期數(shù))時鐘周期長度時鐘周期長度 存儲器引起阻塞的時鐘周期數(shù)主要來自存儲器引起阻塞的時鐘周期數(shù)主要來自CacheCache缺失,而此缺失,而此CacheCache缺失主要指讀缺失和寫缺失兩部分,在此僅討論存儲器缺失主要指讀缺失和寫缺失兩部分,在此僅討論存儲器系統(tǒng)的簡化模型,則讀和寫缺失引
55、起的阻塞時間可定義為:系統(tǒng)的簡化模型,則讀和寫缺失引起的阻塞時間可定義為:訪存等待時鐘周期數(shù) 失效率失效損失訪存次數(shù)程序定量計算這種定量計算這種Cache/主存存儲器層次結(jié)構(gòu)對主存存儲器層次結(jié)構(gòu)對CPU性能的影響程度性能的影響程度 例例6.3 6.3 假設(shè)我們用假設(shè)我們用gccgcc檢測一機(jī)器,發(fā)現(xiàn)指令檢測一機(jī)器,發(fā)現(xiàn)指令CacheCache缺失缺失率是率是2%2%,數(shù)據(jù),數(shù)據(jù)CacheCache缺失率缺失率4%4%。在不考慮訪存等待延遲時。在不考慮訪存等待延遲時所有指令的平均執(zhí)行時間(所有指令的平均執(zhí)行時間(CPICPI)為)為2 2個時鐘周期。個時鐘周期。CacheCache的缺失損失為的
56、缺失損失為4040個時鐘周期。(個時鐘周期。(gccgcc程序中各類指令的使用程序中各類指令的使用頻率見第四章的圖頻率見第四章的圖4.544.54。)若有一個從不產(chǎn)生缺失的理想。)若有一個從不產(chǎn)生缺失的理想CacheCache,則機(jī)器速度能快多少?,則機(jī)器速度能快多少?【解答解答】 假設(shè)指令總數(shù)為假設(shè)指令總數(shù)為I I,則由指令,則由指令CacheCache失效引起的總失效引起的總 的失效損失為的失效損失為I I2%2%40400.80I0.80I。gccgcc程序中存儲器訪問指令的頻率是程序中存儲器訪問指令的頻率是36%36%,因此由數(shù)據(jù),因此由數(shù)據(jù)CacheCache失效引起的總的失效損失為
57、:失效引起的總的失效損失為:I I36%36%4%4%40400.56I0.56I。 因此訪存等待時鐘周期數(shù)為因此訪存等待時鐘周期數(shù)為0.80I0.80I0.56I=1.36I0.56I=1.36I??紤]到訪存等待延遲,考慮到訪存等待延遲,CPICPI由由2 2變成了變成了2 21.36=3.361.36=3.36。 所以這種所以這種Cache/Cache/主存存儲層次結(jié)構(gòu)對主存存儲層次結(jié)構(gòu)對CPUCPU性能的影響是性能的影響是使使CPICPI由由2 2變成了變成了3.363.36,CPUCPU時間增大了時間增大了0.680.68。 如果如果CPUCPU的速度更快,而存儲器系統(tǒng)保持原狀,整體性
58、能的速度更快,而存儲器系統(tǒng)保持原狀,整體性能會怎么樣?會怎么樣? CPI CPI由由2 2減為減為1 1,帶有,帶有CacheCache缺失的系統(tǒng)缺失的系統(tǒng)CPI=1+1.36=2.36CPI=1+1.36=2.36,理想理想CacheCache系統(tǒng)性能是它的系統(tǒng)性能是它的2.36/1=2.362.36/1=2.36倍。倍。 CPU CPU時間中用來處理訪存的時間所占比率也由時間中用來處理訪存的時間所占比率也由1.36/3.36=41% 1.36/3.36=41% 增加到了增加到了1.36/2.361.36/2.3658%58% 同樣地,同樣地,增加處理器時鐘頻率但不改變存儲器結(jié)構(gòu)增加處理器時
59、鐘頻率但不改變存儲器結(jié)構(gòu), ,反而反而會增加由于會增加由于CacheCache失效帶來的性能損失失效帶來的性能損失。見下例。見下例。例6.4 為提高上題中機(jī)器的性能,將它的時鐘頻率加倍。因為主存的速度不變,所以用于Cache失效處理的絕對時間不變,假設(shè)Cache的失效率與上題相同。機(jī)器的時鐘頻率加快后,它的性能怎樣?【解答解答】 因為機(jī)器的時鐘頻率加倍,而用于因為機(jī)器的時鐘頻率加倍,而用于CacheCache失效處理的絕對失效處理的絕對時間沒有變化,所以時間沒有變化,所以CacheCache缺失損失要加倍,由缺失損失要加倍,由4040變?yōu)樽優(yōu)?080。假。假設(shè)設(shè)I I為指令總數(shù),則有:為指令總
60、數(shù),則有: 訪存等待時鐘周期數(shù)訪存等待時鐘周期數(shù)(2%(2%80)80)I I36%36%(4%(4%80)80)I I 2.75I2.75I 因此時鐘頻率較快機(jī)器的因此時鐘頻率較快機(jī)器的CPICPI為為4.754.75。使用這一節(jié)介紹的。使用這一節(jié)介紹的CPUCPU時間公式,我們將兩個時鐘頻率不同機(jī)器的性能作個比較:時間公式,我們將兩個時鐘頻率不同機(jī)器的性能作個比較:時鐘頻率快的機(jī)器的性能時鐘頻率慢的機(jī)器的性能ICPIClock cycleICPIClock cycle2時鐘頻率慢的機(jī)器的執(zhí)行時間時鐘頻率快的機(jī)器的執(zhí)行時間3.364.75121.41 時鐘頻率加快了一倍,但機(jī)器的性能卻只是原
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 2 No Rules,No Order Section A Pronunciation教學(xué)設(shè)計 -2024-2025學(xué)年人教版(2024)七年級英語下冊
- 貨架報告范文大全
- 第十一課 智能家居教學(xué)設(shè)計 -2023-2024學(xué)年青島版(2019)初中信息技術(shù)第四冊
- 2024湖南天岳投資集團(tuán)有限公司招聘合同制員工(第二批)筆試參考題庫附帶答案詳解
- 2024浙江錢江生物化學(xué)股份有限公司招聘筆試及復(fù)審對象筆試參考題庫附帶答案詳解
- 2024浙江衢州田園體育旅游發(fā)展有限公司招聘外包制人員2人筆試參考題庫附帶答案詳解
- 2024浙江寧波市象山縣城市建設(shè)投資集團(tuán)有限公司招聘擬錄用人員筆試參考題庫附帶答案詳解
- 《第6節(jié) 使用“資源管理器”管理文件、文件夾》教學(xué)設(shè)計 -2023-2024學(xué)年北師大版初中信息技術(shù)七年級上冊
- 5《以工匠精神雕琢?xí)r代品質(zhì)》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 10-2 《師說》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 地理-浙江省強(qiáng)基聯(lián)盟2025年2月高三年級聯(lián)考試題和答案
- 濟(jì)南2024年山東濟(jì)南廣播電視臺招聘14人筆試歷年參考題庫附帶答案詳解
- 海洋氣候預(yù)測模型創(chuàng)新研究-深度研究
- 《客戶服務(wù)基礎(chǔ)》教案及課件項
- 2025《醫(yī)藥企業(yè)防范商業(yè)賄賂風(fēng)險合規(guī)指引》解讀課件
- 2025年度船舶焊接維修工程合同范本資料下載
- 2025年湖南工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年丹參原藥材項目可行性研究報告
- 物理(A版)-安徽省合肥一中(省十聯(lián)考)2024-2025學(xué)年度高二年級上學(xué)期期末測試試題和答案
- 人教版初中歷史與社會七年級下冊 6.3.3向西開放的重要門戶-烏魯木齊 說課稿
- 綜合材料繪畫課程設(shè)計
評論
0/150
提交評論