KR100506470B1 - 평방근의 역수 계산 방법, 계산 회로, 및 기록매체 - Google Patents
평방근의 역수 계산 방법, 계산 회로, 및 기록매체 Download PDFInfo
- Publication number
- KR100506470B1 KR100506470B1 KR10-2002-0030598A KR20020030598A KR100506470B1 KR 100506470 B1 KR100506470 B1 KR 100506470B1 KR 20020030598 A KR20020030598 A KR 20020030598A KR 100506470 B1 KR100506470 B1 KR 100506470B1
- Authority
- KR
- South Korea
- Prior art keywords
- digit
- square root
- intermediate result
- ignition
- reciprocal
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5521—Inverse root of a number or a function, e.g. the reciprocal of a Pythagorean sum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5526—Roots or inverse roots of single operands
- G06F2207/5528—Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
본 발명의 평방근의 역수 계산 방법에서는 j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X와 중간 결과 S[j]의 곱을 P[j]로 했을 때에 기수가 r일 때의 평방근의 역수를 계산한다. 제1 단계에서는 초기치 S[0], W[0], P[0]에 적절한 값을 설정한다. 제2 단계에서는 자리수 선택 회로에 의해 평방근의 역수의 자리수 qj+1를 자리수 집합 {-a, …, -1, O, 1, …, a}로부터 선택하고, 1자리수 승산기, 가산기, 변환기를 이용하여,
중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+qj+1r-j-1,
나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+1r-j-1
에 대하여 j=0에서 n-1까지 n회의 반복 연산을 행한다.
Description
본 발명은 평방근(平方根)의 역수 계산 방법, 평방근의 역수 계산 회로, 및 평방근의 역수 계산을 컴퓨터에 행하게 하기 위한 프로그램이 저장된 기록매체에 관한 것이다.
평방근 역수 연산 회로의 예로서, 일본 특개평 03-138725호 공보나 일본 특개평 09-319561호 공보가 있다. 일본 특개평 03-138725호 공보에는 뉴턴법을 이용한 승산형(乘算型)의 평방근 역수 연산 회로의 예를 나타내고 있다. 또, 일본 특개평 09-319561호 공보에는 감산(減算) 시프트형의 제산기(除算器)와 개평기(開平器)를 직렬로 접속하여, 몫 전체가 구해지는 것을 기다리지 않고서, 파이프라인(pipeline)적으로, 개평의 계산도 진행시키는 타입의 평방근 역수 연산 회로의 예를 나타내고 있다.
상기 일본 특개평 03-138725호 공보 기재의 회로에서는 승산기 및 초기치 메모리를 이용하기 위해서 회로 규모가 커진다고 하는 문제가 있다.
또, 일본 특개평 09-319561호 공보에서는 제산을 하고 있는 동안은 2사이클에 1단계의 비율로 개평 계산을 진행시키고, 제산 종료 후는 각 사이클에 1단계의 비율로 개평 계산을 하기 때문에, 지연 시간이 길어지는 문제가 있었다.
따라서, 본 발명의 목적은 종래의 승산형 평방근 역수 연산 회로보다도 간소화된 하드웨어이며, 또한 종래의 제산기 및 개평기를 이용한 평방근 역수 연산 회로보다도 고속인 평방근의 역수 계산 방법, 계산 회로, 및 프로그램을 제공함에 있다.
상기의 목적을 달성하기 위하여, 본 발명의 제1 측면은 컴퓨터 시스템에서의 자리수 선택 회로, 1자리수 승산기, 가산기, 변환기를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 방법으로서,
j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X와 중간 결과 S[j]의 곱을 P[j]로 했을 때에,
초기치 S[0], W[0], P[0]에 적절한 값을 설정하는 단계와,
상기 자리수 선택 회로에 의해 평방근의 역수의 자리수 qj+1를 자리수 집합 {-a, …, -1, 0, 1, …, a}로부터 선택하고, 1자리수 승산기, 가산기, 변환기를 이용하여,
중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+qj+1r-j-1,
나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+1r-j-1
에 대하여 j=0에서 n-1까지 n회의 반복 연산을 행하는 단계를 포함한다.
또, 본 발명의 제2 측면은 컴퓨터 시스템에서의 자리수 선택 회로, 1자리수승산기, 가산기, 변환기를 이용하여 기수가 2일 때의 평방근의 역수를 계산하는 방법으로서,
j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱을 P[j]로 했을 때에,
초기치 S[0]를 1로, W[0]를 1-X로, P[0]를 X로 설정하는 단계와,
상기 자리수 선택 회로에 의해 평방근의 역수의 자리수 qj+1를 2W[j]의 견적치에 따라서 자리수 집합 {-1, 0, 1}로부터 선택하고,
상기 변환기에 의해 j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,
1자리수 승산기와 가산기를 이용하여,
나머지 W[j]에 관한 점화식 W[j+1]:=2W[j]-(2P[j]+Xqj+12-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+12-j-1
에 대하여 j=0에서 n-1까지의 n회의 반복 연산을 행하는 단계를 포함한다.
또, 본 발명의 제3 측면은 컴퓨터 시스템에서의 자리수 선택 회로, 1자리수 승산기, 가산기, 변환기를 이용하여 기수가 4일 때의 평방근의 역수를 계산하는 방법으로서,
j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱을 P[j]로 했을 때에,
연산수 X가 3/8보다 작은 경우에는 초기치 S[0]를 2로, W[0]를 1-4X로, P[0]를 2X로 설정하고, 연산수 X가 3/8 이상 3/4 미만인 경우에는 초기치 S[0]를 3/2, W[0]를 1-9X/4, P[0]를 3X/2로 설정하고, 연산수 X가 3/4 이상인 경우에는 초기치 S[0]을 1로, W[0]를 1-X로, P[0]를 X로 설정하는 단계와,
상기 자리수 선택 회로에 의해 평방근의 역수의 자리수 qj+1를 4W[j]의 견적치와 P[j]의 견적치에 따라서 자리수 집합 {-2, -1, 0, 1, 2}로부터 선택하고, 상기 변환기에 의해 j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에, 1자리수 승산기와 가산기를 이용하여,
나머지 W[j]에 관한 점화식 W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+14-j-1
에 대하여 j=0에서 n-1까지의 n회의 반복 연산을 행하는 단계를 포함한다.
또, 본 발명의 제4 측면은 j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 회로로서,
소정의 점화식을 이용하여 j=0에서 n-1까지의 n회의 반복 연산에서의 반복의 1회분을 계산하기 위한 회로 구성으로서,
rW[j] 및 P[j]의 상위수 비트의 값으로부터 평방근의 역수의 자리수 qj+1를 결정하는 자리수 선택 회로,
연산수 X에 상기 자리수 선택 회로의 출력을 곱해서 Xqj+1를 생성하는 제1 1자리수 승산기,
2P[j]와 제1 1자리수 승산기의 출력을 더하여 합치는 제1 자리수 올림 보존 가산기,
제1 자리수 올림 보존 가산기의 출력에 자리수 선택 회로의 출력을 곱하는 제2 1자리수 승산기,
rW[j]와 제2 1자리수 승산기의 출력을 더하여 합쳐서 W[j+1]를 계산하는 제2 자리수 올림 보존 가산기,
P[j]와 제1 1자리수 승산기의 출력을 더하고 합쳐서 P[j+1]를 계산하는 제3 자리수 올림 보존 가산기,
S[j]를 자리수 선택 회로의 출력에 따라서 S[j+1]로 변환하는 변환기를 포함한다.
또, 본 발명의 제5 측면은 본 발명의 제4 측면에 따른 평방근의 역수 계산 회로에 관한 것으로, S[j]의 값을 기억하기 위한 레지스터, W[j]의 값을 기억하기 위한 레지스터, P[j]의 값을 기억하기 위한 레지스터, X를 기억하기 위한 레지스터를 추가로 포함한다.
또, 본 발명의 제6 측면은 j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서, 상기 기능은,
초기치 S[0], W[0], P[0]에 적절한 값을 설정하는 기능과 평방근의 역수의 자리수 qj+1를 자리수 집합 {-a, …, -1, O, 1, …, a}로부터 선택하고,
중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+qj+1r-j-1,
나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:= P[j]+Xqj+1r-j-1
를 이용하여 j=0에서 n-1까지의 n회의 반복 연산을 행하는 기능을 포함한다.
또, 본 발명의 제7 측면은 j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 2일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서, 상기 기능은,
초기치 S[0]를 1로, W[0]를 1-X로, P[0]를 X로 설정하는 기능과 평방근의 역수의 자리수 qj+1를 2W[j]의 견적치에 따라서 자리수 집합 {-1, 0, 1}로부터 선택하고, j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,
나머지 W[j]에 관한 점화식 W[j+1]:=2W[j]-(2P[j]-Xqj+12-j-1)qj+1,
곱 P=[j]에 관한 점화식 P[j+1]:= P[j]+Xqj+12-j-1
를 이용하여 가산을 행하는 기능을 포함한다.
또, 본 발명의 제8 측면은 j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 4일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서, 상기 기능은,
연산수 X가 3/8보다 작은 경우에는 초기치 S[0]를 2로, W[0]를 1-4X로, P[0]를 2X로 설정하고, 연산수 X가 3/8 이상 3/4 미만인 경우에는 초기치 S[0]를 3/2로, W[0]를 1-9X/4로, P[0]를 3X/2로 설정하고, 연산수 X가 3/4 이상의 경우에는 초기치 S[0]를 1로, W[0]를 1-X로, P[0]를 X로 설정하는 기능과 평방근의 역수의 자리수 qj+1를 4W[j]의 견적치와 P[j]의 견적치에 따라서 자리수 집합 {-2, -1, 0, 1, 2}로부터 선택하고, j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,
나머지 W[j]에 관한 점화식 W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1,
곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+14-j-1
를 이용하여 가산을 하는 기능을 포함한다.
1. 먼저, 기수가 r인 경우에서의 평방근의 역수 계산의 하드웨어 알고리즘에 대하여 설명한다. 부동 소수점 수의 평방근의 역수 계산의 가수부(假數部)의 계산에 대해 고려한다. 1/4<X<1인 연산수 X에 대하여, 그 평방근의 역수로서 S=X-1/2를 구한다. 여기서 1<X-1/2<2이다. X는 n자리수의 r진 소수로 한다. 기수 r은 2의 멱(冪), 즉 r=2b인것으로 한다.
-r-n<X-1/2-S<r-n (1)
을 만족하는 S를 r진인 소수점 이하 n자리수 번째까지 구한다.
여기서는 평방근 등의 계산과 마찬가지로, 평방근의 역수의 자리수 qj를 상위로부터 1자리수씩 구한다. S[j]를 j회의 반복 계산 후의 중간 결과라고 하면,
과 같다.
여기에 S[0]는 결과의 초기치이다. 중간 결과에 관한 점화식은,
S[j+1]:=S[j]+qj+1r-j-1 (2)
이 된다. 평방근의 역수의 자리수 qj+1를 용장(冗長) 자리수 집합{-a, …, -1, 0, 1, …, a}로부터 선택한다. 여기서, r/2 ≤a < r 이다. 최종결과는,
와 같다.
결과를 n자리수의 정확도로 구한다. 즉, (1)을 만족하는 S를 구한다.
나머지(스케일링(scaling)한 나머지) W[j]를
W[j]=rj(1-X·S[j]2) (3)
로 정의한다. (3)의 j에 j+1을 대입하면, W[j+1]=rj+1(1-X·S[j+1]2)이 되고, 이것과 (2) 및 (3)에 의해 나머지에 관한 점화식
W[j+1]:=rW[j]-2X·S[j]qj+1-Xqj+1
2r-j-1 (4)
를 얻는다. 이 점화식은 -2X·S[j]qj+1이라는 항을 포함하기 때문에, 그대로 계산하면, n자리수의 수 X와 j자리수의 수 S[j]의 곱셈이 필요하게 된다. 이 곱셈을 피하기 위해, X·S[j]를 기억하고 이것을 수치화하여 가감산과 1자리수의 곱셈으로 갱신하여 행한다.
X·S[j]를 P[j]로 한다. W[j]에 관한 점화식은,
W[j+1]:=rW[j]-qj+1(2P)[j]+Xqj+1r-j-1) (5)
로 표시된다. 또, 곱 P[j]에 관한 점화식은,
P[j+1]:=P[j]+Xqj+1r-j-1 (6)
이 된다. qj+1의 선택법에 관해서는 후에 설명한다.
(1)에 의해, (S-r-n)2<X-1<(S+r-n)2가 성립하여야 한다.
이며, 평방근의 역수의 자리수의 최소치와 최대치는 -a와 a이기 때문에, 상기 식은 (S[j]-r-jρ)2<X-1<(S[j]+r-j
ρ)2라고 고쳐 쓰인다. 여기서, ρ=a/(r-1)는 평방근의 역수의 자리수 집합의 용장도(redundancy)이다. 따라서 (3)에 의해, W[j]의 만족되어야 하는 조건으로서,
-2X·S[j]ρ+Xρ2r-j<W[j]<2X·S[j]ρ+ Xρ2r-j (7)
를 얻는다.
최초, j=0에 있어서,
-2X·S[0]ρ+Xρ2<W[0]=1-X·S[0]2<2X·S[0]ρ+Xρ2 (8)
가 성립하여야 한다. 2-2<X<1이기 때문에, 예를 들면, S[0]=3/2, W[0]=1-9X/4로 함으로써 (8)을 만족할 수 있다. 이 때 P[0]=3X/2가 된다. ρ=1의 경우는 S[0]=1, W[0]=1-X로 할 수도 있다.
기수가 r인 경우의 평방근의 역수 계산의 알고리즘은 (2), (5), (6)의 n회의 반복으로 이루어진다. 알고리즘을 통합하면 아래와 같이 된다.
Algorithm[RSQRT]
단계 1:
S[0], W[0], P[0]에 적절한 값을 설정한다;
단계 2:
for j:=0 to n-1 do
{
qj+1를 자리수 집합{-a, …, -1, 0, 1, …, a}로부터 선택한다;
S[j+1]:=S[j]+qj+1r-j-1;
W[j+1}:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1;
P[j+1]:=P[j]+Xqj+1r-j-1;
}
도 1은 상기 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다. 먼저, 초기치 S[0], W[0], P[0]에 적절한 값을 설정한다(단계 S1). 다음에, 평방근의 역수의 자리수 qj+1를 용장 자리수 집합 {-a, …, -1, 0, 1, …, a}로부터 선택하고, 중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+qj+1r-j-1, 나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1, 곱 P[j]에 관한 점화식 P[j+1]:= P[j]+ Xqj+1r-j-1에 대한 연산을 j=0에서 n-1까지 n회 반복한다(단계 S2∼S5).
다음에 구한 S[n]를 연산수 X의 평방근의 역수로서 출력한다(단계 S6).
S[n]는 구하는 X-1/2이지만, r진 부호 첨부 숫자 표현(r진 SD 표현)으로 되어 있기 때문에, 보통의 2진 표현으로 변환할 필요가 있다. 이 변환은 계산의 마지막으로 행하여도 되고, 기존의 제산기 등으로 이용되어 있는 온-더-플라이(On-the-fly) 변환에 의해 계산과 병행하여 행할 수도 있다. P[n]는 X1/2로도 구해진다.
용장 표현을 이용한 점화식의 계산에 나타나는 가감산을 자리수 올림의 증가 없이 행함으로써, 약간의 하드웨어의 증가에 의해 계산을 대폭 고속화할 수 있다. 따라서, 여기서는 용장 표현을 이용한 실현을 고려한다. 즉, 나머지 W[j] 및 중간 결과 S[j]와 연산수 X의 곱 P[j]를 자리수 올림 보존형 또는 2진 SD 표현으로 나타내고, 이들 점화식의 계산으로 표현되는 가감산을 자리수 올림의 증가 없이 행한다.
이하에, 평방근의 역수의 자리수의 선택에 대하여 설명한다.
평방근의 역수의 자리수 qj+1는 W[j+1]가,
-2X·S[j+1]ρ+Xρ2r-j-1<W[j+1]<2X·S[j+1]ρ+Xρ2r-j-1 (9)
를 만족하도록, 용장 자리수 집합 {-a, …, -1, 0, 1, …, a} 중에서 선택한다. qj+1는 rW[j], X, S[j]에 의존한다.
qj+1로서 k(=-a, -a+1, …, a)를 선택하더라도 좋은 rW[j]의 범위를(Lk[j], Uk[j])로 하면,
Lk[j]=2X·S[j](k-ρ)+X(k-ρ)2r-j-1 (10)
Uk[j]=2X·S[j](k+ρ)+X(k+ρ)2r-j-1 (11)
이 된다. k=-a에 대한 하한 및 k=a에 대한 상한은 각각 rW[j]의 하한과 상한과 일치한다.
qj+1로서 k-1이 선택되는 rW[j]의 범위와 k가 선택되는 범위는 연속하고 있어야 하기 때문에, Uk-1[j]> Lk[j]가 성립하여야 한다. 즉,
(2ρ-1)(2X·S[j]+X(2k-1)r-j-1)>0 (12)
가 성립하여야 한다. 이것은 항상 성립하고 있다. (12)의 좌변은 인접하는 선택 영역이 겹쳐진 것을 나타내고 있다. 이 겹쳐진 것을 이용하여, 자리수 선택 함수를 간단히 할 수 있다. 즉, qj+1은 rW[j], X, S[j]에 의존하지만, 이 겹쳐진 것을 이용하여, qj+1를 이들 값의 견적치(상위 수 비트)로부터 정할 수 있다.
P[j]=X·S[j]이기 때문에, (10)과 (11)은,
Lk[j]=2P[j](k-ρ)+X(k-ρ)2r-j-1 (13)
Uk[j]=2P[j](k+ρ)+X(k+ρ)2r-j-1 (14)
라고 고쳐 쓸 수 있다. 따라서, qj+1는 rW[j], X, P[j]의 견적치로부터 결정할 수 있다. (13) 및 (14)의 우변의 제2 항은 j가 증가하면 급속히 작아지기 때문에 자리수 선택 함수를 어떻게 하더라도 극히 소수의 작은 j에 관한 것을 제외하고는 X에 의존하지 않도록 할 수 있다.
rW[j] 및 P[j]의 견적치를 rW[j]e 및 P[j]e로 한다. rW[j]e 및 P[j]e
는 용장 표현으로 표시된 rW[j] 및 P[j]를 각각 소수점 이하 t비트 및 d비트로 잘라 구하는 것으로 한다(r진 자리수가 아니고 2진 비트인 것에 주의). 자리수 선택 함수는 선택의 경계가 되는 값의 집합 로 표시된다.
여기서, mk(P[j]e)≤rW[j]e<mk+1(P[j]e)이면, qj+1로서 k가 선택된다.
W[j]가 자리수 올림 보존형으로 표시되어 있고, rW[j]e로서 rW[j]를 소수점 이하 t비트로 자른 값을 그대로 이용하는 경우는 rW[j]e≤rW)[j]<rW[j]e+2-t+1
이다. 따라서, mk(P[j]e)>maxP[j]e(Lk[j]) 또한 mk
(P[j]e)-2-t+2-t+1≤minP[j]e(Uk-1[j])가 성립하여 야한다. 즉,
maxP[j]e(Lk[j])<mk(P[j]e)≤minP[j]
e(Uk-1[j])-2-t (15)
이 만족되어야 한다. 여기서, maxP[j]e(Lk[j])는 P[j]의 견적치가 P[j]
e일 때, qj+1로서 k를 선택할 수 있는 rW[j]의 하한의 최대치를 나타내고, minP[j]e
(Uk-1[j])는 qj+1로서 k-1을 선택할 수 있는 rW[j]의 상한의 최소치를 나타낸다. P[j]e는 (15)를 만족하는 2-t의 배수이어야 한다. 또, qj+1로서 k-1을 선택할 수 있는 rW[j]e의 최대치는 mk(P[j]e-2-t이다. 자리수 선택이 가능하기 때문에 최소한의 영역이 겹쳐지는 필요조건은
minP[j]e(Uk-1[j])-maxP[j]e(Lk[j])>2
-t (16)
이다.
P[j]가 자리수 올림 보존형으로 표시되어 있고, P[j]e로서 P[j]를 소수점 이하 d비트로 자른 값을 이용하는 경우, P[j]e≤P[j]<P[j]e+2-d+1이다. 따라서, (13) 및 (14)에 의해, k>0일 때,
maxP[j]e(Lk[j])<2(P[j]e+2-d+1)(k-ρ)+X(k-ρ)
2r-j-1,
minP[j]e(Uk-1[j])=2P)[j]e(k- 1+ρ)+X(k- 1+ρ)2r
-j-1 (17)
k≤O일 때,
maxP[j]e(Lk[j])=2P[j]e(k-ρ)+X(k-ρ)2r-j-1
,
minP[j]e(Uk-1[j])>2(P[j]e+2-d+1)(k-1+ρ)+X(k-1+ρ)
2r-j-1 (18)
가 성립하여야 한다.
이들 값으로부터 자리수 선택 함수를 정하면 된다. 이들 값은 j에 의존하기 때문에, j에 의해서 자리수 선택 함수가 다른 것도 있다. 실제로는 어떻게 하더라도 극히 소수의 작은 j에 관한 것을 제외하고는 공통의 자리수 선택 함수를 얻을 수 있다.
이 알고리즘에 기초하여, 기수 r이나 평방근의 역수의 자리수 집합의 용장도 ρ, 나머지 W[j] 및 연산수 X와 중간 결과 S[j]의 곱 P[j]의 표현에 이용하는 수 표현(자리수 올림 보존형이든 2진 SD 표현이든), 자리수 선택 함수 등을 정함으로써, 여러 가지의 구체적인 알고리즘을 설계할 수 있다.
이하에, 회로 실현에 관한 일반적 고찰을 한다. 상기 알고리즘에 기초하는 평방근의 역수 계산 회로는 조합 회로로 하여도 순서 회로로서도 실현된다. 파이프라인화도 가능하다.
먼저, 알고리즘의 단계 2의 반복의 1회분의 계산을 행하는 회로에 대해 고려한다. 도 2의 블럭도는 이 때의 회로 구성을 나타내고 있다. 여기서 W[j] 및 P[j]는 자리수 올림 보존형으로 표시되는 것으로 한다. 또, 온-더-플라이 변환을 이용하는 것으로 하고, S[j]의 2진 표현 S[j]=와 S[j]-2-j의 2진 표현 S[j]-을 유지하는 것으로 한다.
도 2에 있어서, 자리수 선택 회로(11)는 rW[j] 및 P[j]의 상위수 비트의 값으로부터 qj+1를 결정하는 자리수 선택 회로이다. 1자리수 승산기1(13)은 시프트된 연산수 X에 자리수 선택 회로(11)의 출력 qj+1을 곱하고, Xqj+1를 생성하는 승수가 1자리수의 승산기이다. 자리수 올림 보존 가산기W1(14)는 2P[j]와 1자리수 승산기1(13)의 출력을 더하여 합하는, 몇개의 자리수 올림 보존 가산기이다.
1자리수 승산기2(15)는 자리수 올림 보존 가산기W1(14)의 출력에 자리수 선택 회로(11)의 출력 qj+1을 곱하는 승수가 1자리수인 승산기이다. 자리수 올림 보존 가산기W2(12)는 rW[j]와 1자리수 승산기2(15)의 출력을 더하고 합쳐서 W[j+1]를 계산하는 몇개의 자리수 올림 보존 가산기이다. 자리수 올림 보존 가산기 P(16)는 P[j]와 1자리수 승산기1(13)의 출력을 더하고 합쳐서 P[j+1]를 계산하는 몇 개의 자리수 올림 보존 가산기이다.
온-더-플라이 변환기(10)는 S[j]=과 S[j]-로부터 S[j+1]=와 S[j+1]-
를 계산 하는 주로 셀렉터(selector)로 이루어지는 변환기이다.
상기 1자리수 승산기1(13), 자리수 올림 보존 가산기W1(14), 1자리수 승산기2(15), 자리수 올림 보존 가산기W2(12)는 W 갱신 회로(21)를 구성한다. 상기 1자리수 승산기1(13)과 자리수 올림 보존 가산기P(16)는 P 갱신 회로(22)를 구성한다. 온-더-플라이 변환기(10)는 S 갱신회로(20)를 구성한다.
평방근의 역수 계산 회로를 단계 2의 1회분의 계산을 1클록으로 행하는 순서 회로로서 실현하는 경우, 회로는 조합 회로부와 레지스터 군으로 이루어진다. 조합 회로부는 도 2에 나타낸 회로에, 레지스터에 초기치를 설정하기 위한 간단한 회로를 부가한 것이다. 레지스터로는 S[j]=와 S[j]-를 기억하기 위한 REG-SE와 REG-SM, W[j]를 기억하기 위한 REG-WC와 REG-WS, P[j]를 기억하기 위한 REG-PC와 REG-PS, X를 기억하기 위한 REG-X가 필요하다.
W[j]와 P[j]는 자리수 올림 보존형이기 때문에, 각각 레지스터가 2개 필요하다. 단계 2의 반복의 각 회에서, X의 가변(j+1자리수)의 시프트를 피하기 때문에, REG-X에는 Xr-j를 기억하고, 각 클록에서 1자리수 오른쪽으로 시프트한다. 이 순서 회로는 n+1클록으로 n자리수의 평방근의 역수 계산을 행한다. 클록의 사이클 시간은 n과 무관한 상수이다. 하드웨어량은 n에 비례한다. 자리수 슬라이스 구조가 규칙 바른 회로 구조에서, VLSI 실현에 적합하다.
물론, 1클록에 단계 2의 2회분 이상의 계산을 행하는 순서 회로로서도 실현할 수 있다.
평방근의 역수 계산 회로를 조합하여 회로로서 실현하는 경우, 회로는 단계 1을 계산하기 위한 간단한 회로와, 상술한 단계 2의 1회분의 계산을 행하는 회로 n개를 직렬로 접속함으로써 구성할 수 있다. 시프트는 배선에 의해서 실현된다. 회로의 지연(논리 게이트의 단수(段數))은 n에 비례한다. 하드웨어량은 n2에 비례한다. 규칙 바른 2차원 셀 배열 구조로 되고, VLSI 실현에 적합하다.
2. 다음에, 기수가 2인 경우에서의 평방근의 역수 계산의 하드웨어 알고리즘에 대하여 설명한다.
1.에서 설명한 알고리즘의 구체적인 예로서, 기수 r이 2로, 평방근의 역수의 자리수 집합이 {-1, O, 1}, 즉 용장도 ρ가 1로, 나머지 W[j] 및 곱 P[j]를 자리수 올림 보존형으로 나타내는 경우에 대해 고려한다.
기수가 2인 경우의 점화식은,
S[j+1]:=S[j]+qj+12-j-1,
W[j+1]:=2W[j]-(2P[j]+Xqj+12-j-1)qj+1,
P[j+1]:=P[j]+Xqj+12-j-1
이 된다. ρ=1이기 때문에, j=O에서의 초기치를 모든 X에 대해, S[0]=1, W[0]=1-X, P[0]=X로 할 수 있다. 이 때, O<W[0]<3/4이 된다.
자리수 선택 함수를 정하기 위해, 먼저 식 (13)과 (14)로부터, Lk와 Uk를 구한다.
U-1[j]=0
L0[j]=-2P[j]+2-j-1X
UO[j]=2P[j]+2-j-1X
L1[j]=0
X>1/4, P[j]>1/4, j≥0이기 때문에,
max (L0[j])<-3/8
min (U0[j])>1/2
이다. 이들 값은 P[j]이나 X, j의 값에 의하지 않는다. 따라서, (15)에 의해, -3/8<mO ≤-2-t 및 0<m1≤1/2-2-t가 만족되어야 한다. 따라서 t=2로 함으로써, mO=-1/4, m1=1/4로 할 수 있다. 이것은 j에 의존하지 않는다.
기수 2의 알고리즘은 아래와 같이 된다. -2<W[j]<3이기 때문에, W[j]는 정수부 3비트(부호 비트를 포함함)의 음수 2의 보수(補數) 표시의 자리수 올림 보존형으로 나타낼 수 있다. 따라서, qj+1는 2W[j]의 상위 6비트(자리수 올림 보존형의 6자리수)로부터 결정할 수 있다.
Algorithm[RSQRT_R2]
단계 1:
S[0]=:=1; S[0]-:=0; W[0]:=1-X; P[0]:=X;
단계 2:
for j:=0 to n-l do
{
(2W[j]e: 2W[j]의 소수점 이하 2비트 번째까지)
온-더-플라이 변환에 의해 S[j+1]=와 S[j+1]-를 구한다;
W[j+1]:=2W[j]-(2P[j]+Xqj+12-j-1)qj+1;
(자리수 올림 보존가산)
P[j+1]:=P[j]+Xqj+12-j-1;
(자리수 올림 보존가산)
}
얻어진 S[n]=가 구하는 S이다.
도 3는 상기 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다. 먼저, 초기치 S[0], W[0], P[0]에 적절한 값을 설정한다(단계 S10). 다음에, 평방근의 역수의 자리수 qj+1를 2W[j]의 견적치에 따라서 자리수 집합 {-1, 0, 1}로부터 선택한다. 동시에, 온-더-플라이 변환에 의해 S[j+1]=와 S[j+1]-를 구함과 동시에, 나머지 W[j]에 관한 점화식 W[j+1]:=2W[j]-(2P)[j]+Xqj+12-j-1)qj+1와, 곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+12-j-1에 대하여 자리수 올림 보존 가산을 j=0에서 n-1까지 n회 반복한다(단계 S11∼S14). 다음에, 얻어진 S[n]=를 구하는 S로서 출력한다(단계 S15).
다음에, 상기 기수 2의 알고리즘의 순서 회로 실현에 대해 고려한다. 회로는 1클록으로 알고리즘의 단계 2의 반복의 1회분의 계산을 행하는 것으로 한다. 도 4의 블럭도는 이 때의 회로 구성을 나타내고 있고, 몇개의 조합 회로 모듈과 레지스터 군으로 이루어진다.
도 4의 구성은 도 2의 구성과 같이 자리수 선택 회로(36)에 더하여, W 갱신회로(42)로서, 1자리수 승산기1(38), 자리수 올림 보존 가산기W1(39), 1자리수 승산기2(40), 자리수 올림 보존 가산기W2(41)를 가지고 있다. 또, P 갱신회로(46)로서, 1자리수 승산기1(38), 자리수 올림 보존 가산기P(45)를 가지고 있다. 또, S 갱신 회로(33)로서 온-더-플라이 변환기(32)를 가지고 있다.
또 도 2의 구성에 더하여, S[j]의 값을 기억하기 위한 레지스터 SE(30), SM(31)와, W[j]의 값을 기억하기 위한 레지스터 WS(34), WC(35)와, P[j]의 값을 기억하기 위한 레지스터 PS(43), PC(44)와, X를 기억하기 위한 시프트 레지스터 X(37)를 가진다.
자리수 선택 회로(36)는 6비트의 자리수 올림 증가 가산기와 간단한 정수 비교기로 이루어진다. qj+1를 드라이브하는 버퍼도 필요하게 된다. 온-더-플라이 변환기(32)는 주로 2개의 2-1셀렉터로 이루어진다. 1자리수 승산기1(38), 1자리수 승산기2(40)는 자리수 선택 회로(36)의 출력 qj+1의 값에 의해, 0이나, 데이터 입력 그 자체나, 데이터 입력의 비트 반전을 출력하는 멀티플렉서이다.
자리수 올림 보존 가산기W1(39), 자리수 올림 보존 가산기P(45)는 각각 자리수 올림 보존 가산기이며, 자리수 올림 보존 가산기W2(41)는 4-2가산기이다. 잘라낸 오차를 고려하면, W[j]와 P[j]는 2-n-c의 정확도로 계산하여야 한다. 단,
이다.
3. 다음에, 기수가 4인 경우에서의 평방근의 역수 계산의 하드웨어 알고리즘에 대하여 설명한다.
여기서는 기수 r이 4이고, 평방근의 역수의 자리수 집합이 {-2, -1, 0, 1, 2}, 즉 용장도 ρ가 2/3이고, 나머지 W[j] 및 곱 P[j]를 자리수 올림 보존형으로 나타내는 경우에 대해 고려한다.
기수가 4인 경우의 점화식은,
S[j+1]:=S[j]+qj+14-j-1,
W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1,
P[j+1]:=P[j]+Xqj+14-j-1
이 된다.
j=0에서의 초기치는 X<3/8일 때, S[0]=2, W[0]=1-4X, P[0]=2X, 3/8≤X<3/4일 때, S[0]=3/2, W[0]=1-9X/4, P[0]=3X/2, X≥3/4일 때, S[0]=1, W[0]=1-X, P[0]=X로 한다. 모든 X에 대해, S[0]=3/2, W[0]=1-9X/4, P[0]=3X/2로 하는 것도 가능하지만, j=0에 있어서도 j≥1인 경우와 동일한 자리수 선택 함수를 이용할 수 있도록 하기 위해서, 이들의 초기치를 이용한다.
자리수 선택 함수를 정하기 위해서, 먼저 식 (17)과 (18)부터 maxP[j]e(Lk[j])와 minP[j]e(Uk[j])를 구한다.
j≥1인 경우, (15)에 의해, 이하가 만족되어야 한다.
j≥1인 경우, P[j]e>X(X-1/2-(2/3)·4-j)-2-d+1이기 때문에, d=6, t=4로 함으로써,
m-1(P[j]e)=-trunc4(3(P[j]e+(2-d))
m0(P[j]e)=-trunc4(P[j]e+(2-d)
m1(P[j]e)= trunc4(P[j]e+(2-d)
m2(P[j]e)= trunc4(3(P[j]e+(2-d))
로 할 수 있다. trunc4()는 소수점 이하 4비트 번째까지 잘라내는 것을 나타낸다.
j=0인 경우에 대해 고려한다. X<3/8일 때, s[0]=2, W[0]=1-4X이기 때문에, 상기의 mk(P[j]e)에 대해, 4W[0]=4-16X>L-1[0] 또한 4W[0]e≥m
-1(P[0]e),
maxP[0]e(L0[0])<m0(P[0]e<minP[0]
e(U-1[0]), maxP[0]e(L1[0])<m1(P[0]
e<minP[0]e(U0[0], 4W[0]<U1[0] 또한 4W[O]e≤m2(P[0]e)-2-4이다.
3/8≤X<3/4일 때, S[0]=3/2, W[O]=1-9X/4이기 때문에, 4W[0]=4-9X>L-1[0] 또한 4W[0]e≥m-1(P[0]e), maxP[0]e(L0[0])<m0
(P[0]e)<minP[0]e(U-1[0]), maxP[0]e(L1[0])<m1(P[0]e)<minP[0]
e(U0[0], 4W[0]<U1[0] 또한 4W[0]e≤m2(P[0]e)-2
-4이다.
X>3/4일 때, S[0]=1, W[0]=1-X이기 때문에, 4W[0]=4-4X>L-1[0] 또한 4W[0]e ≥m-1(P[0]e), maxP[0]e(LO[0])<mO(P[0]
e)<minP[0]e(U-1[0]), maxP[0]e(L1[0])<m1(P[0]e)<minP[0]
e(U0[O]), 4W[0]<U1[0] 또한 4W[0]e≤m2(P[0]e≤-2
-4이다.
따라서, 어느 경우도 j≥1인 경우와 동일한 자리수 선택 함수를 이용할 수 있고, q1는 {-1, 0, 1}에서 선택된다.
기수 4의 알고리즘은 아래와 같이 된다. -2<W[j]<2이기 때문에, W[j]는 정수부 3비트(부호 비트를 포함함)의 음수 2의 보수 표시의 자리수 올림 보존형으로 나타낼 수 있다. 또, 0<P[j]<2이기 때문에, P[j]는 정수부 1비트의 부호 없는 자리수 올림 보존형으로 나타낼 수 있다. 따라서, qj+1는 4W[j]의 상위 8비트와 P[j]의 상위 7비트(모두 자리수 올림 보존형의 자리수)로부터 결정할 수 있다.
Algorithm[RSQRT_R4]
단계 1:
if X<3/8 then do
{S[0]=:=2; S[0]-:=1; W[0]:=1-4X; P[0]:=2X;}
else if 3/8≤X<3/4 then do
{S[0]=:=3/2; S[0]-:=1/2; W:[0]:=1-9X/4; P[0]:=3X/2;}
else do
{S[0]=:=1; S[0]-:=0; W[0]:=1-X; P[0]:=X;}
단계 2:
for j:=0 to n-1 do
{
(4W[j]e:4W[j]의 소수점 이하 4비트 번째까지)
(P[j]e:P[j]의 소수점 이하 6비트 번째까지)
온-더-플라이 변환에 의해 S[j+1]=와 S[j+1]-를 구한다;
W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1;
(자리수 올림 보존 가산)
P[j+1]:=P[j]+Xqj+14-j-1;
(자리수 올림 보존 가산)
}
도 5는 상기 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다. 먼저, 연산수 X가 3/8보다 작은지 어떤지를 판단하고(단계 S20), 작은 경우에는 초기치 S[0]에 2, W[0]에 1-4X, P[0]에 2X를 설정한다(단계 S22). 또, X가 3/8 이상의 경우에는 단계 S21에 있어서 X가 3/8 이상 3/4 미만인지 아닌지를 판단한다. 여기서 YES인 경우에는 초기치 S[0]에 3/2, W[0]에 1-9X/4, P[0]에 3X/2를 설정한다(단계 S23). 또, 단계 S21의 판단이 NO인 경우에는 단계 S24에 있어서, 초기치 S[0]에 1, W[0]에 1-X, P[0]에 X를 설정한다.
이와 같이 기수가 4인 경우에는 X의 값에 따라서 3개의 케이스로 나누어 각 케이스마다 적절한 초기치를 설정함으로써, j=O인 경우에도 j≥1인 경우와 동일한 자리수 선택 함수를 이용할 수 있도록 하고 있다.
다음에 평방근의 역수의 자리수 qj+1를 4W[j]의 견적치와 P[j]의 견적치에 따라서 자리수 집합 {-2, -1, 0, 1, 2}로부터 선택한다. 동시에, 온-더-플라이 변환에 의해 S[j+1]=와 S[j+1]-를 구함과 동시에, 나머지 W[j]에 관한 점화식 W[j+1]: =4W[j]-(2P[j]+Xqj+14-j-1)qj+1와, 곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xq
j+14-j-1에 대한 자리수 올림 보존 가산을 j=0으로부터 n-1까지 n회 반복한다(단계 S25∼S28). 다음에, 얻어진 S[n]=를 구하는 S로서 출력한다(단계 S29).
다음에, 상기 기수 4의 알고리즘의 순서 회로 실현에 대해 고려한다. 회로는 1클록에서 알고리즘의 단계 2의 반복의 1회분의 계산을 행하는 것으로 한다. 기수 4인 경우의 회로 구성은 도 4에 나타낸 기수 2의 회로 구성과 대략 동일하게 된다. 유일한 차이는 자리수 선택 회로에 P[j]의 상위수 자리수도 입력되는 것이다.
자리수 선택 회로는 8비트 자리수 올림 증가 가산기와, 7비트 자리수 올림 증가 가산기와 15비트 입력의 조합 회로로 이루어진다. qj+1를 드라이브하는 버퍼도 필요하다. 온-더-플라이 변환기(32)는 주로 2개의 2-1셀렉터로 이루어진다. 1자리수 승산기1(38)와 1자리수 승산기2(40)는 qj+1의 값에 의해, 0이거나, 데이터 입력 그 자체거나, 데이터 입력의 비트 반전이거나, 데이터 입력의 2배이거나, 데이터입력의 2배의 비트 반전을 출력하는 멀티플렉서이다. 자리수 올림 보존 가산기P(45)와 자리수 올림 보존 가산기W1(39)은 각각 자리수 올림 보존 가산기이며, 자리수 올림 보존가산기W2(41)는 4-2가산기이다.
이상, 상기 실시예에 의하면, 종래의 뉴턴법 등의 승산형의 평방근 역수 연산 회로와 달리, 시프트와 가감산과 1자리수의 승산이라는 간단한 계산의 반복에 의해, 도중에서 연산수의 역수나 평방근을 구하는 일없이 직접 평방근의 역수를 계산하도록 했기 때문에, 승산형의 것에 비해 회로가 작고, 또 제산기와 개평기를 단순히 조합시킨 것에 비해 고속이 된다.
또, 제산기와 개평기를 조합시켜 제산과 개평을 중첩시키는 방법에서는 제산, 개평보다도 지연 시간이 길어지지만, 본 발명에서는 지연 시간을 제산, 개평과 동일하게 할 수 있다.
본 발명에 의하면, 종래의 승산형 평방근 역수 연산 회로보다도 하드웨어가 간소화되며, 또한 종래의 제산기 및 개평기를 이용한 평방근 역수 연산 회로보다도 고속인 평방근의 역수 계산 방법, 계산 회로, 및 프로그램을 제공할 수 있다.
도 1은 기수가 r의 경우에서의 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다.
도 2는 단계 2의 반복의 1회분을 계산하는 회로의 블록도이다.
도 3은 기수가 2인 경우에서의 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다.
도 4는 기수가 2인 경우에서의 평방근의 역수 계산 회로의 블록도이다.
도 5는 기수가 4인 경우에서의 평방근의 역수 계산의 알고리즘을 플로차트로 나타낸 도면이다.
Claims (8)
- 컴퓨터 시스템에서 자리수 선택 회로, 1자리수 승산기, 가산기, 변환기를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 방법으로서,j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X와 중간 결과 S[j]와의 곱을 P[j]로 했을 때에,초기치 S[0], W[0], P[0]에 적절한 값을 설정하는 단계와,상기 자리수 선택 회로에 의해 평방근의 역수의 자리수 qj+1를 자리수 집합{-a, …, -1, 0, 1, …, a}로부터 선택하고,1자리수 승산기, 가산기, 변환기를 이용하여,중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+ qj+1r-j-1,나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1,곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+1r-j-1에 대하여 j=0에서 n-1까지 n회의 반복 연산을 행하는 단계를 포함하는평방근의 역수 계산 방법.
- 컴퓨터 시스템에서 자리수 선택 회로, 1자리수 승산기, 가산기, 변환기를 이용하여 기수가 2일 때의 평방근의 역수를 계산하는 방법으로서,j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X(1/4<X<1)와 중간 결과를 S[j]의 곱을 P[j]로 했을 때에,초기치 S[0]에 1, W[0]에 1-X, P[0]에 X를 설정하는 단계와,상기 자리수 선택 회로에 의해, 평방근의 역수의 자리수 qj+1를 2W[j]의 견적 치에 따라서 자리수 집합 {-1, 0, 1}로부터 선택하고,상기 변환기에 의해, j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,상기 1자리수 승산기와 상기 가산기를 이용하여,나머지 W[j]에 관한 점화식 W[j+1]:=2W[j]-(2P[j]+Xqj+12-j-1)qj+1과, 곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+12-j-1에 대하여 j=O에서 n-1까지 n회의 반복 연산을 행하는 단계를 포함하는 평방근의 역수 계산 방법.
- 컴퓨터 시스템에서 자리수 선택 회로, 1자리수 승산기, 가산기, 변환기를 이용하여 기수가 4일 때의 평방근의 역수를 계산하는 방법으로서,j회의 반복 계산 후의 중간 결과를 S[j], 나머지를 W[j], 연산수 X(1/4<X<1)와 중간 결과를 S[j]의 곱을 P[j]로 했을 때에,연산수 X가 3/8보다 작은 경우에는 초기치 S[0]에 2, W[0]에 1-4X, P[0]에 2X를 설정하고, 연산수 X가 3/8 이상 3/4 미만인 경우에는 초기치 S[0]에 3/2, W[0]에 1-9X/4, P[0]에 3X/2를 설정하고, 연산수 X가 3/4 이상인 경우에는 초기치 S[0]에 1, W[0]에 1-X, P[0]에 X를 설정하는 단계와,상기 자리수 선택 회로에 의해, 평방근의 역수의 자리수 qj+1를 4W[j]의 견적 치에 따라서 자리수 집합 {-2, -1, 0, 1, 2}로부터 선택하고,상기 변환기에 의해, j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,상기 1자리수 승산기와 상기 가산기를 이용하여,나머지 W[j]에 관한 점화식 W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1과, 곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+14-j-1에 대하여 j=0에서 n-1까지 n회의 반복 연산을 행하는 단계를 포함하는 평방근의 역수 계산 방법.
- j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 회로로서,소정의 점화식을 이용하여 j=0에서 n-1까지 n회의 반복 연산에서 반복의 1회분을 계산하기 위한 회로 구성으로서,rW[j] 및 P[j]의 상위수 비트의 값으로부터 평방근의 역수의 자리수 qj+1를 결정하는 자리수 선택 회로,연산수 X에 상기 자리수 선택 회로의 출력을 곱하고, Xqj+1를 생성하는 제1 1 자리수 승산기,2P[j]와 상기 제1 1자리수 승산기의 출력을 더하여 합치는 제1 자리수 올림 보존 가산기,상기 제1 자리수 올림 보존 가산기의 출력에 상기 자리수 선택 회로의 출력을 곱하는 제2 1자리수 승산기,rW[j]와 상기 제2 1자리수 승산기의 출력을 더하여 합쳐서 W[j+1]를 계산하는 제2 자리수 올림 보존 가산기,P[j]와 상기 제1 1자리수 승산기의 출력을 더하여 합쳐서 P[j+1]를 계산하는 제3 자리수 올림 보존 가산기,S[j]를 상기 자리수 선택 회로의 출력에 따라서 S[j+1]로 변환하는 변환기를 포함하는 평방근의 역수 계산 회로.
- 제4항에 있어서,S[j]의 값을 기억하기 위한 레지스터, W[j]의 값을 기억하기 위한 레지스터, P[j]의 값을 기억하기 위한 레지스터, X를 기억하기 위한 레지스터를 더 포함하는 평방근의 역수 계산 회로.
- j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 r일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서,초기치 S[0], W[0], P[0]에 적절한 값을 설정하는 기능; 및평방근의 역수의 자리수 qj+1를 자리수 집합 {-a, …, -1, 0, 1, …, a}로부터 선택하고,중간 결과 S[j]에 관한 점화식 S[j+1]:=S[j]+qj+1r-j-1,나머지 W[j]에 관한 점화식 W[j+1]:=rW[j]-(2P[j]+Xqj+1r-j-1)qj+1,곱 P[j]에 관한 점화식 P[j+1]:= P[j]+Xqj+1r-j-1를 이용하여 j=0에서 n-1까지 n회의 반복 연산을 행하는 기능;을 컴퓨터에 실현시키는 프로그램이 저장된 기록매체.
- j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 2일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서,초기치 S[0]에 1, W[0]에 1-X, P[0]에 X를 설정하는 기능; 및평방근의 역수의 자리수 qj+1를 2W[j]의 견적치에 따라서 자리수 집합 {-1, 0, 1}로부터 선택하고,j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에,나머지 W[j]에 관한 점화식 W[j+1]:=2W[j]-(2P[j]+Xqj+12-j-1)qj+1과,곱 P[j]에 관한 점화식 P[j+1]:=P[j]+Xqj+12-j-1를 이용하여 가산을 행하는 기능;을 컴퓨터에 실현시키는 프로그램이 저장된 기록매체.
- j회의 반복 계산 후의 중간 결과 S[j], 나머지 W[j], 연산수 X(1/4<X<1)와 중간 결과 S[j]의 곱 P[j]를 이용하여 기수가 4일 때의 평방근의 역수를 계산하는 기능을 컴퓨터에 실현시키기 위한 프로그램이 저장된 기록매체로서,연산수 X가 3/8보다 작은 경우에는 초기치 S[0]에 2, W[0]에 1-4X, P[0]에 2X를 설정하고, 연산수 X가 3/8 이상 3/4 미만인 경우에는 초기치 S[0]에 3/2, W[0]에 1-9X/4, P[0]에 3X/2를 설정하고, 연산수 X가 3/4 이상인 경우에는 초기치 S[0]에 1, W[0]에 1-X, P[0]에 X를 설정하는 기능; 및평방근의 역수의 자리수 qj+1를 4W[j]의 견적치와 P[j]의 견적치에 따라서 자리수 집합 {-2, -1, 0, 1, 2}로부터 선택하고,j=0에서 n-1까지에 대해 중간 결과 S[j]로부터 S[j+1]를 구함과 동시에, 나머지 W[j]에 관한 점화식 W[j+1]:=4W[j]-(2P[j]+Xqj+14-j-1)qj+1과, 곱 P[j]에 관한 점화식 P[j+1]:= P[j]+Xqj+14-j-1를 이용하여 가산을 하는 기능;을 컴퓨터에 실현하는 프로그램이 저장된 기록매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001165098A JP3563043B2 (ja) | 2001-05-31 | 2001-05-31 | 平方根の逆数計算方法、計算回路、及びプログラム |
JPJP-P-2001-00165098 | 2001-05-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020092244A KR20020092244A (ko) | 2002-12-11 |
KR100506470B1 true KR100506470B1 (ko) | 2005-08-05 |
Family
ID=19007814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0030598A KR100506470B1 (ko) | 2001-05-31 | 2002-05-31 | 평방근의 역수 계산 방법, 계산 회로, 및 기록매체 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7266578B2 (ko) |
JP (1) | JP3563043B2 (ko) |
KR (1) | KR100506470B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360241B1 (en) * | 1999-02-01 | 2002-03-19 | Compaq Information Technologies Goup, L.P. | Computer method and apparatus for division and square root operations using signed digit |
US6999986B2 (en) * | 2002-06-24 | 2006-02-14 | Oren Semiconductor Ltd. | Calculating circuit and method for computing an N-th root and a reciprocal of a number |
EP2341425A1 (en) * | 2009-12-30 | 2011-07-06 | STMicroelectronics (Grenoble 2) SAS | control of electric machines involving calculating a square root |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0223429A (ja) * | 1988-07-13 | 1990-01-25 | Fujitsu Ltd | 平方根逆数の最適化処理方法 |
JPH02287821A (ja) * | 1989-04-07 | 1990-11-27 | Weytec Corp | 高速計算を行うための方法及び装置 |
US5305248A (en) * | 1993-04-23 | 1994-04-19 | International Business Machines Corporation | Fast IEEE double precision reciprocals and square roots |
KR19980032114A (ko) * | 1996-10-31 | 1998-07-25 | 윤종용 | 제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치 |
US5870321A (en) * | 1996-06-28 | 1999-02-09 | Intel Corporation | Method and apparatus to reduce the size of rom used in mathematical computatiions |
KR19990072273A (ko) * | 1998-02-02 | 1999-09-27 | 포만 제프리 엘 | 초등함수값을고정밀도로어림계산하는시스템및방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5253215A (en) * | 1989-12-29 | 1993-10-12 | Motorola, Inc. | Method and apparatus for high speed determination of jth roots and reciprocals of jth roots |
JP2722858B2 (ja) * | 1991-06-03 | 1998-03-09 | 松下電器産業株式会社 | 開平演算装置 |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6175907B1 (en) * | 1998-07-17 | 2001-01-16 | Ip First, L.L.C | Apparatus and method for fast square root calculation within a microprocessor |
-
2001
- 2001-05-31 JP JP2001165098A patent/JP3563043B2/ja not_active Expired - Fee Related
-
2002
- 2002-05-31 US US10/160,966 patent/US7266578B2/en not_active Expired - Fee Related
- 2002-05-31 KR KR10-2002-0030598A patent/KR100506470B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0223429A (ja) * | 1988-07-13 | 1990-01-25 | Fujitsu Ltd | 平方根逆数の最適化処理方法 |
JPH02287821A (ja) * | 1989-04-07 | 1990-11-27 | Weytec Corp | 高速計算を行うための方法及び装置 |
US5305248A (en) * | 1993-04-23 | 1994-04-19 | International Business Machines Corporation | Fast IEEE double precision reciprocals and square roots |
US5870321A (en) * | 1996-06-28 | 1999-02-09 | Intel Corporation | Method and apparatus to reduce the size of rom used in mathematical computatiions |
KR19980032114A (ko) * | 1996-10-31 | 1998-07-25 | 윤종용 | 제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치 |
KR19990072273A (ko) * | 1998-02-02 | 1999-09-27 | 포만 제프리 엘 | 초등함수값을고정밀도로어림계산하는시스템및방법 |
Also Published As
Publication number | Publication date |
---|---|
US7266578B2 (en) | 2007-09-04 |
KR20020092244A (ko) | 2002-12-11 |
JP3563043B2 (ja) | 2004-09-08 |
JP2002358196A (ja) | 2002-12-13 |
US20030028574A1 (en) | 2003-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8959134B2 (en) | Montgomery multiplication method | |
CA2225899A1 (en) | A method and apparatus for finite field multiplication | |
US10768898B2 (en) | Efficient modulo calculation | |
AU2005256094A1 (en) | Division and square root arithmetic unit | |
US7543008B1 (en) | Apparatus and method for providing higher radix redundant digit lookup tables for recoding and compressing function values | |
Gokhale et al. | Design of area and delay efficient Vedic multiplier using Carry Select Adder | |
US10635397B2 (en) | System and method for long addition and long multiplication in associative memory | |
US4346451A (en) | Dual moduli exponent transform type high speed multiplication system | |
US20010054053A1 (en) | Method and apparatus for finite field multiplication | |
JPS6135575B2 (ko) | ||
US5862068A (en) | Arithmetic circuit for calculating a square-root of a sum of squares | |
KR100506470B1 (ko) | 평방근의 역수 계산 방법, 계산 회로, 및 기록매체 | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
JP3660075B2 (ja) | 除算装置 | |
JPH0234054B2 (ko) | ||
KR100480997B1 (ko) | GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치 | |
JP6863907B2 (ja) | 演算回路 | |
KR20030067982A (ko) | 오차를 최소화할 수 있는 제곱근기 | |
Mandelbaum | A method for calculation of the square root using combinatorial logic | |
JP2578482B2 (ja) | 浮動小数点演算器 | |
US7403966B2 (en) | Hardware for performing an arithmetic function | |
JP2803442B2 (ja) | 開平装置 | |
JP4293665B2 (ja) | 剰余乗算装置 | |
US20210026916A1 (en) | Matrix multiplication in hardware using modular math | |
JP2777265B2 (ja) | 高基数開平演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080618 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |