Browse > Article
http://dx.doi.org/10.6109/jkiice.2008.12.7.1218

The Integer Number Divider Using Improved Reciprocal Algorithm  

Song, Hong-Bok (동의대학교 전자공학과)
Park, Chang-Soo (부경대학교 누리 지능형 지구환경재해 정보관리 전문인력 양성사업단)
Cho, Gyeong-Yeon (부경대학교 공과대학 전자컴퓨터정보통신공학부)
Abstract
With the development of semiconductor integrated technology and with the increasing use of multimedia functions in computer, more functions have been implemented as hardware. Nowadays, most microprocessors beyond 32 bits generally implement an integer multiplier as hardware. However, as for a divider, only specific microprocessor implements traditional SRT algorithm as hardware due to complexity of implementation and slow speed. This paper suggested an algorithm that uses a multiplier, 'w bit $\times$ w bit = 2w bit', to process $\frac{N}{D}$ integer division. That is, the reciprocal number D is first calculated, and then multiply dividend N to process integer division. In this paper, when the divisor D is '$D=0.d{\times}2^L$, 0.5 < 0.d < 1.0', approximate value of ' $\frac{1}{D}$', '$1.g{\times}2^{-L}$', which satisfies ' $0.d{\times}1.g=1+e$, $e<2^{-w}$', is defined as over reciprocal number and then an algorithm for over reciprocal number is suggested. This algorithm multiplies over reciprocal number '$01.g{\times}2^{-L}$' by dividend N to process $\frac{N}{D}$ integer division. The algorithm suggested in this paper doesn't require additional revision, because it can calculate correct reciprocal number. In addition, this algorithm uses only multiplier, so additional hardware for division is not required to implement microprocessor. Also, it shows faster speed than the conventional SRT algorithm and performs operation by word unit, accordingly it is more suitable to make compiler than the existing division algorithm. In conclusion, results from this study could be used widely for implementation SOC(System on Chip) and etc. which has been restricted to microprocessor and size of the hardware.
Keywords
integer divider; reciprocal algorithm;
Citations & Related Records
연도 인용수 순위
  • Reference
1 D. L. Fowler and J. E. Smith, "An Accurate, High Speed Implementation of Division by Reciprocal Approximation", Proc. 9th IEEE symp. Computer Arithmetic, IEEE, pp. 60-67, Sep. 1989
2 S. Oberman, "Floating Point Division and Square Root Algorithms and Implementation in the AMD-K7 Microprocessors", Proc. 14th IEEE Symp. Computer Arithmetic, pp. 106-115, Apr. 1999
3 Thomas L. Adams and Richard E. Zimmerman, "An Analysis of 8086 Instruction Set Usage in MS-DOS program," Proceeding of the Third International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 152-160, Apr. 1989
4 E. Artzy, J. A. Hinds, and H. J. Saal, "A Fast Division Technique for Constant Divisors," Communications of the ACM, Vol. 19-2, pp. 98-101, Feb. 1976
5 R. Goldschmidt, Application of division by convergence, master's thesis, MIT, Jun. 1964
6 Daniel J. Magenheimer, Liz Peters, Karl Pettis, and Dan Zuras, "Integer Multiplication and Division on the HP Precision Architecture," Proceedings of the Second International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 90-99, Apr. 1987
7 D. L. Harris, S. F. Oberman, and M. A. Horowitz, "SRT Division Architectures and Implementations", Proc. 13th IEEE Symp. Computer Arithmetic, Jul. 1997
8 Matthew Frank, "DESIGN OF AN INTEGER RECIPROCAL ALGORTIHM", www.cag.lcs.mit. edu/raw/memo/12/div.html, Aug. 1999
9 D. DasSarma and D. Matula, "Measuring and Accuracy of ROM Reciprocal Tables", IEEE Transactions of Computer, Vol. 43, No. 8, pp. 932-930, Aug., 1994   DOI   ScienceOn
10 Robert Alverson, "Integer Division Using Reciprocals," Proceedings of the Tenth Symposium on Computer Arithmetic, Grenoble, France, pp 186-190, Jun. 1991
11 M. Flynn, "On Division by Functional Iteration", IEEE Transactions on Computers, Vol. C-19, No.8, pp. 702-706, Aug. 1970   DOI   ScienceOn
12 S. Y. R. Li, "Fast Constant Division Routines, " IEEE Transactions on Computers, Vol. C34-9, pp. 866-869, Sep. 1985