Computing history and an original reading study

1953

Microprogramming: A Program Beneath an Instruction

Distinguish an application, a machine instruction and its control steps through an original reading example grounded in Wilkes and Stringer’s paper.

Original explanatory diagram: visible request; what remains fixed.

The short answer

A programmer can ask a machine to perform an operation without specifying every movement inside it. The question is how that promise becomes a sequence of physical actions.

Compare the representations

Why can one machine instruction require a sequence of control steps?

Keep the stated evidence separate from the conclusions it permits.

Historical claims are sourced in the article. Invented examples are labelled and do not reproduce historical measurements or software.
DistinctionRepresentation or actionWhat follows — and what does not
ApplicationA calculation calls ADD repeatedly.The program changes; the meaning of ADD may stay fixed.
InstructionADD specifies an observable arithmetic effect.The instruction need not expose every internal register transfer.
ControlA stored sequence selects transfers and arithmetic.It organizes available hardware; it does not invent new hardware by declaration.

Chronology

A timeline of the turning points

  1. Selected historical record

    The cited record supplies the historical starting point; the labelled examples below are original.

The problem in the selected paper

Wilkes and Stringer’s introduction connects complicated control circuitry with maintenance difficulty. They propose describing machine operations through elementary micro-operations, with micro-orders held in a rapid-access permanent store. Their example proposes a diode matrix and includes conditional sequencing.

Sources for this section: [1]

Three levels, three different descriptions

Consider an invented machine that can transfer values between a memory, a temporary register and an accumulator. Its programmer-visible instruction is ADD location. The instruction’s meaning is that the value at that location is added to the accumulator. It does not specify a physical wire, clock period or particular register arrangement.

One possible implementation first requests the memory value, waits until it is available, places that value at the arithmetic unit, selects addition and saves the result. Another implementation might combine some actions or use a different temporary register. Both can satisfy the same visible instruction if their observable results agree. This invented sequence is not the circuit sequence printed in the historical paper.

What a control store changes

The historical proposal permits an order code to be changed through the stored control arrangement rather than ad hoc redesign of each instruction’s circuitry. That is a design argument about organization; it is not a promise that every control change is costless or that the arithmetic hardware can perform an unsupported operation.

In the invented machine, suppose a revised control sequence waits for a memory-ready signal before saving a value. The visible ADD instruction need not change. Conversely, renaming ADD as COMBINE in an application does not alter that internal sequence. These are changes at different levels, even if a casual account calls both “reprogramming.”

Sources for this section: [1]

A useful reading test

When a source says a computer is programmable, identify the thing being varied. Is the user choosing a sequence of machine instructions? Is an engineer specifying the internal sequence that implements an instruction? Or is someone changing the physical data path itself? Ask which part stays fixed under each change.

For the invented machine, a control sequence cannot create a second independent adder merely by naming one. It can reuse the existing adder over time. Likewise, a stored control design does not establish the speed, writable-update capability or security properties of a modern processor. The selected paper provides the historical idea, while the example isolates its levels of description.

Continue the chronology

Biography context

Explore United Kingdom through connected lives

Connected biographies

A working life behind the record

Quick answers

Common questions

Does microprogramming mean programming a small computer?
No. Here it means organizing the control steps that implement machine instructions; it does not refer to the physical size of the computer.

Primary and institutional sources

How this history was checked

The account identifies the selected portions actually consulted. Original scenarios and reference answers explain the distinction without reproducing the source’s diagrams or implying that historical software was run. This article was reviewed on 5 November 2026.

  1. M. V. Wilkes and J. B. Stringer, 1953; reprinted in Computer Structures, chapter 28Microprogramming and the design of the control circuits in an electronic digital computer