Lectures for 2nd Edition
Reading: 4.3
EEE 230
Single Cycle Datapath
MIPS implementations
A simplified version
Data path
Driven from needs of instructions subset
Overview
2
Components of a Computer
3
review
PC instruction memory
Fetch
Register numbers register file
read registers
Depending on instruction class
Use ALU to calculate
Arithmetic result
Memory address for load/store
Branch target address
Access data memory for load/store
PC target address or PC + 4
4
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
4
Building a Datapath
Datapath
Elements that process data and addresses
in the CPU
Registers, ALUs, mux’s, memories, …
We will build a MIPS datapath incrementally
Refining the overview design
Instructions to be examined
r-format : add, sub, and, or, slt
i-format : lw, sw, beq
j-format : j
5
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
5
Break it down
fetch
execute
Each instruction must be fetched, decoded and executed
Hardware must exist for each operation
Fetch execute Cycle
6
Instruction Fetch
32-bit register
Increment by 4 for next instruction
7
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
7
R-Format Instructions
Read two register operands
Perform arithmetic/logical operation
Write register result
8
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
8
Load/Store Instructions
Read register operands
Calculate address using 16-bit offset
Use ALU, but sign-extend offset
Load: Read memory and update register
Store: Write register value to memory
9
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
9
Composing the Elements
First-cut data path does an instruction in one clock cycle
Each datapath element can only do one function at a time
Hence, we need separate instruction and data memories
Use multiplexers where alternate data sources are used for different instructions
10
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
10
Multiplexers
Can’t just join wires together
Use multiplexers
11
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
11
R-Type/Load/Store Datapath
12
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
12
Branch Instructions
Read register operands
Compare operands
Use ALU, subtract and check Zero output
Calculate target address
Sign-extend displacement
Shift left 2 places (word displacement)
Add to PC + 4
Already calculated by instruction fetch
13
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
13
Branch Instructions
Just
re-routes wires
Sign-bit wire replicated
14
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
14
Full Datapath
15
Morgan Kaufmann Publishers
3 June, 2016
Chapter 4 — The Processor
15
Datapath defines elements that process data and addresses
in the CPU
Registers, ALUs, mux’s, memories, …
Approach driven by requirements of instructions subset
16
Summary
/docProps/thumbnail.jpeg