In 1946 F C (Freddie) Williams and Tom Kilburn started researching a novel computer memory system based on electrostatic charge storage. By the autumn of 1947 they had successfully demonstrated their random-access memory system – later called Williams-Kilburn Tubes. But was their system robust enough for sustained use in a high-speed computer? The only way to prove this was to build a computer using Williams-Kilburn Tubes and to run programs on it.
The proof was the Baby, a small-scale experimental computer that first ran a program in the Department of Electrical Engineering at Manchester University on 21st June 1948.
Its historical importance was twofold: it contained the first cost-effective random-access memory system and it demonstrated for the first time a stored program running on a general-purpose computer.
The Baby computer was of immediate interest to the mathematicians at Manchester University. Williams’ engineering team added to the Baby’s facilities so that, by April 1949, the mathematicians could use the enlarged computer, now known as the Manchester Mark I, for more ambitious mathematical investigations. Amongst its new facilities, the Manchester Mark I introduced modifier, or index, registers – a feature seen on practically all modern computers.
Under a contract from the Ministry of Supply (forerunner of the MOD) the Manchester company Ferranti Ltd. produced a re-engineered production version of the university’s computer called the Ferranti Mark I, which was sold on the open market. The first Ferranti Mark I was delivered to the University of Manchester in February 1951. One more Ferranti Mark I and seven Ferranti Mark I* computers were delivered, three of them being shipped abroad (to Canada, Holland and Italy).
The Atlas project, led by Tom Kilburn, was a joint venture between the University of Manchester and Ferranti Ltd. Atlas incorporated many novel features that together made it the most powerful computer in the world: asynchronous pipelined operation, a high-speed parallel arithmetic unit, extracodes, interleaved main core store, simultaneous operation of many types of input/output device and, most significantly, virtual memory. The whole system ran under the control of the Atlas Supervisor, the first multi-tasking, multi-user operating system. The first production version of Atlas was officially inaugurated at the University of Manchester in December 1962.
The Supervisor and virtual memory enabled Atlas to switch rapidly to a different program whenever the current program was held up, e.g. by an input/output transfer. Several programs could be co-resident in the store but none of them could be allowed to know which physical store locations were available to them rather than to others. This fundamental concept underpins much of modern computer security. Originally called “One-level Storage”, the Atlas virtual memory also provided each user with a very large virtual memory space without the need to know how or where the program would be located in physical memory.
When a program required a new word from memory, if it was in the core store it was accessed immediately. If it wasn’t, the Supervisor determined the location of the required page in the drum store, transferred it from the drum into an empty page in the core store and created a new empty page by transferring an old page back to the drum. To make the whole system run as fast as possible it was necessary to choose the page of the core store least likely to be required again, for which a “learning program” in the Supervisor was invented. Because transfers of code and data between the small fast core store and the large, slower, magnetic drum were effected by the Supervisor, each user had the illusion of operating in a very large, fast memory.
Virtual memory was soon incorporated into the design of a number of major academic and commercial computers. It has become so commonly used that the only computers today without virtual memory are a few supercomputers, embedded processors and some vintage personal computers.
In all, three Atlas 1 and three smaller Atlas 2 computers were delivered by Ferranti. The largest Atlas 1 was able to run 2,500 jobs in a typical week, thanks to the close integration of its high-speed processor and Supervisor.