2023年北郵計算機(jī)系統(tǒng)結(jié)構(gòu)實驗報告實驗一到五WINDLX模擬器_第1頁
2023年北郵計算機(jī)系統(tǒng)結(jié)構(gòu)實驗報告實驗一到五WINDLX模擬器_第2頁
2023年北郵計算機(jī)系統(tǒng)結(jié)構(gòu)實驗報告實驗一到五WINDLX模擬器_第3頁
2023年北郵計算機(jī)系統(tǒng)結(jié)構(gòu)實驗報告實驗一到五WINDLX模擬器_第4頁
2023年北郵計算機(jī)系統(tǒng)結(jié)構(gòu)實驗報告實驗一到五WINDLX模擬器_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京郵電大學(xué)實驗報告課程名稱計算機(jī)系統(tǒng)結(jié)構(gòu)計算機(jī)學(xué)院班王陳()目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc"實驗一WINDLX模擬器安裝及使用?PAGEREF_Toc\h3HYPERLINK\l"_Toc"·實驗準(zhǔn)備?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK·實驗環(huán)境?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗環(huán)節(jié) PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗內(nèi)容及規(guī)定?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗過程?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗總結(jié)?PAGEREF_Toc\h8HYPERLINK\l"_Toc"實驗二指令流水線相關(guān)性分析 PAGEREF_Toc\h9HYPERLINK\l"_Toc"·實驗?zāi)康?PAGEREF_Toc\h9·實驗環(huán)境 PAGEREF_Toc\h9HYPERLINK\l"_Toc"·實驗環(huán)節(jié)?PAGEREF_Toc\h9HYPERLINK實驗三DLX解決器程序設(shè)計 PAGEREF_Toc\h17HYPERLINK·實驗?zāi)康?PAGEREF_Toc\h17HYPERLINK·實驗環(huán)境?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK·實驗環(huán)節(jié)?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK·實驗過程?PAGEREF_Toc\h17HYPERLINK\l"_Toc"A.?向量加法代碼及性能分析 PAGEREF_Toc\h17HYPERLINK\l"_Toc"B.雙精度浮點加法求和代碼及結(jié)果分析?PAGEREF_Toc\h22·實驗總結(jié) h27HYPERLINK\l"_Toc"實驗四代碼優(yōu)化?PAGEREF_Toc\h28HYPERLINK\l"_Toc"·實驗?zāi)康?PAGEREF_Toc\h28HYPERLINK\l"_Toc"·實驗環(huán)境 PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK·實驗原理 PAGEREF_Toc\h28HYPERLINK\l"_Toc"·實驗環(huán)節(jié) PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗過程 PAGEREF_Toc\h28HYPERLINK\l"_Toc"·實驗總結(jié)+實習(xí)體會?PAGEREF_Toc\h33HYPERLINK實驗五循環(huán)展開 PAGEREF_Toc\h34HYPERLINK\l"_Toc"·實驗?zāi)康?PAGEREF_Toc\h34HYPERLINK\l"_Toc"·實驗環(huán)境?PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗原理?PAGEREF_Toc\h34HYPERLINK·實驗環(huán)節(jié) PAGEREF_Toc\h錯誤!未定義書簽。HYPERLINK\l"_Toc"·實驗過程?PAGEREF_Toc\h34HYPERLINK矩陣乘程序代碼清單及注釋說明 PAGEREF_Toc\h34HYPERLINK\l"_Toc"相關(guān)性分析結(jié)果?PAGEREF_Toc\h39HYPERLINK增長浮點運算部件對性能的影響 PAGEREF_Toc\h39HYPERLINK\l"_Toc"增長forward部件對性能的影響?PAGEREF_Toc\h39HYPERLINK轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時候的流水線開銷 PAGEREF_Toc\h39HYPERLINK\l"_Toc"·實驗總結(jié)+實習(xí)體會+課程建議?PAGEREF_Toc\h39實驗一WINDLX模擬器安裝及使用WinDLX模擬器的結(jié)構(gòu)和功能說明1.點擊運營之后,會看到一個如下圖所示的窗口。它涉及Register,Code,Pipeline,ClockCycleDiagram,Stat(yī)istics,Breakpoints。接下來具體介模擬器的結(jié)構(gòu)及各個部件的功能。2.Register窗口介紹Rigister窗口中顯示的是各個寄存器的名稱及內(nèi)容。如下圖:可以看到寄存器中以十六進(jìn)制標(biāo)記,從上圖可以看出各個寄存器中的內(nèi)容。2.Code窗口介紹在沒有進(jìn)行任何執(zhí)行的時候,初次打開code窗口,即為下圖所示窗口現(xiàn)實的信息是各個存儲器內(nèi)同。第一列標(biāo)記存儲器的地址;第二列是機(jī)器代碼,用16進(jìn)制表達(dá);第三列是匯編指令。當(dāng)我們點擊上方的,可以選擇單步或多步執(zhí)行(也可以使用快捷鍵F7或F8)。若選擇單步執(zhí)行,每按一次F7,指令執(zhí)行一次,可以看到,一次執(zhí)行的為IF->ID->intEX->MEM->WB,沒執(zhí)行一次尚有顏色的變化。顏色是用來標(biāo)記指令處在哪個流水段的,如下圖。當(dāng)然,我們也可以使用多步執(zhí)行,按快捷鍵F8,選擇5步流水,即可。3.Pipeline窗口介紹通過閱讀WinDLX模擬器說明書可以知道,Pipeline窗口顯示的是DLX解決器的內(nèi)部結(jié)構(gòu)。窗口用下圖標(biāo)記DLX五段流水。當(dāng)然,如同Code窗口介紹講述的那樣,不同的顏色顯示了指令處在哪段流水線。使用快捷鍵F7單步執(zhí)行,可以明顯的看出,不同時候流水段執(zhí)行的不同指令。如下圖。圖片反映的正式與Code中所處的時刻相同的指令流水。可以清楚看到不同流水段執(zhí)行的是哪條指令。4.ClockCycleDiagram窗口實驗準(zhǔn)備中我們已經(jīng)知道,該窗口顯示的是流水線的時空圖。時空圖反映的是不同時隙內(nèi)的運營情況。如下圖。在我看來,時空圖是最佳理解的。由于它反映的就是流水段的并行限度。在這個DLX模擬器中,并不存在一些數(shù)據(jù)或者控制上的沖突問題。所以可以依靠上圖很清楚的看到指令所處的不同流水段,及指令執(zhí)行情況。該時空圖同樣也是和前面的Code等相相應(yīng)。也可以通過快捷鍵F7來進(jìn)一步執(zhí)行指令,可以看到流水線時空圖的擴(kuò)展情況。任意雙擊指令的一行,可以具體看到不同流水段的情況。如下圖所示。5.Statistics窗口介紹該窗口是對運營程序中的數(shù)據(jù)進(jìn)行分析。重要涉及模擬器中硬件配置情況,在該窗口中,我們可以比較不同配置對于該模擬器的不同影響。如下圖所示。整體指令執(zhí)行情況硬件配置情況暫停次數(shù)和比例及因素分析分支次數(shù)和比例Load/Store指令執(zhí)行情況浮點指令執(zhí)行次數(shù)和比例trap發(fā)生的次數(shù)和比例6.Breakpoints窗口介紹該窗口使用來觀測代碼運營情況。先打開Breakpoints窗口,點擊窗口上方的來設(shè)立breakpoint,也就是設(shè)立指令運營到流水線的哪個階段程勛停止執(zhí)行。如上圖,假如選擇EX階段,在Code窗口中相應(yīng)的行會出現(xiàn)BEX,即指令執(zhí)行到譯碼結(jié)束執(zhí)行開始的時候,程序?qū)⒅兄?。·實驗總結(jié)通過本次實驗,由于是第一次接觸DLX模擬器,該實驗可以幫助我對這個模擬器大體的功能及使用做個大體的了解。對于日后的實驗打下好的基礎(chǔ)。我覺得WinDLX模擬器小而精悍,它有不同顏色的標(biāo)記,不同寄存器及存儲器的反映。通過使用它,可以對5步流水的過程及不同階段很清楚明白的看到。也可以看到不同指令分析走到了哪一步,到了哪一步流水段。實驗二指令流水線相關(guān)性分析·實驗?zāi)康耐ㄟ^使用WINDLX模擬器,對程序中的三種相關(guān)現(xiàn)象進(jìn)行觀測,并對使用專用通路,增長運算部件等技術(shù)對性能的影響進(jìn)行考察,加深對流水線和RISC解決器的特點的理解?!嶒灜h(huán)境WindowsXP操作系統(tǒng)WinDLX模擬器·實驗環(huán)節(jié)1.觀測程序中出現(xiàn)的數(shù)據(jù)/控制/結(jié)構(gòu)相關(guān)。指出程序中出現(xiàn)上述現(xiàn)象的指令組合。2.考察增長浮點運算部件對性能的影響。?3.考察增長forward部件對性能的影響。?4.觀測轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時候的流水線開銷。觀測程序中出現(xiàn)的數(shù)據(jù)/控制/結(jié)構(gòu)相關(guān);指出程序中出現(xiàn)上述現(xiàn)象的指令組合。數(shù)據(jù)相關(guān)如下圖所示,在ClockCycleDiagram窗口所想是的時空圖中和Pipeline窗口中的流圖中,第一次出現(xiàn)了R-Stall。接下來可以點擊上圖中的橘色窗口,則屏幕顯示lbur3,0×0(r2)要在WB周期寫回r3中的數(shù)據(jù);而下一條指令seqir5,r3,0×a要在intEX周期中讀?。?中的數(shù)據(jù)。上述過程發(fā)生了WR沖突,即寫讀相關(guān)。為了避免此類沖突,seqr5,r4,0×a的intEX指令延遲了一個周期進(jìn)行。由此,相關(guān)指令為:控制相關(guān)由上圖可以看出,在第4時鐘周期:第一條指令處在MEM段;第二條命令處在intEX段;第三條指令出于aborted狀態(tài);第四條命令處在IF段。因素分析:jalInputUnsigned是無條件分支指令,但當(dāng)?shù)谌齻€周期開始的時候,也就是jal這條指令被譯碼后才知道。此時,movi2fp已經(jīng)執(zhí)行,且將要執(zhí)行的下一條命令在此外一個地址處,所以這條指令不會執(zhí)行,這個時候就會發(fā)生控制相關(guān)。由此,發(fā)生控制相關(guān)的指令為:結(jié)構(gòu)相關(guān)一方面,我們先來看一下執(zhí)行過控制相關(guān)的時空圖和Pipeline,如下圖。當(dāng)我們點擊Pipeline中IF所相應(yīng)的框框可以看到具體的該指令執(zhí)行情況,如下圖:上圖表白了addir2,r2,0×1的具體信息。該指令與它前一條指令addr1,r1,r3發(fā)生了結(jié)構(gòu)相關(guān)。并且由于此處的沖突,需要暫停2個周期。在ID段暫停后,則開始進(jìn)圖intEX段。所以這條指令(addir2,r2,0×1)你不能進(jìn)入ID流水段,譯碼部分占用,發(fā)生了結(jié)構(gòu)相關(guān)。該部分的指令為:考察增長浮點運算部件對性能的影響。該實驗取N=6一方面通過,點擊FloatingPointStageConfiguration來設(shè)立浮點運算部件的配置。由于實驗手冊上面規(guī)定Delay=4,所以我們將Delay這一欄改成4,而Count可以任意,為了對比,我們第一次浮點運算部件取所有為2,第二次浮點運算部件取所有為3。如下圖所示:運營50個cycles之后,可以看到他們數(shù)據(jù)的對比:由此可見,浮點運算部件的增減對效率無影響。比較各個數(shù)據(jù),發(fā)現(xiàn)沒有變化。無論怎么增長浮點運算部件,記錄結(jié)果都同樣。因素在于此程序中浮點計算指令沒有重疊,所以并行度沒有增長,性能沒有提高。3.考察增長forward部件對性能的影響。為了對比有無forward部件的性能。需要在中勾選enableforwarding,以及不勾選enableconfigurat(yī)ion來看性能數(shù)據(jù)的對比。不使用forward部件:使用forward部件:從上面的數(shù)據(jù)我們可以看出增長forwardi部件后RAW由本來占總時鐘周期的26%減少至18%,RAW個數(shù)由本來的13減少至9。增長forward部件使得控制相關(guān)比例增長了。即,使用forward部件后,總的時鐘周期減少,數(shù)據(jù)相關(guān)減少,流水線的性能得到一定的改善。觀測轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時候的流水線開銷。我們假設(shè),浮點部件設(shè)立Count=3,Delay=4;N=6。執(zhí)行完畢后,查看條件轉(zhuǎn)移分支,如下圖所示:由上圖可知,轉(zhuǎn)移指令一共8條,成功轉(zhuǎn)移2條(占25%),不成功為6條。所以,靜態(tài)指令調(diào)度算法只能解決數(shù)據(jù)相關(guān),條件轉(zhuǎn)移結(jié)果與本來相比沒有變化。即,若轉(zhuǎn)移不成功,對流水線的執(zhí)行無影響,流水線的吞吐率和效率沒有減少;若轉(zhuǎn)移成功,則要廢棄預(yù)先讀入的指令,重新從轉(zhuǎn)移成功處讀入指令,執(zhí)行效率會下降。·實驗總結(jié)本次實驗中,重要碰見一個問題,就是在當(dāng)初文獻(xiàn)加載時沒有成功,后來通過查詢資料和自己的嘗試,發(fā)現(xiàn),在選擇文獻(xiàn)的順序很關(guān)鍵,它決定了文獻(xiàn)在存儲器中出現(xiàn)的順序。本次實驗,重要通過對于三中相關(guān)的觀測,分析出現(xiàn)相關(guān)時的指令,分析浮點運算部件和forward部件對性能的影響,觀測轉(zhuǎn)移指令在轉(zhuǎn)移成功和不成功時的流水線開銷,這些實驗一步一步,通過WinDLX形象生動的表達(dá),使我在實踐中更加進(jìn)一步的結(jié)識了流水線。實驗三DLX解決器程序設(shè)計·實驗?zāi)康膶W(xué)習(xí)使用DLX匯編語言編程,進(jìn)一步分析相關(guān)現(xiàn)象·實驗過程向量加法代碼及性能分析一方面給據(jù)題目規(guī)定,需要純熟掌握DLX編程語言,然后根據(jù)規(guī)范格式編寫向量的代碼。向量聲明VectorLength:

.word

16

//聲明向量長度Vector1:

.word

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

//聲明兩個向量

Vector1和Vector2Vector2:

.word

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Result:

.space

4

//聲明一個空間來存放打印的數(shù)據(jù)

Loop:

//循環(huán)體ld

f10,Vector1(r2)

ld

f12,Vector2(r2)

//讀入兩個提前聲明的向量add

f4,f2,f0//加法運算

trap

5

//系統(tǒng)中斷源代碼運營結(jié)果分析當(dāng)運營到如下圖所示的時候,則表達(dá)運營結(jié)束。運營結(jié)果為接下來我們可以查看Statistics可以看到運營結(jié)果的數(shù)據(jù)顯示,如下圖所示。1)程序相關(guān)性分析結(jié)果

數(shù)據(jù)相關(guān)由上圖的可以看出,該程序產(chǎn)生了11.31%的數(shù)據(jù)相關(guān)。所以當(dāng)對當(dāng)前指令的操作數(shù)寄存器進(jìn)行操作(EX)的時候,前幾條指令的運算結(jié)

果尚未寫回(WB)結(jié)果寄存器,由此產(chǎn)生數(shù)據(jù)相關(guān)。

結(jié)構(gòu)相關(guān)由于程序只簡樸的做了一次加法,所以沒有結(jié)構(gòu)相關(guān)產(chǎn)生。

控制相關(guān)查看pipeline中可以看到,當(dāng)執(zhí)行到如下情況時,發(fā)生了控制相關(guān)。由Statistics中的可以看出,其控制相關(guān)發(fā)生了5.3%。分析可知,由于系統(tǒng)按照預(yù)測成功來執(zhí)行指令,所以執(zhí)行bnez后立即將其下一條指令trap

讀進(jìn)來。2)浮點運算部件帶來的影響當(dāng)我們通過設(shè)立浮點部件的個數(shù),并將程序運營完畢,查看Statistics中的數(shù)據(jù)作對比。如下圖所示。將浮點加法器由1個增長為4個后(左圖為4個),可以由上圖看出,程序執(zhí)行的性能未得到提高。分析因素我們知道,由于該程序為產(chǎn)生浮點加法器的結(jié)構(gòu)相關(guān),所以增長浮點加法器的數(shù)量對程序執(zhí)行的性能提高沒有幫助。3)forward部件的影響

由上圖的對比可以看到,當(dāng)不勾選enableforwarding時,運營時間由283增長到381。所以forwarding技術(shù)為該程序帶來的加速比為381/282=1.35轉(zhuǎn)移成功和不成功

查看statistics中的ConditionalBranches選項,兩者的下述相同,如下圖所示。可以發(fā)現(xiàn),由于系統(tǒng)按照預(yù)測成功來執(zhí)行指令,所以執(zhí)行

bnez后立即將其下一條指令trap讀進(jìn)來判斷出是轉(zhuǎn)移不成功時,系統(tǒng)對trap指令進(jìn)行的操作被所有作廢,轉(zhuǎn)而去執(zhí)行跳轉(zhuǎn)到的指令id。雙精度浮點加法求和代碼及結(jié)果分析按照題目規(guī)定,自行又編寫了一套程序來實現(xiàn)雙精度浮點加法求和結(jié)果分析當(dāng)運營到如下圖所示時,運營結(jié)束,可以看到運營結(jié)果如下圖所示。產(chǎn)看Statistics可以看到具體數(shù)據(jù)情況和產(chǎn)生相關(guān)的比例等。1)程序中出現(xiàn)的數(shù)據(jù)/控制/結(jié)構(gòu)相關(guān)

控制相關(guān):

數(shù)據(jù)相關(guān)由Statistics中的知道,發(fā)生了55.48%的數(shù)據(jù)相關(guān)。產(chǎn)看代碼可以發(fā)現(xiàn),產(chǎn)生的相關(guān)都為RW讀寫相關(guān)。它們分別為:addi

r1,r0,0subi

r2,r1,20subi

r2,r1,20beqz

r2,finishmultu

r3,r1,r4ld

f0,a(r3)ld

f2,b(r3)addd

f4,f0,f2addd

f4,f0,f2sd

r(r3),f4

控制相關(guān)由Stat(yī)istics中的可以看到,發(fā)生了4.43%的控制相關(guān)。系統(tǒng)按照預(yù)測成功來執(zhí)行指令,執(zhí)行一條指令后立即將其下一條指令trap讀進(jìn)來。2)增長浮點運算部件對性能的影響。下圖分別為浮點運算部件為1和4的時候數(shù)據(jù)情況對比。由上圖的對比可知,當(dāng)浮點運算部件個數(shù)給邊后記錄結(jié)果均相同,也就是其數(shù)量對該函數(shù)沒有任何性能方面的改善。分期其因素為,這重要是由于函數(shù)中沒有連續(xù)的浮點加指令,乘、

除指令。3)增長forward部件對性能的影響。

下圖左側(cè)為沒有勾選enableforwarding時的運營數(shù)據(jù)結(jié)果,右側(cè)為使用了forwarding技術(shù)。由上圖的對比可以看出,增長forwarding技術(shù)后,流水線的加速比為:474/352=1.347流水線性能有明顯改善。

4)轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時候的流水線開銷。

由ConditionalBranches的數(shù)據(jù)可以看出,該轉(zhuǎn)移指令“not

taken”的情況占絕大多數(shù)(95.24%)。在一共的21中,發(fā)生了僅為1次,所以預(yù)測順序取對流水線的性能是有利的。轉(zhuǎn)移不成功時:順序預(yù)取的下條指令可以直接在流水線中執(zhí)行,保證流水線不斷流;轉(zhuǎn)移成功時:順序預(yù)取的下條指令作廢,需要轉(zhuǎn)到轉(zhuǎn)移地址處重新取指,流水線發(fā)生了斷流現(xiàn)象?!嶒灴偨Y(jié)在實驗中,我重要碰到的問題是WinDLX所加載的.s文獻(xiàn)不要出現(xiàn)中文格式,不然會導(dǎo)致加載失敗(開始好幾次為了方便我直接起名為“雙精度浮點向量加.s”卻怎么樣也導(dǎo)入不成功);在編寫雙精度浮點數(shù)運算時有些對于指令掌握不純熟,并且雙精度double型運算指令,其所有的運算指令名稱上面都要加上“d”才ok。而假如是單精度的,則需要添加字母“f”;另一方面,對于浮點數(shù)的相關(guān)設(shè)立,涉及狀態(tài)寄存器和浮點寄存器都需要在實驗之前查資料了解透徹,不然在實驗中就會有語法錯誤。通過本次實驗我對實驗二所進(jìn)行的數(shù)據(jù)相關(guān)、控制相關(guān)、結(jié)構(gòu)相關(guān)的性能分析做了更進(jìn)一步的了解,以及對于功能部件對流水線的影響,forwarding技術(shù)對流水線的影響,尚有就是靜態(tài)指令調(diào)度等。通過自行編寫向量矢量算法,在代碼中初始化兩個向量,按照分量順序進(jìn)行運算。當(dāng)然,假如想要改變源向量,直接解決代碼中的相關(guān)數(shù)據(jù)即可??傊搶嶒炛匾貙Ω↑c運算以及對于流水線的相關(guān)影響及性能分析,使我受益匪淺。實驗四代碼優(yōu)化·實驗?zāi)康膶W(xué)習(xí)簡樸編譯優(yōu)化方法,觀測采用編譯優(yōu)化方法所帶來的性能的提高?!嶒炘聿捎渺o態(tài)調(diào)度方法重排指令序列,減少相關(guān),優(yōu)化程序·實驗過程選擇上一個實驗的向量加法運算作為優(yōu)化對象。優(yōu)化后的代碼如下圖所示。當(dāng)如下圖所示的時候證明已經(jīng)執(zhí)行完畢。執(zhí)行完畢后,我們點擊Statistics查看運營結(jié)果數(shù)據(jù)分析。程序相關(guān)性分析結(jié)果

優(yōu)化之后其中斷數(shù)據(jù)顯示為:優(yōu)化前為:由上述兩圖對比可以看出,數(shù)據(jù)相關(guān):其RAW相關(guān)由優(yōu)化前的34.12%減少為20.57%,性能改善很多;結(jié)構(gòu)相關(guān)沒有發(fā)生改變;控制相關(guān):由本來的3.94%變?yōu)椋?75%,沒有改善。因此,可以看出,我所進(jìn)行的代碼優(yōu)化對性能方面改善并不是很強(qiáng)烈,重要影響還是在數(shù)據(jù)相關(guān)方面。2)增長浮點運算部件對性能的影響。上圖左圖為4個浮點部件執(zhí)行結(jié)果,右圖為原始默認(rèn)1個浮點部件執(zhí)行結(jié)果。由此可以看出,其部件個數(shù)對記錄結(jié)果并無影響。因素為該運算過程中不存在結(jié)構(gòu)相關(guān),因此并行度沒有增長,程序影響不大,部件增長對于系統(tǒng)的性能并沒有改善。3)增長forward部件對性能的影響。

左圖為使用forwading技術(shù)的記錄結(jié)果。通過對比可以看出,使用forwarding技術(shù)之后執(zhí)行周期少了316-283=33個時鐘周期,在這些時鐘周期中,forwarding技術(shù)重要在于消除了執(zhí)行過程中的數(shù)據(jù)相關(guān)(由65個中斷減少至32個)。因此,代碼執(zhí)行效率改善很多。轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時候的流水線開銷。由記錄結(jié)果中的ConditionalBranches(如下圖)可以看出,優(yōu)化前和優(yōu)化后的ConditionalBranches都為上圖顯示,優(yōu)化對于轉(zhuǎn)移指令并無影響。在本代碼運營過程中,成功幾率為93.75%,在進(jìn)行一共16次轉(zhuǎn)移中,taken一共15次。分析因素可以知道,預(yù)測成功執(zhí)行指令,當(dāng)判斷轉(zhuǎn)移不成功是,系統(tǒng)對trap指令不再執(zhí)行,進(jìn)行跳轉(zhuǎn)。·實驗總結(jié)+實習(xí)體會本次實驗重要是對上一個實驗中的代碼進(jìn)行優(yōu)化,使我在做實驗的過程中掌握了進(jìn)行代碼優(yōu)化的方法,以及相關(guān)性的分析。而相關(guān)性分析在我看來是重點,它關(guān)系到能否進(jìn)行優(yōu)化以及怎么優(yōu)化。一方面需要分析程序中產(chǎn)生的相關(guān)性,代碼優(yōu)化的目的就是減少相關(guān)性的發(fā)生,提高流水線的效率。通過上述的實驗報告和數(shù)據(jù)對比,可以看到,代碼優(yōu)化我做到了。實習(xí)體會:其實總的來說這幾次實驗難度不大,重要還是將課上老師所講的融入實驗當(dāng)中。其中forwarding技術(shù)和預(yù)測技術(shù)都是課上老師具體講過的,所以對于實驗的理解起來更容易一些。理解之后,通過實驗結(jié)果的記錄數(shù)據(jù)可以客觀的看到這些技術(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論