Integer Division Using Reciprocals (1991) [5 citations — 0 self]
Abstract:
As logic density increases, more and more functionality is moving into hardware. Several years ago, it was uncommon to find more than minimal support in a processor for integer multiplication and division. Now, several processors have multipliers included within the central processing unit on one integrated circuit [8, 12]. Integer division, due to its iterative nature, benefits much less when implemented directly in hardware and is difficult to pipeline. By using a reciprocal approximation, integer division can be synthesized from a multiply followed by a shift. Without carefully selecting the reciprocal, however, the quotient obtained often suffers from offby -one errors, requiring a correction step. This paper describes the design decisions we made when architecting integer division for a new 64 bit machine. The result is a fast and economical scheme for computing both unsigned and signed integer quotients that guarantees an exact answer without any correction. The reciprocal comput...
Citations
| 342 | The Tera computer system – Alverson, Callahan, et al. - 1990 |
| 55 | Introduction to Arithmetic for Digital Systems Designers – Waser, Flynn - 1982 |
| 43 | for Binary Floating Point Arithmetic – Standard - 1985 |
| 22 | Computation of elementary functions on the – Markstein - 1990 |
| 20 | Integer multiplication and division on the hp precision architecture – Magenheimer, Peters, et al. - 1988 |
| 9 | Second-Generation RISC Floating Point with Multiply-Add Fused – Hokenek, Montoye, et al. - 1990 |
| 8 | An Accurate, High Speed Implementation of Division by Reciprocal Approximation – Fowler, Smith - 1989 |
| 4 | A Fast Division Technique for Constant Divisors – Artzy, Hinds, et al. - 1976 |
| 3 | Fast Constant Division Routines – Li - 1985 |
| 1 | An Analysis of 8086 Instruction Set Usage in MS DOS Programs – Adams, Zimmerman - 1989 |

