【正文】
相關(guān) I: add r1,r2,r3 J: sub r4,r1,r3 中國科學(xué)技術(shù)大學(xué) ? 讀后寫相關(guān) Write After Read (WAR) InstrJ writes operand before InstrI reads it ? 編譯器編寫者稱之為 ―antidependence‖( 反相關(guān)),是由于重復(fù)使用寄存器名 ―r1‖引起的 . ? DLX(MIPS) 5 段基本流水線不會(huì)有此類相關(guān)因?yàn)?: – 所有的指令都是 5段 , 并且 – 讀操作總是在第 2段,而 –寫操作在第 5段 I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 中國科學(xué)技術(shù)大學(xué) ? 寫后寫相關(guān)( Write After Write (WAW)) InstrJ writes operand before InstrI writes it. ? 編譯器編寫者稱之為 ―output dependence‖ , 也是由于重復(fù)使用寄存器名 ―r1‖引起的 . ? 在 DLX(MIPS) 5段基本流水線中,也不會(huì)發(fā)生。 中國科學(xué)技術(shù)大學(xué) 從時(shí)空?qǐng)D上看,效率就是 n個(gè)任務(wù)占用的時(shí)空面積和 k個(gè)段總的時(shí)空面積之比。缺點(diǎn): 控制邏輯比較復(fù)雜,所需的硬件增加了。 吞吐率 S4 1 2 3 4 5 .. .. .. n1 n S3 1 2 3 4 5 .. .. .. n1 n S2 1 2 3 4 5 .. .. .. n1 n S1 1 2 3 4 5 .. .. .. n1 n 中國科學(xué)技術(shù)大學(xué) 13 – 最大吞吐率與實(shí)際吞吐率的關(guān)系 m a x1 TPnknTP???? 流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每個(gè)段的時(shí)間有關(guān)外,還與流水線的段數(shù) k以及輸入到流水線中的任務(wù)數(shù) n等有關(guān)。△ t Tk 流水線技術(shù)提高系統(tǒng)的任務(wù)吞吐率 中國科學(xué)技術(shù)大學(xué) – 流水線完成 n個(gè)連續(xù)任務(wù)所需要的總時(shí)間為 (假設(shè)一條 k段 線性流水線) Tk= kΔ t+ (n1)Δ t= (k+ n1)Δ t – 流水線的 實(shí)際吞吐率 tnknTP???? )1(? ? ttnknTPn ????????11l i mm a x? 最大吞吐率 :流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定狀態(tài)后所得到的吞吐率。 S 1 S 3 S 2 S 4 入 出 △ t △ t 3 △ t △ t 最大吞吐率為 tTP ?? 31m a x中國科學(xué)技術(shù)大學(xué) 18 3. 解決流水線瓶頸問題的常用方法 – 細(xì)分瓶頸段 例如: 對(duì)前面的 4段 流水線 把瓶頸段 S3細(xì)分為 3個(gè)子流水線段: S3a, S3b, S3c S 1 S 2 入 出 S 4 △ t △ t △ t △ t △ t △ t S 3a S 3c S 3b 改進(jìn)后的流水線的吞吐率 : tTP ??1m a x中國科學(xué)技術(shù)大學(xué) 19 – 重復(fù)設(shè)置瓶頸段 187。 kSE?當(dāng) E=1時(shí), S=k,實(shí)際加速比達(dá)到最大。 例如 branch instructions – 數(shù)據(jù)相關(guān):在數(shù)據(jù)未準(zhǔn)備好之前,就需要使用數(shù)據(jù) 187。 優(yōu)點(diǎn): 簡(jiǎn)單。 DLX( MIPS) 還是有 1個(gè) cycle 的分支延遲 中國科學(xué)技術(shù)大學(xué) 延遲轉(zhuǎn)移 4: 延遲轉(zhuǎn)移 主要思想: 從邏輯上 “ 延長(zhǎng) ” 分支指令的執(zhí)行時(shí)間。 Unconditional = 14%, 65% change PC P i p e l i n e s p e ed u p = P i p e l i n e d ep t h1 + B r a n c h f r e q u en cy ? B r a n c h p en al t y中國科學(xué)技術(shù)大學(xué) 03/08Review:流水線性能分析 流水線技術(shù)應(yīng)用的難度何在 ? :相關(guān)問題 相關(guān)的類型: 結(jié)構(gòu)相關(guān),控制相關(guān),以及 數(shù)據(jù)相關(guān)( RAW, WAR, WAW) 吞吐率、加速比、效率之間的關(guān)系 ktTPEtntktnEtnttnStntnTPtTPkiikijikijkijikiikijii?????????????????????????????????????111111ma x])1([)1()1(}m a x {1中國科學(xué)技術(shù)大學(xué) ? 指令流水線: CPU執(zhí)行大量的指令,指令吞吐率非常重要 ? MIPS 的 ISA: RISC 03/08Review: MIPS的基本流水線 中國科學(xué)技術(shù)大學(xué) 03/08Review ? 相關(guān)會(huì)影響流水線性能 ? 結(jié)構(gòu)相關(guān) : 由于爭(zhēng)用資源而引起的 – 解決辦法 : 等待 增加(或拆分)資源 ? 數(shù)據(jù)相關(guān):兩條指令訪問相同的數(shù)據(jù)而引起的 – 解決辦法: 187。 – 當(dāng)今很多高性能計(jì)算機(jī), Alpha 21164, MIPS R10000等支持精確中斷,但精確模式要慢 10+倍,一般用在代碼調(diào)試時(shí),很多系統(tǒng)要求精確中斷模式,如 IEEE FP標(biāo)準(zhǔn)處理程序,虛擬存儲(chǔ)器等。 不發(fā)射那些目的寄存器與待寫寄存器列表中的指令有 WAW沖突的指令,延遲 1個(gè) cycle發(fā)射 。 Instruction 1 – A 執(zhí)行時(shí)間較長(zhǎng),引起中斷的指令 187。 多個(gè)定向源 : EX/DF, DF/DS, DS/TC, TC/WB – MIPS R4000的浮點(diǎn)數(shù)操作 中國科學(xué)技術(shù)大學(xué) ALU輸入端的定向源 中國科學(xué)技術(shù)大學(xué) 中國科學(xué)技術(shù)大學(xué) MIPS R4000 浮點(diǎn)數(shù)操作 ? 3個(gè)功能部件組成: FP Adder, FP Multiplier, FP Divider ? 在乘 /除操作的最后一步要 使用 FP Adder ? FP操作需要 2( negate) 112個(gè)( square root) cycles ? 8 種類型的 FP units: Stage Functional unit Description A FP adder Mantissa ADD stage D FP divider Divide pipeline stage E FP multiplier Exception test stage M FP multiplier First stage of multiplier N FP multiplier Second stage of multiplier R FP adder Rounding stage S FP adder Operand shift stage U Unpack FP numbers 中國科學(xué)技術(shù)大學(xué) 雙精度浮點(diǎn)數(shù)操作延遲及初始化間隔 中國科學(xué)技術(shù)大學(xué) 浮點(diǎn)指令 延 遲 初始化 間隔 使用的流水段 加、減 4 3 U,S+A,A+R,R+S 乘 8 4 U,E+M,M,M,M,N,N+A,R 除 36 35 U,A,R,D28,D+A,D+R,D+A,D+R,A,R 求平方根 112 111 U,E,(A+R) 108,A,R 取反 2 1 U,S 求絕對(duì)值 2 1 U,S 浮點(diǎn)比較 3 2 U,A,R 中國科學(xué)技術(shù)大學(xué) MIPS FP 流水段 FP Instr 1 2 3 4 5 6 7 8 … Add, Subtract U S+A A+R R+S Multiply U E+M M M M N N+A R Divide U A R D28 … D+A, D+R, D+R, D+A, D+R, A, R Square root U E (A+R)108 … AR Negate U S Absolute value U S FP pare U A R Stages: M First stage of multiplier N Second stage of multiplier R Rounding stage S Operand shift stage U Unpack FP numbers A Mantissa ADD stage D Divide pipeline stage E Exception test stage 中國科學(xué)技術(shù)大學(xué) 注: Multiply Issue U M M U E+M M 中國科學(xué)技術(shù)大學(xué) 注: Multiply 的 第 2 拍的 M 〉 E+M 中國科學(xué)技術(shù)大學(xué) 中國科學(xué)技術(shù)大學(xué) 中國科學(xué)技術(shù)大學(xué) R4000性能( 1) 中國科學(xué)技術(shù)大學(xué) R4000 性能( 2) 中國科學(xué)技術(shù)大學(xué) 基本流水線小結(jié) ? 流水線提高的是指令帶寬(吞吐率),而不是單條指令的執(zhí)行速度 ? 相關(guān)限制了流水線性能的發(fā)揮 – 結(jié)構(gòu)相關(guān):需要更多的硬件資源 – 數(shù)據(jù)相關(guān):需要定向,編譯器調(diào)度 – 控制相關(guān):盡早檢測(cè)條件,計(jì)算目標(biāo)地址,延遲轉(zhuǎn)移,預(yù)測(cè) ? 增加流水線的級(jí)數(shù)會(huì)增加相關(guān)產(chǎn)生的可能性 ? 異常,浮點(diǎn)運(yùn)算使得流水線控制更加復(fù)雜 ? 編譯器可降低數(shù)據(jù)相關(guān)和控制相關(guān)的開銷 – Load 延遲槽 – Branch 延遲槽 – Branch預(yù)測(cè) Acknowledgements ? These slides contain material developed and copyright by: – John Kubiatowicz (UCB) – Krste Asanovic (UCB) – David Patterson (UCB) – Chenxi Zhang (Tongji) ? UCB material derived from course CS15CS25 CS61C ? KFUPM material derived from course COE50COE502 116 中國科學(xué)技術(shù)大學(xué) 中國科學(xué)技術(shù)大學(xué) Review ? 流水線技術(shù)并不能提高單個(gè)任務(wù)的執(zhí)行效率,它可以提高整個(gè)系統(tǒng)的吞吐率 – 多個(gè)任務(wù)同時(shí)執(zhí)行,但使用不同的資源 ? 流水線性能分析:吞吐率、加速比、效率 – 流水線中的瓶頸 ——最慢的那一段 – 其潛在的加速比=流水線的級(jí)數(shù) – 流水段所需時(shí)間不均衡將降低加速比 – 流水線存在裝入時(shí)間和排空時(shí)間,使得加速比降低 ? 由于存在相關(guān)問題,會(huì)導(dǎo)致流水線停頓 – 結(jié)構(gòu)相關(guān)、數(shù)據(jù)相關(guān)和控制相關(guān) 中國科學(xué)技術(shù)大學(xué) Quiz 流水線的成本( cost)可以用 c+k*h估算,其中 c為所有功能段本身的總成本, h為段間鎖存器成本, k為段數(shù)。 – IF/,PC ←(if ((EX/ == branch) amp。 EX/ ← ID/ 。 EX/ ← ID/ – Branch instruction 187。 MEM/ ← Mem[EX/