+
William Stallings
Computer Organization
and Architecture
10th Edition
© 2016 Pearson Education, Inc., Hoboken,
NJ. All rights reserved.
+ Chapter 20
Control Unit Operation
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Micro-Operations
The functional, or atomic, operations of a processor
Series of steps, each of which involves the processor
registers
Micro refers to the fact that each step is very simple and
accomplishes very little
The execution of a program consists of the sequential
execution of instructions
Each instruction is executed during an instruction cycle
made up of shorter subcycles (fetch, indirect, execute,
interrupt)
The execution of each subcycle involves one or more
shorter operations (micro-operations)
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Program Execution
Instruction Cycle Instruction Cycle Instruction Cycle
Fetch Indirect Execute Interrupt
µOP µOP µOP µOP µOP
Figure 20.1 Constituent Elements of a Program Execution
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
The Fetch Cycle
Occurs at the beginning of each instruction cycle and
causes an instruction to be fetched from memory
Four registers are involved:
Memory Address Register (MAR)
Connected to address bus
Specifies address for read or write operation
Memory Buffer Register (MBR)
Connected to data bus
Holds data to write or last data read
Program Counter (PC)
Holds address of next instruction to be fetched
Instruction Register (IR)
Holds last instruction fetched
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
tMAR MAR 0000000001100100
MBR MBR
PC 0000000001100100 PC 0000000001100100
IR IR
AC AC
(a) Beginning (before t1) (b) After first step
MAR 0000000001100100 MAR 0000000001100100
MBR 0001000000100000 MBR 0001000000100000
PC 0000000001100101 PC 0000000001100101
IR IR 0001000000100000
AC AC
(c) After second step (d) After third Step
Figure 20.2 Sequence of Events, Fetch Cycle
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Rules for Micro-Operations
Grouping
Proper sequence must be followed
MAR (PC) must precede MBR (memory)
Conflicts must be avoided
Must not read and write same register at same time
MBR (memory) and IR (MBR) must not be in same cycle
One of the micro-operations involves an addition
To avoid duplication of circuitry, this addition could
be performed by the ALU
The use of the ALU may involve additional
micro-operations, depending on the functionality
of the ALU and the organization of the processor
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Indirect Cycle
Once an instruction is fetched, the next step is to fetch
source operands
Assuming a one-address instruction format, with direct
and indirect addressing allowed:
If the instruction specifies an indirect address, then an
indirect cycle must precede the execute cycle
The address field of the instruction is transferred to the MAR
This is then used to fetch the address of the operand
Finally, the address field of the IR is updated from the MBR, so
that it now contains a direct rather than an indirect address
The IR is now in the same state as if indirect addressing had
not been used, and it is ready for the execute cycle
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Interrupt Cycle
At the completion of the execute cycle, a test is made to determine
whether any enabled interrupts have occurred, and if so, the interrupt
cycle occurs
The nature of this cycle varies greatly from one machine to another
In a simple sequence of events:
In the first step the contents of the PC are transferred to the MBR so that they
can be saved for return from the interrupt
Then the MAR is loaded with the address at which the contents of the PC are to
be saved, and the PC is loaded with the address of the start of the interrupt-
processing routine
These two actions may each be a single micro-operation
Because most processors provide multiple types and/or levels of interrupts,
it may take one or more additional micro-operations to obtain the
Save_Address and the Routine_Address before they can be transferred to
the MAR and PC respectively
Once this is done, the final step is to store the MBR, which contains the old
value of the PC, into memory
The processor is now ready to begin the next instruction cycle
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Execute Cycle
Because of the variety of opcodes, there are a number of
different sequences of micro-operations that can occur
Instruction decoding
The control unit examines the opcode and generates a sequence of
micro-operations based on the value of the opcode
A simplified add instruction:
ADD R1, X (which adds the contents of the location X to register R1)
In the first step the address portion of the IR is loaded into the MAR
Then the referenced memory location is read
Finally the contents of R1 and MBR are added by the ALU
Additional micro-operations may be required to extract the register
reference from the IR and perhaps to stage the ALU inputs or
outputs in some intermediate registers
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
11 (interrupt) 00 (fetch)
ICC?
10 (execute) 01 indirect
Setup Read Fetch
Opcode
interrupt address intstruction
Execute
ICC = 00 instruction ICC = 10 No Indirect Yes
addressing?
Yes Interrupt No
for enabled ICC = 10 ICC = 01
interrupt?
ICC = 11 ICC = 00
Figure 20.3 Flowchart for Instruction Cycle
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Control Unit
Functional Requirements
By reducing the operation of the processor to its most
fundamental level we are able to define exactly what it is that
the control unit must cause to happen
Three step process to lead to a characterization of the control
unit:
Define basic elements of processor
Describe micro-operations processor performs
Determine the functions that the control unit must perform to
cause the micro-operations to be performed
The control unit performs two basic tasks:
Sequencing
Execution
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Instruction register
Control signals
within CPU
Control bus
Flags
Control signals
Control from control bus
Unit
Clock
Control signals
to control bus
Figure 20.4 Block Diagram of the Control Unit
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
C5
M C11
B
R
C10
C12 C3 C4
C8 C1 AC
PC IR
C7 C9
C6
C2 C13 Control
C0 ALU signals
M
A
R Control
Flags
unit
Clock
Control
signals
Figure 20.5 Data Paths and Control Signals
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 20.1 M icro-operations and Control Signals
M icro-operations Active Control
Signals
t1: MAR ¬ (PC) C2
t2: MBR ¬ Memory
Fetch: C5 , C R
PC ¬ (PC) + 1
t3: IR ¬ (MBR) C4
t1: MAR ¬ (IR(Address)) C8
Indirect: t2: MBR ¬ Memory C5 , C R
t3: IR(Address) ¬ (MBR(Address)) C4
t1: MBR ¬ (PC) C1
t2: MAR ¬ Save-address
Interrupt:
PC ¬ Routine-address
t3: Memory ¬ (MBR) C12, CW
CR = Read control signal to system bus.
CW = Write control signal to system bus.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved. (Table can be found on page 719 in the textbook.)
Control
unit
IR
PC
Address
lines MAR
Internal CPU bus
Data
lines MBR
AC
+
ALU
Figure 20.6 CPU with Internal Bus
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
INTA RST 6.5 TRAP
INTR RST 5.5 RST 7.5 SID SOD
Interrupt control Serial I/O
control
8-bit internal data bus
(8) (8) (8) (8) (8)
(8) instruction
Accumulator temp. reg. flags B reg. C reg.
register
(8) (8)
D reg. E reg.
(8) (8)
instruction H reg. L reg.
register
decoder (16) array
ALU and stack pointer
machine
cycle (16)
encoding program counter
incrementer/ (16)
decrementer
address latch
Power +5V
supply GND Timing and control
X1
Clk (8) (8)
X2
Gen Control Status DMA Reset address buffer address buffer
ClkOut RD WR ALE S0 S1 IO/M HLDA Reset out
A15 – A8 AD7 – AD0
Ready Hold Reset in
address bus address/data bus
Figure 20.7 Intel 8085 CPU Block Diagram
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Address and Data Signals
High Address (A15–A8)
The high-order 8 bits of a 16-bit address.
Address/Data (AD7–AD0)
The lower-order 8 bits of a 16-bit address or 8 bits of data. This multiplexing saves on pins.
Serial I nput Data (SI D)
A single-bit input to accommodate devices that transmit serially (one bit at a time).
Serial Output Data (SOD) Table
A single-bit output to accommodate devices that receive serially.
20.2
Timing and Control Signals
CLK (OUT)
The system clock. The CLK signal goes to peripheral chips and synchronizes their timing.
X1, X2
Intel
These signals come from an external crystal or other device to drive the internal clock 8085
generator.
Address Latch Enabled (ALE) External
Occurs during the first clock state of a machine cycle and causes peripheral chips to store the
address lines. This allows the address module (e.g., memory, I/O) to recognize that it is being Signals
addressed. (page 1 of 2)
Status (S0, S1)
Control signals used to indicate whether a read or write operation is taking place.
I O/M
Used to enable either I/O or memory modules for read and write operations.
Read Control (RD)
Indicates that the selected memory or I/O module is to be read and that the data bus is
available for data transfer.
Write Control (WR)
Indicates that data on the data bus is to be written into the selected memory or I/O location.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
(Table can be found on page 722 in the textbook.)
Memory and I/O Initiated Symbols
Hold
Requests the CPU to relinquish control and use of the external system bus. The CPU will complete
execution of the instruction presently in the IR and then enter a hold state, during which no signals are
inserted by the CPU to the control, address, or data buses. During the hold state, the bus may be used
for DMA operations.
Hold Acknowledge (HOLDA)
This control unit output signal acknowledges the HOLD signal and indicates that the bus is now
available. Table
READY
Used to synchronize the CPU with slower memory or I/O devices. When an addressed device asserts
READY, the CPU may proceed with an input (DBIN) or output (WR) operation. Otherwise, the CPU
20.2
enters a wait state until the device is ready.
TRAP
Interrupt-Related Signals
Intel
Restart Interrupts (RST 7.5, 6.5, 5.5)
I nterrupt Request (I NTR) 8085
These five lines are used by an external device to interrupt the CPU. The CPU will not honor the
request if it is in the hold state or if the interrupt is disabled. An interrupt is honored only at the
completion of an instruction. The interrupts are in descending order of priority.
External
I nterrupt Acknowledge
Acknowledges an interrupt.
Signals
(page 2 of 2)
CPU Initialization
RESET I N
Causes the contents of the PC to be set to zero. The CPU resumes execution at location zero.
RESET OUT
Acknowledges that the CPU has been reset. The signal can be used to reset the rest of the system.
Voltage and Ground
VCC
+5-volt power supply
VSS
Electrical ground
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
X1 1 40 Vcc
X2 2 39 HOLD
Reset out 3 38 HLDA
SOD 4 37 CLK (out)
SID 5 36 Reset in
Trap 6 35 Ready
RST 7.5 7 34 IO/M
RST 6.5 8 33 S1
RST 5.5 9 32 Vpp
INTR 10 31 RD
INTA 11 30 WR
AD0 12 29 S0
AD1 13 28 A15
AD2 14 27 A14
AD3 15 26 A13
AD4 16 25 A12
AD5 17 24 A11
AD6 18 23 A10
AD7 19 22 A9
Vss 20 21 A8
Figure 20.8 Intel 8085 Pin Configuration
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
OUT Byte
M1 M2 M3
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3
3-MHz
CLK
A15 – A8 PCH PCH IO PORT
AD7 – AD0 PCH INSTR INSTR INSTR INSTR ACCUM
ALE
RD
WR
IO/M
PC out PC+1 PC INSTR IR X PC out PC+1 PC byte Z,W WZ out A Port
Instruction fetch Memory read Output write
Figure 20.9 Timing Diagram for Intel 8085 OUT Instruction
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
I1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
I2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
I3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
I4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
O1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
O2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Table
O3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 20.3
O4 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
O5
O6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
A
O7 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
Decoder
O8 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 With
O9 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 Four
O10 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
O11 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Inputs
O12 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 and
O13 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Sixteen
O14 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Outputs
O15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
(Table can be found on page 725 in the textbook.)
Instruction register
Decoder
I0 I1 Ik
T1
T2
Timing Control
Clock
generator Unit Flags
Tn
C0 C 1 Cm
Figure 20.10 Control Unit with Decoded Inputs
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+ Summary Control Unit
Operation
Chapter 20
Control
of the
Micro-operations
processor
Functional requirements
The fetch cycle
Control signals
The indirect cycle
Internal processor
The interrupt cycle
organization
The execute cycle
The Intel 8085
The instruction cycle
Hardwired
implementation
Control unit inputs
Control unit logic
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.