多指令流出技術(shù)課件_第1頁(yè)
多指令流出技術(shù)課件_第2頁(yè)
多指令流出技術(shù)課件_第3頁(yè)
多指令流出技術(shù)課件_第4頁(yè)
多指令流出技術(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

1、4.4 多指令流出技術(shù) 一個(gè)時(shí)鐘周期內(nèi)流出多條指令, CPI1。 多指令流出處理器有三種基本結(jié)構(gòu): 超標(biāo)量(Superscalar) 每個(gè)時(shí)鐘周期流出的指令數(shù)不定,它既可 以通過(guò)編譯器靜態(tài)調(diào)度,也可以通過(guò)記分牌或 Tomasulo算法動(dòng)態(tài)調(diào)度, 超流水(Super Pipeline) 將每個(gè)功能部件進(jìn)一步流水化,特別是取 指令或指令流出被分解為多個(gè)段,使得一個(gè)功 能部件在一拍中可以處理多條指令。第四章 指令級(jí)并行 超長(zhǎng)指令字VLIW(Very Long Instruction Word,簡(jiǎn)記為VLIW) 每個(gè)時(shí)鐘周期流出的指令數(shù)是固定的,它 們構(gòu)成一條長(zhǎng)指令,或說(shuō)是一個(gè)混合指令包, 這種處理器

2、目前只能通過(guò)編譯靜態(tài)調(diào)度。 4.4 多指令流出技術(shù) 采用前面假設(shè)的流水線延遲,并且采用相同的代 碼,即將1個(gè)標(biāo)量和數(shù)組相加: Loop:LDF0,0(R1);F0=數(shù)組元素 ADDDF4,F0,F2;加上在F2中的標(biāo)量 SD0(R1),F4;存結(jié)果 SUBIR1,R1,#8 ;將指針減少8(每個(gè)DW) BNEZR1,Loop;R1不等于0,轉(zhuǎn)移4.4 多指令流出技術(shù)4.4.1 靜態(tài)超標(biāo)量技術(shù) 在典型的超標(biāo)量處理器中,每個(gè)時(shí)鐘周期可 流出1到8條指令。 流出的指令必須不相關(guān)且滿足某些限制條件。 超標(biāo)量處理器的指令序列可以采用靜態(tài)調(diào)度 或動(dòng)態(tài)調(diào)度。 DLX處理器是怎樣實(shí)現(xiàn)超標(biāo)量的呢? 假設(shè):每個(gè)時(shí)

3、鐘周期流出兩條指令: 取(load)指令、存(store)指 令、分支指令或整數(shù)運(yùn)算操作, 任意的浮點(diǎn)操作。 4.4 多指令流出技術(shù)指令整數(shù)指令浮點(diǎn)指令整數(shù)指令浮點(diǎn)指令整數(shù)指令浮點(diǎn)指令整數(shù)指令浮點(diǎn)指令I(lǐng)FIFIDIDIFIFEXEXIDIDIFIFMEMMEMEXEXIDIDIFIFWBWBMEMMEMEXEXIDIDWBWBMEMMEMEXEXWBWBMEMMEMWBWB流水線工作情況 圖4.16 兩路超標(biāo)量指令執(zhí)行示意圖 4.4 多指令流出技術(shù)3.通過(guò)對(duì)指令流出部件采用流水技術(shù),可以很大地 提高指令流出的速率,但同時(shí)必須采用流水化的 功能部件或多個(gè)獨(dú)立的功能部件。4.并行流出一條整數(shù)指令和

4、一條浮點(diǎn)指令,除了一 般的沖突監(jiān)測(cè)機(jī)制,只要增加少量的硬件。5.指令相關(guān)情況 浮點(diǎn)數(shù)據(jù)訪存指令將使用整數(shù)部件,會(huì)增 加訪存的結(jié)構(gòu)沖突。監(jiān)測(cè)是否存在結(jié)構(gòu)相 關(guān)只需檢查兩條指令的操作碼。 浮點(diǎn)寄存器端口的訪問(wèn)沖突: 4.4 多指令流出技術(shù)取操作指令的結(jié)果不能在本周期或下一個(gè)周期使用,所以后續(xù)三條指令不能使用其結(jié)果。分支延遲也變?yōu)槿龡l指令,因?yàn)榉种е噶羁隙ㄊ侵噶罱M合的第一條指令。 例4.9 下面是前面我們使用的循環(huán)程序段,在超標(biāo) 量DLX流水線上將如何調(diào)度? Loop: LD F0,0(R1) ;F0=數(shù)組元素 ADDDF4,F0,F2 ;加上在F2中的標(biāo)量 SD0(R1),F4 ;存結(jié)果 SUBI

5、R1,R1,#8 ;將指針減少8(每個(gè)DW) BNEZR1,Loop ;R1不等于0,轉(zhuǎn)移 4.4 多指令流出技術(shù)解:展開(kāi)并經(jīng)過(guò)調(diào)度的指令序列如圖4.17所示。 Loop: LDLDLDLDLDSDSDSDSDSUBIBNEZSDF0(R1)F6,-8(R1)F10,-16(R1)F14,-24(R1)F18,-32(R1)0(R1),F4-8(R1),F8-16(R1),F12-24(R1),F16 R1,R1,#40R1,Loop8(R1),F20ADDDADDDADDDADDDADDDF4,F0,F2F8,F6,F2F12,F10,F2F16,F14,F2F20,F18,F2123456

6、789101112 整數(shù)指令 浮點(diǎn)指令 時(shí)鐘周期 超標(biāo)量流水線上展開(kāi)的代碼每次循環(huán)需12個(gè)時(shí)鐘周期,即每個(gè)迭代是2.4個(gè)時(shí)鐘周期。而在普通的DLX流水線上,沒(méi)有調(diào)度的迭代1次為9個(gè)時(shí)鐘周期,性能提高了3.75倍;調(diào)度后為6個(gè)時(shí)鐘周期,性能提高了2.5倍;展開(kāi)4次并調(diào)度后每個(gè)迭代為3.5個(gè)時(shí)鐘周期,性能提高了1.4倍。 4.4 多指令流出技術(shù)6.超標(biāo)量處理器與超長(zhǎng)指令字處理器相比有兩個(gè) 優(yōu)點(diǎn): (1)超標(biāo)量結(jié)構(gòu)對(duì)程序員是透明的,因?yàn)樘幚?器能自己檢測(cè)下一條指令能否流出,從而 不需要排列指令來(lái)滿足指令流出; (2)即使是沒(méi)有經(jīng)過(guò)編譯器對(duì)超標(biāo)量結(jié)構(gòu)進(jìn)行 調(diào)度優(yōu)化的代碼或是舊的編譯器生成的代 碼也可以

7、運(yùn)行,當(dāng)然運(yùn)行的效果不會(huì)很好。 要想達(dá)到很好的效果,方法之一: 使用動(dòng)態(tài)超標(biāo)量調(diào)度技術(shù)。4.4 多指令流出技術(shù)4.4.2 動(dòng)態(tài)多指令流出技術(shù) 擴(kuò)展Tomasulo算法:支持兩路超標(biāo)量。 即每個(gè)時(shí)鐘周期流出兩條指令。 (一條是整數(shù)指令,另一條是浮點(diǎn)指令) 1.要求 指令按順序流向保留站,否則信息記錄機(jī)制 會(huì)太復(fù)雜。 將整數(shù)寄存器和浮點(diǎn)寄存器分開(kāi),只要不使 用相同的寄存器就可同時(shí)將一條整數(shù)指令和 一條浮點(diǎn)指令送到它們的保留站中去。 限制相關(guān)指令的并行執(zhí)行。 4.4 多指令流出技術(shù)2.有兩種方式可以實(shí)現(xiàn)兩路超標(biāo)量。 (1) 將指令流出段進(jìn)一步流水化,使指令流出的 速度是基本機(jī)器周期的兩倍。 (2)

8、對(duì)流出的指令組合進(jìn)行限制.只有浮點(diǎn)的取 操作指令或是從整數(shù)寄存器將數(shù)據(jù)送入浮點(diǎn)寄 存器的傳送操作,才會(huì)產(chǎn)生相關(guān)而導(dǎo)致兩條指 令不能同時(shí)執(zhí)行。如果對(duì)流出的指令組合限制 減少,指令組合的復(fù)雜度增加,可能出現(xiàn)的相 關(guān)情況會(huì)更多,對(duì)硬件相關(guān)檢測(cè)的要求就會(huì)大 提高。4.4 多指令流出技術(shù)例4.10 下面的代碼運(yùn)行于采用Tomasulo算法的兩路動(dòng)態(tài)超標(biāo)量DLX流水線上?,F(xiàn)做以下假設(shè):(1)無(wú)論是否相關(guān),每個(gè)時(shí)鐘周期能流出一條整 數(shù)指令和一條浮點(diǎn)指令;(2)有1個(gè)整數(shù)部件,用于整數(shù)運(yùn)算和地址計(jì)算; 有1個(gè)獨(dú)立的浮點(diǎn)功能部件;(3)指令流出和寫結(jié)果各占用1個(gè)時(shí)鐘周期;(4)有1個(gè)具有獨(dú)立分支預(yù)測(cè)能力的分支預(yù)

9、測(cè)部件, 分支指令只能單獨(dú)流出,沒(méi)有分支延遲;(5)因?yàn)閷懡Y(jié)果占用1個(gè)周期,所以產(chǎn)生結(jié)果的延 遲為:整數(shù)運(yùn)算1個(gè)周期,存儲(chǔ)器取數(shù)操作2 個(gè)周期,浮點(diǎn)運(yùn)算3個(gè)周期; 4.4 多指令流出技術(shù) 列表表示出循環(huán)前面三遍循環(huán)各個(gè)指令的流出、開(kāi)始執(zhí)行、訪存和將結(jié)果寫到CDB的時(shí)間。需要分析的源代碼為: Loop:LDF0,0(R1);F0=數(shù)組元素 ADDDF4,F0,F2;加上在F2中的標(biāo)量 SD0(R1),F4;存結(jié)果 SUBIR1,R1,#8 ;將指針減少8(每個(gè)DW) BNEZR1,Loop;R1不等于0,轉(zhuǎn)移解 運(yùn)行結(jié)果如圖4.18所示。 4.4 多指令流出技術(shù) 從圖中可以看出: 程序基本可以達(dá)

10、到3拍流出5條指令, IPC=5/3=1.67條/拍 雖然指令的流出率比較高,但是執(zhí)行效率并不是很高,16拍共執(zhí)行15條指令,平均指令執(zhí)行速度為15/16=0.94條/拍。 4.4 多指令流出技術(shù)4.4.3 超長(zhǎng)指令字技術(shù) 采用多個(gè)獨(dú)立的功能部件,將多條指令的操作 組裝成固定格式的指令包,形成一條非常長(zhǎng)的 指令。 超長(zhǎng)指令字的格式固定,處理過(guò)程簡(jiǎn)單,采用 超長(zhǎng)指令字的處理器所需硬件量比超標(biāo)量要少。 下面討論流出通道較寬的超長(zhǎng)指令字處理器。 4.4 多指令流出技術(shù)1.超長(zhǎng)指令字處理器的指令包括: 兩個(gè)整數(shù)操作、兩個(gè)浮點(diǎn)操作、兩個(gè)訪存操作和一個(gè)分支操作, 每個(gè)操作可能占用16到24位,從而指令長(zhǎng)度

11、達(dá)到112到168位。2.指令中每一個(gè)操作字段稱為操作槽。3.超長(zhǎng)指令字處理器中功能部件的數(shù)量和指令中包含的操作數(shù)量是對(duì)應(yīng)的。4.假設(shè)有一種技術(shù)可以產(chǎn)生滿足超長(zhǎng)指令字要求的代碼段,這個(gè)代碼段用來(lái)構(gòu)建超長(zhǎng)指令字。 5.下面看一個(gè)最基本的超長(zhǎng)指令字處理器的操作過(guò)程。 4.4 多指令流出技術(shù)例4.11 假設(shè)超長(zhǎng)指令字每個(gè)時(shí)鐘周期可同時(shí)流出兩 條訪存指令、兩條浮點(diǎn)指令和一條整數(shù)指令 或分支指令。給出在此處理器上數(shù)組元素循 環(huán)加一個(gè)標(biāo)量的展開(kāi)后的代碼序列。盡可能 展開(kāi)循環(huán)以消除空操作,忽略分支指令的延 遲槽。 解 代碼序列入圖4.19所示,展開(kāi)5遍循環(huán)可以 消除空操作。 4.4 多指令流出技術(shù)LDLDL

12、DSDSDSDF0,0(R1)F10,-16(R1)F18,-32(R1)0(R1),F4-16(R1),F128(R1),F20LDLDSDSDF6,-8(R1)F14,-24(R1)-8(R1),F824(R1),F16ADDDADDDADDDF4,F0,F2F12,F10,F2F20,F18,F2ADDDADDDF8,F6,F2F16,F14,F2SUBIBNEZR1,R1,#40R1,Loop訪存指令1 訪存指令2 浮點(diǎn)指令1 浮點(diǎn)指令2 整數(shù)/轉(zhuǎn)移指令 這段程序的運(yùn)行時(shí)間為8個(gè)時(shí)鐘周期,每遍循環(huán)平均1.6個(gè)時(shí)鐘周期。8個(gè)時(shí)鐘周期內(nèi)流出了17條指令,每個(gè)時(shí)鐘周期2.1條。8個(gè)時(shí)鐘周期共有操作槽85=40個(gè),有效槽的比例為42.5%。 功能部件使用效率不高是超長(zhǎng)指

溫馨提示

  • 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)論