Difference between revisions of "Automatic Computing Engine"

From Computer History Wiki
Jump to: navigation, search
(The name was a conscious tribute to the Analytical Engine)
m (External links: +The other Turing machine)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''Automatic Computing Engine''' (usually given as the acronym, '''ACE'''; the name was a conscious tribute to the [[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 line]]s, 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 coding]], to give a simple example). For its day, as a result, it was thus a very fast machine indeed, although difficult to program.
+
The '''Automatic Computing Engine''' (usually given as the acronym, '''ACE'''; the name was a conscious tribute to [[Charles Babbage|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 line]]s, 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, eventually moved to Manchester University.
+
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]], starting in early 1949, and initially operational by May, 1950; it was both successful, and much copied. After a 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.
+
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==
 
==Technical details==
Line 14: Line 14:
 
! Field !! Width !! Description
 
! Field !! Width !! Description
 
|-
 
|-
| Wait || 5 || Minor cycle in which to start instruction
+
| Wait || 5 || Minor cycle in which to start instruction execution
 
|-
 
|-
| Source A || 6
+
| Source A || 6 || Line holding source [[operand]] A
 
|-
 
|-
| Source B || 6
+
| Source B || 6 || Line holding source operand B
 
|-
 
|-
 
| Function || 6 || 8 groups of 8
 
| Function || 6 || 8 groups of 8
 
|-
 
|-
| Destination || 6
+
| Destination || 6 || Line where result is to be stored
 
|-
 
|-
 
| Stop || 1 || Actuated by console key
 
| Stop || 1 || Actuated by console key
Line 28: Line 28:
 
| Next || 5 || Next instruction line
 
| Next || 5 || Next instruction line
 
|-
 
|-
| J || 6 || Counting area
+
| Auxiliary Timing Number (J) || 6 || Counting area
 
|-
 
|-
 
| Time || 5 || Next instruction minor cycle
 
| Time || 5 || Next instruction minor cycle
Line 37: Line 37:
 
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'' [[address]]es; two sources, a destination, and the address of the next instruction. (The ACE had no [[Program Counter]].) Many of the destinations had side-effects.
 
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'' [[address]]es; two sources, a destination, and the address of the next instruction. (The ACE had no [[Program Counter]].) Many of the destinations had side-effects.
  
When eventually built, the ACE was given 4 [[drum]]s (each holding 256 [[track]]s of 32 words - the same size as the large delay lines), and 6 [[magnetic tape drive]]s. [[Input/output]] used [[punched card]]s and [[paper tape]].
+
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 [[drum]]s (each holding 256 [[track]]s of 32 words - the same size as the large delay lines, for ease of bringing their contents in), and 6 [[magnetic tape drive]]s. [[Input/output]] used [[punched card]]s and [[paper tape]].
 
   
 
   
 
{{semi-stub}}
 
{{semi-stub}}
Line 52: Line 54:
 
* [http://cs.furman.edu/~tallen/csc475/materials/Turing_Report_on_ACE.pdf Proposal for Development in the Mathematics Division of an Automatic Computing Engine] - scan of Turing's original proposal
 
* [http://cs.furman.edu/~tallen/csc475/materials/Turing_Report_on_ACE.pdf Proposal for Development in the Mathematics Division of an Automatic Computing Engine] - scan of Turing's original proposal
 
* [https://www.alanturing.net/turing_archive/archive/index/aceindex.html Turing's Automatic Computing Engine] - NPL internal correspondence about the ACE
 
* [https://www.alanturing.net/turing_archive/archive/index/aceindex.html Turing's Automatic Computing Engine] - NPL internal correspondence about the ACE
 +
** [https://www.alanturing.net/turing_archive/archive/l/l09/l09.php Some Features of the ACE Computer] - a fairly complete, detailed description, from May, 1957
 
* [https://cds.cern.ch/record/263304/files/p230.pdf Turing and ACE: Lessons from a 1946 Computer Design] - a later paper by Carpenter about the ACE
 
* [https://cds.cern.ch/record/263304/files/p230.pdf Turing and ACE: Lessons from a 1946 Computer Design] - a later paper by Carpenter about the ACE
 +
* [https://academic.oup.com/comjnl/article/20/3/269/751954 The other Turing machine] - lengthy analysis of the ACE, as designed, by Carpenter and Doran
 +
* [https://fineartamerica.com/featured/ace-computer-1958-national-physical-laboratory-c-crown-copyright.html Ace Computer, 1958] - high resolution image
 
* [http://www.cs.man.ac.uk/CCS/res/res02.htm#f Evolution of the ACE]
 
* [http://www.cs.man.ac.uk/CCS/res/res02.htm#f Evolution of the ACE]
 
* [http://www.cs.man.ac.uk/CCS/res/res02.htm#g ACE hardware]
 
* [http://www.cs.man.ac.uk/CCS/res/res02.htm#g ACE hardware]

Revision as of 19:29, 17 March 2024

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

External links