Professional Documents
Culture Documents
Computer Architecture
Chapter 4: The Processor
Assoc. Prof. Dinh Duc Anh Vu
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 subset, shows most aspects
– Memory reference: lw, sw
– Arithmetic/logical: add, sub, and, or, slt
– Control transfer: beq, j
2
HCMIU-SCSE 1
Chapter 4 – Processor April 19, 2021
The Processor
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 target address
– Access data memory for load/store
– PC target address or PC + 4
The Processor
CPU Overview
HCMIU-SCSE 2
Chapter 4 – Processor April 19, 2021
The Processor
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
5
The Processor
Multiplexers
◼ Can’t just join
wires together
◼ Use multiplexers
HCMIU-SCSE 3
Chapter 4 – Processor April 19, 2021
The Processor
Multiplexer
𝐶 = 𝐴𝑆ҧ + 𝐵𝑆
7
The Processor
HCMIU-SCSE 4
Chapter 4 – Processor April 19, 2021
The Processor
Control
The Processor
10
HCMIU-SCSE 5
Chapter 4 – Processor April 19, 2021
The Processor
Combinational Elements
• AND-gate • Adder
– Y=A&B – Y=A+B
A A
Y + Y
B
B
11
The Processor
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
12
12
HCMIU-SCSE 6
Chapter 4 – Processor April 19, 2021
The Processor
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
13
13
The Processor
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
14
14
HCMIU-SCSE 7
Chapter 4 – Processor April 19, 2021
The Processor
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
15
15
The Processor
Instruction Fetch
Increment by
4 for next
32-bit instruction
register
16
16
HCMIU-SCSE 8
Chapter 4 – Processor April 19, 2021
The Processor
R-Format Instructions
• Ex. add, sub, and, or, slt
• Read two register operands
• Perform arithmetic/logical operation
• Write register result
17
17
The Processor
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
18
18
HCMIU-SCSE 9
Chapter 4 – Processor April 19, 2021
The Processor
Branch Instructions
• Brach 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
19
19
The Processor
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
20
20
HCMIU-SCSE 10
Chapter 4 – Processor April 19, 2021
The Processor
Branch Instructions
Just
re-routes
wires
Sign-bit wire
replicated
21
21
The Processor
22
22
HCMIU-SCSE 11
Chapter 4 – Processor April 19, 2021
The Processor
R-Type/Load/Store Datapath
23
23
The Processor
Full Datapath
24
24
HCMIU-SCSE 12
Chapter 4 – Processor April 19, 2021
The Processor
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
25
25
The Processor
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
26
26
HCMIU-SCSE 13
Chapter 4 – Processor April 19, 2021
The Processor
27
27
The Processor
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
28
HCMIU-SCSE 14
Chapter 4 – Processor April 19, 2021
The Processor
29
29
The Processor
30
30
HCMIU-SCSE 15
Chapter 4 – Processor April 19, 2021
The Processor
R-Type Instruction
31
31
The Processor
Load Instruction
32
32
HCMIU-SCSE 16
Chapter 4 – Processor April 19, 2021
The Processor
Branch-on-Equal Instruction
33
33
The Processor
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
34
34
HCMIU-SCSE 17
Chapter 4 – Processor April 19, 2021
The Processor
35
35
The Processor
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
36
36
HCMIU-SCSE 18
Chapter 4 – Processor April 19, 2021
The Processor
Pipelining Analogy
• Pipelined laundry: overlapping execution
– Parallelism improves performance
◼ Four loads:
◼ Speedup
= 8/3.5 = 2.3
◼ Non-stop:
◼ Speedup
= 2n/0.5n + 1.5 ≈ 4
= number of stages
37
37
The Processor
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
38
38
HCMIU-SCSE 19
Chapter 4 – Processor April 19, 2021
The Processor
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
39
39
The Processor
Pipeline Performance
Single-cycle (Tc= 800ps)
40
40
HCMIU-SCSE 20
Chapter 4 – Processor April 19, 2021
The Processor
Pipeline Speedup
• If all stages are balanced
– i.e., all take the same time
41
The Processor
42
42
HCMIU-SCSE 21
Chapter 4 – Processor April 19, 2021
The Processor
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
43
43
The Processor
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
44
44
HCMIU-SCSE 22
Chapter 4 – Processor April 19, 2021
The Processor
Data Hazards
• An instruction depends on completion of data
access by a previous instruction
– add $s0, $t0, $t1
sub $t2, $s0, $t3
45
45
The Processor
46
46
HCMIU-SCSE 23
Chapter 4 – Processor April 19, 2021
The Processor
47
47
The Processor
48
HCMIU-SCSE 24
Chapter 4 – Processor April 19, 2021
The Processor
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
49
49
The Processor
Stall on Branch
• Wait until branch outcome determined before
fetching next instruction
50
50
HCMIU-SCSE 25
Chapter 4 – Processor April 19, 2021
The Processor
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
51
51
The Processor
Prediction
correct
Prediction
incorrect
52
52
HCMIU-SCSE 26
Chapter 4 – Processor April 19, 2021
The Processor
53
53
The Processor
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
54
54
HCMIU-SCSE 27
Chapter 4 – Processor April 19, 2021
The Processor
Single-cycle Datapath
55
55
The Processor
56
56
HCMIU-SCSE 28
Chapter 4 – Processor April 19, 2021
The Processor
57
57
The Processor
Instructions Execution
58
58
HCMIU-SCSE 29
Chapter 4 – Processor April 19, 2021
The Processor
Pipeline registers
• Need registers between stages
– To hold information produced in previous cycle
59
59
The Processor
Pipeline Operation
• Cycle-by-cycle flow of instructions through the
pipelined datapath
– “Single-clock-cycle” pipeline diagram
• Shows pipeline usage in a single cycle
• Highlight resources used
– c.f. “multi-clock-cycle” diagram
• Graph of operation over time
• We’ll look at “single-clock-cycle” diagrams for
load & store
60
60
HCMIU-SCSE 30
Chapter 4 – Processor April 19, 2021
The Processor
61
61
The Processor
62
62
HCMIU-SCSE 31
Chapter 4 – Processor April 19, 2021
The Processor
EX for Load
63
63
The Processor
64
64
HCMIU-SCSE 32
Chapter 4 – Processor April 19, 2021
The Processor
WB for Load
Wrong
register
number
65
65
The Processor
66
66
HCMIU-SCSE 33
Chapter 4 – Processor April 19, 2021
The Processor
EX for Store
67
67
The Processor
68
68
HCMIU-SCSE 34
Chapter 4 – Processor April 19, 2021
The Processor
WB for Store
69
69
The Processor
70
70
HCMIU-SCSE 35
Chapter 4 – Processor April 19, 2021
The Processor
71
71
The Processor
72
72
HCMIU-SCSE 36
Chapter 4 – Processor April 19, 2021
The Processor
73
73
The Processor
Pipelined Control
• Control signals derived from instruction
– As in single-cycle implementation
74
74
HCMIU-SCSE 37
Chapter 4 – Processor April 19, 2021
The Processor
Pipelined Control
75
The Processor
76
76
HCMIU-SCSE 38
Chapter 4 – Processor April 19, 2021
The Processor
77
77
The Processor
78
78
HCMIU-SCSE 39
Chapter 4 – Processor April 19, 2021
The Processor
79
79
The Processor
No Forwarding Paths
80
80
HCMIU-SCSE 40
Chapter 4 – Processor April 19, 2021
The Processor
Forwarding Paths
81
81
The Processor
82
82
HCMIU-SCSE 41
Chapter 4 – Processor April 19, 2021
The Processor
Forwarding Conditions
• EX hazard
– if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRs))
ForwardA = 10
– if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRt))
ForwardB = 10
• MEM hazard
– if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)
and (MEM/WB.RegisterRd = ID/EX.RegisterRs))
ForwardA = 01
– if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)
and (MEM/WB.RegisterRd = ID/EX.RegisterRt))
ForwardB = 01
83
83
The Processor
84
84
HCMIU-SCSE 42
Chapter 4 – Processor April 19, 2021
The Processor
85
85
The Processor
86
86
HCMIU-SCSE 43
Chapter 4 – Processor April 19, 2021
The Processor
Need to stall
for one cycle
87
87
The Processor
88
HCMIU-SCSE 44
Chapter 4 – Processor April 19, 2021
The Processor
89
89
The Processor
Stall inserted
here
90
90
HCMIU-SCSE 45
Chapter 4 – Processor April 19, 2021
The Processor
Or, more
accurately… 91
91
The Processor
92
92
HCMIU-SCSE 46
Chapter 4 – Processor April 19, 2021
The Processor
93
93
The Processor
Branch Hazards
• If branch outcome determined in MEM
Flush these
instructions
(Set control
values to 0)
PC 94
94
HCMIU-SCSE 47
Chapter 4 – Processor April 19, 2021
The Processor
95
95
The Processor
96
96
HCMIU-SCSE 48
Chapter 4 – Processor April 19, 2021
The Processor
97
97
The Processor
… IF ID EX MEM WB
98
98
HCMIU-SCSE 49
Chapter 4 – Processor April 19, 2021
The Processor
beq stalled IF ID
99
99
The Processor
beq stalled IF ID
beq stalled ID
100
100
HCMIU-SCSE 50
Chapter 4 – Processor April 19, 2021
The Processor
101
101
The Processor
102
HCMIU-SCSE 51
Chapter 4 – Processor April 19, 2021
The Processor
2-Bit Predictor
• Only change prediction on two successive
mispredictions
103
103
The Processor
104
104
HCMIU-SCSE 52