• The function of the control unit in a digital computer is to initiate sequences of microoperations.
  • When the control signals are generated by hardware using conventional logic design techniques, the control unit is said to be hardwired.
  • Microprogramming is a second alternative for designing the control unit of a digital computer.
    • The principle of microprogramming is an elegant and systematic method for controlling the microoperation sequences in a digital computer.
  • In a bus-organized systems, the control signals that specify microoperations are groups of bits that select the paths in multiplexers, decoders, and arithmetic logic units.
  • A control unit whose binary control variables are stored in memory is called a microprogrammed control unit.
  • A memory that is part of a control unit is referred to as a control memory.
    • Each word in control memory contains within it a microinstruction.
    • A sequence of microinstructions constitutes a microprogram.
    • Can be either read-only memory(ROM) or writable control memory (dynamic microprogramming)
  • A computer that employs a microprogrammed control unit will have two separate memories:
    • A main memory
    • A control memory
  • The general configuration of a microprogrammed control unit is demonstrated in the block diagram of 3.1.
    • The control memory is assumed to be a ROM, within which all control information is permanently stored.
    • The control address register specifies the address of the microinstruction.
    • The control data register holds the microinstruction read from memory.
  • Thus a microinstruction contains bits for initiating microoperations in the data processor part and bits that determine the address sequence for the control memory.

Extra Stuff:


  • Program stored in memory that generates all the control signals required to execute the instruction set correctly
  • Consists of microinstructions Microinstruction


  • Contains a control word and a sequencing word
    • Control Word - All the control information required for one clock cycle
    • Sequencing Word - Information needed to decide the next microinstruction address
  • Vocabulary to write a microprogram

Control Memory (Control Storage: CS)

  • Storage in the microprogrammed control unit to store the microprogram Writeable Control Memory(Writeable Control Storage:WCS)
  • CS whose contents can be modified
    • Allows the microprogram can be changed
    • Instruction set can be changed or modified

Dynamic Microprogramming

      • Computer system whose control unit is implemented with a microprogram in WCS
      • Microprogram can be changed by a systems programmer or a user

Microrogrammed Sequencer

  • The next address generator is sometimes called a microprogram sequencer, as it determines the address sequence that is read from control memory.
  • Typical functions of a microprogram sequencer are:
    • Incrementing the control address register by one
    • Loading into the control address register an address from control memory
    • Transferring an external address
    • Loading an initial address to start the control operations

Pipeline Register

  • The data register is sometimes called a pipeline register.
    • It allows the execution of the microoperations specified by the control word simultaneously with the generation of the next microinstruction.
      • This configuration requires a two-phase clock
    • The system can operate by applying a single-phase clock to the address register.
      • Without the control data register
      • Thus, the control word and next-address information are taken directly from the control memory.


  • The main advantage of the microprogrammed control is the fact that once the hardware configuration is established; there should be no need for further hardware or wiring change.
  • Most computers based on the reduced instruction set computer (RISC) architecture concept use hardwired control rather than a control memory with a microprogram. (Why?)

A Microprogram Control Unit that determines the Microinstruction Address to be executed in the next clock cycle

  • In-line Sequencing
  • Branch
  • Conditional Branch
  • Subroutine
  • Loop
  • Instruction OP-code mapping