Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PC
Instruction
ALU
Note: Some of the material in this lecture are COPYRIGHT 1998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGH RESERVED. Figures may be reproduced only for classroom or personal education use in conjunction with our text and only when the above line is included.
2/6/02 CSE 141 - Single Cycle Datapath
Starting today:
Single cycle processor:
Advantage: CPI = 1 Disadvantage: long cycle time
Processor Design
We're ready to implement the MIPS core
load-store instructions: lw, sw reg-reg instructions: add, sub, and, or, slt control flow instructions: beq
Address
Data In 32 Clk
3
DataOut 32
CSE 141 - Single Cycle Datapath
Processor Design
We're ready to implement the MIPS core
load-store instructions: lw, sw reg-reg instructions: add, sub, and, or, slt control flow instructions: beq
0
Write Enable
PC
Address
Data In 32 Clk
4
DataOut 32
0
Write Enable
PC
Address
Data In 32 Clk
5
DataOut 32
Address
DataOut 32
Add
4 Read address Instruction Instruction memory
PC
26
0 immediate 16 bits
6 bits
1. Read register rs (and rt for store) 2. Feed rs and immed to ALU 3. Move data between mem and reg
21 rs 5 bits rt 5 bits 16 displacement 16 bits 0
BRANCH:
31 op
26 6 bits
Processor Design
Generic Implementation: all instruction read some registers all instructions use the ALU after reading registers memory accessed & registers updated after ALU
PC
Instruction
ALU
rd, rs, rt
Ra, Rb, and Rw come from rs, rt, and rd fields ALUoperation signal depends on op and funct
31 op 6 bits 26 rs 5 bits
Read register 1 Instruction Read register 2 Registers Write register Write data
21 rt 5 bits
16 rd 5 bits
11 shamt 5 bits
3
6 funct 6 bits
ALU operation
RegWrite
10 CSE 141 - Single Cycle Datapath
Read register 1 Instruction Read register 2 Registers Write register Write data RegWrite 16
3 Read data 1
ALU result
Address
MemRead
11
Read register 1 Instruction Read register 2 Registers Write register Write data RegWrite 16
3 Read data 1
ALU result
Address
MemRead
12
Combining datapaths
How do we allow different datapaths for different instructions??
Read register 1 Instruction Read register 2 Registers Write register Write data 3 Read data 1 Zero ALU Read data 2 ALU result ALU operation
Read register 1 Instruction 3 ALU operation MemWrite Zero ALU ALU result Address Read data Data memory Read data 1 Read register 2 Registers Write register Read data 2 Write data RegWrite
RegWrite
MemRead
R-type
Store
13
Combining datapaths
How do we allow different datapaths for different instructions??
Read register 1 Instruction Read register 2 Registers Write register Write data 3 Read data 1 Zero ALU Read data 2 ALU result ALU operation
Read register 1 Instruction 3 ALU operation MemWrite Zero ALU ALU result Address Read data Data memory Read data 1 Read register 2 Registers Write register Read data 2 Write data RegWrite
RegWrite
MemRead
Use a multiplexor!
ALUscr
Read register 1 Instruction Read register 2 Registers Write register Write data RegWrite 16 Sign extend 32 3 Read data 1 Zero ALU Read data 2 Write data ALU result Address ALU operation
MemWrite
MemRead
14
Branch target
Instruction
Read data 1 Read register 2 Registers Write register Read data 2 Write data RegWrite 16 Sign extend 32
ALU Zero
15
16
Add 4 RegWrite Instruction [2521] PC Read address Instruction [310] Instruction memory Instruction [2016] 1 M u Instruction [1511] x 0 RegDst Instruction [150] Read register 1 Read register 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Data memory
MemRead
17
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Data memory
MemRead
Need ALUsrc=1, ALUop=add, MemWrite=0, MemToReg=0, RegDst = 0, RegWrite=1 and PCsrc=1. 18 CSE 141 - Single Cycle Datapath
Add 4 RegWrite Instruction [2521] PC Read address Instruction [310] Instruction memory Instruction [2016] 1 M u Instruction [1511] x 0 RegDst Instruction [150] Read register 1 Read register 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Data memory
MemRead
Add 4 RegWrite Instruction [2521] PC Read address Instruction [310] Instruction memory Instruction [2016] 1 M u Instruction [1511] x 0 RegDst Instruction [150] Read register 1 Read register 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Data memory
MemRead
20
Add 4 RegWrite Instruction [2521] PC Read address Instruction [310] Instruction memory Instruction [2016] 1 M u Instruction [1511] x 0 RegDst Instruction [150] Read register 1 Read register 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Data memory
MemRead
21
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 Execution time = Insts * CPI * Cycle Time
where does the single-cycle machine fit in?
22
Example of creative architecture ~ 2000 built. Relatively inexpensive ( < $1620/month rental)