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) 구현 등에 폭넓게 사용될 수 있다.