Microprogramming

  • Current state and outputs are defined using microinstructions
  • The microinstructions are stored in microprogram memory (control memory)
  • A micro-sequencer computes the address of the next microinstruction using the inputs and the current state

Implementation

  • Option: CM stores the complete state transition table
    • A row in the table corresponds to a microinstruction (i.e. next state and outputs)
    • The micro-sequencer selects the next state based on the input one of the next states as address for the CM (uses a multiplexer)
    • Advantage: Most flexible ( and are reprogrammable)
    • Drawback: CM can be very large and slow
  • Option 2: Store the instructions by their address and their conditional branch address
    • Moves to next by default, moves to BADR if the selected condition is met

Generating output signals

  • Horizontal microprogramming
    • 1 bit is used for each output signal (a control field) in CMDR Horizontal microprogramming
    • Advantage: maximal parallelism in data path
      • All control signals can be set independently
    • Drawback: Wide microinstruction large control memory
  • Vertical microprogramming
    • Only one control field with is used
    • Values corresponds with a binary coding for the full control fields
    • Advantage: small control memory
    • Drawback: only one signal can be set at a time; Slow; No parallelism
  • Diagonal microprogramming
    • Control signals that can not be simultaneously active are grouped together and binary coded
    • The number of fields defines the level of parallelism