Skip to content

Maurice Wilkes and EDSAC

Abstract

Maurice Wilkes read von Neumann’s EDVAC report in one night in May 1946 and decided the stored-program computer was “the real thing.” Three years later his EDSAC, built at Cambridge from mercury delay lines and about 3,000 vacuum tubes, ran its first program on 6 May 1949 and became the first stored-program computer to give a regular computing service to users. Around it, Wilkes’s laboratory produced the closed subroutine, the subroutine library, the first programming textbook, the first university qualification in computing and one of the first PhDs in the field. Wilkes then proposed microprogramming (1951), built one of Britain’s first time-sharing systems on the Titan computer, wrote the first paper on cache memory (1965) and started the Cambridge Ring network. A catering company, J. Lyons & Co., part-funded EDSAC and copied it as LEO, the first computer to run routine office work. Wilkes received the second Turing Award in 1967, was knighted in 2000 and worked until shortly before his death in 2010 at 97.

EDSAC
EDSAC I, nearly complete. Image: Computer Laboratory, University of Cambridge, CC BY 2.0, via Wikimedia Commons.

A Physicist from the Midlands

Maurice Vincent Wilkes was born on 26 June 1913 in Dudley, in the English Midlands. As a teenager he built crystal radio sets from instructions in Wireless World, and the interest in radio stayed with him. He went to King Edward VI Grammar School in Stourbridge and in 1931 to St John’s College, Cambridge, to read mathematics. After his degree he moved to the Cavendish Laboratory as a research student, working on the propagation of very long radio waves in the ionosphere, and took his PhD in 1936.

In May 1937 the university founded a Mathematical Laboratory to provide calculating help to its scientists, with the chemist John Lennard-Jones as director and Wilkes as University Demonstrator in charge of the equipment. The laboratory had barely started when the war took Wilkes away. He spent it on radar at the Telecommunications Research Establishment and on operational research, where he learned electronics at the bench and met many of the physicists and engineers who would staff British computing after 1945. He came back to Cambridge to run the Mathematical Laboratory, with the duty, as the university put it, “to advance knowledge of the science of mathematical computation.”

One Night with the EDVAC Report

In May 1946 Leslie Comrie, the New Zealand-born pioneer of mechanical table-making, visited Cambridge with a typescript of John von Neumann’s First Draft of a Report on the EDVAC, the document that set out the stored-program design (see The Von Neumann Architecture). There was no photocopier; Comrie needed it back the next morning. Wilkes stayed up through the night reading it and later wrote that he recognized it at once as “the real thing.”

That summer he was invited to the Moore School Lectures in Philadelphia, the course on electronic computing given by the builders of ENIAC. Postwar shipping was so scarce that he arrived in time only for the final two weeks, in August. He saw ENIAC, met John Mauchly and Presper Eckert, and sailed home on the Queen Mary, sketching on the voyage the machine he meant to build. He called it the Electronic Delay Storage Automatic Calculator, EDSAC, the “delay storage” naming the memory and the rest echoing EDVAC.

Building EDSAC

EDSAC Mercury Delay Line Tank
A mercury delay-line memory tank of the kind EDSAC used, part of the replica at The National Museum of Computing. Image: BadgersCP, CC0, via Wikimedia Commons.

Construction began in October 1946. Wilkes’s guiding principle was that the machine should work, soon, and keep working; scientific results mattered more to him than speed records. He chose conservative circuits, ran the valves below their rated limits, and used a 500 kHz pulse rate that the electronics of the day could handle reliably.

The memory was the hard part. EDSAC stored its data as trains of ultrasonic pulses travelling through steel tubes about five feet long filled with mercury, converted back into electrical pulses at the far end and fed back in. Each tube held 32 words of 17 bits; the first main store of 16 tubes held 512 words, and the full battery of 32 tubes reached 1,024. Because data passed the reading point only once per circulation, the processor sometimes had to wait for the word it wanted; an average instruction took about 1.5 milliseconds and a multiplication several times as long, while division, done in software, took about 200. The finished machine used about 3,000 valves, drew around 12 kilowatts and filled a room of about 5 by 4 metres. Input came from five-hole punched paper tape, output went to a teleprinter.

Student volunteers helped with the wiring, among them David Wheeler, a 20-year-old mathematics student from Birmingham who would become the laboratory’s most inventive programmer.

Turing’s Objection

Wilkes’s approach was not the only British one. At the National Physical Laboratory, Alan Turing had designed the ACE, a faster machine whose programs had to be placed in the delay lines so that each instruction emerged just as it was needed. When Turing read Wilkes’s proposed instruction code in late 1946, he dismissed it in a private note as “very contrary to the line of development here, and much more in the American tradition of solving one’s difficulties by means of much equipment rather than by thought.” The two had graduated in the same Cambridge mathematics year and stayed on cordial terms, but they never agreed about how to build a computer. EDSAC was running a year before the NPL’s Pilot ACE.

The Lyons Connection

In 1947 J. Lyons & Co., the London caterer whose teashops and bakeries handled huge volumes of clerical work, sent two managers, Oliver Standingford and Raymond Thompson, to the United States to look at new office methods. Herman Goldstine told them that one of the most advanced computer projects was in Cambridge, England. They visited Wilkes on 24 July 1947, found the first chassis already under test, and persuaded their board to support the project. Lyons gave the laboratory a grant (£3,000 in the Computer Laboratory’s own history, £2,500 in other accounts) without conditions, and lent it a technician, Ernest Lenaerts.

6 May 1949

On 6 May 1949 EDSAC read a program from tape and printed a table of the squares of the numbers 0 to 99. A second program that day printed a list of prime numbers. The Cambridge Computer Laboratory calls it “the first complete and fully operational regular electronic digital stored program computer.” Manchester’s experimental “Baby” had run a stored program in June 1948 (see The Manchester Baby), but the Baby was a test bed for a memory tube; EDSAC was designed from the start as a service machine for the university’s scientists.

The following month Wilkes hosted a conference on high-speed automatic calculating machines with about a hundred participants, and EDSAC worked during their visit. By early 1950 it was running a regular service, with users booking time and submitting their programs on tape.

The memory was doubled to 1,024 words from 1952, and the machine ran until 11 July 1958, when EDSAC 2 replaced it.

Inventing How to Program

Nobody in 1949 knew how a stored-program computer should be programmed, and EDSAC’s users worked it out on the job. The first problem was getting a program into the machine. Wheeler wrote the Initial Orders, a short loader wired permanently onto a bank of telephone uniselector switches. The version in use in 1949 occupied 31 words (a later one 41) and read programs written with mnemonic letters and decimal addresses, converted them to binary and adjusted addresses so that a piece of code could be loaded anywhere in store. It was, in effect, an assembler and relocating loader, and it is often called the first assembler.

The second problem was reuse. Wheeler, Wilkes and Stanley Gill developed the closed subroutine: a piece of code that could be called from anywhere and return to the caller. Since EDSAC had no call instruction, Wheeler’s technique was for the calling code to leave its own address in the accumulator; the subroutine began by planting a return jump built from that address at its own end. The trick became known as the Wheeler jump. Subroutines for common tasks (square roots, trigonometric functions, printing numbers, Runge–Kutta integration, which Gill wrote in 1950) were collected on punched tape in a library cabinet, with written specifications describing what each one did. Every user of a modern software library follows this pattern.

In 1951 Wilkes, Wheeler and Gill published The Preparation of Programs for an Electronic Digital Computer, the first textbook on programming, built around the EDSAC library. The Turing Award committee later credited it as the book through which “program libraries were effectively introduced.” Wheeler took his PhD the same year with a thesis titled Automatic Computing with EDSAC, widely counted as the first doctorate in computer science.

Wilkes left one of the field’s most quoted recollections of this period. In 1949, walking between the EDSAC room and the tape-punching equipment, he realized “with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.”

What EDSAC Computed

EDSAC’s users were Cambridge scientists, and the machine’s record is the record of their work. John Kendrew used it to compute the structure of myoglobin from X-ray diffraction data, part of the work that earned Kendrew and Max Perutz the 1962 Nobel Prize in Chemistry. Andrew Huxley had hoped to solve the equations of his 1952 nerve-conduction model on it, but EDSAC was out of service for months of modification, so he computed the action potential by hand on a hand-cranked Brunsviga calculator; he used the machine for later studies (Nobel Prize in Physiology or Medicine, 1963), and Martin Ryle’s radio-astronomy group used it to process observations (Physics, 1974). The statistician and geneticist Ronald Fisher ran gene-frequency calculations on it.

The machine also did number theory. In 1951 J. C. P. Miller and Wheeler used it to find a prime of 79 digits. In 1952 Alexander “Sandy” Douglas, writing a PhD thesis on human-computer interaction, programmed OXO, a game of noughts and crosses against the machine. The player chose squares by dialling numbers on a telephone dial, and the board appeared on one of EDSAC’s 35-by-16-dot cathode-ray tubes that normally displayed the contents of memory. It is one of the earliest games to show its play on a screen (see the first video game).

In 1953 the laboratory started the Diploma in Numerical Analysis and Automatic Computing, which it describes as “the first formal course leading to a university qualification anywhere in the world” in computing.

LEO: A Teashop Computer

What Lyons had seen in Cambridge it built in London. A team led by John Pinkerton constructed LEO I (“Lyons Electronic Office”) at the company’s Cadby Hall premises in Hammersmith, expanding on EDSAC’s design. On 5 September 1951 LEO ran its first business job, Bakery Valuations, which costed the ingredients in Lyons’s bread and cakes; from 29 to 30 November 1951 it took over the job completely. It was the first time a computer had been used for routine office work anywhere. Lyons extended it to payroll and stock control, from 1956 ran payroll for Ford UK on it as a bureau service, and in 1954 set up a subsidiary, LEO Computers Ltd, to sell the machines to other companies; it merged into English Electric in 1963 and its line ended up, through further mergers, in ICL (see The UK Computing Industry).

Microprogramming

EDSAC 2 1960
EDSAC 2 in May 1960, with users queuing at the input desk. It was the first full-scale microprogrammed computer. Image: University of Cambridge Computer Laboratory Archive, CC BY 2.0 UK, via Wikimedia Commons.

EDSAC’s control unit, the part that decoded each instruction and sent the right signals to the arithmetic unit and memory, was a tangle of special-purpose logic that was hard to design and harder to debug. In July 1951, at the inaugural conference for the Manchester University computer, Wilkes presented a paper titled “The Best Way to Design an Automatic Calculating Machine.” His proposal was to make the control unit itself a small stored-program machine: each machine instruction would be carried out by a sequence of micro-instructions held in a fast read-only store, a diode matrix, and changing the instruction set would mean changing the contents of that store rather than redesigning wiring. He called the technique microprogramming.

Cambridge built the idea into EDSAC 2, begun in 1951 with a grant from the Nuffield Foundation and in service from 1958. It was the first full-scale microprogrammed computer, and it was also built from interchangeable plug-in units, each handling one bit of the arithmetic, an early form of the bit-slice construction later used in microprocessor-era designs. EDSAC 2 ran until 1965.

The idea’s commercial moment came with IBM’s System/360, announced in 1964. IBM wanted a single instruction set across machines of very different size and price. Microprogramming let the small models carry out the full instruction set slowly in microcode while the large ones did it in fast hardware, and it let them emulate older IBM machines so customers could keep their software. The separation between an instruction set (the architecture) and the hardware that carries it out (the implementation) became the basis of the computer industry. Microcode dominated processor design until the RISC movement of the 1980s argued that simple instructions executed directly in hardware were faster, and it survives inside every x86 processor to translate complex instructions.

Titan, Time-Sharing and the Cache

Titan Computer Cambridge
Titan, the Cambridge computer built with Ferranti, which ran one of Britain’s first time-sharing services. Image: University of Cambridge, CC BY 2.0, via Wikimedia Commons.

For its third machine Cambridge did not build alone. Titan, developed jointly with Ferranti under David Wheeler’s lead as the prototype of the Atlas 2, came into operation in 1964 and gave a full service from 1966. A team of Cambridge and Ferranti programmers (David Barron, David Hartley, Roger Needham, Barry Landy and others) wrote the Titan Supervisor, a time-sharing operating system that let many users work at terminals simultaneously (on the American side see Fernando Corbató and Time-Sharing). Wilkes summarized the field in his book Time-Sharing Computer Systems (1968), which went through three editions. He became Professor of Computer Technology in 1965.

The same year he published a two-page note in the IEEE Transactions on Electronic Computers titled “Slave Memories and Dynamic Storage Allocation.” It described a small, fast memory holding copies of recently used words from the large, slow main store, with address tags to identify which main-memory lines each slot held and bits to mark whether a slot was valid or modified. The fast memory was the “slave”; the idea is now called a cache. IBM’s System/360 Model 85, announced in January 1968 and shipped from December 1969, was the first commercial computer with a main-memory cache, and every processor since has relied on a hierarchy of them.

Networks and Capabilities

From the late 1960s the laboratory worked on two projects that reached well beyond Cambridge. The CAP computer, a project Wilkes started in 1970 and ran with Roger Needham until 1977, with Wheeler responsible for the implementation, was a capability machine: every reference to memory or to a service went through an unforgeable token that stated exactly what its holder was allowed to do. It was one of the few capability designs ever built in hardware and run as a working system, and its ideas resurfaced decades later in the same laboratory’s CHERI research processors.

In 1974, after a visit to Switzerland where he saw an experimental ring network, Wilkes saw that cheap digital logic would make local networks practical. The laboratory, with Andy Hopper, Wheeler and Needham, built the Cambridge Ring, a local-area network running at 10 megabits per second in which a fixed number of small packets circulated past every station; a sender filled an empty packet, the receiver marked it, and it came back to the sender to be emptied. A design study appeared in 1975, and by 1980 Ferranti, Inmos, Logica and others sold components for it. In 1980 Wilkes and Needham described the Cambridge Model Distributed System, in which a ring connected processors, file servers and printers into one system, an early version of the client-server arrangement that Ethernet-based offices adopted in the 1980s.

The Long Career

Maurice Wilkes 1980
Maurice Wilkes at his retirement in the Titan Room, July 1980. Image: University of Cambridge Computer Laboratory Archive, CC BY 2.0 UK, via Wikimedia Commons.

Wilkes retired from the university in 1980 at 67, and moved to industry rather than into retirement. He joined Digital Equipment Corporation in Maynard, Massachusetts, as a senior consulting engineer, and taught as an adjunct professor at MIT from 1981 to 1985. In 1986 he returned to Cambridge as an adviser to the Olivetti Research Laboratory, staying with it after AT&T acquired the lab in 1999. When AT&T closed the lab in 2002 he went back to the Computer Laboratory as emeritus professor.

The honours came steadily. He was elected a Fellow of the Royal Society in 1956 and became the first president of the British Computer Society in 1957. In 1967 he received the second Turing Award, after Alan Perlis, cited “as the builder and designer of the EDSAC, the first computer with an internally stored program.” The Eckert–Mauchly Award followed in 1980, the Faraday Medal in 1981, the Kyoto Prize in 1992 and a knighthood in the New Year Honours of 2000. His Memoirs of a Computer Pioneer appeared in 1985. He also wrote about Charles Babbage, whose failure to finish his engines he studied as an engineer studies a failed project.

He was married to Nina Twyman, a classicist, who died in 2008; they had a son and two daughters. Wilkes died in Cambridge on 29 November 2010, aged 97.

The Replica

EDSAC Replica TNMOC
The EDSAC replica under construction at The National Museum of Computing, Bletchley Park. Image: BadgersCP, CC0, via Wikimedia Commons.

EDSAC was dismantled in 1958 and most of it scrapped. In 2010 David Hartley, then chairman of the Computer Conservation Society, suggested rebuilding it, and the Computer Conservation Society took the project on at The National Museum of Computing at Bletchley Park, with initial funding from Hermann Hauser’s Hauser-Raspe Foundation and support from Google. Volunteers, many of them retired engineers with valve experience, had to reconstruct the design from photographs, notes and surviving parts, because, as the museum puts it, “no definitive record exists of the final ‘as built’ design.” For safety and cost they replaced the mercury tanks with nickel-wire delay lines. Chris Burton, who had led the rebuild of the Manchester Baby, was the first technical lead; Andrew Herbert later directed the project. The museum describes the replica as close to physically complete and in an intense commissioning phase, with the aim of running programs as EDSAC did when it went into regular service.

Dead End

The technology EDSAC was built on vanished almost immediately. Mercury delay-line memory was serial, so the processor had to wait for data to circulate past the read point; it was also bulky, sensitive to temperature and filled with a toxic metal. Programmers learned to place instructions and data so that they would emerge from the tank at the right moment, a craft that vanished with the medium. Williams tubes and magnetic drums competed with delay lines for a few years, and then magnetic core memory displaced all of them in the mid-1950s with true random access. EDSAC 2, in service from 1958, already used ferrite cores for its 1,024-word store.

What survived was the organization of the work rather than any hardware: the stored program, the loader, the subroutine library, the textbook, the microprogrammed control unit, the cache. EDSAC itself lasted nine years.

📚 Sources