Being in charge of the Mathematical Laboratory gave Wilkes control of a research budget and with it he decided to build EDSAC- Electronic Delay Storage Automatic Calculator. This was an amazing state of affairs because he didn't need the approval of a committee or a grant awarding authority - he just got on with the job. Most of the components were bought through the normal trade channels but army surplus supplied all the valves needed for the machine free of charge! The machine operated at .5MHz and the single mercury delay line which could only hold 56 bits was developed into an array of 16 identical delay lines making EDSAC a just over 8KByte machine.
Maurice Wilkes with EDSAC 1
EDSAC performed its first calculation on May 6, 1949 but it wasn't the first stored program machine. That honor should probably go to the Manchester Mark I although this was a very much simpler machine than the EDSAC. What is important about EDSAC is that it was the first machine to be used in a modern way. In short it had users.
The Cambridge Mathematical Laboratory became the first computer center and prospective users put their proposals to a committee to gain allocations of computer time. The machine was also the first to develop the method of using subroutines as an organising principle. David Wheeler, an undergraduate and then research student, probably deserves to be called the first hacker as he invented so many programming tricks to coax more out of the hardware. He wrote the initial code that loaded other programs and solved the problems of relocating subroutines in memory.
You can tell that the pace of software development was moving very fast and becoming very sophisticated. Most of the applications were concerned with solving equations and the whole emphasis of the software was numerical. Still the idea of solving problems by using pre-written subroutines was the norm in the EDSAC user community and this was not the case for other machines.
EDSAC 1 maintainance. Maurice Wilkes is the kneeling figure in the middle.
After EDSAC and EDVAC it must have seemed as though everyone was building computers. There were so many different designs that it must have been easy to come to the conclusion that there wasn't a single theory of hardware design. The return sea voyage from a visit to the USA gave Wilkes time to think about the problems of hardware design and he came up with the idea of using the stored computer principle a second time in the design of the the computer. Instead of having to wire complex logic circuits to control the different units of the machine to perform complex instructions he saw that a simpler core could be constructed that was a computer striped down computer. This very basic computer could then be programmed in its simple language - microcode - to perform the more complex instructions.
Wilkes also realised that modularity was a key simplifying principle in hardware as well as software. He proposed designing each functional block of the machine using identical units. The machine would be built so that each bit in a word was dealt with by a complete sub-machine identical to the sub-machine designed for the other bits. Today this approach would be called `bit slicing'.
This microcode design was used to build EDSAC 2 but the problem was again finding a way of building a large random access memory. Core memory had just started to be used in the US and Wilkes had seen a working model. Mullard offered Wilkes a supply of raw untested ferrite rings which could be used to construct a core memory. Wilkes designed a machine to test them and put together a 1KByte core memory. The information was shared with Mullard and they put the tested cores on sale.
EDSAC 2 was the first large machine to be built using the microprogrammed architecture that has been used in nearly all computers, including microprocessors, ever since. Everything in the machine was controlled by a single microprogram - the paper tape input/output, floating point arithmetic and even the read/write cycle of the core memory.
It was about the time of EDSAC 2 that the UK started to fall behind the USA in computer development. When a memory upgrade for EDSAC 2 was needed it proved easier to buy a 16KByte core memory rather than design one. Notice that EDSAC 2 was a valve based machine just like EDSAC 1. Indeed Wilkes regretted not taking the architecture further by implementing it in transistors to create an EDSAC 3.
It is always difficult to say who invented what exactly in the early days of computing because the progress was so fast but the Cambridge Mathematical Laboratory, renamed as the Cambridge Computer Laboratory, certainly was first in general scientific computation. EDSAC 1 was used until 1958 and it did real work in this time - the structure of myoglobin, a protein, was determined using it and countless thousands of differential equations were solved. EDSAC 2 played a central role in advanced radio astronoly and continued to do so until it was replaced by a small mini- computer. EDSAC 2 was closed down in 1965 and an era of pioneering hardware came to an end.
For more information about the early days of the University of Cambridge Computer Laboratory see EDSAC 99 compiled by Dr David Hartley.
A ambitious 4-year project by the UK Computer Conservation Society to build a replica at TNMOC (The National Museum of Computing) started in 2011 and is taking place in full view of visitors. The rationale for this recreation and other Computer Conservation projects, is explained by EDSAC project manager, Andrew Herbert in this video:
In another video produced by Google to celebrate the 64th anniversary of EDSAC's intial run, some of the people who worked with the original EDSAC record their memories:
Born in 1791, Charles Babbage was the man who invented calculating machines that, although they were never realised in his lifetime, are rightly seen as the forerunners of modern programmable co [ ... ]
If you think of Apple, you probably think of the iPhone or iPad and perhaps even the MacBook Air, but the name Mac was once much more important to Apple. The Mac was a groundbreaking computer that int [ ... ]