實(shí)驗(yàn)二 Cache 模擬器
實(shí)驗(yàn)?zāi)康?/h2>
- 加深對Cache的基本概念袖迎、基本組織結(jié)構(gòu)以及基本工作原理的理解;
- 掌握Cache容量腺晾、相聯(lián)度燕锥、塊大小對Cache性能的影響;
- 掌握降低Cache不命中率的各種方法以及這些方法對提高Cache性能的好處悯蝉;
- 理解LRU與隨機(jī)法的基本思想以及它們對Cache性能的影響归形。
實(shí)現(xiàn)內(nèi)容
- 能夠設(shè)置 Cache 總的大小
- 能夠設(shè)置 Cache 塊的大小
- 能夠設(shè)置Cache 的映射機(jī)制:直接映射、n-路組相聯(lián)
- 能夠設(shè)置 Cache 的替換策略:LRU鼻由、FIFO
- 能夠設(shè)置 Cache 的寫策略:寫回法暇榴、寫直達(dá)法
- 能夠設(shè)置將 Cache 分為數(shù)據(jù) Cache 和 指令 Cache
- 能夠設(shè)置預(yù)取策略
實(shí)驗(yàn)原理
Cache結(jié)構(gòu)
- 采用分層分級結(jié)構(gòu),越接近CPU則速度越快嗡靡,存儲空間越小跺撼。
Cache分層結(jié)構(gòu)
Cache功能
- Cache可以協(xié)調(diào)從CPU到主存的讀寫速度差異和存儲空間差異,通過若干層cache讨彼,以接近CPU的速度讀取主存主存大小的存儲空間歉井。
- 提供“緩存”的目的是為了讓數(shù)據(jù)訪問的速度適應(yīng)CPU的處理速度,其基于的原理是內(nèi)存中“程序執(zhí)行與數(shù)據(jù)訪問的局域性行為”哈误,即一定程序執(zhí)行時間和空間內(nèi)哩至,被訪問的代碼集中于一部分。
映射機(jī)制
- 直接映射:每一個內(nèi)存塊地址都可通過模運(yùn)算對應(yīng)到一個唯一緩存塊上蜜自。這是一種多對一映射:多個內(nèi)存塊地址須共享一個緩存區(qū)域菩貌。
- 組相聯(lián)映射:把存儲空間組織成多個組,每個組有若干數(shù)據(jù)塊重荠。通過建立內(nèi)存數(shù)據(jù)和組索引的對應(yīng)關(guān)系箭阶,一個內(nèi)存塊可以被載入到對應(yīng)組內(nèi)的任一數(shù)據(jù)塊上。
- 全相連:內(nèi)存中的數(shù)據(jù)塊可以被放置到緩存的任意區(qū)域。
n路組關(guān)聯(lián)
換頁算法
Cache分層結(jié)構(gòu)
![n路組關(guān)聯(lián)](https://upload.wikimedia.org/wikipedia/commons/b/bc/CPU%E7%BC%93%E5%AD%98_02_%E7%BB%84%E5%85%B3%E8%81%94.png)
n路組關(guān)聯(lián)
電腦內(nèi)存空間的大小固定仇参,無法容納服務(wù)器上所有的文件嘹叫,所以當(dāng)有新的文件要被置換入緩存時,必須根據(jù)一定的原則來替換掉適當(dāng)?shù)奈募?/p>
- 先進(jìn)先出算法(FIFO):最先進(jìn)入的內(nèi)容作為替換對象
- 最久未使用算法(LRU):最久沒有訪問的內(nèi)容作為替換對象
寫策略
- 寫回法:將緩存中的頁換回主存中時诈乒,將修改過的快加載回主存罩扇。
- 寫直達(dá)法:在修改緩存中的頁時,直接也寫回主存怕磨。