Patent GB-873166-A (GB)
Title: Improvements in electronic digital computers
IPC: G06F7/491
Filed: 1957-11-21
Abstract: 873,166. Digital electric calculating apparatus. INTERNATIONAL BUSINESS MACHINES CORPORATION. Nov. 21, 1957 [Nov. 21, 1956], No. 36325/57. Class 106 (1). A floating point computer for operating with numeric words each word comprising a mantissa and an exponent comprises means for differencing the exponents of two words, means for shifting the mantissa of one of the words in an accumulator in dependence upon the difference and means for then performing a desired arithmetic operation. A control circuit for use with the fixed-point computer described in Specification 800,273 which is referred to is described for the control of floating-point arithmetic operations. Precise details of the circuit (Figs. 3a-3m, not shown) and of the way in which it fits into the basic fixed point computer (Figs. 2a-2d, not shown) are given. Operational details of the addition of two signed floating-point decimal numbers are giventhese being summarised by the flow diagram of Fig. 26-but no details of any sign analysis are given, and multiplication-by repeated additions and shifts-and division-by repeated subtractions and shifts-are described in general terms only. The computer described in Specification 800,273 comprises a magnetic drum store 22, Fig. 1, a programme register 23, which stores the current two-address-instruction, a distributer 34, i.e. a further quick-access register, an accumulator 32, which comprises two oneword registers referred to as the upper and lower accumulator, and a serial adder 33, and to this computer is added a floating-decimal control unit 86. The adder has two inputs A and B and normally data from the accumulator enters at A and data from the distributer at B, the sum being inserted into the accumulator. In the computer instants of time are named by reference to the position of the drum store. Each track on the drum, Fig. 6, comprises 5 sectors each of which is divided into ten words each of which is further divided into twelve digit positions labelled DX, D0, D1-D10, which pass the read/write head in this order, and these digit positions are used to refer to instants of time. Time D7, for example being an instant of time when one of the D7 digits of a word is about to pass under the head and time D8, which always comes immediately after time D7, being an instant when a digit position D8 is about to pass under the head. Further precision, if required, is obtained by referring also to a particular word and to a particular sector. Each word, for example a word in the distributer, Fig. 8, contains ten digits, a sign digit and a spare digit position. In floating-point operations numbers are expressed in the form Œ m10<SP>c-50</SP>,where m<1 and 0#C#99, the number m, called the mantissa, being represented by the first eight digits of a word, namely those in digit positions 10 to 3 which positions are assumed to be preceded by a decimal point as shown, the number C, defined in the Specification as the " characteristic " being represented by the digits in digit positions 2 and 1, and the sign being represented by a " 9 " or an " 8 " in digit position 0. The number C-50 is called the exponent of a number but the Specification, in order to avoid confusion, also refers to the number C, i.e. the characteristic, as the exponent and clearly the number C-50 ranges in value from - 50 to + 49. When m < 0.1 the number is said to be in "normalized" form. In the accumulator which comprises ten digit storage positions for the upper word and twelve for the lower word, Fig. 7, the ten digit positions of the upper word section are used to register a mantissa and a characteristic, as in the distributer, and the sign digit, i.e. the digit that would normally be adjacent to the characteristic in digit position 0 (shown dotted in Fig. 7) is registered, not in the accumulator but in a sign analysis unit (not described). The twelve digit positions of the lower word section can be used in a manner similar to those in the distributer. Both right and left shift are possible in the accumulator in a normal or floating-decimal form, the latter form being illustrated in Figs. 9 and 10, from which it will be seen that neither characteristic shifts. The digit positions in the accumulator are referred to as DXL, D0L, DIL ... D10L for the lower word and DIU ... DIOU for the upper word and normally the digit storage positions are regenerated successively starting at DXL at time DX of an oddnumbered word and finishing at DIOU at time D10 of the next even-numbered word. Thus the complete accumulator is regenerated every two words. Instants of time within these two word cycles are referred to as times DXL, DOL. DIL ... DIOL, DXU, DOU, DIU... D10U (this list being in chronological order) even though there are no actual digit storage units or positions DXU and DOU. Thus the bit in digit storage position D4L, for example, is regenerated at time D4L, i.e. at time D4 of an evennumbered word, and to effect the regeneration the digit in position D4L is actually read at time D3L. It is then stored for one digit, in a delay line, and re-entered directly (regenerated) at time D4L, into position D4L. This particular type of regeneration means that each position of the store is actually read at a time one digit before the time named after it, i.e. position D4L is read at time D3L, position DXL is read at time DIOU. This read-out is referred to as an " early " read-out. If, however, the actual output data produced by reading the accumulator is delayed by one digit, as it is for regeneration, then an " on-time " read-out is obtained. Thus if the " early read-out lead from the accumulator is examined then the digit that appears thereon at time D3L for example, actually came from position D4L of the accumulator, while if the " on-time " lead is examined the digit appearing thereon at time D3L is the digit that was in position D3L of the accumulator. The operations which are performed by the computer under control of the floating-point control unit in response to a single instruction for either addition or subtraction are set out in Fig. 26 in the form of a flow chart. In outline these operations are: (i) to "equalize" the characteristics by first subtracting them and then shifting one of the mantissas an appropriate amount; (ii) to effect the addition or subtraction as determined by the sign analysis unit; (iii) to round the result; and (iv) to normalize the rounded result. Initially the two numbers to be added or subtracted are put in the upper accumulator and the distributer (the sign digit of the number in the upper accumulator going to the sign analysis stage). Two examples are shown in Figs. 14 and 15, each operation taking one double-word time. For the first operation of "matching the exponents" the two characteristics are subtracted (by adding one to the complement of the other) and the result is put back into the accumulator. Any tens-carry that occurs during this subtraction is not entered into the accumulator (there being no room for it) but is registered in an exponent analysis circuit. The result of the second operation, that of " restore exponents " depends upon the relative magnitudes of the two numbers being processed, and its main result is either to insert the larger characteristic into the accumulator, if it came from there initially as in Fig. 14 or alternatively to clear the characteristic positions DGIU and DG2U. The operation also results in the insertion in position DGOL of the nines complement of the number of shifts required. When one of the two numbers involved is either very much smaller than the other (having regard to the machine capacity of eight significant figures) then its register is cleared and the characteristic of the other number is restored if necessary. This then completes the addition or subtraction operation. The third operation, Fig. 14, that of " interchange," is only necessary when the characteristic positions DGIU and DG2U of the accumulator have not been cleared, i.e. when the characteristic of the number originally in the accumulator is larger than that of the number originally in the distributer, and when it is necessary, as in Fig. 14, the contents of the distributer and the upper accumulator are interchanged and positions DGIU and DG2U are cleared. The contents of the accumulator are then right-shifted repeatedly and unity is added to position DGOL for each until the number in this position becomes zero. Then follows the addition or subtraction as determined by the sign analysis circuit, of the two mantissas, the result being inserted into the upper accumulator. This result is then "rounded" by adding 5 to position DG1OL- the carry from this position being to position DG3U-and the lower accumulator is cleared. Finally "normalization" is performed if necessary, i.e. the result is left-shifted in the accumulator until the first significant digit is in position DG10U and the characteristic is appropriately modified. The actual circuit as can be seen from Fig. 26, contains units to deal with all the special cases that may arise, such as an identically zero result after the addition or subtraction or overflow from either the characteristic positions or the mantissa positions.