1951

Microprogramming

Maurice Wilkes (1913–2010)

By 1951, the basic structure of stored-program computers had been worked out: a central processing unit (CPU) that had registers for storing numbers, an arithmetic logic unit (ALU) for performing mathematical operations, and logic for moving data between the CPU and memory. But the internal design of these early CPUs was a mess. Each instruction was implemented with a different set of wires and circuits, some with components in common, and others with their own individual logic.

British computer scientist Maurice Wilkes realized that the design of the CPU could be made more regular after seeing the design of the Whirlwind, which was controlled by a crisscrossing matrix of wires. Some of the wires connected by a diode where they crossed. Voltage was applied to each horizontal wire in sequence. If a diode was present, the corresponding vertical wire would be energized and activate different parts of the CPU.

Wilkes realized that each line of the diode matrix in the Whirlwind could be viewed as a set of microoperations that the CPU followed, a kind of “microprogram.” He formalized this idea in a lecture at the 1951 Manchester University Computer Inaugural Conference, immodestly titled “The Best Way to Design an Automatic Calculating Machine.” In the lecture, later published by the university, Wilkes proposed that his idea might seem at once obvious, because it described nothing more than a formalized way of creating a CPU using the same basic wires, diodes, and electronic switches that were already in use, as well as extravagant, because it might use more components than would be used otherwise. But, Wilkes argued, it resulted in a system that was easier to design, test, and extend.

Wilkes was right. Microprogramming dramatically simplified the creation of CPUs, allowing instruction sets to become more complex. It also created unexpected flexibility: when IBM released System/360 in 1964, its engineers used microprogramming to allow the new computers to emulate the instructions of the IBM 1401, making it easier for customers to make the transition.

SEE ALSO Whirlwind (1949), IBM 1401 (1959), IBM System/360 (1964)

Maurice Wilkes (front left), designer of the EDSAC, one of the earliest stored-program electronic computers.