The Atlas Computer was a joint development between the University of Manchester, Ferranti, and Plessey. It was a second-generation machine, using discrete germanium transistors. It is notable for being the first machine with virtual memory (at that time referred to as 'one-level store'), using paging techniques; an approach which quickly spread, and is now ubiquitous.
The first Atlas, installed at Manchester University and officially commissioned in 1962, was one of the world's first supercomputers, and was considered to be the most powerful computer in the world at that time. It was said that whenever Atlas went offline half of the United Kingdom's computer capacity was lost. Two other Atlas machines were built: one for British Petroleum and the University of London, and one for the Atlas Computer Laboratory at Chilton near Oxford.
A derivative system was built by Ferranti for Cambridge University. Called the Titan, or Atlas 2, it had a different memory organisation and ran a time-sharing operating system developed by Cambridge University Computer Laboratory. Two further Atlas 2s were delivered: one to the CAD Centre in Cambridge (later called CADCentre, then AVEVA), and the other to the Atomic Weapons Research Establishment (AWRE), Aldermaston.
The University of Manchester's Atlas was decommissioned in 1971. The final Atlas, the CADCentre machine, was switched off in late 1976. Parts of the Chilton Atlas are preserved by National Museums Scotland in Edinburgh; the main console itself was rediscovered in July 2014 and is at Rutherford Appleton Laboratory in Chilton, near Oxford.
Development of MUSE—a name derived from microsecond engine—began at Manchester University in 1956. The aim was to build a computer that could operate at processing speeds approaching one microsecond per instruction, about one million instructions per second. The prefix micro- (abbreviation µ) in the SI or International System of Units denotes a factor of 10−6 (one millionth).
At the end of 1958 Ferranti agreed to collaborate with Manchester University on the project, and the computer was shortly afterwards renamed Atlas, with the joint venture under the control of Tom Kilburn. The first Atlas was officially commissioned on 7 December 1962, and was considered at that time to be equivalent to four IBM 7094s and nearly as fast as the IBM 7030 Stretch, then the world's fastest supercomputer.
The machine had many innovative features, but the key operating parameters were as follows (the store size relates to the Manchester installation; the others were larger):
- 48-bit word size. A word could hold one floating-point number, one instruction, two 24-bit addresses or signed integers, or eight 6-bit characters.
- A fast adder that used novel circuitry to minimise carry propagation time.
- 24-bit (2 million words, 16 million characters) address space that embraced supervisor ('sacred') store, V-store, fixed store and the user store
- 16K words of core store (equivalent to 96 KB), featuring interleaving of odd/even addresses
- 8K words of read-only memory (referred to as the fixed store). This contained the supervisor and extracode routines.
- 96K words of drum store (eqv. to 576 KB), split across four drums but integrated with the core store using virtual memory
- 128 high-speed index registers (B-lines) that could be used for address modification in the mostly double-modified instructions. The register address space also included special registers such as the extracode operand address and the exponent of the floating-point accumulator. Three of the 128 registers were program counter registers: 125 was supervisor (interrupt) control, 126 was extracode control, and 127 was user control. Register 0 always held value 0.
- Capability for the addition of (for the time) sophisticated new peripherals such as magnetic tape, including direct memory access (DMA) facilities
- Peripheral control through V-store addresses (memory-mapped I/O), interrupts and extracode routines, by reading and writing special wired-in store addresses.
- An associative memory (content-addressable memory) to determine whether the desired virtual memory location was in core store
- Instruction pipelining
Atlas did not use a synchronous clocking mechanism—it was an asynchronous Processor—so performance measurements were not easy but as an example:
- Fixed-point register add – 1.59 microseconds
- Floating-point add, no modification – 1.61 microseconds
- Floating-point add, double modify – 2.61 microseconds
- Floating-point multiply, double modify – 4.97 microseconds
One feature of the Atlas was "Extracode", a technique that allowed complex instructions to be implemented in software.
The uppermost ten bits of a 48-bit Atlas machine instruction denoted which operation should be performed. If the most significant bit was set to zero, this was an ordinary machine instruction executed directly by the hardware. If the uppermost bit was set to one, this was an Extracode and was implemented as a special kind of subroutine jump to a location in the fixed store (ROM), its address being determined by the other nine bits. About 250 extracodes were implemented, of the 512 possible.
Extracode mode had its own program address counter, and easy access to the instruction operands.
Extracodes were what would be called software interrupt or trap today. They were used to call mathematical procedures which would have been too inefficient to implement in hardware, for example sine, logarithm, and square root. But about half of the codes were designated as Supervisor functions, which invoked operating system procedures. Typical examples would be "Print the specified character on the specified stream" or "Read a block of 512 words from logical tape N". Extracodes were the only means by which a program could communicate with the Supervisor. Other UK machines of the era, such as the Ferranti Orion, had similar mechanisms for calling on the services of their operating systems.
One of the first high-level languages available on Atlas was named Atlas Autocode, which was contemporary to Algol60 and created specifically to address what Tony Brooker perceived to be some defects in Algol60. The Atlas did however support Algol 60, as well as Fortran and COBOL, and ABL (Atlas machine code). Being a university computer it was patronised by a large number of the student population, who had access to a protected machine code development environment.
It also had a programming language called SPG = System Program Generator. At run time an SPG program could compile more program for itself. It could define and use macros. Its variables were in <angle brackets> and it had a text parser, giving SPG program text a resemblance to Backus–Naur form.
From the outset, Atlas was conceived as a supercomputer that would include a comprehensive operating system. The hardware included specific features that facilitated the work of the operating system. For example, the extracode routines and the interrupt routines each had dedicated storage, registers and program counters; a context switch from user mode to extracode mode or executive mode, or from extracode mode to executive mode, was therefore very fast.
Notes and references
- Lavington 1998, p. 41
- Lavington 1998, pp. 44–45
- "COMPUTERS AND CENTERS, OVERSEAS: 2. Ferranti Ltd., Atlas 2 Computer, London Wl, England". Digital Computer Newsletter. 16 (1): 13–15. 1964.
- Lavington 1998, p. 43
- Lavington 1998, p. 44
- The Atlas, University of Manchester, archived from the original on 28 July 2012, retrieved 21 September 2010
- Lavington 1980, pp. 50–52
- Edwards, Dai (Summer 2013), "Designing and Building Atlas", Resurrection: The Bulletin of the Computer Conservation Society, 62: 9–18, ISSN 0958-7403
- Lavington, Simon (1980), Early British Computers, Manchester University Press, ISBN 0-7190-0803-4
- Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society, ISBN 978-1-902505-01-5
- Parallel addition in digital computers: A new fast 'carry' circuit, T. Kilburn, D.B.G. Edwards, D. Aspinall, Proc. IEE Part B September 1959
- The Central Control Unit of the "Atlas" Computer, F. H. Sumner, G. Haley, E. C. Y. Chen, Information Processing 1962, Proc. IFIP Congress '62
- One-Level Storage System, T. Kilburn, D. B. G. Edwards, M. J. Lanigan, F. H. Sumner, IRE Trans. Electronic Computers April 1962 Accessed 2011-10-13
- Kilburn, T. (1 March 1961). "The Manchester University Atlas Operating System Part I: Internal Organization". The Computer Journal. 4 (3): 222–225. doi:10.1093/comjnl/4.3.222. ISSN 0010-4620.
- Howarth, D. J. (1 March 1961). "The Manchester University Atlas Operating System Part II: Users' Description". The Computer Journal. 4 (3): 226–229. doi:10.1093/comjnl/4.3.226. ISSN 0010-4620.
- The Atlas Supervisor, T. Kilburn, R .B. Payne, D .J. Howarth, reprinted from Computers—Key to Total Systems Control, Macmillan 1962
- The Atlas Scheduling System, D. J. Howarth, P. D. Jones, M. T. Wyld, Comp. J. October 1962
- The First Computers: History and Architectures, edited by Raúl Rojas and Ulf Hashagen, 2000, MIT Press, ISBN 0-262-18197-5
- A History of Computing Technology, M. R. Williams, IEEE Computer Society Press, 1997, ISBN 0-8186-7739-2