The Automatic Computing Engine Blueprint
Mercury Delay Lines, Micro-Coded Logic Tables, and the First Subroutine Stack
Inside a sprawling Victorian residence called Bushy House in Teddington, on the southwestern edge of London, Alan Turing sat down at a desk in October 1945. His goal was to turn his 1936 Universal Turing Machine from paper tape into megahertz electronics. He had been recruited by John Ronald Womersley, the newly appointed superintendent of the Mathematics Division at the National Physical Laboratory (NPL). Turing's task was to design Britain's first general-purpose electronic stored-program computer: the Automatic Computing Engine, or ACE, a name Womersley chose in homage to Charles Babbage's nineteenth-century Analytical Engine.
Four months earlier, in June 1945, John von Neumann had circulated his famous First Draft of a Report on the EDVAC from the University of Pennsylvania. Von Neumann's draft described the logical division of a stored-program computer into an arithmetic unit, control unit, and memory. However, it intentionally omitted all electronic circuit schematics, pulse timings, and physical engineering details. By contrast, when Turing submitted his forty-eight-page report Proposed Electronic Calculator to the NPL Executive Committee at the end of 1945, he delivered a complete hardware and software engineering specification. The blueprint included vacuum-tube cathode followers, clock pulse voltages, instruction encodings, and an itemized cost estimate of 11,200 pounds.
Because vacuum tubes in 1945 were expensive and prone to burning out their filaments, Turing designed a lean, high-speed serial architecture clocked at one megahertz. That clock ticked once every microsecond, faster than any American machine then on the drawing board. For main working memory, he adopted acoustic mercury delay lines originally developed for wartime radar clutter cancellation. Each long delay line consisted of a five-foot steel pipe filled with liquid mercury and capped at both ends by quartz piezoelectric crystals.
When an electrical pulse struck the transmitting quartz crystal, it launched an ultrasonic pressure wave that traveled down the mercury column at 1,450 meters per second. Arriving at the far crystal 1.024 milliseconds later, the acoustic pulse was converted back into an electrical signal, reshaped by an amplifier, and fed back into the input crystal. Thus each five-foot tube held a revolving loop of 1,024 bits—thirty-two words of thirty-two bits each. He complemented those long pipes with tiny five-centimeter mercury short tanks holding a single thirty-two-bit word for immediate arithmetic access.
While von Neumann's EDVAC funneled every instruction through a single central accumulator, Turing made the ACE a minimalist transfer machine that anticipated reduced-instruction-set and transport-triggered architectures. Every instruction simply moved a word from a numbered source tank to a numbered destination tank along a highway bus. Hardware logic gates attached to specific destinations performed addition, bitwise logical operations, or shifts automatically during the transfer.
Moreover, to avoid waiting half a millisecond on average for a needed word to circulate to the end of a five-foot mercury pipe, Turing rejected sequential instruction counters in favor of optimum coding. Each instruction explicitly stored the timing address of the next instruction. Programmers placed instructions around the mercury loop at the exact positions where they emerged from the crystal the microsecond the previous operation finished.
To manage complex programs without losing track of return addresses, Turing's 1945 ACE report also invented the first hardware-supported subroutine call stack. He wrote out explicit instruction tables for two paired operations named BURY and UNBURY. Calling a subsidiary routine executed BURY, pushing the return instruction reference onto a last-in, first-out stack in memory and incrementing a stack pointer in Temporary Storage 31. Finishing the subroutine executed UNBURY, popping the saved address to return seamlessly to the caller. Frustrated by administrative delays at the NPL, Turing left for Manchester in 1948, while his assistant James Hardy Wilkinson and engineer Edward Newman completed the scaled-down Pilot ACE. When the Pilot ACE finally ran its first program at Teddington in May 1950 using Turing's optimum delay-line coding, its one-megahertz mercury tubes outperformed rival stored-program machines built with ten times as many vacuum valves.