Improving the division instruction of application-specific RISCs

Abstract This paper presents the development and application of a signed radix-4 division algorithm to a RISC architecture, where the internal ALU Manchester Carry adder is used to maintain the partial remainder in irredundant form. There are division algorithms which are faster than the one described in this paper, however, they usually make use of a redundant representation of the partial remainder and require carry-save adders which are not normally used in the integer execution unit of RISCs. The method presented in this contribution employs 3x divisor multiples and uses a reduced next divisor multiple estimate table which is implemented by a small and fast logic. Alternative radix-4 schemes with quotient digits {-2,-1,0,1,2} require large and slow PLAs for quotient digit generation. Additionally, there is no need for positive and negative quotient registers because quotient bits are generated on-the-fly by a small-sized logic, concurrently with partial remainder formation. This method also deals directly with signed two's complement numbers, eliminating the need for additional instructions for sign conversion. The application of this radix-4 division algorithm provides a two-bits-at-a-time division instruction, instead of the traditional single bit approach used in some RISCs. The speedup achieved can be very important in many numeric intensive applications, in which the use of floating-point units is not essential.

[1]  Ivan Flores,et al.  The logic of computer arithmetic , 1963 .

[2]  D. J. Allerton,et al.  RISC design for computer image generation , 1990, Microprocess. Microsystems.

[3]  D. J. Allerton,et al.  MIGS: A Multiprocessor Image Generation System Using RISC-like Microprocessors , 1989 .

[4]  Kai Hwang,et al.  Computer arithmetic: Principles, architecture, and design , 1979 .

[5]  J. B. Gosling,et al.  Design of a Hih-Speed Square Root Multiply and Divide Unit , 1987, IEEE Transactions on Computers.

[6]  Tomás Lang,et al.  A division algorithm with prediction of quotient digits , 1985, 1985 IEEE 7th Symposium on Computer Arithmetic (ARITH).

[7]  Damiel E. Atkins Higher-Radix Division Using Estimates of the Divisor and Partial Remainders , 1968, IEEE Transactions on Computers.

[8]  Milos D. Ercegovac,et al.  A higher-radix division with simple selection of quotient digits , 1983, 1983 IEEE 6th Symposium on Computer Arithmetic (ARITH).

[9]  J. B. Gosling,et al.  Design of High-Speed Digital Divider Units , 1981, IEEE Transactions on Computers.

[10]  John B. Gosling,et al.  Design of Arithmetic Units for Digital Computers , 1980, Springer New York.

[11]  George S. Taylor,et al.  Fast multiply and divide for a VLSI floating-point unit , 1987, 1987 IEEE 8th Symposium on Computer Arithmetic (ARITH).

[12]  Jan Fandrianto Algorithm for high speed shared radix 4 division and radix 4 square-root , 1987, 1987 IEEE 8th Symposium on Computer Arithmetic (ARITH).

[13]  D.E. Atkins Design of the Arithmetic Units of ILLIAC III: Use of Redundancy and Higher Radix Methods , 1970, IEEE Transactions on Computers.

[14]  John F. Hart,et al.  Computer Approximations , 1978 .

[15]  Ansi Ieee,et al.  IEEE Standard for Binary Floating Point Arithmetic , 1985 .

[16]  George S. Taylor Compatible hardware for division and square root , 1981, 1981 IEEE 5th Symposium on Computer Arithmetic (ARITH).