Professional Documents
Culture Documents
!Today:
!Single cycle processor:
!Advantage: One clock cycle per instruction !Disadvantage: long cycle time
6/26/09
2. Select set of datapath components and establish clocking methodology 3. Assemble datapath meeting the requirements 4. Analyze implementation of each instruction to determine setting of control points that effects the register transfer. 5. Assemble the control logic
! OR Immediate:
! ori rt, rs, imm16
31 26 op 6 bits 21 rs 5 bits 16 rt 5 bits 0 immediate 16 bits
6/26/09
! BRANCH:
! beq rs, rt, imm16
31 26 op 6 bits 21 rs 5 bits 16 rt 5 bits 0 immediate 16 bits
R[rt] < MEM[ R[rs] + sign_ext(Imm16)]; MEM[ R[rs] + sign_ext(Imm16) ] < R[rt]; if ( R[rs] == R[rt] ) then PC < PC + sign_ext(Imm16)] || 00 else PC < PC + 4
!PC
6/26/09
32
Sum Carry
!MUX
Sele ct A 32 B 32
32
!Write Enable:
Result
MUX
!ALU
A B
O P
ALU
32 32
32
!negated (0): Data Out will not change !asserted (1): Data Out will become Data In
6/26/09
Register File
! Register File consists of 32 registers:
!Two 32-bit output busses: busA and busB !One 32-bit input bus: busW
RW RA RB Write Enable 5 5 5 busW 32 Clk busA 32 32-bit 32 Registers busB 32
6/26/09
6/26/09
Step 3
!Register Transfer Requirements > Datapath Assembly !Instruction Fetch !Read Operands and Execute Operation
Clk
Instruction Word 32
6/26/09
Register-Register Timing
Clk-to-Q New Value Instruction Memory Access Time Old Value Old Value Old Value Old Value Old Value New Value Delay through Control Logic New Value New Value Register File Access Time New Value ALU Delay New Value
ALUctr
32 32-bit Registers
ALU
busA, B busW
busW 32 Clk 0
32 32-bit Registers
ALU
31
Mux
ZeroExt
imm16
16
32 ALUSrc
6/26/09
rt, rs,
0
Ra Rb
32 32-bit Registers
ALU
32 MemWr
Mux
Mux
Extender
imm16
16
32 ALUSrc
ExtOp
Ra Rb
31 op 6 bits
26 rs 5 bits
21 rt 5 bits
16 immediate 16 bits
32 Clk
32 32-bit Registers 32
ALU
32
Mux
Mux
Extender
imm16
16
32
ExtOp
ALUSrc
6/26/09
! beq
! mem[PC] Fetch the instruction from memory ! Equal <- R[rs] == R[rt] Calculate the branch condition ! if (COND eq 0) Calculate the next instructions address
! PC <- PC + 4 + ( SignExt(imm16) x 4 )
00
busB 32
imm16
! else
! PC <- PC + 4
Clk
Rt
Rd
Rd Rt 0
RegWr 5
00
busW 32 Clk
32 0
32
Clk
imm16
imm16
16
32
ExtOp ALUSrc
Equal?
32 32-bit Registers
32
PC
<21:25>
<16:20>
<11:15>
<0:15>
ALU
PC
Mux
Mux
Extender
10
6/26/09
<21:25>
<11:15>
Instruction Rd Rs 5 5 Rt 5 Imm 16 A
Rt
<21:25>
Rs
Control
<16:20>
Rd
Imm16
<0:15>
Instruction Address
Next Address
32
Rw Ra
Rb
PC
32 32-bit Registers
32 B
32
nPC_sel RegWr RegDst ExtOp ALUSrc ALUctr MemWr MemtoReg Ideal Data Memory DATA PATH
Equal
ALU
Clk
Clk
32
imm16
Clk
00 Mux PC
Adder Adder
PC Ext
11
6/26/09
Ra
32 32-bit Registers
ALU
32 WrEn Adr
Mux
Mux
1 32
32 Data In Clk
ExtOp
Extender
Data Memory
ALUSrc
12
6/26/09
RegDst Rd Rt rt 0 1 RegWr 5 5
00
busW 32 Clk
Next Address
<21:25>
Rt
<16:20>
Rd
<11:15>
<0:15>
Control
Instruction Rd Rs 5 5 Rt 5 A 32 B 32 32 Data Address Data In Clk Data Out Control Signals Conditions
32
PC
imm16
imm16
16
32 sign
Clk
32
32
Rw Ra Rb 32 32-bit Registers
ALU
ALU
Clk
PC
Mux
Mux
Clk
Extender
Datapath
ExtOp ALUSrc
13
6/26/09
Summary
!5 steps to design a processor
! 1. Analyze instruction set => datapath requirements ! 2. Select set of datapath components & establish clock methodology ! 3. Assemble datapath meeting the requirements ! 4. Analyze implementation of each instruction to determine setting of control points that effects the register transfer. ! 5. Assemble the control logic
Summary (cont.)
!MIPS makes it easier
! Instructions same size ! Source registers always in same place ! Immediates same size, location ! Operations always on registers/immediates
!Single cycle datapath => CPI=1, CCT => long !Next time: implementing control
14