【正文】
LX中的異常 ? IF ? page fault, misaligned address, memory protection violation ? ID ? undefined or illegal opcode ? EX ? arithmetic exception ? MEM ? page fault, misaligned address, memory protection violation ? WB ? none 計(jì)算機(jī)體系結(jié)構(gòu) DLX中多周期操作的處理 ?問題 ? 浮點(diǎn)操作在 1~ 2個 cycles完成是不現(xiàn)實(shí)的,一般要花費(fèi)較長時間 ? 在 DLX中如何處理 ?在 1到 2個 cycles時間內(nèi)完成的處理方法 ? 采用較慢的時鐘源,或 ? 在 FP部件中延遲其 EX段 ?現(xiàn)假設(shè) FP指令與整數(shù)指令采用相同的流水線,那么 ? EX 段需要循環(huán)多次來完成 FP操作,循環(huán)次數(shù)取決于操作類型 ? 有多個 FP功能部件,如果發(fā)射出的指令導(dǎo)致結(jié)構(gòu)或數(shù)據(jù)相關(guān),需暫停 計(jì)算機(jī)體系結(jié)構(gòu) 對 DLX的擴(kuò)充 四個功能部件 ?Integer 部件處理: Loads, Store, Integer ALU操作和Branch ?FP/Integer 乘法部件:處理浮點(diǎn)數(shù)和整數(shù)乘法 ?FP加法器:處理 FP加,減和類型轉(zhuǎn)換 ?FP/Integer除法部件:處理浮點(diǎn)數(shù)和整數(shù)除法 ?這些功能部件未流水化 計(jì)算機(jī)體系結(jié)構(gòu) 擴(kuò)展的 DLX流水線 計(jì)算機(jī)體系結(jié)構(gòu) Latency amp。 LMD (load memory data) = MDR 或 ? Mem[ALUOutput] SMD ? branch ? if (cond) then PC ALUOutput else PC NPC ? for Jumps the condition is always true Step 5 WB write back ? Reg Reg ALU ? Regs[IR16..20] ALUOutput ? Reg Immed ALU ? Regs[IR11..15] ALUOutput ? Load ? Regs[IR11..15] LMD 計(jì)算機(jī)體系結(jié)構(gòu) 這種結(jié)構(gòu)是否可行 ?模型是正確的,但沒有優(yōu)化 ?還有其他選擇 ?兩個 ALU可以合二為一 ?指令和數(shù)據(jù)存儲器不一定要分開 ?一個長周期和 5個短周期 計(jì)算機(jī)體系結(jié)構(gòu) 單周期和多周期控制 ?多周期控制可實(shí)現(xiàn)指令重疊執(zhí)行 計(jì)算機(jī)體系結(jié)構(gòu) DLX的基本流水線 ?假設(shè)流水線周期為每步所花費(fèi)的時間 計(jì)算機(jī)體系結(jié)構(gòu) 為什么用流水線 ? ?假設(shè)執(zhí)行 100條指令 ?單周期機(jī)器 ? 45 ns/cycle x 1 CPI x 100 inst = 4500 ns ?多周期機(jī)器 ? 10 ns/cycle x CPI (due to inst mix) x 100 inst = 4600 ns ?理想流水線機(jī)器 ? 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns 計(jì)算機(jī)體系結(jié)構(gòu) 為什么用流水線 (cont.)?- 資源利用率高 I n s t r. O r d e r Time (clock cycles) 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 計(jì)算機(jī)體系結(jié)構(gòu) 流水線正常工作的基本條件 ?各段間需要使用寄存器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息 ?存儲器帶寬是非流水的 5倍 計(jì)算機(jī)體系結(jié)構(gòu) 新的 DLX數(shù)據(jù)通路(圖 Page 88) Memory Access Write Back Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc ALU Memory Reg File MUX MUX Data Memory MUX Sign Extend Zero? IF/ID ID/EX MEM/WB EX/MEM 4 Adder Next SEQ PC Next SEQ PC RD RD RD WB Data ? 流水線寄存器文件暫存相關(guān)信息 Next PC Address RS1 RS2 Imm MUX 計(jì)算機(jī)體系結(jié)構(gòu) 簡畫的 Pipelining( 圖 Page 87) I n s t r. O r d e r Time (clock cycles) Reg ALU DMem Ifetch Reg Reg ALU DMem Ifetch Reg Reg ALU DMem Ifetch Reg Reg ALU DMem Ifetch Reg Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7 Cycle 5 計(jì)算機(jī)體系結(jié)構(gòu) 簡單 DLX流水線各段的操作(從功能部件角度) 計(jì)算機(jī)體系結(jié)構(gòu) 簡單 DLX流水線各段的操作(從指令的角度) 計(jì)算機(jī)體系結(jié)構(gòu) 流水線的相關(guān) ?相關(guān)的基本概念 ?結(jié)構(gòu)相關(guān) ?數(shù)據(jù)相關(guān) ?控制相關(guān) 計(jì)算機(jī)體系結(jié)構(gòu) 采用流水線技術(shù)帶來的新的問題 ?流水線相關(guān) ? 結(jié)構(gòu)相關(guān):同一時間兩種方式使用同一資源 例如 washer/dryer 合在一起, IM和 ID合在一起 ? 控制相關(guān) : 試圖在條件為評估之前,就做決定 例如 branch instructions ? 數(shù)據(jù)相關(guān):在數(shù)據(jù)未準(zhǔn)備好之前,就需要使用數(shù)據(jù) 當(dāng)前指令的執(zhí)行需要上一條指令的結(jié)果 ?使用等待策略總是可以解決相關(guān) ? 流水線控制必須能檢測相關(guān) ? 采用相應(yīng)操作解決相關(guān) (or 等待 ) 計(jì)算機(jī)體系結(jié)構(gòu) Mem 單個存儲器引起的結(jié)構(gòu)相關(guān) I n s t r. O r d e r Time (clock cycles) Load Instr 1 Instr 2 Instr 3 Instr 4 ALU Mem Reg Mem Reg ALU Mem Reg Mem Reg ALU Mem Reg Mem Reg ALU Reg Mem Reg ALU Mem Reg Mem Reg Detection is easy in this case! (right half highlight means read, left half write) 計(jì)算機(jī)體系結(jié)構(gòu) 消除結(jié)構(gòu)相關(guān)(圖 Page 98) I n s t r. O r d e r Time (clock cycles) Load Instr 1 Instr 2 Stall Instr 3 Reg ALU DMem Ifetch Reg Reg ALU DMem Ifetch Reg Reg ALU DMem Ifetch Reg Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7 Cycle 5 Reg ALU DMem Ifetch Reg Bubble Bubble Bubble Bubble Bubble 計(jì)算機(jī)體系結(jié)構(gòu) 結(jié)構(gòu)相關(guān)對性能的影響 ?例如 : 如果每條指令平均訪存 次,而每個時鐘周期只能訪存一次,那么 ? 在其他資源 100%利用的前提下,平均 CPI ? 計(jì)算機(jī)體系結(jié)構(gòu) 流水線的加速比計(jì)算 p i p e l i n e ddu n p i p e l i n e T i meC y c l e T i meC y c l e C P I s ta l l P i p e l i n e C P I I d e a ld e p th P i p e l i n e C P I I d e a l S p e e d u p ????p i p e l i n e ddu n p i p e l i n e T i meC y c l e T i meC y c l e C P I s ta l l P i p e l i n e 1d e p th P i p e l i n e S p e e d u p ???I ns tp er c y c l es S t al l A v er ag e CP I I deal CP I p i p e l i n e d