KR101398723B1 - 알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 - Google Patents

알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 Download PDF

Info

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
Application number
KR1020070072889A
Other languages
English (en)
Other versions
KR20080010285A (ko
Inventor
엠.카이 마이크
종 레판
Original Assignee
비반테 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비반테 코포레이션 filed Critical 비반테 코포레이션
Publication of KR20080010285A publication Critical patent/KR20080010285A/ko
Application granted granted Critical
Publication of KR101398723B1 publication Critical patent/KR101398723B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/08Powers or roots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/10Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/12Reciprocal functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic 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

알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일 데이터패스 부동 소수점 실행 및 이에 기반한 저지연 알씨피{Single Datapath Floating Point Implementation of RCP, SQRT, EXP and LOG functions and a Low Latency RCP based on the same techniques}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 보다 상세하게는 그래픽 처리 칩(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)

  1. 하나 이상의 단계(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 함수 중 적어도 하나를 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
  2. 제1항에 있어서,
    상기 다항 근사는 이차 다항 근사이고, 상기 싱글 파이프라인은 다수의 단계를 구비한 것을 특징으로 하는 수학적 함수 계산장치.
  3. 제1항에 있어서,
    상기 각각의 단계는 하나 이상의 데이터 테이블과 결합되어 실행 가능한 것 을 특징으로 하는 수학적 함수 계산장치.
  4. 제1항에 있어서,
    상기 각각의 단계는 상기 다항 근사의 하나 이상의 항을 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
  5. 제1항에 있어서,
    제1단계는 부동 소수점 표현을 고정 소수점 표현으로 변환하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
  6. 제5항에 있어서,
    상기 제1단계는 상기 하나 이상의 조작부호에 따라 바이패싱 함수를 수행하도록 구성될 수 있는 것을 특징으로 하는 수학적 함수 계산장치.
  7. 제1항에 있어서,
    제2단계는 고정 소수점 표현을 부동 소수점 표현으로 변환하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산장치.
  8. 제7항에 있어서,
    상기 제2단계는 상기 하나 이상의 조작부호에 따라 바이패싱 함수를 수행하 도록 구성될 수 있는 것을 특징으로 하는 수학적 함수 계산장치.
  9. 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에 대응되는 것으로서 상기 데이터 테이블로부터 가져오는 것을 특징으로 하는 수학적 함수 계산 방법.
  10. 제9항에 있어서,
    상기 다항 근사는 이차 다항 근사이고, 상기 싱글 파이프라인은 다수의 단계를 구비한 것을 특징으로 하는 수학적 함수 계산 방법.
  11. 제10항에 있어서,
    상기 싱글 파이프라인의 각각의 단계는 하나 이상의 데이터 테이블과 결합되어 실행 가능한 것을 특징으로 하는 수학적 함수 계산 방법.
  12. 제10항에 있어서,
    상기 싱글 파이프라인의 각각의 단계는 상기 다항 근사의 하나 이상의 항을 계산하기 위해 실행 가능한 것을 특징으로 하는 수학적 함수 계산 방법.
KR1020070072889A 2006-07-25 2007-07-20 알씨피, 에스큐알티, 이엑스피 및 로그 함수의 단일데이터패스 부동 소수점 실행 및 이에 기반한 저지연알씨피 KR101398723B1 (ko)

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)

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

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

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

Patent Citations (4)

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