# The Booth-Britten 1947 reports

We give extracts from three reports all written jointly by Andrew Booth and Kathleen Britten (later Kathleen Booth) which give much insight into the early development of computers. The first two reports were written when Booth and Britten were at the Institute for Advanced Study at Princeton in the summer of 1947 while the third was submitted to the

*Quarterly Journal for Mechanics and Applied Mathematics*in November 1947 after they had returned to London. We have added some comments in square brackets which we hope adds a little for those unfamiliar with the acronyms.**1. General considerations in the design of an all-purpose electronic digital computer**

The first conception of a calculating machine, capable of executing in a completely automatic manner, a sequence of orders previously given to it, appears to have been due to Charles Babbage. This machine was not completely realised on account of its essentially mechanical nature and the technological imperfections of the engineering processes available in 1830. However, despite this non-realisation, Babbage's plans contain all the logical elements required for the construction of such a computer.

Little progress was made towards the actual construction of a general purpose computer until the late 1930s, when two projects were initiated in the U.S.A. These were:

1) The A.S.C.C. [the IBM Automatic Sequence Controlled Calculator designed by Howard Aiken] at Harvard.

2) The E.N.I.A.C. [the Electronic Numerical Integrator and Computer designed by John Mauchly and J Presper Eckert in a project overseen by Herman H Goldstine] at Philadelphia.

The A.S.C.C. is essentially a large Hollerith machine with provision for multiplication and division, and for logical programming. As a Hollerith type machine it is satisfactory, but the programming is complex and the execution of orders slow. For example, multiplication takes a time of the order of five seconds. The memory is indefinitely large but very slow as it consists of punched cards.

The E.N.I.A.C. is the first working electronic machine, but is limited in application since its programming is very complicated, and its internal fast memory is only 20 numbers. Practically, the speed of operation of the E.N.I.A.C. is equal to that of its punched card output (100 cards per minute), since all electronic processes of the machine are considerably faster.

It will be seen from the above brief survey, that existing machines are limited in application, either by their slow overall speed (due to electro-mechanical elements), or to their limited high speed memory capacity. As a general principle, it can be stated that it is useless to increase the speed of functional units beyond one order of magnitude faster than that of the data input. Thus, for a relay type machine, a multiplication time of less than $\large\frac{1}{100}\normalsize$th of a second is unjustified, since punched tape or card data feed is slow compared with this.

Machines at present under construction attempt to meet this logical desideratum, and are of two main types:-

1) Serial operation machines.

2) Parallel operation machines.

Of the first type may be mentioned the E.D.V.A.C. [Electronic Discrete Variable Automatic Computer designed by John Mauchly and J Presper Eckert] and its British counterpart A.C.E. [Automatic Computing Engine designed by Alan Turing], and of the second, the Princeton Computer project and our own machine. The distinction between the two types is that, in 1) the digits of a number are available one at a time in strict sequence, whilst in 2), all the digits of any number become available at the same time. It follows that, if the minimum time of electronic elements is utilised in both cases, 1) will be slower than 2) by a factor equal to the number of digits in the number considered.
2) Parallel operation machines.

Although, at first sight, it might appear that the design of type 2) machines would be the most complicated, this is, in fact, not the case, since the control needed to execute, for example, multiplication, is much simpler that that required in type 1).

The foregoing conclusions make it apparent that there are two general methods of designing a fast computing machine.

1) A large high speed memory and a few distinct and simple arithmetic units.

2) A slower large memory and a number of identical arithmetic units.

In the first case, use is made of the fact that any calculation can be broken up into individual parts, each of which can be performed separately and in sequence; whilst in the second case many parts of a calculation are performed simultaneously. As an example, consider the calculation of
2) A slower large memory and a number of identical arithmetic units.

$\Large\frac{ay^2 + by + c}{dy + e}$.

A type 1) machine would follow this sequence:-
1) $e$ to product register.

2) Form $dy$ and add to $e$ in product register.

3) Store $dy + e$ in memory.

4) Form $y^{2}$ and transfer to multiplier.

5) Form $ay^{2}$ and leave in product register.

6) Form $by$ and add into product register.

7) Add $c$ into product register.

8) Divide contents of product register by $dy + e$.

whereas a type 2) machine would perform the operations (1-3) and (4-7) in two simultaneous groups and then combine the results in 8), or possibly generate $ay^{2}$ and $by$ simultaneously. Thus the second procedure might effect a saving of time by a factor of 2-3, which could then be set against a memory of proportionate slowness.
2) Form $dy$ and add to $e$ in product register.

3) Store $dy + e$ in memory.

4) Form $y^{2}$ and transfer to multiplier.

5) Form $ay^{2}$ and leave in product register.

6) Form $by$ and add into product register.

7) Add $c$ into product register.

8) Divide contents of product register by $dy + e$.

It is evident that multiple operations lead to increased complexity and that the ideal machine would be of type 1).

**2. Coding for the A.R.C.**

**Preface**

Although this report deals specifically with the coding of problems for A.R,C. [Automatic Relay Computer] it can be considered as the successor to our previous work on the design of electronic computers. This in because we have made the code of A.R.C. identical with that projected for the electronic machine.

The advantage of this arrangement is obvious, we shall be able to transfer any problem which has been coded for A.R.C, directly to the electronic machine when this becomes available. In addition, the experience which we gain in using the simpler machine may form a valuable guide to possibly advantageous modifications of the code for the faster computer.

**Introduction**

The present report deals specifically with the coding of problems for A.R.C. [Automatic relay calculator], but, despite this, may be considered to form a continuation of our previous report on the design of electronic computers. The reason for this universality lies in the fact that, as will become evident from below, the number of logically complete codes which do not use bizarre operations is limited. In addition, it is our aim to have a standard procedure so that, when our electronic machine becomes available, only limited replanning will be necessary.

It was explained, in the first report, that although logically simple arithmetic operations of the type + , -, shift, were sufficient to programme more complex operations such as multiplication and division, it was nevertheless desirable to include unit operations of this more complicated type in order to save time. We shall now take up the design of a code in somewhat greater detail.

In the first place, to be satisfactory, a code must be arithmetically complete. By this is meant that it must include sufficient basic operations to make possible the generation of any function defined by the ordinary rules of arithmetic. Let us examine this in more detail, and suppose that we take as our basic set only the operations + , -, L and R shift and control shift. The most obvious operation upon which to test the code is that of multiplication. ...

**3. Principles and progress in the construction of high-speed digital computers.**

**Summary**

The basic principles underlying the mathematical design of high-speed digital computers are discussed and the necessary components of such machines denned. Scale of notation, the form of the 'memory', the action of the control, and other practical details are considered, and a brief discussion is included of the exact arithmetic functions of which these machines must be capable. This is followed by a description of current computer projects in America. Aiken's second relay computer at Harvard, the Bell relay machine, E.D.V.A.C., and the Princeton electronic computer are described briefly and an idea given of their state of completion in 1947.

**Introduction**

It is the purpose of this paper to discuss the basic principles underlying the mathematical design of high-speed digital computers, and to follow this with an account of the progress which has been made, in. the U.S.A. and at home, with the actual construction of such instruments. Digital versus analogue computers.

At the outset it is perhaps worth noticing the essential difference between the two possible types of computing machine, digital and analogue. An analogue machine is one which performs its functions by finding some mechanical, hydraulic, or electrical mechanism whose action in effect duplicates the mathematical processes required. ...

The most ambitious analogue computer constructed to date (and it now seems for all time) is the Bush-Caldwell differential analyser at the Centre of Analysis in the Massachusetts Institute of Technology; this achieves, on favourable occasions, the upper limit of accuracy quoted above and has a tape-feed device which enables a problem to be set into the machine from a standard commercial electrical typewriter. Electrical gear-boxes eliminate the laborious setting operation required in previous analysers, and the circuits are so arranged that all the integrators receive a fair share of the work of the machine. This feature is important in a machine whose maximum capacity exceeds that normally required on routine problems.

...

A digital computer is defined to be any machine which takes its information in the form of actual numbers (i.e. assemblages of digits) and operates with it in this form throughout. It is at once apparent, from this, that only the ordinary operations of arithmetic are possible to such a machine, and that any continuous process must be replaced by a suitable finite difference or other numerical equivalent. The most common example of a digital computer is the ordinary desk Marchant, Monroe, or Brunsviga, and it is perhaps worth observing that such a machine, with a $6 \times 6$ decimal multiplication time of around 10 seconds, is faster by a factor of about 25 than a non-expert (i.e. non-professional computer) using pencil and paper methods. At these speeds it is just possible for the human operator to supply the machine with data and instructions at an adequate rate. With an increase in speed by even a factor of 10 this is no longer true and, if the machine is to be hand-controlled, no further improvement in performance is justified.

...

**Computer projects in America**

We shall now give a short survey of current calculating machine projects in America. No description will be given of the E.N.I.A.C., as Hartree has provided this in his book

*Calculating Machines*(C.U.P.). In any case, although this machine is of historic interest as the first large electronic calculator to operate successfully, it has been rapidly outmoded by recent developments, and cannot be regarded as typical of modern ideas on automatic computers.

**Aiken's relay computers**

The A.S.C.C. [Automatic Sequence Controlled Calculator], built by Aiken at Harvard, also falls into this category. This relay controlled computer was completed in 1941 and has operated almost continuously since then to the present day. A very full description of this machine and its operation is given in

*A Manual of Operation for the A.S.C.C.*published by Harvard.

Aiken has now completed a second, and larger, edition of this machine. The work of construction and wiring was completed last June (1947), testing was in progress, and the arithmetic unit had just been put into operating order.

The machine consists of the control and four arithmetic units. Input and output is via punched tape and results can be printed directly by the machine. It performs the elementary operations of addition, subtraction, multiplication, and division, and has the discrimination order described above.

Aiken hopes to attain a multiplication time of the order of 1 sec, an improvement by a factor of 5 over the A.S.C.C, and a multiple arithmetic unit has been incorporated with the idea of speeding up the machine. This will, of course, greatly increase the complexity of programming, as in order to use the machine to best advantage all units must be working simultaneously. Indeed, Professor Aiken has mentioned as a major problem the difficulty of programming sufficient work to keep the machines continually busy.

Experience of programming for our own relay machine, A.R.C., has shown, however, that, using the code given above, quite complex problems (e.g. matrix multiplication) can be programmed in about 30 minutes, and it seems reasonable to suppose that most calculations could be dealt with in a matter of hours. It may be concluded from this that an increase in the speed and simplicity of the arithmetic unit is preferable to an increase in size. The chief reason for the use of binary scale for automatic computers is the lack of a reasonably compact and economical form of decimal memory. An essential difference between Aiken's relay machines and other current projects is that they have only a very small memory and operate in decimal scale. Orders are taken in sequence from punched tape, and all results, intermediate or final, are recorded on tape. This increases the complexity of programming and reduces the speed of the machine, as reading from and recording on tape are comparatively slow operations.

The use of decimal scale, of course, eliminates the necessity for conversions at the beginning and end of every calculation and reduces the number of digits which must be carried, but it has the disadvantage that, from the engineering point of view, the operations of arithmetic are much more complicated in decimal than in binary scale.

In spite of these defects, however, both relay machines are fine examples of engineering, and Mark I has a most impressive record of continuous performance.

Aiken is also building an electronic computer, but development was not very far advanced last summer (1947). The main outlines of the machine had been decided upon, but the detailed circuits were not then designed. This machine is to have a high-speed memory, consisting of a drum with a number of magnetic tracks, each with its recording and pick-up head. Here again, decimal scale is to be used, decimal numbers being represented by a binary code.

**The Bell relay machine**

The only other large relay computer in America has been constructed by Bell Telephones, and is now at the Aberdeen Proving Ground, Maryland. This machine is a general purpose calculator, built to the basic plan indicated earlier in this report. It uses modified binary scale, has tape input and output, and uses a code similar to that outlined above. It has been successfully used to solve various differential equations, and for the calculation of a table of the binomial function. The limitations of this machine lie in the size of the high-speed memory - twenty numbers, stored in relay banks - and the experience of those who have used it shows that this restriction in memory size both reduces the effective speed of the machine and increases the complexity of programming.

As is projected for other machines using binary scale, the Bell machine performs its own conversions to and from this scale. It has a certain degree of internal checking in that, when information is transferred from one part of the machine to another, the number of 1's occurring in the number before and after transfer are compared; if these are found to be different, the machine is automatically stopped. This is by no means a complete check, and indeed, no current project has yet found a really satisfactory solution to this problem. It has been proposed to run two identical machines, coupled in parallel, and so arranged that if the results produced at any stage are not identical, the calculation is stopped. This, however, is likely to be costly in practice, and, in any case, is not an absolute check since the comparing mechanism is liable to error.

**The E.D.V.A.C.**

So far only 'parallel operation' machines have been described. Next comes the only overt project in America building a serial type computer, the E.D.V.A.C. [Electronic Discrete Variable Automatic Calculator] at the Moore School of Electrical Engineering, Philadelphia. This is to be an all-purpose, electronic computer using as memory, mercury delay-lines. Its counterparts in England are Wilkes's E.D.S.A.C. at Cambridge and the National Physical Laboratory's A.C.E.

In July (1947) the main body of E.D.V.A.C. was still under construction. A good deal of work has been done on delay-lines, and in particular on the problems arising from corrosion of the tanks by the mercury, and a satisfactory model has been adopted. The designs for the accumulator and control are complete, and a pilot model of the arithmetic unit was operating. This model, 'Shadrac' by name, performs addition, subtraction, multiplication, and division, but no controls were built in and numbers had to be inserted by hand. 'Shadrac' was built for experimental purposes only and has a capacity for twenty digit binary numbers, the delay-lines being about 18 in. long. The final machine will work to forty binary digits and on the basis of experience gained with 'Shadrac', it is hoped to achieve a multiplication time of 1 millisecond.

...

**The Princeton electronic computer**

This is probably the most ambitious project at present in existence, as it is hoped to attain a multiplication time of less than 100 $\mu$sec. The machine is to be a parallel type electronic computer using binary scale. It differs from all those discussed so far in the size of its memory; this is hoped to be about 4,000, forty digit binary numbers to be stored in the 'selectrons' briefly described above.

The machine will follow the general plan described earlier in this report, and will consist of the memory, accumulator, shifting register, control and the input and output units.

The input is to be via teletype tape and magnetised wire, and the machine will be provided with a library of these wires containing tabulated functions and codes for routine calculations.

The code is again similar to that described above, and each order will consist of two parts:

(1) The operation to be performed.

(2) The memory location of the number to be operated upon.

Conversions to and from binary scale will be done by the machine, decimal numbers being inserted in binary coded form. The large memory capacity, and simple code, will make the coding of problems for this machine comparatively rapid and easy.
(2) The memory location of the number to be operated upon.

At the end of last summer a shifting register and accumulator were in operation, and the magnetic input and output was complete. The accumulator had an addition time of 2 $\mu$sec, but it was hoped to improve on this; the control circuits necessary to make multiplication and division possible had not, at that time, been completed.

A great deal of work has been done on the best and most economical medium for the magnetic input and wire has been chosen as providing minimum bulk with good recording capacity. To avoid undue bulk, small gauge wire will be used, and difficulty was experienced at first because the tensions set up when starting and stopping caused breakages. This problem has been solved by mounting two drums on a common shaft and winding the wire from one to the other via the reading and recording heads. The effective radii of these drums will, of course, vary slightly with the amount of wire on them, but the consequent tensions in the wire are eliminated by the use of a differential gear and a small servo-motor.

Another problem which has to be considered in this connexion is that of reading from the wire while accelerating. It is possible to lose digits in this process, and this is to be avoided by having a set of marker pulses between each 'word'. A counting device records the number of digits read out between each marker pulse, and if any are missed, the word is rejected. It is hoped, in the final machine, to record 100 digits to the inch and to run the wire at 50 ft. per sec, giving an input speed of 60,000 digits per sec. Progress on the memory has, so far, been slow. Originally it was to consist of forty 'selectrons', each containing 4,000 digits. At the end of the summer (1947), however, no working model of the selectron had been produced, and it seems that, when this is available, it may contain, at first, only 266 digits. While this memory is adequate for a relay machine, it will probably be quite insufficient for the much faster electronic computer, and it may be necessary to develop an alternative form of high-speed memory consisting of, for example, magnetised drums.

Last Updated February 2023