single cycle cpu datapath design
play

Single-Cycle CPU Datapath Design "The Do-It-Yourself CPU - PowerPoint PPT Presentation

Single-Cycle CPU Datapath Design "The Do-It-Yourself CPU Kit" CSE 141, S2'06 Jeff Brown The Big Picture: Where are We Now? The Five Classic Components of a Computer Processor Input Control Memory Datapath Output


  1. Single-Cycle CPU Datapath Design "The Do-It-Yourself CPU Kit" CSE 141, S2'06 Jeff Brown

  2. The Big Picture: Where are We Now? • The Five Classic Components of a Computer Processor Input Control Memory Datapath Output • Today’s Topic: Datapath Design, then Control Design CSE 141, S2'06 Jeff Brown

  3. The Big Picture: The Performance Perspective • Processor design (datapath and control) will determine: – Clock cycle time – Clock cycles per instruction • Starting today: – Single cycle processor:  Advantage: One clock cycle per instruction  Disadvantage: long cycle time • ET = Insts * CPI * Cycle Time Execute an entire instruction CSE 141, S2'06 Jeff Brown

  4. The Processor: Datapath & Control • We're ready to look at an implementation of the MIPS simplified to contain only: – memory-reference instructions: lw, sw – arithmetic-logical instructions: add, sub, and, or, slt – control flow instructions: beq • Generic Implementation: – use the program counter (PC) to supply instruction address – get the instruction from memory – read registers – use the instruction to decide exactly what to do • All instructions use the ALU after reading the registers memory-reference? arithmetic? control flow? CSE 141, S2'06 Jeff Brown

  5. Review: The MIPS Instruction Formats • All MIPS instructions are 32 bits long. The three instruction formats: 31 26 21 16 11 6 0 R-type op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 26 21 16 0 I-type immediate op rs rt 6 bits 5 bits 5 bits 16 bits J-type 31 26 0 op target address 6 bits 26 bits CSE 141, S2'06 Jeff Brown

  6. The MIPS Subset 31 26 21 16 11 6 0 • R-type op rs rt rd shamt funct – add rd, rs, rt 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits – sub, and, or, slt • LOAD and STORE – lw rt, rs, imm16 31 26 21 16 0 – sw rt, rs, imm16 op rs rt immediate 6 bits 5 bits 5 bits 16 bits • BRANCH: – beq rs, rt, imm16 31 26 21 16 0 op rs rt displacement 6 bits 5 bits 5 bits 16 bits CSE 141, S2'06 Jeff Brown

  7. Where We’re Going – The High-level View CSE 141, S2'06 Jeff Brown

  8. Review: Two Types of Logic Components A State C = f(A,B,state) Element B clk A Combinational C = f(A,B) Logic B CSE 141, S2'06 Jeff Brown

  9. Clocking Methodology Clk Setup Hold Setup Hold Don’t Care . . . . . . . . . . . . • All storage elements are clocked by the same clock edge CSE 141, S2'06 Jeff Brown

  10. Storage Element: Register Write Enable • Register – Similar to the D Flip Flop except Data In Data Out  N-bit input and output N N  Write Enable input – Write Enable: Clk  0: Data Out will not change  1: Data Out will become Data In (on the clock edge) CSE 141, S2'06 Jeff Brown

  11. Storage Element: Register File • Register File consists of (32) registers: – Two 32-bit output buses: – One 32-bit input bus: busW • Register is selected by: – RR1 selects the register to put on bus “Read Data 1” RegWrite – RR2 selects the register to put on bus “Read Data 2” Read Data 1 – WR selects the register to be written Write Data 32 via WriteData when RegWrite is 1 32 32-bit 32 Registers • Clock input (CLK) Read Data 2 RR1 32 5 RR2 5 WR 5 Clk CSE 141, S2'06 Jeff Brown

  12. Storage Element: Memory MemWrite Address • Memory Write Data Read Data 32 32 – Two input buses: WriteData, Address Clk – One output bus: ReadData • Memory word is selected by: MemRead – Address selects the word to put on ReadData bus – MemWrite = 1: address selects the memory word to be written via the WriteData bus • Clock input (CLK) – The CLK input is a factor ONLY during write operation – During read operation, behaves as a combinational logic block:  Address valid => ReadData valid after “access time.” CSE 141, S2'06 Jeff Brown

  13. Register Transfer Language (RTL) • is a mechanism for describing the movement and manipulation of data between storage elements: R[3] <- R[5] + R[7] PC <- PC + 4 + R[5] R[rd] <- R[rs] + R[rt] R[rt] <- Mem[R[rs] + immed] CSE 141, S2'06 Jeff Brown

  14. Instruction Fetch and Program Counter Management CSE 141, S2'06 Jeff Brown

  15. Overview of the Instruction Fetch Unit • The common RTL operations – Fetch the Instruction: inst <- mem[PC] – Update the program counter:  Sequential Code: PC <- PC + 4  Branch and Jump PC <- “something else” CSE 141, S2'06 Jeff Brown

  16. Datapath for Register-Register Operations • R[rd] <- R[rs] op R[rt] Example: add rd, rs, rt – RR1, RR2, and WR comes from instruction’s rs, rt, and rd fields – ALUoperation and RegWrite : control logic after decoding instruction 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits CSE 141, S2'06 Jeff Brown

  17. Datapath for Load Operations R[rt] <- Mem[R[rs] + SignExt[imm16]] Example: lw rt, rs, imm16 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits CSE 141, S2'06 Jeff Brown

  18. Datapath for Store Operations Mem[R[rs] + SignExt[imm16]] <- R[rt] Example: sw rt, rs, imm16 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits CSE 141, S2'06 Jeff Brown

  19. Datapath for Branch Operations Z <- (rs == rt); if Z, PC = PC+4+imm16; else PC = PC+4 beq rs, rt, imm16 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits CSE 141, S2'06 Jeff Brown

  20. Binary Arithmetic for the Next Address • In theory, the PC is a 32-bit byte address into the instruction memory: – Sequential operation: PC<31:0> = PC<31:0> + 4 – Branch operation: PC<31:0> = PC<31:0> + 4 + SignExt[Imm16] * 4 • The magic number “4” always comes up because: – The 32-bit PC is a byte address – And all our instructions are 4 bytes (32 bits) long – The 2 LSBs of the 32-bit PC are always zeros – There is no reason to have hardware to keep the 2 LSBs • In practice, we can simplify the hardware by using a 30-bit PC<31:2>: – Sequential operation: PC<31:2> = PC<31:2> + 1 – Branch operation: PC<31:2> = PC<31:2> + 1 + SignExt[Imm16] – In either case: Instruction Memory Address = PC<31:2> concat “00” CSE 141, S2'06 Jeff Brown

  21. Putting it All Together: A Single Cycle Datapath • We have everything except control signals CSE 141, S2'06 Jeff Brown

  22. The R-Format (e.g. add ) Datapath CSE 141, S2'06 Jeff Brown

  23. The Load Datapath CSE 141, S2'06 Jeff Brown

  24. The store Datapath CSE 141, S2'06 Jeff Brown

  25. The beq Datapath CSE 141, S2'06 Jeff Brown

  26. Key Points • CPU is just a collection of state and combinational logic • We just designed a very rich processor, at least in terms of functionality • Performance = Insts * CPI * Cycle Time – where does the single-cycle machine fit in? CSE 141, S2'06 Jeff Brown

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend