next up previous contents index

[ENGN3213 Home]

Microprogrammed Controller

  An alternative and flexible way of implementing the control subsystem is to use a microprogrammed controller. Such a controller implementation may use a general purpose system or a specially designed one, and the algorithm can be modified by changing the microprogram - a sequence of microinstructions.    

Figure 92 shows the organisation of a microprogrammed controller.

Figure 92: Microprogrammed controller.

This microprogrammed controller consists of the following modules:

  Microinstruction formats vary, but a format system must include a control field for the values of the control signals, and a sequencing field which specifies the address of the next microinstruction.

The control field may be organised horizontally, where each bit corresponds to a control signal, or vertically, where the bits are encoded for compactness.

The sequencing field may be explicit, where possible next addresses are listed, or implicit, where microinstructions are executed in the order they are stored. Microinstructions with no sequencing information are called control microinstructions. When branching is needed, special branch microinstructions are used.

Figure 93 shows 8-bit control and branch microinstruction formats suitable for the incdec example. The most significant bit I7 is used to distinguish between the two types of microinstruction.

Figure 93: Implicit sequencing microinstruction formats.

The control microinstruction is horizontally organised, where the five least significant bits I4-I0 are directly associated with the five control signal bits.

The branch microinstruction includes fields for the branch address, condition, and condition value. The two condition bits I6 I5 are coded as follows:

  I6 I5
start 00
k 01
unconditional $1\phi$
For example, if I6 I5=01 and the condition k=I4 is true, then the next address will be the branch address; otherwise, the next address in sequence will be used. If $I_6 I_5=1\phi$ the next address will be the branch address unconditionally.

A microprogram using these microinstructions implementing the incdec algorithm is as follows (states shown):

(state) address microinstruction
(wait) 0000 0000 0000
  0001 1000 0000
(setup) 0010 0001 1000
(abs val) 0011 0000 1001
(chk iter) 0100 0000 0000
  0101 1011 0111
  0110 1010 1001
(iterate) 0111 0001 1110
  1000 1100 0100
(mult) 1001 0000 0000
  1010 1100 0000

Microprogramming is a widely used technique in the design of complex digital systems such as microprocessors.

next up previous contents index

[ENGN3213 Home]

ANU Engineering - ENGN3213