計算機組成原理Cache模擬器的實現

一.實驗目的
(1)加深對Cache的基本概念、基本組織結構以及基本工作原理的理解。
(2)掌握Cache容量、相聯度、塊大小對Cache性能的影響。
(3)掌握降低Cache不命中率的各種方法以及這些方法對提高Cache性能的好處。
(4)理解LRU與隨機法的基本思想以及它們對Cache性能的影響。
二、實驗內容和步驟
1、啓動CacheSim。
2、根據課本上的相關知識,進一步熟悉Cache的概念和工作機制。
Cache出現:
I/O設備訪問主存請求級別高於CPU訪存,在多體並行存儲系統出現,使得CPU等甚多至幾個主存週期,效率降低;所以在CPU於主存之間加一級緩存,先將CPU要取的信息提前送至緩存,CPU可直接從緩存中讀取信息;
3、依次輸入以下參數:Cache容量、塊容量、映射方式、替換策略和寫策略。

Cache

4、讀取cache-traces.zip中的trace文件。
5、運行程序,觀察cache的訪問次數、讀/寫次數、平均命中率、讀/寫命中率。


思考:

1、Cache的命中率與其容量大小有何關係?

Cache 的容量與塊長是影響cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,當然容量過大,增加成本,而且cache容量達到一定值時, 命中率已不因容量的增加而又明顯的提高;

2、Cache塊大小對不命中率有何影響?

Cache 當塊由小到大,在已被訪問字的附近,近期也可能訪問,增大塊長,可將更多有用字存入緩存,提高命中率;但是繼續增大塊長,命中率可能下降,因爲所裝入緩存的有用數據反而少於被替換掉的有用數據,由於塊長增大,塊數減少,裝入新的塊要覆蓋舊塊,很可能出現少數塊剛裝入就被覆蓋,故命中率可能下降;

3、替換算法和相聯度大小對不命中率有何影響?

替換算法中:LRU算法的平均命中率比FIFO的高
LRU算法比較好地利用訪存局部性原理,替換出近期用得最少的字塊,它需要隨時記錄cache 各個字塊使用情況。FIFO不需要記錄各個字塊的使用情況,比較容易實現開銷小,但是沒有根據訪存的局部性原理,最早調入的信息可能以後還要用到,或經常用到例如循環程序;
Cache 容量一定時,隨着相聯度的不斷增加,不命中率漸漸減小,但是當相連度增加到一定程度時,不命中率保持不變;

三:實驗結果分析

  • Cache的命中率與其容量大小的關係

    Cache的命中率
    將所有測試的數據繪製成折線圖,更清晰的展現,如下
    這裏寫圖片描述

  • Cache塊大小對不命中率的影響

    Cache塊大小
    tu

  • 替換算法對命中率影響數據分析

    替換算法
    tu
    FIFO
    1
    LRU
    2
    Random
    3

  • 相關度大小對命中率的影響

    相關度大小
    *折線圖
    4

四.實驗心得

有實驗指導書可知,實驗所需要知識點是高速緩衝存儲器第四章的基礎內容,然後由書中學習了cache發展歷程,基本工作原理;
對實驗所需要的重點名詞,進行了理解;命中率,訪問效率,平均訪問時間例題進行了理解,從而分析了Cache容量,相關度,塊大小,替換算法對命中率的影響;
因爲LRU 、FIFO 、RANDOM替換算法對命中率也有這一些影響;
看了主存地址映射:有直接映射,全相連映射,感覺有一些迷糊了;
不是太容易理解了,然後百度搜了一些相連度大小對命中率影響,然後運用CacheSim模擬器,僅僅從一個數值中值看出來簡單的變化;
但是並不能看出有什麼規律;然後把它們用excel做成折線圖,發現其中存在的規律;
然後翻閱書籍;解釋爲什麼會存在着現象;這種實踐讓在學習知識點的過程中,更加有說服性了;

文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章