KR20040011916A - 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 - Google Patents
작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 Download PDFInfo
- Publication number
- KR20040011916A KR20040011916A KR1020020045232A KR20020045232A KR20040011916A KR 20040011916 A KR20040011916 A KR 20040011916A KR 1020020045232 A KR1020020045232 A KR 1020020045232A KR 20020045232 A KR20020045232 A KR 20020045232A KR 20040011916 A KR20040011916 A KR 20040011916A
- Authority
- KR
- South Korea
- Prior art keywords
- lookup table
- multiplier
- divisor
- bit
- division
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5354—Using table lookup, e.g. for digit selection in division by digit recurrence
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
반복적인 연산방식에 따라 큰 사이즈의 룩업테이블을 필요로 하는 종래의 나눗셈 연산기의 단점을 해소하기 위하여 파이프라인 나눗셈 연산기가 제안된다. 이 연산기는 룩업테이블을 크게 줄여, 로코스화에 효과적이다. 따라서 본 나눗셈 연산기는 단정밀도에서 3 사이클의 지연시간을 가지며, 기존의 파이프라인 나눗셈 연산기에 비하여 대략 1/3 정도의 칩 면적을 줄일 수 있다.
Description
본 발명은 연산장치 (ALU: Arithmetic and logical unit)에 관한 것으로써, 특히 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기에 관한 것이다.통상적으로 연산장치에서 나눗셈 연산은 다른 산술 연산에 비하여 그 빈도수가 낮다는 특성을 가지고 있다. 이런 특성 때문에 나눗셈 연산기는 작은 면적을 차지하도록 설계되어 왔고, 반복적인 방식으로 대부분 구현되어 왔다. 이에 따라 다른 연산에 비해 나눗셈 연산을 수행할 때의 지연시간은 상대적으로 긴 편이다. 하지만, 낮은 빈도수에도 불구하고, 긴 지연시간이 전체 시스템에 끼치는 영향은 작지 않다.
최근 들어 VLSI(Very Large Scale Integrated Circuit)의 집적도가 높아지고 고성능을 필요로 하는 응용분야가 커지면서, 반복(iteration)없이 나눗셈을 수행하는 구조가 제안되고 있다. 특히, 3차원 그래픽 처리가 프로세서의 주요한 어플리케이션으로 부각되었으며, 3차원 그래픽을 고속으로 처리하기 위하여 높은 처리율을 가진 파이프라인(pipeline)으로 구성된 나눗셈 연산기가 필요하게 되었다.
도 1은 종래기술에 따른 P.Hung의 나눗셈 연산기를 나타낸 블록도이다.
도 1을 참조하면, P. Hung은 테일러 급수 전개 방식을 수정하여, 파이프라인드(pipelined) 나눗셈 연산기를 제안하였다. 이 방식은 제수(Y)의 역수의 테일러 급수 2차항까지를 하나의 룩업테이블(LUT1)에 저장하며 룩업테이블 참조(reference)와 제1 및 제2 승산기(MUL1)(MUL2)를 이용한 2번의 곱셈 연산만으로 나눗셈 연산을 수행할 수 있다. 이로 인하여 나눗셈 연산기를 파이프라인 형태로 구성할 수 있다.
P.Hung은 기존 방식보다 룩업테이블(LUT1)의 크기를 다소 줄였다는 장점을 가지고 있다. 그러나 이 방식은 도 6에 언급된 바와 같이 여전히 큰 사이즈(단정밀도에서는 13KB, 배정밀도에서는 440MB)의 룩업테이블(LUT1)을 필요로 하기 때문에 칩면적을 크게 차지한다는 단점이 있다. 또한 정밀도(precision)가 높아질수록 그 문제는 더 심각하다.
한편, 기존방식의 나눗셈 연산기는 크게 SRT(Sweeney Robertson Tocher) 등의 단위 회귀 방식과 멀티플리케이브(multiplicative) 방식으로 나눌 수 있다.
이중 멀티플리케이브 방식은 추정(approximation) 방식으로써 승산기와 룩업테이블을 이용한다. 승산기를 이용하는 방법 중에 잘 알려진 알고리즘으로는 뉴튼랩슨과 급수전개법이 있는데, 둘 다 룩업테이블에서 가져온 역수를 승산기를 통하여 연산하여 몫을 계산하는 방법이다.
이들 방법들의 단점은 고속처리를 위해서 큰 사이즈의 룩업테이블을 필요로 한다는 것이다. 예를 들면, 16비트 시드(seed)를 가지는 뉴튼-랩슨 방식이나 급수 전개 방식의 나눗셈 연산기는 총 64KB의 룩업테이블 크기를 필요로 한다. 이 방식들은 2번의 이터레이션을 통하여 단정밀도의 나눗셈 연산을 수행할 수 있다. 8비트의 시드를 사용하는 경우에는 룩업테이블의 크기는 128B로 작지만, 3번의 반복을 수행해야 되기 때문에 지연시간이 상당히 늘어난다는 단점을 지니게 된다. 테일러(Taylor) 급수를 이용한 정밀한 몫 추정(accurate quotient approximation)방식은 여러 개의 룩업테이블을 이용하는 방식인데, 한번의 반복에 단정밀도(single precision)의 연산을 수행하려면 19.5KB의 룩업테이블을 필요로 한다. 여기서 상기 정밀도 형식은 IEEE(Institute of Electrical & Electronics Engineers) 표준안으로써 1비트의 부호비트, 8비트의 지수부, 23비트의 분수부로 되어 있으며, 상기 분수부의 정규화 형태는 MSB(Most Signification Bit)가 1인 상태이며, 부동 소수점 표현에서는 히든 비트로 MSB가 생략된다.
최근에 제안된 파이프라인으로 구성된 나눗셈기에는 A. Liddicoat이 제안한 구조와 P. Hung이 제안한 구조(도1 및 도 2참조)가 있다.
A. Liddicoat의 나눗셈 연산기는 뉴튼-랩슨 알고리즘의 3차항까지를 계산하는데, 병렬성을 이용하여 지연시간을 줄이는 방식이다.
P. Hung의 나눗셈 연산기는 테일러 급수 전개를 이용한 방식인데, 구조가 간단하고 룩업테이블의 크기가 기존의 방식보다 작다는 장점을 가지고 있다. P. Hung이 제안한 알고리즘을 보면 테일러 급수 전개에 의하여 나눗셈 연산을 다음의 수학식으로 정리할 수 있다.
여기서 Yh는 Y의 상위 p 비트까지의 값이고, Yl은 Y에서 Yh를 뺀 값이다. X와 Y는 정규화되어진 고정소수점이고, 따라서 각 값들은 수학식 2와 같은 경계조건을 갖는다.
상기 수학식 1에서 테일러 급수 2차항까지만 근사화하면 다음수학식 3과 같이 된다.
상기 수학식 3에 따라 나눗셈 연산은 피제수 X와 제수 Y에서 얻어낸 Yh-Yl을 곱하고 룩업테이블에서 불러온을 곱함으로써 수행될 수 있다. 여기서 Yh-Yl는 실제 뺄셈을 수행할 필요없이 피제수 X와 Yh-Yl을 곱하는데 사용되는 승산기(MUL1)의 부쓰 인코딩을 수정하는 것만으로 가능하다.
이상에서와 같이 P. Hung이 제안한 알고리즘은 하나의 룩업테이블(LUT1)을 이용하여을 근사화한다. 이를 통하여 기존의 방식보다 룩업테이블의 크기를 다소 줄일 수 있다. 그럼에도 불구하고, P. Hung의 방식에 의한 나눗셈 연산기 역시 기존의 반복적인 알고리즘으로 구현된 나눗셈 연산기에 비해 칩면적이 크다는 단점을 지니게 된다. 32비트인 단정밀도(single precision)의 경우에는 13KB 정도의 룩업테이블 면적을 차지하며, 64비트인 배정밀도(double precision)인 경우 사실상 구현이 불가능하다(도 6참조). 따라서 파이프라인 형태의 나눗셈 연산기에서 룩업테이블의 크기를 줄이는 것은 매우 중요한 과제가 된다.
따라서 본 발명의 목적은 상기한 종래의 P. Hung이 제안한 파이프라인드 나눗셈 연산기의 알고리즘을 수정하여, 지연시간을 1 사이클 증가시키나, 룩업테이블 크기를 크게 줄일 수 있는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기를 제공함에 있다.
본 발명의 다른 목적은 단정밀도에서 3 사이클의 지연시간을 가지며 전체 크기를 P. Hung 방식에 비해 30% 정도 줄일 수 있는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기 및 그 방법을 제공함에 있다.
도 1은 종래기술에 따른 P.Hung의 나눗셈 연산기를 나타낸 블록도,
도 2는 도 1의 나눗셈 연산기의 칩사이즈를 나타낸 레이아웃도,
도 3은 본 발명에 따른 파이프라인 나눗셈 연산기를 나타낸 블록도,
도 4는 도 3의 나눗셈 연산기의 칩 사이즈를 나타낸 레이아웃도,
도 5는 도 3의 나눗셈 연산기의 룩업 테이블의 사이즈를 나타낸 테이블,
도 6은 종래의 나눗셈 연산기와 본 발명의 나눗셈 연산기를 비교한 테이블,
도 7은 본 발명의 나눗셈 연산기를 배정밀도에서 다른 알고리즘과 비교한 테이블이고,
도 8은 도 7은 본 발명의 나눗셈 연산기를 단정도에서 다른 알고리즘과 비교한 테이블이다.
**도면의 주요 부분에 대한 부호의 설명**
X : 피제수 Y : 제수
LUT1, LUT2 : 룩업테이블 MUL1∼MUL6 : 승산기(multiplier)
Q : 지수
상기한 목적들을 달성하기 위한 본 발명에 따른 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기의 특징은, 정규화된 고정소수점 피제수X 및 제수 Y와, 내부 파라메터들이 저장되고 상기 제수 Y를 이용하여값을 계산하는 룩업테이블과, 상기 룩업테이블의값과 상기 피제수 X와 상기 제수 Y에서 얻어낸 Yh-Yl을 곱하여 A 제수를 연산하는 제1 승산기와, 상기 A 제수와 상기 피제수 X 및 제수 Y를 각각 연산하여 AX와 AY를 연산 출력하는 제2 및 제3 승산기와, 상기 AX와 비트 인버젼된 2-AY를 연산하여 지수(quotient) Q를 출력하는 제4 승산기로 구성된 점에 있다.
상기 승산기는 하나의 룩업테이블과 4개의 승산기로 구성하는 것이 바람직하고, 룩업테이블의 칩면적은 바이트 단위에 선형적으로 비례하고, 승산기의 칩 면적은 승수와 피승수의 비트수의 곱에 선형적으로 비례한다.
본 발명에 따른 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산방법은 정규화된 피제수 X와, 제수 Y를 준비하는 단계와, 룩업테이블에서를 계산하는 단계와, 상기와 Yh-Yl을 곱하여 A를 계산하는 단계와, 상기 A에 X와 Y를 각각 병렬로 곱하는 단계와, 상기 단계에서 곱해진 AX와 2-AY를 곱한 후 각각 가까운쪽으로의 반올림(round-to-nearest)과 제로쪽으로의 반올림(round-to-zero)을 수행하여 지수(Q)를 출력하는 단계로 구성함을 특징으로 한다.
이하, 본 발명에 따른 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기 및 연산방법의 바람직한 일실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 3은 본 발명에 따른 파이프라인 나눗셈 연산기를 나타낸 블록도, 도 4는 도 3의 나눗셈 연산기의 칩 사이즈를 나타낸 레이아웃도, 도 5는 도 3의 나눗셈 연산기의 룩업 테이블의 사이즈를 나타낸 테이블, 도 6은 종래의 나눗셈 연산기와 본 발명의 나눗셈 연산기를 비교한 테이블, 도 7은 본 발명의 나눗셈 연산기를 단정도에서 다른 알고리즘과 비교한 테이블이고, 도 8은 본 발명의 나눗셈 연산기를 배정밀도에서 다른 알고리즘과 비교한 테이블이다.
본 발명의 과제는 비반복적인 나눗셈 연산기의 가장 큰 단점이 되는 룩업테이블의 크기를 줄이는데 있다. 훨씬 더 작은 룩업테이블을 가지고 P. Hung의 알고리즘과 동일한 연산을 수행하면, P. Hung의 알고리즘에 비해 조수모 지수(coarse quotient)가 계산된다. 이 조수모 지수(coarse quotient)와 제수를 곱한 것을 피제수에서 빼면 나머지값을 계산해 낼 수 있다. 이 나머지값을 가지고 P. Hung의 알고리즘과 동일한 연산을 한번 더 수행하고, 이 두번의 연산에 의하여 계산된 몫을 더하면 최종적인 해(response)를 계산해낼 수 있다. 이 연산과정은 매우 복잡해 보이지만, 수식을 다시 정리하여 여분의(redundant) 연산을 없애면, P. Hung의 나눗셈 연산기보다 수십분의 일 크기의 룩업테이블과 P. Hung에 비해 정밀도(precison)가 작은 4개의 승산기만으로 연산이 가능하다.
본 발명에서 제안되는 알고리즘은 다음과 같다. 상기 수학식 3에서 Yh의 비트폭을 줄이면, 조수모 지수(coarse quotient) 는 다음수학식 4로 정의할 수 있다.
상기 조수모 지수(coarse quotient) 에 의해서 다음수학식과 같이 계산을 하면, 나머지값을 계산할 수 있다.
이 나머지 값을 다시 한번 상기 수학식 4와 동일한 계산을 하고, 두개의해(response)를 더하면 최종적인 지수(quotient)가 구해진다.
상기 수학식은 다음과 같이 정리될 수 있다.
상기 수학식 5에서 A 값은 다음과 같다.
상기와 같이 계산된 수학식 5에 의거 구현되는 하드웨어 블록다이어그램을 도 3에 도시한다. 도 3을 참조하면 본 발명의 나눗셈 연산기는, 정규화된 고정소수점 피제수X 및 제수 Y와, 내부 파라메터들이 저장되고 상기 제수를 이용하여값을 계산하는 룩업테이블(LUT2)과, 상기 룩업테이블(LUT2)의값과 상기 피제수 X와 상기 제수 Y에서 얻어낸 Yh-Yl을 곱하여 A 제수를 연산하는 제1 승산기(MUL3)와, 상기 A 제수와 상기 피제수 X 및 제수 Y를 각각 연산하여 AX와 AY를 연산 출력하는 제2 및 제3 승산기(MUL4)(MUL5)와, 상기 AX와 비트 인버젼된 2-AY를 연산하여 지수(quotient) Q를 출력하는 제4 승산기(MUL6)로 구성된다.
이와 같이 구성된 본 발명의 나눗셈 연산기는 상기 식(5)에 따라 다음 네 단계로 연산된다.
첫번째 단계에서는 룩업테이블(LUT2)에서를 계산하고, 두번째 단계에서는와 Yh-Yl을 곱하여 A를 계산한다. 세번째 단계에서는 AX와 AY를 계산하는데, 두 곱셈은 병렬로 수행한다. 그리고 네번째 단계에서 최종적인 수식을 얻어내게 되는데, 여기서 (2-AY)의 계산은 AY를 비트 반전(bit-inversion)하여 얻어낼 수 있다. 예를 들면 1.00101을 비트 반전하면 0.11010이 되는데, 이는 2에서 1.00101을 뺀 값인 0.11011보다 1 ulp(unit in the last position, the weight of the least significant bit)가 작은 값이다.
여기서 비트 반전을 사용하는 경우 실제 뺄셈을 수행하는 것에 비해 덧셈기를 없앨 수 있지만 에러값이 더해진다. 이 에러값이 어떠한 영향을 미치는지 하기에서 상세히 언급한다.
본 발명의 나눗셈 연산기의 알고리즘을 수행하는 데에는 하나의 룩업테이블과 4개의 승산기를 요구된다. 여기서 두개의 곱셈은 평행하게 수행될 수 있기 때문에, 레이턴시(latency)는 1 LUT + 3 MUL을 갖게 된다. 4개의 승산기 중에서 3개의 승산기는 도 1에에 비해서 승수의 비트폭이 작아서 면적과 지연시간을 상당히 줄이게 된다. 단정밀도인 경우에는 최종단의 승산기는 27×27이지만, 나머지 세 승산기는 24×15이다. 또한 룩업테이블의 크기가 매우 작아서, 아주 짧은 시간에 룩업테이블의 값을 가져올 수 있다. 따라서 단정밀도인 경우 이 나눗셈 연산기는 3 사이클만에 나눗셈 연산을 수행할 수 있다. 룩업테이블에서 읽어와서 곱셈까지 수행하여 A를 계산하는 것을 첫번째 사이클에서 수행하고, 두번째 사이클에서는 두개의 평행한 곱셈을 수행하며, 세번째 사이클에서는 최종적인 곱셈을 수행하는 방식으로 나눗셈 연산을 처리할 수 있다.
도 4에는 각 기능 유닛의 지연시간이 삼성(Samsung) 0.25um ASIC (Application-Specific Integrated Circuit) 공정의 컴파일드 매크로를 기준으로 제시되었다. 각 승산기의 비트폭과 룩업테이블의 엔트리 수, 각 워드의 비트폭에 대한 것은 다음 에러분석을 통하여 제시한다.
에러분석(Error Analysis)
제안하는 알고리즘의 에러 분석은 나눗셈 연산기의 설계의 가장 근간이 되는데, 이는 에러 분석이 룩업테이블의 크기와 승산기의 비트 폭을 결정하기 위한 기본 데이터를 제공하기 때문이다. 또한 에러 분석을 통하여 다른 나눗셈 알고리즘과의 비교가 가능하게 된다.
본 발명에서 제안하는 알고리즘에 대한 에러 분석시 고려해야 되는 항목은 총 4가지가 있다. 첫번째는 룩업테이블의 엔트리 제한으로 인한 에러인데, 이 에러는 Yh의 비트 길이가 p비트로 제한되기 때문에 발생하는 에러이다.
상기 수학식 5는 승산기와 룩업테이블이 무한대의 정밀도를 가진다고 보았을 때의 수식이기 때문에, 수학식 5에는 룩업테이블 제한으로 인한 에러를 제외한 다른 에러가 없다고 가정할 수 있다. 따라서 첫번째 에러는 이상적인 몫에서 수학식 5를 빼서 얻을 수 있다. 두번째는 룩업테이블 비트폭으로 인한 에러인데, 이 에러는 룩업테이블의 정밀도에 의하여 최대값이 결정된다. 세번째는 승산기의 라운딩으로 인한 에러인데, 이 에러 역시 승산기의 정밀도에 의하여 결정된다. 마지막으로 비트 반전(bit-inversion)으로 인한 에러가 있는데, 이 에러는 항상 1 ulp의 값(?)을 가지게 된다.
다음은 룩업테이블 엔트리 제한으로 인한 에러이다.
룩업테이블의 엔트리 개수는 Yh의 비트폭에 의하여 결정되는데, Yh는 정규화되어 있으므로 엔트리 개수는 2-p+1이 된다. 이렇게 제한된 엔트리의 개수에 의하여 에러가 발생하게 된다. 이 에러값은 이상적인 몫에서 제안하는 알고리즘에서 X와 Y의 비트수가 무한하고, 승산기 역시 무한한 정밀도를 갖는다고 가정하였을 때의 몫을 빼면 계산할 수 있다.
상기 수학식 2의 경계조건에 따라 엔트리 제한으로 인한 에러의 최대값은 다음 수학식 7과 같다.
또한 상기 수학식 5는 수학식 6에 의하여 다음과 같은 등가식으로 표현할 수 있다.
다음은 룩업테이블의 제한된 비트 폭에 의한 에러이다.
룩업테이블의 비트 폭은 일정한 비트로 제한되어야 한다. 이로 인하여 에러가 발생하게 되는데 이 에러값이 항상 음수가 되도록 하였다. 그 이유는 다른 에러들은 양수이므로 룩업테이블 비트 폭 제한으로 인한 에러를 음수로 결정하면 전체 에러를 줄일 수 있기 때문이다. 룩업테이블의 비트폭이 q 라고 가정하면 룩업테이블에 저장되는 값은값의 상위 q 비트까지의 값에 라운딩한 결과이다. 라운딩 모드는 양의 무한대로의 반올림(round-to-plus-infinity)로 한다. 양의 무한대로의 반올림(Round-to-plus-infinity)으로 라운딩을 하게 되면 라운드 비트와 스티키 비트가 모두 0인 경우를 제외하고는 올림을 하게 되는데, 이에 따라 아래와 같이 에러값이 항상 양이 아닌 수가 된다.
다음은 승산기의 라운딩에 의한 에러이다.
본 발명의 알고리즘은 총 4개의 승산기를 사용한다. 곱셈의 결과에 대하여 일정한 위치에서 라운딩을 수행해야 하는데, 그렇지 않다면 한 번의 곱셈을 수행할 때마다 비트 폭이 두 배로 늘어나게 되어 면적과 성능에서 큰 문제를 야기하게 된다. 승산기의 라운딩 모드를 가까운쪽으로의 반올림(round-to-nearest)로 하는 경우에는 최대 에러 값을 줄일 수는 있지만, 승산기의 출력단에 덧셈기가 들어가야 한다. 라운딩을 위한 덧셈기를 제거하기 위하여 각 승산기의 라운딩 모드를 제로쪽으로의 반올림(round-to-zero)로 하였다. 제로족으로의 반올림(Round-to-zero)는 반올림의 결과가 항상 버림이며 반올림을 위한 별도의 하드웨어를 필요로 하지 않는다[9]. 각각 M1, M2, M3, M4 비트까지 결과값을 나타낸다면 에러는 하기 수학식 10과 같다.
다음은 비트 반전에 의한 에러이다.
승산기에서 2-AY를 계산할 때, 뺄셈 연산을 하지 않고 비트 반전을 함으로써항상 1 ulp(?)의 에러가 발생되게 된다. 이 값은 M3 승산기에서 결과값의 비트폭에 의하여 결정되게 된다.
상기 에러 전체 에러를 합산하면 다음과 같다.
각 에러항을 포괄하는 전체 에러를 계산하려면, 연산 수행 과정에서 어느 부분에서 에러가 발생하여 누적되는지를 살펴 보아야 한다. 전체 에러의 최대값을 계산하게 되면, 룩업테이블의 엔트리 개수와 비트폭, 각 승산기의 비트폭을 결정할 수 있게 된다.
상기 수학식 5의항에는 룩업엔트리 개수 제한으로 인한 에러가 포함되어 있으며, A 값을 계산할 때 룩업테이블의 비트폭 제한으로 인한 에러와 M1 승산기의 라운딩에 의한 에러가 발생하게 된다. AX를 계산할 때 M2 승산기의 라운딩에 의한 에러가 발생하며, AY를 계산할 때 M3 승산기의 라운딩에 의한 에러가 발생한다. 2-AY를 계산할때 비트 반전으로 인한 에러가 발생하며, 최종적으로 AX(2-AY)를 계산할 때에 M4 승산기의 라운딩으로 인한 에러가 발생한다.
A를 계산할 때 발생되는 룩업테이블 비트폭 제한으로 인한 에러와 M1 승산기의 라운딩에 의한 에러를 수식으로 표현하면,
같은 방식으로 다른 항들을 표현하면,
위의 각 항을 바탕으로, 에러를 포함한 몫을 계산하면 아래 수식과 같다.
위 수식에서 에러끼리 서로 곱해진 항은 그 값이 매우 작기 때문에 무시할 수 있다.
상기 식은 에러의 2차 항을 없애서 근사화하고, 수학식 8에 의하여 AX(2-AY)를 Q-Etable-entry로 대체한 식이다. 위 식에서 전체 에러를 구하면 아래 식과 같다.
위식에서 AY에를 대입하면,
상기 식(12)에서 Etable-entry와 Ebit-inversion, EM1, EM2, EM3, EM4는 양의 에러이며 Ebit-inversion는 음의 에러이다. 상기 수학식 11의 여러항 중에서 EM3항만 (-) 부호를 지니기 때문에, 양의 최대에러는 EM3가 최소값을 가지고 다른 에러항이 최대값을 가질때이며, 음의 최대에러는 EM3가 최대값을 가지고 다른 에러항이 최소값을 가질 때이다. 상기 수학식 12에 수학식 7,9,10,11을 대입하고,를 넣어 근사화하면 다음과 같다.
최대 허용 에러값은 수체계의 정밀도와 라운딩의 정확도에 따라서 달라지게 된다. 정확한 라운딩을 하려면 최소 정밀도의 두배 이상의 정밀도로 계산하거나 부가적인 연산이 요구된다. 이는 멀티플리케이티브(multiplicative)방식과 같은 추정(approximation) 방식에서 난점으로 작용하게 된다. 본 발명에서 제안한 구조는 1 ulp의 오차를 허용한다고 가정한다면, 최대에러는 다음과 같은 허용범위를 갖게 된다.
상기 수학식에서 m은 주어진 수체계에서의 정밀도를 뜻하는 비트수로 적용하려는 시스템의 사양에 의하여 결정되는 수이고 p, q, M1, M2, M3, M4는 결정하고자 하는 수이다.
다음은 룩업테이블 엔트리 수와 비트폭은 다음 설명에 의해 결정된다.
상기 수학식 12에서 p, q, M1, M2, M3, M4는 본 발명에서 제안하는 나눗셈 연산기를 구성하는 룩업테이블과 승산기의 크기를 결정하는 요소가 된다. 이 수 중에서 p는 룩업테이블을 참조하기 위한 어드레스 비트 수가 된다. p는 수학식 13의 여러 파라미터 중에서 기수가 가장 높고 여러 항에 사용되는 지배적인 수이기 때문에 p를 먼저 결정해야 한다. 특히 p가 1 증가할 때 룩업테이블의 엔트리의 개수가 두 배로 증가하기 때문에, p 값이 최소가 되도록 파라미터들을 결정해야 한다. 단정도의 시스템인 경우에는 m=24이므로, 상기 수학식 12에 의하여 p는 8로 정할 수 있다. 도 5는 각 m의 값에 따른 p의 값을 나타낸 것이다. 도 5에는 엔트리의 개수도 나타냈는데, Y는 정규화되어져 있기 때문에 엔트리의 개수는 2p-1이 된다.룩업테이블의 비트폭인 q는 p가 결정된 후 수학식 14에 의하여 결정할 수 있는데 이 값에 의하여 M3 승산기의 크기가 결정된다. q값은 M5값을 고려하여 결정하여야 하며 다양한 변화가 가능한데 인 경우 반대의 경우에 비하여 면적이 다소 증가하게 됨을 분석을 통하여 알게 되었다. 본 발명에서는 라고 가정하고, 이때 q 값은 아래 식에 의하여 결정하였다.
상기 과정에 의하여 결정된 p, q 값을 도 5에 나타내었다.
다음 승산기의 라운드 위치를 결정한다.
M1, M2, M3, M4는 각 승산기의 라운딩 위치를 결정하는 비트인데, 이 4개의 파라미터 중에서 M1은 M2승산기와 M3 승산기의 크기를 결정하는 파라미터이고, M2 승산기와 M3는 M4 승산기의 크기를 결정하는 파라미터이며, M4은 나눗셈기의 결과값이라서 고정적인 수이다. 따라서, M1을 네 개의 파라미터 중에서 우선적으로 결정해야 되고, M1을 결정한 다음에 M2와 M3를 결정해야 한다.
제안하는 구조에서는 단정도의 경우. p=8, q=13일 때, M1=15, M2=28, M3=28, M4=25로 결정할 수 있다. 이와 같이 결정하였을 경우, 단정도의 시스템에서 제안하는 나눗셈기를 구성하는 각 승산기의 크기는 24×13, 24×15, 24×15, 28×28이 되며, 룩업테이블의 엔트리 개수는 128개, 룩업테이블의 각 워드의 비트폭은 13비트가 되게 된다.
다음은 본 발명의 알고리즘을 P. Hung 알고리즘과 비교한 것이다.
P. Hung의 알고리즘(도 1참조)은 룩업테이블이 임계경로에 있을 때에는 1 LUT + 1 MUL의 latency, 그렇지 않을 때에는 2 MUL의 latency를 갖는다. 승산기의 latency는 요구되어지는 정밀도가 증가함에 따라 선형적으로 증가하며, 반면에 룩업테이블의 latency는 기하급수적으로 증가한다. 따라서, 정밀도가 낮은 경우에는 2 MUL이 전체 latency가 되며, 정밀도가 높은 경우의 전체 latency는 1 LUT + 1 MUL이다. 보통 단정도의 경우에는 룩업테이블의 latency가 승산기보다 더 짧기 때문에 전체 latency가 2 MUL 이며, 쌍정도의 경우에는 룩업테이블의 latency가 훨씬 길기 때문에 전체 latency는 1 LUT + 1 MUL이 된다.
그러나 본 발명의 알고리즘의 latency는 1 LUT + 3 MUL이다. 하지만, LUT의 크기가 Hung의 알고리즘보다 훨씬 작고, 세 개의 승산기 중 두 개는 승수의 비트폭이 작아 latency가 상대적으로 짧기 때문에 실제로 단정도인 경우에는 Hung의 알고리즘보다 약간 latency가 길지만, 쌍정도의 경우에는 훨씬 짧은 편이다.
두 알고리즘은 모두 파이프라인이 가능한 형태(pipeline-able)이며, 파이프라인 레지스터로 단계를 구분하는 경우에는 모두 1 사이클의 처리율을 갖게 된다. 이렇게 한 경우에는 latency를 다시 사이클 단위로 계산해야 되는데, 28×28 승산기를 한 스테이지에 넣는다고 가정하면, 단정도인 경우에 latency는 Hung의 알고리즘시 2사이클이고 제안하는 알고리즘시 3사이클이다. 쌍정도인 경우에 53×28 승산기가 2 사이클이고 58×58 승산기가 3사이클이라고 가정하면, 제안하는 알고리즘의 latency는 8사이클이나, Hung의 알고리즘시 룩업테이블의 크기가 기하급수적으로 증가하여 사실상 구현이 불가능하게 된다.
도 2와 도 4는 두 알고리즘의 차지면적을 비교하기 위하여, 특정한 ASIC 테크놀로지 라이브러리를 바탕으로 산출한 단정도에서의 두 알고리즘의 차지면적을 보여주고 있다. 도 2와 도 4는 파이프라인시 필요한 플립플롭의 차지면적을 제외한상태에서 비교한 것이다. 두 알고리즘을 비교한 결과, 제안하는 알고리즘이 Hung의 알고리즘보다 약 30%의 면적 감소가 있음을 알 수 있다. 제안하는 알고리즘과 Hung의 알고리즘과의 비교는 도 6에 도시한다.
차지면적의 경우 처리해야 할 데이터의 정밀도가 높아질수록 제안하는 알고리즘이 유리하게 된다. 이는 승산기의 면적은 정밀도가 증가함에 따라 선형적으로 증가하지만, 룩업테이블의 면적은 정밀도가 증가함에 따라 기하급수적으로 증가하기 때문이다.
다음은 본 발명의 알고리즘을 다른 나눗셈 알고리즘과 비교한 것으로 본 발명에서 제안하는 나눗셈 연산 알고리즘과 기존의 대표적인 나눗셈 연산 알고리즘에 대한 다양한 비교를 하였다.
이러한 비교는 매우 중요하지만 상당히 어려운 문제이다. 각각의 알고리즘에 들어가는 블록이 다양하고, 각 알고리즘이 어떤 정밀도로 구현되어지나 따라 면적과 latency가 달라지기 때문에 일정한 기준 아래 면적을 비교하는 것은 쉽지 않으며, 또한 latency 역시 수평적인 비교가 어렵다. 하지만 정확한 비교가 불가능하더라도 어느 정도의 오차를 갖는 비교는 가능하며, 이런 대략적인 비교는 필요하다. 이러한 비교를 위하여 다음과 같은 가정을 하였다.
(1) 여러 가지 정밀도 중에서 단정밀도와 배정밀도에서만 비교한다.
(2) 대기시간(latency)은 사이클 단위로 계산한다.
(3) 제3 승산기(MUL3), 즉 28×28 승산기(M3)는 한 사이클에 동작하며, 그보다 더 대기시간(latency)이 긴 승산기나 룩업테이블은 두 사이클 혹은 세 사이클에동작한다.
(4) 제1 승산기(MUL1), 즉 24×24 승산기(M1)와 4KB의 룩업테이블이 면적 산출의 기본 단위로 이들의 면적을 1로 정한다.
(5) 승산기의 면적은 승수와 피승수의 비트수의 곱에 선형적으로 비례한다.
(6) 룩업테이블의 면적은 바이트 단위에 선형적으로 비례한다.
(7) SRT(Sweeney Robertson Tocher) 나눗셈 연산기의 면적은 P. Soderquist의 분석에 의한 값을 사용한다.
(8) 룩업테이블의 비선형성에 대한 보정은 P. Soderquist의 분석에 의한 값을 사용한다.
(9) 제어유닛이나 라운딩회로는 면적 산출에서 제외한다.
상기 (4)항목의 가정은 도 2와 도 4에서 면적 비교를 하였던 라이브러리 상에서 24×24 승산기(M1)와 4KB의 룩업테이블이 거의 비슷한 면적을 차지하고 있다는 점을 기본으로 한 것이다.
상기 (5)항목과 (6)항목의 가정은 상당한 오차를 발생시킬 수 있는 가정이다. 승산기의 경우에는 비트 폭의 차이가 많지 않으므로 그 오차가 그다지 크지 않으나, 룩업테이블 같은 경우에는 크기가 128B에서 64KB까지 다양하기 때문에 오차가 상당히 크게 발생할 수 있으며, 그 오차를 보정해 주어야 한다. P. Soderquist는 8 비트의 초기값을 지니는 급수전개 방식과 16비트의 초기값을 지니는 급수전개 방식 사이에 면적이 22배 차이가 나는 것을 밝혔다. 이에 따라, 본 발명에서는 (9) 항목과 같은 가정을 하였으며, 이에 의하여 칩면적을 산출하였다.
도 7은 단정밀도에 대하여 각 알고리즘을 비교한 결과이고, 도 8은 배정밀도에 대하여 각 알고리즘을 비교한 결과이다. 도 7과 도 8은 16비트 시드를 가지는 뉴튼-랩슨 방식이나 급수 전개 방식에서 나눗셈 연산 알고리즘을 비교한 것을 바탕으로 대기시간을 산출하고 나눗셈기를 구성하는 각 기능유닛의 개수를 결정하였다. 특히
정밀한 몫 추정(accurate quotient approximation) 알고리즘은 두 개의 룩업테이블을 사용하는 방식을 기준으로 산출하였다. 단정밀도의 경우에는 제안하는 알고리즘은 대기시간이 5 사이클 이내에 들어가는 알고리즘 중에서 가장 면적을 작게 차지한다. 따라서 짧은 대기시간을 요구하는 시스템에 적용하는 경우, 효율적으로 사용할 수 있다. 특히 나눗셈의 빈도수가 높은 경우에는 높은 처리율을 가지는 특성 때문에 유용하게 사용할 수 있을 것으로 판단된다. 반면 제안하는 알고리즘은 SRT radix-4 알고리즘이나 8비트 시드를 지니는 뉴튼-랩슨 혹은 급수전개 방식보다 더 넓은 면적을 차지한다는 점에서 나눗셈의 빈도수가 낮은 시스템에서는 제안하는 알고리즘의 효율성이 적다. 배정밀도의 경우에는 P. Hung에 비하면 칩면적과 성능 모두 우월하지만, 나머지 알고리즘과 비교하면 면적이 너무 크다. 하지만, 높은 처리율을 요구하는 경우에는 유용하게 사용할 수 있다.
따라서 본 발명에서 제안하는 알고리즘은 단정밀도나 배정밀도 모두에서 높은 처리율을 요구하는 경우에는 유용하게 사용될 수 있으며, 단정밀도의 경우에는 높은 처리율을 요구하지 않는다 하더라도 칩면적을 줄이면서 연산 대기시간을 단축하기 위하여 유용하게 사용될 수 있다.
이상에서 상세히 설명한 바와 같이 본 발명에 따른 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기 및 연산방법은 다음과 같은 효과가 있다.
첫째, 나눗셈 연산시 반복없이 파이프라인 형태로 나눗셈을 수행하는 새로운 알고리즘을 구현하였다.
둘째, 단정밀도의 경우 4개의 승산기와 하나의 룩업테이블로 이루어져 있으며, 기존의 파이프라인 형태의 나눗셈 알고리즘보다 면적을 줄일 수 있는 장점이 있다.
셋째, 3차원 그래픽 가속기 분야와 같이 나눗셈의 빈도수가 높은 시스템에서 사용할 수 있다.
넷째, 수식을 이용한 해석적인 에러 분석과 상위 수준의 언어를 이용한 시뮬레이션이 수행되었다.
다섯째, 동작적인 수준에서 HDL로 구현되고, 향후 게이트 수준의 시뮬레이션과 합성을 통하여 칩으로 구현 가능하다.
Claims (11)
- 정규화된 고정소수점 피제수X 및 제수 Y와;내부 파라메터들이 저장되고 상기 제수를 이용하여값을 계산하는 룩업테이블과;상기 룩업테이블의값과 상기 피제수 X와 상기 제수 Y에서 얻어낸 Yh-Yl을 곱하여 A 제수를 연산하는 제1 승산기와;상기 A 제수와 상기 피제수 X 및 제수 Y를 각각 연산하여 AX와 AY를 연산 출력하는 제2 및 제3 승산기와; 그리고,상기 AX와 비트 인버젼된 2-AY를 연산하여 지수(quotient) Q를 출력하는 제4 승산기로 구성됨을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 내부 파라메터는 정밀도(m), 어드레스 비트수(p), 엔트리 개수(#), 비트폭(q), 롬(ROM)사이즈를 포함하는 것을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 엔트리 개수(#)는임을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 2-AY는 제3 승산기를 통해 계산된 AY를 비트 인버젼하여 얻은 것을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 연산기는 하나의 룩업테이블과 4개의 승산기로 구성함을 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 룩업테이블의 면적은 바이트 단위에 선형적으로 비례함을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 1 항에 있어서, 상기 제1 내지 제4 승산기는 한 사이클에 동작하며, 상기 룩업테이블은 두 사이클 혹은 세 사이클에 동작함을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 제 7 항에 있어서,상기 제1 내지 제4 승산기의 칩 면적은 승수와 피승수의 비트수의 곱에 선형적으로 비례함을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산기.
- 정규화된 피제수 X와, 제수 Y를 준비하는 단계와;룩업테이블에서를 계산하는 단계와;상기와 Yh-Yl을 곱하여 A를 계산하는 단계와;상기 A에 X와 Y를 각각 병렬로 곱하는 단계와; 그리고,상기 단계에서 곱해진 AX와 2-AY를 곱하고 라운딩하여 지수(Q)를 출력하는 단계로 구성함을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산방법.
- 제 1 항에 있어서, 상기 2-AY는AY를 비트-인버젼한 것임을 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산방법.
- 제 1 항에 있어서, 상기 단계에서 라운딩은 가까운쪽으로의 반올림(round-to-nearest)과 제로쪽으로의 반올림(round-to-zero)을 포함하는 것으로 특징으로 하는 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈 연산방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0045232A KR100433131B1 (ko) | 2002-07-31 | 2002-07-31 | 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 |
US10/231,566 US7194499B2 (en) | 2002-07-31 | 2002-08-30 | Pipelined divider and dividing method with small lookup table |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0045232A KR100433131B1 (ko) | 2002-07-31 | 2002-07-31 | 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040011916A true KR20040011916A (ko) | 2004-02-11 |
KR100433131B1 KR100433131B1 (ko) | 2004-05-28 |
Family
ID=31185771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0045232A KR100433131B1 (ko) | 2002-07-31 | 2002-07-31 | 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7194499B2 (ko) |
KR (1) | KR100433131B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017126715A1 (ko) * | 2016-01-20 | 2017-07-27 | 삼성전자 주식회사 | 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376929B1 (en) * | 2004-11-10 | 2008-05-20 | Xilinx, Inc. | Method and apparatus for providing a protection circuit for protecting an integrated circuit design |
US7814336B1 (en) | 2005-07-12 | 2010-10-12 | Xilinx, Inc. | Method and apparatus for protection of time-limited operation of a circuit |
US7738657B2 (en) * | 2006-08-31 | 2010-06-15 | Intel Corporation | System and method for multi-precision division |
US7797612B2 (en) | 2006-12-29 | 2010-09-14 | Intel Corporation | Storage accelerator |
US10983756B2 (en) * | 2014-10-17 | 2021-04-20 | Imagination Technologies Limited | Small multiplier after initial approximation for operations with increasing precision |
US10209957B2 (en) | 2015-05-04 | 2019-02-19 | Samsung Electronics Co., Ltd. | Partial remainder/divisor table split implementation |
KR102359265B1 (ko) | 2015-09-18 | 2022-02-07 | 삼성전자주식회사 | 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법 |
CN106020769B (zh) * | 2016-06-22 | 2018-09-14 | 上海兆芯集成电路有限公司 | 浮点除法器以及浮点除法器操作方法 |
CN109992242B (zh) * | 2017-12-29 | 2021-05-28 | 航天信息股份有限公司 | 基于乘法器的运算方法及装置 |
GB2582144B (en) * | 2019-03-11 | 2021-03-10 | Graphcore Ltd | Execution Unit Comprising Processing Pipeline for Evaluating a Plurality of Types of Functions |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255216A (en) * | 1991-08-16 | 1993-10-19 | International Business Machines Corporation | Reduced hardware look up table multiplier |
DE69231051T2 (de) * | 1991-09-05 | 2001-01-18 | Cyrix Corp | Verfahren und Anordnung zur vorteilierten Division |
JPH09128218A (ja) * | 1995-11-01 | 1997-05-16 | Hitachi Denshi Ltd | 除算装置 |
US5777917A (en) * | 1996-03-21 | 1998-07-07 | Hitachi Micro Systems, Inc. | Simplification of lookup table |
JP4313467B2 (ja) * | 1998-06-23 | 2009-08-12 | 航 尾形 | 小容量メモリを用いた除算方式 |
KR100378162B1 (ko) * | 2000-01-11 | 2003-03-29 | 삼성전자주식회사 | 룩업 테이블을 이용한 연산결과 검출장치 및 방법 |
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 |
-
2002
- 2002-07-31 KR KR10-2002-0045232A patent/KR100433131B1/ko active IP Right Grant
- 2002-08-30 US US10/231,566 patent/US7194499B2/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017126715A1 (ko) * | 2016-01-20 | 2017-07-27 | 삼성전자 주식회사 | 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 |
KR20180103885A (ko) * | 2016-01-20 | 2018-09-19 | 삼성전자주식회사 | 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 |
US10776077B2 (en) | 2016-01-20 | 2020-09-15 | Samsung Electronics Co., Ltd. | Method, apparatus and recording medium for processing division calculation |
Also Published As
Publication number | Publication date |
---|---|
US7194499B2 (en) | 2007-03-20 |
US20040024806A1 (en) | 2004-02-05 |
KR100433131B1 (ko) | 2004-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ercegovac et al. | Reciprocation, square root, inverse square root, and some elementary functions using small multipliers | |
US6240433B1 (en) | High accuracy estimates of elementary functions | |
Piñeiro et al. | Faithful powering computation using table look-up and a fused accumulation tree | |
KR100433131B1 (ko) | 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 | |
Jaiswal et al. | Area-efficient architectures for double precision multiplier on FPGA, with run-time-reconfigurable dual single precision support | |
US20050273481A1 (en) | Pipelined real or complex ALU | |
Sunesh et al. | Design and implementation of fast floating point multiplier unit | |
Piromsopa et al. | An FPGA implementation of a fixed-point square root operation | |
Jeong et al. | A cost-effective pipelined divider with a small lookup table | |
Ücker et al. | Optimizing iterative-based dividers for an efficient natural logarithm operator design | |
Singh et al. | Design and synthesis of goldschmidt algorithm based floating point divider on FPGA | |
Patankar et al. | Division algorithms-from past to present chance to improve area time and complexity for digital applications | |
Ercegovac et al. | Very high radix division with selection by rounding and prescaling | |
Arya et al. | READ: A fixed restoring array based accuracy-configurable approximate divider for energy efficiency | |
US7167891B2 (en) | Narrow data path for very high radix division | |
Lyu et al. | High-throughput low-latency pipelined divider for single-precision floating-point numbers | |
Liebig et al. | Low-latency double-precision floating-point division for FPGAs | |
Jaiswal et al. | Series expansion based efficient architectures for double precision floating point division | |
Sadeghian et al. | Optimized low-power elementary function approximation for Chebyshev series approximations | |
Schulte et al. | High-speed reciprocal approximations | |
Alimohammad et al. | A unified architecture for the accurate and high-throughput implementation of six key elementary functions | |
Yun et al. | A latency-effective pipelined divider for double-precision floating-point numbers | |
Jaiswal et al. | Taylor series based architecture for quadruple precision floating point division | |
Chen et al. | Fast additive normalisation method for exponential computation | |
Hass | Synthesizing optimal fixed-point arithmetic for embedded signal processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130513 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20140516 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20150528 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20160422 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20170414 Year of fee payment: 14 |