【正文】
i +1 條 取指 析指 執(zhí)行 問題? PC 譯碼器 ALU 3) 指令重疊執(zhí)行:第 i條指令的執(zhí)行與第 i+1條的析指及第 i+2條的取指重疊 。 執(zhí)行 n條指令 , 分別采用順序執(zhí)行 、 重疊 執(zhí)行 。 ? 問題 3:主存訪問沖突。 11 3) 指令預(yù)取 :在重疊操作中 , 當(dāng)前一條指令在執(zhí)行過程中就需要提前取出后面的指令進(jìn)行相應(yīng)處理 , 這種提前取出后繼指令進(jìn)行相應(yīng)處理 , 稱為先行 ( 預(yù)取 ) 。而這些 buffer一共有六個,最多可以保存六條指令。 若某個子過程所需時(shí)間較長,還可以繼續(xù)細(xì)分為更 小的子過程。 按各過程段用時(shí)是否相等分類 流水線按各過程段用時(shí)是否相等可分為 均勻流水線 和 非均勻流水線 兩種。 16 按流水線的規(guī)??煞譃?操作流水線 、 指令流水線 和宏流水線 。 1) 單功能流水線:只能完成一種固定功能的流水線。 求 階 差 對 階 相 加 規(guī)格化 相 乘 累 加 輸 出 1 2 3 4 6 5 7 8 輸 入 輸 入 相 加 規(guī)格化 輸 出 輸 出 累 加 相 乘 輸 入 求 階 差 對 階 2 3 4 5 6 7 8 6 7 8 ( b )浮點(diǎn)連接 ( a )分段 ( c )定乘連接 1 1 2 3 4 5 18 乘 法 運(yùn) 算流 水 線浮 點(diǎn) 加 法 運(yùn) 算19 流水線按工作方式可分為 靜態(tài)流水線 和 動態(tài)流水線 兩種。 優(yōu)點(diǎn) ○ 靈活,能夠提高流水線各段的使用率,從而提高處理速度。數(shù)據(jù)通過流水線中的各段時(shí),每一個段最多只流過一次。 流水線的特點(diǎn) 24 連續(xù)任務(wù) ,只有連續(xù)不斷的任務(wù)才能充分發(fā)揮流水線的效率。 “ 裝入時(shí)間 ” 和 “ 排空時(shí)間 ” 。 26 流水線的性能分析 一、 吞吐率 KTnTP ?n:任務(wù)數(shù) Tk:處理完成 n個任務(wù)所用的時(shí)間 各段時(shí)間均相等的流水線 ? 各段時(shí)間均相等的流水線 時(shí)空圖 27 S1 S2 S3 S4 空間 時(shí)間 1 ( 單位:△ t ) 1 1 1 2 2 2 2 3 3 3 3 n 1 n 1 n 1 n 1 n n n n … … … … … … … … k 各段時(shí)間不完全相等的流水線 ? 各段時(shí)間不等的流水線及其時(shí)空圖 ○ 一條 4段的流水線 ○ S1, S3, S4各段的時(shí)間: Δ t ○ S2的時(shí)間: 3Δ t (瓶頸段) ? 流水線中這種時(shí)間最長的段稱為流水線的瓶頸段。 在時(shí)空圖上,流水線的效率定義為 n個任務(wù)占用的時(shí)空區(qū)與 k個功能段總的時(shí)空區(qū)之比, 因此流水線的效率包含時(shí)間和空間兩個方面的因素。 LD R , A DIV R , B ADD R , C;要等 DIV結(jié)果 ST R , S;存結(jié)果 第 2條指令需要第 1條指令的結(jié)果才能執(zhí)行;第 3條指令需要第2條指令的結(jié)果才能執(zhí)行。 第 2個條件指出,如果兩條指令之間存在類似上述的傳遞關(guān)系,則它們之間也是相關(guān)的。 53 54 流水線的控制相關(guān) 控制相關(guān)是指因?yàn)槌绦虻膱?zhí)行方向可能被改變而引起的相關(guān) 。 56 * 延遲轉(zhuǎn)移技術(shù) 例如: PUSH BX MOV DX , 8 ADD AX , CX JG L ┋ L: MOV 將前面 1條指令調(diào)到轉(zhuǎn)移指令的后面執(zhí)行,同時(shí)也計(jì)算轉(zhuǎn)移地址。 一般用于單流水線標(biāo)量處理機(jī)中。 58 * 提前形成條件碼 a.在流水線中提前形成條件碼(硬件) 從上一節(jié)的分析可以看出,條件轉(zhuǎn)移造成流水線斷流的一個原因是:條件碼形成太晚。 Amdahl 470V/6計(jì)算機(jī)中采用該方法。 63 SGI公司生產(chǎn)的超流水線處理器 MIPS R4000( RISC): * 兩個 Cache:指令 Cache 和數(shù)據(jù) Cache,容量均為 64KB, 數(shù)據(jù)通路寬度為 64位。有相關(guān)專用 數(shù)據(jù)通路。從 Cache中讀出的區(qū)號要與 存儲器物理地址比較,相等即命中。 5 7 M I P S R 4 0 0 0 超 流 水 線 處 理 機(jī) 結(jié) 構(gòu)68 MIPS R4000正常指令流水工作時(shí)序 I F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W BI F I S R F E X D F D S T C W B當(dāng) 前 C P U 周 期流 水線周 期主 時(shí) 鐘周 期圖 5 。 73 R4000流水線的基本分支延遲為 3個時(shí)鐘周期 R e g R e g數(shù) 據(jù) 存 儲 器指 令 存 儲 器ALUR e g R e g數(shù) 據(jù) 存 儲 器指 令 存 儲 器ALUR e g R e g數(shù) 據(jù) 存 儲 器指 令 存 儲 器ALUR e g R e g數(shù) 據(jù) 存 儲 器指 令 存 儲 器ALUR e g數(shù) 據(jù) 存 儲 器指 令 存 儲 器ALU1 2 3 4 5 6 7 8 9 1 0 1 1時(shí) 間 ( 時(shí) 鐘 周 期 )B Z指 令 1指 令 2指 令 3目 標(biāo)指令序列 時(shí)鐘周期 1 2 3 4 5 6 7 8 9 分支指令 IF IS RF EX DF DS TC WB 延遲槽 IF IS RF EX DF DS TC WB 暫停 stall stall stall stall stall stall stall 暫停 stall stall stall stall Stall stall 分支目標(biāo) IF IS RF EX DF 指令序列 時(shí)鐘周期 1 2 3 4 5 6 7 8 9 分支指令 IF IS RF EX DF DS TC WB 延遲槽(分支指令 +1) IF IS RF EX DF DS TC WB 分支指令 +2 IF IS RF EX DF DS TC 分支指令 +3 IF IS RF EX DF DS 74 基于單周期延遲分支方法, R4000流水線處理分支指令的時(shí)空圖