流水线作业:尽可能让任务重叠进行 6 PM 7 9 10 11 Midnight Time 3040404040 20 A askorde B D 流水作业完成四人的洗衣任务只需要35 hours 中国科学技术大学 chapter3.7
中国科学技术大学 chapter3.7 流水线作业: 尽可能让任务重叠进行 • 流水作业完成四人的洗衣任务只需要 3.5 hours A B C D 6 PM 7 8 9 10 11 Midnight T a s k O r d e r Time 30 40 40 40 40 20
流水线技术要点 流水线技术并不能提高单个任务的执行效率,它可以 提高整个系统的吞吐率 ·流水线中的瓶颈——最慢的那一段 多个任务同时执行,但使用不同的资源 ·其潜在的加速比=流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 ·由于存在相关问题,会导致流水线停顿 中国科学技术大学 chapter 3.8
中国科学技术大学 chapter3.8 流水线技术要点 • 流水线技术并不能提高单个任务的执行效率,它可以 提高整个系统的吞吐率 • 流水线中的瓶颈——最慢的那一段 • 多个任务同时执行,但使用不同的资源 • 其潜在的加速比=流水线的级数 • 流水段所需时间不均衡将降低加速比 • 流水线存在装入时间和排空时间,使得加速比降低 • 由于存在相关问题,会导致流水线停顿
32DLX(MPS)的基本流水线 指令流水线:cPU执行大量的指令,指令吞吐率非常重要 ·DLX的指令格式 Register-Register(R-type ADD R1 R2 R3 056101115162021252631 LOpes⊥ rtrd func Register-Immediate(I-type SUBR1R2.#3 0 5610111516 31 LOpLrsrt immediate Jump/Call (J-type) JUMP end 0 31 LOp offset added to pc Gump, jump and link, trap and return from exception) 所有指令相同长度 在指令格式中寄存器位于同一位置 只有 Loads和 Stores可以对存储器操作 中国科学技术大学 chapter 3.9
中国科学技术大学 chapter3.9 • 指令流水线:CPU执行大量的指令,指令吞吐率非常重要 • DLX 的指令格式 3.2 DLX (MIPS)的基本流水线 Op 0 5 6 10 11 15 16 31 rs rt immediate Op 0 5 31 Op 0 5 6 10 11 15 16 31 rs rt offset added to PC rd Register-Register (R-type) ADD R1, R2, R3 20 21 25 26 Register-Immediate (I-type) SUB R1, R2, #3 Jump / Call (J-type) JUMP end func (jump, jump and link, trap and return from exception) ▪所有指令相同长度 ▪在指令格式中寄存器位于同一位置 ▪只有Loads和Stores可以对存储器操作 6
DLX(MIPS)数据通路一种简单实现 Instruction:工ns↑r. Decode氵 Execute Memory Write Fetch Reg. Fetch氵Addr.calc氵 Access氵Back Next pc Next SEQ PC Zero? RS1 RS2元 3o WB Data 中国科学技术大学 chapter3. 15
中国科学技术大学 chapter3.10 DLX(MIPS)数据通路一种简单实现 Memory Access Write Back Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc L M D ALU MUX Memory Reg File MUX MUX Data Memory MUX Sign Extend 4 Adder Zero? Next SEQ PC Address Next PC WB Data Inst RD RS1 RS2 Imm
基本操作(Step1&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 <--Regsir-10 B<- RegsIr1…s 可能读取的寄存器值没有用,但没有关系,译码后如果无用,以 后操作就不用 Imm∈(IR16)16#IR163 Op Rs Rt5 Rd5 sa funct Rs5 Rt5 immediate 16 Op immediate 中国科学技术大学 chapter3. 11
中国科学技术大学 chapter3.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..15] » 可能读取的寄存器值没有用,但没有关系,译码后如果无用,以 后操作就不用 – Imm ((IR16) 16 ## IR16-31