Skip to content
BetterDL

Control store

Also called: control memory, control ROM, micro-PC, microprogram counter

The small memory, usually a ROM, that holds a microprogrammed CPU's microinstructions. A micro-PC selects which one drives the signals.

In microprogrammed control, the control signals for every step of every instruction are stored as words. The memory that holds them is the control store, usually a rom inside the CPU.

Each word is a microinstruction. A register called the micro-PC holds the address of the current one. Each clock cycle, the addressed word drives the control signals, and the micro-PC moves to the next word or jumps. After the decode step it jumps to the start of the microprogram for the current opcode.

Sizing it uses the usual memory rules:

  • depth = number of microinstructions, which sets the micro-PC width (⌈log₂ depth⌉ bits);
  • width = bits per microinstruction;
  • total = depth × width bits.

Because it's a memory, changing the CPU's behavior can mean changing the control store's contents. If it's writable, the CPU can even be patched after it ships.

Worked example

Example

Sizing a control store

A control store holds 100 microinstructions, each with 16 control bits and a next-address field that can reach any of them.

  1. 1.

    Next-address field: 2⁶ = 64 is too few, 2⁷ = 128 is enough. 7 bits.

  2. 2.

    Microinstruction width: 16 + 7 = 23 bits.

  3. 3.

    The micro-PC is 7 bits.

  4. 4.

    Total: 100 × 23 = 2300 bits (a 128-word ROM would hold 128 × 23 = 2944).

Common mistakes

  • Sizing the next-address field by the number of control signals. It's set by how many microinstructions there are.

  • Confusing the control store with main memory. Programs never read it.

Practice Control store

Interactive questions with instant feedback and a worked solution for every wrong answer.

Learn it step by step

Control store is taught in Basic CPU / Computer Architecture.