UNIT 2 - Part-1
UNIT 2 - Part-1
1
Text/Reference Books
TextBooks:
1. C. Hamacher, Z. Vranesic and S. Zaky,
"Computer Organization", 5th edition,
McGrawHill, 2017
2. W. Stallings, "Computer Organization and
Architecture -Designing for Performance",
11th edition, Prentice Hall of India,2022
References:
1. D. A. Patterson and J. L. Hennessy, "Computer
Organization and Design The Hardware/Software
Interface", 1998
2. J .P. Hayes, "Computer Architecture and
Organization", 1998
3.,https://onlinecourses.nptel.ac.in/noc21_cs61/
preview
2
CONTROL UNIT DESIGN
3
Overview
● Instruction Set Processor (ISP)
● Central Processing Unit (CPU)
● A typical computing task consists of a
series of steps specified by a sequence of
machine instructions that constitute a
program.
● An instruction is executed by carrying out
a sequence of more rudimentary
operations.
4
Some Fundamental Concepts
5
Fundamental Concepts
● Processor fetches one instruction at a time and
perform the operation specified.
● Instructions are fetched from successive
memory locations until a branch or a jump
instruction is encountered.
● Processor keeps track of the address of the
memory location containing the next instruction
to be fetched using Program Counter (PC).
● Instruction Register (IR)
6
Executing an Instruction
● Fetch the contents of the memory location
pointed to by the PC. The contents of this
location are loaded into the IR (fetch phase).
IR ← [[PC]]
● Assuming that the memory is byte addressable,
increment the contents of the PC by 4 (fetch
phase).
PC ← [PC] + 4
● Carry out the actions specified by the
instruction in the IR (execution phase).
7
Processor Organization
Internal processor
bus
Control signals
PC
Instruction
Address
decoder and
lines
MDR HAS MAR control logic
TWO Memory
INPUTS AND bus
TWO MDR
OUTPUTS Data
lines IR
Y
Datapath
Constant 4 R0
Select MUX
Add
A B
ALU Sub R n - 1
control ALU
lines
Carry-in
XOR TEMP
8
Figure 7.1. Single-bus organization of the datapath inside a processor.
Executing an Instruction
● Transfer a word of data from one
processor register to another or to the
ALU.
● Perform an arithmetic or a logic operation
and store the result in a processor
register.
● Fetch the contents of a given memory
location and load them into a processor
register.
● Store a word of data from a processor
register into a given memory location. 9
Register Transfers Internal processor
bus
Riin
Ri
Riout
Y in
Constant 4
Select MUX
A B
ALU
Z in
Z out
D Q
1
Q
Riout
Ri in
Clock
11
Figure 7.3.
InputInput and output
and output gating ating
g onefor
for one re
register gbit.
ister bit.
Performing an Arithmetic or
Logic Operation
● The ALU is a combinational circuit that has no
internal storage.
● ALU gets the two operands from MUX and bus.
The result is temporarily stored in register Z.
● What is the sequence of operations to add the
contents of register R1 to those of R2 and
store the result in R3?
1. R1out, Yin
2. R2out, SelectY, Add, Zin
3. Zout, R3in
12
Fetching a Word from Memory
● Address into MAR; issue Read operation; data into MDR.
Memory-bus Internal processor
data lines MDRoutE MDRout bus
MDR
13
Figure 7.4. Connection
Connection and signals
and control controlfor
signals
registerfor
gister
re MDR.
MDR.
Fetching a Word from Memory
● The response time of each memory access
varies (cache miss, memory-mapped I/O,…).
● To accommodate this, the processor waits until
it receives an indication that the requested
operation has been completed (Memory-
Function-Completed, MFC).
● Move (R1), R2
MAR ← [R1]
Start a Read operation on the memory bus
Wait for the MFC response from the memory
Load MDR from the memory bus
R2 ← [MDR]
14
Execution of a Complete
Instruction
● Add (R3), R1
● Fetch the instruction
● Fetch the first operand (the contents of
the memory location pointed to by R3)
● Perform the addition
● Load the result into R1
15
Architecture
Internal processor
bus
Riin
Ri
Riout
Y in
Constant 4
Select MUX
A B
ALU
Z in
Z out
Add (R3), R1 PC
Control signals
Instruction
Step Action Address
decoder and
lines
MAR control logic
17
Figure 7.1. Single-bus organization of the datapath inside a processor.
Execution of Branch
Instructions
● A branch instruction replaces the contents
of PC with the branch target address,
which is usually obtained by adding an
offset X given in the branch instruction.
● The offset X is usually the difference
between the branch target address and
the address immediately following the
branch instruction.
● Conditional branch
18
Execution of Branch
Instructions
Step Action
19
Multiple-Bus Organization
Bus A Bus B Bus C
Incrementer
PC
Re gister
file
Constant 4
MUX
A
ALU R
Instruction
decoder
IR
MDR
MAR
Memory b us Address
data lines lines
20
Figure 7.8. Three-b us or g anization of the datapath.
Multiple-Bus Organization
● Add R4, R5, R6
StepAction
execution of the
MAR control logic
Memory
bus
instruction Data
lines
MDR
IR
phase? (Assume
control ALU
lines
Carry-in
single bus
XOR TEMP
architecture)
Figure 7.1. Single-bus organization of the datapath inside a processor. 22
23
Hardwired Control
24
Overview
● To execute instructions, the processor
must have some means of generating the
control signals needed in the proper
sequence.
● Two categories: hardwired control and
microprogrammed control
● Hardwired system can operate at high
speed; but with little flexibility.
25
Control Unit Organization
CLK Control step
Clock counter
External
inputs
Decoder/
IR
encoder
Condition
codes
Control signals
Step decoder
T 1 T2 Tn
INS1
External
INS2 inputs
Instruction
IR Encoder
decoder
Condition
codes
INSm
Run End
Control signals
T4 T6
T1
Generation of the Zin control signal for the processor in Figure 7.1.
28
Generating End
● End = T7 • ADD + T5 • BR + (T5 • N + T4 • N) • BRN +…
Branch<0
Add Branch
N N
T7 T5 T4 T5
End
29
A Complete Processor
Instruction Data
cache cache
Bus interface
Processor
System bus
Main Input/
memory Output
30
Figure 7.14. Block diagram of a complete processor
.
Microprogrammed Control
31
Overview
● Control signals are generated by a program similar to machine
language programs.
● Control Word (CW); microroutine; microinstruction
MDRout
WMFC
MAR in
Select
Read
PCout
R1out
R3out
Micro -
End
PCin
R1in
Add
Z out
IRin
Yin
instruction
Zin
1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0
2 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0
3 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
4 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0
5 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0
6 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1
32
Overview
Step Action
33
Overview
● Control store
Starting
IR address
One function
generator cannot be carried
out by this simple
organization.
Clock PC
Control
store CW
34
Figure 7.16. Basic organization of a microprogrammed control unit.
Overview
● The previous organization cannot handle the situation when the
control unit is required to check the status of the condition codes or
external inputs to choose between alternative courses of action.
● Use conditional branch microinstruction.
Address Microinstruction
35
Figure 7.17. Microroutine for the instruction Branch<0.
Overview
External
inputs
Starting and
branch address Condition
IR codes
generator
Clock PC
Control
store CW
38
Microprogram Sequencing
● If all microprograms require only straightforward sequential execution of
microinstructions except for branches, letting a μPC governs the sequencing
would be efficient.
● However, two disadvantages:
Having a separate microroutine for each machine instruction results in a
large total number of microinstructions and a large control store.
Longer execution time because it takes more time to carry out the required
branches.
● Example: Add src, Rdst
● Four addressing modes: register, autoincrement, autodecrement, and
indexed (with indirect forms).
39
Hardwired vs
Micro-programmed Control
● Hardwired implementation of the CU
– synthesizing a sequential circuit to obtain the desidered
input-output relations for control signals
● Micro-programmed implementation of the CU
– use sequences of micro-instructions to implement the
execution of CPU micro-operations
● Called micro-programming or firmware production, since
each sequence is made up by a small number of very simple
operations
40
40
Hardwired vs Micro-programmed
42