Atlas Computer (Manchester)

From Wikipedia, the free encyclopedia

The Atlas Computer of the University of Manchester, England, became operational in 1962, as a joint development between the University, Ferranti and Plessey. It was arguably one of the world's first supercomputers, and the fastest computer in the world until the release of the CDC 6600. It was said at the time that whenever it went offline half of the UK computer capacity was lost. It was a second-generation computer, using germanium transistors.

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, which had a different memory organisation, and ran a time-sharing operating system developed by Cambridge Computer Laboratory.

The University of Manchester's Atlas system was eventually decommissioned in 1971. The last Atlas was in service until 1974. Parts of the Chilton Atlas are preserved by the National Museums of Scotland in Edinburgh.

Contents

[edit] Technical description

[edit] Hardware

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.
  • 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
  • 96K words of drum store (eqv. to 576 KB), split across four drums but integrated with the core store using virtual memory (at that time referred to as 'one-level store') and paging techniques
  • A large number (more than 100) of 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, the exponent of the floating-point accumulator and three control (program counter) registers: supervisor control, extracode control and user control.
  • Capability for the addition of (for the time) sophisticated new peripherals such as magnetic tape
  • Peripheral control through V-store addresses, interrupts and extracode routines
  • An associative memory (content-addressable memory) to determine whether the desired virtual memory location was in core store
  • Instruction pipelining

It did not use a synchronous clocking mechanism so performance measurements were not easy but as an example:

[edit] Extracode

One interesting feature of the Atlas was extracode, a system that allowed new instructions to be added in software (firmware in modern terminology). There were some 250 extracodes.

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 an address in the fixed store (ROM) where that address was determined by the other nine bits. Extracode mode had its own program address counter.

Many of the extracodes were what we would probably call microcodes nowadays; they were simple arithmetic procedures which would have been too inefficient to implement in hardware, for example sine, logarithm, square root. However, about half of the codes were designated as Supervisor functions which invoked operating system procedures. Typical examples would be "Print the character specified on the stream specified" or "Read a block of 512 words from logical tape N".

Extracodes were the only means that a program could communicate with the Supervisor program.

The Atlas extracode concept is also found in the IBM System/360 supervisor call (SVC), and modern Intel-type CPUs have a mechanism which is similar in principle but termed 'interrupts'. This is a bad and unhelpful name, as it leads to confusion with hardware interrupts.

[edit] Software

A unique supervisory program known as the Atlas Supervisor managed the computer's processing time (as such it qualifies in modern terminology as an advanced job scheduler, or a simple operating system).

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 that language. The Atlas did however support Algol 60, as well as Fortran and COBOL. Being a university machine it was patronised by a large number of the student population who even had access to a protected machine code development environment.

[edit] References

  • 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
  • The Manchester University Atlas Operating System, Part I: Internal Organization, T. Kilburn, D.J. Howarth, R.B. Payne, F.H. Sumner, Comp. J. October 1961
  • The Manchester University Atlas Operating System, Part II: Users' Description, D.J. Howarth, R.B. Payne, F.H. Sumner, Comp. J. October 1961
  • 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
  • History of Manchester Computers, S.H. Lavington, NCC Publications, 1975, ISBN 0-85012-155-8
  • 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
  • The Atlas Autocode Reference Manual