計算機體系結構之流水線技術_第1頁
計算機體系結構之流水線技術_第2頁
計算機體系結構之流水線技術_第3頁
計算機體系結構之流水線技術_第4頁
計算機體系結構之流水線技術_第5頁
已閱讀5頁,還剩120頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1北京信息科技大學計算機體系結構3 流水線技術張偉計算機學院計算機體系結構北京信息科技大學大綱n1 概念定義n2 流水線分類n3 MIPS五級流水線n4 性能分析n5 流水線相關n6 高級流水線技術計算機體系結構北京信息科技大學1 概念概念定義定義計算機體系結構北京信息科技大學洗衣店的例子nA, B, C, D 均有一些衣物要均有一些衣物要 n清洗,甩干,折疊清洗,甩干,折疊n清洗要花30 分鐘n甩干要用40 分鐘n疊衣物也需要20 分鐘n四人衣物一共要花 4*(30+40+20)=360分鐘計算機體系結構北京信息科技大學流水線的基本概念ABCD6 PM789TaskOrderTime30 4

2、0404040 20四人衣物一共要花 30+40*4+20=210分鐘計算機體系結構北京信息科技大學流水線的基本概念n流水線技術:把一個重復的過程分解為若干個子過程,每個子程序可以與其他子過程同時進行n描述流水線的工作,最常用的方法是時間-空間圖(時空圖)q橫坐標:表示時間,即各個任務在流水線中所經過的時間q縱坐標:表示空間,即流水線的各個子過程,也稱為級、段、流水線深度(Stage)計算機體系結構北京信息科技大學流水線的時空圖計算機體系結構北京信息科技大學流水線的特點n流水線實際上是把一個功能部件分解成多個獨立的子功能部件(一個任務也就分成了幾個子任務,每個子任務由一個子功能部件完成),并依

3、靠多個子功能部件并行工作來縮短所有任務的執行時間n流水線有助于提高整個程序(所有任務)的吞吐率,但并沒有減少每個指令(任務)的執行時間n流水線各個功能段所需時間應盡量相等。否則,時間長的功能段將成為流水線的“瓶頸”,會造成流水線的“阻塞”(Stall)n流水線開始需要“通過時間” (Fill)和最后需要“排空時間”(Drain)。流水線只有處理連續不斷的任務才能發揮其效率計算機體系結構北京信息科技大學2 流水線分類流水線分類計算機體系結構北京信息科技大學流水線的分類(1)n按流水線所完成的功能分類q單功能流水線:只能完成一種固定功能的流水線q多功能流水線:流水線的各段可以進行不同的連接,使流水

4、線在不同的時間,或者在同一時間完成不同的功能n例如: TI ASC的多功能流水線計算機體系結構北京信息科技大學多功能流水線計算機體系結構北京信息科技大學流水線的分類(2)n按流水線在同一時間內各段的連接方式分類q靜態流水線:n在同一時間內,多功能流水線各段只能按同一種功能連接。只有當按這種方式工作的所有任務都流出流水線之后,才能重新連接以實現其他功能。n在靜態流水線中,只有當輸入是一串相同的運算操作時,流水的效率才能得到發揮。n動畫演示q動態流水線:n在同一時間內,多功能流水線各段可以按不同方式連接,同時執行多種功能 n動畫演示計算機體系結構北京信息科技大學n動態流水線VS靜態流水線q優點:能

5、提高流水線的效率q缺點:會使流水線的控制變得復雜計算機體系結構北京信息科技大學靜態和動態流水線 時空圖對比計算機體系結構北京信息科技大學流水線的分類(3)n按照流水線的級別來分n部件級流水線(運算操作流水線):q把處理機的算術邏輯部件分段,使得各種數據類型的操作能夠進行流水。n處理機級流水線(指令流水線):q把指令的解釋執行過程按照流水方式進行處理。n處理機間流水線(宏流水線):q它是指由兩個以上的處理機串行地對同一數據流進行處理,每個處理機完成一項任務。動畫解析計算機體系結構北京信息科技大學流水線的分類(4)n按流水線是否有反饋回路分類q線性流水線:流水線的各段逐個串接,輸入數據從流水線一端

6、輸入從另一端輸出;每個段都只流過一次。q非線性流水線:流水線的各段除有串接外,還有反饋回路;在一次流水過程中,有的段要被多次使用。(舉例)計算機體系結構北京信息科技大學非線性流水線計算機體系結構北京信息科技大學流水線的分類(5)n按照數據表示來分n標量處理機:q不具有向量指令和向量數據表示,僅對標量進行流水處理的處理機。q例如:IBM360/91, Amdahl 470V/6 等n向量處理機:q具有向量指令和向量數據表示的處理機。q例如:TI ASC, CRAY-I 等計算機體系結構北京信息科技大學流水線的分類(6)n按照流動是否可以亂序來分n順序流動流水線:q流水線輸出端任務流出的順序與輸入

7、端任務流入的順序相同。n異步流動流水線(亂序流水線):q流水線輸出端任務流出的順序與輸入端任務流入的順序不同。計算機體系結構北京信息科技大學3 MIPS五級流水線五級流水線計算機體系結構北京信息科技大學DLX(Dancing Links)nDLX DLX 是一種簡單的指令集(教學、簡單芯片)是一種簡單的指令集(教學、簡單芯片)n在不流水的情況下,如何實現在不流水的情況下,如何實現DLXDLX。q實現DLX指令的一種簡單數據通路計算機體系結構北京信息科技大學MIPS的基本流水線nMIPS指令集結構用5個功能段實現,每個功能段用一個時鐘周期1.取指令周期IF(Instruction Fetch)2

8、.指令譯碼/讀寄存器周期ID(Instruction Decode)3.執行/地址計算周期EX(Execute)v存儲器訪問(計算有效地址)v寄存器寄存器ALU操作v寄存器立即數ALU操作4.存儲器訪問周期MEM(Memory Access)5.寫回周期WB(Write Back)計算機體系結構北京信息科技大學MIPS的簡單實現MemoryAccessWriteBackInstructionFetchInstr. DecodeReg. FetchExecuteAddr. CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSignExtend4Adde

9、rZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm計算機體系結構北京信息科技大學2.一條MIPS指令最多需要以下5個時鐘周期:q取指令周期(IF) 操作nIRMemPCnNPCPC+4q指令譯碼/讀寄存器周期(ID) 操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31) 指令的譯碼操作和讀寄存器操作是并行進行的。 原因:在MIPS指令格式中,操作碼字段以及rs、rt 字段都是在固定的位置。 這種技術稱為固定字段譯碼技術。 計算機體系結構北京信息科技大學q執行/有效地址計算周期(EX) 不同指令所進行的操作不

10、同:n存儲器訪問指令 操作 ALUoA + Immn寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值ALU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2); cond(A = = 0) 將有效地址計算周期和執行周期合并為一個時鐘周期,這是因為MIPS指令集采用loadstore結構,沒有任何指令需要同時進行數據有效地址的計算、轉移目標地址的計算和對數據進行運算。計算機體系結構北京信息科技大學q存儲器訪問/分支完成周期(MEM)n所有指令都要在該周期對PC進行更新。 除了分支指令,其他指令都是做PCNPCn在該周期內處理的MIPS指令僅僅有l

11、oad、store和分支三種指令。n存儲器訪問指令 操作 LMDMemALUo 或者 MemALUoBn分支指令 操作 if (cond) PC ALUo else PCNPC計算機體系結構北京信息科技大學q寫回周期(WB)不同的指令在寫回周期完成的工作也不一樣。n寄存器寄存器ALU指令 操作 Regsrd ALUon寄存器立即數ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD計算機體系結構北京信息科技大學3.不采用單周期實現方案的主要原因q對于大多數CPU來說,單周期實現效率很低,因為不同的指令所需完成的操作差別相當大,因而所需要的時鐘周期時間也大不一樣。q

12、單周期實現時,需要重復設置某些功能部件,而在多周期實現方案中,這些部件是可以共享的。計算機體系結構北京信息科技大學q每一個時鐘周期完成的工作看作是流水線的一段,每個時鐘周期啟動一條新的指令。n流水實現的數據通路q設置了流水寄存器n段與段之間設置流水寄存器n流水寄存器的命名 用其相鄰的兩個段的名稱拼合而成。 例如:ID段與EX段之間的流水寄存器用ID/EX表示n每個流水寄存器是由若干個寄存器構成的 3.5.2 基本的MIPS流水線計算機體系結構北京信息科技大學 MEM/WB 數據 存儲器 通用寄存器組 符號 位 擴展 ALU PC =0? ADD 16 32 4 存儲器 分之 結果 M U X

13、1 M U X 2 M U X 3 M U X 4 IR A B Imm IRrs IRrt MEM/WB.IR NPC NPC IR cond ALUo B IR LMD ALUo IR EX/MEM ID/EX IF/ID 指令 流水實現的數據通路流水實現的數據通路計算機體系結構北京信息科技大學n寄存器的命名形式為:x.yn所包含的字段的命名形式為:x.ys 其中:x:流水寄存器名稱 y:具體寄存器名稱 s:字段名稱 例如: ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:該寄存器的op字段(即操作碼字段)n流水寄存器的作用q將各段的工作隔開,使得它們不會

14、互相干擾。q保存相應段的處理結果。計算機體系結構北京信息科技大學例如:EX/MEM.ALUo:保存EX段ALU的運算結果MEM/WB.LMD:保存MEM段從數據存儲器讀出的數據q向后傳遞后面將要用到的數據或者控制信息 所有有用的數據和控制信息每個時鐘周期 會隨著指令在流水線中的流動往后流動一段。q 增加了向后傳遞IR和從MEM/WB.IR回送到通用寄存 器組的連接。q 將對PC的修改移到了IF段,以便PC能及時地加 4,為取下一條指令做好準備。 計算機體系結構北京信息科技大學2.每一個流水段進行的操作nIRrsIR6.10nIRrtIR11.15nIRrdIR16.20 計算機體系結構北京信息

15、科技大學流水段流水段流水線的每個流水段的操作所有指令類型所有指令類型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.IR MemPCIF/ID.NPC, PC IF/ID.NPC, PC (ifif( EX/MEM.IRop = branch EX/MEM.IRop = branch )& & EX/MEM.condEX/MEM.cond)EX/MEM.ALUo else PC+4EX/MEM.ALUo else PC+4);); ID/EX.A RegsIF/ID.IR

16、rsID/EX.A RegsIF/ID.IRrs;ID/EX.B RegsIF/ID.IRrtID/EX.B RegsIF/ID.IRrt;ID/EX.NPC IF/ID.NPCID/EX.NPC IF/ID.NPC;ID/EX.IR IF/ID.IRID/EX.IR IF/ID.IR;ID/EX.Imm ID/EX.Imm (IF/ID.IRIF/ID.IR1616) )1616#IF/ID.IR#IF/ID.IR16.3116.31; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A f

17、uncfunc ID/EX.B ID/EX.B或或EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A opop ID/EX.Imm ID/EX.Imm; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A + ID/EX.Imm ID/EX.A + ID/EX.Imm;EX/MEM.BID/EX.BEX/MEM.BID/EX.B; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.NPC + ID/

18、EX.NPC + ID/EX.Imm ID/EX.Imm2 2;EX/MEM.cond EX/MEM.cond (ID/EX.A ID/EX.A =0 0);); (動畫演示)(動畫演示)(動畫演示)(動畫演示)(動畫演示)計算機體系結構北京信息科技大學流水段流水段任何指令類型任何指令類型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令MEMMEMWBWBMEM/WB.IR EX/MEM.IRMEM/WB.IR EX/MEM.IR;MEM/WB.ALUo MEM/WB.ALUo EX/MEM.ALUo EX/MEM.ALUo; MEM/WB.IR E

19、X/MEM.IRMEM/WB.IR EX/MEM.IR;MEM/WB.LMD MEM/WB.LMD MemEX/MEM.ALUo MemEX/MEM.ALUo;或或MemEX/MEM.ALUo MemEX/MEM.ALUo EX/MEM.B EX/MEM.B; RegsMEM/WB.IRrd RegsMEM/WB.IRrd MEM/WB.ALUo MEM/WB.ALUo;或或RegsMEM/WB.IRrt RegsMEM/WB.IRrt MEM/WB.ALUo MEM/WB.ALUo; RegsMEM/WB.IRrt RegsMEM/WB.IRrt MEM/WB.LMD MEM/WB.LMD;

20、 流水線的每個流水段的操作(動畫演示)(動畫演示)(動畫演示)(動畫演示)計算機體系結構北京信息科技大學4 流水線性能分析流水線性能分析計算機體系結構北京信息科技大學流水線性能分析n吞吐率(throughput rate)單位時間內流水線所完成的任務數或輸出結果的數量n加速比(speedup ratio)完成一批任務,使用非流水線執行時間與使用流水線執行時間之比n效率(efficiency)(指流水線的設備利用率)從時空圖看,就是n個任務占用的時空區和m個段總的時空區之比計算機體系結構北京信息科技大學1.吞吐率n單位時間內流水線所完成的任務數量最大吞吐率:流水線在連續流動達到穩定狀態后所得到的

21、吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取決于流水線最慢的功能段所需的時間實際吞吐率假設m段時間相等t0的流水線完成n個任務 t0 (說明)00) 1(tntmnTnTP流水計算機體系結構北京信息科技大學例題 分析n一個具有7段流水線的CPU,各段的執行時間分別為2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns ,在該CPU上完成10個連續任務所需要的時間為( )ns, 該CPU的最高頻率為( )MHz. 計算機體系結構北京信息科技大學流水線優化思路n流水線各段時間不等帶來性能損失q舉例n消除瓶頸的方法 (舉例)q細分瓶頸

22、段 q重復設置瓶頸段 (時-空圖)計算機體系結構北京信息科技大學2. 加速比n完成一批任務,使用非流水線執行時間與使用流水線執行時間之比假設m段時間相等t0的流水線完成n個任務1) 1(000nmmntntmtmnTTS流水非流水計算機體系結構北京信息科技大學3. 效率n由于流水線有通過時間和排空時間,所以流水線的各段并不是一直滿負荷地工作。n從時空圖看,就是n個任務占用的時空區和m個段總的時空區之比假設m段時間相等t0的流水線完成n個任務10nmnTmtnmmnE流水個段總時空區個任務時空區(舉例) 計算機體系結構北京信息科技大學例題1n在靜態流水線上計算 AiBi , (i=4) 求:吞吐

23、率,加速比,效率。計算機體系結構北京信息科技大學解:n(1) 確定適合于流水處理的計算過程n(2) 畫時空圖n(3) 計算性能q吞吐率 TP7(20t) q加速比 S(34t)(20t)1.7q效率 E(4436)(820)0.21 A1B1+ A2B2+ A3B3+ A4B4計算機體系結構北京信息科技大學進一步優化n可以看出,在求解此問題時,該流水線的效率不高。 (原因)n動態流水線的時空圖 舉例 n這樣行不行? n正確答案計算機體系結構北京信息科技大學n瓶頸問題q理想情況下,流水線在工作時,其中的任務是同步地每一個時鐘周期往前流動一段。q當流水線各段不均勻時,機器的時鐘周期取決于瓶頸段的延

24、遲時間。q在設計流水線時,要盡可能使各段時間相等。n流水線的額外開銷p流水寄存器延遲p時鐘偏移開銷3.3.5 流水線設計中的若干問題計算機體系結構北京信息科技大學q流水寄存器需要建立時間和傳輸延遲n建立時間:在觸發寫操作的時鐘信號到達之前,寄 存器輸入必須保持穩定的時間。n傳輸延遲:時鐘信號到達后到寄存器輸出可用的時 間。q時鐘偏移開銷n流水線中,時鐘到達各流水寄存器的最大差值時間。(時鐘到達各流水寄存器的時間不是完全相同)計算機體系結構北京信息科技大學有關流水線性能的若干問題n(1) 流水線并不能減少(而且一般是增加)單條指令的執行時間,但卻能提高吞吐率。(2) 適當增加流水線的深度(段數)

25、可以提高流水線的性能。(3) 流水線的深度受限于流水線的延遲和流水線的額外開銷。(4) 相關問題。如果流水線中的指令相互獨立,則可以充分發揮流水線的性能。但在實際中,指令間可能會是相互依賴,這會降低流水線的性能。下一節介紹如何解決相關問題。計算機體系結構北京信息科技大學5 流水線相關流水線相關計算機體系結構北京信息科技大學流水線中的相關(1)n流水線中存在一些沖突(冒險Hazard,相關、依賴Dependence,競爭Competition)的情況,它使得下一條指令無法在預定設計的時鐘周期內執行。這些沖突將降低流水線性能n主要有三種類型的沖突(相關)q結構相關(資源沖突):當指令重疊執行過程中

26、,硬件資源滿足不了指令重疊執行的要求q數據相關(數據沖突) :在同時執行的多條指令中,一條指令依賴前一條指令的執行結果(數據)q控制相關(控制沖突):流水線遇到分支指令或其他改變PC值的指令計算機體系結構北京信息科技大學流水線中的相關(2)n相關有可能會使流水線停頓。n當一條指令被暫停時,暫停在其后發射(流出)的指令,但繼續執行在其前發射的指令。n消除相關的基本方法:q讓流水線中的某些指令暫停,而讓其它指令繼續執行。計算機體系結構北京信息科技大學結構相關n1. 在流水線機器中,為了使各種指令組合能順利地重疊執行,需要把功能部件流水化,并把資源重復設置。n2. 如果某種指令組合因資源沖突而不能順

27、利重疊執行,則稱該機器具有結構相關。n3. 常見的導致結構相關的原因:q功能部件不是全流水q重復設置的資源的份數不夠計算機體系結構北京信息科技大學n4. 結構相關舉例:訪存沖突q當數據和指令存在同一存儲器中時,訪存指令會導致訪存沖突。q解決辦法: 插入暫停周期(“流水線氣泡” ) 引入暫停后的時空圖q解決方法: 設置相互獨立的指令存儲器和數據存儲器或設置相互獨立的指令Cache和數據Cache。計算機體系結構北京信息科技大學n5. 避免結構相關q所有功能單元完全流水化q設置足夠的硬件資源硬件代價很大n6. 有些設計方案允許有結構相關q降低成本q減少部件的延遲計算機體系結構北京信息科技大學數據相

28、關n1. 數據相關簡介q當指令在流水線中重疊執行時,流水線有可能改變指令讀/寫操作數的順序,使之不同于它們在非流水實現時的順序,這將導致數據相關。q舉例q當兩條指令對存儲器同一單元進行讀寫時,也可能發生數據相關。但本章僅討論有關寄存器的數據相關。計算機體系結構北京信息科技大學n2. 利用定向技術減少數據相關引起的暫停q(1) 主要思路:在發生上述數據相關時,如果能夠將計算結果從其產生的地方直接送到需要它的地方,就可以避免暫停。q(2) 當定向硬件檢測到前面某條指令的結果寄存器就是當前指令的源寄存器時,控制邏輯會將前面那條指令的結果直接從其產生的地方定向到當前指令所需的位置。q(3) 工作過程演

29、示q(4) 一個功能單元的輸出不僅可以定向到其自身的輸入,而且還可以定向到其它單元的輸入。q(5)所有的定向發生在: (圖示) ALU或DM輸出 ALU輸入,DM輸入,“O”檢測部件計算機體系結構北京信息科技大學數據相關的分類n按照指令對寄存器的讀寫順序,可以將數據相關分為以下三種類型:n(考慮兩條指令i和j,假設i先進入流水線)n(1) 寫后讀相關 (RAW) (命名規則) n在 i 寫入之前,j 先去讀。j 讀出的內容是錯誤的。這是最常見的相關。n(2) 寫后寫相關 (WAW)n(3) 讀后寫相關 (WAR)計算機體系結構北京信息科技大學n4. 需要暫停的數據相關n(1) 并非所有的數據相

30、關都可以用定向技術解決.舉例n(2) 增加流水線互鎖硬件,插入“暫停”。 當互鎖硬件發現這種相關時,就 暫停流水線,直到相關消失。 舉例:演示A(流水線)演示B(時空圖)計算機體系結構北京信息科技大學流水線的控制相關n分支指令主要有:q無條件分支指令:跳轉、過程調用和過程返回q條件分支指令n執行分支指令,程序計數器PC值兩種情況:qPC值改變為目標地址(轉移成功)qPC值保持正常(轉移失敗,順序執行)nPC值不定,所以流水線需要暫停,直到確定了新的PC值為止n在DLX流水線中,分支轉移成功導致暫停3個時鐘周期。計算機體系結構北京信息科技大學n處理分支指令最簡單的方法q一旦檢測到分支指令(在ID

31、段),就暫停執行其后的指令,直到分支指令到達MEM段,確定出新的PC值為止。n減少流水線處理分支指令時的暫停周期數:q流水線中盡早判斷出轉移成功或轉移失敗n判斷往前移q盡早計算出轉移成功的分支目標地址n多個加法器部件計算機體系結構北京信息科技大學降低流水線分支損失的方法n種簡單的靜態方法,編譯時預測n(1)凍結(Freeze)或排空(Flush)流水線q暫停流水線直到分支目標地址確定n(2)預測分支失敗q繼續執行分支指令之后的指令q在知道分支結果之前,分支指令后的指令不能改變機器狀態,或者改變了之后能夠回退。q若分支失敗,則照常執行;否則,從轉移目標處開始取指令執行。qDLX流水線的處理過程5

32、 5段段MIPSMIPS改進后采用改進后采用“預測分支失敗預測分支失敗”,分支,分支失敗無停頓,分支成功有一個時鐘周期的停頓;失敗無停頓,分支成功有一個時鐘周期的停頓;還可以采用一條延遲指令槽的延遲分支方法還可以采用一條延遲指令槽的延遲分支方法計算機體系結構北京信息科技大學n(3)預測分支成功q目標地址計算出之后,就開始執行目的地址處的指令q起作用的前題:先知道分支目標地址,后知道分支是否成功。q對DLX流水線沒有任何好處。n(4)延遲分支(Delayed Branch)q把分支開銷為n 的分支指令看成是延遲長度為n 的分支指令,其后緊跟有n 個延遲槽Branch-delay Slot 。流水

33、線遇到分支指令時,按正常方式處理,順帶執行延遲槽中的指令,從而減少分支開銷。q延遲分支以及指令的執行順序q分支延遲槽中的指令“掩蓋”了流水線原來必需插入的暫停周期q分支延遲指令的調度n任務:在延遲槽中放入有用的指令n糟糕的情況:在延遲槽放置空操作NOP指令n較好的情況:從分支指令前找到指令放置在延遲槽中,且不影響程序計算機體系結構北京信息科技大學6 高級流水線技術高級流水線技術計算機體系結構北京信息科技大學單發射與多發射單發射與多發射(issue)(issue) 單發射處理機: 每個周期只取一條指令、只譯碼一條指令,只執行一條指令,只寫回一個運算結果。 取指令部件和指令譯碼部件各設置一套; 只

34、設置一個多功能操作部件或設置多個獨立的操作部件; 操作部件中可以采用流水線結構,也可以不采用流水線結構。 目標是每個時鐘周期平均執行一條指令,ILP的期望值為1。 多發射處理機: 每個周期同時取多條指令、同時譯碼多條指令,同時執行多條指令,同時寫回多個運算結果。 需要多個取指令部件,多個指令譯碼部件和多個寫結果部件。 設置多個指令執行部件,有些指令執行部件采用流水線結構。 目標是每個時鐘周期平均執行多條指令,ILP的期望值大于1。計算機體系結構北京信息科技大學單單發發射射處處理理機機的的指指令令流流水水線線時時空空圖圖 1 2 3 4 5 6 I1 IF ID EX WR 時時鐘鐘周周期期 I

35、2 IF ID EX WR I3 IF ID EX WR 指指令令 多多發發射射處處理理機機的的指指令令流流水水線線時時空空圖圖 1 2 3 4 5 6 I1 IF ID EX WR 時時鐘鐘周周期期 I2 IF ID EX WR I3 IF ID EX WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR I9 IF ID EX WR 指指令令 計算機體系結構北京信息科技大學 單單發發射射處處理理機機的的指指令令流流水水線線取取指指令令指指令令譯譯碼碼執執行行指指令令EX寫寫回回結結果果FA

36、1FA2FA3浮浮點點加加法法部部件件來來自自指指令令CacheIFIDMD1 MD2 MD3WR通通用用寄寄存存器器后后行行寫寫數數棧棧乘乘除除法法部部件件AL定定點點算算術術邏邏輯輯部部件件LS取取數數存存數數部部件件計算機體系結構北京信息科技大學 同時發射兩條指令的多發射處理機的指令流水線同時發射兩條指令的多發射處理機的指令流水線取指令取指令指令譯碼指令譯碼執行指令執行指令寫回結果寫回結果FA1FA2FA3浮點加法部件浮點加法部件來自指令來自指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行寫數棧后行寫數棧乘除法部件乘除法部件來自指令來自指令CacheIF2I

37、D2ALWR2通用寄存器通用寄存器后行寫數棧后行寫數棧定點算術邏輯部件定點算術邏輯部件LS取數存數部件取數存數部件計算機體系結構北京信息科技大學多指令流出技術n將等于1的理想CPI減小,必須實現一個時鐘周期發射(流出issue)多條指令n超標量(Superscalar)處理器:每個時鐘周期發射多條指令(18),可以采用編譯器進行靜態調度順序執行,也可以采用硬件動態調度亂序執行n超長指令字(VLIW: Very Long Instruction Word):通過編譯器調度無關的多條指令(416)形成一條長指令,每個時鐘周期發射一條長指令n超級流水線(Super pipelining):將每個功能

38、部件進一步流水化,使得一個功能部件在一個時鐘周期中可以處理多條指令(可以簡單地理解為很長的流水線)計算機體系結構北京信息科技大學多發射流水線01234567T正常流水線正常流水線超標量流水線超標量流水線0123456T0123456T超長指令字流水線超長指令字流水線3個操作個操作01234567T超級流水線超級流水線計算機體系結構北京信息科技大學三種主流處理機: 超標量處理機:Intel公司的i860、i960、Pentium處理機,Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、 SuperSPARC、 UltraSPARC等。 超流水線處理機

39、:SGI公司的MIPS R4000、R5000、R10000等。 超標量超流水線處理機:DEC公司的Alpha等。計算機體系結構北京信息科技大學超標量處理機基本結構基本結構 一般流水線處理機: 一條指令流水線, 一個多功能操作部件, 每個時鐘周期平均執行指令的條數小于1。 多操作部件處理機: 一條指令流水線, 多個獨立的操作部件,可以采用流水線,也可以不流水。 多操作部件處理機的指令級并行度小于1。 超標量處理機典型結構: 多條指令流水線。 先進的超標量處理機有:定點處理部件CPU,浮點處理部件FPU,圖形加速部件GPU,大量的通用寄存器,兩個一級Cache。 超標量處理機的指令級并行度(IL

40、P)大于1。計算機體系結構北京信息科技大學整整 數數部部 件件整整 數數部部 件件位位 操操作作浮浮 點點加加乘乘 法法部部 件件除除 法法部部 件件圖圖 形形部部 件件圖圖 形形部部 件件內內 部部 總總 線線讀讀 數數 存存 數數部部 件件通通 用用 寄寄存存 器器 堆堆擴擴 展展寄寄 存存 器器 堆堆目目 標標指指 令令指指 令令 分分 配配 轉轉 移移 部部 件件數數 據據 C Ca ac ch he e( 8 8K KB B)指指 令令 C Ca ac ch he e( 8 8K KB B)3 32 2 位位 地地 址址 總總 線線6 64 4 位位 數數 據據 總總 線線 系系 統

41、統 總總 線線超超 標標 量量 處處 理理 機機 M MC C8 88 81 11 10 0 的的 結結 構構 Motorola公司的MC88110。有10個操作部件。 兩個寄存器堆:整數部件通用寄存器堆,32個32位寄存器; 浮點部件擴展寄存器堆,32個80位寄存器。 緩沖深度為4的先行讀數棧,緩沖深度為3的后行寫數棧。 兩個獨立的高速Cache中,各為8KB,采用兩路組相聯方式, 轉移目標指令Cache,存放一條分支上的指令。計算機體系結構北京信息科技大學 超標量處理機:一個時鐘周期能同時發射多條指令的處理機 必須有兩條或兩條以上能夠同時工作的指令流水線。 先行指令窗口:能夠從指令Cach

42、e中預取多條指令, 能夠對窗口內的指令進行數據相關性分析和功能部件沖突檢測。 先行指令窗口的大小:一般為2至8條指令。 目前的指令調度技術,每個周期發射2至4條指令比較合理。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每個周期都發射兩條指令; TI公司生產SuperSPARC,Pentium III每個周期發射三條指令。 操作部件的個數一般多于每個周期發射的指令條數。通常為4 個至16個操作部件。 超標量處理機的指令級并行度:1ILPm。 m為每個周期發射的指令條數。計算機體系結構北京信息科技大學 有先行指

43、令窗口的超標量處理機的流水線結構有先行指令窗口的超標量處理機的流水線結構取指令取指令指令譯碼指令譯碼執行指令執行指令寫回結果寫回結果FA1FA2FA3浮點加法部件浮點加法部件指令指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行寫數棧后行寫數棧乘除法部件乘除法部件指令指令CacheIF2ID2ALWR2通用寄存器通用寄存器后行寫數棧后行寫數棧定點算術邏輯部件定點算術邏輯部件IF3ID3LS先行指令窗口先行指令窗口取數存數部件取數存數部件FAFA:浮點加減法運算,:浮點加減法運算,MDMD:乘除法運算,:乘除法運算,ALAL:定點算術邏輯運算,:定點算術邏輯運算,LS

44、LS 取數存數取數存數計算機體系結構北京信息科技大學 多流水線調度多流水線調度 多條流水線的調度問題是一個NP完全問題, 順序發射(in-order issue)與亂序發射(out-order issue): 指令發射順序是按照程序中指令排列順序進行的稱為順序發射 順序完成(in-order completion)與亂序完成(out-order completion) 指令完成順序是按照程序中指令排列順序進行的稱為順序完成 多流水線的調度主要有三種方法: 順序發射順序完成,順序發射亂序完成,亂序發射亂序完成。I1:LOAD R1, A ;R1(A)I2:FADD R2, R1 ;R2(R2)(

45、R1)I3:FMUL R3, R4 ;R3(R3)(R4)I4:FADD R4, R5 ;R4(R4)(R5)I5:DEC R6 ;R6(R6)1I6:FMUL R6, R7 ;R6(R6)(R7)計算機體系結構北京信息科技大學普通標量處理機,希望相同操作連續出現。 只有連續出現相同操作的指令序列時,流水線才能不“斷流”,功能部件的效率才能得到充分發揮。超標量處理機則正好相反,希望相同操作不要連續出現。 相同操作的指令序列連續出現時,會發生資源沖突; 要求相同操作的指令能夠相對均勻地分布在程序中。超標量處理機的這種要求正好符合一般標量程序的特點。計算機體系結構北京信息科技大學80486的整數指

46、令流水線n5級指令流水線,每級1個時鐘周期 PF指令預取(prefetch) D1指令譯碼1(decode stage 1)對所有操作碼和尋址方式信息進行譯碼 D2指令譯碼2(decode stage 2)將操作碼擴展為ALU的控制信號,存儲器地址計算EX指令執行(execute)完成ALU操作和Cache存取WB回寫(write back)更新在EX步驟得到的寄存器數據和狀態標志計算機體系結構北京信息科技大學Pentium的超標量流水線n類似80486的5級流水線,后3級可以在兩個流水線同時進行n指令預取PF和指令譯碼D1步驟可以并行取出、譯碼2條簡單指令,然后分別發向U和V流水線n在滿足指

47、令配對的條件下,Pentium可以每個時鐘周期執行完2條指令V流水線流水線U流水線流水線地址生成地址生成D2地址生成地址生成D2指令預取指令預取PF指令譯碼指令譯碼D1執行執行EX執行執行EX回寫回寫WB回寫回寫WB計算機體系結構北京信息科技大學Pentium的超標量結構轉移指令地轉移指令地址址寄寄存存器器V流水線流水線ALUU流水線流水線ALU移位器移位器指令譯碼和配對指令譯碼和配對控制單元控制單元分支目標分支目標緩沖器緩沖器V流水線流水線存儲地址產生器存儲地址產生器U流水線流水線存儲地址產生器存儲地址產生器隊列隊列B隊列隊列A指令指令Cache指令預取電路指令預取電路分支目標地分支目標地址

48、址產生分支地產生分支地址址計算機體系結構北京信息科技大學Pentium的指令配對檢測過程(近似表達)IFi1是簡單指令并且i2也是簡單指令并且i1不是轉移指令并且i1和i2不存在數據相關THENi1發往U流水線i2發往V流水線ELSEi1發往U流水線i2做為下對指令的第1條指令i1計算機體系結構北京信息科技大學超流水線處理機兩種定義: 在一個周期內能夠分時發射多條指令的處理機 指令流水線的功能段數為8段或超過8段的流水線處理機提高處理機性能的不同方法: 超標量處理機:通過增加硬件資源來提高處理機性能 超流水線處理機:通過各部分硬件的重疊工作來提高處理機性能。兩種不同并行性: 超標量處理機采用的

49、是空間并行性。 超流水線處理機采用的是時間并行性。計算機體系結構北京信息科技大學指令執行時序指令執行時序每隔1/n個時鐘周期發射一條指令, 即處理機的流水線周期為1/n個時鐘周期。在超流水線處理機中,流水線的有些功能段還可以進一步細分,例如:ID功能段,可以再細分為:譯碼、讀第一操作數和讀第二操作數三個流水段。每每個個時時鐘鐘周周期期分分時時發發射射 3 3 條條指指令令的的超超流流水水線線處處理理機機的的指指令令執執行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF I ID D EX WR 時時鐘鐘周周期期 I2 IF ID EX W WR R I3 IF ID

50、EX WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR 指指令令 I9 IF ID EX WR 計算機體系結構北京信息科技大學 典型處理機結構典型處理機結構 MIPS R4000處理機,每個時鐘周期包含兩個流水段,每個時鐘周期包含兩個流水段, 是一種很標準的超流水線處理機結構。 指令流水線有8個流水段。 有兩個Cache,指令Cache和數據Cache的容量各8KB, 每個時鐘周期可以訪問Cache兩次, 因此在一個時鐘周期內可以從指令Cache中讀出兩條指令, 從數據Cache中讀出或寫

51、入兩個數據。 主要運算部件有整數部件和浮點部件。計算機體系結構北京信息科技大學譯譯 碼碼 數數 據據 C C a a c c h h e e 標標 志志 標標 志志 指指 令令 C C a a c c h h e e 譯譯 碼碼 存存 入入 緩緩 沖沖 對對 準準 器器 IB U S 寫寫 入入 緩緩 沖沖 器器 數數 據據 標標 志志 地地 址址 D B U S 系系 統統 控控 制制 浮浮 點點 存存 儲儲 管管 理理 部部 件件 寄寄 存存 器器 堆堆 指指 令令 快快 表表 浮浮 點點 流流 水水 線線 專專 用用 通通 路路 指指 令令C a c h e 控控 制制 快快 表表T L

52、 B 浮浮 點點 控控 制制 寄寄 存存 器器 D V A 浮浮 點點 乘乘 法法 部部 件件 地地 址址 部部 件件 浮浮 點點 除除 法法 部部 件件 數數 據據C a c h e 控控 制制 程程 序序 計計 數數 器器 浮浮 點點 加加 法法 部部 件件 流流 水水 線線 通通 用用 寄寄 存存 器器 堆堆 轉轉 換換 部部 件件 控控 制制 算算 術術 邏邏 輯輯 部部 件件A L U 求求 平平 方方 根根 部部 件件 裝裝 入入 對對 準準 器器 / / 存存 入入 驅驅 動動 器器 整整 數數 乘乘 法法 除除 法法 部部 件件 M M I I P P S S R R 4 4

53、0 0 0 0 0 0 超超 流流 水水 線線 處處 理理 機機 結結 構構 計算機體系結構北京信息科技大學MIPS R4000MIPS R4000 處理機的流水線操作處理機的流水線操作 IF IS RF EX DF DS TC WB 指令指令 指令譯碼指令譯碼 Cache 數據數據 寄存寄存 讀讀寄寄存存器器 ALU Cache 標標 志志 檢檢 驗驗 器堆器堆 IF:取第一條指令;:取第一條指令;IS:取第二條指令;:取第二條指令;RF:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; EX:執行指令;:執行指令;DF:取第一個數據;:取第一個數據;DS:取第二個數據;:取第二個數據;TC:

54、數據標志檢驗;:數據標志檢驗; WB:寫回結果:寫回結果 計算機體系結構北京信息科技大學 MIPS R4000MIPS R4000 正常指令流水線工作時序正常指令流水線工作時序 主時鐘周期主時鐘周期 當前當前 CPU 周期周期 IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS TC WB IF IS RF EX DF DS

55、TC WB IF:取第一條指令;:取第一條指令;IS:取第二條指令;:取第二條指令;RF:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; EX:執行指令;執行指令;DF:取第一個數據;:取第一個數據;DS:取第二個數據;:取第二個數據;TC:數據標志檢驗;:數據標志檢驗; WB:寫回結果:寫回結果 流水流水 線線 周期周期 計算機體系結構北京信息科技大學超標量超流水線處理機把超標量與超流水線技術結合在一起,就成為超標量超流水線處理機超標量超流水線處理機在一個時鐘周期內分時發射指令m次,每次同時發射指令n條超標量超流水線處理機每個時鐘周期總共發射指令m n條計算機體系結構北京信息科技大學指令執行

56、時序每每個個時時鐘鐘周周期期發發射射 3 3 次次,每每次次同同時時發發射射 3 3 條條指指令令的的 超超標標量量超超流流水水線線處處理理機機的的指指令令執執行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF ID EX WR 時時鐘鐘周周期期 I2 IF ID EX WR I3 IF ID EX WR I4 I IF F ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR I9 IF ID EX WR I10 IF ID EX WR I11 IF ID EX WR I12 IF

57、ID EX WR 指指令令 I IF F:取取指指令令,I ID D:指指令令譯譯碼碼,E EX X:執執行行指指令令,W WR R:寫寫回回結結果果 計算機體系結構北京信息科技大學典型處理機結構典型處理機結構 DEC公司的Alpha處理機采用超標量超流水線結構。 主要由四個功能部件和兩個Cache組成。 四個功能部件是:整數部件EBOX、浮點部件FBOX、 地址部件ABOX和中央控制部件IBOX。 中央控制部件IBOX能夠同時讀出兩條指令, 同時對兩條指令進行譯碼,作資源沖突檢測,進行數據相關性 和控制相關性分析。如果資源和相關性允許,IBOX就把兩條指 令同時發射給EBOX、ABOX和FB

58、OX三個執行部件中的兩個。 指令流水線采用順序發射亂序完成的控制方式。 在指令Cache中有一個轉移歷史表,實現條件轉移的動態預測。 在EBOX內還有多條專用數據通路,可以把運算結果直接送到執行部件。計算機體系結構北京信息科技大學指指 令令 Cache( 8KB)轉轉 移移 歷歷 史史區區 號號指指 令令 地地 址址 總總 線線EBOXIBOXFBOX 3 3 4 4 位位乘乘 法法 器器預預 取取 器器乘乘 法法 器器 / /加加 法法 器器資資源源沖沖突突檢檢測測加加 法法 器器移移 位位 器器P P C C 計計 算算 數數 據據 總總 線線邏邏 輯輯 單單 元元指指 令令 快快 表表除

59、除 法法 器器 1 1 2 2 8 8 位位流流 水水 線線控控 制制定定 點點 寄寄 存存 器器 堆堆( 3 3 2 2 6 6 4 4 )浮浮 點點 寄寄 存存 器器 堆堆( 3 3 2 2 6 6 4 4 )ABOX總總線線接接口口部部外外 部部 Cache寫寫 數數 緩緩 沖沖 器器地地 址址 發發 生生 器器數數 據據 快快 表表讀讀 數數 緩緩 沖沖 器器 控控 制制件件數數 據據 Cache( 8KB)區區 號號數數 據據A A l l p p h h a a 2 2 1 1 0 0 6 6 4 4 處處 理理 機機 結結 構構除 法 器計算機體系結構北京信息科技大學 Alpha

60、 21064處理機共有三條指令流水線, (1)整數操作流水線為7個流水段,其中, 取指令為2個流水段 分析指令為2個流水段 運算為2個流水段 寫結果1個流水段 (2)訪問存儲器流水線為7個流水段, (3)浮點操作流水線分為10個流水段,其中, 浮點執行部件FBOX的延遲時間為6個流水段。 因為三條指令流水線的平均段數為8,且每個時鐘周期發射兩條指令。因此,Alpha 21064處理機是超標量超流水線處理機,所有指令執行部件,包括EBOX、IBOX、ABOX和FBOX中都設置有專用數據通路。計算機體系結構北京信息科技大學3. 超長指令字超長指令字nVLIW (Very Long Instruction Word

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論