cache性能分析實驗報告.docx_第1頁
cache性能分析實驗報告.docx_第2頁
cache性能分析實驗報告.docx_第3頁
cache性能分析實驗報告.docx_第4頁
cache性能分析實驗報告.docx_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機系統(tǒng)結(jié)構(gòu)實驗報告名 稱: Cache性能分析學(xué) 院: 信息工程姓 名: 陳 明學(xué) 號: S121055專 業(yè): 計算機系統(tǒng)結(jié)構(gòu)年 級: 研 一實驗?zāi)康?. 加深對Cache的基本概念、基本組織結(jié)構(gòu)以及基本工作原理的理解;2. 了解Cache的容量、相聯(lián)度、塊大小對Cache性能的影響;3. 掌握降低Cache失效率的各種方法,以及這些方法對Cache性能提高的好處;4. 理解Cache失效的產(chǎn)生原因以及Cache的三種失效;5. 理解LRU與隨機法的基本思想,及它們對Cache性能的影響;實驗平臺Vmware 虛擬機,redhat 9.0 linux 操作系統(tǒng),SimpleScalar模擬器實驗步驟1. 運行SimpleScalar模擬器;2. 在基本配置情況下運行程序(請指明所選的測試程序),統(tǒng)計Cache總失效次數(shù)、三種不同種類的失效次數(shù);3. 改變Cache容量(*2,*4,*8,*64),運行程序(指明所選的測試程序),統(tǒng)計各種失效的次數(shù),并分析Cache容量對Cache性能的影響;4. 改變Cache的相聯(lián)度(1路,2路,4路,8路,64路),運行程序(指明所選的測試程序),統(tǒng)計各種失效的次數(shù),并分析相聯(lián)度對Cache性能的影響;5. 改變Cache塊大小(*2,*4,*8,*64),運行程序(指明所選的測試程序),統(tǒng)計各種失效的次數(shù),并分析Cache塊大小對Cache性能的影響;6. 分別采用LRU與隨機法,在不同的Cache容量、不同的相聯(lián)度下,運行程序(指明所選的測試程序)統(tǒng)計Cache總失效次數(shù),計算失效率。分析不同的替換算法對Cache性能的影響。預(yù)備知識1. SimpleScalar模擬器的相關(guān)知識。詳見相關(guān)的文檔。2. 復(fù)習(xí)和掌握教材中相應(yīng)的內(nèi)容(1) 可以從三個方面改進Cache的性能:降低失效率、減少失效開銷、減少Cache命中時間。(2) 按照產(chǎn)生失效的原因不同,可以把Cache失效分為三類: 強制性失效(Compulsory miss)當(dāng)?shù)谝淮卧L問一個塊時,該塊不在Cache中,需從下一級存儲器中調(diào)入Cache,這就是強制性失效。這種失效也稱為冷啟動失效或首次訪問失效。 容量失效(Capacity miss)如果程序執(zhí)行時所需的塊不能全部調(diào)入Cache中,則當(dāng)某些塊被替換后,若又重新被訪問,就會發(fā)生失效。這種失效稱為容量失效。 沖突失效(Conflict miss)在組相聯(lián)或直接映象Cache中,若太多的塊映象到同一組(塊)中,則會出現(xiàn)該組中某個塊被別的塊替換(即使別的組或塊有空閑位置),然后又被重新訪問的情況。這就是發(fā)生了沖突失效。這種失效也稱為碰撞失效(collision)或干擾失效(interference)。(3) 降低Cache失效率的方法:增加Cache塊大小、提高相聯(lián)度、Victim Cache、偽相聯(lián)Cache、硬件預(yù)取技術(shù)、由編譯器控制的預(yù)取和編譯器優(yōu)化。(4) 替換算法 隨機法:為了均勻使用一組中的各塊,這種方法隨機地選擇被替換的塊。 最近最少使用法LRU(Least Recently Used):選擇近期最少被訪問的塊作為被替換的塊。但由于實現(xiàn)比較困難,現(xiàn)在實際上實現(xiàn)的LRU都只是選擇最久沒有被訪問過的塊作為被替換的塊。實驗內(nèi)容一 關(guān)于simplescalar的簡要說明SimpleScalar包括多個仿真器:sim-fast ,simsafe,sim-cache,sim-cheetah,sim-profile,sim-bpred,sim-eio和sim-outorder。 本次實驗使用的是sim-cache,下面說明一下sim-cache。sim-cache: 在這個仿真中加入了cache,用戶可以對cache及TLB 進行設(shè)置,支持兩級的cache和一級的TLB,第一級cache和TLB均分為數(shù)據(jù)和指令兩部分。(摘自百度百科)下面簡要說明一下有關(guān)cache的信息:一般來說,Cache的結(jié)構(gòu)參數(shù)主要包括以下幾個方面:容量、塊大小、相聯(lián)度、替換算法等。在SimpleScalar模擬器中,采用了兩級Cache結(jié)構(gòu),同時數(shù)據(jù)和指令Cache分開。SimpleScalar的Cache參數(shù)配置命令為:: :Cache的名稱,其中:dl1:一級數(shù)據(jù)Cache;dl2:二級數(shù)據(jù)Cache;il1:一級指令Cache;il2:二級指令Cache;dtlb:數(shù)據(jù)TLB;itlb:指令TLB; : 組的數(shù)目;:塊大??; :相聯(lián)度; :替換策略。此時,Cache容量為:*。替換策略主要有以下幾種: l :LRU,最近最少使用; f : FIFO,先進先出; r : RANDOM,隨機策略。例如:-cache:dl1 dl1:2048:64:4:r,表示對一級數(shù)據(jù)cache進行配置,2048表示有2048組,64表示cache塊大小為64byte,4表示相聯(lián)度為4,r表示替換策略為RANDOM。在此配置下,一級數(shù)據(jù)cache的容量為2048*64*4=512KB。由于Simplescalar Spec2000測試程序在其官方網(wǎng)站不能下載,故使用simplescalar模擬器自帶的測試程序以及自己設(shè)計的一個程序進行測試。自帶的測試程序是在 /root/simplescalar/simplesim-3.0/tests-pisa/bin.little目錄下的test-math,test-fmath,test-llong以及test-printf。我們所有的實驗內(nèi)容都是對一級數(shù)據(jù)cache來進行分析的。在simplescalar中,我們使用的模擬器是sim-cache。二 simplescalar模擬器基本配置情況下的運行模擬在基本的配置情況下運行自己設(shè)計的程序,代碼如下:#includeMain()printf(“hello world!n”);return 0;1.編輯好程序后,將其保存在/root/simplescalar文件夾下,文件命名為hello.c,用安裝好的simplescalar中的編譯器sslittle-na-sstrix-gcc(它的訪問目錄為/root/simplescalar/bin/sslittle-na-sstrix-gcc)對其進行編譯,編譯后生成了能夠在模擬器中可以運行的可執(zhí)行文件a.out。命令行運行界面如下圖所示:2.我們使用simplescalar中的模擬器sim-cache對a.out模擬執(zhí)行,執(zhí)行后的界面如下圖所示:說明:下面的截取的界面是一個完整的界面,限于完整的界面太大,在后面的實驗內(nèi)容的三、四、五、六部分只截取了我們需要的部分界面。3.對運行結(jié)果進行分析從上面的運行結(jié)果中我們提取出一級數(shù)據(jù)cache(dl1)的信息進行分析:dl1.accesses 4420 # total number of accesses 一級數(shù)據(jù)cache上的總訪問次數(shù)dl1.hits 3963 # total number of hits 一級數(shù)據(jù)cache上的命中次數(shù)dl1.misses 457 # total number of misses 一級數(shù)據(jù)cache上的失效次數(shù)dl1.replacements 201 # total number of replacements一級數(shù)據(jù)cache上發(fā)生替換的次數(shù)dl1.writebacks 190 # total number of writebacks一級數(shù)據(jù)cache上發(fā)生寫回的次數(shù)dl1.invalidations 0 # total number of invalidations一級數(shù)據(jù)cache上無效訪問的次數(shù)dl1.miss_rate 0.1034 # miss rate (i.e., misses/ref) 一級數(shù)據(jù)cache上的失效率dl1.repl_rate 0.0455 # replacement rate (i.e., repls/ref) 一級數(shù)據(jù)cache上發(fā)生替換的概率dl1.wb_rate 0.0430 # writeback rate (i.e., wrbks/ref) 一級數(shù)據(jù)cache上發(fā)生寫回的概率dl1.inv_rate 0.0000 # invalidation rate (i.e., invs/ref) 一級數(shù)據(jù)cache上發(fā)生無效訪問的概率從分析中,我們可以得出,一級數(shù)據(jù)cache總共的失效次數(shù)(dl1.misses)為457次,我們知道容量失效和沖突失效都發(fā)生了替換,所以它們的失效次數(shù)(dl1.replacements)總共為201次,強制性失效次數(shù)為457-201=256次。一級數(shù)據(jù)cache的總失效率為0.1034。三 Cache容量對Cache性能的影響1. 操作說明:(1) 改變simplescalar模擬器中的一級數(shù)據(jù)cache(dl1)的容量配置,我們通過改變組數(shù)來改變它的容量。與此同時固定塊大小為32byte、相聯(lián)度為2以及替換策略為LRU等參數(shù)。(2) 測試的程序是simplescalar自帶的測試程序test-math。2. 運行的界面(截取了部分所需的界面)如下圖所示:容量為2KB(32*32*2*1)時,容量為4KB(64*32*2*1)時,容量為8KB(128*32*2*1)時,容量為64KB(1024*32*2*1)時,3. 運行結(jié)果分析從面的運行結(jié)果中,我們提取所需要的一級數(shù)據(jù)cache的信息,如下表所示:dd1容量總的失效次數(shù)總的失效率容量失效和沖突失效總次數(shù)強制性失效次數(shù)2KB13950.02431331644KB8400.01467121288KB6690.011641325664KB5420.00940542從上表,我們可以分析出,隨著cache容量的不斷增加,程序的失效率不斷降低。容量失效和沖突失效的次數(shù)隨著cache容量的增加不斷地減少,而強制性失效次數(shù)則不斷地增加。四 Cache相聯(lián)度對Cache性能的影響1. 操作說明(1) 改變simplescalar模擬器中的一級數(shù)據(jù)cache的相聯(lián)度大小。與此同時固定cache的容量16KB、塊大小32byte以及替換策略為LRU等參數(shù)。(2) 測試的程序是simplescalar自帶的測試程序test-fmath。2. 運行的界面(只截取了部分所需的界面)如下圖所示:相聯(lián)度為1路時,相聯(lián)度為2路時,相聯(lián)度為4路時,相聯(lián)度為8路時,相聯(lián)度為64路時,3 運行結(jié)果分析從上面的運行結(jié)果中,我們提取所需要的一級數(shù)據(jù)cache的信息,如下表所示:dl1相聯(lián)度總的失效次數(shù)總的失效率容量失效和沖突失效總次數(shù)強制性失效的次數(shù)14920.02968340924920.02967641644760.02862844884720.028410462644700.02820470從上表,我們可以分析得出,隨著相聯(lián)度的增加,程序的失效率逐漸降低,但降低的幅度比較小。容量失效和沖突失效的次數(shù)隨著相聯(lián)度的增加不斷地減少,而強制性的失效次數(shù)則不斷地增加。五 Cache塊大小對Cache性能的影響1. 操作說明(1) 改變simplescalar模擬器中的一級數(shù)據(jù)cache的塊大小。與此同時固定Cache的容量為32KB、相聯(lián)度為2以及替換策略為LRU等參數(shù)。(2) 測試的程序是simplescalar自帶的測試程序test-printf。2. 運行的界面(只截取了部分所需的界面)如下圖所示:塊大小為8byte時,塊大小為16byte時,當(dāng)塊大小為32byte時,當(dāng)塊大小為64byte時,3. 對上面的運行結(jié)果,我們提取所需要的一級數(shù)據(jù)cache的信息,如下表所示:塊大小總的失效次數(shù)總的失效率容量失效和沖突失效總次數(shù)強制性失效的次數(shù)8byte20500.00392204816byte10610.00202105932byte5600.0011355764byte2950.00062293從上表,我們可以分析得出,隨著塊大小的增加,程序的失效率逐漸地降低。容量失效和沖突失效的次數(shù)隨著塊大小的增加,基本維持在一個穩(wěn)定的值,而強制性的失效次數(shù)則不斷地降低,且幅度比較大。六 Cache的替換策略對Cache性能的影響1. 操作說明(1) 改變simplescalar模擬器中的一級數(shù)據(jù)cache的替換策略。與此同時固定Cache的塊大小為32byte、相聯(lián)度為2。在Cache容量為2KB、4KB、8KB和64KB的情況下,分別進行測試。(2) 測試的程序是simplescalar自帶的測試程序test-llong。2. 運行的界面(只截取了部分所需的界面)如下圖所示:容量為2KB時,使用了LRU替換策略使用了RANDOM策略容量為4KB時,使用了LRU替換策略使用了RANDOM策略容量為8KB時,使用了LRU策略使用了RANDOM策略容量為64KB時,使用了LRU替換策略使用了RANDOM策略3. 對上面的運行結(jié)果,我們提取所需要的一級數(shù)據(jù)cache信息,如下表所示:dl1容量替換策略總的失效次數(shù)總的

溫馨提示

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

評論

0/150

提交評論