KR100407562B1 - 제산 및 제곱근 계산 장치 및 방법 - Google Patents

제산 및 제곱근 계산 장치 및 방법 Download PDF

Info

Publication number
KR100407562B1
KR100407562B1 KR10-2001-0072685A KR20010072685A KR100407562B1 KR 100407562 B1 KR100407562 B1 KR 100407562B1 KR 20010072685 A KR20010072685 A KR 20010072685A KR 100407562 B1 KR100407562 B1 KR 100407562B1
Authority
KR
South Korea
Prior art keywords
digit
root
remainder
correction term
square root
Prior art date
Application number
KR10-2001-0072685A
Other languages
English (en)
Other versions
KR20030042151A (ko
Inventor
이동규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2001-0072685A priority Critical patent/KR100407562B1/ko
Priority to TW091114926A priority patent/TWI227837B/zh
Priority to US10/262,449 priority patent/US7185040B2/en
Priority to GB0227133A priority patent/GB2386986B/en
Priority to JP2002338440A priority patent/JP3941868B2/ja
Publication of KR20030042151A publication Critical patent/KR20030042151A/ko
Application granted granted Critical
Publication of KR100407562B1 publication Critical patent/KR100407562B1/ko
Priority to US11/654,255 priority patent/US7809784B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • G06F7/5375Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5526Roots or inverse roots of single operands
    • G06F2207/5528Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

Abstract

비복원 래딕스-2 제산 및 제곱근연산 알고리즘들이 제공된다. 본 발명의 알고리즘들은 종래의 래딕스-2 SRT 알고리즘들에서와 동일한 몫/루트 디지트 세트 {-1, 0, +1}을 사용하고, 몫/제곱근 예측 테이블(QPT/RPT) 로직을 구비한다. 몫/제곱근 예측 테이블 로직에 의해서, i번째 몫/제곱근 디지트가 결정되는데, 상기 i번째 몫/제곱근 디지트는 (i-2)번째 반복연산의 부분 나머지(Partial Remainder)에 근거하여 결정된다. 본 발명의 알고리즘들은 i번째 부분 나머지의 계산에 필요한 (i-1)번째 보정항(Correction Term)을 (i-2)번째 보정항과 동시에 생성하고, (i-1)번째 부분 나머지를 구하기 위한 반복연산을 생략한다.

Description

제산 및 제곱근 계산 장치 및 방법{DIVISION AND SQUARE ROOT CACULATION APPARATUS AND METHOD}
본 발명은 데이터 처리 분야에 관한 것으로, 더 구체적으로는 제산과 제곱근 연산을 고속으로 실행하는 장치 및 방법에 관한 것이다.
최근에는 그래픽 렌더링(Graphic Rendering), CAD(Computer Aided Design), DSP(Digital Signal Processing) 등과 같은 복잡한 계산을 요구하는 컴퓨터 응용 환경들이 점차 증가하고 있는 추세이다. 따라서 대부분의 고성능 마이크로 프로세서는 IEEE754-1985 플로팅 포인트 표준안(Floating Point Standard)에 의거한 부동소수점 가산(Addition), 승산(Multiplication), 제산(Division), 제곱근연산(Square Rooting) 등을 지원하고 있다.
일반적인 데이터 처리 시스템에서, 제산 및 제곱근연산 실행의 비율은 가산과 승산에 비해 상대적으로 아주 낮다. 하지만, 가산과 승산은 3 싸이클의 레이턴시(Latency)를 갖는 반면에 제산과 제곱근연산은 20 싸이클 이상의 레이턴시를 갖기 때문에, 레이턴시 측면에서, 제산과 제곱근연산은 시스템 전체의 성능에 상당히 큰 영향을 준다.
가장 잘 알려진 제산 알고리즘들 가운데 하나가 SRT 제산 알고리즘이다. SRT는 Sweeney, Robertson, 그리고 Tocher의 두문자어(Acronym)이며, 그 세 사람은 비슷한 시기에 그와 같은 특성의 알고리즘들을 독립적으로 각각 제안하였다. SRT 제산 알고리즘은, 몫 디지트(Quotient Digit)로서 가산/감산의 수행이 불필요한 0을 허용함으로써, 비복원 제산(Nonrestoring Division)의 속도를 향상시킨다. SRT 제산 알고리즘의 원리는 제곱근연산에도 적용될 수 있다. SRT 알고리즘은, 예를 들어, Behrooz Parhami, "Computer Arithmetic Algorithms and Hardware Design", Oxford University Press 2000에 상세히 기재되어 있다.
전통적인 래딕스-2(Radix-2) SRT 알고리즘은 하드웨어로 구현하는 것이 용이하지만 몫(Quotient)/제곱근(Square Root)을 구하기 위해서는 많은 수의 반복 연산들(Iterations)을 수행하는 것이 필요하다. 반면에, 래딕스-4 SRT 알고리즘은 래딕스-2 SRT 알고리즘에 비해 반복 연산들이 1/2로 줄어들지만, 래딕스-2 SRT 알고리즘에 비해 하드웨어로 구현하는 것이 복잡하고 각 반복 수행의 지연시간이 늘어난다. 예컨대, 미국 특허 제5258944호에는 래딕스-4 SRT 알고리즘을 이용하고, 각 반복연산 스텝에서 몫을 선택하기 위해 룩업 테이블(Lookup Table)을 참조하는 기술이 개시되어 있다.
본 발명의 목적은 래딕스-2 알고리즘을 사용하여 제산 및 제곱근연산을 고속으로 수행할 수 있는 장치 및 방법을 제공하는 것이다.
본 발명에 따르면, 신규한 비복원 래딕스-2 제산 및/또는 제곱근연산 알고리즘들이 제공된다. 본 발명의 알고리즘들은 일종의 변형된 래딕스-2 SRT 알고리즘들이라 할 수 있다. 본 발명의 알고리즘들에서는 종래의 래딕스-2 SRT 알고리즘들에서와 동일한 몫/루트 디지트 세트(Quotient/Root Digit Set) {-1, 0, +1}이 사용되며, 특히, 신규한 몫/제곱근 예측 테이블(Quotient/Root Prediction Table) 로직이 사용된다. 몫/제곱근 예측 테이블 로직에 의해서, i번째 몫/제곱근 디지트가 결정되는데, 상기 i번째 몫/제곱근 디지트는 (i-2)번째 부분 나머지(PartialRemainder)로부터 구해진 (i-1)번째 몫/제곱근 디지트에 근거하여 결정된다. (i-1)번째 부분 나머지의 계산에 필요한 (i-1)번째 보정항(Correction Term)이 (i-2)번째 보정항과 동시에 생성된다. 이는 (i-1)번째 부분 나머지를 구하기 위한 반복연산의 생략을 가능하게 한다.
본 발명의 래딕스-2 알고리즘들에 따르면, 종래의 래딕스-2 SRT 알고리즘들에 비해 반복연산시간이 1/2로 줄어들지만, 종래의 래딕스-4 SRT 알고리즘들과는 달리, 각 반복연산의 지연시간이 늘어 나지 않는다.
도 1은 본 발명에 따른 제산 및/또는 제곱근 계산 장치의 기능적 회로 블럭도이다.
*도면의 주요부분에 대한 부호의 설명*
10: 제어기
12: 제수 레지스터
14, 20, 46: 몫/루트 레지스터
16, 48: 나머지 레지스터
18: 몫/루트 디지트 선택기
22, 24, 36, 44: 멀티플렉서
26, 28, 30: 보정항 생성기
32, 34: 감산기
38: 캐리 전파 검출기
40, 42: 몫/루트 디지트 예측 테이블 로직
다음에는 첨부된 도면 1을 참조하여 본 발명의 바람직한 실시예들에 대해 상세히 설명한다.
I. 몫 예측 테이블(Quotient Prediction Table: QPT)을 사용하는 래딕스-2 제산 알고리즘
본 발명에 따른 부동소수점 이진 제산 알고리즘(Floating Point Binary Division Alogrithm)의 표기법(Notation)은 다음과 같다.
z피제수(Dividend) z0.z-1z-2... z-2n
d제수(Divisor) 0.d-1d-2... d-n
q몫(Quotient) 1.q-1q-2... q-n
x나머지(Remainder) x0.x-1x-2... x-2n
나머지x의 표현(Expression)z-(d*q)은 기본적인 제산 방정식z= (d*q) +x에서 유도된 것이다.
제산 알고리즘은 부분 나머지(Partial Remainder: PR)를 사용하여 몫 디지트들을 순차적으로 구한다.
래딕스-2 제산의 순환식(Recurrence Relation)은 다음의 식 1으로 표시된다.
x (i)= 2x(i-1) -id
여기서,x (i)는 i번째 부분 나머지이고,x (i-1)는 (i-1)번째 부분 나머지이고, q-i는 i번째 몫 디지트,d는 제수, q-i*d는 i번째 보정항이다. 또, 식 1에서, 초기 부분 나머지x (0)=z, q-i∈ {-1, 0, +1}이다.
위의 식 1은 다음과 같이 (i-2)번째 부분 나머지x (i-2)로 표시될 수 있다.
x (i)= 4x(i-2) -(i-1)-id
식 2에 의하면, i번째 부분 나머지x (i)는 (i-2)번째 부분 나머지x (i-2), (i-1)번째 몫 디지트 q-(i-1), i번째 몫 디지트 q-i, 그리고 제수d로부터 구해진다. 결국, 식 2는, (i-1)번째 몫 디지트 q-(i-1)에 종속하는 i번째 몫 디지트 q-i가 결정되면, i번째 몫 디지트 q-i의 결정에 필요한 (i-1)번째 부분 나머지x (i-1)을 구하기 위한 (i-1)번째 반복연산의 생략이 가능하다는 것을 보여주고 있다.
본 발명의 래딕스-2 제산 알고리즘은 몫 디지트 세트 {-1,0, +1}을 사용한다. 본 발명의 래딕스-2 제산 알고리즘에 따르면, i번째 부분 나머지x (i)를 구하는데 필요로 하는 i번째 몫 디지트 q-i는 (i-1)번째 부분 나머지x (i-1)의 레프트-쉬프트된(Left-shifted) 값 2x (i-1)에 의해서 아래와 같이 결정된다.
만일 2x (i-1)< -1/2 이라면 q-i= -1
만일 -1/2 ≤ 2x (i-1)< 1/2 이라면 q-i= 0
만일 2x (i-1)≥ 1/2 이라면 q-i= +1
본 발명에 의하면, (i-1)번째 몫 디지트 q-(i-1)이 결정되고, 결정된 q-(i-1)에근거하여, (i-1)번째 부분 나머지x (i-1)을 구하기 위한 반복연산의 수행없이, i번째 몫 디지트 q-i가 정확하게 예측된다. i번째 몫 디지트 q-i의 예측에는 몫 예측 테이블(Quotient Prediction Table: QPT)이 사용된다. 또, (i-1)번째의 부분 나머지x (i-1)의 계산에 필요한 (i-1)번째 반복연산의 보정항이 생성되는데, i번째 몫 디지트 q-i= +1이 될 경우의 (i-1)번째 보정항과 q-i= -1이 될 경우의 (i-1)번째 보정항이 (i-2)번째 보정항의 생성과 동시에 생성된다. 이렇게 구해진 (i-2)번째 보정항, (i-1) 번째 몫 디지트 q-(i-1), i번째 몫 디지트 q-i= +1이 될 경우의 (i-1)번째 보정항, 그리고 q-i= -1이 될 경우의 (i-1)번째 보정항에 의해서 2개의 조건적 부분 나머지들(Conditional Partial Remainder) x1 및 x2가 계산되고, 이 조건적 부분 나머지들 x1 및 x2 중 하나가 예측된 i번째 몫 디지트 q-i의 값에 따라서 최종적으로x (i)로서 선택된다.
다음에는 본 발명에 따른 i번째 몫 디지트 q-i의 예측에 대해 상세히 설명한다.
몫 디지트들의 예측을 위해서, 여기서는 제수d= 0.1d-2d-3d-4... 이 고려된다.
i'th Quotient Digit q -i Prediction Case 1:d-2= 1
(1) 만일x (i-2)< 1/8 이면 q-(i-1)= 0 이다. 따라서, -1/2 < 2x (i-1)< 1/4 이 되므로 q-i= 0 이 된다.
(2) 만일 1/8 ≤x (i-2)< 1/4 이면 q-(i-1)= 0 이다. 따라서, 2x (i-1)≥ 1/2 이 되므로 q-i= +1 이 된다.
(3) 만일 1/4 ≤x (i-2)< 3/8 이면 q-(i-1)= +1 이다. 이때, 2x (i-1)< -1/2 일 경우 q-i= -1 이 되고, -1/2 <x (i-1)< 1/4 일 경우 q-i= 0 이 된다.
(4) 만일 3/8 ≤x (i-2)< 1/2 이면, q-(i-1)= +1 이 된다. 따라서, -1/2 ≤ 2x (i-1)< 1/2 이 되므로 q-i= 0 이 된다.
(5) 만일 1/2 ≤x (i-2)< 5/8 이면, q-(i-1)= -1 이 된다. 따라서, -1/2 ≤ 2x (i-1)< 1/2 이 되므로 q-i= 0 이 된다.
(6) 만일 5/8 ≤x (i-2)< 3/4 이면, q-(i-1)= -1 이 된다. 이때, -1/2 ≤2x (i-1)< 1/2 일 경우 q-i= 0 이 되고, 2x (i-1)< -1/2 일 경우 q-i= -1 이 된다.
(7) 만일 3/4 ≤x (i-2)< 7/8 라면 q-(i-1)= 0 이 된다. 따라서, 2x (i-1)< -1/2 이 되므로 q-i= -1 이 된다.
(8) 만일 7/8 ≤x (i-2)< 1 라면 q-(i-1)= 0 이 되고, 항상 -1/2 ≤ 2x (i-1)< 1/2이 되기 때문에 q-i= 0 이 된다.
i'th Quotient Digit q -i Prediction Case 2:d-2= 0
d-2= 1일 경우와 마찬가지로, 각 동일한 조건들 하에서 q-(i-1)를 구하고, 이를 토대로 q-i를 예측할 수가 있다는 것을 이 기술분야에 통상적인 지식을 가진 자는 잘 이해할 수 있을 것이다.
위의 결과들에 따라서 i번째 몫 디지트 q-i를 예측하기 위한 몫 디지트 예측 테이블(QPT)을 만드는 것이 가능하다. 다음의 표 1은 제수d= 0.11d-3d-4... 인 경우(q-iPrediction Case 1: d-2= 1)에 예측된 i번째 몫 디지트 q-i를 나타내고, 표 2는 제수d= 0.10d-3d-4... 인 경우(q-iPrediction Case 2: d-2= 0)에 예측된 i번째몫 디지트 q-i를 나타내고 있다.
q -i Prediction Case 1:d-2= 1
(i-2)th Partial Remainder (i-1)th Quotient Digit (i-1)th PR(Borrow=1) i'thQuotient Digit (i-1)th PR(Borrow=0) i'thQuotient Digit
0.000 0 0.00 0 0.00 0
0.001 0 0.01 +1 0.01 +1
0.010 +1 1.10 -1 1.11 0
0.011 +1 0.11 0 0.00 0
0.100 -1 0.00 0 1.11 0
0.101 -1 0.01 +1 00.0 0
0.110 0 0.10 -1 00.1 -1
0.111 0 0.11 0 01.0 0
표 1에서, 예컨대, (i-2)번째 부분 나머지x (i-2)= 0.010x-4x-5...인 경우, 제수d= 0.11d-3d-4... 이기 때문에 (i-1)번째 몫 디지트 q-(i-1)은 '+1'이 된다. 만일 (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우(Borrow)가 발생한다면(If Borrow = 1) i번째 몫 디지트 q-i는 '-1'이 될 것이고, 만일 (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생하지 않는다면(If Borrow = 0) i번째 몫 디지트 q-i는 '0'이 될 것이다.
q -i Prediction Case 2:d-2= 0
(i-2)th Partial Remainder (i-1)th Quotient Digit (i-1)th PR(Borrow=1) i'th Quotient Digit (i-1)th PR(Borrow=0) (i-1)th Quotient Digit
0.000 0 0.00 0 0.00 0
0.001 0 0.01 +1 0.01 +1
0.010 +1 1.10 +1 1.11 0
0.011 +1 1.11 -1 0.00 0
0.100 -1 0.00 0 1.11 -1
0.101 -1 0.01 0 00.0 0
0.110 0 0.10 -1 00.1 -1
0.111 0 0.11 0 01.0 0
표 2에서, 예컨대, (i-2)번째 부분 나머지x (i-2)= 0.110x-4x-5...인 경우, 제수d= 0.10d-3d-4... 이기 때문에 (i-1)번째 몫 디지트 q-(i-1)는 '0'이 된다. 만일 (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생한다면(If Borrow = 1) i번째 몫 디지트 q-i는 '-1'이 될 것이고, 만일 (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생하지 않는다면(If Borrow = 0) i번째 몫 디지트 q-i는 '0'이 될 것이다.
다음의 표 3 및 4는, 피제수z= 0.01000101 이고 제수d= 0.1010 인 경우, 기존의 래딕스-2 SRT 제산 알고리즘에 의해 얻어지는 제산 결과와 본 발명의 래딕스-2 제산 알고리즘에 얻어지는 제산 결과를 각각 보여주고 있다.
종래의 비복원 래딕스-2 SRT 제산 알고리즘
z d 0.010001010.1010
x (0)2x (0)+(-d) 0.010001010.10001011.0110 ≥ 1/2, so set q-1= +1
x (1)2x (1) 1.11101011.110101 [-1/2,1/2), so set q-2= 0
x (2) = 2x (1)2x (2)+d 1.1101011.101010.1010 〈 -1/2, so set q-3= -1
x (3)2x (3)+(-d) 0.010010.10011.0110 ≥ 1/2, so set q-4= +1
x (4)= 2x (3)+d 1.11110.1010 Negative, so add to correct
x (4) x q q 0.10010.000010010.10-110.0110 Uncorrected BSD quotientConvert and subtractulp
본 발명의 비복원 래딕스-2 제산 알고리즘
z d 0.010001010.1010
x (0)4x (0)-(2d) 0.010001011.0001011.010 ≥ 1/2, so set q-1= +1, so set q-2= 0
x (1)4x (1)+d 1.1101011.01010.1010 < -1/2, so set q-3= -1, so set q-4= +1
x (2)+d 1.11110.1010 Negative, so add to correct
x (2) x q q 0.10010.000010010.10-110.0110 Uncorrected BSD quotientConvert and subtractulp
표 3 및 4로부터, 기존의 래딕스-2 SRT 제산 알고리즘의 연산결과(표 3)와 본 발명의 래딕스-2 제산 알고리즘의 연산결과(표 4)가 동일함을 알 수 있다.
본 발명의 래딕스-2 제산 알고리즘에 따르면, 표 4에 나타나 있는 바와 같이, 첫번째 반복연산에서 초기 부분 나머지x (0)으로부터 첫번째 몫 디지트 q-1이 계산되고, 이어 상기 계산된 q-1에 근거하여 몫 예측 테이블(QPT)이 두번째 몫 디지트 q-2를 예측한다(종래의 래딕스-2 SRT 제산 알고리즘에 의하면, q-2는 두번째 반복연산에서 구해짐). 그리고, 몫 디지트들 q-1및 q-2에 의해 첫번째 부분 나머지x (1)이 계산된다. 두번째 반복연산에서,x (1)로부터 세번째 몫 디지트 q-3이 계산되고, 이 q-3에 근거하여 몫 예측 테이블(QPT)이 네번째 몫 디지트 q-4를 예측한다(종래의 래딕스-2 SRT 제산 알고리즘에 의하면, q-4는 네번째 반복연산에서 구해짐). 그리고, 디지트들 q-3및 q-4에 의해 두번째 부분 나머지x (2)가 계산된다. 따라서, 본 발명의 래딕스-2 제산 알고리즘에 의하면, 종래의 래딕스-2 SRT 제산 알고리즘의 첫번째 부분 나머지x (1)과 세번째 부분 나머지x (3)을 구하기 위한 반복연산들을 생략할 수 있기 때문에, 본 발명의 알고리즘의 레이턴시는 종래의 래딕스-2 SRT 알고리즘에 비해 1/2로 줄어든다. 더욱이, 본 발명의 래딕스-2 제산 알고리즘의 각 반복연산의 수행시간은 종래의 래딕스-2 SRT 제산 알고리즘의 그것과 동일하기 때문에 본 발명의 래딕스-2 제산 알고리즘은 종래의 래딕스-2 SRT 제산 알고리즘에 비해 더 빠른 속도로 제산을 수행할 수 있다.
II. 제곱근 예측 테이블(Root Prediction Table: RPT)을 사용하는 래딕스-2 제곱근연산 알고리즘
본 발명에 따른 부동소수점 이진 제곱근연산 알고리즘(Floating Point Binary Square-rooting Alogrithm)의 표기법은 다음과 같다.
z피개수(Radicand) z1z0..z-1z-2...z-n(1 ≤z< 4)
q제곱근(Square Root) 1.q-1q-2...q-n(1 ≤q< 2)
x나머지(Remainder) x1x0.x-1x-2...x-n(0 ≤x< 4)
제곱근연산의 기본 방정식은z=q 2+x이다. SRT 제곱근연산 알고리즘은 부분 나머지를 가지고 루트 디지트들(Root Digits) q-1q-2...q-n을 순차적으로 구하는 것이다.
래딕스-2 제곱근연산의 순환식은 다음과 같다.
x (i)= 2x(i-1)q(i-1)-i-i-i
여기서,x (i)x (i-1)는 각각 i번째 및 (i-1)번째 부분 나머지들을 나타내고, q-i는 i번째 루트 디지트를 나타내고,q (i-1)은 (i-1)번째 부분 제곱근(Partial Square Root)을 나타낸다. 또, 식 3에서, 초기 부분 나머지x (0)=z- 1 이고, q-i∈ {-1, 0, +1} 이다.
식 3은 다음과 같이 (i-2)번째 반복연산의 순환식으로 바꿀 수 있다.
x (i)= 4x(i-2)q(i-2)-(i-1)-i+1-(i-1) q(i-1)-i-i-i
여기서,x (i-2)는 (i-2)번째 부분 나머지이고,q (i-2)는 (i-2)번째 부분 제곱근, 그리고 q-(i-1)는 (i-1)번째 루트 디지트이다.
식 4에서, 항 2q (i-2)+ q-(i-1)2-i+1C (i-2)로 대치하고, 항 2q (i-1)+ q-i2-iC (i-1)로 대치하면, 식 4는 다음의 식으로 간략화될 수 있다.
x (i)= 4x(i-1)C(i-2)-(i-1) C(i-1)-i
여기서,C (i-2)는 (i-2)번째 보정항이고,C (i-1)은 i번째 반복연산의 보정항이다.
제곱근연산도, 제산과 마찬가지로, 각 반복연산에서 부분 나머지에 의해서 루트 디지트를 선택하고, 보정항을 생성하여 다음의 부분 나머지를 구한다.
본 발명의 래딕스-2 제곱근연산 알고리즘도, 본 발명의 래딕스-2 제산 알고리즘과 같이, 루트 디지트 세트로서 {-1, 0, +1}을 사용한다. 본 발명의 래딕스-2 제곱근연산 알고리즘에서, i번째 루트 디지트 q-i는 (i-1)번째 부분 나머지x (i-1)에 의해 아래와 같이 결정된다.
x (i-1)< -1/2 이라면 q-i= -1
-1/2 ≤x (i-1)< 1/2 이라면 q-i= 0
x (i-1)≥ 1/2 이라면 q-i= +1
본 발명의 래딕스-2 제곱근연산 알고리즘은 (i-2)번째 부분 나머지x (i-2)의 4 비트에 근거하여 i번째 루트 디지트 q-i를 예측한다. 본 발명의 래딕스-2 제곱근연산 알고리즘은, (i-2)번째 보정항C (i-2)의 생성과 동시에, i번째 부분 나머지의 계산에 필요한 (i-1)번째 보정항C (i-1)을 생성한다. 특히, (i-1)번째 보정항C (i-1)의 생성에 있어서, i번째 루트 디지트 q-i= +1이 될 경우의 보정항과 q-i= -1이 될 경우의 보정항이 미리 동시에 생성된다. 이렇게 구해진 (i-1)번째 루트 디지트 q-(i-1), i번째 루트 디지트 q-i, (i-2)번째 보정항C (i-2), q-i= +1이 될 경우의 i번째 보정항과 q-i= -1이 될 경우의 i번째 보정항에 의해서 2개의 조건적 부분 나머지들 x1 및 x2가 계산되고, 이 조건적 부분 나머지들 x1 및 x2 중 하나가 최종적으로 결정된 i번째 루트 디지트 q-i의 값에 따라서x (i)로서 선택된다.
위와 같이, 본 발명의 래딕스-2 제곱근연산 알고리즘은 (i-1)번째 부분 나머지x (i-1)를 구하기 위한 반복연산의 생략을 가능하게 한다. 따라서, 본 발명의 래딕스-2 제곱근연산 알고리즘에 따르면, 종래의 래딕스-2 SRT 제곱근연산 알고리즘에 비해 반복 연산수행 시간이 1/2로 줄어들지만, 종래의 래딕스-4 SRT 제곱근연산 알고리즘과는 다르게 각 반복연산의 지연 시간이 늘어 나지 않는다.
본 발명에 따른 루트 디지트들의 예측은 아래의 조건에 따라서 수행된다.
피개수z= z2z1z0.z-1z-2... 이고, 부분 나머지x (i)= x2x1x0.x-1x-2... 이라하자.
i'th Root Digit q -i Prediction Case 1:z-1= 0 and x2= 0
z-1= 0 그리고 x2= 0 인 경우에 q-(i-1)은 항상 +1 이 된다. 이와 같은 초기 조건 하에서,
(1) 만일 0 ≤x (i-2)< 1 이면x (i-1)< -1/2 이다. 따라서, q-i= -1 이 된다.
(2) 만일 1 ≤x (i-2)< 5/4 그리고x (i-1)< -1/2 일 경우는 q-i= -1 이 되고, 만일 1 ≤x (i-2)< 5/4 그리고 -1/2 ≤x (i-1)< 1/2 일 경우는 q-i= 0 이 된다.
(3) 만일 5/4 ≤x (i-2)< 3/2 그리고 -1/2 ≤x (i-1)< 1/2 일 경우는 q-i= 0 이 되고, 만일 5/4 ≤x (i-2)< 3/2 그리고x (i-1)≥ 1/2 일 경우는 q-i= +1 이 된다.
(4) 만일 3/2 ≤x (i-2)< 3 이면x (i-1)≥ 1/2 이 된다. 따라서, q-i= +1 이 된다.
(5) 만일 3 ≤x (i-2)< 13/4 그리고x (i-1)< -1/2 일 경우는 q-i= -1 이 되고, 만일 3 ≤x (i-2)< 13/4 그리고x (i-1)≥ 1/2 일 경우는 q-i= +1 이 된다.
(6) 만일x (i-2)≥ 13/4 이면x (i-1)< -1/2 이 된다. 따라서, q-i= -1 이 된다.
i'th Root Digit q -i Prediction Case 2:z-1= 0 and x2= 1
z-1= 0 그리고 x2= 1 인 경우에 q-(i-1)은 항상 -1 이 된다. 이와 같은 초기조건 하에서, 앞의 경우(q-iPrediction Case 1: z-1= 0 and x2= 0)에서와 동일한 조건들 하에서 루트 디지트들을 구할 수가 있다는 것을 이 기술분야에 통상적인 지식을 가진 자는 잘 이해할 수 있을 것이다.
위의 결과들에 따라서 i번째 루트 디지트 q-i를 예측하기 위한 루트 디지트 예측 테이블(RPT)을 만드는 것이 가능하다. 다음의 표 5은 피개수z= z2z1z0.0z-2... 이고 부분 나머지x (i)= 0x1x0.x-1x-2... 인 경우(q-iPrediction Case 1: z-1= 0 and x2= 0)에 예측된 i번째 루트 디지트 q-i를 나타내고, 표 6은 피개수z= z2z1z0.0z-2... 이고 부분 나머지x (i)= 1x1x0.x-1x-2... 인 경우(q-iPrediction Case 2: z-1= 0 and x2= 1)에 예측된 i번째 루트 디지트 q-i를 나타내고 있다.
q -i Prediction Case 1:z-1= 0 and x2= 0
(i-1)th Root Digit = +1 (i-1)th Root Digit = -1
(i-2)th Partial Remainder (i-1)th PR(Borrow =1) i'th Root Digit (i-1)th PR(Borrow = 0) i'th Root Digit (i-2)th Partial Remainder (i-1)th PR(Carry-in = 1) i'th Root Digit (i-1)th PR(Carry-in = 0) i'th Root Digit
00.00 101.1 -1 110.0 -1 00.00 010.1 +1 010.0 +1
00.01 110.0 -1 110.1 -1 00.01 011.0 +1 010.1 +1
00.10 110.1 -1 111.0 -1 00.10 011.1 +1 011.0 +1
00.11 111.0 -1 111.1 -1 00.11 100.0 -1 011.1 +1
01.00 111.1 -1 000.0 0 01.00 100.1 -1 100.0 -1
01.01 000.0 0 000.1 +1 01.01 101.0 -1 100.1 -1
01.10 000.1 +1 001.0 +1 01.10 101.1 -1 101.0 -1
01.11 001.0 +1 001.1 +1 01.11 110.0 -1 101.1 -1
10.00 001.1 +1 010.0 +1 10.00 110.1 -1 110.0 -1
10.01 010.0 +1 010.1 +1 10.01 111.0 -1 110.1 -1
10.10 010.1 +1 011.0 +1 10.10 111.1 -1 111.0 -1
10.11 011.0 +1 011.1 +1 01.11 000.0 0 111.1 -1
11.00 011.1 +1 100.0 -1 11.00 000.1 +1 000.0 0
11.01 100.0 -1 100.1 -1 11.01 001.0 +1 000.1 +1
11.10 100.1 -1 101.0 -1 11.10 001.1 +1 001.0 +1
11.11 101.0 -1 101.1 -1 11.11 010.0 +1 001.1 +1
표 5에서, 예컨대, (i-2)번째 부분 나머지x (i-2)= 000.10x-3x-4...인 경우 (i-1)번째 루트 디지트 q-(i-1)은 '+1' 또는 '-1'이 된다. (i-1)번째 루트 디지트 q-(i-1)= +1인 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생한다면(If Borrow = 1) i번째 루트 디지트 q-i는 '-1'이 될 것이고, 또한 이 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생하지 않는다하더라도(If Borrow = 0) i번째 루트 디지트 q-i는 역시 '-1'이 될 것이다. 또, 예컨대, (i-2)번째 부분 나머지x (i-2)= 010.11x-3x-4...이고 (i-1)번째 루트 디지트 q-(i-1)= -1인 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 캐리-인(Carry-in)이 발생한다면(If Carry-in = 1) i번째 루트 디지트 q-i는 '0'이 될 것이고, 또한 이 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 캐리-인(Carry-in)이 발생하지 않는다면(If Carry-in = 0) i번째 루트 디지트 q-i는 '-1'이 될 것이다.
q -i Prediction Case 2:z-1= 0 and x2= 1
(i-1)th Root Digit = +1 (i-1)th Root Digit = -1
(i-2)th Partial Remainder (i-1)th PR(Borrow =1) i'th Root Digit (i-1)th PR(Borrow = 0) i'th Root Digit (i-2)th Partial Remainder (i-1)th PR(Carry-in = 1) i'th Root Digit (i-1)th PR(Carry-in = 0) i'th Root Digit
00.00 101.0 -1 101.1 -1 00.00 011.0 +1 010.1 +1
00.01 101.1 -1 110.0 -1 00.01 011.1 +1 011.0 +1
00.10 110.0 -1 110.1 -1 00.10 100.0 -1 011.1 -1
00.11 110.1 -1 111.0 -1 00.11 100.1 -1 100.0 -1
01.00 111.0 -1 111.1 -1 01.00 101.0 -1 100.1 -1
01.01 111.1 -1 000.0 0 01.01 101.1 -1 101.0 -1
01.10 000.0 0 000.1 +1 01.10 110.0 -1 101.1 -1
01.11 000.1 +1 001.0 +1 01.11 110.1 -1 110.0 -1
10.00 001.0 +1 001.1 +1 10.00 111.0 -1 110.1 -1
10.01 001.1 +1 010.0 +1 10.01 111.1 -1 111.0 -1
10.10 010.0 +1 010.1 +1 10.10 000.0 0 111.1 -1
10.11 010.1 +1 011.0 +1 01.11 000.1 +1 000.0 0
11.00 011.0 +1 011.1 +1 11.00 001.0 +1 000.1 +1
11.01 011.1 +1 100.0 -1 11.01 001.1 +1 001.0 +1
11.10 100.0 -1 100.1 -1 11.10 010.0 +1 001.1 +1
11.11 100.1 -1 101.0 -1 11.11 010.1 +1 010.0 +1
표 6에서, 예컨대, (i-2)번째 부분 나머지x (i-2)= 101.01x-3x-4...인 경우 (i-1)번째 루트 디지트 q-(i-1)은 '+1' 또는 '-1'이 된다. (i-1)번째 루트 디지트 q-(i-1)= +1인 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생한다면(If Borrow = 1) i번째 루트 디지트 q-i는 '-1'이 될 것이고, 또한 이 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우가 발생하지 않으면(If Borrow = 0) i번째 루트 디지트 q-i는 '0'이 될 것이다. 또, 예컨대, (i-2)번째 부분 나머지x (i-2)= 110.11x-3x-4...이고 (i-1)번째 루트 디지트 q-(i-1)= -1인 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 캐리-인(Carry-in)이 발생한다면(If Carry-in = 1) i번째 루트 디지트 q-i는 '+1'이 될 것이고, 또한 이 경우, (i-1)번째 부분 나머지x (i-1)의 계산에서 캐리-인(Carry-in)이 발생하지 않는다면(If Carry-in = 0) i번째 루트 디지트 q-i는 '0'이 될 것이다.
다음의 표 7 및 8은, 피개수z= 01.110110 인 경우, 종래의 래딕스-2 SRT 제곱근연산 알고리즘에 의해 얻어지는 제곱근연산 결과와 본 발명의 래딕스-2 제곱근연산 알고리즘에 얻어지는 제곱근연산 결과를 각각 보여주고 있다.
종래의 비복원 래딕스-2 SRT 제곱근연산 알고리즘
z 01.110110
x (0)=z- 1 000.110110 q0= +1 q (0)= 1.
2x (0) 001.101100 q-1= +1 q (1)= 1.1
-(2*(1.)+2-1 10.1
x (1) 111.001100 q-2= -1 q (2)= 1.01
2x (1) 110.011000
+(2*(1.1)+2-2 10.11
x (2) 001.001000 q-3= +1 q (3)= 1.011
2x (2) 010.010000
-(2*(1.01)+2-3 10.101
x (3) 111.101000 q-4= -1 q (4)= 1.0101
2x (3) 111.010000
+(2*(1.011)-2-4 10.1011
x (4) 001.111100 q-5= +1 q (5)= 1.01011
2x (4) 011.111000
-(2*(1.0101)-2-5 10.10101
x (5) 001.001110 q-6= +1 q (6)= 1.010111
2x (5) 010.011100
-(2*(1.01011)-2-6 10.101101
x (6 111.101111 Negative;Correct
+(2*(1.01011)-2-6 10.101101
x (6)corrected 010.011100
본 발명의 비복원 래딕스-2 제곱근연산 알고리즘
z 01.110110
x (0)=z- 1 000.110110 q0= +1 q (0)= 1.
4x (0) 011.011000 q-1= +1 q (1)= 1.1
-(2*(1.)+2-1)+(2*(1.1)-2-2) +101.11 q-2= -1 q (2)= 1.01
x (1) 001.001000 q-3= +1 q (3)= 1.011
4x (1) 100.100000 q-4= -1 q (4)= 1.0101
-(2*(1.01)+2-3)+(2*(1.011)-2-4) +101.0111
x (2) 001.111100 q-5= +1 q (5)= 1.01011
4x (2) 111.110000 q-6= +1 q (6)= 1.010111
-(2*(1.0101)-2-5)+(2*(1.01011)-2-6) -000.000001
x (3) 111.101111
+(2*(1.01011)-2-6) 10.101101
x (6)corrected 010.011100
종래의 래딕스-2 SRT 제곱근연산 알고리즘은, 표 7에 나타낸 바와 같이, 각 반복연산에서 부분 나머지의 관계에 따라서 각 루트 디지트를 결정하고, 결정된 루트 디지트를 사용하여 다음의 부분 나머지를 계산하기 때문에 부동 소수점 디지트들(Whole Bits + Fraction Bits)의 수와 동일한 수의 반복연산들이 필요하다.
반면에, 본 발명의 래딕스-2 제곱근연산 알고리즘에 따르면, 표 8에 나타나 있는 바와 같이, 초기 부분 나머지x (0)으로부터 루트 디지트들 q0및 q-1이 구해지고, q0및 q-1에 근거하여 루트 디지트 예측 테이블(RPT)이 q-2를 예측한다(종래의 래딕스-2 SRT 제곱근연산 알고리즘에 의하면, q-2는 두번째 반복연산에서 구해짐). 그리고, 디지트들 q0, q-1및 q-2에 의해 첫번째 부분 나머지x (1)이 계산된다. 두번째 반복연산에서,x (1)로부터 q-3이 계산되고, q-3에 근거하여 루트 예측 테이블(RPT)이 q-4를 예측한다(종래의 래딕스-2 SRT 제곱근연산 알고리즘에 의하면, q-4는 네번째 반복연산에서 구해짐). 그리고, 디지트들 q-3및 q-4에 의해 두번째 부분 나머지x (2)가 계산된다. 세번째 반복연산에서,x (2)로부터 q-5가 계산되고, q-5에 근거하여 루트 예측 테이블(RPT)이 q-6을 예측한다(종래의 래딕스-2 SRT 제곱근연산 알고리즘에 의하면, q-6은 여섯번째 반복연산에서 구해짐). 그리고, 디지트들 q-5및 q-6에 의해 세번째 부분 나머지x (3)이 계산된다.
따라서, 본 발명의 래딕스-2 제곱근연산 알고리즘에 의하면, 종래의 래딕스-2 SRT 제곱근연산 알고리즘의 첫번째 부분 나머지x (1), 세번째 부분 나머지x (3), 그리고 다섯번째 부분 나머지x (5)를 구하기 위한 반복연산들을 생략할 수 있기 때문에, 본 발명의 알고리즘의 레이턴시는 종래의 래딕스-2 SRT 알고리즘에 비해 1/2로 줄어든다. 더욱이, 본 발명의 래딕스-2 제곱근연산 알고리즘의 각 반복연산의 수행시간은 종래의 래딕스-2 SRT 제곱근연산 알고리즘의 그것과 동일하기 때문에 본 발명의 래딕스-2 제곱근연산 알고리즘은 종래의 래딕스-2 SRT 제곱근연산 알고리즘에 비해 더 빠른 속도로 제곱근연산을 수행할 수 있다.
도 1은 본 발명에 따른 제산 및/또는 제곱근 계산 장치(1)의 기능적 회로 블럭도이다. 도 1을 참조하여, 제산/제곱근 계산 장치(1)는 제산/제곱근연산의 수행에 필요한 클럭 신호들(CLKs)과 제어신호들을 공급하는 제어기(10), 제산을 위한 제수d를 저장하기 위한 제수 레지스터(12), (i-2)번째 몫 디지트q-(i-2)를 저장하기 위한 또는 (i-2)번째 루트 디지트q-(i-2)를 포함하는 (i-2)번째 부분 제곱근q (i-2)를 저장하기 위한 레지스터(14), (i-2)번째 부분 나머지x (i-2)를 저장하기 위한 레지스터(16)를 구비한다. 또, 제산/제곱근 계산 장치(1)는 (i-2)번째 부분 나머지x (i-2)에 의해 (i-1)번째 몫/루트 디지트 q-(i-1)를 선택하는 몫/루트 디지트 선택기(18) 및, (i-1)번째 몫 디지트 q-(i-1)을 저장하기 위한 또는 (i-1)번째 루트 디지트q-(i-1)을 포함하는 (i-1)번째 부분 제곱근q (i-1)을 저장하기 위한 레지스터(20)를 구비한다.
멀티플렉서(22)는 레지스터(12)의 내용(즉, 제수d)과 레지스터(14)의 내용(즉, 몫 디지트 q-(i-2)또는 루트 디지트q-(i-2)를 포함하는 (i-2)번째 부분 제곱근q (i-2)) 중 어느 하나를 보정항 생성기(26)으로 선택적으로 제공한다. 멀티플렉서(24)는 레지스터(12)의 내용(즉, 제수d)과 레지스터(20)의 내용(즉, 몫 디지트 q-(i-1)또는 루트 디지트q-(i-1)을 포함하는 (i-1)번째 부분 제곱근q (i-1)) 중 어느 하나를 보정항생성기들(28) 및 (30)으로 선택적으로 제공한다. 구체적으로, 제산 동안에, 멀티플렉서들(22) 및 (24)는 레지스터(12)에 저장된 제수d를 보정항 생성기들(26), (28) 및 (30)으로 제공한다. 제곱근연산 동안에는 멀티플렉서들(22)가 (i-2)번째 부분 제곱근q (i-2)를 보정항 생성기(26)으로 제공하고, 멀티플렉서(24)가 (i-1)번째 부분 제곱근q (i-1)을 보정항 생성기들(28) 및 (30)으로 제공한다.
보정항 생성기(26)은 (i-2)번째 보정항을 생성한다. 보정항 생성기들(28) 및 (30)은 (i-1)번째 보정항들을 생성한다. 특히, 보정항 생성기(28)은 i번째 몫/루트 디지트 q-1= 1인 것의 가정하에서 (i-1)번째 보정항을 생성하고, 보정항 생성기(30)은 i번째 몫/루트 디지트 q-1= -1인 것의 가정하에서 (i-1)번째 보정항을 생성한다. 보정항 생성기들(26), (28) 및 (30)은 보정항들을 동시에 생성한다. 보정항 생성기(26)의 출력은 감산기들(32) 및 (34)로 제공되고, 보정항 생성기들(28) 및 (30)의 출력들은 감산기들(32) 및 (34)로 각각 제공된다.
감산기들(32) 및 (34)는 레지스터(16)의 내용(즉,x (i-2))을 공급받는다. 감산기(32)는 (i-2)번째 부분 나머지x (i-2)의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(26)의 출력 그리고/또는 보정항 생성기(28)의 출력을 뺀다. 유사하게, 감산기(34)는 (i-2)번째 부분 나머지x (i-2)의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(26)의 출력 그리고/또는 보정항 생성기(30)의 출력을 뺀다. 감산기(32)는, 제산 시에, (i-2)번째 부분 나머지의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(28)의 출력을 뺀다. 감산기(32)는, 제곱근연산산 시에, (i-2)번째 부분 나머지의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(26) 및 보정항 생성기(28)의 출력들을 뺀다. 감산기(34)는, 제산 시에, (i-2)번째 부분 나머지의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(30)의 출력을 뺀다. 감산기(34)는, 제곱근연산산 시에, (i-2)번째 부분 나머지의 레프트-쉬프트된 값(4x (i-2))으로부터 보정항 생성기(26) 및 보정항 생성기(30)의 출력들을 뺀다. 감산기들(32) 및 (34)의 출력들(x1, x2)는 멀티플렉서(36)으로 제공된다.
도 1에서, 참조번호 38은 캐리 전파 검출기(Carry Propagation Detecter)를 나타낸다. 캐리 전파 검출기(38)는 (i-2)번째 보정항으로부터 (i-1)번째 부분 나머지x (i-1)의 계산에서 바로우 또는 캐리-인이 발생하는지를 검출한다. 캐리 전파 검출 기술은 주어진 위치에서 캐리가 발생되는지(Generated), 전파되는지(Propagated), 또는 소멸되는지(Annihilated 또는 Absorbed)를 검출하는 것으로, 이 기술분야에서 잘 알려져 있는 것이므로 여기서는 그에 대한 상세한 설명을 생략한다.
본 발명의 제산/제곱근 계산 장치(1)는 2개의 몫/루트 디지트 예측 테이블 로직들(40) 및 (42)를 구비한다. 몫/루트 디지트 예측 테이블 로직(40)은 앞의 표 1, 2, 5 및, 6의 바로우 또는 캐리-인이 발생하는 경우(즉, Borrow/Carry-in = 1)의 i번째 몫/루트 디지트들을 갖고 있다. 반면에, 몫/루트 디지트 예측 테이블 로직(42)는 앞의 표 1, 2, 5 및, 6의 바로우 또는 캐리-인이 발생하지 않는 경우(즉, Borrow/Carry-in = 1)의 i번째 몫/루트 디지트들을 갖고 있다. 몫/루트 디지트 예측 테이블 로직들(40) 및 (42)는 레지스터(16)의 내용(즉,x (i-2))과 레지스터(20)의 내용(즉,q-(i-1))을 공급받는다.
몫/루트 디지트 예측 테이블 로직(40)은 레지스터(16)의 내용(즉,x (i-2))과 레지스터(20)의 내용(즉,q-(i-1))에 대응하는 i번째 조건적 몫/루트 디지트 q1(즉, Borrow/Carry-in = 1인 경우의 i번째 몫/루트 디지트)을 예측한다. 몫/루트 디지트 예측 테이블 로직(42)는 레지스터(16)의 내용(즉,x (i-2))과 레지스터(20)의 내용(즉,q-(i-1))에 대응하는 i번째 조건적 몫/루트 디지트 q2(즉, Borrow/Carry-in = 0인 경우의 i번째 몫/루트 디지트)를 예측한다.
몫/루트 디지트 예측 테이블 로직들(40) 및 (42)의 출력들(q1, q2)은 멀티플렉서(44)로 제공된다. 멀티플렉서(44)는 캐리 전파 검출기(38)의 출력에 응답해서 몫/루트 디지트 예측 테이블 로직들(40) 및 (42)의 출력들(q1, q2) 중 하나를 선택하고, 멀티플렉서(44)의 출력 q1 또는 q2가 i번째 몫/루트 디지트 q-i로서 결정된다.
멀티플렉서(44)로부터 출력되는 i번째 몫/루트 디지트 q-i는 멀티플렉서(36)으로 제공됨과 동시에 레지스터(46)에 저장된다. 한편, 멀티플렉서(36)은 i번째 몫/루트 디지트 q-i에 응답해서 감산기들(32) 및 (34)의 출력들(x1, x2) 중 하나를 선택하고, 멀티플렉서(36)의 출력은 x1 또는 x2는 i-1번째 부분 나머지x (i)로서 레지스터(48)에 저장된다.
이상과 같이, 본 발명의 제산 및 제곱근 계산 장치(1)에서, 보정항 생성기들과 부분 나머지들을 계산하는 블록들이 제산 및 제곱근연산을 위해 공유된다. 따라서, 본 발명의 제산 및 제곱근 계산 장치(1)는 작은 면적 오버헤드(Area Overhead)를 갖는다.
본 발명의 래딕스-2 알고리즘들에 따르면, (i-1)번째 부분 나머지의 계산에 필요한 (i-1)번째 보정항이 (i-2)번째 보정항과 동시에 생성되기 때문에, (i-1)번째 부분 나머지를 구하기 위한 반복연산의 생략을 가능하다. 따라서, 종래의 래딕스-2 SRT 알고리즘들에 비해 반복연산시간이 1/2로 줄어들지만, 종래의 래딕스-4 SRT 알고리즘들과는 달리, 각 반복연산의 지연시간이 늘어 나지 않는다. 또, 본 발명에 따른 제산 및 제곱근 계산 장치의 보정항 생성기들 및 부분 나머지 계산 블록들이 제산 및 제곱근연산을 위해 공유되기 때문에, 본 발명의 제산 및 제곱근 계산 장치는 작은 면적 오버헤드를 갖는다.

Claims (22)

  1. 피제수를 제수로 나누어서 몫을 생성하는 제산 장치에 있어서:
    제1 보정항을 생성하는 제1 보정항 생성기;
    제2 보정항을 생성하는 제2 보정항 생성기;
    (i-2)번째 부분 나머지의 레프트-쉬프트된 값으로부터 상기 제1 보정항을 빼는 제1 감산기;
    상기 (i-2)번째 부분 나머지의 상기 레프트-쉬프트된 값으로부터 상기 제2 보정항을 빼는 제2 감산기;
    (i-1)번째 부분 나머지의 계산에서 바로우가 발생하는지를 검출하는 캐리 전달 검출기;
    (i-1)번째 몫 디지트, 상기 (i-2)번째 부분 나머지 및 캐리 전달 검출기의 출력에 응답해서 i번째 몫 디지트를 예측하는 몫 디지트 예측 수단; 그리고
    상기 예측된 i번째 몫 디지트에 응답해서 상기 제1 및 제2 감산기들의 출력들 중 하나를 i번째 부분 나머지로서 선택하는 선택 수단을 포함하는 것을 특징으로 하는 제산 장치.
  2. 제1항에 있어서,
    상기 제1 보정항은 상기 예측된 i번째 몫 디지트가 +1인 경우의 조건적 보정항이고, 상기 제2 보정항은 상기 예측된 i번째 몫 디지트가 -1인 경우의 조건적 보정항인 것을 특징으로 하는 제산 장치.
  3. 제1항에 있어서,
    상기 몫 디지트 예측 수단은:
    상기 (i-1)번째 몫 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서, 제1 몫 디지트를 예측하는 제1 몫 디지트 예측 테이블 로직;
    상기 (i-1)번째 몫 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서, 제2 몫 디지트를 예측하는 제2 몫 디지트 예측 테이블 로직; 그리고
    상기 캐리 전달 검출기의 상기 출력에 응답해서, 상기 제1 및 제2 몫 디지트들 중 하나를 상기 i번째 몫 디지트로서 선택하는 멀티플렉서를 포함하는 것을 특징으로 하는 제산 장치.
  4. 제3항에 있어서,
    상기 제1 몫 디지트는 바로우가 발생한 경우의 조건적 몫 디지트이고, 상기 제2 몫 디지트는 바로우가 발생하지 않은 경우의 조건적 몫 디지트인 것을 특징으로 하는 제산 장치.
  5. 제1항에 있어서,
    상기 제산 장치는 플로팅 포인트 제산 장치인 것을 특징으로 하는 제산 장치.
  6. 피제수(x)를 제수(d)로 나누어서 몫(q)을 생성하는 제산 장치에 있어서:
    각 반복연산에서 다음의 식으로 주어지는 부분 나머지를 계산하는 반복적인 제산 회로;
    x (i)= 4x (i-2)- (2q-(i-1)+ q-i)*d
    여기서,x (i)는 i번째 부분 나머지,x (i-2)는 (i-2)번째 부분 나머지, q-(i-1)은 (i-1)번째 몫 디지트, q-i는 i번째 몫 디지트,x (0)=x, 그리고 q-i∈ {-1, 0, +1},
    상기 (i-2)번째 부분 나머지로부터 상기 (i-1)번째 몫 디지트를 선택하는 몫 디지트 선택 회로;
    (i-1)번째 부분 나머지의 계산에서 바로우가 발생하는지를 검출하는 캐리 전달 검출기; 그리고
    상기 (i-1)번째 몫 디지트, 상기 (i-2)번째 부분 나머지 및 상기 캐리 전달 검출기의 출력에 응답해서, i번째 몫 디지트를 예측하는 몫 디지트 예측 회로를 포함하는 것을 특징으로 하는 제산 장치.
  7. 제6항에 있어서,
    상기 (i-2)번째 부분 나머지, 상기 (i-1)번째 몫 디지트와 상기 예측된 몫 디지트에 의해 i번째 부분 나머지를 계산하는 회로를 더 포함하는 것을 특징으로하는 제산 장치.
  8. 제6항에 있어서,
    상기 제산 장치는 플로팅 포인트 제산 장치인 것을 특징으로 하는 제산 장치.
  9. 제6항에 있어서, 상기 (i-1)번째 몫 디지트, 상기 (i-2)번째 부분 나머지, 상기 i번째 몫 디지트, 그리고 상기 i번째 부분 나머지를 저장하는 저장 회로를 더 포함하는 것을 특징으로 하는 제산 장치.
  10. 각 반복연산에서x (i)= 4x (i-2)- (2q-(i-1)+ q-i)*d(여기서,x (i)는 i번째 부분 나머지,x (i-2)는 (i-2)번째 부분 나머지, q-(i-1)은 (i-1)번째 몫 디지트, q-i는 i번째 몫 디지트,x (0)=x, 그리고 q-i∈ {-1, 0, +1})로 주어지는 하나의 부분 나머지를 계산하는 반복 제산 기법을 사용하여, 피제수(x)를 제수(d)로 나누어서 몫(q)을 생성하는 제산 방법에 있어서:
    (a) 상기 (i-2)번째 부분 나머지x (i-2)로부터 상기 (i-1)번째 몫 디지트 q-(i-1)를 선택하는 단계;
    (b) (i-1)번째 부분 나머지의 계산에서 바로우가 발생하는지를 검출하는 단계;
    (c) 상기 (i-1)번째 몫 디지트, 상기 (i-2)번째 부분 나머지 그리고 상기 바로우의 발생 여부에 의거하여, (i-1)번째 부분 나머지의 계산없이, i번째 몫 디지트를 예측하고, 상기 예측된 i번째 몫 디지트에 의해 상기 i번째 부분 나머지를 계산하는 단계; 그리고
    (d) 상기 몫(q)을 계산하기 위해 상기 단계들 (b) 및 (c)를 반복하는 것을 특징으로 하는 제산 방법.
  11. 반복연산 기법에 의해 피개수의 제곱근을 계산하기 위한 장치에 있어서:
    (i-2)번째 부분 나머지로부터 (i-1)번째 루트 디지트를 선택하는 루트 디지트 선택기;
    (i-2)번째 부분 제곱근과 상기 (i-1)번째 루트 디지트에 의해 제1 보정항을 생성하는 제1 보정항 생성기;
    (i-1)번째 부분 제곱근에 의해 제2 보정항을 생성하는 제2 보정항 생성기;
    상기 (i-1)번째 부분 제곱근에 의해 제3 보정항을 생성하는 제3 보정항 생성기;
    상기 (i-2)번째 부분 나머지의 레프트-쉬프트된 값으로부터 상기 제1 보정항 및 상기 제2 보정항을 빼는 제1 감산기;
    상기 (i-2)번째 부분 나머지의 상기 레프트-쉬프트된 값으로부터 상기 제1보정항 및 상기 제2 보정항을 빼는 제2 감산기;
    (i-1)번째 부분 나머지의 계산에서 바로우 또는 캐리-인이 발생하는지를 검출하는 캐리 전달 검출기;
    상기 (i-1)번째 루트 디지트, 상기 (i-2)번째 부분 나머지 및 상기 캐리 전달 검출기의 출력에 응답해서 i번째 루트 디지트를 예측하는 루트 디지트 예측 수단; 그리고
    상기 예측된 i번째 루트 디지트에 응답해서 상기 제1 및 제2 감산기들의 출력들 중 하나를 i번째 부분 나머지로서 선택하는 선택 수단을 포함하는 것을 특징으로 하는 제곱근연산 장치.
  12. 제11항에 있어서,
    상기 제2 보정항은 상기 예측된 i번째 루트 디지트가 +1인 경우의 조건적 보정항이고, 상기 제3 보정항은 상기 예측된 i번째 루트 디지트가 -1인 경우의 조건적 보정항인 것을 특징으로 하는 제곱근연산 장치.
  13. 제11항에 있어서,
    상기 루트 디지트 예측 수단은:
    상기 (i-1)번째 루트 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서, 제1 루트 디지트를 예측하는 제1 루트 디지트 예측 테이블 로직;
    상기 (i-1)번째 루트 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서,제2 루트 디지트를 예측하는 제2 루트 디지트 예측 테이블 로직; 그리고
    상기 캐리 전달 검출기의 상기 출력에 응답해서, 상기 제1 및 제2 루트 디지트들 중 하나를 상기 i번째 루트 디지트로서 선택하는 멀티플렉서를 포함하는 것을 특징으로 하는 제곱근연산 장치.
  14. 제11항에 있어서,
    상기 (i-1)번째 루트 디지트, 상기 (i-2)번째 부분 나머지, 상기 i번째 루트 디지트, 그리고 상기 i번째 부분 나머지를 저장하는 저장 회로를 더 포함하는 것을 특징으로 하는 제곱근연산 장치.
  15. 제11항에 있어서,
    상기 (i-2)번째 부분 나머지, 상기 (i-2)번째 부분 제곱근, 상기 (i-1)번째 부분 제곱근, 그리고 i번째 부분 제곱근을 저장하는 저장 회로를 더 포함하는 것을 특징으로 하는 제곱근연산 장치.
  16. 각 반복연산에서 다음의 식으로 주어지는 부분 나머지를 계산하는 반복적인 제곱근연산 회로;
    각 반복연산에서
    x (i)= 4x (i-2)- 2(2q (i-2)+ q-(i-1)2-i+1)q-(i-1) - 2(2q (i-1)+ q-i2-i)q-i
    여기서,x (i)는 i번째 부분 나머지를 나타내고,x (i-1)는 (i-1)번째 부분 나머지,x (i-2)는 (i-2)번째 부분 나머지, q-i는 i번째 루트 디지트, q-(i-1)는 (i-1)번째 루트 디지트,q (i-1)은 (i-1)번째 부분 제곱근,q (i-2)는 (i-2)번째 부분 제곱근,x (0)=z- 1, 그리고 q-i∈ {-1, 0, +1},
    상기 (i-2)번째 부분 나머지로부터 상기 (i-1)번째 루트 디지트를 선택하는 루트 디지트 선택 회로;
    (i-1)번째 부분 나머지의 계산에서 바로우 또는 캐리-인이 발생하는지를 검출하는 캐리 전달 검출기; 그리고
    상기 (i-1)번째 루트 디지트, 상기 (i-2)번째 부분 나머지 및 상기 캐리 전달 검출기의 출력에 응답해서, i번째 루트 디지트를 예측하는 루트 디지트 예측 회로를 포함하는 것을 특징으로 하는 제곱근연산 장치.
  17. 제16항에 있어서,
    상기 (i-2)번째 부분 나머지, 상기 i번째 부분 나머지, 상기 (i-2)번째 부분 제곱근, 상기 (i-1)번째 부분 제곱근, 그리고 i번째 부분 제곱근을 저장하는 저장 회로를 더 포함하는 것을 특징으로 하는 제곱근연산 장치.
  18. 제16항에 있어서,
    상기 제곱근연산 장치는 플로팅 포인트 제곱근연산 장치인 것을 특징으로 하는 제곱근연산장치.
  19. 제16항에 있어서,
    상기 반복적인 제곱근연산 회로는:
    (i-2)번째 부분 제곱근과 상기 (i-1)번째 루트 디지트에 의해 제1 보정항을 생성하는 제1 보정항 생성기;
    (i-1)번째 부분 제곱근에 의해 제2 보정항을 생성하는 제2 보정항 생성기;
    상기 (i-1)번째 부분 제곱근에 의해 제3 보정항을 생성하는 제3 보정항 생성기;
    상기 (i-2)번째 부분 나머지의 레프트-쉬프트된 값으로부터 상기 제1 보정항 및 상기 제2 보정항을 빼는 제1 감산기;
    상기 (i-2)번째 부분 나머지의 상기 레프트-쉬프트된 값으로부터 상기 제1 보정항 및 상기 제2 보정항을 빼는 제2 감산기;
    상기 (i-1)번째 루트 디지트, 상기 (i-2)번째 부분 나머지 및 상기 캐리 전달 검출기의 출력에 응답해서 i번째 루트 디지트를 예측하는 루트 디지트 예측 수단; 그리고
    상기 예측된 i번째 루트 디지트에 응답해서 상기 제1 및 제2 감산기들의 출력들 중 하나를 i번째 부분 나머지로서 선택하는 선택 수단을 포함하는 것을 특징으로 하는 제곱근연산 장치.
  20. 제19항에 있어서,
    상기 제2 보정항은 상기 예측된 i번째 루트 디지트가 +1인 경우의 조건적 보정항이고, 상기 제3 보정항은 상기 예측된 i번째 루트 디지트가 -1인 경우의 조건적 보정항인 것을 특징으로 하는 제곱근연산 장치.
  21. 제19항에 있어서,
    상기 루트 디지트 예측 수단은:
    상기 (i-1)번째 루트 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서, 제1 루트 디지트를 예측하는 제1 루트 디지트 예측 테이블 로직;
    상기 (i-1)번째 루트 디지트 및 상기 (i-2)번째 부분 나머지에 응답해서, 제2 루트 디지트를 예측하는 제2 루트 디지트 예측 테이블 로직; 그리고
    상기 캐리 전달 검출기의 상기 출력에 응답해서, 상기 제1 및 제2 루트 디지트들 중 하나를 상기 i번째 루트 디지트로서 선택하는 멀티플렉서를 포함하는 것을 특징으로 하는 제곱근연산 장치.
  22. 각 반복연산에서
    x (i)= 4x (i-2)- 2(2q (i-2)+ q-(i-1)2-i+1)q-(i-1) - 2(2q (i-1)+ q-i2-i)q-i(여기서,x (i)는 i번째 부분 나머지를 나타내고,x (i-1)는 (i-1)번째 부분 나머지,x (i-2)는 (i-2)번째 부분 나머지, q-i는 i번째 루트 디지트, q-(i-1)는 (i-1)번째 루트 디지트,q (i-1)은 (i-1)번째 부분 제곱근,q (i-2)는 (i-2)번째 부분 제곱근,x (0)=z- 1, 그리고 q-i∈ {-1, 0, +1})로 주어지는 하나의 부분 나머지를 계산하는 반복 제산 기법을 사용하여, 피개수(z)의 제곱근(q)을 계산하기 위한 방법에 있어서:
    (a) 상기 (i-2)번째 부분 나머지로부터 상기 (i-1)번째 루트 디지트를 선택하는 단계;
    (b) (i-1)번째 부분 나머지의 계산에서 바로우 또는 캐리-인이 발생하는지를 검출하는 단계; 그리고
    (c) 상기 (i-1)번째 루트 디지트, 상기 (i-2)번째 부분 나머지 그리고 상기 바로우 또는 캐리-인의 발생 여부에 의거하여, 상기 (i-1)번째 부분 나머지의 계산없이, 상기 i번째 루트 디지트를 예측하고, 상기 예측된 i번째 루트 디지트에 의해 상기 i번째 부분 나머지를 계산하는 단계; 그리고
    (d) 상기 제곱근(q)을 계산하기 위해 상기 단계들 (b) 및 (c)를 반복하는 것을 특징으로 하는 제곱근연산 방법.
KR10-2001-0072685A 2001-11-21 2001-11-21 제산 및 제곱근 계산 장치 및 방법 KR100407562B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR10-2001-0072685A KR100407562B1 (ko) 2001-11-21 2001-11-21 제산 및 제곱근 계산 장치 및 방법
TW091114926A TWI227837B (en) 2001-11-21 2002-07-05 Apparatus and method for calculation of divisions and square roots
US10/262,449 US7185040B2 (en) 2001-11-21 2002-10-01 Apparatus and method for calculation of divisions and square roots
GB0227133A GB2386986B (en) 2001-11-21 2002-11-20 Apparatus and method for calculation of divisions and square roots
JP2002338440A JP3941868B2 (ja) 2001-11-21 2002-11-21 計算装置及び計算方法
US11/654,255 US7809784B2 (en) 2001-11-21 2007-01-17 Apparatus and method for calculation of divisions and square roots

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0072685A KR100407562B1 (ko) 2001-11-21 2001-11-21 제산 및 제곱근 계산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20030042151A KR20030042151A (ko) 2003-05-28
KR100407562B1 true KR100407562B1 (ko) 2003-11-28

Family

ID=19716158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0072685A KR100407562B1 (ko) 2001-11-21 2001-11-21 제산 및 제곱근 계산 장치 및 방법

Country Status (5)

Country Link
US (2) US7185040B2 (ko)
JP (1) JP3941868B2 (ko)
KR (1) KR100407562B1 (ko)
GB (1) GB2386986B (ko)
TW (1) TWI227837B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059216A1 (en) * 2004-09-10 2006-03-16 Silicon Integrated Systems Corp. Method for square root computation
WO2009035224A2 (en) * 2007-09-10 2009-03-19 Electronics And Telecommunications Research Institute Appatatus and method of calculating square root in finite extension field
US8868633B2 (en) * 2012-03-30 2014-10-21 Advanced Micro Devices, Inc. Method and circuitry for square root determination
US9348796B2 (en) 2013-09-19 2016-05-24 International Business Machines Corporation Arithmetic operation in a data processing system
TWI640918B (zh) * 2016-03-02 2018-11-11 瑞昱半導體股份有限公司 快速除法器及快速除法運算方法
US10209959B2 (en) 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147146A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd 除算演算装置
JPH10133858A (ja) * 1996-10-18 1998-05-22 Texas Instr Inc <Ti> マイクロプロセッサおよびマイクロプロセッサを作動させる方法
JPH10187420A (ja) * 1996-12-26 1998-07-21 Hitachi Ltd 除算・開平演算器
KR20000074611A (ko) * 1999-05-24 2000-12-15 윤종용 하이 래딕스 플로팅 포인트 제산기
US6163791A (en) * 1998-02-02 2000-12-19 International Business Machines Corporation High accuracy estimates of elementary functions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3852581A (en) * 1972-12-14 1974-12-03 Burroughs Corp Two bit binary divider
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US5132925A (en) * 1988-08-18 1992-07-21 Digital Equipment Corporation Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5258944A (en) * 1992-09-01 1993-11-02 Cray Research, Inc. High performance mantissa divider
US5404324A (en) * 1993-11-01 1995-04-04 Hewlett-Packard Company Methods and apparatus for performing division and square root computations in a computer
JP3609512B2 (ja) * 1994-12-15 2005-01-12 株式会社東芝 演算器
US5696712A (en) * 1995-07-05 1997-12-09 Sun Microsystems, Inc. Three overlapped stages of radix-2 square root/division with speculative execution
US5818745A (en) * 1996-05-31 1998-10-06 Intel Corporation Computer for performing non-restoring division
US6108682A (en) * 1998-05-14 2000-08-22 Arm Limited Division and/or square root calculating circuit
US6847985B1 (en) * 2001-08-10 2005-01-25 Lsi Logic Corporation Floating point divide and square root processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147146A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd 除算演算装置
JPH10133858A (ja) * 1996-10-18 1998-05-22 Texas Instr Inc <Ti> マイクロプロセッサおよびマイクロプロセッサを作動させる方法
JPH10187420A (ja) * 1996-12-26 1998-07-21 Hitachi Ltd 除算・開平演算器
US6163791A (en) * 1998-02-02 2000-12-19 International Business Machines Corporation High accuracy estimates of elementary functions
KR20000074611A (ko) * 1999-05-24 2000-12-15 윤종용 하이 래딕스 플로팅 포인트 제산기

Also Published As

Publication number Publication date
US7185040B2 (en) 2007-02-27
JP2003216419A (ja) 2003-07-31
US7809784B2 (en) 2010-10-05
GB2386986B (en) 2004-03-24
GB0227133D0 (en) 2002-12-24
TWI227837B (en) 2005-02-11
US20070118584A1 (en) 2007-05-24
US20030187900A1 (en) 2003-10-02
JP3941868B2 (ja) 2007-07-04
KR20030042151A (ko) 2003-05-28
GB2386986A (en) 2003-10-01

Similar Documents

Publication Publication Date Title
EP0450754B1 (en) High speed dividers
US6847985B1 (en) Floating point divide and square root processor
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
JP2622896B2 (ja) 除算装置
KR100756137B1 (ko) 제산 및 제곱근 연산 유닛
US20080208945A1 (en) Method to compute an approximation to the reciprocal of the square root of a floating point number in ieee format
EP0717350A2 (en) High-speed division and square root calculation unit
JP2006227939A (ja) 演算装置
US8060551B2 (en) Method and apparatus for integer division
US7809784B2 (en) Apparatus and method for calculation of divisions and square roots
US6941334B2 (en) Higher precision divide and square root approximations
US20010025293A1 (en) Divider
KR19980032153A (ko) 부동 소수점 역수를 위한 초기추정을 수행하기 위한 방법 및 장치
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US7174015B1 (en) Methods and apparatus for variable radix scalable modular multiplication
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
JPH086766A (ja) 正弦余弦演算装置
Gök A novel IEEE rounding algorithm for high-speed floating-point multipliers
US10353671B2 (en) Circuitry and method for performing division
JP3517162B2 (ja) 除算・開平演算装置
JP2607759B2 (ja) 除算器
Swann et al. Parallelization of the Shift and Add Reducer
JP2972326B2 (ja) 平方根計算装置
JPH08249161A (ja) 立方根演算装置
KR20000074611A (ko) 하이 래딕스 플로팅 포인트 제산기

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081103

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee