DocumentCode
1385585
Title
Division algorithms and implementations
Author
Oberman, Stuart F. ; Flynn, Michael J.
Author_Institution
Comput. Syst. Lab., Stanford Univ., CA, USA
Volume
46
Issue
8
fYear
1997
fDate
8/1/1997 12:00:00 AM
Firstpage
833
Lastpage
854
Abstract
Many algorithms have been developed for implementing division in hardware. These algorithms differ in many aspects, including quotient convergence rate, fundamental hardware primitives, and mathematical formulations. The paper presents a taxonomy of division algorithms which classifies the algorithms based upon their hardware implementations and impact on system design. Division algorithms can be divided into five classes: digit recurrence, functional iteration, very high radix, table look-up, and variable latency. Many practical division algorithms are hybrids of several of these classes. These algorithms are explained and compared. It is found that, for low-cost implementations where chip area must be minimized, digit recurrence algorithms are suitable. An implementation of division by functional iteration can provide the lowest latency for typical multiplier latencies. Variable latency algorithms show promise for simultaneously minimizing average latency while also minimizing area
Keywords
algorithm theory; floating point arithmetic; iterative methods; table lookup; average latency minimization; digit recurrence algorithms; division algorithms; functional iteration algorithms; fundamental hardware primitives; hardware; low-cost implementations; mathematical formulations; minimized chip area; multiplier latencies; quotient convergence rate; system design; table look-up; variable latency algorithms; very high radix; Algorithm design and analysis; Approximation algorithms; Computational complexity; Computer applications; Convergence; Delay; Digital arithmetic; Floating-point arithmetic; Hardware; Taxonomy;
fLanguage
English
Journal_Title
Computers, IEEE Transactions on
Publisher
ieee
ISSN
0018-9340
Type
jour
DOI
10.1109/12.609274
Filename
609274
Link To Document