DOI QR코드

DOI QR Code

Double Precision Integer Divider Using Multiplier

곱셈기를 사용한 배정도 정수 나눗셈기

  • 송홍복 (동의대학교 전자공학과) ;
  • 조경연 (부경대학교 IT융합응용공학과)
  • Received : 2009.10.16
  • Accepted : 2010.01.15
  • Published : 2010.03.31

Abstract

This paper suggested an algorithm that uses a multiplier, 'w bit $\times$ w bit = 2w bit', to process $\frac{N}{D}$ integer division of 2w bit integer N and w bit integer D. An algorithm suggested of the research, 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 the dividend N is segmented in small word more than 'w-3' bit, and partial quotient is calculated by multiplying over reciprocal number in each segmented word, and quotient of double precision integer division is evaluated with sum of partial quotient. The algorithm suggested in this paper doesn't require additional correction, 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. 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.

본 논문에서는 'w bit $\times$ w bit = 2w bit' 곱셈기를 사용하여 2w 비트 정수 N과 w 비트 정수 D의 $\frac{N}{D}$용 나눗셈을 수행하는 알고리즘을 제안한다. 본 연구에서 제안하는 알고리즘은 제수 D가 '$D=0.d{\times}2^L$, 0.5 < 0.d < 1.0'일 때, '$0.d{\times}1.g=1+e$, e < $2^{-w}$'가 되는 '$\frac{1}{D}$'의 근사 값 '$1.g{\times}2^{-L}$'을 가칭 상역수로 정의하고, 피제수 N을 'w-3' 비트 보다 작은 워드로 분할하고, 각 분할된 워드에 상역수를 곱해서 부분 몫을 계산하고, 부분 몫을 합산하여 배정도 정수 나눗셈의 몫을 구한다. 제안한 알고리즘은 정확한 몫을 산출하기 때문에 추가적인 보정이 요구되지 않는다. 본 논문에서 제안하는 알고리즘은 곱셈기만을 사용하므로 마이크로프로세서를 구현할 때 나눗셈을 위한 추가적인 하드웨어가 요구되지 않는다. 그리고 기존 알고리즘인 SRT 방식에 비해 동작속도가 빠르다. 따라서 본 논문의 연구 결과는 마이크로프로세서 및 하드웨어 크기에 제한적인 SOC(System on Chip) 구현 등에 폭넓게 사용될 수 있다.

Keywords

References

  1. 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.
  2. D. L. Harris, S. F. Oberman, and M. A. Horowitz, "SRT Division Architectures and Implementations", Proc. 13th IEEE Symp. Computer Arithmetic, Jul. 1997.
  3. Kadowaki Shunsuke, et al, "Integer Divider Using Absolute Value Computation of Redundant Binary Numbers," IEIC Technical Report, Vol. 104, No. 78, pp. 13-18, 2004.
  4. Chua-Chin Wang, et al, "Design of a cycle-efficinet 64-b/32-b integer divisor using a table-sharing algorithm," IEEE Transactions on VLSU systems, Vol. 11, Issue 4, pp. 733-740, Aug. 2003.
  5. S. Y. R. Li, "Fast Constant Division Routines, " IEEE Transactions on Computers, Vol. C34-9, pp. 866-869, Sep.1985. https://doi.org/10.1109/TC.1985.1676646
  6. M. Flynn, "On Division by Functional Iteration", IEEE Transactions on Computers, Vol. C-19, No.8, pp. 702-706, Aug. 1970. https://doi.org/10.1109/T-C.1970.223019
  7. R. Goldschmidt, Application of division by convergence, master's thesis, MIT, Jun. 1964 .
  8. 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.
  9. 송홍복, 박창수, 조경연, "개선된 역수 알고리즘을 사용한 정수 나눗셈기", 한국해양정보통신학회논문지, Vol 12, No.7, pp. 1218-1226, Jul. 2008.
  10. D. DasSarma and D. Matula, "Measuring and Accuracy of ROM Reciprocal Tables", IEEE Transactions of Computer, Vol. 43, No.8, pp. 930-932, Aug .. 1994.
  11. S. Oberman, "Floating Point Division and Square Root Algorithms and Implementation in the AMD-K7 Microprocessors", Proc. 14th lEEE Symp. Computer Arithmetic, pp. 106-115, Apr. 1999.
  12. Matthew Frank, "DESIGN OF AN INTEGER RECIPROCAL ALGORTIHM", www.cag.lcs.mit. edu/raw/memo/12/div.html, Aug. 1999.
  13. Robert Alverson, "Integer Division Using Reciprocals," Proceedings of the Tenth Symposium on Computer Arithmetic, Grenoble, France, pp 186-190, Jun. 1991.