KR101398723B1 - 알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 - Google Patents
알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 Download PDFInfo
- Publication number
- KR101398723B1 KR101398723B1 KR1020070072889A KR20070072889A KR101398723B1 KR 101398723 B1 KR101398723 B1 KR 101398723B1 KR 1020070072889 A KR1020070072889 A KR 1020070072889A KR 20070072889 A KR20070072889 A KR 20070072889A KR 101398723 B1 KR101398723 B1 KR 101398723B1
- Authority
- KR
- South Korea
- Prior art keywords
- rcp
- function
- polynomial approximation
- sqrt
- exp
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
-
- 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/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/08—Powers or roots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/10—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/12—Reciprocal 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
- G06F7/5525—Roots or inverse roots of single operands
-
- 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/556—Logarithmic or exponential functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 하나 이상의 단계(stage)를 포함하고, 다항 근사(예를 들어, 이차 다항 근사 등)를 수행하는 싱글 파이프라인(single pipeline)과 하나 이상의 조작부호(opcode)에 따라 상기 싱글 파이프라인에 결합되어 실행 가능한 RCP, SQRT, EXP 또는 LOG 함수 중 적어도 하나에 대응하는 하나 이상의 데이터 테이블을 포함하되, 상기 싱글 파이프라인은 상기 하나 이상의 조작부호에 따라 RCP, SQRT, EXP 또는 LOG 함수 중 적어도 하나를 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치 및 방법을 제공한다.
그래픽, 수학적 함수, 다항 근사
Description
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 보다 상세하게는 그래픽 처리 칩(graphics processor chips)의 연산 함수(computational functions)에 관한 것이다.
그래픽 처리 칩은 통상적으로 드로잉(drawing) 및 렌더링(rendering) 속도를 빠르게 하기 위해 하드웨어에서 실행되는 다양한 수학적 함수들을 사용한다. 상기 수학적 함수들의 예로서는 역함수(reciprocal function, 이하 "RCP 함수"), 역제곱근함수(reciprocal square root function, 이하 "SQRT 함수"), 지수함수(exponential function, 이하 "EXP 함수") 및 로그 함수(logarithmic function, 이하 "LOG 함수")가 있다. 종래 기술에서 이러한 수학적 함수들은 서로 다른 알고리즘을 가지는 개별적인 회로 블록(circuitry block)으로 실행된다.
예를 들어, 종래 기술에서의 세 사이클 RCP(three cycle RCP) 실행에 있어서, 부동 소수점 수(floating point number) x는 최상위 비트(most significant bits , 이하 "MSB") 부분인 x0와 최하위 비트(least significant bits , 이하 "LSB") 부분인 x1를 연결하여(concatenation) 표현될 수 있는데, 이때 x1 = x - x0이다. x의 역수를 구하는 주된 계산은 가수(mantissa)의 계산에 있다. 가수는 종래 기술에서 통상적으로 f(x) = a + b(x - x0)의 이항함수(two term function)에서 계산되는데, 이때 a와 b는 데이터 룩업 테이블(data look up tables)이다. 그래픽 처리기에 21비트 프리시전(precision) 이상이 요구되는 대표적인 예에서, 상기 프리시전을 얻기 위해서는 데이터 룩업 테이블의 a와 b 각각에는 16,000개 이상의 입력(entry)이 필요하다. 이는 14비트 x0와 각각 214 개의 입력을 가지는 데이터 룩업 테이블들에 기초한다. 이렇게 큰 데이터 룩업 테이블들을 하드웨어 실행(hardware implementation)할 경우 상기 데이터 룩업 테이블들의 사이즈에 비례하여 큰 게이트 카운트(gate count)를 발생시키게 된다. 그래픽 처리 칩은 수 개의 수학적 함수의 하드웨어 실행을 포함한다. 종래 기술의 예에서 상기 수학적 함수 각각은 큰 게이트 카운트를 필요로 하고, 통상적으로 다른 방법들과 결합되어 있다. 이러한 수학적 함수 각각을 개별적인 논리회로(logic circuitry)와 개별적인 큰 데이터 룩업 테이블을 이용하여 실행하는 것은 종래 기술에서 일반적인 기술이다. 고속이고 이동성을 가진 제품들에는 보다 높은 집적(integration)과 보다 낮은 전력소비가 요구됨에 따라, 상기 다양한 수학적 함수들을 실행하기 위한 효율적인 알고리즘이 필 요하게 되었다.
본 발명에 따른 실시예들은 이러한 필요를 충족하기 위한 것으로서, 통합 하드웨어 회로(unified hardware circuitry)와 입력이 1,000개 이하인 데이터 룩업 테이블을 이용하여 상기 다양한 수학적 함수들을 실행하기 위한 방법 및 장치를 제공하기 위한 것이다.
본 발명은 방법, 시스템 또는 장치를 포함하는 다양한 방식으로 실행될 수 있다. 이하에서는 본 발명에 따른 몇 가지 실시예를 설명한다.
일예로서, 이동성 그래픽 칩에서 벌텍스 셰이더(Vertex Shader)와 픽셀 셰이더(Pixel Shader)에 사용되는 부동 소수점에 있어서 RCP는 통합 하드웨어로 실행될 수 있다. 이러한 기술은 다음과 같은 이차 근사(quadratic approximation) 기법을 수행하는 통합 하드웨어 파이프(hardware pipe)를 이용하여 RCP(F(x) = 1/x)를 계산하는 것에 근거한다.
F(x) = a + b(x-x0) + C(x-x0)(x-x1);
이때, x는 싱글 또는 더블 프리시전 부동 소수점 수인 y의 가수이고, 각각 y = (sign)(2)w(x), -126 <= w <126 및 1.0 <= x < 2.0 이다. 일단 F(x)가 계산되면, RCP(y)는 1/y = (sign)(2)-w(F(x))의 식으로 계산될 수 있다. 몇 가지 예에서, 상기 이차 근사 기법은 64개의 세그먼트(segment)로 행해질 수 있다. 상기 64개의 세그먼트 각각의 시작값(starting value) x0와 종료값(ending value) x1은 다음과 같이 계산될 수 있다.
x0 = 1.0 + i /64
x1 = 1.0 + (i +1)/64;
이때, i는 0과 63 사이의 정수이다. 상기 64개의 세그먼트 중 하나이고 범위가 1.0 <= x < 2.0 인 임의의 x의 경우, i는 상기 x의 MSB 부분을 특정의 x0에 매칭(matching)시킴으로써 결정될 수 있다. 따라서, x의 값은 x0와 x1 사이(즉, x0 <= x < x1)이고, (x - x0)는 x의 LSB 부분이다. 일단 i가 결정되면 a, b 및 c의 값은 다음과 같이 세 개의 개별적인 데이터 룩업 테이블로부터 결정될 수 있다.
a = table[0][i]
b = table[1][i]
c = table[2][i];
또한, 상기 RCP는 F(x) = a + b(x-x0) + C(x-x0)(x-x1)의 이차 근사 기법에 근거하여 계산될 수 있다.
다른 예로서, SQRT(F(x) = 1/x^(1/2))는 서로 다른 데이터 룩업 테이블들을 가진 통합 하드웨어로 실행될 수 있다. 일단 F(x)가 계산되면 SQRT(y) 는 다음과 같이 계산될 수 있다.
1/sqrt(y) = (sign) (2)-w/2(F(x)), w는 짝수.
1/sqrt(y) = (sign) (2)-(w-1)/2(F(x)), w는 홀수.
또 다른 예로서, EXP(F(x) = 2 ^x)는 서로 다른 데이터 룩업 테이블들을 구비한 통합 하드웨어와 상기 통합 하드웨어 파이프 이전에 부동 소수점 수를 고정 소수점(fixed point) 수로 변환하는 회로를 이용하여 실행될 수 있다. 상기 부동 소수점 수를 고정 소수점 수로 변환하는 회로는 y를 int_y 와 frac_y로 변환하기 위한 전처리(pre-processing)를 수행한다. 일단 F(frac y)가 계산되면 EXP(y)는 2y = (2( int _y))(F(frac_y))의 식으로 계산될 수 있다.
또 다른 예로서, LOG(F(x) = LOG2(x))는 서로 다른 데이터 룩업 테이블들을 구비한 통합 하드웨어와 상기 통합 하드웨어 파이프 이후에 부동 소수점 수를 고정 소수점 수로 변환하는 회로를 이용하여 실행될 수 있다. 일단 F(x)가 계산되면 LOG(y)는 Log_y= Log2(y) = w + F(x)의 식으로 계산될 수 있다. 그 후 상기 부동 소수점 수를 고정 소수점 수로 변환하는 회로는 Log_y를 부동 소수점 수로 변환하기 위한 후처리(post-processing)를 수행한다.
첨부한 도면을 참조하여 본 발명의 원리에 대한 실시예를 설명하는 아래의 상세한 설명에 의해 본 발명의 다른 예와 장점이 명확해질 것이다
본 발명에 따른 수학적 함수의 계산장치 및 방법은 통합 하드웨어 회 로(unified hardware circuitry)와 입력이 1,000개 이하인 데이터 룩업 테이블을 이용하여 상기 수학적 함수의 계산시 발생되는 지연을 적게 함으로써 종래 기술보다 효율적으로 그래픽 처리 칩 등에 사용되는 다양한 수학적 함수들을 실행할 수 있다.
본 발명의 상기 특징, 장점 및 목적은 요약하여 설명하였으나 첨부한 도면에 나타낸 실시예를 참조하여 보다 상세하게 설명하기로 한다. 그러나, 첨부한 도면은 본 발명의 특정 실시예를 설명하기 위한 것이며, 본 발명의 범위를 제한하기 위한 것이 아니다. 따라서, 본 발명은 동등한 효과를 가지는 다른 실시예에도 적용될 수 있다.
도1은 본 발명의 일실시예에 따른 6단계의 통합 하드웨어 파이프라인을 나타낸 블록도이다. 이때, 블록 101, 블록 103, 블록 105, 블록 107, 블록 109, 블록 111 및 블록 113은 상기 파이프라인의 레지스터 스테이지(register stage)이다. 블록 102는 부동 소수점을 고정 소수점으로 변환하는 변환기이다. 블록 112는 고정 소수점을 부동 소수점으로 변환하는 변환기이다. 예로서, 블록 112는 EXP 함수를 실행하는 조작부호(opcode)에 따른 바이패싱 회로(bypassing circuit)로 구성될 수 있다. 이때, 상기 조작부호로는 구성명령(configuration instruction) 또는 마이크로 코드(micro-code) 등이 있다. 다른 예로서, 블록 102는 LOG 함수를 실행하는 다른 조작부호에 따른 바이패싱 회로로 구성될 수 있다. 이때, 상기 조작부호로는 구 성명령 또는 마이크로 코드 등이 있다. 또 다른 예로서, 블록 102 및 블록 112는 RCP 또는 SQRT 함수를 실행하는 또 다른 조작부호에 따른 바이패싱 회로로 구성될 수 있다. 이때, 상기 조작부호로는 구성명령 또는 마이크로 코드 등이 있다. 몇 가지 예에서, 블록 104, 106, 108 및 110은 RCP, SQRT, EXP, LOG 등의 수학적 함수를 계산하는 이차 근사 기법의 여러 가지 부분을 개별적인 데이터 룩업 테이블에 근거하여 실행할 수 있다. 예를 들면, 블록 104는 부동 소수점 수 x의 가수에 대응하는 정수 i에 근거하여 c에 대한 데이터 테이블의 룩업을 실행한다. 이와 유사하게, 블록 106은 b에 대한 데이터 테이블의 룩업을 실행한다. 동일 파이프라인 단계 동안 블록 106은 c(x-x0)도 계산한다. 유사하게, 블록 108은 b(x-x0) 및 c(x-x0)(x-x1)의 계산뿐만 아니라 a에 대한 데이터 테이블의 룩업도 실행한다. 블록 110은 이차 근사 기법을 계산하기 위한 세 항의 합산을 실행한다. 상기 설명은 이에 한정되지 아니하며 상기 설명에 의해 다양한 변경이나 대체가 가능함은 물론이다.
도2는 본 발명의 일실시예에 따른 3단계의 RCP 하드웨어 파이프라인을 나타낸 블록도이다. 이때, 블록 201, 블록 203, 블록 205 및 블록 207은 상기 파이프라인의 레지스터 스테이지이다. 몇 가지 예에서, 블록 202, 블록 204 및 블록 206은 이차 근사 기법을 계산하기 위한 여러 가지 부분을 수행한다. 예를 들면, 블록 202는 부동 소수점 수의 가수의 MSB에 대응하는 정수 i에 근거하여 b 및 c에 대한 데이터 테이블의 룩업을 실행한다. 동일 파이프라인 단계 동안, 블록 202는 (x-x0)(x-x1)도 계산한다. 유사하게, 블록 204는 b(x-x0) 및 c(x-x0)(x-x1)의 계산뿐 만 아니라 a에 대한 데이터 테이블의 룩업도 실행한다. 블록 206은 이차 근사 기법을 계산하기 위한 세 항의 합산을 실행한다. 상기 설명은 이에 한정되지 아니하며 상기 설명에 의해 다양한 변경이나 대체가 가능함은 물론이다.
도3은 본 발명의 일실시예에 따라 여러 가지 데이터 룩업 테이블을 계산하는 예시적인 알고리즘을 나타낸 흐름도이다. 여기에서는, SQRT의 데이터 테이블 a, b, 및 c를 계산하는 예시적인 알고리즘을 나타내었다. 이러한 예에서 a, b 및 c는 각각 table[0][i] = a, table[1][i] = b 및 table[2][i]= c이다. 세 개의 값 a, b, 및 c를 계산하기 위해 세 개의 선형 방정식을 사용한다. 이러한 세 개의 방정식은 세그먼트(301)의 시작점(즉, x), 중간점(즉, x_5) 및 종료점(즉, x1)을 먼저 계산하여 풀 수 있다. 블록 302 및 303은 부동 소수점 형식으로 a, b 및 c를 계산한다. 블록 304는 a, b 및 c를 정수 형식으로 변환한다. 블록 305는 라운딩(rounding)을 수행하여 최종값을 산출한다. 다른 예로서, RCP의 데이터 테이블 a, b 및 c를 계산하는 알고리즘으로 개조하기 위해 블록 302의 "sqrt" 함수는 역함수(reciprocal function)로 대체될 수 있다. 또 다른 예에서, 다른 함수(예를 들어, EXP, LOG 등)의 데이터 테이블 a, b 및 c를 계산하는 알고리즘으로 개조하기 위해 블록 302의 "sqrt" 함수는 상기 다른 함수로 대체될 수 있다. 상기 설명은 이에 한정되지 아니하며 상기 설명에 의해 다양한 변경이나 대체가 가능함은 물론이다.
이상에서 설명한 본 발명의 실시예들은 설명을 위한 것으로, 본 발명을 이에 한정하기 위한 것이 아니다. 특히, 본 명세서에서 설명한 발명의 기능적 실시는 하드웨어, 소프트웨어, 펌웨어(firmware) 및/또는 사용 가능한 기능적 구성요소 또는 빌딩 블록(building block)에서 동등하게 실시될 수 있으며, 네트워크는 유선, 무선 또는 유무선의 결합일 수 있다. 상기 설명한 내용에 의해 여러 가지 다양한 변화 및 실시예가 가능하며, 첨부한 발명의 상세한 설명과 특허청구범위는 본 발명의 범위를 한정하기 위한 것이 아니다.
도1은 본 발명의 일실시예에 따른 6단계의 통합 하드웨어 파이프라인을 나타낸 블록도이다.
도2는 본 발명의 일실시예에 따른 3 단계의 RCP 하드웨어 파이프라인을 나타낸 블록도이다.
도3은 본 발명의 일실시예에 따라 여러 가지 예시적인 데이터 룩업 테이블을 계산하는 알고리즘을 나타낸 흐름도이다.
Claims (12)
- 하나 이상의 단계(stage)를 포함하고, 다항 근사(polynomial approximation)를 수행하는 싱글 파이프라인(single pipeline)과,하나 이상의 조작부호(opcode)에 따라 상기 싱글 파이프라인에 결합되어 실행 가능한 RCP(reciprocal function), SQRT(reciprocal square root function), EXP(exponential function) 또는 LOG(logarithmic function) 함수 중 적어도 하나에 대응하는 하나 이상의 데이터 테이블을 포함하되,상기 하나 이상의 데이터 테이블 각각은 대응되는 함수를 구현하기 위해 관련된 데이터를 포함하고,상기 다항 근사는 F(x)=a+b*(x-x0)+c*(x-x0)*(x-x1)의 형태이고, F(x)는 상기 싱글 파이프라인에서 사용되는 중간 값이고, x는 피연산자이고, x0는 상기 피연산자 보다 큰 수이고, x1은 상기 피연산자 보다 작은 수이고, 상기 a, b, c는 x0 및 x1에 대응되는 것으로서 상기 데이터 테이블로부터 가져오고,상기 싱글 파이프라인은 상기 하나 이상의 조작부호에 따라 RCP, SQRT, EXP 또는 LOG 함수 중 적어도 하나를 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
- 제1항에 있어서,상기 다항 근사는 이차 다항 근사이고, 상기 싱글 파이프라인은 다수의 단계를 구비한 것을 특징으로 하는 수학적 함수 계산장치.
- 제1항에 있어서,상기 각각의 단계는 하나 이상의 데이터 테이블과 결합되어 실행 가능한 것 을 특징으로 하는 수학적 함수 계산장치.
- 제1항에 있어서,상기 각각의 단계는 상기 다항 근사의 하나 이상의 항을 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
- 제1항에 있어서,제1단계는 부동 소수점 표현을 고정 소수점 표현으로 변환하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
- 제5항에 있어서,상기 제1단계는 상기 하나 이상의 조작부호에 따라 바이패싱 함수를 수행하도록 구성될 수 있는 것을 특징으로 하는 수학적 함수 계산장치.
- 제1항에 있어서,제2단계는 고정 소수점 표현을 부동 소수점 표현으로 변환하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
- 제7항에 있어서,상기 제2단계는 상기 하나 이상의 조작부호에 따라 바이패싱 함수를 수행하 도록 구성될 수 있는 것을 특징으로 하는 수학적 함수 계산장치.
- RCP(reciprocal function), SQRT(reciprocal square root function), EXP(exponential function) 또는 LOG(logarithmic function) 함수 중 적어도 하나에 대응하는 하나 이상의 데이터 테이블을 구성하되, 상기 하나 이상의 데이터 테이블 각각은 대응되는 함수를 구현하기 위해 관련된 데이터를 포함하는 단계; 및,싱글 파이프라인(single pipeline)에서 상기 데이터 테이블을 이용하여 다항 근사를 수행하고, 상기 다항 근사를 이용하여 RCP, SQRT, EXP 또는 LOG 함수 중 적어도 하나를 계산하는 단계;를 포함하고,상기 다항 근사는 F(x)=a+b*(x-x0)+c*(x-x0)*(x-x1)의 형태이고, F(x)는 상기 싱글 파이프라인에서 사용되는 중간 값이고, x는 피연산자이고, x0는 상기 피연산자 보다 작은 수이고, x1은 상기 피연산자 보다 큰 수이고, 상기 a, b, c는 x0 및 x1에 대응되는 것으로서 상기 데이터 테이블로부터 가져오는 것을 특징으로 하는 수학적 함수 계산 방법.
- 제9항에 있어서,상기 다항 근사는 이차 다항 근사이고, 상기 싱글 파이프라인은 다수의 단계를 구비한 것을 특징으로 하는 수학적 함수 계산 방법.
- 제10항에 있어서,상기 싱글 파이프라인의 각각의 단계는 하나 이상의 데이터 테이블과 결합되어 실행 가능한 것을 특징으로 하는 수학적 함수 계산 방법.
- 제10항에 있어서,상기 싱글 파이프라인의 각각의 단계는 상기 다항 근사의 하나 이상의 항을 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/493,714 | 2006-07-25 | ||
US11/493,714 US8346831B1 (en) | 2006-07-25 | 2006-07-25 | Systems and methods for computing mathematical functions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080010285A KR20080010285A (ko) | 2008-01-30 |
KR101398723B1 true KR101398723B1 (ko) | 2014-05-26 |
Family
ID=38686695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070072889A KR101398723B1 (ko) | 2006-07-25 | 2007-07-20 | 알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8346831B1 (ko) |
EP (1) | EP1884859B1 (ko) |
JP (1) | JP5278844B2 (ko) |
KR (1) | KR101398723B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346831B1 (en) * | 2006-07-25 | 2013-01-01 | Vivante Corporation | Systems and methods for computing mathematical functions |
US9015217B2 (en) | 2012-03-30 | 2015-04-21 | Apple Inc. | Transcendental and non-linear components using series expansion |
KR101624711B1 (ko) * | 2013-12-24 | 2016-05-26 | (주)에프씨아이 | 부동소수점 방식을 이용한 데이터 압축/복원 방법 및 장치 |
JP6770777B2 (ja) * | 2015-04-07 | 2020-10-21 | ビバンテ コーポレーション | 数学的関数を計算するためのシステム及び方法 |
KR102359265B1 (ko) | 2015-09-18 | 2022-02-07 | 삼성전자주식회사 | 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법 |
US20180217814A1 (en) * | 2017-02-02 | 2018-08-02 | Vivante Corporation | Systems And Methods For Computing Mathematical Functions |
US10725742B2 (en) | 2018-06-05 | 2020-07-28 | Texas Instruments Incorporated | Transcendental function evaluation |
CN111913686B (zh) * | 2020-05-29 | 2021-12-07 | 无锡市优利康电气有限公司 | 一种定点cpu的快速开平方计算的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200266A (ja) * | 1991-10-11 | 1995-08-04 | Weytec Corp | 根の多項近似式を利用した割り算と平方根の為のプロセッサー |
KR19980032693A (ko) * | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타프로세서 및 데이타처리시스템 |
JP2001056808A (ja) * | 1999-06-10 | 2001-02-27 | Lucent Technol Inc | 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー |
US7640285B1 (en) * | 2004-10-20 | 2009-12-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4868776A (en) * | 1987-09-14 | 1989-09-19 | Trw Inc. | Fast fourier transform architecture using hybrid n-bit-serial arithmetic |
JPH0251771A (ja) * | 1988-08-15 | 1990-02-21 | Nec Corp | 数表と補間式による高速数値計算方式 |
US5163017A (en) * | 1990-03-23 | 1992-11-10 | Texas Instruments Incorporated | Pipelined Fast Fourier Transform (FFT) architecture |
JPH06223097A (ja) * | 1993-01-22 | 1994-08-12 | Sony Corp | 乗算器、積和演算器の回路記述の発生方法 |
US5703801A (en) * | 1995-01-31 | 1997-12-30 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing second-order term and method of using same |
US6163791A (en) * | 1998-02-02 | 2000-12-19 | International Business Machines Corporation | High accuracy estimates of elementary functions |
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 |
US6549924B1 (en) * | 1999-10-01 | 2003-04-15 | Hewlett-Packard Company | Function generating interpolation method and apparatus |
US6598063B1 (en) * | 2000-08-14 | 2003-07-22 | Lntel Corporation | Fast calculation of (A/B)K by a parallel floating-point processor |
US6976043B2 (en) * | 2001-07-30 | 2005-12-13 | Ati Technologies Inc. | Technique for approximating functions based on lagrange polynomials |
US7509363B2 (en) * | 2001-07-30 | 2009-03-24 | Ati Technologies Ulc | Method and system for approximating sine and cosine functions |
JP3719509B2 (ja) * | 2002-04-01 | 2005-11-24 | 株式会社ソニー・コンピュータエンタテインメント | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
JP4408613B2 (ja) * | 2002-09-25 | 2010-02-03 | Necエレクトロニクス株式会社 | トランジスタの拡散層長依存性を組み込んだ回路シミュレーション装置およびトランジスタモデル作成方法 |
JP2004213424A (ja) * | 2003-01-06 | 2004-07-29 | Sony Corp | 情報処理方法、情報処理装置および情報処理プログラム |
US7346642B1 (en) * | 2003-11-14 | 2008-03-18 | Advanced Micro Devices, Inc. | Arithmetic processor utilizing multi-table look up to obtain reciprocal operands |
JP2005182719A (ja) * | 2003-12-18 | 2005-07-07 | Oita Technology Licensing Organization Ltd | 関数発生方法と関数発生装置 |
JP2006065633A (ja) * | 2004-08-27 | 2006-03-09 | Sony Computer Entertainment Inc | 演算方法および装置 |
US7676535B2 (en) * | 2005-09-28 | 2010-03-09 | Intel Corporation | Enhanced floating-point unit for extended functions |
US8346831B1 (en) * | 2006-07-25 | 2013-01-01 | Vivante Corporation | Systems and methods for computing mathematical functions |
-
2006
- 2006-07-25 US US11/493,714 patent/US8346831B1/en active Active
-
2007
- 2007-07-03 EP EP07111660.2A patent/EP1884859B1/en active Active
- 2007-07-20 JP JP2007189740A patent/JP5278844B2/ja active Active
- 2007-07-20 KR KR1020070072889A patent/KR101398723B1/ko active IP Right Grant
-
2012
- 2012-11-30 US US13/690,897 patent/US20130091189A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200266A (ja) * | 1991-10-11 | 1995-08-04 | Weytec Corp | 根の多項近似式を利用した割り算と平方根の為のプロセッサー |
KR19980032693A (ko) * | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타프로세서 및 데이타처리시스템 |
JP2001056808A (ja) * | 1999-06-10 | 2001-02-27 | Lucent Technol Inc | 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー |
US7640285B1 (en) * | 2004-10-20 | 2009-12-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
Also Published As
Publication number | Publication date |
---|---|
US8346831B1 (en) | 2013-01-01 |
EP1884859A2 (en) | 2008-02-06 |
EP1884859A3 (en) | 2017-07-19 |
JP2008071336A (ja) | 2008-03-27 |
US20130091189A1 (en) | 2013-04-11 |
EP1884859B1 (en) | 2019-01-23 |
JP5278844B2 (ja) | 2013-09-04 |
KR20080010285A (ko) | 2008-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101398723B1 (ko) | 알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 | |
US10574260B2 (en) | Techniques for floating-point number conversion | |
CN107291419B (zh) | 用于神经网络处理器的浮点乘法器及浮点数乘法 | |
Zhang et al. | Efficient multiple-precision floating-point fused multiply-add with mixed-precision support | |
JP5883462B2 (ja) | 範囲検出を行うための命令及びロジック | |
KR20080089313A (ko) | 곱셈 기능을 수행하기 위한 방법 및 장치 | |
JP4571903B2 (ja) | 演算処理装置,情報処理装置,及び演算処理方法 | |
US20130246496A1 (en) | Floating-point vector normalisation | |
TWI493453B (zh) | 提高精確度積和演算之微處理器及其視頻解碼裝置、其方法及其電腦程式產品 | |
CN109901813B (zh) | 一种浮点运算装置及方法 | |
JP5640081B2 (ja) | 飽和を伴う整数乗算および乗算加算演算 | |
US7406589B2 (en) | Processor having efficient function estimate instructions | |
KR102412746B1 (ko) | 부동 소수점 제곱근 연산 장치 및 방법 | |
KR970073162A (ko) | 단일명령사이클에서 2정수의 절대차 산출방법 및 장치(Calculating the absolute difference of two integer numbers in a single instruction cycle) | |
KR102503498B1 (ko) | 수학적 함수를 연산하는 시스템 및 방법 | |
JP2007515021A (ja) | スケールされた整数を用いた浮動小数点演算 | |
KR102559930B1 (ko) | 수학적 함수들을 연산하기 위한 시스템 및 방법들 | |
US9563400B2 (en) | Optimized structure for hexadecimal and binary multiplier array | |
TW201905678A (zh) | 整合算術及邏輯處理的裝置 | |
Ueno et al. | Parameterized design and evaluation of bandwidth compressor for floating-point data streams in FPGA-based custom computing | |
Hsiao et al. | Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system | |
TW201905845A (zh) | 全精度及部分精度數值的計算方法及裝置 | |
US7870181B2 (en) | Chinese abacus adder | |
US20050050132A1 (en) | Methods and apparatus for determining approximating polynomials using instruction-embedded coefficients | |
JPH09223016A (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: 20170407 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190429 Year of fee payment: 6 |