previous | contents | next

Chapter 11 The Pilot ACE 195

storage units so that they emerge as required. The coding of a trivial example will illustrate the uses of the TS's and their associated sources. It is required to build up the successive natural numbers, their squares and their cubes simultaneously. It is natural to store the values in TS's and we may suppose TS15 contains n, TS20, n2 and TS26, n3.

The instructions (1) to (3) set the initial conditions. The instruction (4) - (15) have the effect of changing the contents of 15, 20, 26 from n, n2, n3 to (n + 1), (n + 1)2, (n + 1)3. As remarked earlier, each instruction selects the next instruction and here instruction (15) selects instruction (4) as the next instruction. In the preliminary coding this is usually denoted by using an arrow; it must be catered for in the detailed coding by the correct choice of the timing number, as will be shown below.

The branching of a programme is achieved by the use of two destinations, destination 24 and destination 25. If a transfer is made from any source to destination 24 then the next instruction is one or other of two according as the number transferred is positive or negative. Similarly if a transfer is made to destination 25 then the next instruction is one or other of two according as the number transferred is zero or non-zero. In the preliminary coding the bifurcation is denoted by the use of arrows, thus:

In the detailed coding the effect is that if the number transferred to destination 24 is negative then the timing number is increased by 1. Similarly for destination 25; the two possible next instructions are consecutive in the store.

The two double word stores are numbered DS12 and DS14. DS12 has only source 12 and destination 12 associated with it, but DS14 has, in addition to source 14 and destination 14, a number of functional sources and destinations. Source 13 gives the contents of DS14 divided by 2, while transfers to destination 13 have the effect of adding the numbers transferred to DS14. In specifying transfers from, and to, the double length stores, the time of the transfer must be specified, i.e. whether it takes place in an even or an odd minor cycle or both. Thus the transfer

12-14 (odd minor cycle) usually written

12-14 (o)

represents the transfer of the word in the odd positions of DS12 to the odd position in DS14 while

12-14 (2 minor cycles)

represents the transfer of both words in 12 to the corresponding positions in 14. The operation

13-14 (2n)

gives us a method of shifting the contents of TS14 n places to the right while

14-13 (2n)

produces a shift of n places to the left.

The machine is not equipped with a fully automatic multiplier. To multiply two numbers, a and b, together, a must be sent to TS20, b to DS14 odd, zero to DS14 even and a transfer (source irrelevant) made to destination 19. The product is then produced in DS14 in 2 milliseconds, but a and b are treated as positive numbers. Corrections must be made to the answer if a and b are signed numbers. To make multiplication fast, it has been made possible to perform other operations while multiplication is proceeding. Thus the corrections necessary if a and b are signed numbers maybe built up in TS16 during multiplication, and signed multiplication takes only a little over two millisecs. It is, of course, therefore, a subroutine but a very fast one. The amount of equipment associated with the multiplier is very small. The main part of the store consists of the long storage units known as DL1, DL2, . . . , DL11. Each of these has a source and a destination with the same number as the DL number. The words in each DL are numbered 0 to 31 and the nth word in DLM is usually denoted by DLM n. Transfers to and from long lines in the preliminary coding are denoted thus:

previous | contents | next