![53降低CACHE失效率的方法_第1頁](http://file4.renrendoc.com/view/c037acf1b04b0f37516568de49c84f77/c037acf1b04b0f37516568de49c84f771.gif)
![53降低CACHE失效率的方法_第2頁](http://file4.renrendoc.com/view/c037acf1b04b0f37516568de49c84f77/c037acf1b04b0f37516568de49c84f772.gif)
![53降低CACHE失效率的方法_第3頁](http://file4.renrendoc.com/view/c037acf1b04b0f37516568de49c84f77/c037acf1b04b0f37516568de49c84f773.gif)
![53降低CACHE失效率的方法_第4頁](http://file4.renrendoc.com/view/c037acf1b04b0f37516568de49c84f77/c037acf1b04b0f37516568de49c84f774.gif)
![53降低CACHE失效率的方法_第5頁](http://file4.renrendoc.com/view/c037acf1b04b0f37516568de49c84f77/c037acf1b04b0f37516568de49c84f775.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、(1) 強(qiáng)制性失效(Compulsory miss) 當(dāng)?shù)谝淮卧L問一個塊時,該塊不在 Cache中,需從下一級存儲器中調(diào)入Cache, 這就是強(qiáng)制性失效。 (冷啟動失效,首次訪問失效。)(2) 容量失效(Capacity miss ) 如果程序執(zhí)行時所需的塊不能全部調(diào) 入Cache中,則當(dāng)某些塊被替換后,若又5.3 降低Cache失效率的方法1. 三種失效(3C)第五章 存儲層次 重新被訪問,就會發(fā)生失效。這種失效稱 為容量失效。(3) 沖突失效(Conflict miss) 在組相聯(lián)或直接映象Cache中,若太多 的塊映象到同一組(塊)中,則會出現(xiàn)該組 中某個塊被別的塊替換(即使別的組或塊有
2、 空閑位置),然后又被重新訪問的情況。這 就是發(fā)生了沖突失效。 (碰撞失效,干擾失效)5.3 降低Cache 失效率的方法2. 三種失效所占的比例(SPEC92)表5.5 5.3 降低Cache 失效率的方法圖示I(絕對值)圖示(相對值)可以看出:(1) 相聯(lián)度越高,沖突失效就越少;(2) 強(qiáng)制性失效和容量失效不受相聯(lián)度的影響;(3) 強(qiáng)制性失效不受Cache容量的影響,但容 量失效卻隨著容量的增加而減少;(4) 表中的數(shù)據(jù)符合2:1的Cache經(jīng)驗規(guī)則,即 大小為N 的直接映象Cache的失效率約等于 大小為N/2 的兩路組相聯(lián)Cache的失效率。強(qiáng)制性失效:增加塊大小,預(yù)取 (本身很少)容
3、量失效:增加容量 (抖動現(xiàn)象)沖突失效:提高相聯(lián)度 (理想情況:全相聯(lián))3. 減少三種失效的方法4. 許多降低失效率的方法會增加命中時間或 失效開銷5.3 降低Cache 失效率的方法5.3.1 增加Cache塊大小1. 失效率與塊大小的關(guān)系 (1) 對于給定的Cache容量,當(dāng)塊大小增加 失效率開始是下降,后來反而上升了; (2) Cache容量越大,使失效率到達(dá)最低的 塊大小就越大。5.3 降低Cache 失效率的方法2. 增加塊大小會增加失效開銷3. 例題例 5.4 假定存儲系統(tǒng)在延遲40個時鐘周期后,每2個時鐘周期能送出16個字節(jié)。即:經(jīng)過42個時鐘周期,它可提供16個字節(jié);經(jīng)過44個
4、時鐘周期,可提供32個字節(jié);依此類推。試問對于表5-6中列出的各種容量的Cache,在塊大小分別為多少時,平均訪存時間最???解: 解題過程 1KB、4KB、16KB Cache: 塊大小32字節(jié) 64KB、256KB Cache: 塊大小64字節(jié)5.3 降低Cache 失效率的方法塊大小(字節(jié))失效開銷(時鐘周期)Cache容量(字節(jié))1K4K16K64K256K16427.3214.5992.6551.8571.45832446.8704.1862.2631.5941.30864487.6054.3602.2671.5091.2451285610.3185.3572.5511.5711.27
5、42567216.8477.8473.3691.8281.3535.3.2 提高相聯(lián)度1. 采用相聯(lián)度超過8的方法實(shí)際意義不大2. 2:1 Cache經(jīng)驗規(guī)則 容量為N 的直接映象Cache 容量為N/2的兩路組相聯(lián)Cache3. 提高相聯(lián)度是以增加命中時間為代價 例如: TTL或ECL板級Cache,兩路組相聯(lián): 增加10 定制的CMOS Cache, 兩路組相聯(lián): 增加25.3 降低Cache 失效率的方法4. 例題 假定提高相聯(lián)度會按以下比例增大處理器時鐘周期: 時鐘周期2路 1.10時鐘周期1路 時鐘周期4路 1.12時鐘周期1路 時鐘周期8路 1.14時鐘周期1路 假定命中時間為1個
6、時鐘,直接映象情況下失效開銷為50個時鐘周期,而且假設(shè)不必將失效開銷取整。使用表55中的失效率,試問當(dāng)Cache為多大時,以下不等式成立?例 5.55.3 降低Cache 失效率的方法平均訪存時間8路 平均訪存時間4路平均訪存時間4路 平均訪存時間2路平均訪存時間2路 平均訪存時間1路解: 在各種相聯(lián)度的情況下,平均訪存時間分別為: 平均訪存時間8路 = 命中時間8路 + 失效率8路 失效開銷8路 = 1.14失效率8路50 平均訪存時間4路 = 1.12 失效率4路50 平均訪存時間2路 = 1.10 失效率2路50 平均訪存時間1路 = 1.00 失效率1路505.3 降低Cache 失效
7、率的方法 在每種情況下的失效開銷相同,都是50個時鐘周期。把相應(yīng)的失效率代入上式, 即可得平均訪存時間。 例如,1KB的直接映象Cache的平均訪存時間為:平均訪存時間1路 1.00(0.13350) 7.65 容量為128KB的8路組相聯(lián)Cache的平均訪存時間為:平均訪存時間8路 1.14(0.00650) 1.44表5-85.3 降低Cache 失效率的方法Cache容量(K字節(jié))相聯(lián)度(路)124817.656.606.225.4425.904.904.624.0944.603.953.573.1983.303.002.872.59162.452.202.122.04322.001.8
8、01.771.79641.701.601.571.591281.501.451.421.441. 根本思想 在Cache和它從下一級存儲器調(diào)數(shù)據(jù) 的通路之間設(shè)置一個全相聯(lián)的小Cache, 用于存放被替換出去的塊(稱為Victim), 以備重用。 工作過程5.3.3 Victim Cache5.3 降低Cache 失效率的方法 對于減小沖突失效很有效,特別是對于小容量的直接映象數(shù)據(jù)Cache,作用尤其明顯。 例如,項數(shù)為4的Victim Cache: 使4KB Cache的沖突失效減少20%90%2. 作用5.3 降低Cache 失效率的方法1. 直接映象 vs組相聯(lián)5.3.4 偽相聯(lián)Cache
9、2. 偽相聯(lián)Cache優(yōu)點(diǎn)缺點(diǎn)直接映象組相聯(lián)命中時間小命中時間大失效率高失效率低取直接映象及組相聯(lián)兩者的優(yōu)點(diǎn): 命中時間小,失效率低5.3 降低Cache 失效率的方法(1) 根本思想及工作原理 (動畫演示) 在邏輯上把直接映象Cache的空間上下 平分為兩個區(qū)。對于任何一次訪問,偽相聯(lián) Cache先按直接映象Cache的方式去處理。若 命中,則其訪問過程與直接映象Cache的情 況一樣。若不命中,則再到另一區(qū)相應(yīng)的位 置去查找。若找到,則發(fā)生了偽命中,否則 就只好訪問下一級存儲器。(2) 快速命中與慢速命中 要保證絕大多數(shù)命中都是快速命中。5.3 降低Cache 失效率的方法3. 例題例5.
10、6 假設(shè)當(dāng)在按直接映象找到的位置處沒有發(fā)現(xiàn)匹配、而在另一個位置才找到數(shù)據(jù)(偽命中)需要2個額外的周期。仍用上個例子中的數(shù)據(jù),問:當(dāng)Cache容量分別為2KB和128KB時,直接映象、兩路組相聯(lián)和偽相聯(lián)這三種組織結(jié)構(gòu)中,哪一種速度最快?5.3 降低Cache 失效率的方法首先考慮標(biāo)準(zhǔn)的平均訪存時間公式: 平均訪存時間偽相聯(lián) 命中時間偽相聯(lián)失效率偽相聯(lián)失效開銷偽相聯(lián)由于: 失效率偽相聯(lián)失效率2路 命中時間偽相聯(lián)命中時間1路偽命中率偽相聯(lián)2; 偽命中率偽相聯(lián)命中率2路命中率1路 (1失效率2路)(1失效率1路) 失效率1路失效率2路解:5.3 降低Cache 失效率的方法故: 平均訪存時間偽相聯(lián) 命
11、中時間1路(失效率1路失效率2路)2 失效率2路失效開銷1路將表55中的數(shù)據(jù)代入上面的公式,得: 平均訪存時間偽相聯(lián),2KB 1(0.0980.076)2(0.07650) 4.844 平均訪存時間偽相聯(lián),128KB 1(0.0100.007)2(0.00750) 1.3565.3 降低Cache 失效率的方法根據(jù)上一個例子中的表58,對于2KB Cache,可得: 平均訪存時間1路 5.90 個時鐘 平均訪存時間2路 4.90 個時鐘對于128KB的Cache有,可得: 平均訪存時間1路 1.50 個時鐘 平均訪存時間2路 1.45 個時鐘可見,對于這兩種Cache容量,偽相聯(lián)Cache都是
12、速度最快的。缺點(diǎn):多種命中時間5.3 降低Cache 失效率的方法5.3.5 硬件預(yù)取技術(shù)1. 指令和數(shù)據(jù)都可以預(yù)取2. 預(yù)取內(nèi)容既可放入Cache,也可放在 外緩沖器中 例如:指令流緩沖器3. 預(yù)取效果 (1) Joppi的研究結(jié)果 指令預(yù)?。?4KB,直接映象Cache, 塊大小16字節(jié))5.3 降低Cache 失效率的方法1個塊的指令流緩沖器: 捕獲1525 的失效4個塊的指令流緩沖器: 捕獲5016個塊的指令流緩沖器:捕獲72 數(shù)據(jù)預(yù)?。?4KB,直接映象Cache) 1個數(shù)據(jù)流緩沖器:捕獲25的失效 還可以采用多個數(shù)據(jù)流緩沖器(2) Palacharla和Kessler的研究結(jié)果 流
13、緩沖器:既能預(yù)取指令又能預(yù)取數(shù)據(jù) 對于兩個64KB四路組相聯(lián)Cache來說: 8個流緩沖器能捕獲5070的失效。5.3 降低Cache 失效率的方法4. 例題例5.7 Alpha AXP 21064采用指令預(yù)取技術(shù),其實(shí)際失效率是多少?若不采用指令預(yù)取技術(shù),AlphaAPX 21064的指令Cache必須為多大才能保持平均訪存時間不變?解: 假設(shè)從預(yù)取緩沖器中找到所需指令需多花1個時鐘周期。 平均訪存時間預(yù)取 命中時間失效率預(yù)取命中率1 失效率(1預(yù)取命中率)失效開銷5.3 降低Cache 失效率的方法假設(shè): 預(yù)取命中率25 命中時間1個時鐘周期 失效開銷50個時鐘周期 由表5.4可知,8KB
14、指令Cache的失效率1.10 故平均訪存時間預(yù)取 1(1.10 %25 %1) (1.10 %(125 %)50) 10.002750.4125 1.415 由公式: 平均訪問時間命中時間失效率失效開銷5.3 降低Cache 失效率的方法可得相應(yīng)的失效率為:失效率(平均訪問時間命中時間)/失效開銷 (1.4511)/500.838KB Cache 帶預(yù)取的8kB Cache失效率1.100.8316KB Cache0.645.3 降低Cache 失效率的方法5.3.6 由編譯器控制的預(yù)取1. 預(yù)取的類型 存放器預(yù)?。喊褦?shù)據(jù)取到存放器中 Cache預(yù)?。?只將數(shù)據(jù)取到Cache中 故障性預(yù)?。?/p>
15、預(yù)取時,若出現(xiàn)虛地址故障 或違反訪問權(quán)限,就會發(fā)生異常。 非故障性預(yù)取:預(yù)取時,若出現(xiàn)虛地址故 障或違反訪問權(quán)限,并不會導(dǎo)致異常,只 是轉(zhuǎn)變?yōu)椤安活A(yù)取。由編譯器參加預(yù)取指令,在數(shù)據(jù)被用到之前發(fā)出預(yù)取請求。5.3 降低Cache 失效率的方法4. 例題2. 在預(yù)取數(shù)據(jù)的同時,處理器應(yīng)能繼續(xù)執(zhí)行 只有這樣,預(yù)取才有意義。 非阻塞Cache (非鎖定Cache)3. 循環(huán)是預(yù)取優(yōu)化的主要對象 失效開銷小時:循環(huán)體展開12次 失效開銷大時:循環(huán)體展開許屢次5.3 降低Cache 失效率的方法例 5.8 對于下面的程序,判斷哪些訪問可能會導(dǎo)致數(shù)據(jù)Cache失效。然后,參加預(yù)取指令以減少失效。最后,計算所
16、執(zhí)行的預(yù)取指令的條數(shù)以及通過預(yù)取防止的失效次數(shù)。假定: (1) 我們用的是一個容量為8KB、塊大小為 16B的直接映象Cache,它采用寫回法并 且按寫分配。 (2) a、b分別為3100(3行100列)和1013 的雙精度浮點(diǎn)數(shù)組,每個元素都是8個 字節(jié)。當(dāng)程序開始執(zhí)行時,這些數(shù)據(jù)都 不在Cache內(nèi)。5.3 降低Cache 失效率的方法for (i0 ; i 3 ; ii1 ) for (j0 ; j 100 ; jj1 ) aijbj0bj10;解:(1) 計算過程(2) 失效情況 總的失效次數(shù)251次 (3) 改進(jìn)后的程序5.3 降低Cache 失效率的方法for (j0,j100;j
17、j1) prefetch (bj70); /* 預(yù)取7次循環(huán)后所需的b(j ,0 ) */ prefetch (a0j7); /* 預(yù)取7次循環(huán)后所需的a(0,j ) */ a0jbj 0 * b j10 for (i1; i 3; ii1) for (j0; j 100; jj1) prefetch(aij7); /* 預(yù)取7次循環(huán)后所需的a(i , j ) */ aijbj0 * bj10; 5.3 降低Cache 失效率的方法例 59 在以下條件下,計算例5.8中所節(jié)約的時間: (1) 忽略指令Cache失效,并假設(shè)數(shù)據(jù)Cache 無沖突失效和容量失效。 (2) 假設(shè)預(yù)取可以被重疊或與C
18、ache失效重 疊執(zhí)行,從而能以最大的存儲帶寬傳送 數(shù)據(jù)。 (3) 不考慮Cache失效時,修改前的循環(huán)每7 個時鐘周期循環(huán)一次。修改后的程序中,失效情況 總的失效次數(shù)19次5.3 降低Cache 失效率的方法解: 修改前: 循環(huán)時間3007 2100 失效開銷2515012550/14650 21001255014650 第一個預(yù)取循環(huán)每9個時鐘周期循環(huán)一次, 而第二個預(yù)取循環(huán)每8個時鐘周期循環(huán)一 次(包括外層for循環(huán)的開銷)。(4) 一次失效需50個時鐘周期。5.3 降低Cache 失效率的方法 修改后: 循環(huán)時間100920082500 失效時間1950950 25009503450
19、加速比14650/34504.25.3 降低Cache 失效率的方法5.3.7 編譯器優(yōu)化2KB Cache: 降低508KB Cache:降低75%1. 根本思想 在編譯時,對程序中的指令和數(shù)據(jù)進(jìn)行重新組織,以降低Cache失效率。2. McFaring 發(fā)現(xiàn):通過對指令進(jìn)行重新排序, 可有效地降低指令Cache的失效率。5.3 降低Cache 失效率的方法3. 數(shù)據(jù)對存儲位置的限制比指令的少,因此 更便于優(yōu)化。 通過把數(shù)據(jù)重新組織,使得在一塊數(shù) 據(jù)被從Cache替換出去之前,能最大限度 利用其中的數(shù)據(jù)(訪問次數(shù)最多) (1) 數(shù)組合并 舉例: /* 修改前 */ int val SIZE; int key SIZE;5.3 降低Cache 失效率的方法(2) 內(nèi)外循環(huán)交換 舉例: /* 修改前 */ for (j0 ;j100 ;jj1) for (i0 ;i5000 ;ii1) xij2*xij; /* 修改后 */ struct merge int val ; int key ; ; struct merge merged_arraysize;5
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024民間借貸合同范本(28篇)
- 2025年農(nóng)村子女撫養(yǎng)費(fèi)用分擔(dān)協(xié)議
- 2025年供電企業(yè)與用戶用電合作協(xié)議
- 2025年共同策劃健身房合作合同書
- 企業(yè)勞動合同協(xié)議2025年
- 2025年企業(yè)員工勞動合同補(bǔ)充協(xié)議范本
- 2025年鋁合金預(yù)拉伸厚板和蒙皮鋁合金板項目立項申請報告模范
- 2025年高性能陶瓷復(fù)合材料項目立項申請報告模板
- 2025年企業(yè)變更代理協(xié)議
- 2025年漲緊輪項目提案報告模板
- 港口自動化與智慧港口發(fā)展方向
- 人教版小學(xué)英語單詞表(完整版)
- 飛灰處置及資源化綜合利用項目可行性研究報告模板-備案拿地
- 2024年咨詢工程師考試大綱
- 免疫治療皮疹護(hù)理查房
- 2024年棉柔巾行業(yè)市場趨勢分析
- 黑龍江省哈爾濱市雙城區(qū)2024年八年級下冊物理期末經(jīng)典試題含解析
- 老年期譫妄課件
- 項目采購管理培訓(xùn)
- 河道保潔服務(wù)日常巡邏方案及措施
- 《工業(yè)氣體泄漏氣云紅外成像檢測系統(tǒng)的性能評價技術(shù)規(guī)范》 征求意見稿
評論
0/150
提交評論