【文章內(nèi)容簡(jiǎn)介】
1 6 2 3 4 5 7 1 2 3 4 5 6 7 8 9 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 34 重復(fù)設(shè)置瓶頸段后的時(shí)空?qǐng)D ksTTS ?35 二、 加速比 流水線(xiàn)的加速比( Speedup,S)完成某個(gè)任務(wù)順序執(zhí)行所用時(shí)間與流水線(xiàn)執(zhí)行所用時(shí)間之比。 假設(shè):不使用流水線(xiàn)(即順序執(zhí)行)所用的時(shí)間為 Ts,使用流水線(xiàn)后所用的時(shí)間為 Tk,則該流水線(xiàn)的加速比為 流水線(xiàn)各段時(shí)間相等(都是△ t) ? 一條 k段流水線(xiàn)完成 n個(gè)連續(xù)任務(wù) 所需要的時(shí)間: Tk = (k+ n1)Δ t ? 順序執(zhí)行 n個(gè)任務(wù) 所需要的時(shí)間: Ts = nk△ t 流水線(xiàn)的實(shí)際加速比為 ? 最大加速比 36 knk nkS n ???? ?? 1limm a x流水線(xiàn)的各段時(shí)間不完全相等時(shí) 一條 k段流水線(xiàn)完成 n個(gè)連續(xù)任務(wù)的實(shí)際加速比為 ????????????kikikiitttnttnS1211),m a x ()1( ?kTkTknE*0??個(gè)流水段的總的時(shí)空區(qū)個(gè)任務(wù)占用的時(shí)空區(qū)37 三、 效率 流水線(xiàn)效率( Efficiency, E)是指流水線(xiàn)的設(shè)備利用率。 在時(shí)空?qǐng)D上,流水線(xiàn)的效率定義為 n個(gè)任務(wù)占用的時(shí)空區(qū)與 k個(gè)功能段總的時(shí)空區(qū)之比, 因此流水線(xiàn)的效率包含時(shí)間和空間兩個(gè)方面的因素。 實(shí)際上, n個(gè)任務(wù)占用的時(shí)空區(qū)就是順序執(zhí)行 n個(gè)任務(wù)的總的時(shí)間 T0;而用一條 k段流水線(xiàn)完成 n個(gè)任務(wù)的總的時(shí)空區(qū)為 K Tk , 其中 Tk 是流水線(xiàn)完成 n個(gè)任務(wù)所使用的總時(shí)間,則一條 k段流水線(xiàn)的效率為: ? 各段時(shí)間均相等的流水線(xiàn) 時(shí)空?qǐng)D 38 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 △ t ( n 1) △ t Tk 39 如果每個(gè)流水段時(shí)間是 △ t,且任務(wù)是連續(xù)的實(shí)際效率: 1)1(***????????nkntnkktnkE最大效率: 11m a x ?????? nknL i mEn舉例 ? 計(jì)算: S=a0+a1+a2+a3+a4+a5+a6+a7 ? 對(duì)相關(guān)算式要合理分解算式 —— 盡量分解為少相關(guān)算式: ○ ① S0=a0+a1 ⑤ S4=S0+S1 ○ ② S1=a2+a3 ⑥ S5=S2+S3 ○ ③ S2=a4+a5 ⑦ S6=S4+S5 ○ ④ S3=a6+a7 S 0 S 1 S 2 S 3 S 4 S 5 S 過(guò)程段① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦54321 ① ② ③ ④ ⑤ ⑥ ⑦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 t( Δ t)40 S 0 S 1 S 2 S 3 S 4 S 5 S 過(guò)程段① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦① ② ③ ④ ⑤ ⑥ ⑦54321 ① ② ③ ④ ⑤ ⑥ ⑦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 t( Δ t)41 吞吐率: TP=7/(18Δt ) 效率: E=( 作用區(qū)域面積 ) /( 完成運(yùn)算所需時(shí)間矩形面積 ) =( 7*5Δt ) /( 18Δt* 5) =7/18 例:假設(shè)是靜態(tài)多功能流水線(xiàn) ? 計(jì)算 A*B= ??41 .i ii ba42 1 2 3 4 5 ai bi A+B ? 1— 2— 35 做加法 ? 1— 4— 5 做乘法 解:分解算式 ① S1= ② s2= ③ s3= ④ s4= ⑤ s5=s1+s2 ⑥ s6=s3+s4 ⑦ s7=s5+s6 43 ① ② ③ ④ ⑤ ⑥ ⑦ ① ② ③ ④ ⑤ ⑥ ⑦ ⑤ ⑥ ⑦ ① ② ③ ④ ⑤ ⑥ ⑦ 44 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 時(shí)間 ? 吞吐率 TP= 7/ (15△T ) 效率= (3*4+4*3)/(5*15)=32% 流水線(xiàn)中的相關(guān) 45 什么是流水線(xiàn)相關(guān) 如果要執(zhí)行算式 S=a/b+c,要通過(guò)下列四條指令來(lái)執(zhí)行。 LD R , A DIV R , B ADD R , C;要等 DIV結(jié)果 ST R , S;存結(jié)果 第 2條指令需要第 1條指令的結(jié)果才能執(zhí)行;第 3條指令需要第2條指令的結(jié)果才能執(zhí)行。這就出現(xiàn)了 指令因等待前面結(jié)果,使后面沒(méi)指令無(wú)法繼續(xù)執(zhí)行下去的現(xiàn)象 ,即 相關(guān) 。 46 流水線(xiàn)中的相關(guān)主要分為以下 3種類(lèi)型 47 流水線(xiàn)中的結(jié)構(gòu)相關(guān)(資源相關(guān)) 如果某些指令組合在流水線(xiàn)中重疊執(zhí)行時(shí)產(chǎn)生了資源沖突,那么我們稱(chēng)該流水線(xiàn)有結(jié)構(gòu)相關(guān)。 由于訪(fǎng)問(wèn)同一個(gè)存儲(chǔ)器而引起的結(jié)構(gòu)沖突 48 對(duì)于這種沖突,通常有以下兩種解決方法 解決辦法 (1): 插入暫停周期,即讓流水線(xiàn)在完成前一條指令對(duì)數(shù)據(jù)的存儲(chǔ)器訪(fǎng)問(wèn)時(shí),暫停取后一條指令的操作 時(shí)間(時(shí)鐘周期) 1 2 3 4 5 6 M R e g ALU M R e g M R e g ALU M R e g M R e g ALU M R e g 7 8 lo ad 指令 i+1 指令 i+2 暫 停 M R e g ALU M 指令 i+3 氣泡 氣泡 氣泡 氣泡 氣泡 為消除結(jié)構(gòu)沖突而插入的流水線(xiàn)氣泡 M M 49 分支預(yù)測(cè)部件 指令流水線(xiàn) 數(shù)據(jù)流水線(xiàn) 指令流水線(xiàn)地址生成邏輯 數(shù)據(jù)流水線(xiàn)地址生成邏輯 浮點(diǎn)處理部件 FPU 總線(xiàn)接口部件 微指令ROM 8K 指令 C a c h e 指令譯碼器 控制部件 指令預(yù)取部件