KR19980032114A - 제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치 - Google Patents

제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치 Download PDF

Info

Publication number
KR19980032114A
KR19980032114A KR1019970017469A KR19970017469A KR19980032114A KR 19980032114 A KR19980032114 A KR 19980032114A KR 1019970017469 A KR1019970017469 A KR 1019970017469A KR 19970017469 A KR19970017469 A KR 19970017469A KR 19980032114 A KR19980032114 A KR 19980032114A
Authority
KR
South Korea
Prior art keywords
exponent
value
result
initial estimate
floating
Prior art date
Application number
KR1019970017469A
Other languages
English (en)
Other versions
KR100241068B1 (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 KR19980032114A publication Critical patent/KR19980032114A/ko
Application granted granted Critical
Publication of KR100241068B1 publication Critical patent/KR100241068B1/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/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5521Inverse root of a number or a function, e.g. the reciprocal of a Pythagorean sum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

부동 소수점의 제곱근의 역의 초기 추정은 상수로부터 입력 부동 소수점수를 감산하고 그 결과를 우로 1비트 쉬프트함으로써 발생된다. 부수적으로, 부동 소수점으 제곱근의 역의 초기 추정은 지수를 1 감소하고, 지수와 분수를 우로 1비트 쉬프트하고, 그 결과를 선정된 상수로부터 감산함으로써 결정될 수 있다. 역 제곱근에 대한 추정은 또한 부동 소수점수를 우로 1비트 쉬프트하고 초기 추정을 발생하기 위해 그 쉬프트 결과를 선정된 수로부터 감산함으로써 결정될 수 있다.

Description

제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치
본 발명은 컴퓨터 산술에 관한 것으로, 특히 부동 소수점수의 제곱근의 역에 대한 초기 추정의 결정에 관한 것이다.
소정의 응용, 즉 3차원 그래픽 처리는 로테이션과 쉐이딩(rotation and shading)을 위한 표면에 법선인 벡터를 사용한다. 단위 법선 벡터로서 정의되며, 여기서이다. 따라서, 특정한 신호 처리 응용은 제곱근의 역의 결정을 필요로 한다. 방정식을 해결하는 공지된 순환 방법인 뉴톤-랩슨 알고리즘과 같은 알고리즘은 각각 연속하는 순환 근사 이중치의 정확도로서 제곱근의 역의 결정에 우수한 성능을 제공할 수 있다. 그러나, 이와 같은 알고리즘은 초기 추측 또는 추정을 필요로 한다. 초기 추측이 우수할 수록 보다 고속의 뉴톤-랩슨 알고리즘(또는 다른 순환 방법)이 정확한 답에 수렴할 것이다.
TI TMS320C4X와 모토롤라 DSP96002와 같은 종래의 신호 프로세서는 초기 추정을 결정하기 위해 참조표를 이용한다. 이와 같은 방법에서, ROM은 추정값을 저장하고 모든 추정마다 액세스된다. 그러나, 다수의 부동 소수점 연산을 동시에 수행하는 프로세서에서, 병렬 역 제곱근 연산은 다수의 참조표를 필요로 할 것이다. 이와 같은 해법은 각각의 부수적인 참조표 ROM을 위한 실리콘 상에 부수적인 공간을 필요로 할 것이기 때문에 비용이 많이 든다. 선택적으로, 만일 단일 참조표가 사용되면, 각각의 부동 소수점 연산은 단일 참조표를 액세스하기 위해 그 순서를 대기하여야 하므로, 이는 명확히 단점이 되고 있다. 또한, 단지 하나의 참조표를 필요로 하는 프로세서에서도, ROM에 소요되는 공간을 절약하고 제곱근 추정의 각각 역에 대한 참조표르 액세스하는 필요성을 제거함으로써 명령 실행을 위한 시간을 줄이기 위해 참조표 ROM을 없앨 수 있는 장점이 있을 것이다.
따라서, 본 발명은 제 1 실시에에서, 부동 소수점수와 선정된 수를 감산 회로에 제공하고, 제 1 결과를 구하기 위해 상기 부동 소수점수를 선정된 수로부터 감산하고, 초기 추정을 결정하기 위해 상기 결과를 우로 1비트 쉬프트함으로써 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 방법을 제공한다. 이는 정확한지수와 분수에 있어 정확한 5이상의 비트까지를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 제공한다. 또한, 본 발명은 실리콘 상에 참조 ROM을 제공할 필요없고 또 ROM을 액세스할 필요없이 추정을 제공한다. 다른 실시예에서, 본 밟명은 부동 소수점수를 우로 1비트 쉬프트하고 초기 추정을 발생하기 위해 상기 쉬프트 결과를 선정된 수로부터 감산함으로써 역 제곱근을 구하는 방법 및 장치를 제공한다. 다른 실시예에서, 본 발명은 감산 회로를 이용하여, 제 1 결과를 발생하기 위해 지수의 최하위 비트로부터 1을 감산함으로써 부동 소수점수의 제곱근의 역에 대한 초기 추정을 발생하기 위한 방법 및 장치를 제공한다. 상기 제 1 결과는 쉬프트 회로에서 제 2 결과를 구하기 위해 상기 제 1 결과와 우로 1 비트 쉬프트된 분수를 제공하도록 쉬프트된다. 상기 제 2 결과는 역에 대한 초기 추정을 구하기 위해 선정된 수로부터 감산된다.
본 발명의 이들 및 다른 특징은 본 발명의 첨부하는 도면 및 상세한 설명을 참조할 때 용이하게 알 수 있을 것이다.
도 1 은 우수와 기수 근에 대한 역 제곱근의 시그니피컨드(significand)를 그래픽하게 도시하는 도면.
도 2A 는 우수와 기수 근에 대한 역 제곱근의 시그니피컨드와 각각의 시그니피컨드에 대한 추정룰 그래픽하게 도시하는 도면.
도 2B 는 우수 근에 대한 추정에 포함된 에러를 도시하는 도면.
도 2C 는 기수 근에 대한 추정에 포함된 에러를 도시하는 도면.
도 3 은 본 발명의 제 1 실시예에 대한 하드웨어 구현을 도시하는 도면.
도 4 는 본 발명의 제 2 실시예에 대한 하드웨어 구현을 도시하는 도면.
도 5 은 본 발명의 제 3 실시예에 대한 하드웨어 구현을 도시하는 도면.
도 6 는 본 발명의 제 4 실시예에 대한 하드웨어 구현을 도시하는 도면.
*도면의 주요 부분에 대한 부호의 설명*
301, 430 : 쉬프트 회로
304, 405 : 감산 회로
305, 410, 420, 502 : 레지스터
307, 308 : 멀티플렉서
IEEE 754 포맷에서, 부동 소수점 수 x0는 x0=(-1)sx 1.f x 2E(여기서, f=f0f0f1f2,...,fn)이고 S는 부호 비트이다.) 형태이다. 즉, 부동 소수점수는 부호, 시그니피컨드(1.f) 및 지수(E)를 포함한다. IEEE 754 부호 정확도 포맷의 경우, 부호는 1비트이고, 지수는 8 비트이고 분수는 23비트이다. IEEE 포맷은 비록 1이 표현되지 않을 지라도 시그니피컨드가 항상 1+분수를 포함하도록 히든(hidden) 1을 포함한다는 것에 유의한다. 본 발명에서 논의된 부동 소수점수는 IEEE 754 단일 정확도 포맷으로 가정한다. 그러나, 본 발명의 가르침은 IEEE 표준(즉, 단일 화장, 이중, 이중 확장)에 명시된 다른 정확도에 적용할 수 있다. 또한, 본 발명은 다른 부동 소수점 표현을 수용하도록 수정될 수 있다. 동일한 발명자에 의한 관련된 출원인 출원 번호 제 _____호(1996년 10월 21일 출원), 발명의 명칭 Method and Apparatus for Generating an Initial Estimate for a Floating Point Reciprocal이 본 발명의 참조로 일체화되어 있다.
일반적인 제곱근은 양의 수로서만 취해진다.는 상상의 수이다. 따라서, IEEE 부동 소수점 표현으로 제곱근의 역의 평가를 발생하기 위해,는 x0=0인 경우를 제외하고 양의 부동 소수점수 이어야 한다. 이 경우, IEEE 754 표준은=0를 정의한다. 즉 음수의 제곱근이 정의되어 있는 경우에만, 이 경우, 18와 같은이다. 따라서, 그와 같은 경우에 대해 초기 추중을 제공할 필요가 없다. 이와 같이, x0는 제곱근의 역이 초기 추정을 정확히 발생하기 위해 양의 부동 소수점수이어야 한다.
일반적으로,이다. 다른 말로 표현하면, 지수는 절반이다. x0=1.f0f1...fnx 2E이라고 하자. x0,의 제곱근의 역은 E가 짝수이면이다. 홀수 역 제곱근을 표현하기 위해, E=2e+1, e=(-18, ..., -1, 0, 1..18)이라고 하자. 홀수 근의 경우,. 따라서, 만일 E가 홀수이면, 역 제곱근은의 인수만큼 작다. 이 설명은 일반적으로 편차를 일체로 하는 IEEE 부동 소수점 표현에 사용된 값이 아니라 E의 실제 값을 가리킨다는 것에 유의한다. 짝수와 홀수 제곱근은 보다 일반적으로 표현될 수 있다. x0=(1+f)x2E및 x02라고 하자(항상 양수)
E=2e+p, e 1e 정수 및 p 1r {0, 1}
이때 역제곱근, y,
의 마지막 항은 p가 1일 때 즉, 지수가 홀수일 때 역 제곱근을 감소시킨다. 짝수인 경우, p=0이고,
홀수 근의 경우, p=1이고,
달리 표현하면, 기수 지수를 갖는 수의 제곱의 역은 항상 우수 지수를 갖는 동일한 분수의배이다. 그 이유는 기수의 지수가 1만큼 감소되었기 때문에 기수 지수를 갖는 수가 2만큼 반올림된 그 분수값을 가지기 때문이다.
IEEE 부동 소수점 표준은 지수의 실제값이 E-27이도록 127의 지수 바이어스를 포함한다. 바이어스는 지수의 8비트가 정규화된 단일 정확도 부동 소수점수를 위해 -126의 Emin에서 127의 Emax까지의 값을 표현하는 것을 가능하게 한다. 제곱근의 역의 지수를 계산하기 위해, 지수가 127만큼 바이어스된다고 생각한다. 부동 소수점 역의 지수(exp)의 부동 소수점 표현은 127-(exp-127)/2=(381-exp)/2의 값을 갖는다. (exp-127)/2를 빼면 바이어스를 없애고 2로 나누어 지수를 부정으로 하는 것을 나타낸다. 첫번째 127항은 바이어스를 다시 더하는 기능을 한다. 따라서, 역 제곱근의 지수에 대한 추정을 발생하기 위해, 한 가지 일반적인 방법은 입력 지수 상의 바이어스를 제거하고, 바이어스되지 않은 지수를 부정으로 하여 그 바이어스를 다시 더하는 것이다.
(381-E)/2를 계산하는 것은 감산 및 다음에 지수를 2로의 나눗셈을 제공하기 위해 차이를 우로 쉬프트할 것을 필요로 한다. 또한 381/2-E/2=190-E/2를 뺀 다음, 381/2에 있는 1/2 지수 비트를 고려하여 분수를 조정할 수 있다. E/2를 구하기 위해, 바이어스된 지수를 1/2로 하는 것은 지수 1 비트를 우로 쉬프트함으로써 수행될 수 있다.
서술된 바와 같이, 부동 소수점수의 지수는 우수 또는 기수중 어느 하나일 수 있다. IEEE 부동 소수점 표현에서 우수 지수는 127의 바이어스 때문에 1과 같은 최하위 비트(LSB)를 갖는다. 기수 지수는 제로와 같은 LSB를 갖는다. 부동 소수점 연산의 경우, 지수는 제곱근의 지수가 표현될 수 있도록 2로 균일하게 나누어져야 한다.
부동 소수점수의 시그니피컨드(Xsig)의 범위 1.f는 11 Xsig2이다. 만일 우수 지수가 지수를 감소시킴으로서 기수로 강제로 되는 경우, (즉, 7의 기수 지구가 6의 우수 지수를 구하기 위해 감소되는 것), 시그니피컨드(1.f)의 범위는 시그니피컨드가 지수를 감소시킨 결과 배가되어야 하기때문에 증가된다. 따라서, 기수 지구가 강제로 우수 지수가 되는 경우, 시그니피컨드(1.f)의 범위는 21 Xsig4가 된다. 조정된 시그니피컨드의 제곱근의 범위(즉, 1 비트의 좌 쉬프트로 배가되었던 시그니피컨드)는이다. 지수가 우수이고 지수 감소가 필요하지 않은 경우, 시그니피컨드의 범위는 같다. 즉 21 Xsig4와이다. 우수와 기수 근의 역이 도 1에 도시되어 있다. 곡선 100은 우수 지수의 시그니피컨드의 역은 (1+f)가 1과 2사이에서 변함에 따라, 1과사이에서 변한다. 특히, 우수 근 역은의 값을 갖는다. 기수 지수의 경우, 곡선 110에 도시된 바와 같이, 기수 지수의 역은 (1+f)가 1과 2 사이에서 변함에 따라와 0.5 사이에서 변한다. 특히,이다.
IEEE 754 단일 정확도에서 지수의 유효 범위는 1 내지 254이다. 0의 지수 값은 DNORM(비정규화된 수)이고 255는 무한대 또는 NAN(수가 아님)이다. 제곱근의 역의 예측된 지수의 범위는 따라서 (190-E/2)이다. 예측된 최대 지수값은 190-1/2(E=1일 때)1~190이다. 예측된 최소 지수값은 190-254/2=190-127=63이다. 따라서, E가 0또는 255와 같다는 제약을 제외하고 지수 범위에 대한 제한은 없다.
일반적으로, 부동 소수점수 x0의 역 제곱근을 결정하기 위해 발명자에 의해 고안된 방법은 (g)=(m-x0)1의 형태에 게스(g)를 발생하는 것을 포함한다. 이는 부동 소수점수를 감산하는, 수 m이 결정된다는 것을 표현한다. 이때 상기 감산의 결과는 초기 추정을 발생하기 위해 우로 쉬프트된다. 제곱근의 역을 분수 부분과 지수 부분 모두에 대한 초기 추정을 결정할 필요가 있다. 지수를 결정하는 한 가지 일반적인 접근 방법이 설명되었다. (즉, 190-E/2를 결정하는 것). 수 m의 다른 부분은 분수의 추정을 제공하도록 결정된다. 따라서, m은 E'+h의 형태이고, 여기서 E'는 부동 소수점수의 지수 필드에 대응하는 필드를 가리키고, h는 부동 소수점수의 분수 필드에 대응한다. 수 m은 또한 부동 소수점수의 부호 비트에 대응하는 비트를 가리킨다. m은 지수 위치에서 비제로 항을 포함할 수 있다는 것에 유의한다.
도 2A 를 참조하면, 제곱근의 역의 값의 2배 작도가 도시되어 있다. 곡선 205는 우수 근을 나타내고, 곡선 210은 기수 근을 나타낸다. 곡선이 도 1 에 도시된 값의 2배라는 사실은 히든 1을 포함하는 IEEE 포맷의 수를 나타내는데 필요하기 때문이다. 곡선 215는 역 제곱근 곡선의 선형 근사를 나타내고, (2-f/2)의 값을 갖는다. 이는 또한 (1.h-f/2)로 표현될 수 있는데, 여기서 h는 수 m의 분수 부분이다. 도시된 바와 같이, h는 모두 1이지만, 초기 추정의 정확도를 향상시키기 위해 조정될 수 있다.
본 발명에 의해 사용된 한 가지 방법은 g=(m-x0)1의 형태에서 제곱근의 역의 부동 소수점 초기 추정(g)을 제공하는 것이라는 것을 고려한다. 1비트 쉬프트의 영향이 이하에 도시되어 있다. 수 x0는 다음과 같이 표현될 수 있다:
s e0e1e2e3e4e5e6p f0f1f2............f22
최좌측 비트 s는 부호 비트이다. 제곱근 연산의 경우, 상술된 바와 같이 추정이 양수의 제곱근을 필요로 하기 때문에, s=0이다. 지수 필드는 상위 7개 비트 e0-e6와 지수 LSB인 p를 포함한다. 부동 소수점 표현에서, 127의 바이어스가 포함되어, 우수 근에 대해서는 p=1이고 기수 근에 대해서는 p=0이다. 가수 비트는 f0-f22로 표현된다.
만일 x0가 1비트 만큼 우로 쉬프트되면, 이때 (x1)=
0 se0e1e2e3e4e5e6 pf0f1f2f3f4............f21
지수속으로 쉬프트된 부호 비트 s는 0의 값을 갖는다는 것에 유의한다. 지수는 2로 나누어진다. E를 2로 나누는 것은 초기 추정의 지수의 한 가지 결정에 포함되는 단계중 하나였다는 것을 상기한다. 즉, 381/2-E/2=190-E/2의 감산 단계는 2로 나누는 것을 필요로 한다. 상기 나눗셈 단계는 상기 쉬프트로서 충족된다.
지수 LSB, p는 이제 분수의 최상위 비트이다. 1.h-f/2의 형태에서 추정이 필요하다는 것을 상기하면, 분수를 우로 쉬프트하는 것은 필요한 f/2항을 제공한다. 우수와 기수 근의 경우, 가수는 0.pf0f1f2....f21이 된다. 본 발명의 특정 실시예의 경우, 동일한 선형 근사가 동일한 경사를 갖는 우수와 기수 근 모두를 추정하는 것이 바람직한데, 여기서 기수 근에 대한 근사는 우수 근으로부터 밑으로 쉬프트되어 있다. 이는 곡선 220이 곡선 215로부터 0.5만큼 아래로 쉬프트되어 있는 것으로 보이는 도 2A 에 도시되어 있다. 소정의 추정이 1.h-0.pf1f2f3....f21이기 때문에, p를 감산하는 것은 소정의 쉬프트를 제공할 수 있다. 그 이유는 p=1일 때, 0.p=0.510이기 때문이다. 따라서, 0.pf0f1....f21를 구하기 위해 쉬프트한 다음에, 그 결과는 감산하는 것은 도 2A 에 도시된 바와 같이 2로의 나눗셈과 0.5의 쉬프트 다운 모두를 제공할 수 있다. 그러나, IEEE 바이어스 때문에 p 비트는 우수 근의 경우 1이고 기수 근의 경우 0이다. 이는 우수 근에 대한 추정이 요구되는 것의 반대인 기수 근에 대한 추정 대신에 쉬프트 다운되게 할 것이다. 본 발명은 그 문제에 대한 몇 가지 해를 고려한다.
연산의 감산/쉬프트/감산 시리즈를 사용하는 3단계 접근 방법이 초기 추정을 발생하는데 사용될 수 있다. 상기 세가지 단계 접근 방법은 p비트를 반전시킴으로서 틀린 근을 쉬프트하는 문제를 해결한다. 보다 상세히 세가지 근은 다음과 같다:
(1) 지수에서 1을 감산하기. 이는 IEEE 754 표준의 LSB(p비트)에 있는 바이어스된 지수를 다시 우수 근을 위한 제로로 변환하고, 강제로 기수 근의 LSB를 1로 만든다. 따라서, 단계 1에서 지수로부터 1을 감산하는 것은 결국 0의 p비트를 갖는 우수 지수가 되게 되며, 기수 근에 대해 정확한 쉬프트와 우수 근에 대해 쉬프트 없음을 제공하는 기수 지수는 1의 p비트를 갖는다.
(2) 감소된 지수와 분수를 1비트 만큼 우로 쉬프트하기. 이는 지수 및 분수에서 2로 나누는 것을 제공하고, p 비트를 분수에 있는 MSB 위치로 이동시킨다.
(3) 수 m으로부터 우로 쉬프트된 결과를 감산하기.
상기 단계들은 다음에 보다 상세히 설명된다. 입력 부동 소수점수 x0(역 제곱 근에 필요함)는 (1+f)x2E=(1+f)x22e+p로서 표현된다. 첫번째 단계로 E=2e+p-1이 된다. Ebias(여기서, Ebias는 바이어스를 포함하는 지수의 부동 소수점 표현이다.)=2e+p+126이다. 우로 1비트 만큼 쉬프트될 때, 이 결과는 (e+63+(p1))이 된다. 주석 1는 우로 1비트 쉬프트를 가리킨다. p가 1비트 위로 쉬프트될 때, p는 (e+63)이 되는 지수로부터 벗어나 쉬프트된다. 추정의 지수값은 -e - 1 + 127= -e + 126과 같다. 이는 2로 나누어져 부정으로 된 본래의 지수를 나타낸다. 127 인수는 다시 더해진 IEEE 바이어스이다. '-1'항은가 1(여기서 f=0일 때는 예외) 미만이라는 사실에 근거한다. 따라서, (m-x0)를 감산할 때, (-e + 126)의 소정값을 구하기 위해, m의 E'항은 m-x가 -e + 126이 되도록 세트되어야 한다. 다른 말로 표현하면,
E' -(e+63) -e + 126
E' = 63 + 126
따라서, m의 E' 성분은 189로 세트되어야 한다. 이는가 1미만이고 정규화(f=0이 아닌 한)될 필요가 있기 때문에, 이전에 결정된 190-E/2의 추정보다 작은 1인 지수 추정을 나타낸다는 것에 유의한다. 상기 값은 m으로 일체화된다.
기수 성분보다 양호한 m의 분수 성분을 결정하기 위해서는, 여기서 h가 모두 1(즉 h가 약 1)인 시그니피컨드의 초기 추정 간의 차이 △를 실제값과 비교할 필요가 있다. 일단 △에 대한 지수가 결정되면, 제1 도함수를 취하고 상기 도함수를 0으로 설정하면, 최대 에러를 제공할 것이다. 이때 m에서 h의 값이 최대 에러를 감소시키도록 선택될 수 있다.
m의 분수 부분의 도함수는 이하에 상세히 서술된다. 세가지 단계 방법은 p의 값과 f 및 h의 값에 따라 이하의 세가지 형태중 한 가지 형태를 취하는 초기 게스를 발생한다. 상기 세가지 단계 방법은 여기서 2-e-1(1+h-f/2)이고, 1이 IEEE 표현에서 히든 비트를 나타내는 p=0일 때, 초기 추정 (g)를 발생한다. p=1일 때, 두가지 경우가 존재한다. 만일 m의 분수 부분이 0.h10.pf(MSB 위치에 p비트로서 쉬프트된 분수)이면, 이때 초기 추정의 값은 2-e-1(1+h-f/2-1/2)이다. 1/2항은 분수의 MSB 위치(이는 0.5의 값임)로 1을 쉬프트하고 그것을 감산하는 것으로부터 나온다. 0.h0.pf일 때, 초기 추정= 2-e-1(1+h/2-f/4-1/4)이다. 분수는 지수로부터 빌려오게 하는 감산(h-pf)에 의해 유발된 하프 만큼 감소되는 것으로 보인다. 히든 1은 변하지 않으며, 이 경우 다른 분수항과 같이 1/2로 나누어지지 않는다는 것에 유의한다.
제곱근의 역의 실제값 y은
=
=
게스(g)=(1 + h - p -) x 2-e-1 .지금부터는 실제값 y과 게스 g를 비교함으로써 결정될 수 있다. 우수 근의 경우, p=0일 때,
게스(g)=(1 + h - p -) x 2-e-1.
.
기수 근의 경우, p=1이다. 논의된 바와 같이, 기수 근(1) 0.h 1 0.pf 및 (2) 0.h 0.pf의 두 가지 경우가 있다. 0.h 1 0.pf일 때,
.
o.h0.pf이고 p=1일 때,
지수는 감산을 위해 지수로부터 1을 빌릴 것을 필요로 하기 때문에 감소된다는 것에 유의한다.
.
델타의 값을 반복하기 위해,
p=0일 때,
.
p=1이고, 0.h 1 0.pf일 때,
.
p=1이고, 0.h 0.pf일 때,
.
0.h= 0.pf→= h-0.5 → f = 2h-1라는 것에 유의한다.
에러는 도 2B 와 도 2C 에 그래픽하게 도시되어 있다. 도 2B 는 p=0일 때, 즉 우수 지수일 때 추정 250을 도시한다. 추정 250은에 비례하는 경사를 갖는다. 실제 값은 260으로 도시되어 있다. 고려되는 에러는 f=0, f=1인 경우의 에러와 최대 에러에서 f=0.587인 경우의 에러이다. 이들 에러는 각각 err5, err6및 err7로 지정된다.
도 2C 는 실제값 280에 대한 p=1인 경우의 추정 270을 도시한다. 추정 270은 또한에 비례하는 경사를 갖는다. 도 2C 는 0.h10.1h인 영역 281과 0.h0.1f인 영역 282로 나뉘어진다. 282의 영역에서, 추정의 경사는에 비례하여 변한다. 상기 경사는 추정이 x축을 교차할 때 변한다.
에러 err1내지 err7의 균형을 잡는 h를 구할 필요가 있다. 에러에 대한 값은,
f=0에서, err1= h-0.9142135
f=0.2599213에서, err2= h-0.8898815
f=2h-1에서, err3= 1-
f=1에서, err4=
f=0에서, err5= h-1
f=0.5874011에서, err6= h-0.8811016
f=1에서, err7= h-0.9142135
만일 h가 에러 err5와 err6으로 제한된로 설정되면, 이때
err6= 0.9405508 - 0.8811016,
= 0.0594492 |err3|이다.
따라서, h=0.9405508로 선정하면 h(즉, 0.5h1)에서 모든 제한을 충족시키고 f와 p 모두에 대해 균형된 에러를 제공한다. 이진수에서, h는 0.1111 0000 1100 0111 1111 000의 값을 갖는다.
우수 근에 대한 에러는 다음과 같이 세부적으로 유도된다 :
최대를 풀기 위해,를 설정한다.
(1+f)3/2=2
1+f=22/3
= h + (1-0.2937-1.5873)=h-0.8811016=err6
따라서 h가 이진 표현에서 모두 1일 때 우수 근에 대한 최대 에러는 H-0.8811016이다.
기수 근에 대한 에러는 다음으로부터 유도된다 :
최대를 풀기 위해,를 설정한다.
2=(1+f)3/2
(1+f)3/2=
(1+f)3=2
hpf일 때 기수 근에 대한 에러는 다음과 같이 유도된다:
최대를 풀기 위해,를 설정한다.
(1+f)3/2= 4
(1+f)3/2=
(1+f)3== 8
f=1
hpf일 때 기수 근에 대한 최대 에러는이다.
h의 다른 값은 다음과 같은 접근 방법을 이용하여 결정될 수 있다:
우수와 기수 근 모두를 만족하는 h를 가질 필요가 있다. 우수 근에 대한 추정을 최적화하는 임의의 h가 주어진다고 하면 기수 근에 대한 추정은 h-0.5이다. {발명자 질문 : 이것은 어디에서 나오는 가?} f=h-0.5를 다시 기수 근과 hpf에 대한 최악의 경우에 대입하면,
p=0(우수 근)의 최대 에러를 p=1(기수 근)의 최대 에러에 같게 하면,
0.88110158-h =+ 0.875 -
0.00610158 = 1.25h -
h = 0.9457980
이진수로, h=0.1111 0010 0001 1111 1101 0001
h를 189 필드의 지수 조정과 결합하면
16진수로 m=0|1011 1101|1111 0010 0001 1111 1101 000 = '5EF90FE8'.
초기 추정의 소정의 정확도에 따라 다른 h의 값 즉, 0.8에서 1까지의 범위에 이르는 h를 선택할 수 있다.
다음은 '5EF90FE8'를 사용하여 기수 지수에 대한 이 추정 접근 방법의 예를 제공한다. 입력 수 x0=1.012x 23=1010라고 가정하면,=0.3162277이다. 상기에서 개괄적으로 설명된 방법 다음에, 부동 소수점 표현에서, 수직 막대가 부호, 분수 및 지수로서 각각 경계가 정해져 있는
x = 0|1000 0010|010 0000 0000 0000 0000 0000이다.
지수로부터 1을 빼면 다음과 같다 :
1000 0010 - 1 = 1000 0001
감소된 지수와 분수를 1 비트 만큼 우로 쉬프트하면 다음과 같다 :
16진수로 0|0100 0000|101 0000 0000 0000 0000 0000 ='20500000'.
그 결과를 m에서 빼면,
'5EF90FE8'-'20500000'='3EA90FE8'1~1.3203007 x 2-2= 0.3302001.
감산은 부동 소수점 감산이 아니지만 32 비트 정수 감산이고, 여기서 부호, 지수 및 가수는 고려되지 않는다는 것에 유의한다. 0.3302001의 추정 - 0.3162727의 실제 결과는 0.0139274의 에러 또는 약 0.0440423의 상태 에러((실제 값 - 추정된 값)/실제 값)가 된다. 이와 같은 방법은 히든 1을 포함하여 적어도 5개의 정확도 비트를 갖는 추정을 제공하는 것으로 밝혀지고 있다.
다음은 이와 같은 추정 방법의 예가 우수 지수에 유효하다는 것을 제공한다. 입력 수 x0=1.012x 24= 2010이라고 가정한다. 역 제곱근,=0.2236068이다. 상기 개괄적으로 설명된 방법 다음에 IEEE 754 부동 소수점 표현에서,
x = 0|1000 0011|010 0000 0000 0000 0000 0000.
지수로부터 1을 빼면 다음과 같다 :
1000 0011 - 1 = 1000 0010
우로 쉬프트하면 다음과 같다 :
16진수로 0|0100 0001|001 0000 0000 0000 0000 0000 ='20900000'.
그 결과를 m에서 빼면,
'5EF90FE8'-'20900000'='3E690FE8'1~1.8208007 x 2-3= 약 0.2276의 추정값. 이는 0.2236의 실제값과 비교된다.
또한 감산/쉬프트/감산, 3단계 연산 보다는 두 단계로 추정을 구할 필요가 있을 것이다. 한 가지 2 단계 방법은 부동 소수점 수가 수 m에서 감산되는 (m-x0)을 감산하는 제1 단계, 및 상 기 감산의 결과를 우로 1 비트만큼 쉬프트하는 2 단계를 포함한다. 이들 두개의 단계는 (m-x0)1로 설명될 수 있다. 상기 두개의 단계 방법은 다음과 같이 상세히 설명된다 :
x0= (1+f) x 22e+p, 0≤f1, p=0 또는 1, eZ.
부동 소수점 표현에서,
x=127+(2e+p)|f, 여기서, '|'는 지수와 분수의 축약을 나타낸다. 127은 IEEE 부동 소수점 표면에 대해 바이어스를 더한다. 부동 소수점수가 감산될 수 m는 다음과 같이 설명될 수 있다 :
E' 게스의 지수 필드 = 2e'+p'
m=2e'+p'|h
제1 단계인 m-x0,
= (2e'+p'-2e-p-127)|(h-f)
= (2e'+2e-128+1+p'-p)|(h-f)
쉬프트인 제2 단계, (m-x0)1,
= ((e'-e)+(-64)+((1+p'-p)1)|(1+p'-p)(h-f).
= (2e'-2e - 128 + 1 + p'-p)|(h-f).
쉬프트인 제2 단계, (m-x0)1,
= ((e'-e)+(-64)+((1+p'-p)1)|(1+p'-p)(h-f).
지수를 포함하고 있는 주석 (((1+p'-p)1은 값이 쉬프트한 후의 지수 즉, 식(1+p'-p)가 2의 값을 갖는 것에 남아 있을 수 있다는 것을 가리킨다. (1+p'-p)에서 1항은 127 내지 128로부터 나온다(따라서 이는 종래에 2로 나뉘어질 수 있다.). 따라서 1을 다시 더할 필요성이 있게 된다. 표 1은 p'와 p에 대한 값을 나타낸다.
표 1
p' p 1+p'+p
0 0 1
0 1 0
1 0 2
1 1 1
p'=0을 설정함으로써 (1+p'-p)가 쉬프트한 후 지수에 남아 있는 경우를 제거함으로써 (1+p'-p)에서 해를 단순하게 하는 (1+p)로 축소시키기 때문에 우수한 해를 제공한다.
g가 지수와 분수를 표현하는 이진 스트링인 게스(g)는,
=(m-x0) 1 = (e'-e-64+((1-p)1) | (1-p)(h-f)
=(e'-e-64) | (1-p) (h-f)
발명자는 g가 다음과 같이 표현될 때 게스(g), e'의 선택이 (g)의 게스가 되도록 e'를 선택하고, 여기서
(g)=2-1-ex (1+(1-p) +).
역 제곱근의 실제 값 y,
세번째 단계의 경우, 추정과 실제값 간의 차이,를 결정할 필요가 있다.
p=0일 때의 경우와 분수만을 고려하면,
.
f의 항에서 미분하고 그것을 0으로 설정함으로써 최대 에러를 제공한다.
도시된 f의 세가지 값의 경우,는 h의 항으로 결정될 수 있다.
,
h/2가 상수이기 때문에 f=0.5874에서 최대 가능한 에러가 발생하고, 상기 값에서 최소 수(0.3811)가 상수로부터 감산되어 에러가 커진다는 것에 유의한다.
p=1일 때의 경우,
. 다시, 미분하여 그 결과를 0으로 설정함으로써 최대 에러의 위치를 제공한다.
다시 세가지 경우가 결정된다.
,
h의 값 즉, m의 분수를 다음과 같이 되도록 결정된다 :
-0.38110158=0.5-
h=0.88110158
더 상세히 하면,
h=(0.1110 0001 1000 1111 1110 0000)2
이 값에서 h를 선택할 때, 최대 에러는 =0.8811/2 - 0.3811=0.0594493인 것으로 알 수 있다. 최대 에러값은 5 비트 정확도를 표현하는 이진 표면으로 0.0000 1111 0011의 값을 갖는다. 초기 추정에서 정확도의 가변 정도를 제공하기 위해, 다른 h값, 즉, 약 0.8과 약 1(여기서 h가 모두 1일 때)사이에서 선택될 수 있다.
m0(e')에서 지수를 설정하기 위해, 다음과 같이 설정하는 것이 적당하다 :
e'-e-64=-1-e+127
e'=126+64=190
따라서, 16진수 표현으로 m0= 1011 11100 | 1110 0001 1111 1110 000 = BE70C7F0이다.
따라서, 게스(g)=('BE70C7F0'-x0)1.
다음은 지수가 기수일 때 본 발명의 제2 실시예의 예를 제공한다. x0= 1.5 x 21이라고 가정하면, 이때이다, 이는 수직 막대로 경계가 표시된 부호, 지수, 및 분수 필드를 갖는 부동 소수점 이진 표현으로 0|1000 0000 | 100 0000 0000 0000 0000 0000로서 표현된다. ('BE70C7F0')로부터 상기 값을 빼면 다음과 같다 :
1|011 1110 0|111 0000 1100 0111 1111 0000
-0|100 0000 0|100 0000 0000 0000 0000 0000
1|111 1110 0|011 0000 1100 0111 1111 0000
우로 쉬프트한 후, 추정은 다음과 같다 :
0|011 1111 0|001 1000 0110 0011 1111 1000
따라서 추정은 약 1.1905516 x 2-1=0.5952758의 값을 갖는다. 이는 0.5773502인 역의 제곱근의 실제값에 비교된다.
다음은 지수가 우수인 본 발명의 제2 실시예의 제2 예를 제공한다. x0= 1.5 x 22이라고 가정하면, 이때이다, 이는 수직 막대로 경계가 표시된 부호, 지수, 및 분수 필드를 갖는 부동 소수점 이진 표현으로 0|1000 0001 | 100 0000 0000 0000 0000 0000로서 표현된다. (m-x0)를 빼면 다음과 같다 :
1|0111 1100 |111 0000 1100 0111 1111 0000
-0|1000 0001 |100 0000 0000 0000 0000 0000
0|1111 1011 |011 0000 1100 0111 1111 0000
우로 쉬프트한 후, 추정은 다음과 같다 :
0|0111 1101 |101 1000 0110 0011 1111 1000
따라서 추정은 약 1.6905516 x 2-2=0.4226379의 값을 갖는다. 이는 약 0.4082482인 역의 제곱근의 실제값에 비교된다.
두 단계 프로세서의 다른 실시예가 가능하다. 예를 들어, 3 단계 프로세서는 다음으로 구성됨을 상기한다 :
(1) 지수에서 1을 뺀다. 본 발명에서 가정된 포맷에 대한 이진 포맷에서, 이는 x0-'00800000'과 같으며, 여기서 8은 '지수의 LSB에 있다.
(2) 그 차이를 우로 1만큼 쉬프트한다.
x-'00800000'1은-'00400000'이 된다.
(3) m에서 우로 쉬프트된 크기를 빼면, 게스는 다음과 같다.
g = m1-((x-'00800000')1)
= m1-(-'00400000')
= m1+ '00400000' -
= m1-, 여기서 m'=(m+ '00400000')
= '5EF90FE8' + 00400000
= '5F390FE8'
3 단계 프로세스는 이제 2로(우로 쉬프트) 부동 소수점수 x0을 나누어 그 결과를 수정된 m으로부터 감산하는 2 단계 프로세스로 압축되었다.
따라서, 게스 g=m'-(x02)이고, 여기서 m'='5F390FE8'이다. 물론, 5EF90FE8을 제외하고 m에 대한 다른 값이 m'를 결정하는데 사용될 수 있다:
1. g0=m0-(x02) m01~'5F390FE8'
12. g0=(m11-x0)2) m11~'BE70CEF'
이진 포맷 5F390FE8은
0101 1111 0011 1001 0000 1111 1110 1000이고,
반면에 BE70C7EF는
1011 1110 0111 0000 1100 0111 1110 1111이다.
만일 5F390FE81이면 상위 15 비트는 같다.
두개의 m는 분수 정확도의 5 비트 이내에서 손실이 없는 16 비트 수로서 지정될 수 있다.
본 발명의 한 실시예의 하드웨어 구현이 도 3에 도시되어 있다. 부동 소수점 수 x0는 레지스터(305)에 저장된다. 멀티플렉서(307 및 308)은 부동 소수점 수와 수 1(1은 지수의 LSB에 대응하는 비트 위치에 존재)이 감산 회로(304)에 있는 x0로부터 감산되도록 감산 회로(304)를 제1 감산 연산을 제공하도록 제어된다. 이 감산 연산 다음에, 감산의 결과는 1 비트 만큼 쉬프트 회로(301)에서 쉬프트되어 멀티플렉서(308)를 통해 감산기(304)에 다시 제공된다. 상기 쉬프트 회로(301)는 멀티플렉서에 제공되기 전에 쉬프트 결과를 저장하는 레지스터를 가질 수 있거나 또는 부수적인 레지스터가 쉬프터 외부에 제공될 수 있다. 감산기(304)는 쉬프터(301)로부터 수신된 결과를 상수 m0으로부터 감산하고, 그 결과(303)를 제곱근의 역에 대한 추정으로서 제공한다. 도 3에 도시된 회로를 구현하기 위해 많은 방법이 존재한다. 예를 들어, 쉬프터 회로(301)는 1 비트 쉬프트를 제공하기 위해 멀티플렉서(308)에 일체화될 수 있다. 회로에 대해 많은 다른 변형이 기술분야의 숙련자에게는 명확하다. 하드웨어와 동일한 단계를 수행하는 소프트웨어 구현도 역시 가능하다.
본 발명의 제2 실시예의 하드웨어 구현은 도 4에 도시되어 있다. 부동 소수점 수 x0는 레지스터(410)에 저장된다. 수 m0는 레지스터(420)에 저장된다. 감산기(405)는 상기 수 m으로부터 상기 부동 소수점 수 x0를 뺀다. 다음에 쉬프트(430)는 그 결과를 우로 1비트 만큼 쉬프트하여 부동 소수점수의 제곱근의 역의 추정을 발생한다. 도 4에 도시된 회로의 많은 구현이 기술분야의 숙련자에게 명확할 것이다. 예를 들어, 쉬프트 회로(430)는 멀티플렉서에 일체화될 수 있다. 하드웨어와 동일한 단계를 수행하는 소프트웨어 구현도 역시 가능하다.
추정을 위한 2단계 해를 제공하는 본 발명의 제3 실시예의 하드웨어 구현이 도 5에 도시되어 있다. 부동 소수점 x0는 레지스터(502)에 저장된다. 수 m'는 레지스터(501)에 저장된다. 쉬프터(503)은 x0를 1비트 쉬프트하여 쉬프트된 결과를 감산기(504)에 공급한다. 감산기는 m'으로부터 상기 쉬프트된 결과를 감산하여 부동 소수점수의 제곱근의 역의 초기 추정을 발생한다. 도 5에 도시된 회로의 많은 구현이 기술분야의 숙련자에게는 명확할 것이다. 예를 들어, 쉬프트 회로(503)는 멀티플렉서에 일체화될 수 있다. 물론, 많은 감산 회로가 공지되어 있다. 하드웨어와 동일한 단계를 수행하는 많은 감산 회로도 역시 가능하다.
또 다른 2단계 실시는 부동 소수점수의 제곱근의 역의 초기 추정을 결정하는데 이용될 수 있다. 본 실시예에서, 두개의 수 meven및 modd가 이용된다. 이용된 특정한 m수는 x0의 지수의 최하위 비트에 의해 결정된다. 따라서, 지수가 우수일 때, x0는 2로 나누도록 쉬프트되고, 다음에 meven로부터 감산된다. meven는 바이어스 때문에 1이 쉬프트 동안 분수의 MSB로 쉬프트되어 여분의 0.5가 감산 단계 동안 감산될 것이라는 사실을 보상하여야 한다. 이와 같이, h의 MSB에 1을 더하는 meven=m+'00400000'가 되는데, 여기서 m는 제1 실시예에서 결정된 값인 '5EF90FE8와 같다. 따라서, meven='5EF90FE8이다. 기수 지수의 경우, modd는 바이어스 때문에 우수 추정을 적당히 쉬프트 다운할 필요가 있는 1 대신에 제로가 h의 MSB로 쉬트프된다는 사실을 보상하여야만 한다. 따라서, modd=m-'0040000'='5EB90FE8'이다. m의 다른 값도 물론 초기 추정에서 수용할 수 있는 정확도에 따라 사용될 수 있다.
도 6은 2단계, 두개의 m 방법의 하드웨어 구현을 도시한다. 레지스터(601 및 602)는 modd및 meven를 포함한다. 레지스터(603)는 x0를 포함한다. 입력 부동 소수점수 x0는 1 비트만큼 쉬프터(607)로 쉬프트되어 감산기(605)에 제공된다. 멀티플렉서(604)는 (606에 공급된 지수 LSB의 값에 따라 meven또는 modd중 하나를 선택한다. 다음에 감산기(605)는 멀티플렉서(604)로부터 공급된 m수로부터 쉬프트된 입력 수를 감산하여 초기 추정을 발생한다. 하드웨어와 동일한 단계를 수행하는 소프트웨어 구현도 또한 가능하다.
서술된 본 발명의 설명은 단지 예시적인 것이고 다음의 특허청구의 범위에 청구된 본 발명의 영역을 제한하려 의도된 것은 아니다. 예를 들어, 본 발명은 다른 부동 소수점 표현 및 IEEE 754 하에 수용할 수 있는 많은 부동 소수점 포맷에 적용할 수 있다. 특허청구의 범위에 개시된 본 발명의 정신과 영역을 벗어나지 않고 상기 설명에 근거하여 본 실시예의 변형과 수정이 이루어질 수 있다.

Claims (38)

  1. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정(an initial estimate for a reciprocal of a square root)을 결정하는 방법에 있어서,
    선정된 수를 저장하는 단계;
    감산 회로를 사용하여, 제 1 결과를 제공하기 위해 상기 선정된 수에서 상기 부동 소수점수를 감산하는 단계; 및
    쉬프트 회로에서, 상기 역에 대한 초기 추정을 구하기 위해 상기 제 1 결과를 우로 1 비트 위치 쉬프트하는 단계;를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  2. 제 1 항에 있어서,
    상기 지수 E=2e+p(여기서, 기수 지수에 대해 p=1이고, 우수 지수에 대해 p=0이다)이고, 상기 선정된 수는 초기 추정에 대해 (-e-1)의 지수 값을 제공하는 값으로 설정된 지수 필드와 부호 필드를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  3. 제 2 항에 있어서,
    상기 선정된 수는 분수 필드 h를 포함하고, 상기 초기 추정은 약
    의 값을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  4. 제 3 항에 있어서,
    h는 약 1과 약 0.8 사이의 값을 갖는 특징으로 하는 초기 추정의 결정 방법.
  5. 제 4 항에 있어서,
    상기 선정된 수는 최상위 비트에 'BE70C7'의 16진수 값을 갖는 32 비트 이진수인 것을 특징으로 하는 초기 추정의 결정 방법.
  6. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 방법에 있어서,
    선정된 수 m'를 저장하는 단계;
    쉬프트 회로에서, 제1 결과를 구하기 위해 상기 부동 소수점수를 우로 1비트 위치 쉬프트하는 단계; 및
    감산 회로를 사용하여, 상기 초기 추정을 제공하기 위해 상기 선정된 수 m'에서 상기 제1 결과를 감산하는 단계;를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  7. 제 6 항에 있어서,
    상기 지수 E=2e+p(여기서, 기수 지수에 대해 p=1이고, 우수 지수에 대해 p=0이다)이고, 상기 선정된 수 m'는 상수를 예비 선정된 수 m에 더함으로써 결정되는 것을 특징으로 하는 초기 추정의 결정 방법.
  8. 제 7 항에 있어서,
    상기 예비 선정된 수 m은 지수 필드에 있는 값과 분수 필드에 있는 값을 포함하고, 상기 예비 선정된 수 m의 이진 값은 상기 예비 분수 값으로 상기 예비 지수 값을 축약함으로써 표현되는 것을 특징으로 하는 초기 추정의 결정 방법.
  9. 제 8 항에 있어서,
    상기 상수는 상기 분수 필드의 최상위 비트에 대응하는 비트 위치에 1을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  10. 제 9 항에 있어서,
    상기 예비 선정된 수 m에서, 상기 분수 필드는 범위가 약 1 내지 약 0.8에 이르는 값을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  11. 제 10 항에 있어서,
    상기 선정된 수에서, 최상위 비트 위치에 '5F390F'의 값을갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  12. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    상기 부동 소수점수와 선정된 수를 위한 기억 장소;
    상기 부동 소수점수와 상기 선정된 수에 결합되고, 상기 선정된 수에서 감산된 상기 부동 소수점수를 제 1 결과로서 제공하는 감산 회로; 및
    상기 제 1 결과를 수신하며, 상기 초기 추정을 발생하기 위해 우로 1비트 위치 쉬프트된 상기 제 1 결과를 제공하는 쉬프트 회로;를 구비하는 것을 특징으로 하는 초기 추정의 결정 장치.
  13. 제 12 항에 있어서,
    상기 지수 E=2e+p(여기서, 기수 지수에 대해 p=1이고, 우수 지수에 대해 p=0이다)이고, 상기 선정된 수는 초기 추정에 대해 (-e-1)이 지수 값을 제공하는 값으로 설정된 지수 필드와 부호 필드를 포함하는 것을 특징으로 하는 초기 추정의 결정 장치.
  14. 제 13 항에 있어서,
    상기 선정된 수는 분수 필드 h를 포함하고, 상기 초기 추정은 약
    의 값을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  15. 제 14 항에 있어서,
    h는 약 1과 약 0.8 사이의 값을 갖는 특징으로 하는 초기 추정의 결정 장치.
  16. 제 15 항에 있어서,
    상기 선정된 수는 최상위 비트 위치에 'BE70C7'의 16진수 값을 갖는 32 비트 이진수인 것을 특징으로 하는 초기 추정의 결정 장치.
  17. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    상기 부동 소수점수와 선정된 수를 위한 제 1 및 제 2 기억 장소;
    상기 제 1 기억 장소에 결합되고, 상기 부동 소수점수를 수신하고 우로 1 비트 쉬프트된 상기 부동 소수점수를 제 1 결과로서 출력하는 쉬프트 회로; 및
    상기 쉬프트 회로 및 상기 제 2 기억 장소에 결합되고, 상기 초기 추정을 제공하기 위해 상기 선정된 수에서 상기 제 1 결과를 감산하는 감산 회로;를 구비하는 것을 특징으로 하는 초기 추정의 결정 장치.
  18. 제 17 항에 있어서,
    상기 지수 E=2e+p(여기서, 기수 지수에 대해 p=1이고, 우수 지수에 대해 p=0이다)이고, 상기 선정된 수 m'는 상수를 예비 선정된 수에 더함으로써 결정되는 것을 특징으로 하는 초기 추정의 결정 장치.
  19. 제 18 항에 있어서,
    상기 예비 선정된 수 m은 지수 필드에 있는 값과 분수 필드에 있는 값을 포함하고, 상기 예비 선정된 수 m의 이진 값은 상기 예비 분수 값으로 상기 예비 지수 값을 축약함으로써 표현되는 것을 특징으로 하는 초기 추정의 결정 장치.
  20. 제 19 항에 있어서,
    상기 상수는 상기 분수 필드의 최상위 비트에 대응하는 비트 위치에 1을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  21. 제 20 항에 있어서,
    상기 예비 선정된 수 m에서, 상기 분수 필드는 범위가 약 1 내지 약 0.8에 이르는 값을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  22. 제 21 항에 있어서,
    상기 선정된 수에서, 최상위 비트 위치에 '5F390F'의 16진수 값을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  23. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 방법에 있어서,
    제 1 및 제 2 선정된 수를 저장하는 단계;
    상기 지수의 선정된 비트에 따라 상기 제 1 및 제 2 선정된 수중에서 하나를 선택하는 단계;
    감산 회로를 사용하여, 제 1 결과를 제공하기 위해 상기 선정된 수중에서 선택된 수로부터 상기 부동 소수점수를 감산하는 단계; 및
    쉬프트 회로에서, 상기 역에 대한 초기 추정을 구하기 위해 상기 제 1 결과를 우로 1 비트 위치 쉬프트하는 단계;를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  24. 제 23 항에 있어서,
    상기 지수 E=2e+p(여기서, 기수 지수에 대해 p=1이고, 우수 지수에 대해 p=0이다)이고, 상기 선정된 수의 각각은 상기 초기 추정에 대해 (-e-1)의 지수 값을 제공하는 값으로 설정된 지수 필드를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  25. 제 24 항에 있어서,
    상기 제 1 선정된 수는 상기 부동 소수점수의 지수가 기수일 때 선택되고, 상기 제 2 선정된 수는 상기 지수가 우수일 때 선택되는 것을 특징으로 하는 초기 추정의 결정 방법.
  26. 제 25 항에 있어서,
    상기 선정된 수의 각각은 분수 필드 h를 포함하고, h는 약 1과 약 0.8 사이의 값을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  27. 분수와 지수를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    제 1 및 제 2 선정된 수를 위한 제 1 및 제 2 기억 장소;
    상기 부동 소수점수를 수신하고, 우로 1 비트 쉬프트된 상기 부동 소수점수를 제 1 결과로서 출력하는 쉬프트 회로;
    상기 제 1 및 제 2 기억 장소에 결합되고, 상기 지수의 최하위 비트의 값에 따라 상기 제 1 및 제 2 선정된 수중에서 하나를 출력하는 선택 회로; 및
    상기 쉬프트 회로 및 상기 선택 회로에 결합되고, 상기 초기 추정을 제공하기 위해 상기 선택되고 선정된 수에서 상기 제 1 결과를 감산하는 감산 회로;를 구비하는 것을 특징으로 하는 초기 추정의 결정 장치.
  28. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 방법에 있어서,
    감산 회로를 제공하는 단계;
    상기 감산 회로를 사용하여, 제 1 결과를 발생하기 위해 상기 지수의 최하위 비트에서 1을 감산하는 단계;
    상기 쉬프트 회로에서, 제 2 결과를 구하기 위해 상기 제 1 결과와 상기 분수를 우로 1비트 위치 쉬프트하는 단계; 및
    상기 역에 대한 초기 추정을 구하기 위해 선정된 수에서 상기 제 2 결과를 감산하는 단계;를 포함하는 것을 특징으로 하는 초기 추정의 결정 방법.
  29. 제 28 항에 있어서,
    상기 선정된 수는 지수 필드와 분수 필드 h를 포함하고,
    상기 지수 E=2e+p(여기서, 우수 지수에 대해 p=0이고, 기수 지수에 대해 p=1이다)이고,
    상기 초기 추정은 상기 지수 E가 우수일 때 2-e-1(1+h-f/2)의 근사값을 가지며,
    상기 지수 E가 기수일 때, 상기 초기 추정은 (h-상기 제2 결과의 분수 부분)의 값에 따라, 2-e-1x (1+h-f/2-1/2)과 2-e-1x (1+h/2-f/4-1/4)중에서 하나의 근사값을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  30. 제 29 항에 있어서,
    h는 약 1과 0.8 사이의 값을 갖는 것을 특징으로 하는 초기 추정의 결정 방법.
  31. 제 30 항에 있어서,
    상기 선정된 수는 최상위 비트 위치에 '5EF90F'의 16진수 값을 갖는 32 비트 이진수인 것을 특징으로 하는 초기 추정의 결정 방법.
  32. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    제 1 및 제 2 선택 회로;
    상기 부동 소수점수와 제 2 선정된 수가 상기 제 1 선택 회로에 접속되고, 상기 부동 소수점수와 제 1 및 제 2 선정된 수를 위한 기억 장소;
    상기 제 1 및 제 2 선택 회로에 결합되고, 상기 제 1 및 제 2 선택 회로를 통해 상기 부동 소수점수와 상기 제 1 선정된 수를 수신하며, 상기 부동 소수점수에서 감산된 상기 제 1 선정된 수를 제 1 결과로서 제공하는 감산 회로; 및
    상기 감산 회로와 상기 제 2 선택 회로에 결합되고, 상기 제 2 선택 회로에 대해 우로 1비트 위치 쉬프트된 상기 제 1 결과를 제 2 결과로서 제공하는 쉬프트 회로;를 구비하고,
    제 1 및 제 2 선택 회로는 상기 감산 회로에 상기 제 2 선정된 수와 상기 제 2 결과를 공급하고, 상기 감산 회로는 상기 초기 추정을 발생하기 위해 상기 제 2 선정된 수로에서 상기 제 2 결과를 감산하는 것을 특징으로 하는 초기 추정의 결정 장치.
  33. 제 32 항에 있어서,
    상기 제 1 선정된 수는 상기 지수 E의 최하위 비트에 대응하는 1을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  34. 제 33 항에 있어서,
    상기 제 2 선정된 수는 지수 필드와 분수 필드 h를 포함하고,
    상기 지수 E=2e+p(여기서, 우수 지수에 대해 p=0이고, 기수 지수에 대해 p=1이다)이고,
    상기 초기 추정은 상기 지수 E가 우수일 때 2-e-1(1+h-f/2)의 근사값을 가지며,
    상기 지수 E가 기수일 때, 상기 초기 추정은 (h-상기 제2 결과의 분수 부분)의 값에 따라, 2-e-1x (1+h-f/2-1/2)과 2-e-1x (1+h/2-f/4-1/4)중에서 하나의 근사값을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  35. 제 34 항에 있어서,
    h는 약 1과 0.8 사이의 값을 갖는 것을 특징으로 하는 초기 추정의 결정 장치.
  36. 제 35 항에 있어서,
    상기 제 2 선정된 수는 최상위 비트 위치에 '5EF90F'의 16진수 값을 갖는 32 비트 이진수인 것을 특징으로 하는 초기 추정의 결정 장치.
  37. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    상기 부동 소수점수와 선정된 수를 저장하는 수단;
    상기 부동 소수점수와 상기 선정된 수에 결합되고, 제 1 결과를 제공하기 위해 상기 선정된 수에서 상기 부동 소수점수를 감산하는 수단; 및
    상기 제 1 결과를 수신하고, 상기 초기 추정을 발생하기 위해 상기 제 1 결과를 우로 1 비트 위치 쉬프트하는 수단;을 구비하는 것을 특징으로 하는 초기 추정의 결정 장치.
  38. 분수 f와 지수 E를 갖는 부동 소수점수의 제곱근의 역에 대한 초기 추정을 결정하는 장치에 있어서,
    상기 부동 소수점수와 선정된 수를 저장하는 수단;
    상기 부동 소수점수에 결합되고, 제 1 결과를 발생하기 위해 상기 부동 소수점수를 우로 1비트 위치 쉬프트하는 수단; 및
    상기 쉬프터 수단과 상기 선정된 수에 결합되고, 상기 초기 추정을 제공하기 위해 상기 선정된 수에서 상기 제 1 결과를 감산하는 수단;을 구비하는 것을 특징으로 하는 초기 추정의 결정 장치.
KR1019970017469A 1996-10-31 1997-05-07 제곱근의 부동소수점역에 대한 초기 추정을 발생하는 방법 및 장치 KR100241068B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/741,994 US5847979A (en) 1996-10-31 1996-10-31 Method and apparatus for generating an initial estimate for a floating point reciprocal of a square root
US8/741,994 1996-10-31
US08/741,994 1996-10-31

Publications (2)

Publication Number Publication Date
KR19980032114A true KR19980032114A (ko) 1998-07-25
KR100241068B1 KR100241068B1 (ko) 2000-02-01

Family

ID=24983080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970017469A KR100241068B1 (ko) 1996-10-31 1997-05-07 제곱근의 부동소수점역에 대한 초기 추정을 발생하는 방법 및 장치

Country Status (2)

Country Link
US (1) US5847979A (ko)
KR (1) KR100241068B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506470B1 (ko) * 2001-05-31 2005-08-05 세미콘덕터 테크놀로지 아카데믹 리서치 센터 평방근의 역수 계산 방법, 계산 회로, 및 기록매체

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US6175907B1 (en) * 1998-07-17 2001-01-16 Ip First, L.L.C Apparatus and method for fast square root calculation within a microprocessor
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
US6349319B1 (en) * 1999-01-29 2002-02-19 Sun Microsystems, Inc. Floating point square root and reciprocal square root computation unit in a processor
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US6912559B1 (en) * 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
FI20000378A (fi) * 2000-02-18 2001-08-18 Nokia Networks Oy Laskutoimitusten suorittaminen digitaalisessa signaalinkäsittelylaitteessa
US6963895B1 (en) * 2000-05-01 2005-11-08 Raza Microelectronics, Inc. Floating point pipeline method and circuit for fast inverse square root calculations
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US6654777B1 (en) * 2000-07-27 2003-11-25 International Business Machines Corporation Single precision inverse square root generator
US6567777B1 (en) 2000-08-02 2003-05-20 Motorola, Inc. Efficient magnitude spectrum approximation
US20060271615A1 (en) * 2005-05-27 2006-11-30 Shearer James B Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format
US20070106719A1 (en) * 2005-11-08 2007-05-10 Lexmark International, Inc. Integer square root algorithm for use in digital image processing
GB2580177B (en) 2018-12-21 2021-03-24 Imagination Tech Ltd Iterative estimation hardware
CN116700664B (zh) * 2022-02-24 2024-06-21 象帝先计算技术(重庆)有限公司 一种确定浮点数平方根的方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4939296B1 (ko) * 1968-05-25 1974-10-24
US3631230A (en) * 1970-09-24 1971-12-28 Ibm Binary arithmetic unit implementing a multiplicative steration for the exponential, logarithm, quotient and square root functions
US4484259A (en) * 1980-02-13 1984-11-20 Intel Corporation Fraction bus for use in a numeric data processor
US4823301A (en) * 1987-10-22 1989-04-18 Tektronix, Inc. Method and circuit for computing reciprocals
US4999801A (en) * 1988-07-15 1991-03-12 Fujitsu Limited Floating point operation unit in division and square root operations
US5293558A (en) * 1988-11-04 1994-03-08 Hitachi, Ltd Multiplication, division and square root extraction apparatus
US5249149A (en) * 1989-01-13 1993-09-28 International Business Machines Corporation Method and apparatus for performining floating point division
US5036482A (en) * 1989-04-07 1991-07-30 Intel Corporation Method and circuitry for digital system multiplication
US5046038A (en) * 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5159566A (en) * 1989-09-05 1992-10-27 Cyrix Corporation Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
JP2523962B2 (ja) * 1990-08-20 1996-08-14 松下電器産業株式会社 浮動小数点演算装置
US5206823A (en) * 1990-12-13 1993-04-27 Micron Technology, Inc. Apparatus to perform Newton iterations for reciprocal and reciprocal square root
US5268857A (en) * 1992-01-08 1993-12-07 Ncr Corporation Device and method for approximating the square root of a number
US5305248A (en) * 1993-04-23 1994-04-19 International Business Machines Corporation Fast IEEE double precision reciprocals and square roots
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
US5537345A (en) * 1993-10-14 1996-07-16 Matsushita Electrical Industrial Co. Ltd. Mathematical function processor utilizing table information
US5539684A (en) * 1993-12-10 1996-07-23 Motorola, Inc. Method and apparatus for calculating floating point exponent values
US5459681A (en) * 1993-12-20 1995-10-17 Motorola, Inc. Special functions arithmetic logic unit method and apparatus
US5563818A (en) * 1994-12-12 1996-10-08 International Business Machines Corporation Method and system for performing floating-point division using selected approximation values
US5627773A (en) * 1995-06-30 1997-05-06 Digital Equipment Corporation Floating point unit data path alignment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506470B1 (ko) * 2001-05-31 2005-08-05 세미콘덕터 테크놀로지 아카데믹 리서치 센터 평방근의 역수 계산 방법, 계산 회로, 및 기록매체

Also Published As

Publication number Publication date
US5847979A (en) 1998-12-08
KR100241068B1 (ko) 2000-02-01

Similar Documents

Publication Publication Date Title
KR19980032114A (ko) 제곱근의 부동 소수점 역에 대한 초기 추정을 발생하는 방법 및 장치
US4939686A (en) Method and apparatus for shared radix 4 division and radix 4 square root
US6529928B1 (en) Floating-point adder performing floating-point and integer operations
JP2835153B2 (ja) 高基数除算器
US5222037A (en) Floating-point processor for performing an arithmetic operation on fixed-point part data with high speed rounding of a result
KR100305544B1 (ko) 정수 나눗셈 장치
US5010508A (en) Prenormalization for a floating-point adder
WO1999056202A1 (en) Method and apparatus for floating point operations and format conversion operations
US8639737B2 (en) Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format
JPH07182143A (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
US8060551B2 (en) Method and apparatus for integer division
US5784307A (en) Division algorithm for floating point or integer numbers
US6847986B2 (en) Divider
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
KR100257522B1 (ko) 디지털 신호 프로세서에서의 부동소수점 역수를 위한 초기추정을 수행하기 위한 방법 및 장치
CN108334304B (zh) 数字递归除法
US5818745A (en) Computer for performing non-restoring division
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
US6963895B1 (en) Floating point pipeline method and circuit for fast inverse square root calculations
JP2003084969A (ja) 浮動小数点剰余演算器、情報処理装置及びコンピュータプログラム
JP3028165B2 (ja) 高基数除算制御方法および高基数除算器
JP2000010763A (ja) 除算回路
JP2795253B2 (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: 20101029

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee