English Electric DEUCE

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Also known asDigital Electronic Universal Computing Engine
ManufacturerEnglish Electric
Release date1955 (1955)
Discontinued1964 (1964)
Units shipped33
CPUthermionic valve-based
Memorymercury delay lines
384 32-bit words (Mark I and Mark II)
608 32-bit words (Mark IIA)
Storage8192-word magnetic drum
Display2 × CRTs
PredecessorPilot ACE

The DEUCE (Digital Electronic Universal Computing Engine) was one of the earliest British commercially available computers, built by English Electric from 1955.[1] It was the production version of the Pilot ACE, itself a cut down version of Alan Turing's ACE.

Hardware description[edit]

The DEUCE had 1450 thermionic valves, and used mercury delay lines for its main memory; each of the 12 delay lines could store 32 instructions or data words of 32 bits. It adopted the then high 1 megahertz clock rate of the Pilot ACE. Input–output was via Hollerith 80-column punch-card equipment. The reader read cards at the rate of 200 per minute, while the card punch rate was 100 cards per minute. The DEUCE also had an 8192-word magnetic drum for main storage. To access any of the 256 tracks of 32 words, the drum had one group of 16 read and one group of 16 write heads, each group on independent moveable arms, each capable of moving to one of 16 positions. Access time was 15 milliseconds if the heads were already in position; an additional 35 milliseconds was required if the heads had to be moved. There was no rotational delay incurred when reading from and writing to drum. Data was transferred between drum and one of the 32-word delay lines.

The DEUCE could be fitted with paper tape equipment; the reader speed was 850 characters per second, while the paper tape output speed was 25 characters per second. (The DEUCE at the University of New South Wales {UTECOM} had a Siemens teleprinter attached in 1964, giving 10 characters per second input-output). Decca magnetic tape units could also be attached. The automatic multiplier and divider operated asynchronously (that is, other instructions could be executed while the multiplier / divider unit was in operation). Two arithmetic units were provided for integer operations: one of 32 bits and another capable of performing 32-bit operations and 64-bit operations. Auto-increment and auto-decrement was provided on 8 registers from about 1957. Array arithmetic and array data transfers were permitted. Compared with contemporaries such as the Manchester Mark 1, DEUCE was about ten times faster.

The individual words of the quadruple registers were associated with an auto-increment/decrement facility. That facility could be used for counting and for modifying instructions (for indexing, loop control, and for changing the source or destination address of an instruction).[2]

Being a serial machine, access time to a single register was 32 microseconds, a double register 64 microseconds, and a quadruple register 128 microseconds. That for a delay line was 1024 microseconds.

Instruction times were: addition, subtraction, logical operations: 64 microseconds for 32-bit words; double precision 96 microseconds; multiplication and division 2 milliseconds. For array arithmetic and transfer operations, time per word was 33 microseconds per word for 32 words.

Floating-point operations were provided by software; times: 6 milliseconds for addition and subtraction, 5½ milliseconds average for multiplication, and 4½ milliseconds average for division.

The front panel of the DEUCE featured two CRT displays: one showed the current contents of registers, while the other showed the content of any one of the mercury delay line stores.

From about 1958, seven extra delay lines could be attached, giving 224 more words of high-speed store. An IBM 528 combined reader–punch could be substituted for the Hollerith equipment, giving the same input–output speeds, in which case the machine was called Mark II. Automatic conversion of alphanumeric data to BCD was provided on input, and the reverse operation on output, for all eighty card columns. On this equipment, reading and punching could proceed simultaneously, if required, and thus could be used for reading in a record, updating it, and then punching an updated record simultaneously with reading in the next record. With the seven extra delay lines, the DEUCE was denoted Mark IIA.


The principal high-level programming languages were GEORGE, ALPHACODE, STEVE, TIP, GIP,[3] and Algol.[4] Assembler language translators included ZP43 and STAC.[5]

Invented by Charles Leonard Hamblin in 1957, GEORGE was closest to present-day programming languages.[6][7] It used Reverse Polish Notation. For example, to evaluate e = ay2 + by + c, one wrote

a y dup × × b y × + c + (e).

where "dup" duplicates the previous entry, being the same as using "y" here.

GEORGE provided a 12-position accumulator as a push-down pop-up stack. Using a variable name in a program (e.g., 'd') brought the value of variable 'd' into the accumulator (i.e., pushed d onto the top-of-stack), while enclosing a name in parentheses {e.g., (d) } assigned to variable 'd' the value at the top of the stack (accumulator). To destroy (pop and discard) the value at the top of the stack, the semicolon (;) was used. The following GEORGE program reads in ten numbers and prints their squares:

1, 10 rep (i)
   dup ×

In the above program, the "dup" command duplicated the top of the stack, so that there were then two copies of the value at the top of the stack.[8]

GIP (General Interpretive Programme) was a control program for manipulating programs called "bricks". Its principal service was in the running of programs from the several hundred in the DEUCE linear algebra library. Preparation of such a program involved selecting the required bricks (on punch cards), copying them and GIP in a reproducing punch, and assembling the copies into a deck of cards. Next, simple codewords would be written to use the bricks to perform such tasks as: matrix multiplication; matrix inversion; term-by-term matrix arithmetic (addition, subtraction, multiplication, and division); solving simultaneous equations; input; and output. The dimensions of matrices were never specified in the codewords. Dimensions were taken from the matrices themselves, either from a card preceding the data cards, or from the matrices as stored on drum. Thus, programs were entirely general. Once written, such a program handled any size of matrices (up to the capacity of the drum, of course).[9]


Programming the DEUCE was different from other computers. The serial nature of the Delay Lines required that instructions be ordered such that when one instruction completed execution, the next one was ready to emerge from a Delay Line. For operations on the single registers, the earliest time that the next instruction could be obeyed was 64 microseconds after the present one. Thus, instructions were not executed from sequential locations. In general, instructions could transfer one or more words. Consequently, each instruction specified the location of the next instruction. Optimum programming meant that as each instruction was executed, the next one was just emerging from a Delay Line. The position of instructions in the store could greatly affect performance if the location of an instruction was not optimum.

Reading data from the card reader was done in real-time – each row had to be read as it passed the read brushes, without stopping. Similarly for the card punch; the word for a particular row was prepared in advance and had to be ready when a given row of the card was in position under the punch knives. The normal mode of reading and punching was binary. Decimal input and output was performed via software.

The high-speed store consisted of four single-word registers of 32 bits each, three double-word registers, and two quadruple-word registers. Each 32-bit word of the double and quadruple-word registers could be addressed separately. They could also be accessed as a pair, and—in the case of the quadruple registers—as a group of three or four. The instruction store consisted of twelve mercury delay lines, each of 32 words, and numbered 1 to 12. Delay Line 11 (DL11) served as the buffer between the magnetic drum and the high-speed store. Being a "transfer machine", data could be transferred a word at a time, a pair of words at a time, and any number of words up to 33 at a time. Thus, for example, 32 words read from the drum could be transferred as a block to any of the other delay lines; four words could be transferred as a block from one quadruple register to the other, or between a quadruple register and a delay line—all with one instruction. The 32 words of a delay line could be summed by passing them to the single-length adder (by means of a single instruction).[10]

By a special link between DL10 and one register, namely register 16, DL10 could be used as a push-down stack.


The first three machines were delivered in the northern spring of 1955; in late 1958 a DEUCE Mark II improved model appeared. This version employed a combined card reader and punch. The combined IBM 528 reader and punch behaved like the separate Hollerith units on the earlier DEUCE Mark I machines; however, it was provided with hardware conversion of alphanumeric data to BCD on input, and vice versa on output. Data could also be read in and punched simultaneously at 100 cards per minute. The DEUCE Mark IIA provided seven extra mercury delay lines, each of 32 words.

A total of 33 DEUCE machines were sold between 1955 and 1964, two being purchased by the engine manufacturer Bristol Siddeley.[11]

The success of DEUCE was due to its program library of over 1000 programs and subroutines.[12]

See also[edit]


  1. ^ Copeland, B. Jack (24 May 2012). Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer. OUP Oxford. pp. 4, 164, 327. ISBN 9780199609154.
  2. ^ D. G. Burnett-Hall & P. A. Samet, "A Programming Handbook for the Computer DEUCE", Royal Aircraft Establishment, Ministry of Aviation, London (England), April 1959, Technical Note M.S.38.
  3. ^ Robinson, C. (1 April 1959). "DEUCE Interpretive Programs". The Computer Journal. 1 (4): 172–176. doi:10.1093/comjnl/1.4.172. ISSN 0010-4620. Abstract: This paper describes the principal features of (i) The General Interpretive Program, (ii) The Tabular Interpretive Program, and (iii) Alphacode, which are the interpretive programs which have been most extensively used in solving problems on DEUCE. The characteristics of these three schemes are compared and contrasted.
  4. ^ Brian Randell & L. J. Russell, "DEUCE ALGOL", Report W/AT 844, Atomic Power Division, English Electric Co., Whetstone, Leicester, England, Feb. 1962.
  5. ^ DEUCE Library Service, "DEUCE STAC Programming Manual", English Electric Co., Ltd, Kidsgrove, Staffs, England, c. 1960.
  6. ^ C. L. Hamblin, "An Addressless Coding Scheme based on Mathematical Notation", N.S.W. University of Technology, May 1957 (typescript).
  7. ^ C. L. Hamblin [1957]: An addressless coding scheme based on mathematical notation. Proceedings of the First Australian Conference on Computing and Data Processing, Salisbury, South Australia: Weapons Research Establishment, June 1957.
  8. ^ C. L. Hamblin, "GEORGE, A Semi-translation Programming Scheme for DEUCE: Programming and Operation Manual", School of Humanities, University of New South Wales, Kensington, N.S.W., 1958.
  9. ^ Deuce Library Service, "DEUCE General Interpretive Programme", 2nd Ed., The English Electric Company Limited, Kidsgrove, Staffs, England, c. 1963.
  10. ^ " 'English Electric' D.E.U.C.E. Programming Manual", The English Electric Company Limited, May 1956, publication No. NS-y-16.
  11. ^ Dow, Andrew (20 August 2009). Pegasus, The Heart of the Harrier: The History and Development of the World's First Operational Vertical Take-off and Landing Jet Engine. Pen and Sword. p. 186. ISBN 9781473817142.
  12. ^ Copeland, B. J., ed., Alan Turing's Automatic Computing Engine, Oxford: Oxford University Press, 2005, ISBN 0-19-856593-3

External links[edit]