![計(jì)算機(jī)體系結(jié)構(gòu)之流水線技術(shù)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/df0a0287-4a77-418e-8f6c-83d9638b6c75/df0a0287-4a77-418e-8f6c-83d9638b6c751.gif)
![計(jì)算機(jī)體系結(jié)構(gòu)之流水線技術(shù)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/df0a0287-4a77-418e-8f6c-83d9638b6c75/df0a0287-4a77-418e-8f6c-83d9638b6c752.gif)
![計(jì)算機(jī)體系結(jié)構(gòu)之流水線技術(shù)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/df0a0287-4a77-418e-8f6c-83d9638b6c75/df0a0287-4a77-418e-8f6c-83d9638b6c753.gif)
![計(jì)算機(jī)體系結(jié)構(gòu)之流水線技術(shù)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/df0a0287-4a77-418e-8f6c-83d9638b6c75/df0a0287-4a77-418e-8f6c-83d9638b6c754.gif)
![計(jì)算機(jī)體系結(jié)構(gòu)之流水線技術(shù)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/df0a0287-4a77-418e-8f6c-83d9638b6c75/df0a0287-4a77-418e-8f6c-83d9638b6c755.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1北京信息科技大學(xué)計(jì)算機(jī)體系結(jié)構(gòu)3 流水線技術(shù)張偉計(jì)算機(jī)學(xué)院計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)大綱n1 概念定義n2 流水線分類n3 MIPS五級流水線n4 性能分析n5 流水線相關(guān)n6 高級流水線技術(shù)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)1 概念概念定義定義計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)洗衣店的例子nA, B, C, D 均有一些衣物要均有一些衣物要 n清洗,甩干,折疊清洗,甩干,折疊n清洗要花30 分鐘n甩干要用40 分鐘n疊衣物也需要20 分鐘n四人衣物一共要花 4*(30+40+20)=360分鐘計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的基本概念A(yù)BCD6 PM789TaskOrderTime30 4
2、0404040 20四人衣物一共要花 30+40*4+20=210分鐘計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的基本概念n流水線技術(shù):把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,每個(gè)子程序可以與其他子過程同時(shí)進(jìn)行n描述流水線的工作,最常用的方法是時(shí)間-空間圖(時(shí)空圖)q橫坐標(biāo):表示時(shí)間,即各個(gè)任務(wù)在流水線中所經(jīng)過的時(shí)間q縱坐標(biāo):表示空間,即流水線的各個(gè)子過程,也稱為級、段、流水線深度(Stage)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的時(shí)空圖計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的特點(diǎn)n流水線實(shí)際上是把一個(gè)功能部件分解成多個(gè)獨(dú)立的子功能部件(一個(gè)任務(wù)也就分成了幾個(gè)子任務(wù),每個(gè)子任務(wù)由一個(gè)子功能部件完成),并依
3、靠多個(gè)子功能部件并行工作來縮短所有任務(wù)的執(zhí)行時(shí)間n流水線有助于提高整個(gè)程序(所有任務(wù))的吞吐率,但并沒有減少每個(gè)指令(任務(wù))的執(zhí)行時(shí)間n流水線各個(gè)功能段所需時(shí)間應(yīng)盡量相等。否則,時(shí)間長的功能段將成為流水線的“瓶頸”,會(huì)造成流水線的“阻塞”(Stall)n流水線開始需要“通過時(shí)間” (Fill)和最后需要“排空時(shí)間”(Drain)。流水線只有處理連續(xù)不斷的任務(wù)才能發(fā)揮其效率計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)2 流水線分類流水線分類計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(1)n按流水線所完成的功能分類q單功能流水線:只能完成一種固定功能的流水線q多功能流水線:流水線的各段可以進(jìn)行不同的連接,使流水
4、線在不同的時(shí)間,或者在同一時(shí)間完成不同的功能n例如: TI ASC的多功能流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)多功能流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(2)n按流水線在同一時(shí)間內(nèi)各段的連接方式分類q靜態(tài)流水線:n在同一時(shí)間內(nèi),多功能流水線各段只能按同一種功能連接。只有當(dāng)按這種方式工作的所有任務(wù)都流出流水線之后,才能重新連接以實(shí)現(xiàn)其他功能。n在靜態(tài)流水線中,只有當(dāng)輸入是一串相同的運(yùn)算操作時(shí),流水的效率才能得到發(fā)揮。n動(dòng)畫演示q動(dòng)態(tài)流水線:n在同一時(shí)間內(nèi),多功能流水線各段可以按不同方式連接,同時(shí)執(zhí)行多種功能 n動(dòng)畫演示計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n動(dòng)態(tài)流水線VS靜態(tài)流水線q優(yōu)點(diǎn):能
5、提高流水線的效率q缺點(diǎn):會(huì)使流水線的控制變得復(fù)雜計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)靜態(tài)和動(dòng)態(tài)流水線 時(shí)空圖對比計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(3)n按照流水線的級別來分n部件級流水線(運(yùn)算操作流水線):q把處理機(jī)的算術(shù)邏輯部件分段,使得各種數(shù)據(jù)類型的操作能夠進(jìn)行流水。n處理機(jī)級流水線(指令流水線):q把指令的解釋執(zhí)行過程按照流水方式進(jìn)行處理。n處理機(jī)間流水線(宏流水線):q它是指由兩個(gè)以上的處理機(jī)串行地對同一數(shù)據(jù)流進(jìn)行處理,每個(gè)處理機(jī)完成一項(xiàng)任務(wù)。動(dòng)畫解析計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(4)n按流水線是否有反饋回路分類q線性流水線:流水線的各段逐個(gè)串接,輸入數(shù)據(jù)從流水線一端
6、輸入從另一端輸出;每個(gè)段都只流過一次。q非線性流水線:流水線的各段除有串接外,還有反饋回路;在一次流水過程中,有的段要被多次使用。(舉例)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)非線性流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(5)n按照數(shù)據(jù)表示來分n標(biāo)量處理機(jī):q不具有向量指令和向量數(shù)據(jù)表示,僅對標(biāo)量進(jìn)行流水處理的處理機(jī)。q例如:IBM360/91, Amdahl 470V/6 等n向量處理機(jī):q具有向量指令和向量數(shù)據(jù)表示的處理機(jī)。q例如:TI ASC, CRAY-I 等計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的分類(6)n按照流動(dòng)是否可以亂序來分n順序流動(dòng)流水線:q流水線輸出端任務(wù)流出的順序與輸入
7、端任務(wù)流入的順序相同。n異步流動(dòng)流水線(亂序流水線):q流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序不同。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)3 MIPS五級流水線五級流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)DLX(Dancing Links)nDLX DLX 是一種簡單的指令集(教學(xué)、簡單芯片)是一種簡單的指令集(教學(xué)、簡單芯片)n在不流水的情況下,如何實(shí)現(xiàn)在不流水的情況下,如何實(shí)現(xiàn)DLXDLX。q實(shí)現(xiàn)DLX指令的一種簡單數(shù)據(jù)通路計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)MIPS的基本流水線nMIPS指令集結(jié)構(gòu)用5個(gè)功能段實(shí)現(xiàn),每個(gè)功能段用一個(gè)時(shí)鐘周期1.取指令周期IF(Instruction Fetch)2
8、.指令譯碼/讀寄存器周期ID(Instruction Decode)3.執(zhí)行/地址計(jì)算周期EX(Execute)v存儲(chǔ)器訪問(計(jì)算有效地址)v寄存器寄存器ALU操作v寄存器立即數(shù)ALU操作4.存儲(chǔ)器訪問周期MEM(Memory Access)5.寫回周期WB(Write Back)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)MIPS的簡單實(shí)現(xiàn)MemoryAccessWriteBackInstructionFetchInstr. DecodeReg. FetchExecuteAddr. CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSignExtend4Adde
9、rZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)2.一條MIPS指令最多需要以下5個(gè)時(shí)鐘周期:q取指令周期(IF) 操作nIRMemPCnNPCPC+4q指令譯碼/讀寄存器周期(ID) 操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31) 指令的譯碼操作和讀寄存器操作是并行進(jìn)行的。 原因:在MIPS指令格式中,操作碼字段以及rs、rt 字段都是在固定的位置。 這種技術(shù)稱為固定字段譯碼技術(shù)。 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)q執(zhí)行/有效地址計(jì)算周期(EX) 不同指令所進(jìn)行的操作不
10、同:n存儲(chǔ)器訪問指令 操作 ALUoA + Immn寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值A(chǔ)LU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2); cond(A = = 0) 將有效地址計(jì)算周期和執(zhí)行周期合并為一個(gè)時(shí)鐘周期,這是因?yàn)镸IPS指令集采用loadstore結(jié)構(gòu),沒有任何指令需要同時(shí)進(jìn)行數(shù)據(jù)有效地址的計(jì)算、轉(zhuǎn)移目標(biāo)地址的計(jì)算和對數(shù)據(jù)進(jìn)行運(yùn)算。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)q存儲(chǔ)器訪問/分支完成周期(MEM)n所有指令都要在該周期對PC進(jìn)行更新。 除了分支指令,其他指令都是做PCNPCn在該周期內(nèi)處理的MIPS指令僅僅有l(wèi)
11、oad、store和分支三種指令。n存儲(chǔ)器訪問指令 操作 LMDMemALUo 或者 MemALUoBn分支指令 操作 if (cond) PC ALUo else PCNPC計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)q寫回周期(WB)不同的指令在寫回周期完成的工作也不一樣。n寄存器寄存器ALU指令 操作 Regsrd ALUon寄存器立即數(shù)ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)3.不采用單周期實(shí)現(xiàn)方案的主要原因q對于大多數(shù)CPU來說,單周期實(shí)現(xiàn)效率很低,因?yàn)椴煌闹噶钏柰瓿傻牟僮鞑顒e相當(dāng)大,因而所需要的時(shí)鐘周期時(shí)間也大不一樣。q
12、單周期實(shí)現(xiàn)時(shí),需要重復(fù)設(shè)置某些功能部件,而在多周期實(shí)現(xiàn)方案中,這些部件是可以共享的。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)q每一個(gè)時(shí)鐘周期完成的工作看作是流水線的一段,每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令。n流水實(shí)現(xiàn)的數(shù)據(jù)通路q設(shè)置了流水寄存器n段與段之間設(shè)置流水寄存器n流水寄存器的命名 用其相鄰的兩個(gè)段的名稱拼合而成。 例如:ID段與EX段之間的流水寄存器用ID/EX表示n每個(gè)流水寄存器是由若干個(gè)寄存器構(gòu)成的 3.5.2 基本的MIPS流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) MEM/WB 數(shù)據(jù) 存儲(chǔ)器 通用寄存器組 符號(hào) 位 擴(kuò)展 ALU PC =0? ADD 16 32 4 存儲(chǔ)器 分之 結(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 指令 流水實(shí)現(xiàn)的數(shù)據(jù)通路流水實(shí)現(xiàn)的數(shù)據(jù)通路計(jì)算機(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將各段的工作隔開,使得它們不會(huì)
14、互相干擾。q保存相應(yīng)段的處理結(jié)果。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)例如:EX/MEM.ALUo:保存EX段ALU的運(yùn)算結(jié)果MEM/WB.LMD:保存MEM段從數(shù)據(jù)存儲(chǔ)器讀出的數(shù)據(jù)q向后傳遞后面將要用到的數(shù)據(jù)或者控制信息 所有有用的數(shù)據(jù)和控制信息每個(gè)時(shí)鐘周期 會(huì)隨著指令在流水線中的流動(dòng)往后流動(dòng)一段。q 增加了向后傳遞IR和從MEM/WB.IR回送到通用寄存 器組的連接。q 將對PC的修改移到了IF段,以便PC能及時(shí)地加 4,為取下一條指令做好準(zhǔn)備。 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)2.每一個(gè)流水段進(jìn)行的操作nIRrsIR6.10nIRrtIR11.15nIRrdIR16.20 計(jì)算機(jī)體系結(jié)構(gòu)北京信息
15、科技大學(xué)流水段流水段流水線的每個(gè)流水段的操作所有指令類型所有指令類型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);); (動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)計(jì)算機(jī)體系結(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、 流水線的每個(gè)流水段的操作(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)4 流水線性能分析流水線性能分析計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線性能分析n吞吐率(throughput rate)單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量n加速比(speedup ratio)完成一批任務(wù),使用非流水線執(zhí)行時(shí)間與使用流水線執(zhí)行時(shí)間之比n效率(efficiency)(指流水線的設(shè)備利用率)從時(shí)空圖看,就是n個(gè)任務(wù)占用的時(shí)空區(qū)和m個(gè)段總的時(shí)空區(qū)之比計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)1.吞吐率n單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量最大吞吐率:流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定狀態(tài)后所得到的
21、吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取決于流水線最慢的功能段所需的時(shí)間實(shí)際吞吐率假設(shè)m段時(shí)間相等t0的流水線完成n個(gè)任務(wù) t0 (說明)00) 1(tntmnTnTP流水計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)例題 分析n一個(gè)具有7段流水線的CPU,各段的執(zhí)行時(shí)間分別為2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns ,在該CPU上完成10個(gè)連續(xù)任務(wù)所需要的時(shí)間為( )ns, 該CPU的最高頻率為( )MHz. 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線優(yōu)化思路n流水線各段時(shí)間不等帶來性能損失q舉例n消除瓶頸的方法 (舉例)q細(xì)分瓶頸
22、段 q重復(fù)設(shè)置瓶頸段 (時(shí)-空圖)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)2. 加速比n完成一批任務(wù),使用非流水線執(zhí)行時(shí)間與使用流水線執(zhí)行時(shí)間之比假設(shè)m段時(shí)間相等t0的流水線完成n個(gè)任務(wù)1) 1(000nmmntntmtmnTTS流水非流水計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)3. 效率n由于流水線有通過時(shí)間和排空時(shí)間,所以流水線的各段并不是一直滿負(fù)荷地工作。n從時(shí)空圖看,就是n個(gè)任務(wù)占用的時(shí)空區(qū)和m個(gè)段總的時(shí)空區(qū)之比假設(shè)m段時(shí)間相等t0的流水線完成n個(gè)任務(wù)10nmnTmtnmmnE流水個(gè)段總時(shí)空區(qū)個(gè)任務(wù)時(shí)空區(qū)(舉例) 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)例題1n在靜態(tài)流水線上計(jì)算 AiBi , (i=4) 求:吞吐
23、率,加速比,效率。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)解:n(1) 確定適合于流水處理的計(jì)算過程n(2) 畫時(shí)空圖n(3) 計(jì)算性能q吞吐率 TP7(20t) q加速比 S(34t)(20t)1.7q效率 E(4436)(820)0.21 A1B1+ A2B2+ A3B3+ A4B4計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)進(jìn)一步優(yōu)化n可以看出,在求解此問題時(shí),該流水線的效率不高。 (原因)n動(dòng)態(tài)流水線的時(shí)空圖 舉例 n這樣行不行? n正確答案計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n瓶頸問題q理想情況下,流水線在工作時(shí),其中的任務(wù)是同步地每一個(gè)時(shí)鐘周期往前流動(dòng)一段。q當(dāng)流水線各段不均勻時(shí),機(jī)器的時(shí)鐘周期取決于瓶頸段的延
24、遲時(shí)間。q在設(shè)計(jì)流水線時(shí),要盡可能使各段時(shí)間相等。n流水線的額外開銷p流水寄存器延遲p時(shí)鐘偏移開銷3.3.5 流水線設(shè)計(jì)中的若干問題計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)q流水寄存器需要建立時(shí)間和傳輸延遲n建立時(shí)間:在觸發(fā)寫操作的時(shí)鐘信號(hào)到達(dá)之前,寄 存器輸入必須保持穩(wěn)定的時(shí)間。n傳輸延遲:時(shí)鐘信號(hào)到達(dá)后到寄存器輸出可用的時(shí) 間。q時(shí)鐘偏移開銷n流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間。(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相同)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)有關(guān)流水線性能的若干問題n(1) 流水線并不能減少(而且一般是增加)單條指令的執(zhí)行時(shí)間,但卻能提高吞吐率。(2) 適當(dāng)增加流水線的深度(段數(shù))
25、可以提高流水線的性能。(3) 流水線的深度受限于流水線的延遲和流水線的額外開銷。(4) 相關(guān)問題。如果流水線中的指令相互獨(dú)立,則可以充分發(fā)揮流水線的性能。但在實(shí)際中,指令間可能會(huì)是相互依賴,這會(huì)降低流水線的性能。下一節(jié)介紹如何解決相關(guān)問題。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)5 流水線相關(guān)流水線相關(guān)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線中的相關(guān)(1)n流水線中存在一些沖突(冒險(xiǎn)Hazard,相關(guān)、依賴Dependence,競爭Competition)的情況,它使得下一條指令無法在預(yù)定設(shè)計(jì)的時(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ù)沖突) :在同時(shí)執(zhí)行的多條指令中,一條指令依賴前一條指令的執(zhí)行結(jié)果(數(shù)據(jù))q控制相關(guān)(控制沖突):流水線遇到分支指令或其他改變PC值的指令計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線中的相關(guān)(2)n相關(guān)有可能會(huì)使流水線停頓。n當(dāng)一條指令被暫停時(shí),暫停在其后發(fā)射(流出)的指令,但繼續(xù)執(zhí)行在其前發(fā)射的指令。n消除相關(guān)的基本方法:q讓流水線中的某些指令暫停,而讓其它指令繼續(xù)執(zhí)行。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)結(jié)構(gòu)相關(guān)n1. 在流水線機(jī)器中,為了使各種指令組合能順利地重疊執(zhí)行,需要把功能部件流水化,并把資源重復(fù)設(shè)置。n2. 如果某種指令組合因資源沖突而不能順
27、利重疊執(zhí)行,則稱該機(jī)器具有結(jié)構(gòu)相關(guān)。n3. 常見的導(dǎo)致結(jié)構(gòu)相關(guān)的原因:q功能部件不是全流水q重復(fù)設(shè)置的資源的份數(shù)不夠計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n4. 結(jié)構(gòu)相關(guān)舉例:訪存沖突q當(dāng)數(shù)據(jù)和指令存在同一存儲(chǔ)器中時(shí),訪存指令會(huì)導(dǎo)致訪存沖突。q解決辦法: 插入暫停周期(“流水線氣泡” ) 引入暫停后的時(shí)空圖q解決方法: 設(shè)置相互獨(dú)立的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器或設(shè)置相互獨(dú)立的指令Cache和數(shù)據(jù)Cache。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n5. 避免結(jié)構(gòu)相關(guān)q所有功能單元完全流水化q設(shè)置足夠的硬件資源硬件代價(jià)很大n6. 有些設(shè)計(jì)方案允許有結(jié)構(gòu)相關(guān)q降低成本q減少部件的延遲計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)數(shù)據(jù)相
28、關(guān)n1. 數(shù)據(jù)相關(guān)簡介q當(dāng)指令在流水線中重疊執(zhí)行時(shí),流水線有可能改變指令讀/寫操作數(shù)的順序,使之不同于它們在非流水實(shí)現(xiàn)時(shí)的順序,這將導(dǎo)致數(shù)據(jù)相關(guān)。q舉例q當(dāng)兩條指令對存儲(chǔ)器同一單元進(jìn)行讀寫時(shí),也可能發(fā)生數(shù)據(jù)相關(guān)。但本章僅討論有關(guān)寄存器的數(shù)據(jù)相關(guān)。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n2. 利用定向技術(shù)減少數(shù)據(jù)相關(guān)引起的暫停q(1) 主要思路:在發(fā)生上述數(shù)據(jù)相關(guān)時(shí),如果能夠?qū)⒂?jì)算結(jié)果從其產(chǎn)生的地方直接送到需要它的地方,就可以避免暫停。q(2) 當(dāng)定向硬件檢測到前面某條指令的結(jié)果寄存器就是當(dāng)前指令的源寄存器時(shí),控制邏輯會(huì)將前面那條指令的結(jié)果直接從其產(chǎn)生的地方定向到當(dāng)前指令所需的位置。q(3) 工作過程演
29、示q(4) 一個(gè)功能單元的輸出不僅可以定向到其自身的輸入,而且還可以定向到其它單元的輸入。q(5)所有的定向發(fā)生在: (圖示) ALU或DM輸出 ALU輸入,DM輸入,“O”檢測部件計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)數(shù)據(jù)相關(guān)的分類n按照指令對寄存器的讀寫順序,可以將數(shù)據(jù)相關(guān)分為以下三種類型:n(考慮兩條指令i和j,假設(shè)i先進(jìn)入流水線)n(1) 寫后讀相關(guān) (RAW) (命名規(guī)則) n在 i 寫入之前,j 先去讀。j 讀出的內(nèi)容是錯(cuò)誤的。這是最常見的相關(guān)。n(2) 寫后寫相關(guān) (WAW)n(3) 讀后寫相關(guān) (WAR)計(jì)算機(jī)體系結(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)時(shí),就 暫停流水線,直到相關(guān)消失。 舉例:演示A(流水線)演示B(時(shí)空圖)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)流水線的控制相關(guān)n分支指令主要有:q無條件分支指令:跳轉(zhuǎn)、過程調(diào)用和過程返回q條件分支指令n執(zhí)行分支指令,程序計(jì)數(shù)器PC值兩種情況:qPC值改變?yōu)槟繕?biāo)地址(轉(zhuǎn)移成功)qPC值保持正常(轉(zhuǎn)移失敗,順序執(zhí)行)nPC值不定,所以流水線需要暫停,直到確定了新的PC值為止n在DLX流水線中,分支轉(zhuǎn)移成功導(dǎo)致暫停3個(gè)時(shí)鐘周期。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n處理分支指令最簡單的方法q一旦檢測到分支指令(在ID
31、段),就暫停執(zhí)行其后的指令,直到分支指令到達(dá)MEM段,確定出新的PC值為止。n減少流水線處理分支指令時(shí)的暫停周期數(shù):q流水線中盡早判斷出轉(zhuǎn)移成功或轉(zhuǎn)移失敗n判斷往前移q盡早計(jì)算出轉(zhuǎn)移成功的分支目標(biāo)地址n多個(gè)加法器部件計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)降低流水線分支損失的方法n種簡單的靜態(tài)方法,編譯時(shí)預(yù)測n(1)凍結(jié)(Freeze)或排空(Flush)流水線q暫停流水線直到分支目標(biāo)地址確定n(2)預(yù)測分支失敗q繼續(xù)執(zhí)行分支指令之后的指令q在知道分支結(jié)果之前,分支指令后的指令不能改變機(jī)器狀態(tài),或者改變了之后能夠回退。q若分支失敗,則照常執(zhí)行;否則,從轉(zhuǎn)移目標(biāo)處開始取指令執(zhí)行。qDLX流水線的處理過程5
32、 5段段MIPSMIPS改進(jìn)后采用改進(jìn)后采用“預(yù)測分支失敗預(yù)測分支失敗”,分支,分支失敗無停頓,分支成功有一個(gè)時(shí)鐘周期的停頓;失敗無停頓,分支成功有一個(gè)時(shí)鐘周期的停頓;還可以采用一條延遲指令槽的延遲分支方法還可以采用一條延遲指令槽的延遲分支方法計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)n(3)預(yù)測分支成功q目標(biāo)地址計(jì)算出之后,就開始執(zhí)行目的地址處的指令q起作用的前題:先知道分支目標(biāo)地址,后知道分支是否成功。q對DLX流水線沒有任何好處。n(4)延遲分支(Delayed Branch)q把分支開銷為n 的分支指令看成是延遲長度為n 的分支指令,其后緊跟有n 個(gè)延遲槽Branch-delay Slot 。流水
33、線遇到分支指令時(shí),按正常方式處理,順帶執(zhí)行延遲槽中的指令,從而減少分支開銷。q延遲分支以及指令的執(zhí)行順序q分支延遲槽中的指令“掩蓋”了流水線原來必需插入的暫停周期q分支延遲指令的調(diào)度n任務(wù):在延遲槽中放入有用的指令n糟糕的情況:在延遲槽放置空操作NOP指令n較好的情況:從分支指令前找到指令放置在延遲槽中,且不影響程序計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)6 高級流水線技術(shù)高級流水線技術(shù)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)單發(fā)射與多發(fā)射單發(fā)射與多發(fā)射(issue)(issue) 單發(fā)射處理機(jī): 每個(gè)周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,只寫回一個(gè)運(yùn)算結(jié)果。 取指令部件和指令譯碼部件各設(shè)置一套; 只
34、設(shè)置一個(gè)多功能操作部件或設(shè)置多個(gè)獨(dú)立的操作部件; 操作部件中可以采用流水線結(jié)構(gòu),也可以不采用流水線結(jié)構(gòu)。 目標(biāo)是每個(gè)時(shí)鐘周期平均執(zhí)行一條指令,ILP的期望值為1。 多發(fā)射處理機(jī): 每個(gè)周期同時(shí)取多條指令、同時(shí)譯碼多條指令,同時(shí)執(zhí)行多條指令,同時(shí)寫回多個(gè)運(yùn)算結(jié)果。 需要多個(gè)取指令部件,多個(gè)指令譯碼部件和多個(gè)寫結(jié)果部件。 設(shè)置多個(gè)指令執(zhí)行部件,有些指令執(zhí)行部件采用流水線結(jié)構(gòu)。 目標(biāo)是每個(gè)時(shí)鐘周期平均執(zhí)行多條指令,ILP的期望值大于1。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)單單發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線時(shí)時(shí)空空圖圖 1 2 3 4 5 6 I1 IF ID EX WR 時(shí)時(shí)鐘鐘周周期期 I
35、2 IF ID EX WR I3 IF ID EX WR 指指令令 多多發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線時(shí)時(shí)空空圖圖 1 2 3 4 5 6 I1 IF ID EX WR 時(shí)時(shí)鐘鐘周周期期 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 指指令令 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 單單發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線取取指指令令指指令令譯譯碼碼執(zhí)執(zhí)行行指指令令EX寫寫回回結(jié)結(jié)果果FA
36、1FA2FA3浮浮點(diǎn)點(diǎn)加加法法部部件件來來自自指指令令CacheIFIDMD1 MD2 MD3WR通通用用寄寄存存器器后后行行寫寫數(shù)數(shù)棧棧乘乘除除法法部部件件AL定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件LS取取數(shù)數(shù)存存數(shù)數(shù)部部件件計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 同時(shí)發(fā)射兩條指令的多發(fā)射處理機(jī)的指令流水線同時(shí)發(fā)射兩條指令的多發(fā)射處理機(jī)的指令流水線取指令取指令指令譯碼指令譯碼執(zhí)行指令執(zhí)行指令寫回結(jié)果寫回結(jié)果FA1FA2FA3浮點(diǎn)加法部件浮點(diǎn)加法部件來自指令來自指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行寫數(shù)棧后行寫數(shù)棧乘除法部件乘除法部件來自指令來自指令CacheIF2I
37、D2ALWR2通用寄存器通用寄存器后行寫數(shù)棧后行寫數(shù)棧定點(diǎn)算術(shù)邏輯部件定點(diǎn)算術(shù)邏輯部件LS取數(shù)存數(shù)部件取數(shù)存數(shù)部件計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)多指令流出技術(shù)n將等于1的理想CPI減小,必須實(shí)現(xiàn)一個(gè)時(shí)鐘周期發(fā)射(流出issue)多條指令n超標(biāo)量(Superscalar)處理器:每個(gè)時(shí)鐘周期發(fā)射多條指令(18),可以采用編譯器進(jìn)行靜態(tài)調(diào)度順序執(zhí)行,也可以采用硬件動(dòng)態(tài)調(diào)度亂序執(zhí)行n超長指令字(VLIW: Very Long Instruction Word):通過編譯器調(diào)度無關(guān)的多條指令(416)形成一條長指令,每個(gè)時(shí)鐘周期發(fā)射一條長指令n超級流水線(Super pipelining):將每個(gè)功能
38、部件進(jìn)一步流水化,使得一個(gè)功能部件在一個(gè)時(shí)鐘周期中可以處理多條指令(可以簡單地理解為很長的流水線)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)多發(fā)射流水線01234567T正常流水線正常流水線超標(biāo)量流水線超標(biāo)量流水線0123456T0123456T超長指令字流水線超長指令字流水線3個(gè)操作個(gè)操作01234567T超級流水線超級流水線計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)三種主流處理機(jī): 超標(biāo)量處理機(jī):Intel公司的i860、i960、Pentium處理機(jī),Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、 SuperSPARC、 UltraSPARC等。 超流水線處理機(jī)
39、:SGI公司的MIPS R4000、R5000、R10000等。 超標(biāo)量超流水線處理機(jī):DEC公司的Alpha等。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)超標(biāo)量處理機(jī)基本結(jié)構(gòu)基本結(jié)構(gòu) 一般流水線處理機(jī): 一條指令流水線, 一個(gè)多功能操作部件, 每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)小于1。 多操作部件處理機(jī): 一條指令流水線, 多個(gè)獨(dú)立的操作部件,可以采用流水線,也可以不流水。 多操作部件處理機(jī)的指令級并行度小于1。 超標(biāo)量處理機(jī)典型結(jié)構(gòu): 多條指令流水線。 先進(jìn)的超標(biāo)量處理機(jī)有:定點(diǎn)處理部件CPU,浮點(diǎn)處理部件FPU,圖形加速部件GPU,大量的通用寄存器,兩個(gè)一級Cache。 超標(biāo)量處理機(jī)的指令級并行度(IL
40、P)大于1。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)整整 數(shù)數(shù)部部 件件整整 數(shù)數(shù)部部 件件位位 操操作作浮浮 點(diǎn)點(diǎn)加加乘乘 法法部部 件件除除 法法部部 件件圖圖 形形部部 件件圖圖 形形部部 件件內(nèi)內(nèi) 部部 總總 線線讀讀 數(shù)數(shù) 存存 數(shù)數(shù)部部 件件通通 用用 寄寄存存 器器 堆堆擴(kuò)擴(kuò) 展展寄寄 存存 器器 堆堆目目 標(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) 量量 處處 理理 機(jī)機(jī) M MC C8 88 81 11 10 0 的的 結(jié)結(jié) 構(gòu)構(gòu) Motorola公司的MC88110。有10個(gè)操作部件。 兩個(gè)寄存器堆:整數(shù)部件通用寄存器堆,32個(gè)32位寄存器; 浮點(diǎn)部件擴(kuò)展寄存器堆,32個(gè)80位寄存器。 緩沖深度為4的先行讀數(shù)棧,緩沖深度為3的后行寫數(shù)棧。 兩個(gè)獨(dú)立的高速Cache中,各為8KB,采用兩路組相聯(lián)方式, 轉(zhuǎn)移目標(biāo)指令Cache,存放一條分支上的指令。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 超標(biāo)量處理機(jī):一個(gè)時(shí)鐘周期能同時(shí)發(fā)射多條指令的處理機(jī) 必須有兩條或兩條以上能夠同時(shí)工作的指令流水線。 先行指令窗口:能夠從指令Cach
42、e中預(yù)取多條指令, 能夠?qū)Υ翱趦?nèi)的指令進(jìn)行數(shù)據(jù)相關(guān)性分析和功能部件沖突檢測。 先行指令窗口的大?。阂话銥?至8條指令。 目前的指令調(diào)度技術(shù),每個(gè)周期發(fā)射2至4條指令比較合理。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每個(gè)周期都發(fā)射兩條指令; TI公司生產(chǎn)SuperSPARC,Pentium III每個(gè)周期發(fā)射三條指令。 操作部件的個(gè)數(shù)一般多于每個(gè)周期發(fā)射的指令條數(shù)。通常為4 個(gè)至16個(gè)操作部件。 超標(biāo)量處理機(jī)的指令級并行度:1ILPm。 m為每個(gè)周期發(fā)射的指令條數(shù)。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 有先行指
43、令窗口的超標(biāo)量處理機(jī)的流水線結(jié)構(gòu)有先行指令窗口的超標(biāo)量處理機(jī)的流水線結(jié)構(gòu)取指令取指令指令譯碼指令譯碼執(zhí)行指令執(zhí)行指令寫回結(jié)果寫回結(jié)果FA1FA2FA3浮點(diǎn)加法部件浮點(diǎn)加法部件指令指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行寫數(shù)棧后行寫數(shù)棧乘除法部件乘除法部件指令指令CacheIF2ID2ALWR2通用寄存器通用寄存器后行寫數(shù)棧后行寫數(shù)棧定點(diǎn)算術(shù)邏輯部件定點(diǎn)算術(shù)邏輯部件IF3ID3LS先行指令窗口先行指令窗口取數(shù)存數(shù)部件取數(shù)存數(shù)部件FAFA:浮點(diǎn)加減法運(yùn)算,:浮點(diǎn)加減法運(yùn)算,MDMD:乘除法運(yùn)算,:乘除法運(yùn)算,ALAL:定點(diǎn)算術(shù)邏輯運(yùn)算,:定點(diǎn)算術(shù)邏輯運(yùn)算,LS
44、LS 取數(shù)存數(shù)取數(shù)存數(shù)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 多流水線調(diào)度多流水線調(diào)度 多條流水線的調(diào)度問題是一個(gè)NP完全問題, 順序發(fā)射(in-order issue)與亂序發(fā)射(out-order issue): 指令發(fā)射順序是按照程序中指令排列順序進(jìn)行的稱為順序發(fā)射 順序完成(in-order completion)與亂序完成(out-order completion) 指令完成順序是按照程序中指令排列順序進(jìn)行的稱為順序完成 多流水線的調(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)計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)普通標(biāo)量處理機(jī),希望相同操作連續(xù)出現(xiàn)。 只有連續(xù)出現(xiàn)相同操作的指令序列時(shí),流水線才能不“斷流”,功能部件的效率才能得到充分發(fā)揮。超標(biāo)量處理機(jī)則正好相反,希望相同操作不要連續(xù)出現(xiàn)。 相同操作的指令序列連續(xù)出現(xiàn)時(shí),會(huì)發(fā)生資源沖突; 要求相同操作的指令能夠相對均勻地分布在程序中。超標(biāo)量處理機(jī)的這種要求正好符合一般標(biāo)量程序的特點(diǎn)。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)80486的整數(shù)指
46、令流水線n5級指令流水線,每級1個(gè)時(shí)鐘周期 PF指令預(yù)?。╬refetch) D1指令譯碼1(decode stage 1)對所有操作碼和尋址方式信息進(jìn)行譯碼 D2指令譯碼2(decode stage 2)將操作碼擴(kuò)展為ALU的控制信號(hào),存儲(chǔ)器地址計(jì)算EX指令執(zhí)行(execute)完成ALU操作和Cache存取WB回寫(write back)更新在EX步驟得到的寄存器數(shù)據(jù)和狀態(tài)標(biāo)志計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)Pentium的超標(biāo)量流水線n類似80486的5級流水線,后3級可以在兩個(gè)流水線同時(shí)進(jìn)行n指令預(yù)取PF和指令譯碼D1步驟可以并行取出、譯碼2條簡單指令,然后分別發(fā)向U和V流水線n在滿足指
47、令配對的條件下,Pentium可以每個(gè)時(shí)鐘周期執(zhí)行完2條指令V流水線流水線U流水線流水線地址生成地址生成D2地址生成地址生成D2指令預(yù)取指令預(yù)取PF指令譯碼指令譯碼D1執(zhí)行執(zhí)行EX執(zhí)行執(zhí)行EX回寫回寫WB回寫回寫WB計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)Pentium的超標(biāo)量結(jié)構(gòu)轉(zhuǎn)移指令地轉(zhuǎn)移指令地址址寄寄存存器器V流水線流水線ALUU流水線流水線ALU移位器移位器指令譯碼和配對指令譯碼和配對控制單元控制單元分支目標(biāo)分支目標(biāo)緩沖器緩沖器V流水線流水線存儲(chǔ)地址產(chǎn)生器存儲(chǔ)地址產(chǎn)生器U流水線流水線存儲(chǔ)地址產(chǎn)生器存儲(chǔ)地址產(chǎn)生器隊(duì)列隊(duì)列B隊(duì)列隊(duì)列A指令指令Cache指令預(yù)取電路指令預(yù)取電路分支目標(biāo)地分支目標(biāo)地址
48、址產(chǎn)生分支地產(chǎn)生分支地址址計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)Pentium的指令配對檢測過程(近似表達(dá))IFi1是簡單指令并且i2也是簡單指令并且i1不是轉(zhuǎn)移指令并且i1和i2不存在數(shù)據(jù)相關(guān)THENi1發(fā)往U流水線i2發(fā)往V流水線ELSEi1發(fā)往U流水線i2做為下對指令的第1條指令i1計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)超流水線處理機(jī)兩種定義: 在一個(gè)周期內(nèi)能夠分時(shí)發(fā)射多條指令的處理機(jī) 指令流水線的功能段數(shù)為8段或超過8段的流水線處理機(jī)提高處理機(jī)性能的不同方法: 超標(biāo)量處理機(jī):通過增加硬件資源來提高處理機(jī)性能 超流水線處理機(jī):通過各部分硬件的重疊工作來提高處理機(jī)性能。兩種不同并行性: 超標(biāo)量處理機(jī)采用的
49、是空間并行性。 超流水線處理機(jī)采用的是時(shí)間并行性。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序每隔1/n個(gè)時(shí)鐘周期發(fā)射一條指令, 即處理機(jī)的流水線周期為1/n個(gè)時(shí)鐘周期。在超流水線處理機(jī)中,流水線的有些功能段還可以進(jìn)一步細(xì)分,例如:ID功能段,可以再細(xì)分為:譯碼、讀第一操作數(shù)和讀第二操作數(shù)三個(gè)流水段。每每個(gè)個(gè)時(shí)時(shí)鐘鐘周周期期分分時(shí)時(shí)發(fā)發(fā)射射 3 3 條條指指令令的的超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時(shí)時(shí)空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF I ID D EX WR 時(shí)時(shí)鐘鐘周周期期 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 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) 典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu) MIPS R4000處理機(jī),每個(gè)時(shí)鐘周期包含兩個(gè)流水段,每個(gè)時(shí)鐘周期包含兩個(gè)流水段, 是一種很標(biāo)準(zhǔn)的超流水線處理機(jī)結(jié)構(gòu)。 指令流水線有8個(gè)流水段。 有兩個(gè)Cache,指令Cache和數(shù)據(jù)Cache的容量各8KB, 每個(gè)時(shí)鐘周期可以訪問Cache兩次, 因此在一個(gè)時(shí)鐘周期內(nèi)可以從指令Cache中讀出兩條指令, 從數(shù)據(jù)Cache中讀出或?qū)?/p>
51、入兩個(gè)數(shù)據(jù)。 主要運(yùn)算部件有整數(shù)部件和浮點(diǎn)部件。計(jì)算機(jī)體系結(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) 控控 制制 浮浮 點(diǎn)點(diǎn) 存存 儲(chǔ)儲(chǔ) 管管 理理 部部 件件 寄寄 存存 器器 堆堆 指指 令令 快快 表表 浮浮 點(diǎn)點(diǎn) 流流 水水 線線 專專 用用 通通 路路 指指 令令C a c h e 控控 制制 快快 表表T L
52、 B 浮浮 點(diǎn)點(diǎn) 控控 制制 寄寄 存存 器器 D V A 浮浮 點(diǎn)點(diǎn) 乘乘 法法 部部 件件 地地 址址 部部 件件 浮浮 點(diǎn)點(diǎn) 除除 法法 部部 件件 數(shù)數(shù) 據(jù)據(jù)C a c h e 控控 制制 程程 序序 計(jì)計(jì) 數(shù)數(shù) 器器 浮浮 點(diǎn)點(diǎn) 加加 法法 部部 件件 流流 水水 線線 通通 用用 寄寄 存存 器器 堆堆 轉(zhuǎn)轉(zhuǎn) 換換 部部 件件 控控 制制 算算 術(shù)術(shù) 邏邏 輯輯 部部 件件A L U 求求 平平 方方 根根 部部 件件 裝裝 入入 對對 準(zhǔn)準(zhǔn) 器器 / / 存存 入入 驅(qū)驅(qū) 動(dòng)動(dòng) 器器 整整 數(shù)數(shù) 乘乘 法法 除除 法法 部部 件件 M M I I P P S S R R 4 4
53、0 0 0 0 0 0 超超 流流 水水 線線 處處 理理 機(jī)機(jī) 結(jié)結(jié) 構(gòu)構(gòu) 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)MIPS R4000MIPS R4000 處理機(jī)的流水線操作處理機(jī)的流水線操作 IF IS RF EX DF DS TC WB 指令指令 指令譯碼指令譯碼 Cache 數(shù)據(jù)數(shù)據(jù) 寄存寄存 讀讀寄寄存存器器 ALU Cache 標(biāo)標(biāo) 志志 檢檢 驗(yàn)驗(yàn) 器堆器堆 IF:取第一條指令;:取第一條指令;IS:取第二條指令;:取第二條指令;RF:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; EX:執(zhí)行指令;:執(zhí)行指令;DF:取第一個(gè)數(shù)據(jù);:取第一個(gè)數(shù)據(jù);DS:取第二個(gè)數(shù)據(jù);:取第二個(gè)數(shù)據(jù);TC:
54、數(shù)據(jù)標(biāo)志檢驗(yàn);:數(shù)據(jù)標(biāo)志檢驗(yàn); WB:寫回結(jié)果:寫回結(jié)果 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) MIPS R4000MIPS R4000 正常指令流水線工作時(shí)序正常指令流水線工作時(shí)序 主時(shí)鐘周期主時(shí)鐘周期 當(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:取第一個(gè)數(shù)據(jù);:取第一個(gè)數(shù)據(jù);DS:取第二個(gè)數(shù)據(jù);:取第二個(gè)數(shù)據(jù);TC:數(shù)據(jù)標(biāo)志檢驗(yàn);:數(shù)據(jù)標(biāo)志檢驗(yàn); WB:寫回結(jié)果:寫回結(jié)果 流水流水 線線 周期周期 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)超標(biāo)量超流水線處理機(jī)把超標(biāo)量與超流水線技術(shù)結(jié)合在一起,就成為超標(biāo)量超流水線處理機(jī)超標(biāo)量超流水線處理機(jī)在一個(gè)時(shí)鐘周期內(nèi)分時(shí)發(fā)射指令m次,每次同時(shí)發(fā)射指令n條超標(biāo)量超流水線處理機(jī)每個(gè)時(shí)鐘周期總共發(fā)射指令m n條計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)指令執(zhí)行
56、時(shí)序每每個(gè)個(gè)時(shí)時(shí)鐘鐘周周期期發(fā)發(fā)射射 3 3 次次,每每次次同同時(shí)時(shí)發(fā)發(fā)射射 3 3 條條指指令令的的 超超標(biāo)標(biāo)量量超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時(shí)時(shí)空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF ID EX WR 時(shí)時(shí)鐘鐘周周期期 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é)果果 計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu) DEC公司的Alpha處理機(jī)采用超標(biāo)量超流水線結(jié)構(gòu)。 主要由四個(gè)功能部件和兩個(gè)Cache組成。 四個(gè)功能部件是:整數(shù)部件EBOX、浮點(diǎn)部件FBOX、 地址部件ABOX和中央控制部件IBOX。 中央控制部件IBOX能夠同時(shí)讀出兩條指令, 同時(shí)對兩條指令進(jìn)行譯碼,作資源沖突檢測,進(jìn)行數(shù)據(jù)相關(guān)性 和控制相關(guān)性分析。如果資源和相關(guān)性允許,IBOX就把兩條指 令同時(shí)發(fā)射給EBOX、ABOX和FB
58、OX三個(gè)執(zhí)行部件中的兩個(gè)。 指令流水線采用順序發(fā)射亂序完成的控制方式。 在指令Cache中有一個(gè)轉(zhuǎn)移歷史表,實(shí)現(xiàn)條件轉(zhuǎn)移的動(dòng)態(tài)預(yù)測。 在EBOX內(nèi)還有多條專用數(shù)據(jù)通路,可以把運(yùn)算結(jié)果直接送到執(zhí)行部件。計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué)指指 令令 Cache( 8KB)轉(zhuǎn)轉(zhuǎn) 移移 歷歷 史史區(qū)區(qū) 號(hào)號(hào)指指 令令 地地 址址 總總 線線EBOXIBOXFBOX 3 3 4 4 位位乘乘 法法 器器預(yù)預(yù) 取取 器器乘乘 法法 器器 / /加加 法法 器器資資源源沖沖突突檢檢測測加加 法法 器器移移 位位 器器P P C C 計(jì)計(jì) 算算 數(shù)數(shù) 據(jù)據(jù) 總總 線線邏邏 輯輯 單單 元元指指 令令 快快 表表除
59、除 法法 器器 1 1 2 2 8 8 位位流流 水水 線線控控 制制定定 點(diǎn)點(diǎn) 寄寄 存存 器器 堆堆( 3 3 2 2 6 6 4 4 )浮浮 點(diǎn)點(diǎn) 寄寄 存存 器器 堆堆( 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ū) 號(hào)號(hào)數(shù)數(shù) 據(jù)據(jù)A A l l p p h h a a 2 2 1 1 0 0 6 6 4 4 處處 理理 機(jī)機(jī) 結(jié)結(jié) 構(gòu)構(gòu)除 法 器計(jì)算機(jī)體系結(jié)構(gòu)北京信息科技大學(xué) Alpha
60、 21064處理機(jī)共有三條指令流水線, (1)整數(shù)操作流水線為7個(gè)流水段,其中, 取指令為2個(gè)流水段 分析指令為2個(gè)流水段 運(yùn)算為2個(gè)流水段 寫結(jié)果1個(gè)流水段 (2)訪問存儲(chǔ)器流水線為7個(gè)流水段, (3)浮點(diǎn)操作流水線分為10個(gè)流水段,其中, 浮點(diǎn)執(zhí)行部件FBOX的延遲時(shí)間為6個(gè)流水段。 因?yàn)槿龡l指令流水線的平均段數(shù)為8,且每個(gè)時(shí)鐘周期發(fā)射兩條指令。因此,Alpha 21064處理機(jī)是超標(biāo)量超流水線處理機(jī),所有指令執(zhí)行部件,包括EBOX、IBOX、ABOX和FBOX中都設(shè)置有專用數(shù)據(jù)通路。計(jì)算機(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出售機(jī)械工廠合同范本
- 臨時(shí)計(jì)件工合同范本
- 再生化纖采購合同范本
- 文具批發(fā)市場渠道維護(hù)考核試卷
- 保健護(hù)理電器綠色制造技術(shù)考核試卷
- 買賣刀具合同范本
- 住宅建筑與社區(qū)犯罪率考核試卷
- 公傷賠償合同范本
- 搪瓷制品的產(chǎn)業(yè)集群與集約化生產(chǎn)考核試卷
- 冷凍半成品轉(zhuǎn)讓合同范本
- 中醫(yī)睡眠養(yǎng)生中心方案
- 生活中的邏輯學(xué)
- 大學(xué)生返家鄉(xiāng)社會(huì)實(shí)踐報(bào)告
- 免疫學(xué)基礎(chǔ)與病原生物學(xué)課件
- 初中生物中考真題(合集)含答案
- 《醫(yī)學(xué)免疫學(xué)實(shí)驗(yàn)》課件
- C139客戶開發(fā)管理模型
- 中考英語閱讀理解(含答案)30篇
- GB/T 5019.5-2023以云母為基的絕緣材料第5部分:電熱設(shè)備用硬質(zhì)云母板
- 《工傷保險(xiǎn)專題》課件
- 2024年農(nóng)發(fā)集團(tuán)招聘筆試參考題庫含答案解析
評論
0/150
提交評論