Patent GB-1053686-A (GB)
IPC: A63H33/00
Abstract: 1,053,686. Computers. INTERNATIONAL BUSINESS MACHINES CORPORATION. July 9, 1965 [July 22, 1964], No. 29129/65; Heading G4A. In a data processor, a multi-stage adder adds a number equal to or derived from the contents of a first register to a number obtained in parallel form, selectively with or without effective shift, from a second register, the adder output being passed in parallel form to the second register. Referring to Fig. 1 (not shown), 32-bit binary operands comprise 4 bytes of 8 bits each, and registers S, T, A, B are provided each of 32 bits except B which has 4 extra. An ST counter selects a byte position in the S or T register. An address field in an instruction register 102 is used, after accessing of the operands, as a count field which is preset and then incremented or decremented as a multiplication or division process proceeds to select pairs of bits from the S register and also to assemble a result byte in an 8-bit register F prior to transfer of the completed byte to register S. Multiplication.-Referring to Figs. 1 and 3 (not shown), the multiplier and multiplicand are stored in registers S and T respectively. In each cycle, two multiplier bits are examined and the multiplicand passed via a circuit which selectively shifts it 0 or 1 position to the left and selectively complements it or not, the result being added in a parallel adder to the partial product from the B register shifted 2 places to the left, the result being shifted 4 places to the right then inserted in the B register. The bits in the 4 extra positions of the B register are passed to the F register for assembly. Each byte, when assembled, passes to the S register. The circuit for shifting/complementing the multiplicand allows it to be effectively multiplied by 0, 1, +2, the minus option being obtained by complementing. Thus subtraction is done by addition of complements. A multiple of 3 is obtained by multiplying by - 1 in the current cycle and effectively incrementing the required multiple by 1 in the next cycle. A multiple of 4 is obtained by multiplying by 1 in the next cycle. In this last case a multiplication by 0 in the current cycle is implied, as it is when the two multiplier bits are both 0 and the required multiple on the previous cycle was neither 3 nor 4, but this multiplication is not done, thus saving a cycle. Instead the left 2 shift between B register and adder is omitted (i.e. zero shift) and the next two multiplier bits are used to select the multiplicand multiple. During multiplication, the count field, preset to 15, is decremented by 1 or 2 as appropriate, during each cycle. Division.-Referring to Figs. 1 and 4 (not shown), two quotient bits per cycle are generated based on a decoding of the three high order bits of a dividend-remainder in the B and S registers and of the two high order bits of a divisor in the T register to select a multiple 0,  1, 2 times the divisor which is passed into the adder having been obtained by the shifting/complementing circuit connected between them, and is added to the partial dividend-remainder obtained with a 2 left shift from the B register. Lack of a 3X multiple necessitates an extra cycle when this is required, without shift between B register and adder. During each cycle, two bits (high orders first) of the dividend are gated from the S register to the low order positions of the B register. Quotient bits from the adder without shift pass via the B register and are assembled into bytes in the F register and then passed to the S register in the latest vacated byte position. So at the finish the S register will contain the quotient and the B register the remainder. During division, the count field, present to 0, is incremented by 1 each cycle. Adder output shifts.-Besides the 0 and 4 right shift at the adder output, a 4 left shift is possible. Parity.-Each 8-bit byte has an associated parity bit. The adder provides a parity bit for each 4 bits of its output and the appropriate ones of these (depending on the shift given to the adder output) are combined to give a single parity bit for eight bits at the adder output, which is compared with the actual parity of the eight bits to give an error indication if different. Parity checking at the adder input is also mentioned. Further features.-Addition and subtraction by byte may be done in a further adder on bytes selected from the S, T and A, B registers by the ST counter and a similar AB counter. Double-length operands are mentioned.