計算機系統結構實驗2報告

2022-03-26 15:32:43 字數 2719 閱讀 6040

實驗2:流水線及流水線中的衝突

(實驗報告)

姓名:學號:班級:

學院專業班級

姓名學號

實驗時間實驗室實驗台

指導老師簽字成績

一.實驗目的

(1)理解計算機流水線基本概念。

(2)理解mips結構如何用5段流水線來實現,理

(3)解各段的功能和基本操作。

(4)加深對資料衝突、結構衝突的理解,理解這兩類衝突對cpu效能的影響。

(5)進一步理解解決資料衝突的方法,掌握如何應用定向技術來減少資料衝突引起的停頓。

二.實驗內容和步驟

(1)啟動mipssim。

(2)根據預備知識中關於流水線各段操作的描述,進一步理解流水線視窗中各段的功能,掌握各流水暫存器的含義。(用滑鼠雙擊各段,就可以看到各流水暫存器的內容)

(3)參照mipssim模擬器使用說明,熟悉mipssim模擬器的操作和使用方法。

可以先載入乙個樣例程式(在本模擬器所在的資料夾下的「樣例程式」資料夾中)。然後分別以單步執行一條週期、執行多個週期、連續執行、設定斷點等的方式執行程式,觀察程式的執**況,觀察cpu中暫存器和儲存器的內容的變化,特別是流水暫存器內容的變化。

(4)選擇配置選單中的「流水方式」選項,使模擬器工作於流水方式下。

(5)觀察程式在流水線中的執**況,步驟如下:

1)選擇mipssim的「檔案」—>「引導程式」選項來載入

2)關閉定向功能。這是通過「配置」—>「定向」。

3)用單步執行乙個週期的方式執行該程式,觀察每乙個週期中,各段流水暫存器內容的變化、指令的執**況(「**」視窗)以及時鐘週期圖。

4)當執行到第13個時鐘週期時,各段分別正在處理的指令是:

if: lw $r4, 60($r6)

id: addi $r3,$r0,25

ex: addi $r1,$r1,-1

mem: addi $r6,$r0,8

wb: add $r2,$r1,$r0

畫出這時的時鐘週期圖。

(6)這時各流水暫存器中的內容為:

if/ 2361655356

if/ 48

id/id/id/ 25

id/ 537067545

ex/ 4

ex/ 539099135

mem/ 0

mem/ 8

mem/ 37264136

(7)、觀察和分析結構衝突對cpu效能的影響,步驟如下:

1)載入structure_在模擬器所在資料夾下的「樣例程式」資料夾中)。

2)執行該程式,找出存在結構衝突的指令對以及導致結構衝突的部件。

根據始終週期圖可知存在結構衝突的指令是浮點加法指令fadd,導致結構衝突的部件是浮點加法器

3)記錄由結構衝突引起的停頓時鐘週期數,計算停頓時鐘週期數占總執行週期數的百分比。

總週期數為52個,結構停頓週期數35個,佔總執行週期數的67.30769%

4)把浮點加法器的個數改為4個。

5)再次重複步驟(1)~(3)的工作。

如上圖,可知修改後結構衝突引起的停頓時鐘週期數為2個,佔總執行週期數的10.52632%

6)分析結構衝突對cpu效能的影響,討論解決結構衝突的方法。

結構衝突出現的頻率較高,導致的停頓使得cpu流水的效率下降,可以通過分別設定獨立的指令儲存器和資料儲存器的方法,或者仍只是乙個儲存器,但採用兩個分離的cache,即指令cache和資料cache

(8)、 觀察資料衝突並用定向技術來減少停頓,步驟如下:

1)全部復位

2)載入data_

3)關閉定向功能。

4)單步執行乙個週期,同時檢視時鐘週期圖,列出在什麼時刻發生了raw(先寫後讀)衝突。

發生衝突的週期是4、6、7、9、10、13、14、17、18、20、21、25、26、28、29、32、33、36、37、39、40、44、45、47、48、51、52、55、56、58、59

5)記錄資料衝突引起的停頓時鐘週期數及程式執行的總時鐘週期數,計算停頓時鐘週期數占總執行週期數的百分比。

總時鐘週期數65,其中資料衝突引起的停頓時鐘週期數為31,佔總週期數的47.69231%。

6)復位cpu。

7)開啟定向功能。

8)單步執行乙個週期,同時檢視時鐘週期圖,列出在什麼時刻發生了raw(先寫後讀)衝突,並與步驟(3)的結果進行比較。

發生衝突的週期為5、10、13、18、22、25、30、34、37,共9個

9)記錄由資料衝突引起的停頓時鐘週期數以及程式執行的總時鐘週期數,計算採用定向技術後的效能是原來的幾倍。

程式執行的總週期數為43,其中資料衝突引起的停頓數為9個,採用定向技術後效能是原來的65/43=1.51倍

該程式中核心指令為: a,b,c.該指令每次出現都會呼叫浮點加法器進行計算,這種因為資源衝突而不能正常執行,就產生了結構衝突。

為了使各種組合的指令都能夠順利地重疊執行,需要對功能部件進行全流水處理或重複設定足夠多的資源。後續試驗中將浮點加法器的個數換成了四個。

根據實驗結果得到的時鐘週期圖可知:浮點加法器的運算週期為六個時鐘週期,存在結構衝突的指令是在六個時鐘週期內同時需要呼叫浮點加法器的指令,導致結構衝突的部件是浮點加法器。如果將浮點加法器的個數設定成六個的話,該流水線又可以正常執行,消除stall現象,或者將浮點加法器進行全流水處理劃分為多個流水段,這樣也可以實現流水無stall。

三.實驗結果分析

四.討論、建議、質疑

計算機系統結構實驗2報告

班級姓名 2010級 實驗日期學號 2013.3.29 實驗成績 實驗名稱cache效能分析實驗目的 要求及器材實驗內容 步驟及結果 1.加深對cache的基本概念,基本組織結構以及基本工作原理的理解。2.掌握cache容量,相關度。塊大小對cache效能的影響。3.掌握降低cache不命中率的各種...

計算機系統結構實驗報告冊

姓名 孔豔豔 學號 201421102 專業 電腦科學與技術 班級 201421102 指導教師 孫全紅 華北水利水電學院資訊工程學院系統結構教研室 實驗一存貯層次模擬器 學時 4學時 實驗目的 1 使學生清楚認識虛擬存貯層次結構,熟練掌握常用的幾種儲存位址映象與變換方法,以及fifo lru等替換...

計算機系統結構試題

姓名學號 一 名詞解釋 每題3分,共15分 1.系列機 3.2 1cache經驗規則 2.強制性失效 4.指令級並行 二 試從目的 技術途徑 組成 分工方式 工作方式等5個方面對同構型多處理機和異構型多處理機做一比較 列表 10分 三 有哪幾種向量處理方式?它們對向量處理機的結構要求有何不同?6分 ...