Chap 4
Chap 4
Computer Architecture
Chapter 4: The Processor
Introduction
• CPU performance factors
– Instruction count
• Determined by ISA and compiler
– CPI and Cycle time
• Determined by CPU hardware
• We will examine two MIPS implementations
– A simplified version
– A more realistic pipelined version
• Simple instruction subset, shows most aspects
– Memory reference: lw, sw
– Arithmetic/logical: add, sub, and, or, slt
– Control transfer: beq, j
Chapter 4 - Processor 2
Instruction Execution
• PC → instruction memory, fetch instruction
• Register numbers → register file, read registers
• Depending on instruction class
– Use ALU to calculate
• Arithmetic result
• Memory address for load/store
• Branch condition (comparison)
– Access data memory for load/store
– PC ← target address or PC + 4
Chapter 4 - Processor 3
CPU Overview
(số hiệu
thanh ghi)
bộ nhớ lệnh
Chapter 4 - Processor 4
Execution Model
• Instruction fetch: PC → instruction address
• Instruction decode: register operands → register
file
• Instruction execute:
– Load/store: compute a memory address
– Arithmetic: compute an arithmetic result
• Write back:
– Load/store: store a value to a register or a memory
location
– Arithmetic: store a result of register file
Chapter 4 - Processor 5
Multiplexers
n Can’t just join
wires together
n Use multiplexers
hai đường tín hiệu
đấu với nhau một
cách rất quái
=> việc xác định
trạng thái kết hợp là
bất khả thi
Chapter 4 - Processor 6
Multiplexer
𝐶=𝐴𝑆 +𝐵𝑆
Chapter 4 - Processor 7
Chapter 4 - Processor 8
Control
Chapter 4 - Processor 9
Combinational Elements
• AND-gate • Adder
– Y = A & B – Y = A + B
A A
Y + Y
B
B
Sequential Elements
• Register: stores data in a circuit
– Uses a clock signal to determine when to update
the stored value
– Edge-triggered: update when Clk changes from 0
to 1
Clk
D Q
D
Clk
Q
Chapter 4 - Processor 12
Sequential Elements
• Register with write control
– Only updates on clock edge when write control
input is 1
– Used when stored value is required later
Clk
D Q Write
Write D
Clk
Q
Chapter 4 - Processor 13
Clocking Methodology
• Combinational logic transforms data during
clock cycles
– Between clock edges
– Input from state elements (a memory or a
register), output to state element
– Longest delay determines clock period
Chapter 4 - Processor 14
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
Chapter 4 - Processor 15
Instruction Fetch
Increment by
4 for next
32-bit instruction
register
Chapter 4 - Processor 16
R-Format Instructions
• Ex. add, sub, and, or, slt
• Read two register operands
• Perform arithmetic/logical operation
• Write register result
Chapter 4 - Processor 17
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
Chapter 4 - Processor 18
Branch Instructions
• Branch taken: condition is satisfied and the
Program Counter (PC) register becomes the
branch target
• Branch not taken: PC becomes the address of
the next instruction
• Datapath:
– Compute the branch target
– Compare the registers
Chapter 4 - Processor 19
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
Chapter 4 - Processor 20
Branch Instructions
Just
re-routes
wires
Sign-bit wire
replicated
Chapter 4 - Processor 21
Chapter 4 - Processor 22
R-Type/Load/Store Datapath
thiếu lệnh BRANCH
Chapter 4 - Processor 23
Full Datapath
Chapter 4 - Processor 24
ALU Control
• ALU used for
– Load/Store: F = add
– Branch: F = subtract
– R-type: F depends on funct field
ALU control Function
0000 AND
0001 OR
0010 add
0110 subtract
0111 set-on-less-than
1100 NOR
Chapter 4 - Processor 25
ALU Control
• Assume 2-bit ALUOp derived from opcode
– Combinational logic derives ALU control
opcode ALUOp Operation funct ALU function ALU control
lw 00 load word XXXXXX add 0010
sw 00 store word XXXXXX add 0010
beq 01 branch equal XXXXXX subtract 0110
R-type 10 add 100000 add 0010
subtract 100010 subtract 0110
AND 100100 AND 0000
OR 100101 OR 0001
set-on-less-than 101010 set-on-less-than 0111
Chapter 4 - Processor 26
Chapter 4 - Processor 27
Load/
35 or 43 rs rt address
Store
31:26 25:21 20:16 15:0
Branch 4 rs rt address
31:26 25:21 20:16 15:0
Chapter 4 - Processor 29
30
R-Type Instruction
31
Load Instruction
lw $t1, offset($t2)
32
Branch-on-Equal Instruction
33
Implementing Jumps
• Jump uses word address
• Update PC with concatenation of
– Top 4 bits of old PC
– 26-bit jump address
– 00
• Need an extra control signal decoded from
opcode
Jump 2 address
31:26 25:0
Chapter 4 - Processor 34
Chapter 4 - Processor 35
Performance Issues
• Longest delay determines clock period
– Critical path: load instruction
– Instruction memory → register file → ALU → data
memory → register file
• Not feasible to vary period for different
instructions
• Violates design principle
– Making the common case fast
• We will improve performance by pipelining
Chapter 4 - Processor 36
Pipelining Analogy
• Pipelined laundry: overlapping execution
– Parallelism improves performance
n Four loads:
n Speedup
= 8/3.5 = 2.3
n Non-stop:
n Speedup
= 2n/0.5n + 1.5 ≈ 4
= number of stages
Chapter 4 - Processor 37
MIPS Pipeline
• Five stages, one step per stage
1. IF: Instruction fetch from memory
2. ID: Instruction decode & register read
3. EX: Execute operation or calculate address
4. MEM: Access memory operand
5. WB: Write result back to register
Chapter 4 - Processor 38
Pipeline Performance
• Assume time for stages is
– 100ps for register read or write
– 200ps for other stages
• Compare pipelined datapath with single-cycle
datapath
Instr Instr fetch Register ALU op Memory Register Total time
read access write
lw 200ps 100 ps 200ps 200ps 100 ps 800ps
sw 200ps 100 ps 200ps 200ps 700ps
R-format 200ps 100 ps 200ps 100 ps 600ps
beq 200ps 100 ps 200ps 500ps
Chapter 4 - Processor 39
Pipeline Performance
Single-cycle (Tc= 800ps)
Chapter 4 - Processor 40
Pipeline Speedup
• If all stages are balanced
– i.e., all take the same time
Chapter 4 - Processor 42
Chapter 4 - Processor 43
Chapter 4 - Processor 44
Hazards
• Situations that prevent starting the next
instruction in the next cycle
• Structure hazards
– A required resource is busy
• Data hazard
– Need to wait for previous instruction to complete
its data read/write
• Control hazard
– Deciding on control action depends on previous
instruction
Chapter 4 - Processor 45
Structure Hazards
• Conflict for use of a resource
• In MIPS pipeline with a single memory
– Load/store requires data access
– Instruction fetch would have to stall for that cycle
• Would cause a pipeline “bubble”
• Hence, pipelined datapaths require separate
instruction/data memories
– Or separate instruction/data caches
Chapter 4 - Processor 46
Data Hazards
• An instruction depends on completion of data
access by a previous instruction
– add $s0, $t0, $t1
sub $t2, $s0, $t3
Chapter 4 - Processor 47
Chapter 4 - Processor 48
Chapter 4 - Processor 49
Control Hazards
• Branch determines flow of control
– Fetching next instruction depends on branch
outcome
– Pipeline can’t always fetch correct instruction
• Still working on ID stage of branch
• In MIPS pipeline
– Need to compare registers and compute target
early in the pipeline
– Add hardware to do it in ID stage
Chapter 4 - Processor 51
Stall on Branch
• Wait until branch outcome determined before
fetching next instruction
Chapter 4 - Processor 52
Branch Prediction
• Longer pipelines can’t readily determine
branch outcome early
– Stall penalty becomes unacceptable
• Predict outcome of branch
– Only stall if prediction is wrong
• In MIPS pipeline
– Can predict branches not taken
– Fetch instruction after branch, with no delay
Chapter 4 - Processor 53
Prediction
correct
Prediction
incorrect
Chapter 4 - Processor 54
Chapter 4 - Processor 55
2-Bit Predictor
• Only change prediction on two successive
mispredictions
Pipeline Summary
The BIG Picture
• Pipelining improves performance by
increasing instruction throughput
– Executes multiple instructions in parallel
– Each instruction has the same latency
• Subject to hazards
– Structure, data, control
• Instruction set design affects complexity of
pipeline implementation
Chapter 4 - Processor 104