Micro-programmed Control

Microprogrammed Control in Computer Organization

Overview

Control signals are generated by a program similar to machine language programs.

Control Word (CW); micro routine; microinstruction

micro controlled

Control store

Basic organization of a microprogrammed control unit.

store
Control
generator
address
CW
ClockPC

IR


One function cannot be carried out by this simple organization.

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.

Microinstructions

  • A straightforward way to structure microinstructions is to assign one bit position to each control signal.
  • However, this is very inefficient.
  • The length can be reduced: most signals are not needed simultaneously, and many signals are mutually exclusive.
  • All mutually exclusive signals are placed in the same group in binary coding.

Microinstructions

F2 (3 bits)

000: No transf er

001: PCin

010: IRin

011: Zin

100: R0in

101: R1in

110: R2in

111: R3in

F1 F2 F3 F4 F5

F1 (4 bits) F3 (3 bits) F4 (4 bits) F5 (2 bits)

0000: No transf er

0001: PCout

0010: MDRout

0011: Zout

0100: R0out

0101: R1out

0110: R2out

0111: R3out

1010: TEMPout

1011: Of f soeutt

000: No transf er

001: MARin

010: MDRin

011: TEMPin

100: Yin

0000: Add

0001: Sub

1111: XOR

16 ALU

f unctions

00: No action

01: Read

10: Write

F6 F7 F8

F6 (1 bit) F7 (1 bit) F8 (1 bit)

0: SelectY

1: Select4

0: No action

1: WMFC

0: Continue

1: End

Figure 7.19. An example of a partial format for field-encoded microinstructions.

Microinstruction

What is the price paid for

this scheme?

Read Here: Language Processors (The Interpreter) System Programing

Further Improvement

 

  • Enumerate the patterns of required signals in all possible microinstructions. Each meaningful combination of active control signals can then be assigned a distinct code.
    • Vertical organization(No encoding of control signals in control memory)
    • Horizontal organization(Reducing control fields in memory storage by use of MUXs in the output word from control memory

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 micro routine 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

micro instructions

Microinstructions with Next-Address Field

  • The microprogram we discussed requires several branch microinstructions, which perform no useful operation in the data path.
  • A powerful alternative approach is to include an address field as a part of every microinstruction to indicate the location of the next microinstruction to be fetched.
    • Pros: separate branch microinstructions are virtually eliminated; few limitations in assigning addresses to microinstructions.
    • Cons: additional bits for the address field (around 1/6)

 

bit-Oring

bit oring

Micro-Programmed Control

Emulation

  • A micro-program determines the machine instructions of a computer
  • Suppose we have two computers M1 and M2 with different instruction sets
  • By adapting the micro-program of M1, we can emulate M2

Organization

Micro-program is often placed in ROM on CPU chip
Some machines had writable control store, i.e. user could change instruction set

Also Read

 

Hardwired Control – Computer organization

Basic Processing Unit : Computer Organization

Two Pass Assemblers

Linear Convolution Program Using Matlab

Leave a Reply


Are You in Search
of A Job?

Subscribe to get job Alerts straight to your email inbox absolutely Free!

Thank you for subscribing.

Something went wrong.