Professional Documents
Culture Documents
Computer Design
“Construction Engineer”
Processor
Input
Control
Memory
Datapath Output
° BRANCH:
• beq rs, rt, imm16
° JUMP: 31 26 0
op target address
• j target
6 bits 26 bits
Clk
PC
Instruction Fetch
Instruction Address
ALU
Data
Registers Data In Memory
Clk
Clk
32
. . . .
. . . .
. . . .
Data
Rw Ra Rb 32 Address
32 32 Ideal
32 32-bit
ALU DataOut
Data
Registers Data In Memory
Clk
Clk
32
CPE 442 single-cycle datapath.14 Intro. To Computer Architecture
Outline of Today’s Lecture
Adder
Sum
32
B Carry
32
° MUX
Select
A
32
MUX
Y
32
B
32
° ALU
OP
A
32
ALU
Result
32
B Zero
32
CPE 442 single-cycle datapath.19 Intro. To Computer Architecture
Step 1) : RTL To Data Path Design – Data Path Components,
Storage Elements: Register
Clk PC
Next Address
Logic
Address
Instruction Word
Instruction
Memory 32
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
Rd Rs Rt
RegWr 5 ALUctr
5 5
busA
Rw Ra Rb
busW 32 32-bit 32 Result
ALU
32 Registers 32
Clk busB
32
Rd Rs Rt
RegWr 5 5 ALUctr Register Write
5
Occurs Here
busA
Rw Ra Rb
busW 32 32-bit 32 Result
ALU
32 Registers 32
Clk busB
32
CPE 442 single-cycle datapath.28 Intro. To Computer Architecture
Outline of Today’s Lecture
31 16 15 0
0000000000000000 immediate
16 bits 16 bits
31 26 21 16 11 0
op rs rt immediate
6 bits 5 bits 5 bits rd 16 bits
Rd Rt
RegDst
Mux
Don’t Care
Rs (Rt) ALUctr
RegWr 5 5 5
busA
Rw Ra Rb
busW 32 Result
32 32-bit
ALU
32 Registers 32
Clk busB
32
Mux
ZeroExt
imm16
16 32
ALUSrc
CPE 442 single-cycle datapath.31 Intro. To Computer Architecture
Outline of Today’s Lecture
° Assignment #3
31 16 15 0
0000000000000000 0 immediate
SignExt
16 bits 16 bits
operation 31 16 15 0
1111111111111111 1 immediate
16 bits 16 bits
CPE 442 single-cycle datapath.33 Intro. To Computer Architecture
Datapath for Load
Operations
° R[rt] <- Mem[R[rs] + SignExt[imm16]] Example: lw rt, rs, imm16
31 26 21 16 11 0
op rs rt immediate
6 bits 5 bits 5 bits rd 16 bits
Rd Rt
RegDst
Mux
Don’t Care
Rs (Rt) ALUctr
RegWr 5 5 5 MemtoReg
busA
Rw Ra Rb
busW 32
32 32-bit
ALU
32 Registers 32
Mux
Clk busB MemWr 32
32
Mux
WrEn Adr
Extender
Data In
imm16 32 Data
16 32 Memory
Clk
ALUSrc
Rd Rt
RegDst
Mux
Rs Rt ALUctr
RegWr 5 5 5 MemWr MemtoReg
busA
Rw Ra Rb
busW 32
32 32-bit
ALU
32 Registers 32
Mux
Clk busB 32
Mux
32
WrEn Adr
Extender
Data In 32
imm16 Data
32
16 Memory
ALUSrc Clk
Clk PC
Next Address
Logic
Address
Instruction Word
Instruction
Memory 32
Rd Rt Branch Clk
PC
RegDst
Mux
Rs Rt ALUctr imm16
RegWr 5 5 5 Next Address
busA 16 Logic
Rw Ra Rb
busW 32
32 32-bit
ALU
32 Registers
Clk busB Zero To Instruction
32 Memory
Mux
Extender
imm16 32
16
ALUSrc
° In other words:
• The 2 LSBs of the 32-bit PC are always zeros
• There is no reason to have hardware to keep the 2 LSBs
30
Addr<31:2>
30 Addr<1:0>
PC
“00”
30 0
Adder
Instruction
30
Mux
Memory
“1”
Adder 1
32
Clk 30
SignExt
imm16 30
Instruction<15:0> 16 Instruction<31:0>
Branch Zero
30
Addr<31:2>
PC
30 “1” Addr<1:0>
“00”
“0” Carry In Instruction
0
Memory
Adder
Mux
Clk 30
SignExt
1 32
imm16 30 30
Instruction<15:0> 16
Instruction<31:0>
Branch Zero
°j target
Mux
26 Memory
PC
0
30 0 32
Adder
30
Mux
“1”
Adder
1 Jump Instruction<31:0>
Clk 30
SignExt
imm16 30
Instruction<15:0> 16
Branch Zero
equal
CPE 442 single-cycle datapath.45 Intro. To Computer Architecture
Putting it All Together: A Single Cycle Datapath
° We have everything except control signals (underline)
Branch Instruction<31:0>
Instruction
<21:25>
<16:20>
<11:15>
<0:15>
Jump Fetch Unit
Rd Rt
RegDst Clk
1 Mux 0
Rs Rt Rt Rs Rd Imm16
RegWr 5 5 5 ALUctr
busA Zero MemWr MemtoReg
Rw Ra Rb
busW 32
32 32-bit
ALU
32 0
Registers busB 0 32
Clk
Mux
32
Mux
32
WrEn Adr 1
Extender
1 Data In 32
imm16 Data
32
16 Memory
Clk
ALUSrc
ExtOp
CPE 442 single-cycle datapath.46 Intro. To Computer Architecture