KR940010806B1 - 연산처리 방법과 연산처리장치 - Google Patents
연산처리 방법과 연산처리장치 Download PDFInfo
- Publication number
- KR940010806B1 KR940010806B1 KR1019900016227A KR900016227A KR940010806B1 KR 940010806 B1 KR940010806 B1 KR 940010806B1 KR 1019900016227 A KR1019900016227 A KR 1019900016227A KR 900016227 A KR900016227 A KR 900016227A KR 940010806 B1 KR940010806 B1 KR 940010806B1
- Authority
- KR
- South Korea
- Prior art keywords
- digit
- value
- digits
- solution
- quotient
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 53
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000003672 processing method Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
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
-
- 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- 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
-
- 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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49952—Sticky bit
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49957—Implementation of IEEE-754 Standard
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
내용 없음.
Description
제 1 도는 본 발명의 제 1실시예에 의한 산술연산처리의 순서도.
제 2 도는 본 발명을 설명하는 수선(number line)을 도시한 도면.
제 3 도는 본 발명을 제산에 적용한 처리의 순서도.
제 4 도는 본 발명의 평방근 연산에 적용한 처리의 순서도.
제 5 도는 본 발명의 실시예의 승산기의 구성을 도시한 블록도.
* 도면의 주요부분에 대한 부호의 설명
101,301,401 : 근사연산처리 102,109,302,308,402,408 : 반올림처리
103,303,403 : 역함수연산처리 104,105,304,404 : 비교판단처리
200 : 근사해가 취할 수 있는 영역 201 : 참값
505 : 부분곱 생성회로 506 : 감수변환회로
507 : 부분곱 가산회로
본 발명은 산술연산처리방식과 연산처리장치에 관한 것으로서, 특히 근사 연산에 의해서 구한 연산결과로부터, 참값을 반올림하여 얻은 값과 동일한 결과를 얻기 위한 방법과, 이 방법을 고속으로 실현하는 연산처리장치에 관한 것이다.
연산처리장치에 있어서, 함수의 해(solution)를 고속으로 구하는 방법으로서, 수속형 연산(convergence-eype arithmetic operation)이 있다. 예를들면, 제산이나 평방근연산등은 뉴튼법(Newton's method)에 의해 가산과 승산을 반복함으로서 행할 수 있다. 이 방법에 의하면(Z=X/Y)의 제산(division)은 최초의 (1/Y)의 근사치(approximate value)(Ro)를 테이블을 참조해서 구하고,
Ri=Ri-1(2-Ri-1Y)……………………………………………①
의 점화식(recurrence formula)을 n회 반복 사용해서 (1/Y)의 근사해(approximate solution)(Rn)를 구할 수 있고, 그후 근사해(Rn)와 주어진 값(X)을 승산해서 (X/Y)의 근사치를 얻을 수 있다.
또, 평방근 연산(square root caculation)(Y=X1/2)에 대해서도 최초의 (1/X1/2)의 근사치(Ro)를, 테이블을 참조해서, 구하고 ①식의 대신에 다음의 점화식을 n회 반복 사용해서 (1/X1/2)의 근사해(Rn)을 구할 수 있다.
Ri(1/2)Ri-1(3-Ri-2 2X)………………………………………②
최종적으로 (Rn)과 (X)를 승산해서 (X1/2)의 근사치를 얻을 수 있다.
종래는 연산결과로서 상기한 바와같이 해서 필요하게 되는 정밀도의 근사치를 구하고, 구한 근사치를 지정된 반올림모드에서 결정된 유효자리수로 직접 반올림함으로써, 최종결과를 얻는다.
이상 설명한 바와같은 연산방식에서는 근사연산에 의해서 얻어진 근사치를 직접 반올림함으로서 결과를 얻고 있었다. 반올림의 방법으로서, 몇가지 방법이 있다. 예를들면, IEEE754의 부동소수점 규격에서는, 4개의 반올림모드가 정해져 있다. 즉, 최근접 반올림(round to nearest), 정방향반올림(round toward+infinity), 부방향 반올림(round toward-infinity), O방향반올림(round toward zero)이다. 이들 반올림 을 정확하게 행하려면, 최소유효 자리수의 1자리수 하위까지의 정확한 값과 최소유효자리수의 2자리수 하위 이하의 값이 0인지 아닌지의 정보가 필요하게 된다. 그러나, 상기와 같은 함수의 근사해를 구하는 연산에 있어서는, 그 연산 알고리즘과 사용하는 하드웨어로부터 최대오차는 예측할 수 있으나 얻어진 결과가 참값에 대해서 어느 정도의 오차를 갖는지는 알 수 없다. 따라서, 얻어진 근사해로부터 얻을 수 있는 최소유효 자리수보다 1자리수 낮은 자리수까지의 값과 최소유효자리수보다 2자리수 낮은 자리수의 값이 0인지 아닌지의 정보는, 참값에 대한 그들 정보와 다를 가능성이 있으며, 근사해를 직접 반올림함으로서 얻어지는 결과는, 참값을 반올림함으로서 얻어지는 결과와 다른 경우가 있다. 근사치를 구한 결과가 참값을 구한 결과와 다른 비율은 근사치의 정밀도에 의존하고, 정밀도를 높게하면 할수록, 그 비율은 떨어진다. 그러나, 연산정밀도를 높이기 위해서는 연산시간이 오래 걸리거나, 사용하는 하드웨어의 연산의 자리수를 크게하지 않으면 안된다는 문제점을 가지고 있었다.
본 발명은 이러한 점에 비추어 이루어진 것으로서, 얻어진 함수의 근사치로부터, 참값을 반올림한 경우와 동일한 결과를 얻는 연산처리방법과, 이 방법을 고속으로 실현하는 연산처리장치를 제공하는 것을 목적으로한다.
상기 목적을 달성하기 위한 본 발명의 제 1측면에 따르면, 근사해(approximate solution)(Ya)와 참값(Y) 사이의 오차가 최종해(final solution)에 대해서 최소유효자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도로, 주어진 값(X)에 대해서 함수(Y=F(X))의 근사해(Ya)를 구하는 단계와, 이 근사해(Ya)를 반올림해서, 최종해의 최소유효자리수보다 1자리수 이상 낮은 자리수부터, 근사해(Ya)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수이상 높은 상위자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정해(interim solution)(Yr)를 구하는 단계와, 이 잠정해(Yr)로부터 함수(F)의 역함수(F-1)의 값(Xr=F-1(Yr))을 구하는 단계와, 주어진 값(X)과 역함수의 값(Xr)이 동일한 때에는 첨부자리수(S)를 0으로하고, 주어진 값(X)과 역함수의 값(Xr)이 다른 때에는 주어진 값(X)과 역함수의 값(Xr)의 대소관계로부터 참값(Y)가 잠정해(Yr)의 대소관계를 판정하고, 참값(Y)이 잠정해(Yr)보다 작은 경우에 첨부자리수(S)를 -1로하고, 나머지의 경우에는 첨부자리수(S)를 1로하고, 다음에 상기 잠정해(Yr)의 최하위자리수보다 1자리수 낮은 자리수에 상기 첨부자리수(S)를 가산하고, 소정의 반올림을 행하여 최종해를 구하는 단계로 이루어진 연산처리방법을 제공한다.
본 발명의 제 2측면에 따르면, 상기 제 1측면에 따른 연산처리방법에 있어서, 역함수(Xr)와 주어진 값(X) 사이의 차이에 대한 절대치의 최대치가 주어진값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다 작아지도록, 근사해(Ya)와 잠정해(Yr)을 구하고, 상기 주어진 값(X)의 최소유효자리수의 가중치를 가진 역함수(Xr)의 자리수보다 1자리수이상 낮은 하위자리수의 값을 검사해서, 역함수(Xr)와 주어진값(X) 사이의 대소관계를 판정함으로서, 참값(Y)과 잠정해(Yr)의 대소관계를 판정하는 연산처리방법을 제공한다.
본 발명의 제 3측면에 따르면, 피승수와 승수를 입력하고, 상기 피승수와 상기 승수의 곱에 의해 복수의 부분곱을 생성하는 부분곱생성수단과, 감수를 입력하고, 감수의 부호반전치 또는 감수의 하위자리수의 일부의 부호반전치를 생성하는 감수변환수단과, 상기 피승수와 상기 승수의 곱과 상기 감수사이의 대소관계로부터 첨부자리수를 구하기 위하여, 상기 감수변환수단에 의해 생성된 부호반전치와 상기 부호곱생성수단에 의해 생성된 복수의 부분곱을 자리맞춤하여 가산하는 복수의 부분곱가산수단을 가진 연산처리장치를 제공한다.
본 발명은 상기한 구성에 의해, Y=F(X)의 근사해(Ya)를 구하는 단계에서, 근사해(Ya)와 참값 사이의 오차가 최종해에 대해서 최소유효 자리수보다 2자리수 낮은 자리수의 가중치보다 작은 정밀도로 근사해를 구할 수 있다. 이 근사해(Ya)는 연산알고리즘과 사용하는 하드웨어에 의해서 결정되는 정밀도를 가지고, 일반적으로 유효자리수에 비교해서 충분히 큰자리수를 가지고 있다. 이 근사해(Ya)로부터 유효자리수보다 1자리수 많은 자리수로 표현할 수 있는 가장 가까운 잠정해(Yr)를 구하면, 최소유효자리수보다 1자리수 낮은 자리수까지 정확하게 구할 수 있게 된다. 이 잠정해(Yr)로부터 역함수(Xr=F-1(Yr))를 구하고, 주어진 값(X)과 비교함으로서, 잠정해와 참값 사이의 대소관계를 판정해서, 첨부자리수(S)를 구함으로서, 최소유효 자리수보다 2자리수 낮은 자리수의 값이 판단된다. 최종적으로 잠정해(Yr)보다 1자리수 낮은 자리수에 첨부자리수(s)를 더해서 반올림을 행함으로서, 참값을 반올림한 경우와 동일결과를 얻을 수 있다.
또한, 본 발명은 상기한 구성에 의해, 잠정해(Yr)로부터 구해진 역함수(Xr)와 주어진 값(X) 사이의 차이에 대한 절대치의 최대치를, 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다 작은 범위내에서, 구하기 때문에, 역함수(Xr)와 주어진 값(X)과의 감산을 행하는 일없이, 역함수(Xr)의 주어진 값(X)의 최소유효자리수 보다 1자리수이상 낮은 자리수의 값을 검사함으로써, 참값(Y)과 잠정해(Yr)의 대소관계를 판정할 수 있다.
또한, 본 발명은 상기한 구성에 의해 피승수와 승수와의 곱과, 감수의 부호반전치를 가산한 결과를 가산수단으로부터 얻을 수 있고, 이 결과는 즉, 피승수와 승수와의 곱으로부터 감수를 감산한 것이다. 이 연산장치를 사용하면 참값(Y)과 잠정해(Yr)의 대소관계를 판정할 수 있다.
본 발명의 실시예에 대하여 도면을 참조하면서 설명한다. 제 1 도는 본 발명의 연산처리방식의 처리의 흐름을 도시한 순서도이다. 제 1 도에 있어서, (101)은 주어진 함수(F)의 근사연산처리이고, (102), (109)는 반올림 처리이고, (103)은 주어진 함수(F)의 역함수연산처리이고, (104), (105)는 비교판정처리 이고, (106), (107), (108)은 값의 대입처리이다. 다음에 처리의 흐름을 상세하게 설명한다.
우선, 근사연산처리(101)에서, 주어진 값(X)에 대해서, 함수(F(X))의 근사연산을 행하여 근사해를 구한다. 이 근사해는 예를들면 뉴톤법등에 의해서 구할 수 있고, 이 경우에는 승산기와 가산기를 사용함으로서 연산된다. 이 연산에 있어서는, 참값과의 오차가 최종해에 필요한 최소유효자리수보다 2자리수 낮은자리수의 크기보다 작은 정밀도로 근사해를 구한다. 예를들면, IEEE754 규격의 배정밀도(double precision)에 의하면, 가수부(假數部)의 유효자리수가 53자리수이고, 최상위자리수가 2°의 가중치의 자리수이고, 취하위자리수가 2-52의 가중치의 자리수이다. 또한, 구해진 근사해의 가수부(Ya)는 참값의 가수부를 (Y)라고 하면,
│Y-Ya│〈2-54……………………………………………………③
이 성립한다.
제 2 도는 본 발명을 설명하기 위한 수선(number line)의 도면이다. 제 2 도에 있어서, 3자리수의 숫자는 각각 최소유효자리수의 값, 다음의 낮은 자리수의 값, 즉, 2-52, 2-53, 2-54자리수의 눈금을 표시한다. 따라서 제 2 도의 1눈금은 2-54의 간격을 가진다. 예를들면 참값(Y)이 제 2 도의 수선상에서 (201)로 표시한 점에 있다고 가정한다. 참값(Y)은 무한한 정밀도와 자리수를 가지고 있기 때문에, 무한소의 눈금상에 존재한다. 한편, 근사해(Ya)는 연산알고리즘과 사용하는 하드웨어에 의해서 결정되는 자리수를 가지고 있으며, 통상 최대오차 즉, 2-54의 자리수보다 한층 낮은 자리수까지의 자리수를 가진다. 이 경우에는 ③식으로부터 근사해(Ya)는 제 2 도에 있어서 점(202)으로부터 점(203)까지 표시되는 2점간의 2-53의 영역(200)에 존재하게 된다.
다음에 제 1 도의 반올림처리(102)에 의해, 근사연산처리(101)에서 구해진 근사치(Ya)를 반올림해서, 유효자리수보다 1자리수이상 많고, 또한 근사해(Ya)의 최대오차를 초월하는 자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정해(Yr)을 구한다. 예를들면, 유효자리수보다 1자리수만큼 많은 54자리수의 잠정해(Yr)을 구하면, 제 2 도의 수선상에서는 잠정해(Yr)는 점(204) 또는 점(205)의 2점중 어느 하나이다. 즉, 근사해(Ya)가 점(202)와 점(206) 사이에 존재하도록 구해진 경우에는 점(204)가 잠정해(Yr)로 되고, 근사해(Ya)가 점(203)과 점(206)과의 사이에 존재하도록 구해진 경우에는, 점(205)가 잠정해(Yr)로 된다. 따라서,
│Y-Yr│〈2-53…………………………………………………………④
가 성립한다. 즉, 이 잠정해(Yr)의 값은 최소유효자리수보다 1자리수 낮은 자리수까지 구할 수 있게 된다.
다음에, 역함수연산처리(103)에 의해 이 잠정해(Yr)로부터 역함수(Xr=F-1(Yr))를 구한다.
다음에, 비교판정처리(104)에서, 역함수(Xr)와 주어진 값(X)을 비교한다. 이 판정에서, 역함수(Xr)와 주어진 값(X)이 동일한 경우에는 구한 잠정해(Yr)가 참값(Y)과 동일하다는 것을 나타내고 있다. 이와같은 경우에는 대입처리(106)에 의해 첨부자리수(S)를 0으로 한다. 또한, 주어진 값(X)을 역함수(Xr)와 비교해서 다른 경우에는, 잠정해(Yr)과 참값(Y)와의 사이에 오차를 가지고 있다는 것을 나타내고 있다. 이와같은 경우에는 비교판정처리(105)에서 잠정해(Yr)가 참값(Y)에 대해서 어느 쪽에 오차를 가지고 있는지를 판정한다. 즉, 주어진 값(X)과 역함수(Xr)과의 대소관계와 함수(F)의 성질로부터, 참값(Y)과 잠정해(Yr)의 대소관계를 판정한다. 이 대소관계의 판정은 주어진 함수(F)가 단조증가함수 또는 단조감소함수인 경우에는 주어진 값(X)과 역함수(Xr)의 대소관계로부터 용이하게 판단할 수 있다. 예를들면, 함수(F)가 단조증가함수인 경우에, 주어진 값(X)이 역함수(Xr)보다 큰 경우에는 참값(Y)은 잠정해(Yr)보다 크고, 주어진 값(X)이 역함수(Xr)보다 작은 경우에는 참값(Y)은 잠정해(Yr)보다 작다. 이상과 같은 판정으로부터 참값(Y)이 잠정해(Yr)보다 작은 경우에는 처리(107)에 의해 첨부자리수(S)를 -1로하고, 참값(Y)이 잠정해(Yr)보다 큰 경우에는 처리(108)에 의해 첨부자리수(S)를 1로 한다. 제 2 도의 예에서는 잠정해(Yr)가 점(204)인 경우에는 (S)는 1로되고, 잠정해(Yr)이 점(205)인 경우에는 (S)는 -1로 된다.
최종적으로 반올림처리(109)에 의해 잠정해(Yr)의 최하위자리수보다 1자리수 낮은 자리수에 첨부자리수(S)를 가산하여 결과가 유효자리수로 되도록, 지정된 반올림 모드로 반올림을 행하여, 연산결과(Ye)를 구할 수 있다. 잠정해(Yr)의 최하위자리수보다 1자리수 낮은 자리수에 첨부자리수(S)를 가산한 데이터의 자리수는, 유효자리수보다 2자리수 많은 것이 되고, 제 2 도에서는 점(206)으로 표시된다. 제 2 도로부터 알수있는 바와같이, 점(206) 및 참값(201)이 최소유효자리수가 1만큼 다른 2개의 점(204)과 점(207) 사이에 있으며, 또한 점(204)과 점(207)의 중간점(205)의 같은 쪽에 있으므로, 유효자리수에 반올림을 행한 경우에는, 동일효과를 얻을 수 있다.
제 3 도는 본 발명을 제산에 적용한 경우의 연산처리의 흐름을 도시한 순서도이다. 이하의 설명에서는 IEEE7 54규격의 배정밀도를 예로하고, 또한 정규화된 가수부의 연산에 대해서 설명한다. 즉, 가수부의 유효자리수가 53자리수이고, 최상위자리수가 2°의 가중치의 자리수이고, 최하위자리수가 2-52의 가중치의 자리수이다. 또한, 피제수(X) 및 제수(Y)를 모두 정수로 하면, 1X, Y〈2의 관계에 있다.
제 3 도에 있어서, (301)은 제 1 도에 도시한 함수(F)의 근사연산처리(101)에 대응하는 것으로서, 주어진 정의 값(X,Y)의 제산(X/Y)의 근사몫(Za)를 구하는 근사제산처리이다. (302), (308)은 반올림처리하여, 제 1 도에 도시된 (102), (109)와 마찬가지의 반올림처리를 행한다. (303)은 제 1 도에 도시된 역함수연산처리에 대응하는 것으로서, (Z=X/Y)의 역함수 즉, 곱 Zr×Y를 구하는 승산처리이다. (304)는 비교판정처리이며, 제 1 도에 도시된 (104), (105)에 대응하고 있다. 또, (305), (306), (307)은 값의 대입처리이며, 제 1 도에 도시된 (106), (107), (108)에 각각 대응하고 있다.
제산처리의 흐름에 대하여 제 3 도를 참조하면서 설명한다. 여기서는, 먼저 피제수(X)가 제수(Y)보다 작지 않은 경우를 고려하면, 몫(Z=X/Y)은 (1Z〈2)로 된다. 먼저, (301)의 근사제산처리에서 근사몫(Za)을 구한다. 이 근사몫(Za)의 정밀도는, 참값(Z=X/Y)과의 오차가 최종해에 대해서 최소유효자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도를 가진다. 따라서, IEEE754규격의 배정밀도에 의하면, 최소유효자리수의 가중치가 2-52이므로 구해진 근사몫(Za)은,
│Z-Za│〈2-54…………………………………………………………⑤
가 성립한다.
다음에, 반올림처리(302)에서 근사몫(Za)을 반올림해서 최종적인 몫의 최소유효 자리수보다 1자리수이상 낮은 자리수부터 근사몫(Za)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수이상 높은 자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정몫(Zr)을 구한다. 예를들면, 유효자리수보다 1자리수만큼 많은 54자리수의 잠정몫(Zr)을 구하면,
│Z-Zr│〈2-53…………………………………………………………⑥
이 된다.
다음에, 승산처리(303)에 의해, 이 잠정몫(Zr)으로부터 Z=X/Y의 역함수 즉, 주어진 값과 잠정몫의 곱(Xr=Zr×Y)을 구한다.
다음에, 비교판정처리(304)에 의해 상기 곱(Xr)과 주어진 값(X)를 비교함으로서, 잠정몫(Zr)이 참값(Z)에 대해서 어느쪽으로 오차를 가지고 있는지의 여부를 판정한다. 이 경우에는 주어진 값(X),(Y)가 정이라고 하면 제산(X/Y)에 있어서는 주어진값(X)에 대해서 참값(Z)이 단조증가함수이기 때문에, 주어진 값(X)과 상기 곱(Xr)의 비교만으로 첨부자리수(S)를 구할 수 있다. 즉, 주어진 값이 (X)이 상기 곱(Xr)보다 작은 경우에는 참값(Z)은 잠정몫(Zr)보다 작으므로 처리(305)에 의해 첨부자리수(S)를 -1로하고, 주어진값(X)과 상기 곱(Xr)이 동일한 경우에는 참값(Z)은 잠정몫(Zr)과 동일하므로, 처리(306)에 의해 첨부자리수(S)를 0으로하고, 주어진 값(X)이 상기 곱(Xr)보다 큰 경우에는 참값(Z)은 잠정몫(Zr)보다 크므로 처리(307)에 의해 첨부자리수(S)를 1로 한다.
최종적으로 반올림처리(308)에 의해 잠정몫(Zr)의 최하위자리수보다 1자리수 낮은 자리수 첨부자리수(S)를 가산하여 결과가 유효자리수로 되도록, 지정된 반올림모드에 의해서 반올림을 행함으로서, 참값을 반올림한 경우와 동일한 제산결과(Ze)를 구할 수 있다.
다음에, 피제수(X)가 제수(Y)보다 작은 경우에는 몫(Z=X/Y)은 1/2〈Z〈1로 된다. 이 경우에는 몫(Z)의 2°의 자리수의 값은 0으로 되기 때문에 최종 몫의 최소 유효자리수는 피제수(X)가 제수(Y)보다 큰 경우에 비교해서 1자리수 작은 2-52의 자리수가 되므로, 근사몫(Za)은
│Z-Za│〈2-55…………………………………………………………⑦
로 성립한다. 또한, 잠정몫(Zr)은 적어도 2-54의 자리수까지, 즉, 2°의 자리수를 포함해서 55자리수이상 필요하다. 따라서, 잠정 몫(Zr) 을
│Z-Zr│〈2-54…………………………………………………………⑧
이 성립하도록 구하고, 또한 반올림처리(308)에서 2-53의 자리수까지 반을림하도록 해서, 피제수(X)가 제수(Y)보다 큰 경우와 마찬가지로 처리하면 된다.
이상의 설명에서는, 피제수(X)가 제수(Y)보다 큰 경우와 그렇지 않은 경우에 대해서 나누어 설명하였으나, 피제수(X)가 제수(Y)보다 큰 경우에도, 잠정몫(Zr)을, ⑧식이 성립하도록, 1자리수만큼 높은 정밀도로 구해둠으로서, 최종 반올림처리(308)에서 반올림하는 자리수가 1자리수 다른 것을 제외하고는, 피제수(X)가 제수(Y)보다 크지 않은 경우와 마찬가지로 제산처리를 행할 수 있고, 연산의 제어를 간단하게 할 수 있다.
제 4 도는 본 발명을 평방근 연산에 적용한 경우의 연산처리의 흐름을 도시한 순서도이다. 제 4 도에 있어서, (401)은 제 1 도에 도시된 함수(F)의 근사연산처리(101)에 대응하는 것으로서 주어진 정의 값(X)의 평방근(X1/2)의 근사평방근 처리이다. (402), (408)은 반올림처리이며, 제 1 도에 도시된 (102), (109)와 마찬가지의 반올림처리를 행한다. (403)은 제 1 도에 도시된 역함수연산처리에 대응하는 것으로서, Y=X1/2의 역함수 즉, 평방(Yr2)을 구하는 승산처리이다. (404)는 비교판정처리이며, 제 1 도에 도시된(104), (105)에 대응하고 있다. 이 경우에도 제산과 마찬가지로 X에 대해서 Y가 단조증가함수이기 때문에 X와 Xr의 비교만으로 첨부자리수(S)를 구할 수 있다. 또한(405), (406), (407)은 제 1 도에 도시된(106), (107), (108)에 각각 대응하고 있다.
이하의 설명에서는 IEEE 754규격의 배정밀도를 예로하고, 또한 정규화된 가수부(假數部)의 연산에 대해서 설명한다. 즉, 가수부의 유효자리수가 53자리수이고, 최상위 자리수가 2°의 가중치의 자리수이고, 최하위자리수가 2-52의 가중치의 자리수이다. 부동소수점 데이터의 평방근을 고려한 경우에는, 주어진 값(X)에 대해서X〈4를 고려할 필요가 있다. 즉, 부동소수점 데이터의 지수의 값이 짝수인 경우에는 주어진 값(X)에 대해서 1X〈2의 치역을 고려하면 된다. 그러나, 지수의 값이 홀수인 경우에는 가수부를 왼쪽으로 1자리수 시프트하고, 시프트된 가수부의 평방근을 구하지 않으면 안되므로, 주어진 값(X)에 대해서 2X〈4의 치역을 고려하지 않으면 안된다. 따라서, 부동소수점데이터의 지수의 값이 짝수인 경우와 홀수인 경우에 대해서 마찬가지의 처리를 고려하면, 주어진값(X)에 대해서 1X〈4를 고려하면 된다. 따라서 평방근(Y=X1/2)의 치역은 1Y〈2로 된다.
다음에, 평방근 연산의 처리의 흐름에 대해서 제 4 도를 참조하면서 설명한다. 먼저, 근사평방근처리(401)에서 근사평방근(Ya)을 구한다. 이 근사평방근(Ya)의 정밀도는 참값(Y=X1/2)과의 오차가 최종해에 대해서 최소유효 자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도이다. 따라서 IEEE에 규정된 배정밀도에 따르면, 최소유효자리수의 가중치가 2-52이기 때문에, 구해진 근사평방근(Ya)은,
│Y-Ya│〈2-54…………………………………………………………⑨
가 성립한다.
다음에, 반올림처리(402)에서 근사평방근(Ya)을 반올림해서, 최종적인 평방근의 최소유효자리수보다 1자리수이상 낮은 자리수이며, 또한 근사평방근(Ya)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수 이상 높은 자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정평방근(Yr)을 구한다. 예를들면, 유효자리수보다 1자리만큼 많은 54자리수의 잠정평방근(Yr)을 구하면
│Y-Yr│〈2-53…………………………………………………………⑩
이 된다.
다음에, 승산처리(403)에 의해, 이 잠정평방근(Yr)으로부터 Y=X1/2의 역함수 즉, 잠정평방근의 평방(Xr=Yr2)를 구한다.
다음에, 비교판정처리(404)에 의해 상기 평방(Xr)과 주어진 값(X)을 비교함으로서, 잠정평방근(Yr)이 참값(Y)에 대해서 어느쪽으로 오차를 가지고 있는지의 여부를 판정한다. 이 경우에는 평방근(Y=X1/2)에 있어서는 (X)에 대해서 (Y)가 단조증가 함수이기 때문에, 주어진 값(X)과 상기 평방(Xr)의 비교만으로 첨부자리수(S)를 구할 수 있다. 즉, 주어진 값(X)이 상기 평방(Xr)보다 작은 경우에는 참값(Y)은 잠정평방근(Yr)보다 작으므로 처리(405)에 의해 첨부자리수(S)를 -1로하고, 주어진 값(X)과 상기 평방(Xr)이 동일한 경우에는, 참값(Y)은 잠정평방근(Yr)과 동일하므로 처리(406)에 의해 첨부자리수(S)를 0으로하고, 주어진 값(X)이 상기 평방(Xr)보다 큰 경우에는 참값(Y)은 잠정평방근(Yr)보다 크므로 처리(407)에 의해 첨부자리수(S)를 1로 한다.
최종적으로 반올림처리(408)에 의해, 잠정평방근(Yr)의 최하위자리수보다 1자리수 낮은 자리수에 첨부자리수(S)를 가산하여 결과가 유효자리수로 되도록 지정된 반올림모드에 의해서 반올림을 행함으로서, 참값을 반올림한 경우와 동일한 평방근의 결과(Ye)를 구할 수 있다.
이상 설명한 바와같이 근사연산의 결과로부터 함수의 참값을 반올림한 결과와 동일한 연산결과를 얻을 수있다. 이상의 설명에서는 구체적인 함수로서 제산과 평방근연산에 대해서 설명하였으나, 마찬가지로 해서 다른 함수에 대해서도 함수의 참값을 반올림한 경우의 결과와 동일한 결과를 얻을 수 있다.
본 발명의 제 2측면에 대해서 제산을 예로서 설명한다. 이하의 설명에서는 IEEE 754 규격의 배정밀도를 예로 하고, 또한 정규화된 가수부의 연산에 대해서 설명한다. 즉, 가수부의 유효자리수가 53자리수이고, 최상위 자리수가 2°의 가중치의 자리수이고, 최하위 자리수가 2-52의 가중치의 자리수이다. 또한, 피제수(X)및 제수(Y)를 모두 정수로 하고, 정규화되어 있는 것으로 하면, 1X,Y〈2의 관계에 있다.
제 3 도를 참조하면서 설명한 바와같이 근사제산에 의해 근사몫(Za)을 구하고, 또한 근사몫(Za)을 반올림함으로서 잠정몫(Zr)을 구한다. 이때의 잠정몫(Zr)의 참값(Z)과의 오차를 δ로 표시하면
δ=Zr-Z…………………………………………………………………⑪
이다. 이 잠정몫(Zr)으로부터 (Z=X/Y)의 역함수 즉, 잠정몫과 주어진 값의 곱(Xr=Zr×Y)을 구하면,
Xr=Zr×Y
=(Z+δ)×Y
=X+δ·Y
=X+△…………………………………………………………………⑫
로 된다. 따라서, 주어진 값(X)과 상기 곱(Xr)을 비교하면, (δ·Y)만큼 (Xr)이 크다. 잠정몫(Zr)의 오차(δ)의 절대치를 2-54미만이라고 하면, (△=δ·Y)의 절대치의 최대치는
│△│max=│δ·Y│max
〈2-54·2
〈2-53……………………………………………………⑬
이 된다. ⑬식은 (△)의 절대치를 2진수로 표시하면, 2-53의 가중치의 자리수이상의 자리수가 항상 "0"이라는 것을 나타내고 있다. 한편, 피제수(X)는 정규화된 가수부를 가정하고 있으므로, 2-53의 가중치의 자리수보다 낮은 자리수는 항상 "0"이다.
따라서, (△)가 정인 경우 Xr의 각 자리수는, 2°의 자리수로부터 2-52의 자리수까지, 피제수(X)의 각 자리수의 값과 동일하게 되고, 2-53의 가중치의 자리수가 "0"이며, 또 하위의 자리수는 (△)의 각 자리수의 값과 동일하게 된다. 또한, (△)가 0인 경우의 Xr의 각 자리수는, 20의 자리수로부터 2-52의 자리수까지, 피제수(X)의 각 자리수의 값과 동일하게 되고, 또한 하위의 자리수는 "0"으로 된다.
또한, (△)가 부인 경우 (Xr)의 각 자리수는, 피제수(X)로부터 (△)의 절대치를 감산한 것이 되고, 2°의자리수로부터 2-52의 자리수까지는 피제수(X)로부터 2-52만큼 작은수의 각 자리수의 값과 동일하게 되고, 2-53의 가중치의 자리수가 1이며, 또한 하위의 자리수는, (△)의 2의 보수의 각 자리수의 값과 동일하게 된다. 이상의 점으로부터 Xr의 2-53의 가중치의 자리수보다 낮은 자리수의 값을 검사함으로서, (△)의 값이 정, 부 또는 0인지의 판단을 할 수 있다.
따라서 ①, ⑫식의 관계로부터, 잠정몫(Zr)과 참값(Z)의 대소관계의 판정이 가능하게 되고, 이 판정으로부터 첨부자리수(S)를 구할 수 있다. 즉, (Xr)의 2-53의 가중치의 자리수가 0이며, 또한 2-54의 가중치의 자리수이하에 0이 아닌 자리수가 있는 경우에는 (△)가 정으로 되고, 잠정몫(Zr)이 참값(Z)보다 크므로, 첨부자리수(S)를 -1로 하면 된다. 또, 2-53의 가중치의 자리수이하의 모든 자리수가 0인 경우에는 (△)가 0으로 되고, 잠정몫(Zr)과 참값(Z)이 동일하므로, 첨부자리수(S)를 0으로 하면 된다. 또한, (Xr)의 2-53의 가중치의 자리수가 1인 경우에는 (△)가 부로 되고, 잠정몫(Zr)이 참값(Z)보다 작으므로, 첨부자리수(S)를 1로 하면 된다. 이 관계를 표 1에 나타낸다.
[표 1]
이상과 같이, 잠정몫(Zr)과 참값(Z)의 대소관계의 판단을 (Xr)과 (X)와의 가산을 행하는 일없이, 승산에 의해서 얻어진 (Xr)의 2-53의 가중치의 자리수이하의 자리수의 값을 검사함으로서 용이하게 행할 수 있고, 이 판단으로부터 첨부자리수(S)를 구할 수 있다.
이상의 설명에서는 제산을 행할 경우에 대해서 설명하였으나, 이 간단한 첨부자리수(S)의 결정방법은 제산이외의 연산에 대해서도 마찬가지로 사용할 수 있다. 이 경우에 근사연산에 의해 구하는 함수(Y=F(X))의 근사해(Ya)와 이 근사해(Ya)를 반올림해서 구하는 잠정해(Yr)를, 잠정해(Yr)로부터 구한 함수(F)의 역함수(Xr=F-1(Yr))와 주어진 값(X)와의 차이에 대한 절대치의 최대치가, 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다도 작아지도록, 구함으로서 가능해진다.
다음에, 사용하는 알고리즘이나 하드웨어의 제한으로부터, 잠정해(Yr)로부터 구한 함수(F)의 역함수(Xr=F-1(Yr))와 주어진 (X)와의 차이에 대한 절대치의 최대치가, 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다도 커진 경우를 고려한다.
예로서, 평방근연산을 고려한다. 제 4 도를 사용해서 설명한 바와같이, 근사평방근 연산에 의해 근사평방근(Ya)을 구하고, 또한 근사평방근(Ya)을 반올림함으로서 잠정평방근(Yr)을 구한다. 이때의 잠정평방근(Yr)의 참값(Y)과의 오차를 δ로 표시하면,
δ=Yr-Y………………………………………………………………⑭
이다. 이 잠정평방근(Yr)으로부터 (Y=X1/2)의 역함수 즉, 잠정평방근의 평방(Xr=Yr2)을 구하면,
Xr=Yr2
=(Y+δ)2
=X+2δ·Y+δ2
=X+△……………………………………………………………………⑮
가 된다. 따라서, 주어진 값(X)과 상기 평방(Xr)을 비교하면, (2δ·Y+δ2)만큼 상기 평방(Xr)이 크다. 잠정평방근(Yr)의 오차(δ)의 절대치를 2-53미만이라고 하면, (△=2δ·Y+δ2)의 절대치의 최대치는,
│△│max=│2δ·Y+δ2│max
〈2·2-53·2+2-106
〈2-51+2-106………………………………………………
이 된다.식은 (△)의 절대치를 2진수로 표현하면, 2-50의 가중치의 자리수보다 높은 자리수가 항상 0이라는 것을 나타내고 있다. 한편, (X)는 정규화된 가수부를 가정하고 있으므로, 2-53의 가중치의 자리수보다 낮은 자리수가 항상 0이다. 따라서, 주어진 값(X)과 (△)의 각 자리수가 0이 아닌 자리수는, 2-51과 2-52의 가중치의 자리수에서 중첩이 있고, 따라서 주어진 값(X)과 상기 평방(Xr)의 대소관계를 판정하려면, 상기 평방(Xr)의 2-53의 가중치의 자리수보다 낮은 자리수를 검사할 뿐만아니라, 또한 높은 자리수에 대해서도 검사하지 않으면 안된다.
주어진 값(X)과 상기 평방(Xr)의 대소관계의 판정은, 예를들면 상기 평방(Xr)으로 부터 주어진 값(X)을 감산함으로서 (△)를 구한 경우에는식으로부터 알 수 있는 바와같이 그 절대치는 2-50미만이 되므로, 감산결과(△)의 2-50의 가중치의 자리수보다 낮은 자리수를 검사함으로서, 주어진 값(X)가 상기 평방(Xr)의 대소관계를 판정할 수 있다. 따라서, 이 판정으로부터 잠정평방근(Yr)과 참값(Y)과의 대소관계를 판정해서, 첨부자리수(S)를 구하면 된다. 이 경우의 감산결과(△)로부터 첨부자리수(S)를 구하는 것은 제산에 대해서 설명한 것과 마찬가지로 해서 행할 수 있고, 이 관계를 표 2에 나타낸다.
[표 2]
이상 설명한 바와같이 잠정해(Yr)로부터 구한 함수(F)의 역함수(Xr=F-1(Yr))와 주어진 값(X)와의 차이에 대한 절대치의 최대치가, 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다 크게 되는 경우에는 (Xr)의 2-53의 가중치의 자리수보다 낮은 자리수를 검사할 뿐만아니라, (Xr)로부터 (X)를 감산하고, 그 감산결과(△)로부터 첨부자리수(S)를 구하지 않으면 안된다. 그러나, 이 감산은 (Xr)로부터 (X)의 모든 자리수에서 행할 필요는 없다. 즉, 대소관계를 판단하는데 필요한 자리수, 따라서 2-50의 가중치의 자리수보다 낮은 자리수에 대해서만 행하면 충분하다.
물론, 이 평방근 연산을 더욱 높은 정밀도로 행하므로서 (Xr)의 2-53의 가중치의 자리수보다 낮은 자리수를 검사하는 것만으로, (Xr)과 (X)의 대소관계를 판정할 수 있다. 즉식에 있어서 잠정평방근 (Yr)의 오차(δ)의 절대치를 2-56미만이라고 하면
│△│max=│2δ·Y+δ2│max
〈2·2-50·2+2-100
〈2-54+2-100…………………………………………
이 되고, (△)의 절대치를 2진수로 표시하면 2-53의 가중치의 자리수보다 높은 자리수가 항상 0이라는 것을 나타내고 있다. 이와같은 경우에는 제산에 대해서 설명한 바와같이, 용이하게 첨부자리수(S)를 구할 수 있다.
제 5 도는 본 발명의 실시예에 의한 승산기의 구성을 도시한 블록도이다. 제 5 도에 있어서, (501)은 피승수 입력래치이고, (502)는 승수입력래치이고, (503)은 감수입력래치이고, (504)는 승수리코드회로(multiplier recoding circuit)이고, (505)는 부분곱생성회로이고, (506)은 감수변환회로이고, (507)은 부분급 가산회로이고, (508)은 승산결과 출력래치이다.
다음에, 제 5 도의 블록도의 동작을 설명한다. 먼저, 피승수, 승수 및 감수가 각각 피승수래치(501), 승수래치(502) 및 감수입력래치(503)에 입력된다. 승수래치(502)에 입력된 승수는 승수리코드회로(504)에 입력된다. 이 승수리코드회로(504)는 부분곱의 수를 감소시키기 위한 것이며, 예를들면 2비트의 부우드의 방법(Booth's method)에 의해 부분곱의 수를 입력된 승수의 자리수의 약 절반으로 할 수 있다. 이 2비트의 부우드의 방법에 의하면, 입력된 2진수를 2비트마다 2, 1, 0, -1, -2중 어느 한개의 값으로 변환한다. 다음에, 이 승수리코드회로(504)에 의해서 리코드된 승수와, 피승수래치(501)에 유지된 피승수로부터 부분곱생성회로(505)에 의해 복수의 부분곱이 생성된다.
또, 감수변환회로(506)에 의해 피승수와 승수로부터 생성되는 부분곱과 동일한 표현형식으로, 감수입력래치(503)에 유지된 감수의 부호반전치가 생성된다. 이 표현형식은 내부연산에 2진수를 사용한 승산기에서는 감수의 2의 보수표현으로 되고, 용장 2진수를 사용한 승산기에 있어서는 용장 2진수로 된다. 다음에, 이와같이 해서 생성된 부분곱과 감수의 부호반전치를 부분곱 가산회로(507)에 의해, 순차적으로 또는 트리형상으로 가산해서, 그 결과를 승산결과 출력래치(508)에 출력한다.
따라서, 제 5 도의 구성의 승산기를 사용함으로서, 피승수와 승수와의 곱으로 부터 감수를 감산한 결과를 얻을 수 있다. 이와같은 구성의 승산기를 사용하면 상기의 평방근연산에서 설명한 바와같은 잠정평방근(Yr)으로부터 구한 (Xr=Yr2)과 주어진 값(X)과의 차이에 대한 절대치의 최대치가, 주어진 값(X)의 최소유효자리수의 1자리수보다 낮은 자리수의 가중치보다도 크게 되는 경우에도, 용이하게 (Xr)과 (X)와의 대소관계를 판단할 수 있고, 첨부자리수(S)를 구할 수 있다. 즉, 제 5 도에 있어서 피승수 및 승수로서 모두잠점평방근(Yr)을 입력하고, 감수로서 주어진 값(X)을 입력한다. 이에 의해 제 5 도의 승산기의 블록도의 출력으로서, ⑮식에 있어서의 (△)를 구할 수 있다. 즉,
△=Yr2-X
=Xr-X………………………………………………
이다. 이와같이 해서 구한 (△)에 의해, 표 2를 사용해서 첨부자리수(S)를 구하면 된다. 상기한 바와같이 첨부자리수(S)를 구하기 위해서는 (△)에 대해서 모든 자리수가 필요한 것은 아니고, 표 2로부터도 알 수있는 바와같이 2-50의 가중치의 자리수보다 낮은 자리수에 대해서만 정확하게 계산하면 충분하다. 또한, 역함수의 연산은 첨부자리수의 생성에만 사용된다. 따라서 제 5 도에 있어서의 감수입력래치(503)와 감수변환회로(506)는 주어진 값(X)의 모든 자리수에 대응하는 자리수를 필요로 하지 않고, (△)의 절대치의 데이터와 주어진 값(X)의 데이터가 중첩되는 2자리수와 1자리수 높은 자리수, 즉 이 예에서는 2-50, 2-51, 2-52의 자리수에 대응하는 3자리수만 접속하면 된다. 이상 설명한 바와같이 제 5 도에 도시한 바와같은 구성의 승산기를 사용함으로서, 통상의 승산기로 역함수(Yr2)를 구하고, 또한 감산기를 사용해서 (X)를 감산할 필요가 없으므로, 간단하게 또한 고속으로 첨부자리수(S)의 결정이 가능해진다.
이상의 설명에서는 평방근연산에 대해서 설명하였으나, 다른 연산에 대해서도 본 발명을 사용함으로서 마찬가지의 효과를 얻을 수 있다. 또한, 이상의 설명에서는 부우드(Booth)의 리코드방법을 사용한 승산기에 대해서 설명하였으나, 승수의 리코드를 하지 않아도 된다.
이상 설명한 바와같이 본 발명에 의하면 근사연산에 의해서 구한 함수의 근사해를 반올림한 잠정해와 참값과의 대소관계를 용이하게 판정할 수 있고, 이에 의해 함수의 참값을 구한 경우와 동일한 결과를 간단하게 또한 고속으로 구할 수 있다는 효과를 가지고, 실제적으로 극히 유용하다.
Claims (5)
- 근사해(approximate solution)(Ya)와 참값(Y) 사이의 오차가 최종해(final solution)에 대해서 최소유효자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도로, 주어진 값(X)에 대해서 함수(Y=F(X))의 근사해(Ya)를 구하는 단계와, 이 근사해(Ya)를 반올림해서, 최종해의 최소유효자리수보다 1자리수이상 낮은 자리수부터, 근사해(Ya)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수이상 높은 자리수까지의자리수로 표현할 수 있는 가장 가까운 잠정해(interim solution)(Yr)를 구하는 단계와, 이 잠정해(Yr)로부터 함수의 역함수(F-1)의 값(Xr=F-1(Yr))을 구하는 단계와, 주어진 값(X)과 역함수의 값(Xr)이 동일한 때에는 첨부자리수(S)를 0으로 하고, 주어진 값(X)과 역함수의 값(Xr)이 다른때에는, 주어진 값(X)과 역함수의 값(Xr)의 대소관계로부터 참값(Y)과 잠정해(Yr)의 대소관계를 판정하고, 참값(Y)이 잠정해(Yr)보다 작은 것으로 판정된 경우에는 첨부자리수(S)를 -1로 하고, 나머지의 경우에는 첨부자리수(S)를 1로 하고, 다음에 상기 잠정해(Yr)의 최하위 자리수보다 1자리수 낮은 자리수에 상기 첨부자리수(S)를 가산하고, 소정의 반올림을 행하여 최종해(final solution)를 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
- 주어진 정(+)의 값(X), (Y)에 대해서 몫(Z=X/Y)을 구하는 연산처리방법에 있어서, 근사몫(approximate quotient)(Za)과 참값(Z) 사이의 오차가 최종의 몫(final quotient)에 대해서 최소유효자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도로, 근사몫(Za)을 구하는 단계와, 이 근사몫(Za)을 반올림해서, 최종의 몫의 최소유효자리수보다 자리수이상 낮은 자리수로부터, 근사몫(Za)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수이상 높은 자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정몫(interim quotient)(Zr)을 구하는 단계와, 이 잠정몫(Zr)으로부터 주어진 값(Y)과 잠정몫(Zr)의 곱(Xr=Y×Zr)을 구하는 단계와, 주어진 값(X)과 상기 곱(Xr)이 동일한 경우에는 첨부자리수(S)를 0으로 하고, 주어진 값(X)이 상기 곱(Xr)보다 작은 경우에는 첨부자리수(S)를 -1로 하고, 나머지의 경우에는 첨부자리수(S)를 1로 하고, 다음에 잠정몫(Zr)의 최하위 자리수보다 1자리수 낮은 자리수에 상기 첨부자리수(S)를 가산하고, 소정의 반올림을 행하여 최종의 몫을 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
- 주어진 값(X)에 대해서 평방근(Y=X1/2)을 구하는 연산처리방법에있어서, 근사평방근(approximate square root)(Ya)과 참값(Y) 사이의 오차가 최종평방근(final square root)에 대해서 최소유효자리수보다 2자리수 낮은 자리수의 크기보다 작은 정밀도로, 근사평방근(Ya)을 구하는 단계와, 이 근사평방근(Ya)을 반올림해서, 최종평방근의 최소유효자리수보다 1자리수이상 낮은 자리수부터, 근사평방근(Ya)의 최대오차보다 큰 최소가중치의 자리수보다 1자리수이상 높은 자리수까지의 자리수로 표현할 수 있는 가장 가까운 잠정평방근(interim square root)(Yr)을 구하는 단계와, 이 잠정평방근(Yr)의 평방(Xr=Yr2)을 구하는 단계와, 주어진 값(X)과 잠정평방근의 평방(Xr)이 동일한 경우에는 첨부자리수(S)를 0으로 하고, 주어진 값(X)이 잠정평방근의 평방(Xr)보다 작은 경우에는 첨부자리수(S)를 -1로 하고, 나머지의 경우에는 첨부자리수(S)를 1로 하고, 다음에 상기 잠정평방근(Yr)의 최하위 자리수보다 1자리수 낮은 자리수에 상기 첨부자리수(S)를 가산하고, 소정의 반올림을 행하여 최종평방근을 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
- 제 1 항에 있어서, 역함수(Xr)와 주어진 값(X) 사이의 차이에 대한 절대치의 최대치가 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다 작아지도록 근사해(Ya)와 잠정해(Yr)를 구하고, 상기 주어진 값(X)의 최소유효자리수의 가중치를 가진 역함수(Xr)의 자리수보다 1자리수이상 낮은 하위자리수의 값을 검사해서, 역함수(Xr)와 주어진 값(X) 사이의 대소관계를 판정함으로써, 참값(Y)과 잠정해(Yr)의 대소관계를 판정하는 것을 특징으로 하는 연산처리방법.
- 피승수와 승수를 입력하고, 상기 피승수와 상기 승수의 곱에 의해 복수의 부분곱을 생성하는 부분곱생성수단(505)과, 감수를 입력하고 감수의 부호반전치 또는 감수의 하위자리수의 일부의 부호반전치를 생성하는 감수변환수단(506)과, 상기 피승수와 상기 승수의 곱과 상기 감수 사이의 대소관계로부터 첨부자리수를 구하기 위하여, 상기 감수변환수단(506)에 의해 생성된 부호반전치와 상기 부분곱생성수단(505)에 의해 생성된 복수의 부분곱을 자리맞춤하여 가산하는 복수의 부분곱 가산수단(507)을 가진 것을 특징으로 하는 연산처리장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26844789 | 1989-10-16 | ||
JP1-268447 | 1989-10-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR910008561A KR910008561A (ko) | 1991-05-31 |
KR940010806B1 true KR940010806B1 (ko) | 1994-11-16 |
Family
ID=17458636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019900016227A KR940010806B1 (ko) | 1989-10-16 | 1990-10-13 | 연산처리 방법과 연산처리장치 |
Country Status (5)
Country | Link |
---|---|
US (4) | US5212661A (ko) |
EP (2) | EP0424086B1 (ko) |
JP (1) | JP2938547B2 (ko) |
KR (1) | KR940010806B1 (ko) |
DE (1) | DE69030707T2 (ko) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2783710B2 (ja) * | 1991-10-25 | 1998-08-06 | 沖電気工業株式会社 | 直交変換器 |
EP0546977A3 (en) * | 1991-12-13 | 1994-10-19 | Ibm | Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel |
EP0578950A3 (en) * | 1992-07-15 | 1995-11-22 | Ibm | Method and apparatus for converting floating-point pixel values to byte pixel values by table lookup |
GB9312745D0 (en) * | 1993-06-21 | 1993-08-04 | Questech Ltd | Accurate digital divider |
US5612909A (en) * | 1994-09-29 | 1997-03-18 | Intel Corporation | Method and apparatus for rounding operands using previous rounding history |
US5563818A (en) * | 1994-12-12 | 1996-10-08 | International Business Machines Corporation | Method and system for performing floating-point division using selected approximation values |
US5729481A (en) * | 1995-03-31 | 1998-03-17 | International Business Machines Corporation | Method and system of rounding for quadratically converging division or square root |
US5742537A (en) * | 1995-06-30 | 1998-04-21 | Wolrich; Gilbert M. | Fast determination of floating point sticky bit from input operands |
US5729485A (en) * | 1995-09-11 | 1998-03-17 | Digital Equipment Corporation | Fast determination of carry inputs from lower order product for radix-8 odd/even multiplier array |
US5726927A (en) * | 1995-09-11 | 1998-03-10 | Digital Equipment Corporation | Multiply pipe round adder |
US5764555A (en) * | 1996-03-13 | 1998-06-09 | International Business Machines Corporation | Method and system of rounding for division or square root: eliminating remainder calculation |
EP0837390A1 (en) * | 1996-10-18 | 1998-04-22 | Texas Instruments Incorporated | Improvements in or relating to microprocessor integrated circuits |
US6144980A (en) * | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6134574A (en) * | 1998-05-08 | 2000-10-17 | Advanced Micro Devices, Inc. | Method and apparatus for achieving higher frequencies of exactly rounded results |
US6269384B1 (en) | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6115733A (en) * | 1997-10-23 | 2000-09-05 | Advanced Micro Devices, Inc. | Method and apparatus for calculating reciprocals and reciprocal square roots |
US6115732A (en) * | 1998-05-08 | 2000-09-05 | Advanced Micro Devices, Inc. | Method and apparatus for compressing intermediate products |
US6223198B1 (en) | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6289365B1 (en) * | 1997-12-09 | 2001-09-11 | Sun Microsystems, Inc. | System and method for floating-point computation |
US6393554B1 (en) | 1998-01-28 | 2002-05-21 | Advanced Micro Devices, Inc. | Method and apparatus for performing vector and scalar multiplication and calculating rounded products |
US6487575B1 (en) * | 1998-08-31 | 2002-11-26 | Advanced Micro Devices, Inc. | Early completion of iterative division |
US6341300B1 (en) | 1999-01-29 | 2002-01-22 | Sun Microsystems, Inc. | Parallel fixed point square root and reciprocal square root computation unit in a processor |
US6384748B1 (en) | 1998-12-21 | 2002-05-07 | Base One International Corporation | Method of encoding numeric data and manipulating the same |
US6351760B1 (en) | 1999-01-29 | 2002-02-26 | Sun Microsystems, Inc. | Division unit in a processor using a piece-wise quadratic approximation technique |
JP2000260137A (ja) * | 1999-03-11 | 2000-09-22 | Fujitsu Ltd | 記憶装置 |
JP3708423B2 (ja) * | 2000-10-20 | 2005-10-19 | 株式会社日鉱マテリアルズ | エポキシ樹脂用フェノール系硬化剤及びそれを用いたエポキシ樹脂組成物 |
US7031996B2 (en) * | 2000-11-02 | 2006-04-18 | Seagate Technology Llc | Calculating square root of binary numbers with fixed-point microprocessor |
US8015228B2 (en) * | 2005-02-16 | 2011-09-06 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
JP4915454B2 (ja) * | 2010-02-24 | 2012-04-11 | Nttエレクトロニクス株式会社 | 演算回路及び方法 |
US9678714B2 (en) * | 2014-07-11 | 2017-06-13 | Imagination Technologies Limited | Check procedure for floating point operations |
US11416218B1 (en) | 2020-07-10 | 2022-08-16 | Ali Tasdighi Far | Digital approximate squarer for machine learning |
US11467805B1 (en) | 2020-07-10 | 2022-10-11 | Ali Tasdighi Far | Digital approximate multipliers for machine learning and artificial intelligence applications |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3202805A (en) * | 1961-10-02 | 1965-08-24 | Bunker Ramo | Simultaneous digital multiply-add, multiply-subtract circuit |
DE3267489D1 (en) * | 1982-02-18 | 1986-01-02 | Itt Ind Gmbh Deutsche | Digital parallel calculating circuit for positive and negative binary numbers |
JPS61256436A (ja) * | 1985-05-10 | 1986-11-14 | Hitachi Ltd | 演算装置 |
US4758972A (en) * | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
US4817048A (en) * | 1986-08-11 | 1989-03-28 | Amdahl Corporation | Divider with quotient digit prediction |
JPS6347874A (ja) * | 1986-08-16 | 1988-02-29 | Nec Corp | 算術演算装置 |
US4785412A (en) * | 1987-07-20 | 1988-11-15 | Control Data Corporation | Double precision approximate quotient network |
US4878190A (en) * | 1988-01-29 | 1989-10-31 | Texas Instruments Incorporated | Floating point/integer processor with divide and square root functions |
US4928259A (en) * | 1988-09-23 | 1990-05-22 | Intel Corporation | Sticky bit predictor for floating-point multiplication |
DE68928376T2 (de) * | 1988-11-04 | 1998-04-02 | Hitachi Ltd | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel |
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US4941120A (en) * | 1989-04-17 | 1990-07-10 | International Business Machines Corporation | Floating point normalization and rounding prediction circuit |
USH1222H (en) * | 1991-12-30 | 1993-08-03 | Apparatus for determining sticky bit value in arithmetic operations |
-
1990
- 1990-10-11 US US07/596,116 patent/US5212661A/en not_active Expired - Fee Related
- 1990-10-12 JP JP27353490A patent/JP2938547B2/ja not_active Expired - Fee Related
- 1990-10-13 KR KR1019900016227A patent/KR940010806B1/ko not_active IP Right Cessation
- 1990-10-16 EP EP90311315A patent/EP0424086B1/en not_active Expired - Lifetime
- 1990-10-16 EP EP96103447A patent/EP0723218A3/en not_active Withdrawn
- 1990-10-16 DE DE69030707T patent/DE69030707T2/de not_active Expired - Fee Related
-
1993
- 1993-02-02 US US08/012,220 patent/US5313415A/en not_active Expired - Lifetime
-
1994
- 1994-03-29 US US08/219,560 patent/US5434809A/en not_active Expired - Lifetime
-
1995
- 1995-05-08 US US08/438,142 patent/US5633818A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0424086A3 (en) | 1992-09-09 |
DE69030707D1 (de) | 1997-06-19 |
JPH03206557A (ja) | 1991-09-09 |
JP2938547B2 (ja) | 1999-08-23 |
KR910008561A (ko) | 1991-05-31 |
DE69030707T2 (de) | 1997-10-02 |
US5434809A (en) | 1995-07-18 |
US5313415A (en) | 1994-05-17 |
EP0424086B1 (en) | 1997-05-14 |
US5212661A (en) | 1993-05-18 |
EP0723218A3 (en) | 1996-07-31 |
EP0723218A2 (en) | 1996-07-24 |
EP0424086A2 (en) | 1991-04-24 |
US5633818A (en) | 1997-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR940010806B1 (ko) | 연산처리 방법과 연산처리장치 | |
Jeannerod et al. | On relative errors of floating-point operations: optimal bounds and applications | |
EP0149248B1 (en) | Method and apparatus for division using interpolation approximation | |
Ferrari | A division method using a parallel multiplier | |
EP0472139A2 (en) | A floating-point processor | |
JPH0776911B2 (ja) | 浮動小数点演算装置 | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US20090172069A1 (en) | Method and apparatus for integer division | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
WO1997045787A1 (en) | A novel division algorithm for floating point or integer numbers | |
CN108334304B (zh) | 数字递归除法 | |
JPH04332036A (ja) | 浮動小数点乗算器とその乗算方式 | |
JP4273071B2 (ja) | 除算・開平演算器 | |
US5818745A (en) | Computer for performing non-restoring division | |
JP2001222410A (ja) | 除算器 | |
JPH05241787A (ja) | 算術演算におけるスティッキイ・ビット値の判別装置 | |
JPH0687218B2 (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
JPH0540605A (ja) | 浮動小数点乗算装置 | |
US6317772B1 (en) | Split remainder divider | |
JPH0772860B2 (ja) | 演算方式 | |
JPH0314128A (ja) | 対数表現数値利用の演算装置 | |
JP2518532B2 (ja) | 減算シフト型除算器 | |
JP3233432B2 (ja) | 乗算器 | |
Moore et al. | A Mechanically Checked Proof of the Correctness of the Kernel of the AMD5K86 TM Floating-Point Division Algorithm | |
JPS6129020B2 (ko) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20061110 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |