計算機(jī)體系結(jié)構(gòu)第四次實(shí)驗(yàn)tomasulo方法實(shí)驗(yàn)_第1頁
計算機(jī)體系結(jié)構(gòu)第四次實(shí)驗(yàn)tomasulo方法實(shí)驗(yàn)_第2頁
計算機(jī)體系結(jié)構(gòu)第四次實(shí)驗(yàn)tomasulo方法實(shí)驗(yàn)_第3頁
計算機(jī)體系結(jié)構(gòu)第四次實(shí)驗(yàn)tomasulo方法實(shí)驗(yàn)_第4頁
計算機(jī)體系結(jié)構(gòu)第四次實(shí)驗(yàn)tomasulo方法實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Tomasulo方法實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模和ㄟ^本實(shí)驗(yàn),理解指令流水化過程中亂序執(zhí)行和寄存器重命名方法。二、實(shí)驗(yàn)內(nèi)容:1、用dlxView模擬器或Tomasulo算法模擬器執(zhí)行浮點(diǎn)指令程序段。2、指出指令亂序執(zhí)行和寄存器重命名過程。三、實(shí)驗(yàn)環(huán)境操作系統(tǒng):Windows7旗艦版處理器:Intel(R)Core(TM)i3雙核內(nèi)存:軟件:Tomasulo算法模擬器四、實(shí)驗(yàn)過程:Load2加成4T觸15功能部件的執(zhí)行時間1、設(shè)置Tomasulo算法模擬器參數(shù)其中Load部件的執(zhí)行時間不能設(shè)置為1,至少為2,故不作修改;加/減法部件的執(zhí)行時間為4個時鐘周期,乘法部件的執(zhí)行時間為7個時鐘周期,除法部件的執(zhí)行時

2、間為15個時鐘周期。2、分析Tomasulo算法模擬器中指令亂序執(zhí)行過程Tomasulo算法模擬器中默認(rèn)設(shè)置的指令下圖所示:指令執(zhí)行該指令序列,重點(diǎn)觀察指令狀態(tài)的寫結(jié)果一欄,便會發(fā)現(xiàn)執(zhí)行過程中存在亂序執(zhí)行現(xiàn)象,共有兩處亂序執(zhí)行,分別如下列圖所示:指令狀態(tài)指令抗勺與第果LD%21陰)L4LDP4,(R4)26MULI.DF4,F(xiàn)63LSUBBFILL陽,F(xiàn)446飛BIIT.D12,FS5ADDDFBjFIOiF4E,圖中顯示,在第10周期時,位于指令之后的指令經(jīng)過4個周期已經(jīng)執(zhí)行完成并已經(jīng)將結(jié)果寫回寄存器,而指令仍在執(zhí)行中。指令狀態(tài)-釐融執(zhí)行馬結(jié)果L.DF6,幅)12七4L.D23%5MULT.

3、IJ院,F4,F636T213酒口F10-通咫4B飛10iDIV口Fii%ya5ADDDF6iFIOiT46ir在第13周期時,指令經(jīng)過7個周期執(zhí)行完畢,才將結(jié)果寫回。此外,還可以看到,位于指令之后的指令在第11周期時就已經(jīng)開始執(zhí)行,而指令直至現(xiàn)在都未開始執(zhí)行。指令狀態(tài)指令融颯行號鰭果L.DF白,21哈)LL.DF4,16(R4)2門EMUUEF4,F(xiàn)6313SUBJFIOp陽,F(xiàn)4q6飛10DiirdF12,F2,F85l廣ADD.BF8jFIOiF4F.iri415在第15周期時,指令經(jīng)過4個周期執(zhí)行完畢,先于指令寫回結(jié)果;而指令仍在執(zhí)行中。旌狀態(tài)I指令流出出行寫鰭果LIj圖,21(S3)

4、1爐吸4L.EF4?1&G14)25MULT,D72,F4,鳴3fl1213SUE.IFlOz我,F44它飛10DIV.JFi2F。附5143編ADD.1F6;F1QF4&1P1415在第29周期時,指令經(jīng)過15個周期終于執(zhí)行完畢,將結(jié)果寫回寄存器。以上分析證明,在Tomasulo算法中存在亂序執(zhí)行并且不會影響執(zhí)行結(jié)果的正確性。這是因?yàn)椋琓omasulo算法采用分布的保留站,沖突檢測和指令執(zhí)行控制是分布的。3、分析Tomasulo算法模擬器中寄存器重命名過程在Tomasulo算法中通過寄存器重命名來消除WAR沖突,這一過程是通過保留站來完成的。當(dāng)指令流出到保留站時,若其操作數(shù)已經(jīng)就緒,則將該指

5、令中相應(yīng)的寄存器號換為該數(shù)據(jù)本身;若其操作數(shù)還未計算出來,則將該指令中相應(yīng)的寄存器號重命名為將產(chǎn)生這個操作數(shù)的保留站的標(biāo)識,從而使得該指令與此寄存器不再有關(guān)系,后面指令對此寄存器的寫入操作也不可能對該指令造成WAR沖突了。(1)將指令中相應(yīng)的寄存器號換為數(shù)據(jù)本身令之間存在一個WAR沖突,即指令要讀寄存器F8中的值,要寫寄存器F8中的值,由于亂序執(zhí)行,指令會先于指令完成;但是執(zhí)行結(jié)果卻不會發(fā)生錯誤,是因?yàn)門omasulo算法通過寄存器重命名將這一沖突消除了。可以看到在第5周期時,指令流出到保留站中,此日F8中的值已經(jīng)由前面的指令得出,為M1,但是模擬器并沒有將相應(yīng)的寄存器號RF8寫入Vk字段中,

6、而是將其換為了F8中數(shù)據(jù)本身M1,從而使得該指令與寄存器F8不再有關(guān)聯(lián),無論后面指令怎樣改寫F8也都不會影響該指令的正確執(zhí)行了。此外,由于前面的指令還未得出F2的值,故指令將寄存器F2重命名為指令的保留站標(biāo)識Multi,寫入Qj字段中。如下圖所示:宜出曲行蕓姑其LD 咄,凱由J2、4LD 小 111W5際工,戲,F(xiàn)ti再3SUE: D F1h叫45IV 川3出E弓具二手:用右邊的畏阻控M報當(dāng)?shù)呐欧?指令觸Azdl:es5UZi.nH.IL.* i%FfriltlT*E加匚工D加erwilNELt 充T中DIV. 11I Tine 總稱 Bury DijYk5手:HF:TZgFL4毒口冷費(fèi)4F2

7、&FE8F30Qi仁11L=&42Ld4.1LAHLEMiML在這個周期中,指令已經(jīng)執(zhí)行完畢,并且已經(jīng)將寄存器F8中的值由M1改寫成了M5,但此時指令仍在正確執(zhí)行著,并沒有發(fā)生任何錯誤,并且經(jīng)過15個執(zhí)行周期可以正確完成執(zhí)行過程,第15周期如下圖所示:席用右迎糊港R,由專柄善/行均曜Tara 名掰Suh尸Dj:注/Fo*AMNolil&13館AEEhtJt* I祁11字忖JQFE距PLOELF1HFIEFIBJ2D旌KMF3B50AhiHull&叫&州忙與以器由此說明了將指令中相應(yīng)的寄存器號換為數(shù)據(jù)本身這一寄存器重命名的方法成功地消除了WAR沖突。(2)將指令中相應(yīng)的寄存器號重命名為將產(chǎn)生該操

8、作數(shù)的保留站的標(biāo)識對Tomasulo算法模擬器中默認(rèn)設(shè)置的指令進(jìn)行重排,將第一條指令后移兩個位置,重排后的指令如下圖所示:指令L.D*F4一MULT DTF?VLL.F8/SUB. DTF10Dlk DF12ABD.DF3V見IFMlbNixLl -isR4F4F6T21的一FbF4FRFBF10啊Null*HullMl ,NyXl 可以看到,在該指令序列中,最后一條指令和前一條指令之間仍然存在一個WAR沖突。執(zhí)行該指令序列,觀察執(zhí)行過程??梢园l(fā)現(xiàn)在第5周期時,指令流出到保留站中,而此時前面的指令還未得出 F8的值,但是模擬器并沒有將相應(yīng)的寄存器號RF8寫入Vk字段中,而是將其換為了指令的保留

9、站標(biāo)識Load2寫入了 Qk中,從而使得該指令與寄存器F8不再有關(guān)聯(lián),無論后面指令怎樣改寫F8也都不會影響該指令的正確執(zhí)行了,如下圖所示:SUE B41k tiTim 看希 kliL 11M后退當(dāng)個制Q當(dāng)埒L&iilLX 口心當(dāng)前罔明:字貸FOPE-ai珀陽PLZFL4T161rarPZ4f6rzBr.3o5Lz.iLLLd . XiUln4NILE5店奇有器AFlflimr.L 的對寄存器F2的處理和前一種情況的相同。在第6周期時,保留站Load2完成計算,得出F8的值M2,就會通過CBD將F8的值直接傳送到指令的保留站 Mult2的Vk字段中,如下圖所示:享EJOflJ&F3110?12r

10、iiusTIBr2rT21T24.t2以TZON-JLtliLcaiLJufdl_|飛1位|ri2當(dāng)前周期:6U4 至小ItlXHIL哂UUU D叫4+眸P不L 口 同21的134fSUE D fid,降 M-iIV。口,由苒5mn n機(jī)mn后百用心迫的胺tE短雇的百 相紐我去心行g(shù)rH址*UEH.IkLoaCpB-I Ling名祚3usfDpjWe3kzUK莉t PJ-VJT-esKDE Dk02dH1ILT. Ml旦瞪ffljlts%, m dHm 11在第12周期時,指令得出F2的值后也會通過CDB將其直接送到指令的保留站中,指令便可以開始執(zhí)行了。(3)分析WAW沖突的消除方法寄存器重命

11、名方法不僅可以消除WAR沖突,還可以配合使用對目標(biāo)寄存器的預(yù)約方法消除WAW沖突。這一方法的思想是,在一條指令流出到保留站時,將結(jié)果寄存器的Qi字段設(shè)置為該指令的保留站標(biāo)識,表示結(jié)果寄存器將要接收該指令的結(jié)果,這樣其實(shí)相當(dāng)于提前完成了寫操作。由于指令是按程序順序流出的,當(dāng)出現(xiàn)多條指令寫同一個結(jié)果寄存器時,最后留下的預(yù)約結(jié)果必定是最后一條指令的,因此能夠消除WAW沖突。為了演示消除WAW沖突的過程,改寫上述指令的最后一條指令,將目標(biāo)寄存器由F8改為F12,如下圖所示:指令LDF4ieR4I11ULTDwf2VF4wreL.D,F321,E3SUE.lF1Cf8F4DIV.JVF1WTF2TF6M

12、DjF12TF10F4一HOFVNullTMLNullTFmoppNullrjsnllTjaZlZ在該指令序列中,指令和最后的指令之間存在WAW沖突,即指令要寫寄存器F12,指令也要寫寄存器F12,由于亂序執(zhí)行,指令會先于指令完成,寫結(jié)果至寄存器F12。若沒有任何防范措施,當(dāng)指令完成后又會寫其執(zhí)行結(jié)果至寄存器F12,修改剛才的指令的執(zhí)行結(jié)果,導(dǎo)致結(jié)果錯誤。但Tomasulo算法通過寄存器重命名和對目標(biāo)寄存器的預(yù)約方法將這一沖突消除了。執(zhí)行修改后的指令序列,觀察執(zhí)行過程??梢钥吹?,在第5周期時,指令流出到保留站中,同時將寄存器F12的Qi字段中設(shè)為指令保留站的標(biāo)識Mult2,完成預(yù)約工作。如下圖

13、所示:策二步:用右迫腦按粗,1SH一軸捌行 穿之北士5局廣赳揄JL.D Hr 1614)L4ULJ 0卜小而ZL D 阻日r 21再J3qf518. D FL怎 Ji, rq-i:iv dr:, np nt* 內(nèi)u*名*?Er培址惟妁SWXW1MHH:】般:】LoWMoT1M 哥立 us yDpVj,AcOj業(yè)MUAW打葡Bpriiit口工n uu Hihitsm d-1處其三哥布塞子可run不pgPIOriFl-1TlfiPIOP22F4J29ILxeU二:fiJhi在第6周期時,指令流出到保留站中,同時將寄存器F12的Qi字段中改寫為該指令保留站的標(biāo)識Add2,這樣就表示寄存器F12最后接

14、收的是指令的執(zhí)行結(jié)果,即使指令在指令之后執(zhí)行完,也無法再改寫寄存器F12了,從而保證了F12中結(jié)果的正確性。如下圖所示:一尋一相至島出摭檸2砧鼻L I H- 1612力trmi P 堂,P廣L B ?Bi 21 jOJ34FBS1B.1 ?L0, fgw f lqmv :r , 25Aim yrim ”Tirt名社HhftLmMH 成IU出口世;HdiBust ??贔lYkAHLSLBlD1c11,M42ItsADD D,皿4IhdFNULJ DHIEg%lt2IlIXD當(dāng)前周期:6艙至口 0roF2MPBetcnzH亳FL6P15mFZ%FZ3.t1/hiltLLwdLLwiZAMLAldz

15、T電機(jī)強(qiáng)I為了驗(yàn)證這一方法的有效性,可以看一下第16周期和第28周期。在第16周期,指令先于指令完成執(zhí)行過程,將結(jié)果寫入寄存器F12中,值為M5;在第29周期,指令也完成執(zhí)行過程,但是再也無法寫寄存器F12了,F(xiàn)12中的值仍然為指令的執(zhí)行結(jié)果M5,如下圖所示:第16周期五、實(shí)驗(yàn)總結(jié):本次實(shí)驗(yàn)主要是借助Tomasulo算法模擬器理解指令流水化過程中亂序執(zhí)行和寄存器重命名方法。通過在Tomasulo算法模擬器執(zhí)行存在WAR沖突或者WAW沖突的浮點(diǎn)指令程序段,分析其中的亂序執(zhí)行現(xiàn)象和寄存器重命名過程,我理解了Tomasulo算法消除WAR沖突和WAW沖突的方法,理解并掌握了寄存器重命名的原理及過程。當(dāng)前同第士2S轉(zhuǎn)移主第28周期由此說明寄存器重命名和對目標(biāo)寄存器的預(yù)約方法成功地消除了WAW沖突。WnltLLwidLSi二生;用右由匕技母,控制指令代肽懺我主壯惑步進(jìn)叵逾前進(jìn)5個圈用非專LB飄出期)V1UH施QU金口冽H右在,F(xiàn)4V一F-ImDFL2hHOIRLoi

溫馨提示

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

最新文檔

評論

0/150

提交評論