計算機體系結(jié)構(gòu)之流水線技術(shù)_第1頁
計算機體系結(jié)構(gòu)之流水線技術(shù)_第2頁
計算機體系結(jié)構(gòu)之流水線技術(shù)_第3頁
計算機體系結(jié)構(gòu)之流水線技術(shù)_第4頁
計算機體系結(jié)構(gòu)之流水線技術(shù)_第5頁
已閱讀5頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、單周期實現(xiàn)時,需要重復(fù)設(shè)置某些功能部件,而在多周期實現(xiàn)方案中,這些部件是可以共享的。計算機體系結(jié)構(gòu)北京信息科技大學(xué)q每一個時鐘周期完成的工作看作是流水線的一段,每個時鐘周期啟動一條新的指令。n流水實現(xiàn)的數(shù)據(jù)通路q設(shè)置了流水寄存器n段與段之間設(shè)置流水寄存器n流水寄存器的命名 用其相鄰的兩個段的名稱拼合而成。 例如:ID段與EX段之間的流水寄存器用ID/EX表示n每個流水寄存器是由若干個寄存器構(gòu)成的 3.5.2 基本的MIPS流水線計算機體系結(jié)構(gòu)北京信息科技大學(xué) MEM/WB 數(shù)據(jù) 存儲器 通用寄存器組 符號 位 擴展 ALU PC =0? ADD 16 32 4 存儲器 分之 結(jié)果 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 指令 流水實現(xiàn)的數(shù)據(jù)通路流水實現(xiàn)的數(shù)據(jù)通路計算機體系結(jié)構(gòu)北京信息科技大學(xué)n寄存器的命名形式為:x.yn所包含的字段的命名形式為:x.ys 其中:x:流水寄存器名稱 y:具體寄存器名稱 s:字段名稱 例如: ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:該寄存器的op字段(即操作碼字段)n流水寄存器的作用q將各段的工作隔開,使得它們不會

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

15、科技大學(xué)流水段流水段流水線的每個流水段的操作所有指令類型所有指令類型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令I(lǐng)FIFIDIDEXEXIF/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);); (動畫演示)(動畫演示)(動畫演示)(動畫演示)(動畫演示)計算機體系結(jié)構(gòu)北京信息科技大學(xué)流水段流水段任何指令類型任何指令類型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、 流水線的每個流水段的操作(動畫演示)(動畫演示)(動畫演示)(動畫演示)計算機體系結(jié)構(gòu)北京信息科技大學(xué)4 流水線性能分析流水線性能分析計算機體系結(jié)構(gòu)北京信息科技大學(xué)流水線性能分析n吞吐率(throughput rate)單位時間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量n加速比(speedup ratio)完成一批任務(wù),使用非流水線執(zhí)行時間與使用流水線執(zhí)行時間之比n效率(efficiency)(指流水線的設(shè)備利用率)從時空圖看,就是n個任務(wù)占用的時空區(qū)和m個段總的時空區(qū)之比計算機體系結(jié)構(gòu)北京信息科技大學(xué)1.吞吐率n單位時間內(nèi)流水線所完成的任務(wù)數(shù)量最大吞吐率:流水線在連續(xù)流動達到穩(wěn)定狀態(tài)后所得到的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35、2 IF ID EX WR I3 IF ID EX WR 指指令令 多多發(fā)發(fā)射射處處理理機機的的指指令令流流水水線線時時空空圖圖 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 指指令令 計算機體系結(jié)構(gòu)北京信息科技大學(xué) 單單發(fā)發(fā)射射處處理理機機的的指指令令流流水水線線取取指指令令指指令令譯譯碼碼執(zhí)執(zhí)行行指指令令EX寫寫回回結(jié)結(jié)果果FA

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

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

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

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

40、P)大于1。計算機體系結(jié)構(gòu)北京信息科技大學(xué)整整 數(shù)數(shù)部部 件件整整 數(shù)數(shù)部部 件件位位 操操作作浮浮 點點加加乘乘 法法部部 件件除除 法法部部 件件圖圖 形形部部 件件圖圖 形形部部 件件內(nèi)內(nèi) 部部 總總 線線讀讀 數(shù)數(shù) 存存 數(shù)數(shù)部部 件件通通 用用 寄寄存存 器器 堆堆擴擴 展展寄寄 存存 器器 堆堆目目 標(biāo)標(biāo)指指 令令指指 令令 分分 配配 轉(zhuǎn)轉(zhuǎn) 移移 部部 件件數(shù)數(shù) 據(jù)據(jù) 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 位位 數(shù)數(shù) 據(jù)據(jù) 總總 線線 系系 統(tǒng)

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

42、e中預(yù)取多條指令, 能夠?qū)Υ翱趦?nèi)的指令進行數(shù)據(jù)相關(guān)性分析和功能部件沖突檢測。 先行指令窗口的大?。阂话銥?至8條指令。 目前的指令調(diào)度技術(shù),每個周期發(fā)射2至4條指令比較合理。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每個周期都發(fā)射兩條指令; TI公司生產(chǎn)SuperSPARC,Pentium III每個周期發(fā)射三條指令。 操作部件的個數(shù)一般多于每個周期發(fā)射的指令條數(shù)。通常為4 個至16個操作部件。 超標(biāo)量處理機的指令級并行度:1ILPm。 m為每個周期發(fā)射的指令條數(shù)。計算機體系結(jié)構(gòu)北京信息科技大學(xué) 有先行指

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

44、LS 取數(shù)存數(shù)取數(shù)存數(shù)計算機體系結(jié)構(gòu)北京信息科技大學(xué) 多流水線調(diào)度多流水線調(diào)度 多條流水線的調(diào)度問題是一個NP完全問題, 順序發(fā)射(in-order issue)與亂序發(fā)射(out-order issue): 指令發(fā)射順序是按照程序中指令排列順序進行的稱為順序發(fā)射 順序完成(in-order completion)與亂序完成(out-order completion) 指令完成順序是按照程序中指令排列順序進行的稱為順序完成 多流水線的調(diào)度主要有三種方法: 順序發(fā)射順序完成,順序發(fā)射亂序完成,亂序發(fā)射亂序完成。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)計算機體系結(jié)構(gòu)北京信息科技大學(xué)普通標(biāo)量處理機,希望相同操作連續(xù)出現(xiàn)。 只有連續(xù)出現(xiàn)相同操作的指令序列時,流水線才能不“斷流”,功能部件的效率才能得到充分發(fā)揮。超標(biāo)量處理機則正好相反,希望相同操作不要連續(xù)出現(xiàn)。 相同操作的指令序列連續(xù)出現(xiàn)時,會發(fā)生資源沖突; 要求相同操作的指令能夠相對均勻地分布在程序中。超標(biāo)量處理機的這種要求正好符合一般標(biāo)量程序的特點。計算機體系結(jié)構(gòu)北京信息科技大學(xué)80486的整數(shù)指

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

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

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

49、是空間并行性。 超流水線處理機采用的是時間并行性。計算機體系結(jié)構(gòu)北京信息科技大學(xué)指令執(zhí)行時序指令執(zhí)行時序每隔1/n個時鐘周期發(fā)射一條指令, 即處理機的流水線周期為1/n個時鐘周期。在超流水線處理機中,流水線的有些功能段還可以進一步細分,例如:ID功能段,可以再細分為:譯碼、讀第一操作數(shù)和讀第二操作數(shù)三個流水段。每每個個時時鐘鐘周周期期分分時時發(fā)發(fā)射射 3 3 條條指指令令的的超超流流水水線線處處理理機機的的指指令令執(zhí)執(zhí)行行時時空空圖圖 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 計算機體系結(jié)構(gòu)北京信息科技大學(xué) 典型處理機結(jié)構(gòu)典型處理機結(jié)構(gòu) MIPS R4000處理機,每個時鐘周期包含兩個流水段,每個時鐘周期包含兩個流水段, 是一種很標(biāo)準(zhǔn)的超流水線處理機結(jié)構(gòu)。 指令流水線有8個流水段。 有兩個Cache,指令Cache和數(shù)據(jù)Cache的容量各8KB, 每個時鐘周期可以訪問Cache兩次, 因此在一個時鐘周期內(nèi)可以從指令Cache中讀出兩條指令, 從數(shù)據(jù)Cache中讀出或?qū)?/p>

51、入兩個數(shù)據(jù)。 主要運算部件有整數(shù)部件和浮點部件。計算機體系結(jié)構(gòu)北京信息科技大學(xué)譯譯 碼碼 數(shù)數(shù) 據(jù)據(jù) C C a a c c h h e e 標(biāo)標(biāo) 志志 標(biāo)標(biāo) 志志 指指 令令 C C a a c c h h e e 譯譯 碼碼 存存 入入 緩緩 沖沖 對對 準(zhǔn)準(zhǔn) 器器 IB U S 寫寫 入入 緩緩 沖沖 器器 數(shù)數(shù) 據(jù)據(jù) 標(biāo)標(biāo) 志志 地地 址址 D B U S 系系 統(tǒng)統(tǒng) 控控 制制 浮浮 點點 存存 儲儲 管管 理理 部部 件件 寄寄 存存 器器 堆堆 指指 令令 快快 表表 浮浮 點點 流流 水水 線線 專專 用用 通通 路路 指指 令令C a c h e 控控 制制 快快 表表T L

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

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

54、數(shù)據(jù)標(biāo)志檢驗;:數(shù)據(jù)標(biāo)志檢驗; WB:寫回結(jié)果:寫回結(jié)果 計算機體系結(jié)構(gòu)北京信息科技大學(xué) MIPS R4000MIPS R4000 正常指令流水線工作時序正常指令流水線工作時序 主時鐘周期主時鐘周期 當(dāng)前當(dāng)前 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:執(zhí)行指令;執(zhí)行指令;DF:取第一個數(shù)據(jù);:取第一個數(shù)據(jù);DS:取第二個數(shù)據(jù);:取第二個數(shù)據(jù);TC:數(shù)據(jù)標(biāo)志檢驗;:數(shù)據(jù)標(biāo)志檢驗; WB:寫回結(jié)果:寫回結(jié)果 流水流水 線線 周期周期 計算機體系結(jié)構(gòu)北京信息科技大學(xué)超標(biāo)量超流水線處理機把超標(biāo)量與超流水線技術(shù)結(jié)合在一起,就成為超標(biāo)量超流水線處理機超標(biāo)量超流水線處理機在一個時鐘周期內(nèi)分時發(fā)射指令m次,每次同時發(fā)射指令n條超標(biāo)量超流水線處理機每個時鐘周期總共發(fā)射指令m n條計算機體系結(jié)構(gòu)北京信息科技大學(xué)指令執(zhí)行

56、時序每每個個時時鐘鐘周周期期發(fā)發(fā)射射 3 3 次次,每每次次同同時時發(fā)發(fā)射射 3 3 條條指指令令的的 超超標(biāo)標(biāo)量量超超流流水水線線處處理理機機的的指指令令執(zhí)執(zhí)行行時時空空圖圖 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:執(zhí)執(zhí)行行指指令令,W WR R:寫寫回回結(jié)結(jié)果果 計算機體系結(jié)構(gòu)北京信息科技大學(xué)典型處理機結(jié)構(gòu)典型處理機結(jié)構(gòu) DEC公司的Alpha處理機采用超標(biāo)量超流水線結(jié)構(gòu)。 主要由四個功能部件和兩個Cache組成。 四個功能部件是:整數(shù)部件EBOX、浮點部件FBOX、 地址部件ABOX和中央控制部件IBOX。 中央控制部件IBOX能夠同時讀出兩條指令, 同時對兩條指令進行譯碼,作資源沖突檢測,進行數(shù)據(jù)相關(guān)性 和控制相關(guān)性分析。如果資源和相關(guān)性允許,IBOX就把兩條指 令同時發(fā)射給EBOX、ABOX和FB

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

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寫寫 數(shù)數(shù) 緩緩 沖沖 器器地地 址址 發(fā)發(fā) 生生 器器數(shù)數(shù) 據(jù)據(jù) 快快 表表讀讀 數(shù)數(shù) 緩緩 沖沖 器器 控控 制制件件數(shù)數(shù) 據(jù)據(jù) Cache( 8KB)區(qū)區(qū) 號號數(shù)數(shù) 據(jù)據(jù)A A l l p p h h a a 2 2 1 1 0 0 6 6 4 4 處處 理理 機機 結(jié)結(jié) 構(gòu)構(gòu)除 法 器計算機體系結(jié)構(gòu)北京信息科技大學(xué) Alpha

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

溫馨提示

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

評論

0/150

提交評論