Tomasulo算法實(shí)驗(yàn)報(bào)告_第1頁(yè)
Tomasulo算法實(shí)驗(yàn)報(bào)告_第2頁(yè)
Tomasulo算法實(shí)驗(yàn)報(bào)告_第3頁(yè)
Tomasulo算法實(shí)驗(yàn)報(bào)告_第4頁(yè)
Tomasulo算法實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高級(jí)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)Tomasulo算法實(shí)驗(yàn)報(bào)告Tomasulo算法實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模?)加深對(duì)指令集并行性及開(kāi)發(fā)的理解。(2)加深對(duì)Tomasulo算法的理解。.(3)掌握Tomulo算法在指令流出、執(zhí)行、寫結(jié)果各階段對(duì)浮點(diǎn)操作指令以及l(fā)oad和store指令進(jìn)行什么處理。(4)掌握采用了Tomasulo算法的浮點(diǎn)處理部件的結(jié)構(gòu)。(5)掌握保留站的結(jié)構(gòu)。(6)給定被執(zhí)行代碼片段,對(duì)于具體某個(gè)時(shí)鐘周期,能夠?qū)懗霰A粽?、指令狀態(tài)表以及浮點(diǎn)寄存器狀態(tài)表內(nèi)容的變化情況。二、實(shí)驗(yàn)平臺(tái)采用Tomasulo算法模擬器。Tomasulo算法基本思想:記錄和檢測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減少到最?。煌ㄟ^(guò)寄存器換名來(lái)消除WAR沖突和WAW沖突。三、實(shí)驗(yàn)內(nèi)容和步驟實(shí)驗(yàn)一(1)學(xué)會(huì)使用Tomasulo算法。假設(shè)浮點(diǎn)功能部件的延遲時(shí)間為加減法2個(gè)周期,乘法10個(gè)時(shí)鐘周期,除法40個(gè)時(shí)鐘周期,load部件2個(gè)時(shí)鐘周期。對(duì)于下面的代碼段,給出當(dāng)指令MUL.D寫結(jié)果時(shí),保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。L.DF6,24(R2)L.DF2,12(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2②按步進(jìn)方式執(zhí)行上述代碼,利用模擬器的“小三角按鈕”的對(duì)比顯示功能,觀察每一個(gè)時(shí)鐘周期前后各信息表中內(nèi)容的變化情況。(2)對(duì)與上面相同的延遲時(shí)間和代碼段。①給出在第3個(gè)時(shí)鐘周期時(shí),保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。②步進(jìn)5個(gè)時(shí)鐘周期,給出這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。③再步進(jìn)10個(gè)時(shí)鐘周期,給出這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。實(shí)驗(yàn)二假設(shè)浮點(diǎn)功能部件的延遲時(shí)間為加減法3個(gè)時(shí)鐘周期,乘法8個(gè)時(shí)鐘周期,除法40個(gè)時(shí)鐘周期。對(duì)于下面的代碼重復(fù)實(shí)驗(yàn)一中步驟(2)的內(nèi)容。編寫代碼如下:L.DF6,28(R2)ADD.DF2,F4,F8MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF12,F0,F6ADD.DF10,F8,F2四、實(shí)驗(yàn)結(jié)果及分析說(shuō)明:R[X]表示寄存器X的內(nèi)容,M[y]表示存儲(chǔ)器存儲(chǔ)單元y的內(nèi)容:實(shí)驗(yàn)一實(shí)驗(yàn)二實(shí)驗(yàn)一結(jié)果浮點(diǎn)功能部件的延遲時(shí)間為加減法2個(gè)周期,乘法10個(gè)時(shí)鐘周期,除法40個(gè)時(shí)鐘周期,load部件2個(gè)時(shí)鐘周期,根據(jù)實(shí)驗(yàn)結(jié)果可知程序全部執(zhí)行完需要57個(gè)時(shí)鐘周期。1)當(dāng)指令MUL.D寫結(jié)果時(shí),保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。根據(jù)實(shí)驗(yàn)結(jié)果得出MUL.D寫結(jié)果時(shí)是第16個(gè)周期,此時(shí)各部件的狀態(tài)如下所示:其指令執(zhí)行狀態(tài)如下:②其保留站內(nèi)容如下:分析:此時(shí)SUB.D、ADD.D和MULt1已經(jīng)執(zhí)行完畢,所以Busy狀態(tài)為“no”,而DIV.D還未執(zhí)行完,所以保留站Mult2仍處于忙碌狀態(tài)。③load緩沖器內(nèi)容:分析:此時(shí)Loda緩沖器處于閑置狀態(tài),因?yàn)橹挥星皟蓷l指令需要計(jì)算地址,而前兩條指令在第5個(gè)周期時(shí)已經(jīng)執(zhí)行完,所以指導(dǎo)程序運(yùn)行完的所有周期中該部件都是處于閑置狀態(tài)的。④寄存器內(nèi)容:2)第3個(gè)時(shí)鐘周期時(shí),保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。①指令狀態(tài)②保留站內(nèi)容分析:第3個(gè)時(shí)鐘周期時(shí)MULT.D指令流出,所以保留站的Mult1處于忙碌狀態(tài)。③load緩沖器內(nèi)容:分析:第3個(gè)時(shí)鐘周期時(shí)前兩條去操作數(shù)的指令還為執(zhí)行完,所以load緩沖器的前兩個(gè)緩沖器處于忙狀態(tài)。④寄存器3)步進(jìn)5個(gè)時(shí)鐘周期,給出這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。步進(jìn)5個(gè)時(shí)鐘周期后,是程序執(zhí)行的第8個(gè)周期,此時(shí)各部件的狀態(tài)如下:①指令狀態(tài)(此時(shí)SUB.D指令恰好執(zhí)行完成)②保留站內(nèi)容分析:第8個(gè)周期時(shí)L.D和SUB.D三條指令執(zhí)行完畢,其余三條未完成,所以保留站中仍有其他三條的信息。③load緩沖器內(nèi)容:④寄存器內(nèi)容4)再步進(jìn)10個(gè)時(shí)鐘周期,這時(shí)處于執(zhí)行周期的第18個(gè)周期,這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容:①指令狀態(tài)分析:第18個(gè)周期時(shí)只剩下DIV.D指令未執(zhí)行完,并且此時(shí)正處于執(zhí)行的等待階段。②保留站分析:此時(shí)其余指令全部執(zhí)行完畢,只有DIV.D還未執(zhí)行完,所以只有保留站Mult2仍處于忙碌狀態(tài)。③Load緩沖器④寄存器實(shí)驗(yàn)二結(jié)果浮點(diǎn)功能部件的延遲時(shí)間為加減法3個(gè)周期,乘法8個(gè)時(shí)鐘周期,除法40個(gè)時(shí)鐘周期,load部件2個(gè)時(shí)鐘周期。根據(jù)實(shí)驗(yàn)結(jié)果可知該程序需要56個(gè)周期執(zhí)行完成。(分析與實(shí)驗(yàn)一類似,不再贅述)(1)第3個(gè)時(shí)鐘周期時(shí),保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。①指令狀態(tài)②保留站③load緩沖器內(nèi)容:④寄存器內(nèi)容(2)步進(jìn)5個(gè)時(shí)鐘周期,給出這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。①指令狀態(tài):②保留站內(nèi)容:③Load部件內(nèi)容:④寄存器部件內(nèi)容:(3)再步進(jìn)10個(gè)時(shí)鐘周期,給出這時(shí)保留站、load緩沖器以及寄存器狀態(tài)表中的內(nèi)容。①指令狀態(tài):②保留站內(nèi)容:③Load部件內(nèi)容:④寄存器部件內(nèi)容:五、實(shí)驗(yàn)總結(jié)1.對(duì)并行性的理解流水線使指令重疊并行執(zhí)行,可以達(dá)到提高性能的目的,如果指令間沒(méi)有相關(guān)性,可以并行執(zhí)行,例如程序中前兩個(gè)指令的流出和執(zhí)行階段,第二周期時(shí)第二條LOAD.D的流出和第一條LOAD.D的執(zhí)行同時(shí)進(jìn)行,從而提高了指令執(zhí)行的效率。但是由于程序之間的相互依賴性,使得流水線中指令流的下一條指令不能在指定的時(shí)鐘周期執(zhí)行,這就是流水線沖突。因此為了更好的使程序的運(yùn)行按時(shí)完成,我們必須采取相應(yīng)的措施解決流水線相關(guān)引起的問(wèn)題,而Tomasulo算法就是解決該問(wèn)題的方法之一。2、對(duì)Tomasulo算法的理解Tomasulo算法的核心思想是:①記錄和檢測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減少到最小;②通過(guò)寄存器換名來(lái)消除WAR沖突和WAW沖突。使用Tomasulo算法的流水線需3段:(1)流出:從指令隊(duì)列的頭部取一條指令。①如果該指令的操作所要求的保留站有空閑的,就把該指令送到該保留站(設(shè)為r)。②如果其操作數(shù)在寄存器中已經(jīng)就緒,就將這些操作數(shù)送入保留站r。③如果其操作數(shù)還沒(méi)有就緒,就把將產(chǎn)生該操作數(shù)的保留站的標(biāo)識(shí)送入保留站r。一旦被記錄的保留站完成計(jì)算,它將直接把數(shù)據(jù)送給保留站r。完成對(duì)目標(biāo)寄存器的預(yù)約工作,如果沒(méi)有空閑的保留站,指令就不能流出。執(zhí)行①當(dāng)兩個(gè)操作數(shù)都就緒后,本保留站就用相應(yīng)的功能部件開(kāi)始執(zhí)行指令規(guī)定的操作。②load和store指令的執(zhí)行需要兩個(gè)步驟:計(jì)算有效地址(要等到基地址寄存器就緒);把有效地址放入load或store緩沖器。寫結(jié)果功能部件計(jì)算完畢后,就將計(jì)算結(jié)果放到CDB上,所有等待該計(jì)算結(jié)果的寄存器和保留(包括store緩沖器)都同時(shí)從CDB上獲得所需要的數(shù)據(jù)。3、Tomasulo算法的浮點(diǎn)處理部件的結(jié)構(gòu)Tomasulo算法的浮點(diǎn)處理部件包括:保留站(浮點(diǎn)加法器有3個(gè)保留站:ADD1,ADD2,ADD3;浮點(diǎn)乘法器有兩個(gè)保留站:MULT1,MULT2)、公共數(shù)據(jù)總線CDB、load緩沖器和store緩沖器、浮點(diǎn)寄存器FP、指令隊(duì)列、運(yùn)算部件(浮點(diǎn)加法器和浮點(diǎn)乘法器)4、保留站的結(jié)構(gòu)每個(gè)保留站有以下6個(gè)字段:①Op:要對(duì)源操作數(shù)進(jìn)行的操作。②Qj,Qk:將產(chǎn)生源操作數(shù)的保留站號(hào)。等于0表示操作數(shù)已經(jīng)就緒且在Vj或Vk中,或者不需要操作數(shù)。③Vj,Vk:源操作數(shù)的值。對(duì)于每一個(gè)操作數(shù)來(lái)說(shuō),V或Q字段只有一個(gè)有效。對(duì)于load來(lái)說(shuō),Vk字段用于保

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論