計算機組成與結(jié)構(gòu)課件存儲器-pengmanman_第1頁
計算機組成與結(jié)構(gòu)課件存儲器-pengmanman_第2頁
計算機組成與結(jié)構(gòu)課件存儲器-pengmanman_第3頁
計算機組成與結(jié)構(gòu)課件存儲器-pengmanman_第4頁
計算機組成與結(jié)構(gòu)課件存儲器-pengmanman_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、William Stallings 計算機組成與體系結(jié)構(gòu)第8版 第第4章章 Cache存儲器存儲器一、存儲系統(tǒng)的特性一、存儲系統(tǒng)的特性 存儲位置存儲位置 容量容量 傳送單元傳送單元 存取方法存取方法 性能性能 物理類型物理類型 物理特性物理特性 組織組織1.1.存儲位置存儲位置 CPU 內(nèi)部 外部2.存儲容量 字長 存儲器組織的自然單位 字?jǐn)?shù) 或字節(jié)數(shù)3.傳輸單元 內(nèi)部 通常由數(shù)據(jù)總線的寬度決定 外部 通常是比字大得多的一個塊 尋址單元 可以被獨立尋址的最小位置 在計算機內(nèi)部為字 在磁盤中為串4.存取方法 (1) 順序存取順序存取 從開始處出發(fā),按序讀取從開始處出發(fā),按序讀取 訪問時間依賴于數(shù)

2、據(jù)位置和磁頭早先的位置訪問時間依賴于數(shù)據(jù)位置和磁頭早先的位置 例如磁帶例如磁帶 直接存取直接存取 單個塊或記錄有基于物理存儲位置的唯一地址單個塊或記錄有基于物理存儲位置的唯一地址 訪問是先跳到臨近處,然后再順序搜索訪問是先跳到臨近處,然后再順序搜索 訪問時間依賴于數(shù)據(jù)位置和磁頭早先的位置訪問時間依賴于數(shù)據(jù)位置和磁頭早先的位置 例如磁盤例如磁盤4.存取方法(2) 隨機存取隨機存取 尋址機制能準(zhǔn)確地確定每一個位置尋址機制能準(zhǔn)確地確定每一個位置 訪問時間不依賴于數(shù)據(jù)位置和之前存取的位置訪問時間不依賴于數(shù)據(jù)位置和之前存取的位置 例如例如RAM 關(guān)聯(lián)存取關(guān)聯(lián)存取 通過一部分內(nèi)容的比較來確定數(shù)據(jù)的位置通過

3、一部分內(nèi)容的比較來確定數(shù)據(jù)的位置 訪問時間不依賴于數(shù)據(jù)位置和之前存取的位置訪問時間不依賴于數(shù)據(jù)位置和之前存取的位置 例如例如cache5.存儲層次 寄存器 CPU內(nèi)部 內(nèi)存(主存) 可包含一級或多級cache “RAM” 外存 輔助存儲6.性能 存取時間 從提供地址到獲得有效數(shù)據(jù)之間的時間 存儲周期時間 存儲器可能需要“恢復(fù)”才能開始下一次的讀寫 存取數(shù)據(jù) + 恢復(fù)時間 傳輸率 數(shù)據(jù)可以移動的速度7.物理類型 半導(dǎo)體 RAM 磁介質(zhì) 磁盤和磁帶 光介質(zhì) CD和DVD 其它 磁泡存儲 全息存儲 8.物理特性 損耗 易失性 可擦除 功耗9.組織 字中各位的物理排列 并非總是顯而易見 例如交叉存儲器

4、10.關(guān)鍵點 多大? 容量 多快? 時間就是金錢 多貴?二、存儲層次二、存儲層次 寄存器 一級Cache 二級Cache 主存 磁盤cache 磁盤 光盤 磁帶1.你想要快速嗎? 可以建立一臺只用靜態(tài)RAM的計算機 它非???它不需要cache 但它非常昂貴2.局部性原理 在程序的執(zhí)行過程中,存儲器訪問趨向于局部 例如循環(huán)三、三、CacheCache 小而快的存儲器 通常位于主存與CPU之間 可以處于CPU片內(nèi)1.Cache和主存a) 單cacheb) 三級cache2.Cache/主存結(jié)構(gòu)3.Cache操作 概述 CPU請求訪問存儲器某單元內(nèi)容 檢查cache中是否有該數(shù)據(jù) 如果有, 則從c

5、ache中獲得 (快) 如果沒有, 則從主存中讀取需要的數(shù)據(jù)塊到cache 然后從cache傳數(shù)據(jù)到CPU 在每個Cache項中,包含“標(biāo)識”來識別主存的不同塊4.Cache讀操作流程圖四、四、CacheCache設(shè)計設(shè)計 Cache地址地址 Cache容量容量 映射功能映射功能 替換算法替換算法 寫策略寫策略 行大小行大小 Cache數(shù)目數(shù)目 1.Cache地址 cache的位置 位于處理器和虛擬MMU之間 或位于MMU和主存之間 邏輯cache (虛擬cache) 使用虛擬地址來存放數(shù)據(jù) 處理器直接訪問cache,不通過物理cache Cache訪問速度快,在MMU進行地址轉(zhuǎn)換之前 虛擬地

6、址為不同的應(yīng)用程序使用同一地址空間 物理cache使用主存物理地址來存放數(shù)據(jù)2.Cache容量 成本 大容量cache更貴 速度 大容量cache更快 大容量cache的尋址時間更長1 1)典型的)典型的CacheCache結(jié)構(gòu)結(jié)構(gòu)2)Cache容量比較處理器處理器類型類型推出年份推出年份L1 cacheL2 cacheL3 cacheIBM 360/85大型機196816 to 32 KBPDP-11/70小型機19751 KBVAX 11/780小型機197816 KBIBM 3033大型機197864 KBIBM 3090大型機1985128 to 256 KBIntel 80486PC

7、19898 KBPentiumPC19938 KB/8 KB256 to 512 KBPowerPC 601PC199332 KBPowerPC 620PC199632 KB/32 KBPowerPC G4PC/服務(wù)器199932 KB/32 KB256 KB to 1 MB2 MBIBM S/390 G4大型機199732 KB256 KB2 MBIBM S/390 G6大型機1999256 KB8 MBPentium 4PC/服務(wù)器20008 KB/8 KB256 KBIBM SP高端服務(wù)器/ 超級計算機200064 KB/32 KB8 MBCRAY MTAb超級計算機20008 KB2

8、MBItaniumPC/服務(wù)器200116 KB/16 KB96 KB4 MBSGI Origin 2001高端服務(wù)器200132 KB/32 KB4 MBItanium 2PC/服務(wù)器200232 KB256 KB6 MBIBM POWER5高端服務(wù)器200364 KB1.9 MB36 MBCRAY XD-1超級計算機200464 KB/64 KB1MB3.映射功能 64KB的Cache 塊大小為4字節(jié) 即cache有16k (214)行 16MB的主存 24位地址 (224=16M)1)直接映射 主存中的每一塊映射到Cache中的唯一行 也就是,如果某塊在cache中,則它只能在唯一確定的

9、位置 地址分為兩個部分 最低w位確定唯一的字 最高s位指定一個主存塊 S位又被分成一個r位的cache行域和一個s-r位的標(biāo)識 (最高位)(1)地址結(jié)構(gòu)標(biāo)識s-r行r字w8142 24位地址 2位識別字(4字節(jié)) 22位識別塊 8位標(biāo)識(=22-14) 14位識別行 映射到相同的兩個塊不會有相同的Tag域 通過查找行號和檢查標(biāo)識來核實cache的內(nèi)容(2)從Cache到主存注:圖中,b=塊的位長,t=標(biāo)記的位長 (a)直接映射 (3)Cache行表Cache行行存放的主存塊存放的主存塊00, m, 2m, 3m2s-m11,m+1, 2m+12s-m+1m-1m-1, 2m-1,3m-12s-

10、1(4)直接映射Cache結(jié)構(gòu)(5)例子(6)總結(jié) 地址長度=(s+w)位 可尋址的單元數(shù)=2s+w個字或字節(jié) 塊大小=行大小=2w字或字節(jié) 主存的塊數(shù)=2s+w/2w=2s Cache的行數(shù)=m=2r 標(biāo)識長度=(s r)位(7)直接映射的優(yōu)缺點 簡單 便宜 給定的塊有固定的位置 如果程序重復(fù)地訪問映射到相同位置的2個塊,則cache 失效率非常高(7)Victim Cache 更低的失效開銷 保存被丟棄的塊 已經(jīng)取進 再次使用開銷小 全相聯(lián) 4至16個cache行 位于直接映射L1 cache和下一級存儲器之間2)全相聯(lián)映射 主存的塊可以放進cache的任意行 存儲器地址分成標(biāo)識和字 標(biāo)識

11、唯一確定主存的塊 檢查每行的標(biāo)識來決定是否匹配 Cache查找非常昂貴(1)從Cache到主存主存的一塊(2)Cache結(jié)構(gòu)(3)例子標(biāo)識22位字2位(4)地址結(jié)構(gòu) 22位標(biāo)記與32位數(shù)據(jù)塊一起存儲在Cache行中 對每一行中的標(biāo)記進行檢查,看其是否命中 地址的最低2位確定32位數(shù)據(jù)塊中那16位字是要訪問的 例如: AddressTagDataCache line FFFFFCFFFFFC246824683FFF(5)總結(jié) 地址長度=(s+w)位 可尋址的單元數(shù)=2s+w字或字節(jié) 塊大小=行大小=2w字或字節(jié) 主存的塊數(shù) 2s+w/2w=2s Cache的行數(shù)=不由地址格式?jīng)Q定 標(biāo)記長度=s位

12、3)組相聯(lián)映射 Cache被分成幾組 每組包含幾行 一給定的塊可以映射到特定組的任意一行 例如,塊B可以放在i組的任意一行 例如,每組2行 2路組相聯(lián) 一給定塊可以放在唯一一組中兩行的任意一行中(1)例子 13位組數(shù) 主存的塊號模213 000000, 00A000, 00B000, 00C000 映射到同一組(2)從主存到Cache的映射:v組相聯(lián)(3)k路組相聯(lián)從主存到cache的映射(4)k路組相聯(lián)cache的結(jié)構(gòu)(5)地址結(jié)構(gòu) 使用組域來確定唯一一個cache組 比較tag域來判斷是否命中 例如: AddressTag DataSet number 1FF 7FFC1FF 123456

13、781FFF 001 7FFC001 112233441FFF標(biāo)識9位組13位字2 位(6)2路組相聯(lián)的例子(7)總結(jié) 地址長度=(s+w)位 可尋址的單元數(shù)=2s+w字或字節(jié) 塊大小=行大小=2w字或字節(jié) 主存的塊數(shù)=2d 一組的行數(shù)=k 組數(shù)=v=2d Cache的行數(shù)=kv=k2d 標(biāo)識長度=(sd)位(8)直接與組相聯(lián)Cache的性能差別 容量小于64kB時,2路組相聯(lián)的性能顯著提高 二路組相聯(lián)和四路組相聯(lián)在Cache容量均為4kB時的性能差別要遠小于Cache容量從4kB變到8kB時的差別 Cache的復(fù)雜度隨相聯(lián)度的增大而增加 不需要將cache容量增大到8kB或16kB 大于32

14、kB時,無性能改善 (仿真結(jié)果見下頁)Figure 4.16 不同相聯(lián)度在不同Cache大小下的命中率 4.替換算法1)直接映射 沒有選擇 每塊只能映射到唯一一行 替換該行2)全相聯(lián)&組相聯(lián) 硬件實現(xiàn)替換算法(快) 最近最少使用法(LRU) 例如,在2路組相聯(lián)中 2塊中的那塊是最近最少使用的? 先進先出法(FIFO) 替換在cache中時間長的那塊 最不經(jīng)常使用法 替換最少命中的那塊 隨機法5.寫策略 除非主存修改了數(shù)據(jù),否則不需要重復(fù)寫cache 多CPU可能有單獨的cache I/O可能直接尋址主存1)寫直達法 所有寫操作都同時對主存和Cache進行 多CPU可以監(jiān)控主存的訪問來保

15、持局部cache的數(shù)據(jù)一致性 大量的存儲通信量 慢速寫2)寫回法 起初只更新Cache中的數(shù)據(jù) 當(dāng)更新操作發(fā)生時,設(shè)置與該行相關(guān)的更新位 當(dāng)一個塊被替換掉時,當(dāng)且僅當(dāng)更新位被置位時才將它寫回主存 其它cache的相應(yīng)數(shù)據(jù)同時變?yōu)闊o效 I/O必須通過cache才能訪問主存 經(jīng)驗表明,寫操作占存儲器操作的15% 6.行大小 當(dāng)一個數(shù)據(jù)塊被取出并放入Cache中時,所需的字和一些相鄰的字都會被取出 增大塊大小開始會提高命中率而增加 局部性原理 當(dāng)塊變得相當(dāng)大時,命中率將下降 使用新取信息的概率變得小于重用已被替換掉的信息概率 更大的塊 減少了裝入Cache中的塊數(shù) 少量的塊導(dǎo)致了裝入的數(shù)據(jù)很快被改寫

16、 每個附加字就會離所需字更遠,因此被使用的可能性也就更小 目前還沒有找到確定的最優(yōu)值 8到64字節(jié)似乎合理 對于HPC系統(tǒng),64至128字節(jié)最常用7.多級Cache 高邏輯密度使cache處于片上成為可能 比總線訪問更快 減少總線傳輸開銷 普遍使用片上和片外cache L1在片上,L2在片外(static RAM) L2的訪問速度比DRAM和ROM快很多 L2通常使用獨立的數(shù)據(jù)通路 L2現(xiàn)在可以在片上 導(dǎo)致L3 cache 總線訪問或目前的片內(nèi)訪問L1為8K和16K時的總命中率(L1和L2)8.統(tǒng)一與分立Caches 單個既存數(shù)據(jù)又存指令的Cache,或者兩個Cache:一個存放數(shù)據(jù),另一個存

17、放指令 統(tǒng)一cache的優(yōu)勢 更高的命中率 在獲取指令和數(shù)據(jù)的負(fù)載之間自動進行平衡 只設(shè)計和實現(xiàn)一個Cache 分立cache的優(yōu)勢 消除了Cache在指令的取指/譯碼單元和執(zhí)行單元之間的競爭 在流水線中重要五、五、Pentium 4 CachePentium 4 Cache 80386 不包含片內(nèi) cache 80486 8KB的片內(nèi)Cache,它采用路組相聯(lián)結(jié)構(gòu),每行16B Pentium (所有版本) 兩個片內(nèi)L1 cache 數(shù)據(jù)&指令 Pentium III 加片外L3 cache Pentium 4 L1 caches 8kB 每行64字節(jié) 4路組相聯(lián) L2 cache 給

18、L1 數(shù)據(jù)Cache和指令Cache提供信息 256k 每行128字節(jié) 8路組相聯(lián) L3 cache在片內(nèi)1.Intel的Cache進展問題問題解決方案解決方案 首次采用該特征的首次采用該特征的處理器處理器 外部存儲器比系統(tǒng)總線慢使用更快的存儲器技術(shù),增加外部Cache 386增加的處理器速度導(dǎo)致外部總線成為Cache訪問的瓶頸將外部Cache移到片內(nèi),以處理器相同的速度進行操作486由于片內(nèi)空間的限制,片內(nèi)Cache太小使用比主存更快的技術(shù),增加外部L2級Cache486當(dāng)指令預(yù)取器和執(zhí)行單元同時需要訪問Cache時出現(xiàn)了競爭。在此種情況下,指令預(yù)取器在執(zhí)行單元訪問數(shù)據(jù)時只能暫停形成分離的數(shù)

19、據(jù)Cache和指令Cache Pentium增加的處理器速度導(dǎo)致外部總線成為L2級Cache訪問的瓶頸 形成分離的后端總線,它比主(前端總線)外部總線運行速度快。BSB總線服務(wù)于L2 CachePentium Pro將L2 Cache移到處理器芯片內(nèi)Pentium II某些應(yīng)用需要處理龐大的數(shù)據(jù)庫,并且必須對大量數(shù)據(jù)進行快速的訪問。片上Cache太小增加外部L3級Cache Pentium III 將L3 Cache移到片內(nèi) Pentium 42.Pentium 4架構(gòu)圖3.Pentium 4的核處理器 取指/譯碼單元 從L2 cache中讀取指令 譯碼成微操作 將微操作存進L1 cache 亂序執(zhí)行邏輯 調(diào)度微操作 基于數(shù)據(jù)相關(guān)性和資源可用性 可能需要推測執(zhí)行 執(zhí)行單元 執(zhí)行微操作 從L1 cache讀取數(shù)據(jù) 結(jié)果存入寄存器 存儲器子系統(tǒng) L2 cache和系統(tǒng)總線4.Pentium 4的設(shè)計理由 在進入L1 cache前,將指令譯碼為類似微操作的RISC 微操作固定長度 超標(biāo)量流水和調(diào)度技術(shù) Pentium的指令長且復(fù)雜 通過獨立于調(diào)度和流水線邏輯來譯碼,使性能

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論