【正文】
Computer Architecture, Autumn 2023 北京郵電大學(xué) 計算機系科學(xué)與技術(shù)系 流水線基礎(chǔ) (Pipelining Basic) 王春露 ( Prof. Chunlu Wang) Computer Architecture, Autumn 2023 流水線技術(shù) 相關(guān)性分析技術(shù) 超標(biāo)量處理機 超流水線處理機 超標(biāo)量超流水線處理機 流水線技術(shù) Computer Architecture, Autumn 2023 流水線是很自然的 ! 176。 洗衣店的例子 176。 A, B, C, D 均有一些衣務(wù)要清洗,甩干,折疊 176。 清洗要花 30 分鐘 176。 甩干要用 30 分鐘 176。 疊衣物也需要 30 分鐘 176。 還要花費 30 分鐘的時間 將衣物放在衣柜里 A B C D Computer Architecture, Autumn 2023 順序操作 176。 洗 4 個人的衣物,順序操作需要 8 個小時 176。 如果使用流水線作業(yè) , 將需要多少時間呢 ? 30 任 務(wù) 順 序 B C D A 時間 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 6 下午 7 8 9 10 11 12 1 2 上午 Computer Architecture, Autumn 2023 流水線作業(yè) 176。 流水線作業(yè)洗 4個人的衣物只需要 個小時 ! 任 務(wù) 順 序 12 2 上午 6 下午 7 8 9 10 11 1 時間 B C D A 30 30 30 30 30 30 30 Computer Architecture, Autumn 2023 流水線 176。 流水線無法幫助解決單個任務(wù) 的 延遲 , 有利于減少整個工作 全部時間 176。 多個 任務(wù)同時操作需要不同 的資源 176。 可能的加速比 = 流水線的段數(shù) 176。 流水線的速率受 速度最慢 的流水段的限制 176。 流水線各段長度不均會降低 加速比 176。 充滿 流水線所需的時間和 排空 流水線所需的時間影響 加速比 176。 會由于依賴而造成阻塞 6 下午 7 8 9 時間 B C D A 30 30 30 30 30 30 30 任 務(wù) 順 序 Computer Architecture, Autumn 2023 傳統(tǒng)的流水線執(zhí)行表示 IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB 程序流 時間軸 Computer Architecture, Autumn 2023 為什么采用流水線呢 ? 因為有資源空閑 ! 指 令 順 序 時間 (時鐘周期 ) Inst 0 Inst 1 Inst 2 Inst 4 Inst 3 ALU Im Reg Dm Reg ALU Im Reg Dm Reg ALU Im Reg Dm Reg ALU Im Reg Dm Reg ALU Im Reg Dm Reg Computer Architecture, Autumn 2023 單時鐘周期 , 多時鐘周期 ,同流水線比較 . Clk Cycle 1 多時鐘周期的實現(xiàn) : Ifetch Reg Exec Mem Wr Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Load Ifetch Reg Exec Mem Wr Ifetch Reg Exec Mem Load Store 流水線的實現(xiàn) : Ifetch Reg Exec Mem Wr Store Clk 單時鐘周期的實現(xiàn) : Load Store Waste Ifetch Rtype Ifetch Reg Exec Mem Wr Rtype Cycle 1 Cycle 2 Computer Architecture, Autumn 2023 為什么使用流水線 ? 176。 設(shè)想我們要執(zhí)行 100 條指令 176。 單周期的機器 ? 45 ns /cycle x 1 CPI x 100 inst = 4500 ns 176。 多周期的機器 ? 10 ns /cycle x CPI (due to inst mix) x 100 inst = 4200 ns 176。 理想的流水線機器 ? 10 ns /cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns Computer Architecture, Autumn 2023 Load指令的五個 階段 176。 Ifetch : 獲取指令 ? 從指令存儲器中獲取指令 176。 Reg /Dec: 獲取寄存器,指令譯碼 176。 Exec: 計算內(nèi)存地址 176。 Mem : 從數(shù)據(jù)存儲器中讀數(shù)據(jù) 176。 Wr : 向寄存器文件寫回數(shù)據(jù) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Ifetch Reg /Dec Exec Mem Wr Load Computer Architecture, Autumn 2023 Pipelining 176。 通過增加指令的執(zhí)行階段增強性能 理想的加速比是流水線的段數(shù) . 我們能夠獲得這個加速比嗎 ? I n s t r u c t i o n f e t c h R e g A L U D a t a a c c e s s R e g 8 n s I n s t r u c t i o n f e t c h R e g A L U D a t a a c c e s s R e g 8 n s I n s t r u c t i o n f e t c h 8 n s T i m e l w $ 1 , 1 0 0 ( $ 0 ) l w $ 2 , 2 0 0 ( $ 0 ) l w $ 3 , 3 0 0 ( $ 0 ) 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 4 6 8 1 0 1 2 1 4 . . . 程序 執(zhí)行 順序 I n s t r u c t i o n f e t c h R e g A L U D a t a a c c e s s R e g T i m e l w $ 1 , 1 0 0 ( $ 0 ) l w $ 2 , 2 0 0 ( $ 0 ) l w $ 3 , 3 0 0 ( $ 0 ) 2 n s I n s t r u c t i o n f e t c h R e g A L U D a t a a c c e s s R e g 2 n s I n s t r u c t i o n f e t c h R e g A L U D a t a a c c e s s R e g 2 n s 2 n s 2 n s 2 n s 2 n s P r o g r a m e x e c u t i o n o r d e r ( i n i n s t r u c t i o n s ) Computer Architecture, Autumn 2023 基本思想 176。 我們要將數(shù)據(jù)通路分割成不同的階段,需要增加些什么 ? I n s t r u c t i o n m e m o r y A d d r e s s 4 3 2 0 A d d A d d r e s u l t S h i f t l e f t 2 I n s t r u c t i o n M u x 0 1 A d d P C 0 W r i t e d a t a M u x 1 R e g i s t e r s R e a d d a t a 1 R e a d d a t a 2 R e a d r e g i s t e r 1 R e a d r e g i s t e r 2 1 6 S i g n e x t e n d W r i t e r e g i s t e r W r i t e d a t a R e a d d a t a A d d r e s s D a t a m e m o r y 1 A L U r e s u l t M u x A L U Z e r o I F : I n s t r u c t i o n f e t c h I D : I n s t r u c t i o n d e c o d e / r e g i s t e r f i l e r e a d E X : E x e c u t e / a d d r e s s c a l c u l a t i o n M E M : M e m o r y a c c e s s W B : W r i t e b a c k Computer Architecture, Autumn 2023 流水線數(shù)據(jù)通路 I n s t r u c t i o n m e m o r y A d d r e s s 4 3 2 0 A d d A d d r e s u l t S h i f t l e f t 2 I n s t r u c t i o n I F / I D E X / M E M M E M / W B M u x 0 1 A d d P C 0 W r i t e d a t a M u x 1 R e g i s t e r s R e a d d a t a 1 R e a d d a t a 2 R e a d r e g i s t e r 1 R e a d r e g i s t e r 2 1 6 S i g n e x t e n d W r i t e r e g i s t e r W r i t e d a t a R e a d d a t a 1 A L U r e s u l t M u x A L U Z e r o I D / E X D a t a m e m o r y A d d r e s s Computer Architecture, Autumn 2023 流水線技術(shù) 流水線是一種實現(xiàn)技術(shù) 空間并行性 :設(shè)置多個獨立的操作部件 如: 多操作部件處理機、超標(biāo)量處理機 時間并行性 :采用流水線技術(shù) 不增加或只增加少量硬件就能使運算速度提高幾倍, 如: 流水線處理機、超流水線處理機 流水線工作原理 流水線的分類 線性流水線的性能分析 非線性流水線的調(diào)度技術(shù) Computer Architecture, Autumn 2023 流水線工作原理 流水線鎖存器 流水線的每一個階段稱為 流水步 、流水步驟、 流水段 、流水 線階段、流水功能段、 功能段 、 流水級 、流水節(jié)拍等。 在每一個流水段的末尾或開頭必須設(shè)置一個 (多個 )寄存器,稱為 流水寄存器、流水鎖存器、流水閘門寄存器等 。 流水鎖存器會增加每條指令的執(zhí)行時間,但采用流水線之 后整個程序的執(zhí)行時間會縮短。 為了簡化,在一般流水線中不畫出流水鎖存器。 輸入指令分析器分析 k+1流水鎖存器指令執(zhí)行部件執(zhí)行 k流水鎖 存 器輸出△ t 1 △ t 2Computer Architecture, Autumn 2023 流水線的表示方法 流水線的 連接圖 表示方法 表示流水線的邏輯關(guān)系 流水線的 時空圖 表示方法 表示流水線的時間關(guān)系 流水線的 預(yù)約表 表示方法 將在非線性流水線中介