【正文】
浮點計算 浮點 s to r e ( S. D ) 2 浮點 loa d ( ) 浮點計算 1 浮點 loa d ( ) 浮點 s to r e ( S. D ) 0 IF ID F0 Mem WB IF ID EX Mem WB F1 F2 F3 IF ID F0 Mem WB F1 F2 F3 IF ID F0 Mem WB F1 F2 F3 IF ID EX Mem WB IF ID F0 Mem WB F1 F2 F3 IF ID EX Mem WB IF ID EX Mem WB 計算機系統(tǒng)結(jié)構(gòu) 4 指令調(diào)度方法 基本原理是按兩條相關(guān)指令之間所需的最小啟動距離將它們隔開,在二者之間安排其它的無關(guān)指令,減少直至消除流水線停頓。i ) x[i]=x[i]+s。 模擬軟件 Cycles圖: 基本指令調(diào)度及循環(huán)展開 時鐘 標號 新鏈 1 新鏈 2 1 L oop F0, 0(R1) 2 DADDIU R1, R1, 8 3 F4, F0, F2 4 BNE R1, R2, Loop 5 (空轉(zhuǎn)) 6 F4, 8 (R1) 計算機系統(tǒng)結(jié)構(gòu) 8 從有效操作比例看,剛才的例子中每個浮點元素運算中使用 3條有效指令,附加 2條循環(huán)控制指令,輔助操作占了太高的比例。 解:先討論幾個注意事項。F4 ← F0 + F2 F4, 0(R1) 。x[i1] ← F8 ( 存結(jié)果) F10,16(R1) 。F14 ← x[i 3]( 取數(shù)) F16, F14, F2 。若 R1≠R2 , 循環(huán) 例 ( P155) 計算機系統(tǒng)結(jié)構(gòu) 10 調(diào)度前的 相關(guān)鏈分析 (未完,接下頁): 例 (續(xù) 1) 時鐘 標號 舊鏈 1 舊鏈 2 舊鏈 3 舊鏈 4 舊鏈 5 1 L oop F0,0(R1) 2 (空轉(zhuǎn)) 3 F4,F0,F2 4 (空轉(zhuǎn)) 5 (空轉(zhuǎn)) 6 F4,0(R1) 7 F6, 8(R1) 8 (空轉(zhuǎn)) 9 F8,F6,F2 10 (空轉(zhuǎn)) 11 (空轉(zhuǎn)) 12 F8, 8(R1) 13 F10, 16(R1) 14 (空轉(zhuǎn)) 15 F12,F10,F2 16 (空轉(zhuǎn)) 17 (空轉(zhuǎn)) 18 F12, 16(R1) 計算機系統(tǒng)結(jié)構(gòu) 11 代碼性能:每輪循環(huán)完成 4個浮點元素運算,共 28拍,其中 14拍是空轉(zhuǎn)。F6 ← x[i 1]( 取數(shù)) F10,16(R1) 。F8 ← F6 + F2 ) F12, F10, F2 。x[i1] ← F8 ( 存結(jié)果) DADDUI R1, R1, 32 。x[i3+4] ← F16 ( 存結(jié)果,指針 +32) 例 (續(xù) 3) 計算機系統(tǒng)結(jié)構(gòu) 13 調(diào)度后的 相關(guān)鏈分析 : 例 (續(xù) 4) 時鐘 標號 新鏈 1 新鏈 2 新鏈 3 新鏈 4 新鏈 5 1 L oop F0,0(R1) 2 F6, 8(R1) 3 F10, 16(R1) 4 F14, 24(R1) 5 A D D . D F 4 , F 0 , F 2 6 A D D . D F 8 , F 6 , F 2 7 F12,F10,F2 8 A D D . D F 1 6 , F 1 4 , F 2 9 F4,0(R1) 10 F8, 8(R1) 11 DADDUI R1,R1, 32 12 F12, 16(R1) 13 B N E R 1 , R 2 , l o o p 14 F16, 8 (R1) 代碼性能:每個浮點元素運算使用 14/4=,無空轉(zhuǎn)。 挖掘更多的循環(huán)級并行 本小節(jié)重點討論不同次循環(huán) 迭代 之間的相關(guān)。i=100。 例 ( P173) 第 i 輪循環(huán) 第 i