ENIAC U. S. Army
The accumulator serves as a memory and arithmetic unit. Each accumulator can store and operate on a number having as many as 10 digits with its sign indication. Two accumulators can be interconnected by special plugging of their interconnector terminals so that they can store and operate on a signed number with as many as 20 digits. Programming memory is provided by the transceivers of the accumulator's 8 repeat program controls. Repeat switches included in the repeat program controls make it possible for an accumulator to remember that it is to transmit a program output pulse 1 to 9 addition times after receiving a program input pulse. In addition to 8 repeat program controls, the accumulator has 4 non-repeat program controls which have receivers and can, therefore, receive but not transmit a program pulse.
Because an accumulator is capable of receiving a number or of transmitting the number and/or the complement of the number stored in it, an accumulator is capable of performing the operations of addition or subtraction. Repeat program controls on the ENIAC make it possible for the accumulator to receive or transmit repetitively from one to nine times when a given repeat program control is stimulated. Each accumulator has 5 digit input channels through any one of which it can receive a 10 digit signed number. Mechanical shifters plugged into these input terminals make it possible to receive the incoming number shifted to the right or left. Thus, the accumulator, through repeated addition, can carry out the multiplication or a number by a constant having one or more digits.
The ability to do addition and subtraction and the presence of transceiver units in the accumulator also make it possible for the ENIAC to compare the magnitudes of two numbers in accumulators and, on the basis of this discrimination, choose which of 2 alternative program courses is to be followed.
The accumulator can clear its contents to zero in all decades or can clear so that zero remains in all decades but one and a five remains in that one (clear to 5). The ability to clear to 5 in a given decade combined with the possibility of plugging a deleter into an accumulator's digit output terminal or terminals makes it possible to use the accumulator to round off numerical results.
The static outputs of various stages of the 10 decade counters and the binary PM counter of an accumulator can be connected to other units such as the high speed multiplier or printer so that these units can receive information about the number stored in a given accumulator statically. (see Sec. 4.3.3.).
The following topics regarding the accumulator will be discussed in this chapter: Sec. 4.1, program controls; Sec. 4.2, common programming circuits; Sec 4.3, numerical circuits; Sec 4.4, use of accumulators for fewer or more than 10 digit computations; and Sec. 4.5, problems illustrating the use of accumulators. Reference will be made to the following diagrams:
Accumulator Front View PX-5-305 Accumulator Front Panel PX-5-301 Accumulator Block Diagram PX-5-304
Each accumulator has 12 program controls (see PX-5-301). Four of these are non-repeat program controls; eight are repeat.. Each of the 12 program controls has an operation switch for specifying the operation (receive, transmit, or neither) which the accumulator is to perform and a clear-correct switch. In addition, each non-repeat control has a receiver with a program pulse input terminal; each repeat program control has a transceiver with program pulse input and output terminals and a repeat switch. Neons associated with the 4 receivers and 8 transceivers are shown on PX-5-305. The 12 program controls operate common programming circuits (see PX-5-304), the receive circuits, the transmit circuits, the clear circuits (including the significant figures switch and selective clear switch), and a circuit which enables the accumulator to pick up the l'P. The repeat switches of the 8 repeat program controls also operate in conjunction with the 9 stage repeater ring circuit. The repeater neons (see PX-5-305) are correlated with the stages of the repeater ring.
The programming circuits common to all 12 program controls operate the accumulator's numerical circuits (see PX-5-304). The accumulator's numerical circuits consist of 10 decade plug in units and a PM-clear plug in unit. Each decade plug in unit consists of a decade (10 stage ring) counter, a decade flip-flop (16,17), a stage nine gate (14), reset pulse gate (18), carry over gates (19 and 20), A and S output gates (21 and 22, respectively) and transmitters, a pulse standardizer and several inverter tubes. Each decade counter stores 1 digit of a number and plays a part in the reception or transmission of one digit of the total of 10 digits that the accumulator can handle. The decade flip-flop has two purposes: (1) in reception it remembers if carry over is to take place; (2) in transmission it controls the A and S output gates. Gates 14, 18, 19, and 20 participate in the carry over process. Gate 18, moreover, controls the resetting of the decade flip-flop. The decades are numbered from right to left so that units decade counts as decade 1 and the 10**9 decade, as decade 10. There is a neon bulb associated with each stage of a decade counter and with the decade flip-flop (see PX-5-305).
The PM-clear unit contains a binary ring (PM) counter, A and S output gates and transmitters, a pulse standardizer, and amplifier tubes for the clear signal. There is also a special transmitter for the l'P used when the accumulator transmits subtractively. The PM counter has stage P for positive numbers, and stage M for negative numbers (which are treated as complements in the ENIAC). It should be noted that pulse input to the PM counter can come not only from the PM lead of a digit input terminal, but also can result from carry over from the 10th decade. This latter fact makes possible the correct addition or subtraction of signed numbers. Neons correlated with the stages P and M of the PM counter are shown on PX-5-305.
When storing the number +2, 345 098 765, the accumulator's face will have the appearance shown on PX-5-305 (a) where a darkened circle denotes a lit neon bulb, and the corresponding stages of the various counters will be in the abnormal state.
The negative of a number is represented in the ENIAC by the complement of the number with respect to 10**10** *. An accumulator stores the number -2 345 098 765 in the form M+(10**10-2 345 098 765 or M+(7 654 901 235). When an accumulator is storing -2 345 098 765, the digit neons appear as in PX-5-305 (b) and the corresponding stages of the counters are in the abnormal state. *** Also see Sec. 4.1.4.
** When two accumulators are interconnected to form one 20 decade accumulator, complements are taken with respect to 10**20.
The decade counters and PM counter transmit their digit output through either or both of 2 terminals, the A (add) and S (subtract) output terminals. The number stored in an accumulator is emitted over the A terminal; the complement , over the S terminal. The counters can receive their inputs from any one of 5 input terminals identified by the letters alpha, beta, gamma, delta, epsilon. The decade counters and the PM counter of an accumulator receive or transmit the information for all 10 digits and sign simultaneously (the transmission of the pulses for each digit is, however, serial).
As stated earlier, each accumulator has 12 program controls: four non-repeat controls (consisting of receiver with program pulse input terminal; operation switch and clear-correct switch) and 8 repeat controls (consisting of transceiver with program pulse input and output terminals, operation switch, clear-correct switch, and repeat switch). In this section, the possible settings and uses of program control switches will be described. The significant figures switch and selective clear switch which are more properly classified as part of an accumulator's common programming circuits are also described here. The switches are shown on PX-5-301. Neons correlated with the 12 program controls are shown on PX-5-305.
The operation switch has 9 positions: alpha, beta, gamma, delta, epsilon, O, A, S, AS. If the operation switch of a stimulated program control is set at one of the settings alpha, beta, gamma, delta or epsilon, the accumulator receives the pulses representing any number transmitted over the digit tray to which the corresponding digit input terminal is connected. Obviously, if that input terminal is not connected to a digit tray or is connected to a tray not carrying pulses at the time the control is stimulated, the accumulator receives no pulses. This point will be referred to in Sec. 4.1.2, in connection with the clear-correct switch.
If the operation switch is set at A, S, or AS, the accumulator transmits its contents, the complement of its contents, or both respectively when the control is stimulated.
The setting O instructs the accumulator to neither receive nor transmit. This setting is useful on non-repeat or repeat control operation switches when it is desired to clear an accumulator without receiving or transmitting (see Sec. 4.1.2.). When set on the operation switch of a repeat program control, the setting O provides a means of obtaining a program output pulse delayed from 1 to 9 addition times without, however, disturbing the contents of the accumulator. (See the discussion of dummy programs in Sec. 4.5).
The clear-correct switch can be set at either C or O. The accumulator's interpretation of the setting C depends on the setting of the associated operation switch.
If a stimulated program control's operation switch is set at one of the transmit settings (A, S, or AS) or is set at O, the accumulator clears either to zero in all decades or to zero in all decades except one in which it clears to 5. The setting of the significant figures switch (see Sec. 4.1.4) determines whether clearing is to zero or 5 and, if to 5, in which decade the 5 appears.
With the operation switch set to a receive setting alpha, beta, gamma, delta or epsilon, the setting C of the clear-correct switch gives the instruction "pick up the l'P from the synchronizing trunk and put it in the first decade". If there are no digit pulses coming to the digit input terminal when the control set up in this way is stimulated, the accumulator simply picks up the l'P. If there are actually pulses coming to the digit input terminal, these are first received and then, when the cycling unit emits the l'P, this pulse also is picked up and put into the first decade. A "receive - C" program in which digits are received and the l'P is picked up is, however, not possible when the digits are being transmitted as a complement from another unit in such a way that the l'P from the digit tray also arrives in units place. (See Sec. 4.3.1.)
There are at least three occasions when the "receive -C" setting of a program control proves useful. If a given accumulator is being used to store the independent variable, the accumulator can be programmed to pick up the l'P whenever it is desired to increase the value of the independent variable by one (see the illustrative problem of Chapter VIII). In some problem set-ups, an accumulator may receive from the S output terminal of the product, quotient, or two root accumulator, a complement with respect to 9 in all decades instead of a 10**10 complement (see Chapters V and VI and Sec. 4.3.1.). Also, an accumulator may receive a number transmitted as a complement by a second accumulator and shifted to the right enroute so that the original l'P needed to make a tens complement (see Sec. 4.3.1) is lost. The missing pulse, in either case, can be picked up through a "receive -C" program.
The repeat switch (which is found only on repeat program controls) can be set to any number between one and nine inclusive. The accumulator carries out whatever operation is set on the associated operation switch as many times as is specified by the setting of the repeat switch. Each repetition requires one addition time so that if the repeat switch of a control is set at r (1 = r = 9), r addition times must be allowed for the program set up on that control. The transceiver of a repeat program control emits a program output pulse at the end of r addition times.
It is to be noted that if the clear switch of a repeat program control is set at C in connection with an O or transmit setting of the operation switch, clearing of the accumulator takes place but once, at the end of the r-th addition time. The setting C in connection with a receive setting of the operation switch of a repeat program control causes the accumulator to pick up the l'P in each of r addition times.
If the number a is stored in one accumulator and the number b in another accumulator, a = rb (where 1 = r = 9) may be formed in the first accumulator through the use of a repeat program control on each accumulator. The operation switch of the control on the first accumulator should be set at a receive setting and the repeat switch, at r. The operation switch of the second accumulator's control should be set at A (if a+rb is to be formed) or at S (if a-rb is to be formed) and the correlated repeat switch, at R>/=r. (see Problem 1, Sec. 4.5.)
In a similar fashion, it is possible to form a +b summation r[i] 10**k-1. In this case where the coefficient of b has more than one digit, shifters (see Secs. 4.5 and 11.2) are used of effect multiplication by powers of 10. Notice that if the coefficient of b has p digits, p program controls will usually have to be used on the receiving accumulator but fewer than p may suffice on the transmitting accumulator. For example, 234b may be formed in an accumulator through the use of one program control (set-up to transmit additively nine times) on the transmitting accumulator. Three program controls must be used on the receiving accumulator: one set up to receive, say on alpha, four times; another set up to receive on beta, three times; a third set up to receive on gamma twice. A shifter which shifts numerical data 1 place to the left should be used at the beta input terminal and one which shifts numbers two places to the left, at the gamma input terminal of the receiving accumulator. As an example of the circumstances under which fewer than p program controls suffice on the transmitting accumulator, consider the case of forming 998b. This can be done by programming the accumulator which stores b to transmit subtractively twice and then additively once and by programming the receiving accumulator to receive twice thru an input terminal with a shifter and once thru an input terminal with a shifter that displaces data three places to the left (i.e., form 998b as 10**3b-2b).
The significant figures switch is a part of the common programming circuits which function when the accumulator transmits subtractively or when the accumulator clears. The significant figures switch has eleven positions, 0,1, ..., 10. These numbers refer to the number of significant figures, counted toward the right from the PM counter, to be retained in the accumulator.
If the significant figures switch on an accumulator is set at s (0=S=10), when clearing takes place, decade 10-s (i.e. the s+1-st decade from the left) clears to five and all other decades to zero. When a single accumulator is used, this means that the accumulator is cleared to zero in all decades if its significant figures switch is set at 10. If two accumulators (see Sec. 4.4.2.) are interconnected to form a 20 decade accumulator, the setting s=10 on the left hand accumulator causes it to clear to zero in all decades; the right hand accumulator then clears in accordance with the setting of its significant figures switch. For example, if 11 significant figures are to be stored in the 11 left hand decades of a 20 decade accumulator, the significant figures switches of the left and right hand accumulator, respectively, are set at 10 and 1.
The setting of the significant figures switch also determines the decade place into which the l'P is put when an accumulator transmits subtractively. With the significant figures switch of an accumulator set at s, the l'P is transmitted over the lead for decade place 11-s, i.e., the s-th decade place from the left. If the significant figures switch of an accumulator is set at 0, this means that the l'P is not transmitted when subtractive transmission takes place. It is to be noted that the l'P is picked up and put into units decade of an accumulator (which, in the case of 2 interconnected accumulators, mean the 20th decade from the left) when a "receive-C" program control is stimulated regardless of the setting of the significant figures switch.
Notice, that as far as rounding off a number in an accumulator is concerned, the setting of the significant figures switch provides only for getting the correct s digits from the left. The significant figures switch setting has nothing to do with deleting the non-significant digits at the right. The operator provides for the deletion of non-significant figures by placing a deleter at the output* terminal or terminals of the accumulator storing s significant figures (see Secs. 4.5 and 11.2). When printing of an s significant figure result is to take place from an accumulator and the non-significant figures at the right have not been deleted, deletion can be provided for in the set up of the IBM punch plug board (see Sec. 9.4 for an illustration).
* The deleters constructed at present can by used only at digit output terminals. Special deleters, however, can be constructed for use at digit input terminals.
The selective clear switch has two positions, SC and O. When the selective clear signal is transmitted from the initiating unit (see Chapter II), all accumulators whose selective clear switches are set at SC clear; those accumulators whose selective clear switches are set at O do not clear.
When the receiver or transceiver of a program control whose operation switch is set at a receive setting (alph, beta, gamma, delta, or epsilon) is stimulated, a signal from the normally positive output of the flip-flop is delivered (after passing thru an inverter and a buffer) by way of one deck of the operation switch to the receive circuits of the accumulators. The receive circuits include gates A through E 47, buffer tubes (A-C 48, A, C. E, G, and J 46, and A-D 49), and the 5 sets of receive gates A-L 41, ..., A-L 45 for the digit input terminals a through e, respectively.
The signal form the deck of the operation switch (referred to above) applied to the set of receive gates corresponding to the setting of the switch, opens the 11 receive gates for that digit input channel. Simultaneously, then the digit pulses for the 10 decade places and the PM place are received in the accumulator. The pulses for each place are routed to the appropriate counter with each pulse received at a counter cycling it one stage.
The signal applied to one of the gates A-E 47 allows the carry clear gate to enter the accumulator and play its role in the carry over process (see Sec. 4.3.1.).
If a stimulated program control is set up for transmission (operation switch set at A, S, or AS), a signal from the normally positive output of the flip-flop opens one of the gates F, G, or H47 so that the 10 P are admitted to each of the decades of the accumulator. The role played by the 10 P in transmission is described in Sec. 4.3.1. The signal from the flip-flop also opens gate F49 (if S), J49 (if A) or gates G and H49 (if AS) so that the 9P can pass to the A and/or S output gates of the 10 decades and the PM unit. In S or AS transmission, moreover, gate M42 or M41 is opened to pass the l'P. The l'P passing through deck 3 of the significant figures switch is routed to the lead of the S output terminal specified by the setting of the significant figures switch. The manner in which the A and S gates are controlled so that the correct number of digit pulses (or 9P) are emitted over each decade place lead is described in Sec. 4.3.1.
The clear circuits include gate M44, decks 1,2,1A, and 2A of the significant figures switch and the clear tubes in the PM unit.
If an accumulator is stimulated to transmit and clear, a signal from buffer 62 of receivers or buffer 63 of transceivers is applied to gate M44 so that the carry clear gate (CCG) is passed to the PM-Clear unit. The clear signal from the PM tubes goes directly to the upper connections of stages 1, 2, 3, 4, 6, 7, 8, and 9 in all decades causing these stages to be flipped into the normal state. With the significant figures switch set at s, the signal form the clear tubes is routed through deck 2A to the upper lead of the zero stage in decade 10-s and through deck 1 to the upper connection to stage 5 in all decades except decade 10-s. Decks 1A and 2 of the significant figures switch are return circuits from the flip-flops. Thus, stage zero is left in the abnormal state in all decades except decade 10-s in which stage 5 is left in the abnormal state.
Notice that gate M44 can be opened to pass the CCG either by the inititial clear gate (see Chapter II) or by the selective clear gate (provided that the accumulator's selective clear switch is set at SC.), as well as by the flip-flop mentioned above.
A signal from the normally negative output of a transceiver's flip-flop, through a buffer and then passing through the clear correct switch and one of the receive points on the operation switch reaches gates E49 and E5 after passing through the inverter G50. These gates, when opened, allow the l'P to pass through to units decade of the accumulator.
The eight repeat program controls on an accumulator operate the 9 stage repeater ring circuit in common. A signal from the normally negative output of the flip-flop of such controls and then through buffer 61 opens gate H50 so that a CPP can reach the repeater ring to cycle it one stage per addition time. When the ring reaches stage r, the output signal from this stage, passing through point r on the repeat switch, causes gate 62 in the transceiver to emit a signal. The signal from 62 opens gate 68 which passes a CPP. The resulting pulse resets the transceiver's flip-flop and passes through the transmitter as a program output pulse. The signal from gate 62 also opens gate K50 so that a CPP passing through it clears the repeater ring back to stage 1 at the same time as the transceiver is emitting a program output pulse.
When an accumulator is stimulated to transmit its contents and/or the complement of its contents, the lOP are routed simultaneously to each of the 10 decade ring counters of the accumulator. Each of the lOP cycles the counter one stage. Thus, if the stage corresponding to 7 is in the abnormal state before any of the lOP is received, after receiving one pulse, the stage corresponding to 8 is in the abnormal state, and stage 7 is not. After receiving 10 pulses, the stage corresponding to 7 is in the abnormal state again (See Table 4-1).
Meanwhile the accumulator changes the 9P into digit pulses in the following way: Let d be the digit stored in a given decade counter before the reception of any of the lOP. Then as the lOP are received, 9-d of the 9P pass through gate 22 to be emitted over a lead of the subtract output terminal. That one of the lOP which cycles the decade counter from stage 9 to zero, also passes through gate 14 and sets the decade flip-flop. With the decade flip-flop in the abnormal state gate 22 is closed and 21 open so that the subsequent d pulses of the 9P group are passed over the corresponding decade lead of the add output terminal. The first of the RP resets the decade flip-flop.
So far in this discussion mention has been made of transmitting through the subtract output terminal the complement of a number stored in an accumulator with respect to 9 999 999 999. Complements with respect to 10**10 are provided by the accumulator's transmitting over the subtract output lead corresponding to decade s from the left (where s is the number of significant figures stored in the accumulator), the l'P.
The transmission of sign indication is accomplished in a somewhat different manner. The S and A gates, 16 and 15 respectively, of the PM unit are controlled by stages P and M respectively of the PM counter. When a positive number is stored in an accumulator which is transmitting, a positive voltage from stage M holds gate 16 open so that the 9P are emitted over the PM lead of the subtract output terminal; no pulses are transmitted over the PM lead of the add output terminal since gate 15 is closed. If the sign of the stored number is M, gate 16 remains closed and 15 is opened so that no PM pulses are transmitted through the subtract output terminal, while 9 pulses are transmitted through the add output terminal.
The digit pulses received through the 11 input gates (see Sec. 4.2.1.) are routed simultaneously to the PM counter and the 10 decade counters. Each pulse a decade counter receives cycles it one stage. The PM counter receives zero sign pulses for a positive number and 9 for a negative number. Each pulse received by the PM counter cycles it one stage so that the reception of an even number of pulses leaves the PM counter unchanged while the reception of an odd number of pulses has the effect of cycling the PM counter to the opposite stage.
If a given counter stores the digit d before reception and p (9-d=p=10) digit pulses are received, carry over takes place from that counter to the next one at the left (whether the PM or a decade counter). So called delayed carry over takes care of such carry-overs which result from incoming digit pulses. If a given counter, c, is in stage 9 and there is a carry over form the counter c-1, then, it is also necessary for carry over to take place from counter c to counter c+1. Carry overs which result from carry overs in this way are affected by a direct carry over process.
When a given counter is cycled to stage 9, a signal from this stage opens gate 14 so that the next pulse received by the decade (whether digit or carry pulse) not only cycles the counter back to stage zero, but also passes through gate 14 and sets the decade flip-flop (16, 17). In delayed carry over, the decade flip-flop continues to remember that a carry over must take place, but no further action is taken while the digit pulses (the 9P and the l'P) are being received. The signal from the normally negative output of the decade flip-flop opens gate 18 so that the reset pulse is passed (in pulse time 13 of the addition time cycle). This pulse resets the decade flip-flop and also goes to gate 20. Now, in receive programs, the receive programming circuits allow the carry clear gate to reach and open gate 20, so that the pulse from gate 18 passes through to the next decade at the left.
The need for direct carry over arises after the first reset pulse is emitted by the cycling unit (since it is this reset pulse which gives rise to the need for direct carry over) so that carry over resulting from carry over must be treated differently. The carry pulse which passes through gate 14 goes to gate 19. Since the carry clear gate remains on for 7 pulse times, gate 19 is held open to pass this pulse to the next decade at the left. The carry clear gate, as a matter of fact remains on long enough for a carry pulse to proceed from units decade to the PM counter of two interconnected accumulators (with a safety factor). Notice, that even in direct carry over, the decade flip-flop is flipped into the abnormal state. The second reset pulse, which is emitted after the carry clear gate goes off, resets the flip-flop in this case (see PX-9-306).
A number may be received in an accumulator so that a digit appearing in the i decade of the transmitting unit is received in the i decade of the receiving unit by connecting the digit output terminal of the transmitting unit to some digit trunk by the standard cable for that purpose, and then connecting the same digit trunk to one of the five digit input terminals of the receiving accumulator by a standard cable. However, if it is desired to receive a number transmitted from decade i of the transmitting unit in decade i+k of the receiving accumulator (where k may be either positive or negative), the number must be passed through a shifter enroute from the transmitting to the receiving unit. It is usually most convenient to plug ordinary shifters into a digit input terminal of the receiving unit. A number may be shifted to the left either by an ordinary shifter plugged into a digit input terminal or by a special shifter plugged into a digit output terminal. A number may be shifted to the right only through an ordinary shifter plugged into a digit input terminal (see Sec. 11.2).
Table 4-2 illustrates the way in which an accumulator receives a number and also the delayed carry over process.
The high-speed multiplier receives its arguments and the printer data to be printed in static form from accumulators. The divider and square rooter also receives information about the signs of the arguments statically. The term static is used to distinguish this kind of communication between an accumulator and another unit from the usual dynamic transmission in which an accumulator transmits d pulses for the digit d and O or 9 pulses for sign P or M, respectively.
A unit which receives the static outputs of an accumulator has an array of vacuum tubes* corresponding to the flip-flops of the counters in an accumulator. For example, the ier selectors in the high-speed multiplier (see Sec. 5.3) which receive the multiplier from the multiplier accumulator statically consist of a 10 by 10 array of vacuum tubes. Each of the tubes in a column of the array corresponds to one of the flip-flops in a decade counter of an accumulator; each column in the array, to a decade counter in an accumulator. Two standard 55 conductor cables (carried in the static cable trough which runs along the tops of the ENIAC units) are used to deliver the static outputs of the accumulator which stores the multiplier to the ier selectors. The normally negative output of the flip-flops representing digit d in decade counter c is connected by one of the leads in these cables to the corresponding tube in the ier selectors. Thus, 100 of the 110 leads are used. An additional lead in one of the cables goes from the flip-flop for stage M in the accumulator's PM counter to a tube in the high-speed multiplier which represents sign M of the multiplier. In this way, when flip-flop d of counter c is in the abnormal state (because that counter stores the number d) the tube in row d and column c of the ier selectors is turned on. The other tubes in column c of the ier selectors do not go on.
* Two double triodes in one envelope are referred to here as 2 tubes.
Similar connections are made to tubes in the printer from the counters of accumulators which store data for printing (see Sec. 9.40. In some cases data is printed from only 5 decades and the PM of an accumulator so that only 1 cable connects such an accumulator to corresponding tubes in the printer. The master programmer also has decade counters which are similar in some respects to the decade counters of an accumulator (see Sec. 10.2.). These, too, can be connected statically to the printer.
In the case of the divider and square rooter only sign indication is communicated statically from the accumulators which store the numerator (or radicand) and denominator.
The length of time required for the information stored in an accumulator to be communicated in static form to another unit depends on the length of the leads from the accumulator to the unit. Approximately an addition time is required to turn on the tubes in the high-speed multiplier and in the divider and square rooter because the accumulators statically connected to these units are near them. A somewhat longer time is required in the case of the printer.
In some problems it may be desirable to put emphasis on the number of different numbers which can be stored in accumulators so that they will be readily available for computations rather than on the number of significant figures carried in the computation. While the accumulator has been designed to handle 10 digit numbers, it is possible to store in an accumulator two numbers with the same sign if their combined number of digits is 10 or fewer or with different signs if their combined number of digits is fewer than 10. In the first case, the PM counter is used for the common sign. In the second case, one of the decade counters is used as a PM counter for the purpose of registering sign indication for one of the numbers with stage O representing sign P and stage 9, sign M.
When the numbers are transmitted to other units for computational purposes, they can be isolated from one another by the use of special deleters, adaptors, and/or shifters. It is to be noted, however, that if subtractive transmission takes place from an accumulator storing two numbers, only one of the numbers will be a correct tens complement since the other will lack the l'P needed to make such a complement.
An example involving the use of an accumulator to store two different numbers simultaneously is given in the illustrative problem of Sec. 8.7. 4.4.2. Interconnection of Two Accumulators to Form a Twenty Decade Accumulator
Another option available to the operator is whether an accumulator is to be used alone as a 10 decade accumulator with 12 program controls or as a 20 decade accumulator with controls for 24 programs. This option results from the fact that certain of the accumulator's circuits have been left open at the accumulator's interconnector terminals (indicated on PX-5-304 by the symbol ?????. The circuits so treated include the receive, transmit, clear, and pick up the l'P circuits, and the input to units decade and the carry over input to the PM counter from decade 10. By special connections of the accumulator's interconnector terminals (L[L], I[L], I[R], and I[R] on PX-5-301), these circuits are closed in one way to make the accumulator function as a 10 decade accumulator and in a different way to interconnect two accumulators so that they form a 20 decade accumulator.
If a single accumulator is used as a 10 decade accumulator, the following interconnections must be made:
If two accumulators U and U' (where U is assumed to be the left hand accumulator) are to be used as a 20 decade accumulator, the required interconnections are:
The significant figures switch of the left hand accumulator should be set to 10 and in the right hand accumulator to s' where 0=s'=10 if 10+s' significant figures are desired. If fewer than 10 significant figures are desired, the left hand switch is set to this number and the right hand switch to 10.
For a given program only one program control is used. In reception, each accumulator receives its ten digits over one of its five digit input terminals. If the standard jumper cable for interconnecting accumulators is used, each accumulator receives its 10 digits through the digit input terminal on its front panel bearing the same designation (a-e) as the setting of the operation switch used to program the reception. Each accumulator transmits its digit output through its own digit output terminals. In the transmission of complements, the 1' pulse is emitted over the decade place lead of the last significant figure being retained. The 20 decade accumulator clears to zero in all decades except possible one where clearing is to 5. Clearing is to zero in all decades if both s and s' are 10. In "receive -C" programs, the l' pulse is put into the 20th decade from the left.
More than 2 accumulators should not be interconnected with one another as described above since the carry clear gate does not last long enough to provide safely for direct carry over across more than 20 decades; nor are the program control buffers designed to operate more than 2 accumulators.
Matters relevant to setting up accumulators for certain specific purposes will be discussed in the following pages. Sec. 4.5.1. illustrates the setup for a very simple computation involving only accumulators. Sec. 4.5.2. treats of the use of dummy programs, and Sec. 4.5.3 deals with the use of accumulators for magnitude discrimination programs. Examples of the use of accumulators in conjunction with other ENIAC units are found at the end of Chapters VI-IX.
The examples will be described with the aid of set-up tables and set-up diagrams. The set-up table is designed to give a comprehensive plan of the computation showing the programs the units will perform and their numerical contents at various addition times in the computation. The set-up diagrams show the cable connections which must be made between the units and program or digit trays to carry out the computations and also indicate the setting of switches which are parts of the common programming circuits.
The set-up tables are given with addition times as the independent variable. A double column is devoted to each unit. In the left hand half, the program is described; in the right hand half, the contents of the unit as a result of the program are shown. For accumulator programs, symbols appear on three levels, e.g.
The symbols have the following interpretations:
Thus, the illustrative group of symbols above at the left, has the following meaning: A program pulse (derived form a CPP) which is picked up from line 8 in program tray 1 stimulates program control 5 to cause the accumulator to transmit additively one time and then to clear. Upon completion of the program, a program output pulse is emitted to line 9 in program tray 1.
On some occasions, as noted above, digit pulses will be used in lieu of program pulses. A program in which such a digit pulse is generated might be written as in the sample below.
This group of symbols describes the following program: The program pulse delivered to the program input terminal of control 8 causes the accumulator to transmit additively once without clearing. The digit pulses carried on the add output lead for decade place 3 are delivered to line 5 of program tray 1. The program output pulse from control 8 is carried on line 4 of program tray 2.
The symbol ______ in the contents column is used to indicate that an accumulator is cleared. It is always written on the line corresponding to the addition time at the end of which clearing takes place.
The conventions on the set-up figures for accumulators are described in Figure 4-1.
The computation described here consists of generating n, n**2, and n**3, respectively, in accumulators 6,7, and 8. It is desired to terminate the computation when n**3=/> 9 000 000 000.The basic computation which is repeated until the limit specified on n**3 is reached is arrived at inductively. Assuming that n, n**2, and n**3 are stored in accumulators 6,7,and 8, respectively, we can proceed to (n+1)**3 and (n+1)**2 by adding 3n**2, 3n, and then 1 to n**3 and by adding 2n and then 1 to n**2 (see Table 4-3).
To terminate the computation at the desired point, we make use of the fact that the complement of 9 in a decade place other than that of the extreme right hand significant figure is zero. Now, we stimulate repetition of the computing cycle each time by the program output pulse of a dummy program control whose program input pulse is derived from the digit pulse or pulses on the subtract output lead for decade 10 of accumulator 8. As long as the digit in the 10th decade is different from 9, this control receives and therefore, transmits a program output pulse which stimulates the iteration. When 9 appears in the 10th decade, this dummy program control receives and, therefore, emits not program output pulse so that the computation is terminated.
The question as to why the S digit output of the 10th decade is delivered to a program control which does nothing but transmit a program output pulse instead of being delivered to one of the controls used for computing may be raised at this point. The answer lies in the fact that the digit pulses do not begin to put out of the S output terminal until pulse time 1 in the addition time cycle. This would mean that a computing program initiated by a digit pulse would start after at least one of the lOP and one of the 9 P and been emitted by the cycling unit. Since these pulses play a vital role in computing programs, such programs must be initiated before the digit pulses are emitted. For this reason digit pulses may be used to initiate computing programs only under certain restricted conditions. Instead digit pulses should be converted into a true program pulse through the use of a dummy program (see Sec. 4.5.2.) and the computing program can then be initiated by the program pulse which results from the dummy program.
A dummy program is defined as one in which the operation and clear-correct switches are set at 0 and the repeat switch at r where 1=r=9. Dummy programs are always set-up on repeat program controls. The dummy program has at least 3 important functions: 1). conversion of digit pulses into program pulses, 2). delay of a program pulse, and 3). isolation of programs from one another.
The discussion in Sec. 4.5.1. regarding use 1). may be summarized as follows: To ensure that units receive all of the pulses needed for arithmetic operations, computational programs must usually be initiated by program pulses occurring at the time of the CPP. Where the stimulation of subsequent programs depends on digit pulses, the digit pulses should be converted into a program pulse by being brought to a dummy program control. The program output pulse from the dummy program control can then be used to stimulate computing programs.
The need for the second contribution (delay) of dummy programs becomes apparent in setting up a fairly complicated problem in which a number of programs are carried out in parallel. As an example of this need, the reader is referred to the illustrative problem of Sec. 8.7.
Suppose that at some point in a computation one program pulse is available to stimulate a multiplier program control and also to stimulate the transmission of the arguments for the multiplication program. Let us suppose further that the same multiplier program control is to be stimulated at some later time but that the arguments for the multiplication program, this time, are to be obtained in a different way. Obviously, the program pulse that stimulates transmission of the arguments for the multiplication program. Let us suppose further that the same multiplier program control is to be stimulated at some later time but that the arguments for the multiplication program, this time, are to be obtained in a different way. Obviously, the program pulse that stimulates transmission of the arguments must be isolated from the pulse that stimulates transmission of the arguments must be isolated from the pulse that stimulates the multiplier program control for, otherwise, the units which transmit the arguments for the first multiplication cannot be suppressed from transmitting when the second multiplication program takes place.
The desired isolation can be provided for through the use of dummy programs in the manner suggested in Figure 4-3. The lines which carry program pulses have been labelled with program tray and line numbers for illustrative purposes.
As mentioned in the opening paragraphs of this chapter, the ENIAC is capable of discriminating between program sequences by examining the magnitude of some numerical result. In this section one possible method of carrying out such a magnitude discrimination program in an accumulator is discussed.
Let us assume that the critical quantity upon whose magnitude the choice of subsequent programs depends is ??? so that when x/=b, program P is to be stimulated. The magnitude discrimination program is possible because 9 digit pulses are transmitted for sign indication M and none for sign indication P.
Let us form the quantity x-b in some accumulator. Then, using a special adapter, connect the PM lead of the A output terminal of this accumulator to the program pulse input terminal of one dummy program control and the PM lead of the S output terminal to the program pulse input terminal of a second dummy program control as indicated on the schematic diagram of Figure 4-4.
Obviously when xb, the number emitted over the A terminal is positive and that over the S terminal; negative so that only dummy program control 2 is stimulated to emit a program pulse.
Even though both the number zero and its complement are represented in the ENIAC by P O OOO OOO OOO, the case x=b (or x-b=0) can still be treated in the same way as x>b (or x-b>0). For recall, when a positive number is transmitted from an accumulator, the A output gate of the PM counter remains closed and the S gate opens to allow the 9P to pass to the PM lead of the S output terminal.* These 9P received at the program pulse input terminal of dummy program control 2 cause the emission of a program output pulse to stimulate P.
*Notice that when an accumulator which stores zero transmits subtractively to a second accumulator, this second accumulator receives, at first, M 9 999 999 999. Later, in the pulse time of the l'P the transmitting accumulator emits this pulse so that the receiving accumulator then stores P O OOO OOO OOO after direct carry over proceeding from units decade to the PM counter has taken place.
In a problem in which accumulators are not urgently needed for storage or computational purposes, this set-up of a magnitude discrimination program is satisfactory. However, in general, this method has the disadvantage that no numerical programs other than one magnitude discrimination program can be carried out in an accumulator so set up, since both digit output terminals of the accumulator are completely associated with the magnitude discrimination program. The same magnitude discrimination can be effected without completely tying up either digit output terminal of an accumulator if the master programmer is used. A magnitude discrimination program involving the master program is described in Sec. 10.6.2. of the master programmer chapter.