KR102437767B1 - 높은 기수 16 제곱근 추정 - Google Patents
높은 기수 16 제곱근 추정 Download PDFInfo
- Publication number
- KR102437767B1 KR102437767B1 KR1020170108882A KR20170108882A KR102437767B1 KR 102437767 B1 KR102437767 B1 KR 102437767B1 KR 1020170108882 A KR1020170108882 A KR 1020170108882A KR 20170108882 A KR20170108882 A KR 20170108882A KR 102437767 B1 KR102437767 B1 KR 102437767B1
- Authority
- KR
- South Korea
- Prior art keywords
- radix
- value
- root
- column
- row
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- 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/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/462—Multiplying; dividing
- G06F7/463—Multiplying; dividing by successive additions or subtractions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- 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/4824—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 using signed-digit representation
-
- 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/49—Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
-
- 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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Error Detection And Correction (AREA)
Abstract
나눗셈 및 제곱근 연산들 모두에 사용되는 기수-4 부분 나머지-제수(PD, partial reminder-divisor) 표를 포함하는 하드웨어를 이용하여 기수-16 제곱근 반복 연산을 위한 시작 추정을 생성하는 장치들, 그것을 제조하는 방법들, 시스템들 및 방법들이 설명된다. 일 측면에서, 기수-16 제곱근 반복 연산에 대한 피개수의 일부가 열/근 및 행/부분 피개수 값들을 판단하는 데에 사용되며, 이들은 기수-16 제곱근 반복 연산을 위한 기수-4 PD 표로부터 시작 추정을 판단하는 데에 사용된다.
Description
본 기재는 일반적으로 나눗셈 및 제곱근 반복 연산들 모두에 사용되는 하드웨어를 이용하여 기수-16 제곱근 계산을 위한 시작 추정을 생성하는 것에 관한 것으로, 더 상세하게는 수정된 기수-4 검색표들(LUTs, look up tables)을 이용한 기수-16 제곱근 계산을 위한 시작 추정을 선택하는 것에 관한 것이다.
컴퓨터 응용들(applications)이 갈수록 복잡해짐에 따라, 실행 불가능하게 복잡해지는 것을 회피하는 것 또한 시도하면서, 고속 및 더 적은 공간을 차지하는 요건들에 의해 하드웨어 구성이 갈수록 부담을 떠안고 있다. 자원 사용을 줄이는 하나의 방법은 다중 사용들을 위한 구성 요소들과 기능들을 사용하는 것이다. 본 출원은 구성 요소들/기능들의 공유를 고려하여 나눗셈 및 제곱근(square root) 계산들 모두를 수행한다. 관련된 구성 요소들/기능들을 이해하기 위하여, 나눗셈이 먼저 아래에서 논의된다.
프로세서들에 의해 수행되는 대부분의 계산들처럼, 나눗셈은 반복 프로세스로 구현된다. 나눗셈 반복적 프로세스들 또는 알고리즘들의 하나의 카테고리는 뺄셈(subtraction)을 이용하여 몫(quotient)/나머지(remainder)를 획득하는 자릿수 순환(digit recurrence) 알고리즘들이다. "복원(restoring)" 자릿수 순환 알고리즘들은 종이와 연필에 의한 나눗셈의 반복적인 프로세스와 유사하며, 때때로 제수를 더하여 원 피제수(original dividend)를 복원할 필요가 있다. 직관적으로, 이는 특정 용량의 메모리를 필요로 하고, 두 개의 n-자리 수들을 나누는 것은 2n 덧셈들/뺄셈들이 수행되는 것을 유발할 수 있을 것으로 보여질 수 있다.
"비복원" 자릿수 순환 알고리즘들은 복원 사이클들을 제거하고, n 덧셈들까지만을 필요로 한다. 이는 몫을, 예를 들어 이진 형태로 변환될 수 있는 {-n, +n}과 같은 양의 그리고 음의 정수들의 디지털 세트로 표현함으로써 달성된다. 이 방법에서, 하나의 반복의 작은 에러들은 후속하는 반복들에서 정정될 수 있다.
컴퓨팅에서 널리 사용되는 스위니(Sweeney), 로빈슨(Robinson), 그리고 토처(Tocher)(SRT) 나눗셈은 특정 반복 계산들을 연산하는 것보다는 검색표(LUT, lookup table)를 이용하는 비복원 자릿수 순환 알고리즘들의 특별한 세트이다. SRT 나눗셈에서, 몫(q)이 수학식 1 내지 수학식 4에 도시된 바와 같이 나타내어지고 다시 쓰여질 수 있다.
여기에서 입력 피연산자들(operands)은 피제수(dividend) 및 제수(divisor)로 주어진다. 결과들은 몫(q) 및 나머지(remainder)이다. 몫의 정도(precision)는 마지막 위치(ulp)의 단위로 정의되며, 정수(integer) 몫에 대해 ulp는 1이고, 이진 표시(binary representation)를 이용하는 소수(fractional) 몫에 대해 n 자릿수(n digit) 몫을 가정하면 ulp는 2- n이다. r=2k와 같이 통상적으로 2의 지수로 선택되는 알고리즘의 기수(r)는각 반복에서 얼마나 많은 몫 비트들이 퇴진되는지를 판단한다. 따라서, 기수(r) 알고리즘은 n 자릿수 몫을 연산하는 데에 의 반복들을 필요로 한다.
수학식 5 및 수학식 6에 도시된 바와 같이, 다음의 되풀이(recurrence)는 매 반복에서 사용된다.
여기에서 Pj는 j번째 반복에서 부분 나머지(partial remainder 또는 residual)이다. 각 반복에서, 몫의 하나의 자릿수가 판단된다. 예를 들어, IEEE의 VLSI 시스템들의 처리들(Transactions of VLSI Systems)의 제6권 페이지 141-149 (1998년 3월)에 오버만(Oberman) 및 플린(Flynn)에 의해 수록된 "SRT 표들의 복잡도를 최소화하기(Minimizing the Complexity of SRT Tables)"의 전체 콘텐츠는 여기에 참조로 포함된다.
수학식 5 및 수학식 6을 이용하여, SRT 나눗셈 되풀이(recurrence)의 각 반복(iteration)은 다음의 단계들을 포함한다.
1) 몫-자릿수 선택 함수에 의해 다음 몫-자릿수(qj + 1)를 판단하는 단계;
2) 곱(qj +1×제수)을 생성하는 단계; 그리고
3) r×Pj로부터 qj +1×제수를 감하여 다음 부분 나머지를 형성하는 단계.
제1 단계의 몫-자릿수 함수는 부분 나머지-제수(PD, partial remainder-divisor) 표로 알려진 검색표(LUT)에 의해 구현되며, 검색표는 각 반복에서 계산되는 부분 나머지 및 제수에 기반한다.
제곱근(square root) 함수는 반복 프로세스에 의해 유사하게 구현될 수 있다. 여기에서 피개수(radicand)는 피제수(dividend)와 유사하고, 부분 피개수(partial radicand)는 부분 나머지(partial remainder)와 유사하고, 그리고 근(root)은 함수에서 몫과 유사하다. IEEE의 1987년의 컴퓨터 연산의 심포지움(Symposium on Computer Arithmetic)의 페이지 73-79에 J. 파드리안토에 의해 수록된 "고속의 공유된 기수 4 나눗셈 및 기수 4 제곱근을 위한 알고리즘(Algorithm for High Speed Shared Radix 4 Division and Radix 4 Square Root)", 그리고 IEEE의 1989년의 컴퓨터 연산의 심포지움(Symposium on Computer Arithmetic)의 페이지 68-75에 J 파드리안토에 의해 수록된 "고속의 공유된 기수 8 나눗셈 및 기수 8 제곱근을 위한 알고리즘(Algorithm for High Speed Shared Radix 8 Division and Radix 8 Square Root)" 모두의 전체 콘텐츠는 여기에 참조로 포함된다.
그러나 SRT 나눗셈과 달리, 제곱근 연산은 반복 프로세스의 시작점에 관하여 제수와 유사한 어떤 것도 갖지 않는다. 다시 말하면, 제곱근 반복 프로세스를 시작하기 위하여 시작 제곱근 추정이 생성되어야만 한다. 게다가, 시작 추정은 반복 프로세스가 SRT 나눗셈 연산과 동일한 PD 표를 사용하는 제곱근에 수렴됨을 보장하여야 한다.
본 발명의 목적은 기수-4 부분 나머지-피제수 표를 이용하여 기수-16 제곱근 반복 연산에 사용되는 시작 추정을 판단하는 장치들 및 방법들을 제공하는 데에 있다.
따라서, 본 기재는 여기에 기술된 적어도 문제들 그리고/또는 장점들을 처리하고 그리고 아래에 기술되는 적어도 장점들을 제공하도록 만들어진다.
본 기재의 일 측면에 따르면, 방법이 제공된다. 기수-16(radix-16) 제곱근 반복 연산에 대한 시작 추정(starting estimation)을 생성하는 방법이 제공된다. 방법은 상기 제곱근 연산의 피개수의 적어도 일부를 이용하여, 하나 또는 그보다 많은 열/근 검색표들(LUTs, lookup tables)을 이용하여 부분 나머지-제수(PD, partial remainder-divisor) 표에 대한 4 비트 열/근 값을 판단하는 단계; 상기 부분 나머지-제수표는 기수-16 제곱근 및 기수-16 나눗셈 연산들 모드에 사용되고, 상기 부분 나머지-제수 표는 접힌(folded) 양의 측(positive side) 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하고, 상기 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들에 모두 사용되고; 상기 피개수의 상기 적어도 일부를 이용하여, 하나 또는 그보다 많은 행/부분 피개수 검색표들을 이용하여 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값을 판단하는 단계; 그리고 상기 4 비트 열/근 값 및 상기 8 비트 행/부분 피개수 값에 의해 지시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정을 계산하는 단계를 포함한다.
본 기재의 일 측면에 따르면, 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체; 그리고 적어도 하나의 프로세서를 포함하는 장치가 제공된다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는, 접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표; 상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고; 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고 상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장한다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는 상기 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 지시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산한다.
본 발명의 일 측면에 따르면, 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체; 그리고 적어도 하나의 프로세서를 포함하는 칩셋을 제조하는 단계가 제공된다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는, 접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표; 상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고; 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고 상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장한다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는 상기 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 지시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산한다.
본 발명의 일 측면에 따르면, 장치를 테스트하는 방법이 제공된다. 상기 방법은 상기 장치가 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체를 갖는지 테스트하는 단계, 그리고 상기 장치가 적어도 하나의 프로세서를 갖는지 테스트하는 단계를 포함한다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는, 접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표; 상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고; 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고 상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장한다. 상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는 상기 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 지시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산한다.
본 발명에 따르면, 기수-4 부분 나머지-피제수 표의 일부를 이용하여 기수-16 제곱근 반복 연산에 사용되는 시작 추정이 판단된다. 기수-16 부분 나머지-피제수 표를 저장할 필요 없이 기수-16 제곱근 반복 연산이 수행되므로, 제곱근 반복 연산을 수행하는 데에 필요한 자원, 예를 들어 메모리의 용량이 감소된다.
본 기재의 특정한 실시 예들의 위의 그리고 다른 측면들, 특성들, 그리고 장점들은 첨부된 도면들을 참조하여 아래의 상세한 설명으로부터 더 명백해질 것이다.
도 1은 IEEE-754 표준에 따른 32비트 단정도(single precision) 부동 소수점 십진 값의 피개수(radicand) 및 본 기재의 기수-4 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들과 짝수 및 홀수 표들을 보여준다.
도 2는 IEEE-754 표준에 따른 32비트 피개수, 본 기재의 기수-4 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들, 그리고 홀수 및 짝수 피개수들의 예들을 보여준다.
도 3a 및 도 3b는 본 기재의 실시 예들에 따른, 동일한 기수-4 PD 표를 보여주며, 도 3a는 홀수 피개수에 따라 제곱근 값의 시작 추정이 어떻게 판단되는지를 보여주고, 도 3b는 짝수 피개수에 따라 제곱근 값의 시작 추정이 어떻게 판단되는지를 보여준다.
도 4는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 PD 표이다.
도 5는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 시작 추정을 생성하는 방법의 순서도이다.
도 6a는 IEEE-754 표준에 따른 32비트 피개수, 그리고 열 값을 선택하여 본 기재의 기수-16 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들과 짝수 및 홀수 표들을 보여준다.
도 6b는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 시작 추정을 생성하기 위한 행 값을 선택하는 데에 사용되는 짝수 및 홀수 표들을 보여준다.
도 6c는 본 기재의 기수-16 실시 예에 따른 0000의 특수한 경우에 대한 제곱근 연산을 위한 시작 추정을 위한 열 값을 변경하는 데에 사용되는 짝수 및 홀수 표들을 보여준다.
도 7a는 본 기재의 실시 예에 따른 예시적인 장치를 보여준다.
도 7b는 본 기재의 실시 예에 따른 장치를 제조하는 그리고 테스트하는 예시적은 방법의 순서도를 보여준다.
도 1은 IEEE-754 표준에 따른 32비트 단정도(single precision) 부동 소수점 십진 값의 피개수(radicand) 및 본 기재의 기수-4 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들과 짝수 및 홀수 표들을 보여준다.
도 2는 IEEE-754 표준에 따른 32비트 피개수, 본 기재의 기수-4 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들, 그리고 홀수 및 짝수 피개수들의 예들을 보여준다.
도 3a 및 도 3b는 본 기재의 실시 예들에 따른, 동일한 기수-4 PD 표를 보여주며, 도 3a는 홀수 피개수에 따라 제곱근 값의 시작 추정이 어떻게 판단되는지를 보여주고, 도 3b는 짝수 피개수에 따라 제곱근 값의 시작 추정이 어떻게 판단되는지를 보여준다.
도 4는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 PD 표이다.
도 5는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 시작 추정을 생성하는 방법의 순서도이다.
도 6a는 IEEE-754 표준에 따른 32비트 피개수, 그리고 열 값을 선택하여 본 기재의 기수-16 실시 예에 따른 제곱근 연산을 위한 시작 추정을 생성하는 데에 사용되는 32비트 피개수의 비트들과 짝수 및 홀수 표들을 보여준다.
도 6b는 본 기재의 실시 예에 따른 기수-16 제곱근 연산을 위한 시작 추정을 생성하기 위한 행 값을 선택하는 데에 사용되는 짝수 및 홀수 표들을 보여준다.
도 6c는 본 기재의 기수-16 실시 예에 따른 0000의 특수한 경우에 대한 제곱근 연산을 위한 시작 추정을 위한 열 값을 변경하는 데에 사용되는 짝수 및 홀수 표들을 보여준다.
도 7a는 본 기재의 실시 예에 따른 예시적인 장치를 보여준다.
도 7b는 본 기재의 실시 예에 따른 장치를 제조하는 그리고 테스트하는 예시적은 방법의 순서도를 보여준다.
이하에서, 본 기재의 실시 예들이 첨부된 도면들을 참조하여 상세하게 설명된다. 동일한 요소들은 다른 도면들에서 보이더라도 동일한 참조 번호들에 의해 지정됨에 유의하여야 한다. 아래의 설명에서, 상세한 구성들 및 구성 요소들과 같은 구체적인 상세들이 단지 본 기재의 실시 예들의 전체적인 이해를 돕기 위해 제공된다. 따라서, 여기에 기술되는 실시 예들의 다양한 변경들 및 수정들이 본 기재의 범위로부터 멀어지지 않으면서 행해질 수 있음이 이 분야에 숙련된 자들에게 명백하다. 또한, 잘 알려진 기능들 및 구조들의 설명들은 명확성 및 간결성을 위해 생략된다. 아래에 기술되는 용어들은 본 기재의 기능들을 고려하여 정의된 용어들이며, 사용자들, 사용자들의 의도들, 또는 관습에 따라 다를 수 있다. 따라서, 용어들의 정의들은 상세한 설명 전체에 걸친 내용들에 기반하여 판단되어야 한다.
본 기재는 다양한 수정들 및 다양한 실시 예들을 가질 수 있으며, 이들 중 실시 예들이 첨부된 도면들을 참조하여 아래에서 상세히 설명된다. 그러나 본 기재는 해당 실시 예들로 한정되지 않고, 본 기재의 범위 내의 모든 수정들, 등가물들, 그리고 대체물들을 포함함이 이해되어야 한다.
제1 및 제2와 같은 기수를 포함하는 용어들이 다양한 요소들을 설명하기 위하여 사용되지만, 구조적 요소들은 용어들에 의해 제한되지 않는다. 용어들은 하나의 요소를 다른 하나의 요소로부터 구별하기 위해서만 사용된다. 예를 들어, 본 기재의 범위로부터 멀어지지 않으면서, 제1 구조적 요소는 제2 구조적 요소로 참조될 수 있다. 유사하게, 제2 구조적 요소 또한 제1 구조적 요소로 참조될 수 있다. 여기에서 사용되는 바와 같이, "그리고/또는"의 용어는 하나 또는 그보다 많은 연관된 항목들의 임의의 그리고 모든 조합들을 포함한다.
여기의 용어들은 본 기재의 다양한 실시 예들을 설명하기 위해서만 사용되며, 본 기재를 제한하는 것으로 의도되지 않는다. 문맥에서 명확하게 다르게 지적하지 않는 한, 단수 형태들은 복수 형태들을 포함한다. 본 기재에서, "포함하다" 또는 "갖다"의 용어들은 특성(feature), 수(number), 단계(step), 연산(operation), 구조적 요소(structural element), 부품들(parts), 또는 이들의 조합의 존재를 가리키며, 하나 또는 그보다 많은 특성들, 수들, 단계들, 연산들, 구조적 요소들, 부품들, 또는 이들의 조합들의 추가의 존재 또는 가능성을 배제하지 않는다.
다르게 정의되지 않는 한, 여기에서 사용되는 모든 용어들은 본 기재가 속한 분야에 숙련된 자에 의해 이해되는 것들과 동일한 의미들을 갖는다. 일반적으로 사용되는 사전에서 정의된 것들과 같은 용어들은 연관된 분야의 맥락적 의미들과 동일한 의미들을 갖는 것으로 해석되며, 본 기재에서 명확히 정의되지 않는 한 이상적인 또는 지나치게 형식적인 의미들을 갖는 것으로 해석되지 않는다.
다양한 실시 예들은 하나 또는 그보다 많은 요소들을 포함할 수 있다. 요소는 특정한 연산들을 수행하기 위해 배열된 임의의 구조를 포함할 수 있다. 실시 예가 예시적인 방법으로서 특정한 배열에서 한정된 수의 요소들로 설명될 수 있지만, 실시 예는 주어진 구현을 위한 필요에 따라 다른 배열들에서 더 많은 또는 더 적은 요소들을 포함할 수 있다. "일 실시 예" 또는 "실시 예"에 대한 임의의 참조는 해당 실시 예와 연관되어 설명되는 구체적인 특성, 구조, 또는 특징(characteristic)이 적어도 하나의 실시 예에 포함됨을 의미하는 것에 유의할 가치가 있다. 본 상세한 설명의 다양한 위치들에서 "일 실시 예"(또는 "실시 예")의 문구의 등장은 필수적으로 동일한 실시 예를 참조하지는 않는다.
본 기재의 일 실시 예에 따르면, 기수-16 시작 추정의 더 높은 수의 비트들을 반영하여 변경된(기수-4는 두 비트 시작 추정만을 필요로 하지만, 기수-16은 네 비트 시작 추정을 필요로 한다) 기수-4 나누기/제곱근 연산들에 사용되는 하나 또는 그보다 많은 표들에 기반하여, 나누기/제곱근 함수들에 대해 공유된 하드웨어를 사용하는 기수(radix)-16 제곱근 반복 계산을 위한 시작 추정이 판단된다.
도 1 내지 도 3b는 본 기재의 실시 예에 따라 기수-4 제곱근 연산에 대해 시작 추정이 어떻게 판단되는지를 보여준다.
도 1에서, 제곱근 함수의 피개수(radicand)는 IEEE-754 표준(이는 전체적으로 여기에 참조로 포함된다)에 따른 32비트 단정도(single precision) 컴퓨터 포맷으로 도시되며, 여기에서 비트 32는 부호(S)(101)를 이고, 비트들 31~24는 지수(E)(102)이고, 그리고 비트들 23~1은 소수(fraction) 또는 유효 숫자(significand)로도 알려져 있는 가수(mantissa)(N)(103)이다. IEEE-754 포맷의 소수/가수는 도 2의 번호들(225, 235)에서 "(1)"로 보여지는 바와 같이 1.0의 값의 "보이지 않는(invisible)"(즉, 저장되지 않는) 선두 비트(leading bit)를 가지며, 이는 소수/가수의 값이 1.0 및 2의 사이임을 의미하며, 따라서 비트(23)는 1/2의 값을 갖고, 비트(22)는 1/4의 값을 가질 수 있다. 본 기재의 실시 예들에서, 지수에서 최하위 비트(LSB)가 1일 때 표시는 "짝수"인 것으로, 그리고 지수의 최하위 비트가 0일 때 표시는 "홀수"인 것으로 여겨진다.
도 1에 도시된 바와 같이, 소수/가수(103)의 세 최상위 비트들(MSBs) 및 지수(102)의 최하위 비트(LSB)는 지수의 최하위 비트(LSB)(E)의 값이 1인지(짝수) 또는 0인지(홀수)에 기반하여 각각 짝수 표(120) 또는 홀수 표(130)에 대한 입력(E NNN)으로 사용된다. 짝수 표(120) 및 홀수 표(130)는 각 가능한 입력(E NNN)(110) 값에 대한 출력을 보여준다.
도 2는 또한 IEEE-754 표준에 따른 32-비트 피개수 및 짝수(EVEN) 표(120) 또는 홀수(ODD) 표(130) 중 하나에 대한 입력으로 사용되는 비트들(E NNN)을 보여준다. 도 2는 또한 하나는 홀수이고 다른 하나는 짝수인 피개수들의 두 예들을 보여준다. 더 상세하게는, 220은 2.0009766의 십진 값을 갖는 수의 십육진(hexadecimal) 표시를 가리키고 그리고 225는 2.0009766의 십진 값을 갖는 수의 32비트 이진(binary) 표시를 가리킨다. 32-비트 이진 표시(225)의 지수의 최하위 비트가 0이므로, 2.0009766의 십진 값의 피개수는 홀수로 여겨진다. 마찬가지로, 230은 4.001953의 십진 값을 갖는 수의 십육진 표시를 가리키고 그리고 235는 4.001953의 십진 값을 갖는 수의 32비트 이진 표시를 가리킨다. 32-비트 이진 표시(235)의 지수의 최하위 비트가 1이므로, 4.001953의 십진 값의 피개수는 짝수로 여겨진다.
본 기재의 실시 예에 따른 기수-4 PD 표(300)가 도 3a 및 도 3b에서 도시된다. 도 3a는 또한 본 기재의 실시 예들에 따른 홀수 피개수를 갖는 제곱근 추정의 판단을 보여주며, 도 3b는 또한 본 기재의 실시 예들에 따른 짝수 피개수를 갖는 제곱근 추정의 판단을 보여준다. 본 기재에 따른 하나의 기수-4 PD 표가 "부분 나머지/제수 표 분할 구현(PARTIAL REMAINDER/DIVISOR TABLE SPLIT IMPLEMENTATION)"으로 명명되고 2015년 12월 16일에 출원된 미합중국 특허출원번호 제14/972,077호에서 설명되며, 그 전부는 여기에 참조로 포함된다. 본 기재가 적용될 수 있는 전체적인 제수/제곱근 구성의 예가 "정수/부동 소수점 나누기 및 제곱근 유닛 및 연관된 방법들(INTEGER/FLOATING POINT DIVIDER AND SQUARE ROOT LOGIC UNIT AND ASSOCIATED METHODS)"로 명명되고 2016년 1월 14일에 출원된 미합중국 특허출원번호 제14/996,216호에서 기술되며, 그 전부는 여기에 참조로 포함된다.
통상적으로 검색표들(LUTs, lookup tables)로 저장되는 PD 표들은 이전 제수/근 및 부분 나머지/피개수의 열 및 행에 의해 각각 표시되는 셀을 선택함으로써, 순환적 프로세스의 각 반복에서 몫 추정을 생성하는 데에 사용된다. 기수-4 PD 표(300)에서 음의 이진 값들은 2의 보수 형태이다. 기수-4의 PD 표(300)는 현재 형태로 접힐 수 없으며, 이는 기수-4 PD 표(300)가 "양의" 0 값 행 및 첫 번째 음의 값 행 사이의 선(305)을 기준으로 완벽하게 대칭적이지 않음을 의미한다. 다시 말하면, 예를 들어 양의 측의 셀(301)이 영이 아닌 값(X)인 반면 음의 측의 대응하는 셀(303)은 "01"이므로, 기수-4 PD 표(300)는 접힐 수 없다.
실제로, PD 표들은 접힐 수 있는 형태로 저장된다. 또는, 더 정확하게는, "접힐 수 있는" PD 표의 윗부분 절반이 검색표로 저장된다. 셀들(301, 303)에서와 같이 완벽한 대칭성이 없는 경우(항상 그렇듯이), 아래에서 더 충분히 논의되는 바와 같이, 정확한 값이 주어지는 것을 보장하기 위해 추가적인 단계들/기술들이 사용된다.
위에서 언급된 바와 같이, 도 3a는 홀수 피개수로 초기 제곱근 추정이 어떻게 판단되는지의 예를 보여준다. 더 상세하게는, 도 3a의 화살표는 도 2의 홀수 피개수 예(220/225)에 따른 "0111"의 근/제수 값을 갖는 열을 가리킨다. 도 2에 도시된 바와 같이, 홀수 피개수 예(220, 225)는 "0000"의 ENNN 이진 입력 값을 갖고, 도 1의 홀수 표(120)에 따르면, 이는 도 3a에 도시된 바와 같이 열 값으로 사용되는 출력 "0111"을 유발한다. 수렴의 우도(likelihood of convergence)를 증가시키는 관점에서, 기수-4 PD 표에서 행 값으로 중간 값이 선택되며, 이 경우에 행/부분 나머지/피개수 값 "0001.00"이 선택된다. 이들 행 및 열 값들에 따라, 본 기재의 실시 예에 따라 셀 엔트리(355) 내의 두 비트들 "10"이 반복 제곱근 연산에 대한 시작 추정이다.
도 3b는 본 기재의 실시 예들에 따른 짝수 피개수로 시작 제곱근 추정이 어떻게 판단되는지의 예를 보여준다. 도 2의 짝수 피개수 예(230/235)에 따라, 도 3b의 화살표는 "0000"의 근/제수 값을 갖는 열을 가리킨다. 도 2에 도시된 바와 같이, 짝수 피개수 예(230/235)는 "0000"의 E NNN 이진 입력 값을 갖고, 도 1의 짝수 표(130)에 따르면, 이는 도 3b에 도시된 바와 같이 "0000"의 출력이 열 값으로 사용되는 것을 초래한다. 수렴 우도를 증가시키는 관점에서, 기수-4 PD 표에서 행 값으로 중간 값이 선택되고, 이 경우에 "0010.00"의 행/부분 나머지/피개수 값이 선택된다. 이들 행 및 열 값들에 따라, 본 기재의 실시 예에 따라 셀 엔트리(350) 내의 두 비트들 "01"이 반복 제곱근 연산에 대한 시작 추정이다.
본 기재의 실시 예에 따르면, 기수-4 PD 표의 행 및 열은 하나의 사이클 동안에만 유지되고, 이후에 시작 제곱근 프로세스가 시작된다. 다른 실시 예에 따르면, 기수-4 PD 표의 행 및 열은 첫 번째 사이클 동안 유지되고, 열은 두 번째 사이클에서 변경되고, 이후에 반복 제곱근 프로세스가 시작된다.
도 4는 본 기재의 실시 예에 따른 기수-16 PD 표(400)를 보여준다. 기수-16 PD 표(400)는 다섯 영역들(A, B, C, D, E)을 갖는다. 영역(A)은 도 3a 및 도 3b의 기수-4 PD 표(300)와 동일하다. 기수-16 환경에서 사용될 때, 기수-4 PD 표(300)(영역(A))에 도시된 두-비트 엔트리들은 아래에서 더 상세히 논의되는 바와 같이 네 비트들로 변환된다.
영역(A)이 도 3a 및 도 3b의 기수-4 PD 표(300)의 수정 형태에 대응하는 것과 같이, 영역들(B, C, D, E)은 더 큰 사이즈의 PD 표들로의 확장들로 보여질 수 있다. 이 관점에 대해, 영역들(B, C)은 기수-8 PD 표에 필요한 확장에 대응하고, 영역들(D, E)은 기수-16 PD 표에 필요한 확장에 대응한다. 본 기재의 실시 예들에서, 영역들(B, C, D, E)에 대한 셀/엔트리들은 저장되지 않고, 4-기수-PD 표 영역(A)이 기수-16 구현의 모든 셀/엔트리 값들을 판단하는 데에 사용된다.
본 기재의 실시 예에 따르면, 값이 영역들(V, C, D 또는 E)의 엔트리/셀일 때, 이 값은 하나 또는 그보다 많은 사이클들에 걸쳐 영역(A)의 엔트리/셀의 값으로 감소된다. 이러한 방법으로, 영역(A)의 셀 값들만이 검색표에 유지될 필요가 있고, 다른 영역들의 값들의 범위는 경계들에 의해서만 정의된다. 따라서, 기수-4 PD 표(300)(수정된 형태로)와 같은 기수-4 PD 표가 도 4의 기수-16 PD 표(400)로 표시되는 바와 같이 전체 기수-16 PD 표를 위한 셀 값들을 나타내는 데에 사용될 수 있다.
예를 들어, 값의 엔트리/셀이 영역(E)에 속할 때, 이 값은 +8D만큼 조절되고, 따라서 이 값은 영역(A)에 속하게 된다. 마찬가지로, 값의 엔트리/셀이 영역(D)에 속할 때, 이 값은 -8D만큼 조절된다. 값의 엔트리/셀이 영역(C)에 속할 때, 이 값은 +4D만큼 조절된다. 값의 엔트리/셀이 영역(B)에 속할 때, 이 값은 -4D만큼 조절된다. 이는 단순화된 개괄이며, 밑에서 논의되는 바와 같이 특정한 예들에서 값을 영역(A)으로 돌리기 위해 약간의 조절이 필요할 수 있다.
이하에서, PD 표가 두 연산들(나눗셈 및 제곱근) 모두에 적용되더라도, 본 기재에서 열들은 열들/근들(열들/근들/제수들 대신)로 표시되고, 그리고 행들은 행들/부분 나머지들(행들/부분 피제수/부분 나머지 대신)로 표시된다.
전체적인 사이즈에서 편지-사이즈 페이지에 맞추기 위해 필요한 감소(전체-사이즈 기수-16 PD 표는 4064 엔트리들을 갖는대)로 인해, 도 4는 영역들 사이의 정확한 경계들을 정확히 표시하지 않는다. 실제로, 경계들은 모두 헤지고/계단지고(ragged/stepped) 아래에서 표 1로 보여지는 바와 같이 그리고 도 4의 오른쪽의 외곽 표시들에 의해 표시되는 바와 같이 정의된다. 따라서, 영역(A)(기수-4)의 양의 상부 경계를 얻기 위해, 각 열에서 열/근 값에 8/3을 곱한다. 마찬가지로, 영역(B)(기수-8)의 양의 상부 경계에 대해, 각 열에서 열/근 값에 24/7을 곱한다. 음의 측에서 각 단/열을 얻기 위해, 동일한 절차가 사용된다. 영역(D)(기수-16)의 상부 경계는 값들이 동일하거나 버려지는 "신경쓰지 않는" 영역에 접근함에 따라 도시되지 않는다. 그러나 기수-32 또는 기수-512 구현에서, 이러한 경계들 또한 정의될 필요가 있을 수 있다.
도 5는 본 기재의 실시 예에 따른 기수-16 제곱근 연산에 대한 시작 추정을 생성하기 위한 방법의 순서도이다. 도 6a 내지 도 6c는 도 5에 도시된 동작들의 일부를 수행하는 데에 사용될 수 있는 표들이다.
본 기재의 실시 예에 따른 기수-16 제곱근 연산의 첫 번째 사이클 또는 첫 번째 비트에서(도 5의 510), 일부 동작들이 수행된다. 하나는 피개수의 일부를 이용한 검색표로부터의 4비트 열/제수/근 값의 판단이다. 도 6a에 도시된 예에서 도시된 바와 같이, 기수-4 제곱근 연산으로부터의 동일한 짝수 및 홀수 표들(120, 130)이 사용된다. 도 6a에서, 32비트 피개수(610)의 지수의 최하위 비트 그리고 가수/소수(mantissa/fraction)의 세 최상위 비트들(MSBs)이 1(짝수) 또는 0(홀수)인 지수의 최하위 비트(E)의 값에 기반하여 짝수 표(120) 또는 홀수 표(130)에 대한 입력(E NNN)으로 사용된다.
또한, 본 기재의 실시 예에 따른 기수-16 제곱근 연산의 첫 번째 사이클 또는 첫 번째 비트(도 5의 510)에서, 8-비트 행/부분 피개수 값이 도 6a에서 사용된 피개수의 동일한 일부를 이용하여 검색표로부터 판단된다. 도 6b는 도 6a에서 사용된 피개수의 동일한 부분(E NNN)을 이용하여 8-비트 행/부분 피개수 값을 선택하는 데에 사용되는 짝수 표(620) 및 홀수 표(630)를 보여준다. 피개수로부터의 E NNN 값에서, 1(짝수) 또는 0(홀수)일 수 있는 지수 최하위 비트(E)의 값에 기반하여 짝수 표(620) 또는 홀수 표(630)가 사용된다.
따라서, 본 기재의 실시 예에 따른 기수-16 제곱근 연산의 첫 번째 사이클 또는 첫 번째 비트(도 5의 510)의 두 동작들은 4-비트 열/제수/근 값 및 8-비트 행/부분 피개수 값, 즉 기수-16 PD 표(400)에서 엔트리/셀의 좌표들을 생성한다.
엔트리/셀이 기수-16 PD 표(400)의 영역(A)에 있으면, 두 번째 사이클/비트(520)까지 추가적인 조절들이 행해질 필요가 없다. 그러나 엔트리/셀이 기수-16 PD 표의 다른 영역들 중 어느 것에 있으면, 조절들이 행해질 필요가 있다. 더 상세하게는, 위에서 언급된 바와 같이, 값의 엔트리/셀이 영역(E)에 속하면, 값은 +8D만큼 조절되고, 따라서 값이 영역(A)에 속하게 된다. 마찬가지로, 값의 엔트리/셀이 영역(D)에 속하면, 값은 -8D만큼 조절된다. 값의 엔트리/셀이 영역(C)에 속하면, 값은 +4D만큼 조절된다. 값의 엔트리/셀이 영역(B)에 속하면, 값은 -4D만큼 조절된다. 위에서 언급된 바와 같이, 이는 단순화된 개괄이며, 원본 PD 표의 비대칭 속성을 교정하기 위해 다른 조절들이 필요할 수 있다.
본 기재의 실시 예에 따른 기수-16 제곱근 연산의 두 번째 사이클 또는 두 번째 비트(도 5의 520)에서, 첫 번째 사이클/비트의 끝에서 8-비트 행/부분 피개수 값이 유지되고, 필요한 경우 4-비트 열/근 값에 대한 조절이 행해진다. 이는 4-비트 열/근 값이 위에서 언급된 영역(A)(기수-4)의 "접힘"의 비대칭 속성과 연관된 셀/엔트리 값으로 이어지고 대체될 필요가 있을 경우에만 행해진다. 일 실시 예에서, 이는 검색된 값과 첫 번째 사이클(도 5의 510)에서 하나 또는 그보다 많은 검색표들에 저장된 비대칭 셀/엔트리 값들의 범위들의 빠른 비교에 의해 판단된다. 값이 비대칭이면, 제2 사이클/비트(도 5의 520)에서 교정/수정을 위해 저장된다.
예를 들어, 4-비트 열/제수/근 값은 0000일 수 있으며, 기수-16 PD 표를 저장하는 데에 필요한 메모리를 줄이는 데에 사용되는 접힘 속성에 부합하지 않는 다양한 비대칭-값의 셀/엔트리들로 인해 특이한 경우일 수 있다. 이러한 경우에, 도 6c의 짝수 표(660) 및 홀수 표(670)가 4-비트 열/근 값을 다른 값("출력")으로 조절하는 데에 사용될 수 있다. 더 상세하게는, 원본 부분 피개수 값 E NNN이 다시 사용되지만, 가수/소수의 다음 두 비트들이 끝에 추가된다("E NNN NN"). 다시 한번, E가 짝수(1)인지 또는 홀수(0)인지에 의존하여, 짝수 표(660) 또는 홀수 표(670)가 새로운 4-비트 열/근 값("출력")을 찾는 데에 사용된다. 새로운 열에 의존하여, 8-비트 행/부분 피개수 값 또한, 그중에서도, 영역(A)으로 돌아가도록 조절될 필요가 있다.
조절들이 필요하지 않으면, 두 번째 사이클/비트(520)에서 아무것도 행해지지 않는다.
세 번째 사이클/비트(도 5의 530)에서, 두 번째 사이클/비트(520)로부터의 최종 PD 표 엔트리가 제곱근 반복 연산의 시작 추정이 된다.
도 7a는 본 기재의 실시 예에 따른 장치를 보여준다. 장치(1000)는 적어도 하나의 프로세서(1010) 및 하나 또는 그보다 많은 비-임시 컴퓨터 독출 가능한 매체(1020)를 포함한다. 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는 기수-16 제곱근 및 기수-16 나눗셈 반복 연산들을 수행하는 데에 사용되는 부분 나머지-제수(PD, partial remainder-divisor) 표, 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 PD 표에 대한 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들(LUTs), 그리고 피개수의 적어도 일부가 입력되고 그리고 PD 표에 대한 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 값 검색표들을 저장한다.
적어도 하나의 프로세서(1010)는, 하나 또는 그보다 많은 비-임시 컴퓨터 독출 가능 매체(1020)에 저장된 명령들을 실행할 때, 제곱근 연산의 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 4비트 열/근 값에 의해 그리고 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 검색표들로부터 출력되는 8 비트 행/부분 피개수 값에 의해 표시되는 PD 표의 엔트리를 이용하여, 피개수에 기반한 기수-16 제곱근 반복 연산을 위한 시작 추정을 계산하는 단계를 수행한다.
도 7b는 본 기재의 실시 예에 따른 장치를 제조 및 테스트하는 방법의 순서도를 보여준다.
1050에서, 적어도 하나의 프로세서 및 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체를 포함하는 장치(이 예에서, 칩셋)가 제조된다. 적어도 하나의 프로세서(1010)는, 하나 또는 그보다 많은 비-임시 컴퓨터 독출 가능 매체(1020)에 저장된 명령들을 실행할 때, 제곱근 연산의 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 4비트 열/근 값에 의해 그리고 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 8 비트 행/부분 피개수 값에 의해 표시되는 PD 표의 엔트리를 이용하여, 피개수에 기반한 기수-16 제곱근 반복 연산을 위한 시작 추정을 계산하는 단계를 수행한다. 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는 기수-16 제곱근 및 기수-16 나눗셈 반복 연산들을 수행하는 데에 사용되는 부분 나머지-제수(PD, partial remainder-divisor) 표, 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 PD 표에 대한 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들(LUTs), 그리고 피개수의 적어도 일부가 입력되고 그리고 PD 표에 대한 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장한다.
1060에서, 장치(이 예에서, 칩셋)가 테스트된다. 테스트(1060)는 장치가 하나 또는 그보다 많은 비-임시 컴퓨터 독출 가능 매체(1020)에 저장된 명령들을 실행할 때, 제곱근 연산의 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 4비트 열/근 값에 의해 그리고 피개수의 적어도 일부가 입력될 때 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 8 비트 행/부분 피개수 값에 의해 표시되는 PD 표의 엔트리를 이용하여, 피개수에 기반한 기수-16 제곱근 반복 연산을 위한 시작 추정을 계산하는 단계를 수행하는 적어도 하나의 프로세서를 포함하는지를 테스트하는 것, 그리고 장치가 기수-16 제곱근 및 기수-16 나눗셈 반복 연산들을 수행하는 데에 사용되는 부분 나머지-제수(PD, partial remainder-divisor) 표, 기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 PD 표에 대한 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들(LUTs), 그리고 피개수의 적어도 일부가 입력되고 그리고 PD 표에 대한 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장하는 하나 또는 그보다 많은 비임시 컴퓨터-독출 가능 매체를 갖는지 테스트하는 것을 포함한다.
본 기재의 실시 예와 연관되어 위에서 기술된 단계들 그리고/또는 동작들은 이 분야에 통상적인 기술을 가진 자에 의해 이해되는 바와 같이, 특정한 실시 예 그리고/또는 구현에 의존하여 다른 순서로, 또는 병렬로, 또는 다른 시대들(epochs) 동안 동시에 등으로 발생할 수 있다. 상이한 실시 예들은 상이한 순서로 또는 상이한 방법들 또는 수단들에 의해 활동들을 수행할 수 있다. 이 분야에 통상적인 기술을 가진 자에 의해 이해되는 바와 같이, 일부 도면들은 수행되는 활동들의 단순화된 표현들이고, 여기서 그들의 설명들은 단순화된 개요들이고, 실제rpeal-world) 구현들은 훨씬 더 복잡할 수 있고, 더 많은 단계들(stages) 그리고/또는 구성 요소들을 필요로 할 수 있고, 또한 구체적인 구현의 요구 사항들에 의존하여 달라질 수 있다. 단순화된 표현들이 됨에 따라, 이러한 도면들은 이 분야에 통상적인 기술을 가진 자에 의해 알려지고 이해될 수 있는, 그리고 본 설명에 적절하지 않거나 그리고/또는 도움이 되지 않는 다른 필요한 단계들을 도시하지 않는다.
유사하게, 일부 도면들은 적절한 구성 요소들만을 도시하는 단순화된 블록도들이고, 이 분야에 통상적인 기술을 가진 자에 의해 이해되는 바와 같이, 이러한 구성 요소들 중 일부는 하드웨어의 실제 부분이기보다는 이 분야에 잘 알려진 기능 그리고/또는 동작을 나타내는 것에 불과하다. 이러한 경우들에, 구성 요소들/모듈들의 일부 또는 전부는 적어도 부분적으로는, 하나 또는 그보다 많은 응용-특화 집적 회로들(ASICs, application-specific integrated circuits), 표준 집적 회로들, 적절한 명령들을 수행하는 제어기들, 마이크로 제어기들 그리고/또는 내장형(embeded) 제어기들, 현장-프로그램 가능한 게이트 어레이들(FPGAs, field-programmable gate arrays), 복합 프로그램 가능한 로직 장치들(CPLDs, complex programmable logic devices) 등을 포함하지만 이들에 한정되지 않는 하드웨어 그리고/또는 펌웨어와 같은 다양한 수단들 그리고/또는 이들 조합으로 제공되거나 구현될 수 있다. 시스템 구성 요소들 그리고/또는 데이터 구조들의 일부 또는 전부는 비-임시 컴퓨터-독출 가능 매체(예를 들어, 하드 디스크, 메모리, 컴퓨터 네트워크 또는 셀룰러 무선 네트워크 또는 다른 데이터 전송 매체, 또는 DVD 또는 플래시 메모리 장치와 같은 적절한 드라이브에 의해 또는 적절한 연결을 통해 읽혀지는 포터블 미디어 장치)에 콘텐츠(예를 들어, 실행 가능한 또는 다른 기계-독출 가능 소프트웨어 명령들 또는 구조화된 데이터로서)로 저장되어, 해당 콘텐츠를 실행 또는 그렇지 않으면 사용 또는 제공하여, 설명된 기술의 적어도 일부를 수행하도록 컴퓨터-독출 가능 매체 그리고/또는 하나 또는 그보다 많은 연관된 컴퓨팅 시스템들 또는 장치들을 조장하거나 또는 구성한다.
하나 또는 그보다 많은 프로세서들, 단순한 마이크로 제어기들, 제어기들, 그리고 유사한 것들은, 혼자서든 또는 다중-프로세싱 배열에서든, 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들의 순열들을 실행하도록 채용되어 본 기재의 실시 예들을 구현할 수 있다. 일부 실시 예들에서, 고정-배선(hard-wired) 회로가 소프트웨어 명령들 대신에 또는 소프트웨어 명령들과 조합되어 사용될 수 있다. 따라서, 본 기재의 실시 예들은 임의의 특정한 하드웨어 회로, 펌웨어, 그리고/또는 소프트웨어의 조합으로 한정되지 않는다.
여기에서 사용되는 "컴퓨터-독출 가능 매체"의 용어는 실행을 위해 프로세서로 제공되는 명령들을 저장하는 임의의 매체를 나타낸다. 이러한 매체는 비-휘발성 그리고 휘발성 매체를 포함하지만 제한되지 않는 다양한 형태들을 취할 수 있다. 예를 들어, 비-임시 컴퓨터-독출 가능 매체의 공통적인 형태들은 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 천공 카드들, 종이 테이프, 천공의 형태들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, 플래시-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 저장된 명령들이 프로세서에 의해 실행될 수 있는 임의의 다른 매체를 포함한다.
본 기재의 일부 실시 예들은 적어도 부분적으로 포터블 장치로 구현될 수 있다. 여기에서 사용되는 "포터블 장치" 그리고/또는 "모바일 장치"는 멀티미디어 재생기들, 통신 자치들, 컴퓨팅 장치들, 위성 항법 장치들 등을 포함하지만 이에 제한되지 않는 무선 신호들을 수신하는 기능을 갖는 임의의 휴대할 수 있는(portable) 또는 이동시킬 수 있는(movable) 장치를 나타낸다. 따라서, 모바일 장치들은(그러나 한정되지 않음) 사용자 장치(UE, user equipment), 랩톱들, 태블릿 컴퓨터들, 포터블 디지털 비서들(PDAs, Portable Digital Assistants), 엠피3 재생기들, 핸드헬드 PC들, 즉석 메시지 장치들(IMD, Instant Messaging Devices), 셀룰러 전화기들, 광역 항법 위성 시스템(GNSS, Global Navigational Satellite System) 수신기들, 시계들, 또는 몸에 입혀지거나 그리고/또는 옮겨질 수 있는 임의의 이러한 장치를 포함한다.
본 기재의 관점에서, 이 분야에 통상적인 기술을 가진 자에 의해 이해되는 바와 같이, 본 기재의 다양한 실시 예들은 마이크로 칩, 실리콘 칩, 컴퓨터 칩, 또는 단지 "칩"으로도 불리는 집적 회로(IC)로 구현될 수 있다. 예를 들어, 이러한 집적 회로는 광대역 그리고/또는 기저대역 모뎀 칩일 수 있다.
몇몇 실시 예들이 설명되었지만, 다양한 수정들이 본 기재의 범위로부터 멀어지지 않으면서 행해질 수 있음이 이해될 것이다. 따라서, 본 기재는 여기에 기술된 임의의 실시 예들에 한정되지 않으며, 그보다는 첨부된 청구항들 및 그와 등가적인 것들에 의해서만 정의되는 범위를 가짐이 이 분야에 통상적인 기술을 가진 자들에게 명백할 것이다.
120, 620, 660; 짝수 표
130, 630, 670; 홀수 표
300; 기수-4 PD 표
400; 기수-16 PD 표
130, 630, 670; 홀수 표
300; 기수-4 PD 표
400; 기수-16 PD 표
Claims (22)
- 기수-16(radix-16) 제곱근 반복 연산에 대한 시작 추정(starting estimation)을 생성하는 방법에 있어서:
상기 기수-16 제곱근 반복 연산의 피개수의 적어도 일부를 이용하여, 하나 또는 그보다 많은 열/근 검색표들(LUTs, lookup tables)을 이용하여 부분 나머지-제수(PD, partial remainder-divisor) 표에 대한 4 비트 열/근 값을 판단하는 단계;
상기 부분 나머지-제수표는 기수-16 제곱근 및 기수-16 나눗셈 연산들 모두에 사용되고, 상기 부분 나머지-제수 표는 접힌(folded) 양의 측(positive side) 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하고, 상기 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들에 모두 사용되고;
상기 피개수의 상기 적어도 일부를 이용하여, 하나 또는 그보다 많은 행/부분 피개수 검색표들을 이용하여 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값을 판단하는 단계; 그리고
상기 4 비트 열/근 값 및 상기 8 비트 행/부분 피개수 값에 의해 표시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정을 계산하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 부분 나머지-제수 표는 상기 접힌 양의 측 기수-4 부분 나머지-제수 표("기수-4 부분 나머지-제수 표 영역")에 기반한 영역을 포함하는 다중 영역들을 포함하는 방법. - 제2항에 있어서,
상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정을 계산하는 단계는:
상기 판단된 부분 나머지-제수 표 엔트리가 상기 기수-4 부분 나머지-제수 표 영역의 외부에 있으면, 상기 기수-4 부분 나머지-제수 표 영역 내의 엔트리를 가리키도록 상기 열/근 및 행/부분 피개수 값들을 조절하는 단계를 포함하는 방법. - 제3항에 있어서,
상기 기수-4 부분 나머지-제수 표 영역 내의 엔트리를 가리키도록 상기 열/근 및 행/부분 피개수 값들을 조절하는 단계는:
상기 판단된 부분 나머지-제수 표 엔트리가 상기 다중 영역들 중 어느 것에 속하는지에 기반하여 상기 행/부분 피개수 값을 조절하면서 상기 열/근 값을 유지하는 단계를 포함하는 방법. - 제4항에 있어서,
상기 열/근 값을 판단하는 단계, 상기 행/부분 피개수 값을 판단하는 단계, 그리고 상기 행/부분 피개수 값을 조절하면서 상기 열/근 값을 유지하는 단계는 첫 번째 사이클에서 수행되는 방법. - 제2항에 있어서,
상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정을 계산하는 단계는:
상기 판단된 부분 나머지-제수 표 엔트리가 비대칭 부분 나머지-제수 표 엔트리들의 하나 또는 그보다 많은 범위들 내에 있는지 판단하는 단계를 포함하는 방법. - 제6항에 있어서,
상기 판단된 부분 나머지-제수 표 엔트리가 비대칭 부분 나머지-제수 표 엔트리들의 상기 하나 또는 그보다 많은 범위들 내에 있으면, 상기 열/근 값을 조절하면서 첫 번째 사이클로부터의 상기 행/부분 피개수 값을 유지하는 단계; 그리고
상기 행/부분 피개수 값을 재조절하면서 상기 조절된 부분 나머지-제수 표 엔트리의 상기 조절된 열/근 값을 유지하는 단계를 더 포함하는 방법. - 제7항에 있어서,
상기 첫 번째 사이클로부터의 상기 열/근 값이 보통 이하(subnormal), 예외(exception) 또는 특별한 경우(special case)와 연관되면, 상기 열/근 값을 조절하면서 상기 첫 번째 사이클로부터의 상기 행/부분 피개수 값을 유지하는 단계 및 상기 행/부분 피개수 값을 재조절하면서 상기 조절된 부분 나머지-제수 표 엔트리의 상기 조절된 열/근 값을 유지하는 단계는 두 번째 사이클에서 수행되는 방법. - 제8항에 있어서,
상기 두 번째 사이클로부터의 상기 행/부분 피개수 값과 상기 두 번째 사이클로부터의 상기 열/근 값은 상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정으로 사용되는 상기 부분 나머지-제수 표의 엔트리를 가리키는 방법. - 제1항에 있어서,
상기 하나 또는 그보다 많은 열/근 검색표들에 대한 입력은 IEEE-754 단정도(single precision) 부동 소수점(floating point) 형식의 상기 피개수의 지수 부분의 최하위 비트 및 IEEE-754 단정도 부동 소수점 형식의 상기 피개수의 소수/가수(fraction/mantissa) 부분의 세 개의 최상위 비트들을 포함하는 방법. - 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체; 그리고
적어도 하나의 프로세서를 포함하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는,
접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표;
상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고;
기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고
상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는:
상기 기수-16 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 표시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산하는 단계를 수행하는 장치. - 제14항에 있어서,
기수-n 부분 나머지-제수 표에 대한 다중 영역들이 정의되고, n은 4보다 크고, 상기 기수-n 부분 나머지-제수 표는 상기 기수-4 부분 나머지-제수 표를 포함하는 장치. - 제15항에 있어서,
상기 기수-16 제곱근 반복 연산에 대한 상기 시작 추정을 계산하는 단계는:
초기 시작 추정이 상기 기수-4 부분 나머지-제수 표의 밖에 있으면, 상기 기수-4 부분 나머지-제수 표 내의 엔트리/셀을 가리키도록 상기 열/근 값 및 상기 행/부분 피개수 값을 조절하는 단계를 포함하는 장치. - 제16항에 있어서,
상기 기수-4 부분 나머지-제수 표 내의 엔트리/셀을 가리키도록 상기 열/근 값 및 상기 행/부분 피개수 값을 조절하는 단계는:
상기 초기 시작 추정이 상기 다중 영역들의 어느 것에 있는지에 기반하여 상기 행/부분 피개수 값을 조절하면서 상기 열/근 값을 유지하는 단계를 포함하는 장치. - 제16항에 있어서,
상기 4 비트 열/근 값이 출력되는 것, 상기 8 비트 행/부분 피개수 값이 출력되는 것, 그리고 상기 초기 시작 추정이 상기 기수-4 부분 나머지-제수 표의 밖에 있으면, 상기 기수-4 부분 나머지-제수 표 내의 엔트리/셀을 가리키도록 상기 열/근 값 및 상기 행/부분 피개수 값을 조절하는 단계는 첫 번째 사이클에 수행되는 장치. - 칩셋을 제조하는 단계를 포함하고,
상기 칩셋은:
하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체; 그리고
적어도 하나의 프로세서를 포함하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는,
접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표;
상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고;
기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고
상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는:
상기 기수-16 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 표시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산하는 단계를 수행하는 방법. - 장치를 테스트하는 방법에 있어서:
상기 장치가 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체를 갖는지 테스트하는 단계; 그리고
상기 장치가 적어도 하나의 프로세서를 갖는지 테스트하는 단계를 포함하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체는,
접힌 양-측 기수-4 부분 나머지-제수 표 내의 엔트리들/셀들에 대한 값들을 포함하는 부분 나머지-제수 표;
상기 기수-4 부분 나머지-제수 표는 제곱근 및 나눗셈 연산들 모두에 사용되고;
기수-16 제곱근 연산의 피개수의 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 4 비트 열/근 값이 출력되는 하나 또는 그보다 많은 열/근 검색표들; 그리고
상기 피개수의 상기 적어도 일부가 입력되고 상기 부분 나머지-제수 표에 대한 8 비트 행/부분 피개수 값이 출력되는 하나 또는 그보다 많은 행/부분 피개수 검색표들을 저장하고,
상기 하나 또는 그보다 많은 비-임시 컴퓨터-독출 가능 매체에 저장된 명령들을 실행할 때, 상기 적어도 하나의 프로세서는:
상기 기수-16 제곱근 연산의 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 열/근 검색표들로부터 출력되는 상기 4 비트 열/근 값에 의해 그리고 상기 피개수의 상기 적어도 일부가 입력될 때 상기 하나 또는 그보다 많은 행/부분 피개수 검색표들로부터 출력되는 상기 8 비트 행/부분 피개수 값에 의해 표시되는 상기 부분 나머지-제수 표의 엔트리를 이용하여, 상기 피개수에 기반하여 기수-16 제곱근 반복 연산에 대한 시작 추정을 계산하는 단계를 수행하는 방법. - 삭제
- 삭제
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662416842P | 2016-11-03 | 2016-11-03 | |
US201662416846P | 2016-11-03 | 2016-11-03 | |
US62/416,846 | 2016-11-03 | ||
US62/416,842 | 2016-11-03 | ||
US15/419,757 US10209959B2 (en) | 2016-11-03 | 2017-01-30 | High radix 16 square root estimate |
US15/419,757 | 2017-01-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180049789A KR20180049789A (ko) | 2018-05-11 |
KR102437767B1 true KR102437767B1 (ko) | 2022-08-29 |
Family
ID=62020467
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170107479A KR102332323B1 (ko) | 2016-11-03 | 2017-08-24 | 기수 4 피디 표로 구현된 기수 16 피디 표 |
KR1020170108882A KR102437767B1 (ko) | 2016-11-03 | 2017-08-28 | 높은 기수 16 제곱근 추정 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170107479A KR102332323B1 (ko) | 2016-11-03 | 2017-08-24 | 기수 4 피디 표로 구현된 기수 16 피디 표 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10209959B2 (ko) |
KR (2) | KR102332323B1 (ko) |
CN (2) | CN108021477B (ko) |
TW (2) | TWI754680B (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
US10809980B2 (en) * | 2017-06-14 | 2020-10-20 | Arm Limited | Square root digit recurrence |
CN113761451B (zh) * | 2020-06-05 | 2024-04-16 | 扬智科技股份有限公司 | 求平方根的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173681A1 (en) | 2012-01-03 | 2013-07-04 | International Business Machines Corporation | Range Check Based Lookup Tables |
US20160313976A1 (en) | 2015-04-21 | 2016-10-27 | Qualcomm Incorporated | High performance division and root computation unit |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939686A (en) * | 1987-05-18 | 1990-07-03 | Weitek Corporation | Method and apparatus for shared radix 4 division and radix 4 square root |
US4949295A (en) * | 1988-07-18 | 1990-08-14 | Lsi Logic Corporation | Transformation of divisor and dividend in digital division |
US5132925A (en) | 1988-08-18 | 1992-07-21 | Digital Equipment Corporation | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction |
US5128891A (en) | 1990-04-02 | 1992-07-07 | Advanced Micro Devices, Inc. | High speed divider with square root capability |
US5258944A (en) | 1992-09-01 | 1993-11-02 | Cray Research, Inc. | High performance mantissa divider |
JP2518532B2 (ja) * | 1993-09-22 | 1996-07-24 | 日本電気株式会社 | 減算シフト型除算器 |
JP3609512B2 (ja) | 1994-12-15 | 2005-01-12 | 株式会社東芝 | 演算器 |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5696712A (en) | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5787030A (en) * | 1995-07-05 | 1998-07-28 | Sun Microsystems, Inc. | Correct and efficient sticky bit calculation for exact floating point divide/square root results |
US5862059A (en) | 1995-07-19 | 1999-01-19 | National Semiconductor Corporation | Table compression using bipartite tables |
US5910910A (en) | 1997-06-23 | 1999-06-08 | Sun Microsystems, Inc. | Circuit and method for rapid calculation of quotients and square roots |
US6108682A (en) | 1998-05-14 | 2000-08-22 | Arm Limited | Division and/or square root calculating circuit |
JP2000347836A (ja) * | 1999-06-04 | 2000-12-15 | Sony Corp | 高次基数除算器およびその方法 |
FI20000378A (fi) * | 2000-02-18 | 2001-08-18 | Nokia Networks Oy | Laskutoimitusten suorittaminen digitaalisessa signaalinkäsittelylaitteessa |
US6782405B1 (en) | 2001-06-07 | 2004-08-24 | Southern Methodist University | Method and apparatus for performing division and square root functions using a multiplier and a multipartite table |
US6847985B1 (en) | 2001-08-10 | 2005-01-25 | Lsi Logic Corporation | Floating point divide and square root processor |
KR100407562B1 (ko) | 2001-11-21 | 2003-11-28 | 삼성전자주식회사 | 제산 및 제곱근 계산 장치 및 방법 |
EP1315081B1 (en) | 2001-11-22 | 2008-05-07 | STMicroelectronics Limited | Circuitry for carrying out at least one of a square root operation and a division operation |
EP1315080A1 (en) | 2001-11-22 | 2003-05-28 | STMicroelectronics Limited | Circuitry for carrying out square root and division operations |
US7127483B2 (en) | 2001-12-26 | 2006-10-24 | Hewlett-Packard Development Company, L.P. | Method and system of a microprocessor subtraction-division floating point divider |
US6938062B1 (en) | 2002-03-26 | 2005-08-30 | Advanced Micro Devices, Inc. | Apparatus and method for providing higher radix redundant digit lookup tables for recoding and compressing function values |
US7016930B2 (en) | 2002-10-25 | 2006-03-21 | Arm Limited | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation |
US7167891B2 (en) * | 2003-03-21 | 2007-01-23 | Intel Corporation | Narrow data path for very high radix division |
JP4273071B2 (ja) | 2004-12-15 | 2009-06-03 | エヌイーシーコンピュータテクノ株式会社 | 除算・開平演算器 |
US7519649B2 (en) * | 2005-02-10 | 2009-04-14 | International Business Machines Corporation | System and method for performing decimal division |
US8898215B2 (en) | 2007-06-28 | 2014-11-25 | King Fahd University Of Petroleum And Minerals | High-radix multiplier-divider |
CN102117302B (zh) * | 2009-12-31 | 2013-01-23 | 南京理工大学 | 传感器数据流复杂查询结果的数据起源跟踪方法 |
TWI420333B (zh) * | 2011-08-10 | 2013-12-21 | Inventec Corp | 分散式的重複數據刪除系統及其處理方法 |
US10203954B2 (en) * | 2011-11-25 | 2019-02-12 | Intel Corporation | Instruction and logic to provide conversions between a mask register and a general purpose register or memory |
US8868633B2 (en) | 2012-03-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Method and circuitry for square root determination |
US9081608B2 (en) * | 2012-05-19 | 2015-07-14 | Digital System Research Inc. | Residue number arithmetic logic unit |
US9753695B2 (en) | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US9348796B2 (en) | 2013-09-19 | 2016-05-24 | International Business Machines Corporation | Arithmetic operation in a data processing system |
CN103809930B (zh) * | 2014-01-24 | 2017-05-03 | 天津大学 | 一种双精度浮点数除法器的设计方法及除法器 |
GB2528497B (en) * | 2014-07-24 | 2021-06-16 | Advanced Risc Mach Ltd | Apparatus And Method For Performing Floating-Point Square Root Operation |
US10983756B2 (en) * | 2014-10-17 | 2021-04-20 | Imagination Technologies Limited | Small multiplier after initial approximation for operations with increasing precision |
US9785407B2 (en) | 2014-11-21 | 2017-10-10 | Arm Limited | Data processing apparatus having combined divide-square root circuitry |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
US10209957B2 (en) | 2015-05-04 | 2019-02-19 | Samsung Electronics Co., Ltd. | Partial remainder/divisor table split implementation |
US9983850B2 (en) | 2015-07-13 | 2018-05-29 | Samsung Electronics Co., Ltd. | Shared hardware integer/floating point divider and square root logic unit and associated methods |
CN105955706B (zh) * | 2016-06-16 | 2018-06-26 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
-
2017
- 2017-01-30 US US15/419,757 patent/US10209959B2/en active Active
- 2017-02-13 US US15/431,323 patent/US10223073B2/en active Active
- 2017-08-24 KR KR1020170107479A patent/KR102332323B1/ko active IP Right Grant
- 2017-08-28 KR KR1020170108882A patent/KR102437767B1/ko active IP Right Grant
- 2017-10-11 CN CN201710942762.7A patent/CN108021477B/zh active Active
- 2017-10-16 CN CN201710959563.7A patent/CN108021180B/zh active Active
- 2017-10-17 TW TW106135519A patent/TWI754680B/zh active
- 2017-10-23 TW TW106136372A patent/TWI743237B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173681A1 (en) | 2012-01-03 | 2013-07-04 | International Business Machines Corporation | Range Check Based Lookup Tables |
US20160313976A1 (en) | 2015-04-21 | 2016-10-27 | Qualcomm Incorporated | High performance division and root computation unit |
Also Published As
Publication number | Publication date |
---|---|
CN108021180A (zh) | 2018-05-11 |
CN108021477A (zh) | 2018-05-11 |
TWI754680B (zh) | 2022-02-11 |
CN108021477B (zh) | 2023-04-07 |
KR20180049789A (ko) | 2018-05-11 |
KR102332323B1 (ko) | 2021-11-29 |
US10223073B2 (en) | 2019-03-05 |
CN108021180B (zh) | 2023-06-02 |
US10209959B2 (en) | 2019-02-19 |
US20180121164A1 (en) | 2018-05-03 |
US20180121167A1 (en) | 2018-05-03 |
TW201818266A (zh) | 2018-05-16 |
KR20180049788A (ko) | 2018-05-11 |
TW201818265A (zh) | 2018-05-16 |
TWI743237B (zh) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853718B2 (en) | Small multiplier after initial approximation for operations with increasing precision | |
US8914431B2 (en) | Range check based lookup tables | |
JPH0934691A (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
KR102437767B1 (ko) | 높은 기수 16 제곱근 추정 | |
CN106126190B (zh) | 部分余数/除数表拆分实现 | |
CN108334304B (zh) | 数字递归除法 | |
WO2021136259A1 (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
JP2006172035A (ja) | 除算・開平演算器 | |
JPH02294731A (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
JP6919539B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US9658827B2 (en) | Apparatus and method for performing reciprocal estimation operation | |
JP2018097864A (ja) | リーディングゼロ予想 | |
CN114385112A (zh) | 处理模数乘法的装置及方法 | |
US10353671B2 (en) | Circuitry and method for performing division | |
US11314482B2 (en) | Low latency floating-point division operations | |
Rahman et al. | Design of High Performance Floating Point SRT Divider Using Divisor and Partial Remainders Estimates | |
SWETHA et al. | VLSI Implementation of a High Speed Single Precision Floating Point Multiplier using Verilog | |
Stine | Division Using Multiplicative-Based Methods | |
CA2846960A1 (en) | Method, hardware unit and processor for calculating a square root |
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 |