Patent GB-1419315-A (GB)
Title: Apparatus for carrying out arithmetical and logical operations
IPC: G06F7/38
Filed: 1973-02-28
Abstract: 1419315 Microprogram controlled arithmetic and logic unit INSTITUT FRANCAIS DU PETROLE 28 Feb 1973 [6 March 1972] 9823/73 Heading G4A A microprogram controlled arithmetic and logic unit includes a microinstruction register and associated decoder, and a gating and control system, the arrangement being such that the unit is responsive to a microinstruction indicating a multiplication operation automatically to perform that operation independent of further microprogram control and in response to microinstructions indicating other arithmetic and logical operations to perform those operations under microprogram control. As described the unit includes three registers 1, 2 and 3, register 1 being connected to a unit 6 which simultaneously produces at respective outputs the values O, H, H, 2H, and 2H where H is the value stored in register 1. These values are selectively gated by AND gates 7A-7E and OR gate 40 to adder 4 under the control of signals from microinstruction decoder 10 or decoder 19, which is responsive to the contents of register 2, depending on the mode of operation. The microinstruction decoder 10 decodes successive microinstructions fed to register 9 from a microprogram system, not shown. Register 2 has an "extension" flip-flop 5 in which the lowest weight digit in register 2 may be stored, e.g. when register 2 is to be shifted. Multiplication and division.-A microinstruction specifying multiplication is decoded at 10 and the multiplicand and multiplier are fed to registers 1 and 2 respectively. Decoder 10 then produces a signal RA1 to set flip-flop 11 whose outputs MT and MT enable gates 14A- 14E and disable gates 12A-12D. Further microprogram control is thus inhibited and the multiplication is performed automatically. The multiplication proceeds by a series of additions and subtractions with shift in accordance with Booth's algorithm, successive pairs of multiplier digits in register 2, and one of the digits from the pair used in the previous cycle in element 5 being tested and decoder 19 enabling a selected one of the gates 7A-7E to cause the addition or subtraction of a selected output of element 6 (i.e. the multiplicand), into the partial result register 3 via adder 4, and control elements 20 and 22. The multiplier in register 2 is subsequently shifted and the procedure repeated for a number of cycles determined by incrementing or decrementing a counter 15. The counter resets flip-flop 11 (signal RAZ) to terminate the operation and return the unit to microprogram control. Division is performed non-automatically under microprogram control, the dividend and divider being placed in registers 3 and 2, and 1 respectively and the division proceeding conventionally by successive subtractions and additions of the divider and dividend, testing the sign of the partial results, and shifting. Other operations.-The unit is arranged to perform, under microprogram control, other operations, e.g. addition, subtraction, square rooting, &c. Shift.-Element 20 which comprises a gating network controls the two place shifting required during multiplication and is also, under microprogram control, arranged to shift in either direction by one place the contents of register 2 or 3. Fast Fourier operations.-During Fast Fourier Transform operations in accordance with the Cooley-Tukey algorithm the unit produces under microprogram control the required series of addresses to access the samples in the correct sequence from a memory. A gating system is provided to selectively exchange pairs of bits stored in register 3. The contents of register 3 are gated via adder 4 to the gating system which is controlled by the current microcommand and the result cycled to register 3. The adder.-Adder 4 and register 3 each contain a sign and an additional bit at their high order ends, the additional bit having several functions, viz: enabling additions or subtractions involving numbers beyond the normal capacity to be performed without loss of the sign bits; preventing loss of sign bits during shifting to high order; enabling a check to determine whether capacity is exceeded to be performed by comparing the sign and additional bits in an exclusive-OR gate; detecting the completion of a floating point number normalization by comparing the highest order bit of the number and the additional bit in an exclusive-OR gate.