0% found this document useful (0 votes)
17 views

Chapter 3 Microprogram Control Organisation

The document discusses two main approaches to control unit design: hardwired control units, which are fast but inflexible and require complete redesign for changes, and microprogrammed control units, which are more adaptable but slower and costlier. It outlines the structure and functions of microprogrammed control units, including control memory, microinstructions, and address sequencing capabilities. Additionally, it provides definitions and examples of microinstruction formats and routines, emphasizing the systematic organization of microprogrammed control units.

Uploaded by

chatrebhushan447
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Chapter 3 Microprogram Control Organisation

The document discusses two main approaches to control unit design: hardwired control units, which are fast but inflexible and require complete redesign for changes, and microprogrammed control units, which are more adaptable but slower and costlier. It outlines the structure and functions of microprogrammed control units, including control memory, microinstructions, and address sequencing capabilities. Additionally, it provides definitions and examples of microinstruction formats and routines, emphasizing the systematic organization of microprogrammed control units.

Uploaded by

chatrebhushan447
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Two general approaches to control unit design:

One approach views the controller as a sequential logic circuit or


finite state machine that generates specific sequence of control
signals in response to externally supplied instructions.

•It is designed with minimum number of components and maximize the speed
of operation.
• Once the unit is constructed ,the only way to implement changes in control
unit is by redesigning the entire unit—therefore said to be HARDWIRED.

Alternate method of designing program control unit is Micro


programmed control unit ,it is build around a storage unit called a
control memory, where all the control signals are stored in a program
like format.

•The control memory stores a set of micro programs designed to implement the
behavior of the given instruction set.
•Each instruction causes the corresponding micro program to be fetched and its
Control Unit Implementation
Hardwired
Memory Instruction code

Sequential . Control
Status Signals
Logic Circuits . signals

Micro programmed control unit

2
•Microprogramming control unit design is more systematic organization.

•The control signals are embedded in a kind of low-level software—firmware.

•Design changes can be easily made by modifying the contents of control


memory.

Disadvantages:

•Micro programmed control units are costly than hardwired.

•Slower because of the extra time required to fetch microinstructions from


the control memory

RISC /Application specific processors-----Micro programmed organization

3
Hardwired
Method 1 (Classical method): The classical method of sequential circuit design is used. It attempts to
minimize the amount of Hardware in particular, by using only log 2P flip-flops to realize a P-state circuit.

Method 2 (One-hot encoding): An approach that uses one flip-flop per state and is known as the one-hot
method. While expensive in terms flip-flops; this method simplifies Control Unit design and debugging.
Definitions:
Control signals
◦ Group of bits used to select paths in
multiplexers, decoders, arithmetic logic
units
Control variables
◦ Binary variables specify microoperations
 Certain microoperations initiated while others
idle
Control word
◦ String of 1’s and 0’s represent control
variables

5
Definitions
 Control memory
◦ Memory contains control words
 Microinstructions
◦ Control words stored in control memory
◦ Specify control signals for execution of
microoperations
 Microprogram routine
◦ Sequence of microinstructions
◦ Each computer instruction has its own
micro program routine to generate micro
operations that execute the instruction

cpe 252: Computer Organization 6


Control Memory (its function)
 Read-only memory (ROM)
 Content of word in ROM at given address specifies
microinstruction
 Each computer instruction initiates series of
microinstructions (micro program) in control
memory.

 These microinstructions generate micro operations to


◦ Fetch instruction from main memory
◦ Evaluate effective address
◦ Execute operation specified by instruction
◦ Return control to fetch phase for next instruction

Control Control word


Address memory (microinstruction)
(ROM)
7
Micro Programmed Control Organization

CAR: Control Address Register


Memory Instruction code CDR: Control Data Register

Next Address Decoding . Control


Generator CAR Control CDR
Memory Circuit . signals
(sequencer)
Microprogrammed Control
Organization
External Next Address Control
input CDR Control
Generator CAR Memory word
(sequencer) (ROM)

 Control memory
◦ Contains microprograms (set of
microinstructions)
◦ Microinstruction contains
 Bits initiate microoperations
 Bits determine address of next microinstruction
 Control address register (CAR)
◦ Specifies address of next microinstruction

9
Microprogrammed Control
Organization
Next address generator (Micro program
sequencer)
◦ Determines address sequence for control
memory

Micro program sequencer functions (Important)


◦ Increment CAR by one
◦ Transfer external address into CAR
◦ Load initial address into CAR to start control
operations

10
Microprogrammed Control
Organization
Control data register (CDR)- or pipeline
register
◦ Holds microinstruction read from control
memory
◦ Allows execution of microoperations
specified by control word simultaneously
with generation of next microinstruction
Control unit can
External
input operate
Next Address without
Control CDR
Control
Generator CAR Memory word
(sequencer) (ROM)

cpe 252: Computer Organization 11


Micro program Routines
(extra)
Subroutine
◦ Sequence of microinstructions used by
other routines to accomplish particular
task
Example
◦ Subroutine to generate effective
address of operand for memory
reference instruction
Subroutine register (SBR)
◦ Stores return address during
subroutine call
12
Conditional Branching (extra)
Branching from one routine to another
depends on status bit conditions
Status bits provide parameter info such as
◦ Carry-out of adder
◦ Sign bit of number
◦ Mode bits of instruction
Info in status bits can be tested and
actions initiated based on their conditions:
1 or 0
Unconditional branch
◦ Fix value of status bit to 1
13
Address Sequencing
Address sequencing capabilities
required in control unit explained
in next slide.
◦ Incrementing CAR
◦ Unconditional or conditional branch,
depending on status bit conditions
◦ Mapping from bits of instruction to
address for control memory
◦ Facility for subroutine call and return

14
Selection of address for
control memory
Instruction code

Mapping
logic

Status Branch MUX Multiplexers


bits logic select

Subroutine
Register
Control Address Register (SBR)
(CAR)

Incrementer

Control memory (ROM)

select a status
bit
Microoperations
Branch address

15
The diagram shows control memory and the associated H/W needed for
selecting the next microinstruction address.

The diagram shows four different paths from which the CAR receives the
address.---Address sequencing capabilities

•The Incrementer increments the content of the CAR by one, to select the next
microinstruction in sequence.

•Branching is achieved by specifying the branch address in one of the fields of the
microinstruction.

•Conditional branching is obtained by using a part of the microinstruction to select a


specific status bit in order to determine its condition.

•An external address is transferred into control memory via a mapping logic circuit.

The return address for a subroutine is stored in a special register whose


value is then used when the micro-program wishes to return from the sub-
routine.
Mapping of Instruction
Each computer instruction has its
own microprogram routine stored
in a given location of the control
memory
Mapping
◦ Transformation from instruction code
bits to address in control memory
where routine is located

17
Mapping of Instruction
Example
◦ Mapping 4-bit operation code to 7-bit
address
OP-codes of Instructions
ADD 0000
0001
AND 0010 Control
LDA
memory
Mapping bits 0 xxxx 00
Address
0 0000 00 ADD Routine

0 0001 00 AND Routine

0 0010 00 LDA Routine

cpe 252: Computer Organization 18


Micro program Example
Computer instruction format
15 14 11 10 0
I Opcode Address

Four computer instructions


Symbol OP-code Description
EA is the effective address
ADD 0000 AC AC + M[EA]
BRANCH 0001 if (AC < 0) then (PC  EA)
STORE 0010 M[EA]  AC
EXCHANGE 0011 AC M[EA], M[EA] 
AC

Microinstruction Format ( important)


3 3 3 2 2 7
F1 F2 F3 CD BR AD

F1, F2, F3: Microoperation fields


CD: Condition for branching
BR: Branch field
AD: Address field

19
Don’t read
Microinstruction Fields
F1 Microoperation Symbol F2 Microoperation Symbol
000 None NOP 000 None NOP
001 AC  AC + DR ADD 001 AC  AC - DR SUB
010 AC  0 CLRAC 010 AC  AC  DR OR
011 AC  AC + 1 INCAC 011 AC  AC  DR AND
100 AC  DR DRTAC 100 DR  M[AR] READ
101 AR  DR(0-10) DRTAR 101 DR  AC ACTDR
110 AR  PC PCTAR 110 DR  DR + 1 INCDR
111 M[AR]  DR WRITE 111 DR(0-10)  PC PCTDR

F3 Microoperation Symbol
000 None NOP
001 AC  AC  DR XOR
010 AC  AC’ COM
011 AC  shl AC SHL
100 AC  shr AC SHR
101 PC  PC + 1 INCPC
110 PC  AR ARTPC
111 Reserved

20
Microinstruction Fields
Don’t read

CD Condition Symbol Comments


00 Always = 1 U Unconditional branch
01 DR(15) I Indirect address bit
10 AC(15) S Sign bit of AC
11 AC = 0 Z Zero value in AC

BR Symbol Function
00 JMP CAR  AD if condition = 1
CAR  CAR + 1 if condition = 0
01 CALL CAR  AD, SBR  CAR + 1 if condition = 1
CAR  CAR + 1 if condition = 0
10 RET CAR  SBR (Return from subroutine)
11 MAP CAR(2-5)  DR(11-14), CAR(0,1,6)  0

21
Fetch Routine
 Fetch routine Don’t read
- Read instruction from memory
- Decode instruction and update PC
Microinstructions for fetch routine:
AR PC
DR  M[AR], PC  PC + 1
AR  DR(0-10), CAR(2-5)  DR(11-14), CAR(0,1,6)  0

Symbolic microprogram for fetch routine:


ORG 64
FETCH: PCTAR U JMP NEXT
READ, INCPC U JMP NEXT
DRTAR U MAP

Binary microporgram for fetch routine:


Binary
address F1 F2 F3 CD BR AD
1000000 110 000 000 00 00 1000001
1000001 000 100 101 00 00 1000010
1000010 101 000 000 00 11 0000000

22
Binary Microprogram Don’t read

Address Binary Microinstruction


Micro Routine Decimal Binary F1 F2 F3 CD BR
AD
ADD 0 0000000 000 000 000 01 01 1000011
1 0000001 000 100 000 00 00 0000010
2 0000010 001 000 000 00 00
1000000
3 0000011 000 000 000 00 00
1000000
BRANCH 4 0000100 000 000 000 10 00 0000110
5 0000101 000 000 000 00 00 1000000
6 0000110 000 000 000 01 01 1000011
7 0000111 000 000 110 00 00 1000000
STORE 8 0001000 000 000 000 01 01 1000011
9 0001001 000 101 000 00 00 0001010
10 0001010 111 000 000 00 00
1000000
11 0001011 000 000 000 00 00
1000000
EXCHANGE 12 0001100 000 000 000 01 01 1000011
13 0001101 001 000 000 00 00
0001110
14 0001110 100 101 000 00 00
0001111
15 0001111 111 000 000 00 00
1000000

FETCH 64 1000000 110 000 000 00 00 1000001


Microprogram Sequencer
External
(MAP)

L
I0 3 2 1 0
Input Load
I1 logic S1 MUX1 SBR
T S0

1 Incrementer
I MUX2 Test
S
Z Select
Clock CAR

Control memory

Microops CD BR AD
... ...

24
The control memory is included in the diagram to show the interaction between
the sequencer and memory.

There are two MUX’s in the circuit. The first MUX selects an address from one of four
Sources

1. The Incrementer increments the content of the CAR by one, to select the next
microinstruction in sequence.

2. Branching is achieved by specifying the branch address in one of the fields


of the microinstruction.

3. Conditional branching is obtained by using a part of the microinstruction


to select a specific status bit in order to determine its condition.

4. An external address is transferred into control memory via a mapping logic circuit.

• The CD field of the microinstruction selects one of the status bits in the second MUX .

• If the bit selected is equal to 1,the T (test)variable is equal to 1;otherwise ,it is equal to 0

The T value together with two bits from the BR (branch) field go to an input logic circuit.
The input logic circuit has three inputs I0,I1 and T and three outputs S0,S1 and L.

Variables S0 and S1 select one of the source addresses for CAR.

Variable L enables the load input in SBR.

The binary values of the two selection variables determine the path in the MUX.

The I1 and I0 are identical to the bit values in the BR field.

The bit values for s1 & s0 are determined from the stated function and path in the
Multiplexer that establishes the required transfer .
The SBR register is loaded with the incremented value of CAR during a call
Micro instruction (BR=01) provided that the status bit condition is satisfied (T=1).

The truth table can be used to obtain the simplified boolean functions for the input logic.

27

You might also like