CHAPTER 4
CONTROL UNIT
1
OUTLINE
4.1 Introduction
4.2 Micro-operations
4.3 Control Unit
Functional Requirements
Inputs
Outputs
Control Signals
4.4 Control Unit Implementation
Hardwired Control Unit
2
4.1 INTRODUCTION
In Chapter 3, seen:
Machine instructions
Operations performed by the processor to execute
each instruction
But how exactly each individual operation
is caused to happen ?
The job of the Control Unit
The control unit
Portion of the processor that actually causes things to
happen by
Issuing a control signal 3
Internal as well as external to the processor
4.2 MICRO-OPERATIONS
A computer executes a program
Consists of a sequence of instruction cycles
Instruction cycle
Consists of the following smaller cycles
Fetch/indirect/execute/interrupt cycle
Each cycle in turn, involves a series of steps
These steps are called micro-operations
A single micro-operation does very little and generally
involves either of the following
A transfer between registers
A transfer between a register and an external bus or
A simple ALU operation
Atomic operation of CPU 4
MICRO-OPERATIONS...
A diagram showing the relationship among the
concepts discussed so far
5
MICRO-OPERATIONS...
In the next sections, we will see
How the events of any instruction cycle can be
described as a sequence of micro operations
How the concept of micro operations serve as a
guide to the design of the control unit
6
MICRO-OPERATIONS...
Fetch cycle
Sequence of events, seen from point of view of its effects on
processor registers
First Step
To move the address from PC to MAR
Second Step
Overall effect is to bring in the instruction
Address (in the MAR) is placed on address bus
Control unit issues READ command
Result (data from memory) appears on data bus
Data from data bus copied into MBR
PC incremented by 1 (in parallel with data fetch from memory)
Third Step
Data (instruction) moved from MBR to IR 7
MICRO-OPERATIONS...
Fetch cycle (symbolic)
t1: MAR (PC)
t2: MBR memory
PC (PC) +1
t3: IR (MBR)
Fetch cycle
Involves three steps and four µop
Note that each µop involves movement of data into or out of
a register
Several µops can be performed in one clock cycle, so
long as these movements do not interfere with one 8
another
MICRO-OPERATIONS...
Assumptions
A clock is available for timing purpose
It emits regularly spaced clock pulses
Each clock pulse defines a time unit
Each single micro operation can be performed within
a time of a single time unit
Notations t1,t2 and t3 represents successive time
units
Note
The second and third micro operations (µops) , both ,
takes place during the second time unit
The third µop could have been grouped with the 9
fourth without affecting the fetch operation
MICRO-OPERATIONS...
Rules for grouping of µops
Proper sequence of events must be followed
MAR (PC) must precede MBR (memory)
As memory read operation makes use of the address in
the MAR
Conflicts must be avoided
Must not read & write same register in one time unit
As the result would be unpredictable
MBR memory and IR (MBR) must not be in same
cycle
10
MICRO-OPERATIONS...
Indirect Cycle
t1: MAR (IR[Address])
t2: MBR memory
t3: IR(Address) (MBR[Address])
Note:
IR[Address]
Refers to the address field of the instruction
MBR contains an address
IR is now in the same state as if direct addressing
had been used 11
MICRO-OPERATIONS...
Interrupt Cycle
t1: MBR (PC)
t2: MAR Save_Address
PC Routine_Address
t3: memory (MBR)
Note:
Save_Address
The address at which the contents of the PC are to be saved
Routine_Address
The starting address of the interrupt processing routine
This is a minimum
May be additional micro-ops to get addresses
The nature of this cycle varies greatly from one machine to another
12
MICRO-OPERATIONS...
Fetch, Indirect and Interrupt Cycles
Simple and predictable
Each involves a small, fixed sequence of micro
operations
In each case, the same sequence of micro operations
repeated
13
MICRO-OPERATIONS...
Execute Cycle
Different for each instruction
For a machine with N different opcodes
N different sequence of micro operation
Example:
ADD R1,X
(add the contents of location X to Register 1 , result in R1)
t1: MAR (IR[Address])
t2: MBR memory
t3: R1 (R1) + (MBR)
14
MICRO-OPERATIONS...
Execute Cycle
Example:
ISZ X
(increment and skip if zero)
t1: MAR (IR[Address])
t2: MBR memory
t3: MBR (MBR) + 1
t4: memory (MBR)
if ((MBR) == 0) then PC (PC) + 1
15
MICRO-OPERATIONS...
So far we have seen
How the operation of the processor can be defined as
a sequence of micro operations
Next
How the control unit causes this sequence to occur
16
4.3 CONTROL UNIT
Functional Requirements
Functional requirements of the control unit, those
functions the control unit must perform,
Basis for the design and implementation of the control unit
The control unit has to perform two basic tasks
Sequencing
Cause the processor to step through a series of µops ,in
the proper sequence
Execution
Cause each µop to be performed
This is done using Control Signals 17
CONTROL UNIT...
For the control unit to perform its function, it
needs
Inputs
To determine the state of the system
Outputs
To control the behaviour of the system
The above are external specification of the control
unit
Internally the control unit
Must have the logic required to perform its function
Sequencing 18
Execution
CONTROL UNIT...
Inputs
Clock
Used by control unit to keep time
One µops or a set of parallel µops occur per clock cycle
Instruction register
Contains Op-code of current instruction
Determines which µops are performed during the
execute cycle
Flags
Used by control unit to determine the status of CPU
Also, to determine results of previous ALU operations
From control bus
Interrupts 19
Acknowledgements
CONTROL UNIT...
Outputs
Control signals within CPU
These are two types
Cause data movement
Activate specific ALU functions
Control signals to control bus
These are also two types
Control signals to memory
Control signals to I/O modules
20
CONTROL UNIT...
Model of Control Unit
21
CONTROL UNIT...
How does the control unit maintain control ?
Control signals
Example : consider the fetch cycle
Control unit generates the following control signals
MAR (PC)
Open gates between PC and MAR
MBR memory
Open gates between MAR and address bus
Memory read control signal
Open gates between data bus and MBR
Add 1 to contents of PC and store the result back to PC
IR (MBR)
Open gates between MBR and IR 22
CONTROL UNIT...
Data Paths
and
Control Signals
23
CONTROL UNIT...
Maintains a knowledge of where it is in the
instruction cycle
Reads all of its inputs
Emits a sequence of control signals
That causes the right µops to occur at the right time
The control unit is the engine that runs the
entire computer
24
4.4 CONTROL UNIT IMPLEMENTATION
Two ways to implement the control unit:
Hardwired Control Unit Implementation
Micro programmed Control Unit Implementation
25
HARDWIRED IMPLEMENTATION
The control unit is essentially a combinational
circuit
Its inputs logic signals are transformed into a set
of output logic signals which are the control
signals
26
HARDWIRED IMPLEMENTATION...
Control Unit Inputs
Flags and control bus signals
Each individual bit typically has some meaning
The other two inputs (instruction register and clock) are
not directly useful to the control unit
Need to be modified as shown below
Instruction register
The control unit makes use of the opcode to issue different
combination of control signals for different instruction
To simplify the control unit logic, there should be a unique logic
input for each opcode
Performed by a decoder
A decoder with n binary inputs will have 2n binary outputs
For any combination of inputs only on of its output is high 27
HARDWIRED IMPLEMENTATION...
Control Unit Inputs
Clock
Generates a repetitive sequence of pulses
Useful for measuring duration of micro-ops
The control unit emits different control signals at different
times within instruction cycle
Realized using a counter as inputs to control unit
Which generates different control signals
• T1,T2,T3….
At the end of each instruction cycle, the control unit feeds
back to the counter to reinitialize it at T1
28
HARDWIRED IMPLEMENTATION...
Control Unit with Decoded Inputs
29
HARDWIRED IMPLEMENTATION...
Control Unit Internal Logic
Derive a boolean expression for each control signal as
a function of the inputs
Example:
Consider two control signals P and Q with the following
characteristics
PQ= 00 Fetch cycle
PQ=01 Indirect cycle
PQ=10 Execute cycle
PQ=11 Interrupt cycle
Then the boolean expression for C5 (a control signal that
causes the data to be read from the external data bus into
MBR)
C5=P’Q’T2 + P’QT2
(C5 will be asserted during the second time unit of both the 30
fetch and indirect cycles)
HARDWIRED IMPLEMENTATION...
Control Unit Internal Logic
Repeat the above process for every control signal
generated by the CU
Result
A set of boolean equations that define the behavior of the
control unit
Problems With Hardwired Designs
Complex sequencing & micro-operation logic
Difficult to design and test
Inflexible design
31
Difficult to add new instructions
End of Chapter 4
32