KR940010806B1 - 연산처리 방법과 연산처리장치 - Google Patents

연산처리 방법과 연산처리장치 Download PDF

Info

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
Application number
KR1019900016227A
Other languages
English (en)
Other versions
KR910008561A (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 마쓰시다덴기산교 가부시기가이샤
Publication of KR910008561A publication Critical patent/KR910008561A/ko
Application granted granted Critical
Publication of KR940010806B1 publication Critical patent/KR940010806B1/ko

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
    • 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/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • 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
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • 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
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49952Sticky bit
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation 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)

  1. 근사해(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)를 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
  2. 주어진 정(+)의 값(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)를 가산하고, 소정의 반올림을 행하여 최종의 몫을 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
  3. 주어진 값(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)를 가산하고, 소정의 반올림을 행하여 최종평방근을 구하는 단계로 이루어진 것을 특징으로 하는 연산처리방법.
  4. 제 1 항에 있어서, 역함수(Xr)와 주어진 값(X) 사이의 차이에 대한 절대치의 최대치가 주어진 값(X)의 최소유효자리수보다 1자리수 낮은 자리수의 가중치보다 작아지도록 근사해(Ya)와 잠정해(Yr)를 구하고, 상기 주어진 값(X)의 최소유효자리수의 가중치를 가진 역함수(Xr)의 자리수보다 1자리수이상 낮은 하위자리수의 값을 검사해서, 역함수(Xr)와 주어진 값(X) 사이의 대소관계를 판정함으로써, 참값(Y)과 잠정해(Yr)의 대소관계를 판정하는 것을 특징으로 하는 연산처리방법.
  5. 피승수와 승수를 입력하고, 상기 피승수와 상기 승수의 곱에 의해 복수의 부분곱을 생성하는 부분곱생성수단(505)과, 감수를 입력하고 감수의 부호반전치 또는 감수의 하위자리수의 일부의 부호반전치를 생성하는 감수변환수단(506)과, 상기 피승수와 상기 승수의 곱과 상기 감수 사이의 대소관계로부터 첨부자리수를 구하기 위하여, 상기 감수변환수단(506)에 의해 생성된 부호반전치와 상기 부분곱생성수단(505)에 의해 생성된 복수의 부분곱을 자리맞춤하여 가산하는 복수의 부분곱 가산수단(507)을 가진 것을 특징으로 하는 연산처리장치.
KR1019900016227A 1989-10-16 1990-10-13 연산처리 방법과 연산처리장치 KR940010806B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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