1 / 134

计算机体系结构

计算机体系结构. 周学海 xhzhou@ustc.edu.cn 0551-63601556, 63492271 中国科学技术大学. 第三章 流水线技术. 3.1 流水线的基本概念 3.2 DLX(MIPS )基本流水线 3. 3 流水线的相关 3.4 异常处理 3.5 DLX (MIPS) 中多周期操作的处理 3.6 MIPS R4000 流水线. Review: 性能评测. 平均 CPI? 每类指令的使用频度. Type CPI i for type Frequency CPI i x freqI i Arith/Logic 4 40% 1.6

chace
Télécharger la présentation

计算机体系结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机体系结构 周学海 xhzhou@ustc.edu.cn 0551-63601556, 63492271 中国科学技术大学 中国科学技术大学

  2. 第三章 流水线技术 3.1流水线的基本概念 3.2 DLX(MIPS)基本流水线 3.3 流水线的相关 3.4 异常处理 3.5 DLX (MIPS)中多周期操作的处理 3.6 MIPS R4000流水线

  3. Review:性能评测 • 平均CPI? • 每类指令的使用频度 Type CPIi for type Frequency CPIi x freqIi Arith/Logic 4 40% 1.6 Load 5 30% 1.5 Store 4 10% 0.4 branch 3 20% 0.6 Average CPI: 4.1 中国科学技术大学

  4. PCWr PCWrCond PCSrc Zero ALUSelA IorD MemWr IRWr RegDst RegWr 1 32 Mux 32 PC 0 0 Zero 32 Rs Mux Ra 0 32 RAdr 5 32 Rt Mux 32 Rb busA A 1 Instruction Reg ALU Ideal Memory 32 Reg File 5 32 ALU Out 0 1 4 Rt 0 Rw 32 Mux WrAdr 32 B 1 32 Rd 32 Mem Data Reg 32 Din Dout busW busB 1 2 32 ALU Control Mux 1 0 3 << 2 Extend Imm 16 32 ALUOp ExtOp MemtoReg ALUSelB 是否可以使 CPI < 4.1? • 在一条指令执行过程中下图有许多空闲部件 • 可以让指令重叠执行?? 中国科学技术大学

  5. A B C D 3.1 流水线的基本概念 • 洗衣为例 • Ann, Brian, Cathy, Dave 每人进行洗衣的动作:wash, dry, and fold • washer需要 30 minutes • Dryer 需要 40 minutes • “Folder” 需要 20 minutes 中国科学技术大学

  6. A B C D Sequential Laundry 6 PM Midnight 7 8 9 11 10 • 顺序完成这些任务需要 6 小时 • 如果采用流水作业, 需要多长时间? Time 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e r 中国科学技术大学

  7. 30 40 40 40 40 20 A B C D 流水线作业: 尽可能让任务重叠进行 6 PM Midnight 7 8 9 11 10 • 流水作业完成四人的洗衣任务只需要 3.5 hours Time T a s k O r d e r 中国科学技术大学

  8. 流水线技术要点 • 流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 • 流水线中的瓶颈——最慢的那一段 • 多个任务同时执行,但使用不同的资源 • 其潜在的加速比=流水线的级数 • 流水段所需时间不均衡将降低加速比 • 流水线存在装入时间和排空时间,使得加速比降低 • 由于存在相关问题,会导致流水线停顿 中国科学技术大学

  9. Register-Register (R-type) ADD R1, R2, R3 6 5 11 10 31 26 25 21 20 16 15 0 Op rs rt rd func Register-Immediate (I-type) SUB R1, R2, #3 31 26 25 21 20 16 15 0 immediate Op rs rt Jump / Call (J-type) JUMP end 31 26 25 0 offset added to PC Op (jump, jump and link, trap and return from exception) 3.2 DLX (MIPS)的基本流水线 • 指令流水线:CPU执行大量的指令,指令吞吐率非常重要 • DLX 的指令格式 • 所有指令相同长度 • 在指令格式中寄存器位于同一位置 • 只有Loads和Stores可以对存储器操作 中国科学技术大学

  10. Adder 4 Address Inst ALU DLX(MIPS)数据通路一种简单实现 Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back Next PC MUX Next SEQ PC Zero? RS1 Reg File MUX RS2 Memory Data Memory L M D RD MUX MUX Sign Extend Imm WB Data 中国科学技术大学

  11. 基本操作(Step 1 & 2) • Step 1 - IF • IR <-- Mem[PC] --------- fetch the next instruction from memory • NPC <-- PC + 4 ---------- compute the new PC • Step 2 - ID - instruction decode and register fetch step • A <-- Regs[IR6..10] • B <-- Regs[IR11..16] • 可能读取的寄存器值没有用,但没有关系,译码后如果无用,以后操作就不用 • Imm  ((IR16)16 ## IR16-31 中国科学技术大学

  12. 基本操作-Step 3, 执行阶段 根据译码的结果,有四种情况 • Memory Reference • ALUOutput <-- A + (IR16)16 ## IR16..31--------- effective address • SMD <-- B ---------- data to be written if it is a STORE -- SMD (store mem data) = MDR • Register - Register ALU instruction • ALUOutput <-- A op B • Register - Immediate ALU instruction • ALUOutput <-- A op ((IR16)16 ## IR16..31)) • Branch/Jump • ALUOutput <-- NPC + (IR16)16 ## IR16..31 • cond <-- A op 0 --- for conditional branches A’s value is the condition base (= for BEQZ) • 在简单的 Load-Store机器中,不存在即需要计算存储器地址,指令地址,又要进行ALU运算的指令,因此可以将计算有效地址与执行合二为一,在一个流水段中进行。 中国科学技术大学

  13. Step 4 & Step5 Step 4 MEM - memory access/branch completion • memory reference • LMD <--- Mem[ALUOutput] ------- if it’s a load; 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 中国科学技术大学

  14. 这种结构是否可行 • 模型是正确的,但没有优化 • 还有其他选择 • 指令和数据存储器是否可以分开 • 采用一个长周期还是5个短周期实现 中国科学技术大学

  15. 单周期和多周期控制 • 多周期控制可实现指令重叠执行 中国科学技术大学

  16. DLX(MIPS)的基本流水线 • 假设流水线周期为每步所花费的时间 中国科学技术大学

  17. 为什么用流水线? • 假设执行100条指令 • 单周期机器 • 45 ns/cycle x 1 CPI x 100 inst = 4500 ns • 多周期机器 • 10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns • 理想流水线机器 • 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns 中国科学技术大学

  18. Im Dm Reg Reg ALU Im Dm Reg Reg ALU Im Dm Reg Reg ALU Im Dm Reg Reg ALU Im Dm Reg Reg ALU 为什么用流水线(cont.)?-资源利用率高 Time (clock cycles) I n s t r. O r d e r Inst 0 Inst 1 Inst 2 Inst 3 Inst 4 中国科学技术大学

  19. 流水线正常工作的基本条件 • 各段间需要使用寄存器文件保存当前段传送到下一段的数据和控制信息 • 存储器带宽是非流水的5倍 中国科学技术大学

  20. 新的 DLX (MIPS)数据通路 中国科学技术大学

  21. 中国科学技术大学

  22. Review lecture • 流水线技术要点 • 流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 • 流水线中的瓶颈——最慢的那一段 • 多个任务同时执行,但使用不同的资源 • 其潜在的加速比=流水线的级数 • 流水段所需时间不均衡将降低加速比 • 流水线存在装入时间和排空时间,使得加速比降低 • 由于存在相关问题,会导致流水线停顿 • 流水线正常工作的基本条件 • 增加寄存器文件保存当前段传送到下一段的数据和控制信息 • 存储器带宽是非流水的5倍 中国科学技术大学

  23. 新的DLX (MIPS)数据通路 中国科学技术大学

  24. 在新的Datapath下各段的操作 • IF • IF/ID.IR ←Mem[PC]; • IF/ID.NPC,PC ←(if ((EX/MEM.opcode == branch) & EX/MEM.cond) {EX/MEM.ALUOutput} else {PC+4}); • ID • ID/EX.A ←Regs[IF/ID.IR[rs]]; ID/EX.B ← Regs[IF/ID.IR[rt]]; • ID/EX.NPC←IF/ID.NPC; ID/EX/IR ← IF/ID.IR; • ID/EX/Imm ← sign-extend(IF/ID.IR[immediate field]); • EX • ALU instruction • EX/MEM.IR ← ID/EX.IR; • EX/MEM.ALUOutput ← ID/EX.A func ID/EX.B; or • EX/MEM.ALUOoutput ← ID/EX.A op ID/EX.Imm; 中国科学技术大学

  25. Load or store instruction • EX/MEM.IR ← ID/EX.IR • EX/MEM.ALUOutput ← ID/EX.A + ID/EX.Imm • EX/MEM.B ← ID/EX.B • Branch instruction • EX/MEM.ALUOutput ← ID/EX.NPC + (ID/EX.Imm << 2) • EX/MEM.cond ← (ID/EX.A == 0); • MEM • ALU Instruction • MEM/WB.IR ←EX/MEM.IR • MEM/WB.ALUOutput ←EX/MEM.ALUOutput; • Load or store instruction • MEM/WB.IR ←EX/MEM.IR; • MEM/WB.LMD ← Mem[EX/MEM.ALUOutput]; or Mem[EX/MEM.ALUOutput] ← EX/MEM.B; (store) 中国科学技术大学

  26. WB • ALU instruction • Regs[MEM/WB.IR[rd]] ← MEM/WB.ALUOutput; or • Regs[MEM/WB.IR[rt]] ← MEM/WB.ALUOutput; • For load only • Regs[MEM/WB.IR[rt]] ← MEM/WB.LMD 中国科学技术大学

  27. Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU ALU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 简化的 Pipelining Time (clock cycles) I n s t r. O r d e r 中国科学技术大学

  28. 流水线性能分析 • 基本度量参数:吞吐率,加速比,效率 • 吞吐率: • 单位时间内流水线所完成的任务数或输出结果数量 • 最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率。 中国科学技术大学

  29. 流水线的性能指标 吞吐率:在单位时间内流水线所完成的任务数量或输 出结果的数量。 基本度量参数:吞吐率,加速比,效率 n:任务数 Tk:处理完成n个任务所用的时间

  30. 1. 各段时间均相等的流水线 • 各段时间均相等的流水线时空图

  31. 流水线完成n个连续任务所需要的总时间为 (假设一条k段线性流水线) Tk=kΔt+(n-1)Δt=(k+n-1)Δt • 流水线的实际吞吐率 • 最大吞吐率

  32. 最大吞吐率与实际吞吐率的关系 • 流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关。 • 只有当n>>k时,才有TP≈TPmax。

  33. 2. 各段时间不完全相等的流水线 • 各段时间不等的流水线及其时空图 • 一条4段的流水线 • S1,S3,S4各段的时间:Δt • S2的时间:3Δt(瓶颈段) 流水线中这种时间最长的段称为流水线的瓶颈段。

  34. 各段时间不等的流水线的实际吞吐率: ( Δti为第i段的时间,共有k个段 ) • 流水线的最大吞吐率为

  35. 例如:一条4段的流水线中,S1,S2,S4各段的 时间都是Δt,唯有S3的时间是3Δt。 最大吞吐率为

  36. 解决流水线瓶颈问题的常用方法 举例 • 细分瓶颈段 例如:对前面的4段流水线 把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c 改进后的流水线的吞吐率 :

  37. 重复设置瓶颈段 • 缺点:控制逻辑比较复杂,所需的硬件增加了。 例如:对前面的4段流水线 重复设置瓶颈段S3:S3a,S3b,S3c

  38. 重复设置瓶颈段后的时空图

  39. 加速比 加速比:完成同样一批任务,不使用流水线所用的时间 与使用流水线所用的时间之比。 假设:不使用流水线(即顺序执行)所用的间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为

  40. 1. 流水线各段时间相等(都是△t) • 一条k段流水线完成n个连续任务 所需要的时间为 Tk = (k+n-1)Δt • 顺序执行n个任务 所需要的时间:Ts= nk△t 流水线的实际加速比为

  41. 最大加速比 当n>>k时,S≈k思考:流水线的段数愈多愈好?

  42. 流水线的各段时间不完全相等时 • 一条k段流水线完成n个连续任务的实际加速比为

  43. 效率 效率:流水线中的设备实际使用时间与整个运行时间 的比值,即流水线设备的利用率。 由于流水线有通过时间和排空时间,所以在连续 完成n个任务的时间内,各段并不是满负荷地工作。 • 各段时间相等 • 各段的效率ei相同 (解释)

  44. 整条流水线的效率为 • 可以写成 • 最高效率为 当n>>k时,E≈1。

  45. 当流水线各段时间相等时,流水线的效率与吞吐率当流水线各段时间相等时,流水线的效率与吞吐率 成正比。 E=TP△t 流水线的效率是流水线的实际加速比S与它的最大加速 比k的比值。 当E=1时,S=k,实际加速比达到最大。

  46. 从时空图上看,效率就是n个任务占用的时空面积和 k个段总的时空面积之比。 当各段时间不相等时

  47. 实际吞吐率:假设m段,完成n个任务,单位时间所实际完成的任务数。实际吞吐率:假设m段,完成n个任务,单位时间所实际完成的任务数。 • 加速比: m段流水线的速度与等功能的非流水线的速度之比。 • 效率:流水线的设备利用率。 中国科学技术大学

  48. 中国科学技术大学

  49. 中国科学技术大学

More Related