Automatic Computing Engine

From Computer History Wiki
Jump to: navigation, search

The Automatic Computing Engine (usually given as the acronym, ACE; the name was a conscious tribute to Babbage's Analytical Engine) was a very early computer (the first one designed in the UK); it was designed by Alan Turing, personally. Its main memory was mercury delay lines, and the whole architecture of the machine was adapted to their characteristics, to a degree which today is hard to imagine without seeing the details (for instance, in the use of using optimum programming, to give a simple example). For its day, as a result, it was thus a very fast machine indeed, although difficult to program.

Turing did the design in late 1945, after he moved to the National Physical Laboratory - perhaps inspired by news of John von Neumann's First Draft of a Report on the EDVAC. He produced a lengthy detailed design document, Proposal for Development in the Mathematics Division of an Automatic Computing Engine (ACE), which came out in March, 1946; the NPL approved his proposal, but moved very slowly on doing anything. Turing, apparently unhappy at the delays in building it, left the NPL in September, 1947 for a short sabbatical at Cambridge, and then moved to Manchester University.

The NPL then produced a scaled-down prototype, the Pilot ACE, on which construction started in early 1949, and initially operational by May, 1950; it was both successful, and much copied. After another considerable delay, they then moved on to produce the full-scale ACE, starting in 1953; it was initially operational in 1958. Already obsolescent, but still quite powerful (oh, had it only been built when he first proposed it!), it soldiered on, and was shut down in February, 1967.

Technical details

In addition to 24 long delay lines, each of which had a capacity of 32 48-bit words, it also had 5 4-word lines (the reduced size gave lower access times), 4 2-word lines, and 7 1-word lines; the shorter ones had the role of registers in most computers. The time required for one word (the whole machine was serial) was termed a 'minor cycle'; a complete cycle of a long line was a 'major cycle'.

The ACE's instructions were also 48 bits. They contained 10 fields:

Field Width Description
Wait 5 Minor cycle in which to start instruction execution
Source A 6 Line holding source operand A
Source B 6 Line holding source operand B
Function 6 8 groups of 8
Destination 6 Line where result is to be stored
Stop 1 Actuated by console key
Next 5 Next instruction line
Auxiliary Timing Number (J) 6 Counting area
Time 5 Next instruction minor cycle
Characteristic 2 Number of minor cycles for this instruction

One bit was unused. Apparently, for sources in long lines, the minor cycle used was that selected by the 'Wait' field. Instructions contained no less than 4 addresses; two sources, a destination, and the address of the next instruction. (The ACE had no Program Counter.) Many of the destinations had side-effects.

The ACE had separate multiplier and divider hardware units. The divider could perform normalization, for use in floating point calculations.

When eventually built, the ACE was given 4 drums (each holding 256 tracks of 32 words - the same size as the large delay lines, for ease of bringing their contents in), and 6 magnetic tape drives. Input/output used punched cards and paper tape.

Further reading

  • Alan Turing, B. E. Carpenter (editor), R. W. Doran (editor), A. M. Turing's ACE report of 1946 and other papers, MIT Press/Tomash, Cambridge/Los Angeles, 1986
  • ACE Programming Manual, 1960 (not online, or re-printed, alas)
  • David M. Yates, Turing's Legacy: A History of Computing at the National Physical Laboratory 1945-1995, Science Museum, London, 1997 - the ACE is covered in Section 3.2
  • B. Jack Copeland (editor), Alan Turing's Automatic Computing Engine: The Master Codebreaker's Struggle to Build the Modern Computer, Oxford University, Oxford, 2005 - essays from a number of people on various aspects of the Pilot ACE and ACE
  • Harry D. Huskey, From ACE to the G-15, Annals of the History of Computing, Vol. 6, No. 4, Oct0ber, 1984, pp. 350-371

External links