KR20090031594A - 멀티스테이지 부동 소수점 누산기 - Google Patents

멀티스테이지 부동 소수점 누산기 Download PDF

Info

Publication number
KR20090031594A
KR20090031594A KR1020097001736A KR20097001736A KR20090031594A KR 20090031594 A KR20090031594 A KR 20090031594A KR 1020097001736 A KR1020097001736 A KR 1020097001736A KR 20097001736 A KR20097001736 A KR 20097001736A KR 20090031594 A KR20090031594 A KR 20090031594A
Authority
KR
South Korea
Prior art keywords
floating point
operand
alignment unit
accumulator
operative
Prior art date
Application number
KR1020097001736A
Other languages
English (en)
Other versions
KR101085810B1 (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 KR20090031594A publication Critical patent/KR20090031594A/ko
Application granted granted Critical
Publication of KR101085810B1 publication Critical patent/KR101085810B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Telephone Function (AREA)
  • Secondary Cells (AREA)

Abstract

멀티스테이지 부동 소수점 누산기는 적어도 2 개의 스테이지를 포함하고, 보다 고속으로 동작할 수 있다. 일 디자인에 있어서, 부동 소수점 누산기는 제 1 스테이지 및 제 2 스테이지를 포함한다. 제 1 스테이지는 3 개의 피연산자 정렬 유닛, 2 개의 다중화기, 및 3 개의 래치를 포함한다. 3 개의 피연산자 정렬 유닛은, 현재의 부동 소수점 값, 이전의 부동 소수점 값, 및 이전의 누산된 값에 대해 동작한다. 제 1 다중화기는 제 2 피연산자 정렬 유닛으로 제로 또는 이전의 부동 소수점 값을 제공한다. 제 2 다중화기는 제 3 피연산자 정렬 유닛으로 제로 또는 이전의 누산된 값을 제공한다. 3 개의 래치는 3 개의 피연산자 정렬 유닛에 연결된다. 제 2 스테이지는, 3 개의 피연산자 정렬 유닛에 의해 발생된 피연산자를 합산하는 3-피연산자 가산기, 래치, 및 후정렬 유닛을 포함한다.
멀티스테이지 부동 소수점 누산기, 피연산자 정렬, 후정렬, 산술 논리 유닛, 그래픽스, MAC 연산, 파이프라인

Description

멀티스테이지 부동 소수점 누산기{MULTI-STAGE FLOATING-POINT ACCUMULATOR}
배 경
Ⅰ. 기술분야
본 개시물은 일반적으로 일렉트로닉스에 관한 것이고, 보다 상세하게는 부동 소수점 누산기에 관한 것이다.
Ⅱ. 배경기술
디지털 프로세서에 있어서, 수치 데이터는 정수 또는 부동 소수점 표현을 이용하여 표현될 수도 있다. 부동 소수점 표현은, 몇몇 산술 연산에 대한 그 조작의 용이성 및 광범위한 값을 표현하는 그 능력 때문에, 다수의 애플리케이션에서 이용된다. 통상적으로, 부동 소수점 표현은 3 개의 성분, 즉 부호 비트 (sign), 유효수 (significand) 로서 종종 언급되는 가수 (mant), 및 지수 (exp) 를 포함한다. 부동 소수점 값은 (-1)sign × mant × 2exp 와 같이 표현될 수도 있다.
부동 소수점 누산은, 그래픽스, 디지털 신호 처리 등과 같은 각종 애플리케이션에 대해 일반적으로 수행되는 산술 연산이다. 통상적으로, 부동 소수점 누 산은, (1) 입력 부동 소수점 값 및 누산된 부동 소수점 값을 수신하는 단계, (2) 이들 2 개의 부동 소수점 값의 가수를 그 지수에 기초하여 정렬하는 단계, (3) 이들 2 개의 정렬된 가수를 합산하는 단계, 및 (4) 정규화를 위해 그 결과를 후정렬 (post-aligning) 하는 단계를 수반한다. 단계 2, 단계 3 및 단계 4 각각은 수행하는데 특정 시간량을 필요로 한다. 이들 단계를 위한 총 시간은, 프로세서가 동작할 수 있는 속도를 제한할 수도 있다.
개 요
보다 고속으로 동작할 수 있는 멀티스테이지 부동 소수점 누산기가 본 명세서에 기재되어 있다. 멀티스테이지 부동 소수점 누산기는 부동 소수점 누산을 위한 단계를 다수의 스테이지로 파티셔닝한다. 각 스테이지의 지연은, 부동 소수점 누산을 위한 단계 모두에 대한 총 지연의 일부이다. 이는, 멀티스테이지 부동 소수점 누산기가 보다 높은 클록 속도로 동작하는 것을 허용한다.
일 실시형태에 있어서, 부동 소수점 누산기는 적어도 2 개의 스테이지를 포함한다. 각 스테이지는, 각 스테이지에 대한 적어도 하나의 결과를 저장하는 적어도 하나의 래치 및 기능 로직을 포함한다. 부동 소수점 누산기는, 적어도 2 개의 클록 사이클 이전으로부터의 누산된 결과를 이용하여 복수의 부동 소수점 값에 대한 누산을 수행한다.
일 실시형태에 있어서, 부동 소수점 누산기는 2 개의 스테이지를 포함한다. 일 실시형태에 있어서, 제 1 스테이지는 3 개의 피연산자 정렬 유닛, 2 개의 다 중화기, 및 3 개의 래치를 포함한다. 3 개의 피연산자 정렬 유닛은, 2 개의 클록 사이클 이전으로부터의 이전의 누산된 값, 이전의 부동 소수점 값, 및 현재의 부동 소수점 값에 대해 동작한다. 제 1 다중화기는 제 2 피연산자 정렬 유닛으로 제로 또는 이전의 부동 소수점 값을 제공한다. 제 2 다중화기는 제 3 피연산자 정렬 유닛으로 제로 또는 이전의 누산된 값을 제공한다. 3 개의 래치는 3 개의 피연산자 정렬 유닛에 연결된다. 일 실시형태에 있어서, 제 2 스테이지는, 3 개의 피연산자 정렬 유닛에 의해 발생된 피연산자를 합산하는 3-피연산자 가산기, 이 3-피연산자 가산기에 연결된 래치, 및 이 래치에 연결된 후정렬 유닛을 포함한다.
멀티스테이지 부동 소수점 누산기는 승산기와 협력하여 승산 및 누산 (MAC) 연산을 수행하는데 사용될 수도 있는데, 이 MAC 연산은 일반적으로 내적 (dot product), 필터링 등에 이용된다.
본 개시물의 각종 양태 및 실시형태는 보다 상세하게 후술된다.
도면의 간단한 설명
본 개시물의 양태 및 실시형태는, 첨부 도면과 관련하여 취해지는 경우에 후술되는 상세한 설명으로부터 보다 명백해질 것이고, 첨부 도면에서 동일한 참조부호는 본 명세서 전체에 걸쳐 동일한 구성요소를 나타낸다.
도 1 은 단일 스테이지 부동 소수점 누산기를 도시한 도면이다.
도 2 및 도 3 은 2-스테이지 부동 소수점 누산기의 2 가지 실시형태를 도시 한 도면이다.
도 4 는 승산 및 누산 (MAC) 유닛을 도시한 도면이다.
도 5 는 그래픽스 프로세서의 블록도이다.
도 6 은 무선 디바이스의 블록도이다.
상세한 설명
"예시적인" 이라는 단어는 본 명세서에서 "실시예, 실례 또는 예시의 역할을 하는 것"을 의미하는데 이용된다. 본 명세서에서 "예시적인" 것으로서 기재된 임의의 실시형태나 디자인은 반드시 다른 실시형태나 디자인에 비해 바람직하거나 이로운 것으로서 해석되는 것은 아니다.
하나의 스테이지에서의 부동 소수점 누산은:
Figure 112009005232791-PCT00001
와 같이 표현될 수도 있는데, 여기서 n 은 누산되는 부동 소수점 값에 대한 인덱스이고,
Xn 은 누산되는 n 번째 부동 소수점 값이고 (X0 = 0),
N 은 누산되는 부동 소수점 값의 총 수이다.
일반적으로, N 은 임의의 양의 정수값일 수도 있다.
[수학식 1] 은 다음과 같이 정정될 수도 있는데:
Figure 112009005232791-PCT00002
이고, 여기서 An 은 X1 내지 Xn 에 대해 누산된 결과이고, A0 = 0 이다. 최종 누산된 결과 AN 은, N 개의 부동 소수점 값 X1 내지 XN 모두가 누산된 이후에 획득된다.
도 1 은 단일 스테이지 부동 소수점 누산기 (100) 의 블록도이다. 래치 (110) 는 입력 부동 소수점 값을 수신하여 래치하고, 래치된 값을 누산될 현재의 부동 소수점 값 Xn 으로서 제공하는데, 이 입력 부동 소수점 값은 입력 피연산자로도 언급된다. 다중화기 (Mux ; 112) 는 2 개의 입력을 통해 누산된 결과 및 제로 (0.0) 를 수신한다. 다중화기 (112) 는, 누산이 시작되거나 디스에이블되는 경우에는 제로를 제공하고, 누산이 지속 중인 경우에는 누산된 결과를 제공한다. 다중화기 (112) 의 출력은 [수학식 2] 에서의 이전의 누산된 값 An-1 이고, 이는 Xn 과 합산될 것이다.
피연산자 정렬 유닛 (120 및 122) 은 각각 피연산자 Xn 및 An-1 을 수신한다. 피연산자 정렬 유닛 (120 및 122) 은, 예를 들어 2 개의 피연산자의 지수가 동등할 때까지, 하나의 피연산자의 가수를 시프트시키며 그 지수를 조정함으로써, 2 개의 피연산자의 가수를 정렬한다. 그런 다음, 2-피연산자 가산기 (140) 는 2 개의 정렬된 가수를 합산하여, 결과적인 가수 및 지수를 제공한다. 래치 (150) 는 2-피연산자 가산기 (140) 의 출력을 수신하여 래치한다. 후정렬 유닛 (160) 은 필요에 따라 결과적인 가수를 시프트시키며 지수를 조정하여, 1.xxx--xxx 의 포맷을 갖는 정규화된 가수를 획득하는데, 여기서 각 "x" 는 하나의 이진 비트를 나타낸다. 후정렬 유닛 (160) 은 정규화된 가수 및 지수를 누산된 결과로서 제공한다.
부동 소수점 누산기 (100) 는 2 개의 신호 경로, 즉 Xn 에 대한 제 1 신호 경로, 및 An-1 에 대한 제 2 신호 경로를 갖는다. 제 1 신호 경로의 총 지연은 래치 (110) 로부터 래치 (150) 까지이고, 이는 피연산자 정렬 유닛 (120) 의 지연 및 2-피연산자 가산기 (140) 의 지연에 의해 결정된다. 제 2 신호 경로의 총 지연은, 후정렬 유닛 (160) 의 지연, 다중화기 (112) 의 지연, 피연산자 정렬 유닛 (122) 의 지연, 및 2-피연산자 가산기 (140) 의 지연에 의해 결정된다. 제 2 신호 경로의 총 지연은 제 1 신호 경로의 총 지연보다 길고, 래치 (110 및 150) 가 얼마나 빨리 클로킹 (clocking) 될 수 있는지를 결정한다. 특히, 래치에 대한 클록 속도는, 각 클록 주기가 제 2 신호 경로의 총 지연보다 길도록 선택될 수도 있다. 이 총 지연은 비교적 길어, 그에 따라 부동 소수점 누산기 (100) 에 대한 클록 속도를 제한할 수도 있다.
부동 소수점 누산기 (100) 는, 높은 클록 속도로 동작할 수도 있는 고성능 및 고속 산술 논리 유닛 (ALU) 에 사용될 수도 있다. 부동 소수점 누산이 하나의 클록 주기에서 완료될 수 없는 경우, ALU 를 사용하는 데이터 파이프라인들 사 이에 추가의 데이터 종속성이 도입될 수도 있다. 데이터 파이프라인은, 부동 소수점 누산기 (100) 가 누산된 결과를 제공할 때까지 대기할 필요가 있을 수도 있다. 이 데이터 종속성은, 특히 대규모로 부동 소수점 누산을 수행하는 애플리케이션에 있어서, 성능에 영향을 미칠 수도 있다.
멀티스테이지 부동 소수점 누산기는 동작 속도를 향상시키는데 사용될 수도 있다. 멀티스테이지 부동 소수점 누산기는 부동 소수점 누산을 위한 단계를 다수의 스테이지로 파티셔닝한다. 각 스테이지의 지연은, 누산을 위한 단계 모두에 대한 총 지연의 일부이다. 이는, 멀티스테이지 부동 소수점 누산기가 보다 높은 클록 속도로 동작하는 것을 허용한다.
2 개의 스테이지에서의 부동 소수점 누산은:
Figure 112009005232791-PCT00003
와 같이 표현될 수도 있는데, 여기서 X0 = X-1 = 0 이다.
[수학식 3] 은 다음과 같이 정정될 수도 있는데:
Figure 112009005232791-PCT00004
이고, 여기서 A0 = A-1 = 0 이다.
도 2 는 2-스테이지 부동 소수점 누산기 (200) 의 일 실시형태의 블록도이다. 래치 (210) 는 입력 부동 소수점 값을 수신하여 래치하고, 누산될 현재의 부동 소수점 값 Xn 을 제공한다. 다중화기 (212) 는 이전의 피연산자 및 제로를 수신하여, 누산이 시작되거나 디스에이블되는 경우에는 제로를 제공하고, 누산이 지속 중인 경우에는 이전의 피연산자를 제공한다. 다중화기 (212) 의 출력은 [수학식 4] 에서의 Xn-1 이고, 이는 Xn 과 합산될 것이다. 다중화기 (214) 는 누산된 결과 및 제로를 수신하여, 최종 2 개의 클록 주기 내에서 누산이 시작되거나 디스에이블되는 경우에는 제로를 제공하고, 누산이 지속 중인 경우에는 누산된 결과를 제공한다. 다중화기 (214) 의 출력은 [수학식 4] 에서의 이전의 누산된 값 An-2 이고, 이는 Xn 과 합산될 것이다. 부동 소수점 누산기 (200) 는 2 개의 클록 사이클의 지연을 갖는 파이프라인이다. 따라서, 후정렬 유닛 (260) 으로부터의 현재의 누산된 결과는 2 개의 클록 사이클 이전에 대한 이전의 누산된 값이다.
피연산자 정렬 유닛 (220, 222 및 224) 은 각각 피연산자 Xn, Xn-1 및 An-2 를 수신한다. 피연산자 정렬 유닛 (220, 222 및 224) 은, 예를 들어 3 개의 피연산자 모두의 지수가 동등할 때까지, 필요에 따라, 하나 이상의 피연산자의 하나 이상의 가수를 시프트시키며 그 지수를 조정함으로써, 3 개의 피연산자의 가수를 정렬한다. 래치 (230, 232 및 234) 는 각각 피연산자 정렬 유닛 (220, 222 및 224) 의 출력을 수신하여 래치한다. 3-피연산자 가산기 (240) 는 래치 (230, 232 및 234) 로부터의 3 개의 정렬된 가수를 합산하여, 결과적인 가수 및 지수를 제공한다. 래치 (250) 는 3-피연산자 가산기 (240) 의 출력을 수신하여 래치한 다. 후정렬 유닛 (260) 은 필요에 따라 결과적인 가수를 시프트시키며 지수를 조정하여, 정규화된 가수를 획득한다. 후정렬 유닛 (260) 은 누산된 결과를 제공한다.
부동 소수점 누산기 (200) 는 2 개의 스테이지를 갖는다. 제 1 스테이지는 다중화기 (212) 내지 래치 (234) 를 포함하는 것으로서 고려될 수도 있다. 제 2 스테이지는 3-피연산자 가산기 (240), 래치 (250) 및 후정렬 유닛 (260) 을 포함하는 것으로서 고려될 수도 있다. 일반적으로, 각 스테이지는 기능 로직, 및 적어도 하나의 래치 또는 레지스터를 포함하는데, 이들은 각 스테이지 내의 어디든지 위치할 수도 있다. 래치(들)는 스테이지의 중간 및/또는 최종 결과(들)를 저장하는데 사용된다. 각 스테이지는 각 클록 주기에서 업데이트된다.
부동 소수점 누산기 (200) 는 3 개의 신호 경로, 즉 Xn 에 대한 제 1 신호 경로, Xn-1 에 대한 제 2 신호 경로, 및 An-2 에 대한 제 3 신호 경로를 갖는다. 제 1 신호 경로는 2 개의 세그먼트, 즉 (1) 피연산자 정렬 유닛 (220) 의 지연에 의해 결정된 지연을 가지며 래치 (210) 로부터 래치 (230) 까지의 제 1 세그먼트, 및 (2) 3-피연산자 가산기 (240) 의 지연에 의해 결정된 지연을 가지며 래치 (230) 로부터 래치 (250) 까지의 제 2 세그먼트로 파티셔닝된다. 제 2 신호 경로는, (1) 다중화기 (212) 의 지연 및 피연산자 정렬 유닛 (222) 의 지연에 의해 결정된 지연을 가지며 다중화기 (212) 로부터 래치 (232) 까지의 제 1 세그먼트, 및 (2) 래치 (232) 로부터 래치 (250) 까지의 제 2 세그먼트로 파티셔닝된다. 제 3 신 호 경로는, (1) 후정렬 유닛 (260) 의 지연, 다중화기 (214) 의 지연 및 피연산자 정렬 유닛 (224) 의 지연에 의해 결정된 지연을 가지며 래치 (250) 로부터 래치 (234) 까지의 제 1 세그먼트, 및 (2) 래치 (234) 로부터 래치 (250) 까지의 제 2 세그먼트로 파티셔닝된다. 따라서, 3 개의 신호 경로 각각은 2 개의 세그먼트로 파티셔닝된다. 제 2 세그먼트는 3 개의 신호 경로 모두에 대해 동일하다.
따라서, 부동 소수점 누산기 (200) 는 4 개의 상이한 세그먼트, 즉 3 개의 피연산자에 대한 3 개의 제 1 세그먼트, 및 공통의 제 2 세그먼트를 갖는다. 4 개의 세그먼트 모두의 가장 긴 지연은, 래치가 얼마나 빨리 클로킹될 수 있는지를 결정한다. 이 가장 긴 지연은, 부동 소수점 누산기 (100) 에서의 제 2 신호 경로의 총 지연보다 훨씬 짧을 수도 있다. 따라서, 부동 소수점 누산기 (200) 는 부동 소수점 누산기 (100) 보다 높은 클록 속도로 동작할 수도 있다.
표 1 은 N 개의 부동 소수점 값 X1 내지 XN 의 누산을 위한 래치 (210) 의 출력, 다중화기 (212) 의 출력, 다중화기 (214) 의 출력, 및 후정렬 유닛 (260) 의 출력을 나타낸다. 래치 (210) 는 클록 사이클 1 내지 클록 사이클 N 각각에 대해 현재의 부동 소수점 값을 제공한다. 다중화기 (212) 는 클록 사이클 1 에 대해서는 제로를 제공하고, 클록 사이클 2 내지 클록 사이클 N 각각에 대해서는 이전의 부동 소수점 값을 제공한다. 다중화기 (214) 는 클록 사이클 1 및 클록 사이클 2 각각에 대해서는 제로를 제공하고, 클록 사이클 3 내지 클록 사이클 N 각각에 대해서는 이전의 누산된 값을 제공한다. 클록 사이클 3 및 그 이후에 있 어서, 후정렬 유닛 (260) 의 출력은 동일한 클록 사이클에서 다중화기 (214) 의 출력에 나타난다. 표 1 에서의 "-" 은 '상관 없음 (don't care)' 을 나타내고, 이는 임의의 값일 수도 있다.
Figure 112009005232791-PCT00005
도 2 및 표 1 에 나타낸 바와 같이, 부동 소수점 누산기 (200) 는 2 개의 클록 사이클의 지연을 갖는 파이프라인이다. 최종 출력 AN 은, 최종 부동 소수점 값 XN 을 부동 소수점 누산기 (200) 로 제공한 이후에 2 개의 클록 사이클에서 획득된다.
부동 소수점 누산기 (200) 는 2 개의 클록 사이클 이전으로부터의 누산된 결과 An-2 를 이용한다. 이는, 누산된 결과에 대한 신호 경로가 보다 작은 지연을 갖는 2 개의 세그먼트로 파티셔닝되는 것을 허용한다. 또한, 이 파티셔닝은, 부동 소수점 누산기 (200) 가 3-피연산자 가산기 (240) 를 사용하는 것을 야기하는데, 이 3-피연산자 가산기는 도 1 에서의 2-피연산자 가산기 (140) 보다 약간 긴 지연을 갖는다. 그럼에도 불구하고, 부동 소수점 누산기 (200) 는 보다 고속으로 동작할 수도 있다.
특정 실시예에 의해 클록 속도에서의 가능한 개선이 예시될 수도 있다. 이 실시예에 있어서, 부동 소수점 누산기 (100 및 200) 내에서, 다중화기 (112 및 214) 는 0.2 나노초 (㎱) 의 지연을 가질 수도 있고, 피연산자 정렬 유닛 (122 및 224) 은 1.0 ㎱ 의 지연을 가질 수도 있고, 2-피연산자 가산기 (140) 는 2.0 ㎱ 의 지연을 가질 수도 있고, 3-피연산자 가산기 (240) 는 2.4 ㎱ 의 지연을 가질 수도 있고, 후정렬 유닛 (160 및 260) 은 1.0 ㎱ 의 지연을 가질 수도 있다. 부동 소수점 누산기 (100) 에 있어서, An-1 에 대한 신호 경로는 4.2 ㎱ 의 총 지연을 갖고, 부동 소수점 누산기 (100) 는 최대 238 메가헤르츠 (㎒) 의 클록 속도로 동작할 수도 있다. 부동 소수점 누산기 (200) 에 있어서, 제 1 세그먼트의 지연은 2.2 ㎱ 이고, 제 2 세그먼트의 지연은 2.4 ㎱ 이다. 그러면, 부동 소수점 누산기 (200) 는 최대 416 ㎒ 의 클록 속도로 동작할 수도 있다. 개선량은 다른 디자인에 대해 상이할 가능성이 있다.
도 2 는 누산된 결과에 대한 제 3 신호 경로를 파티셔닝하는 특정 실시형태를 도시한 도면이다. 또한, 제 3 신호 경로는 다른 방식으로 파티셔닝될 수도 있다. 예를 들어, 래치 (250) 는 후정렬 유닛 (260) (앞 대신에) 뒤에 위치할 수도 있다. 그러면, 제 1 세그먼트는 다중화기 (214) 및 피연산자 정렬 유닛 (224) 을 포함하고, 제 2 세그먼트는 3-피연산자 가산기 (240) 및 후정렬 유닛 (260) 을 포함할 것이다. 일반적으로, 제 3 신호 경로는, 2 개의 세그먼트가 지연에 있어서 가능한 한 양호하게 매핑되도록 파티셔닝될 수도 있어, 2 개의 세그먼트의 지연들 사이의 차이는 가능한 한 작아진다.
도 3 은 2-스테이지 부동 소수점 누산기 (300) 의 일 실시형태의 블록도이다. 다중화기 (212 및 214) 를 제외하고, 부동 소수점 누산기 (300) 는 도 2 에서의 부동 소수점 누산기 (200) 의 유닛 모두를 포함한다. 래치 (230) 의 출력은 직접적으로 피연산자 정렬 유닛 (222) 으로 제공된다. 후정렬 유닛 (260) 의 출력은 직접적으로 피연산자 정렬 유닛 (224) 으로 제공된다. 래치 (230, 232, 234 및 250) 는, 누산이 시작되는 경우에 이들 래치를 제로로 리셋하는 리셋 신호를 수신한다. 이 실시형태는 다중화기 (212 및 214) 및 연관된 이들 다중화기의 지연을 제거하는데, 이는 부동 소수점 누산기 (300) 가 보다 높은 클록 속도로 동작하는 것을 허용할 수도 있다.
부동 소수점 누산은 다른 기능과 함께 수행될 수도 있다. 예를 들어, 승산 및 누산 (MAC) 연산이 각종 애플리케이션에 일반적으로 이용된다. 2 개의 스테이지에서의 승산 및 누산은:
Figure 112009005232791-PCT00006
Figure 112009005232791-PCT00007
와 같이 표현될 수도 있는데, 여기서 Yi = Ci·Di 이고, Ci 및 Di 는 승산 및 누산될 부동 소수점 피연산자의 i 번째 쌍이다.
[수학식 5] 는 다음과 같이 정정될 수도 있다:
Figure 112009005232791-PCT00008
.
도 4 는 MAC 유닛 (400) 의 일 실시형태의 블록도이다. MAC 유닛 (400) 은 2-피연산자 승산기 (208) 및 2-스테이지 부동 소수점 누산기 (200) 를 포함한다. 2-피연산자 승산기 (208) 는 승산 및 누산될 2 개의 피연산자를 수신하고, 이들 2 개의 피연산자를 승산하여, 그 결과를 래치 (210) 로 제공한다. 도 2 에 대해 전술한 바와 같이, 부동 소수점 누산기 (200) 는 래치 (210) 로부터의 결과에 대한 누산을 수행한다.
MAC 유닛 (400) 은 그래픽스, 디지털 신호 처리 등과 같은 각종 애플리케이션에 사용될 수도 있다. MAC 유닛 (400) 은,
Figure 112009005232791-PCT00009
와 같이, 부동 소수점 값의 2 개의 시퀀스
Figure 112009005232791-PCT00010
Figure 112009005232791-PCT00011
의 내적을 수행하는데 사용될 수도 있다. 내적은, 그래픽스에서 객체를 충돌시키기 위한 물리학 계산 (physics calculation), 상관, 필터링 등에 광범위하게 이용된다. 또한, 스칼라로 부동 소수점 값의 시퀀스를 스케일링하고, 스케일링된 값의 시퀀스를 누산하는데 MAC 유닛 (400) 이 사용될 수도 있다.
또한, 누산은 다른 기능과 협력하여 수행될 수도 있다. 예를 들어, 2-피연산자 승산기 (208) 는 스칼라 승산기, 가산기, 제산기, 초등 함수 (elementary function), 시프터 등으로 대체될 수도 있다.
또한, 부동 소수점 누산은 3 이상의 스테이지에서 수행될 수도 있다. 예를 들어, 3 개의 스테이지의 부동 소수점 누산은:
Figure 112009005232791-PCT00012
Figure 112009005232791-PCT00013
와 같이 표현될 수도 있는데, 여기서 X0 = X-1 = X-2 = 0 이다.
[수학식 7] 은 다음과 같이 정정될 수도 있는데:
Figure 112009005232791-PCT00014
Figure 112009005232791-PCT00015
이고, 여기서 A0 = A-1 = A-2 = 0 이다.
[수학식 7] 및 [수학식 8] 은 3 개의 클록 사이클 이전으로부터의 누산된 결과 An-3 을 이용한다. 이는, 누산된 결과에 대한 신호 경로가 보다 작은 지연을 갖는 3 개의 세그먼트로 파티셔닝되는 것을 허용한다. 예를 들어, 부가적인 래치가 도 2 에서의 후정렬 유닛 (260) 뒤에 삽입될 수도 있다. 그러면, 누산된 결과에 대한 제 3 신호 경로는 3 개의 세그먼트로 파티셔닝될 수도 있고, 부동 소수점 누산기는 더욱 더 높은 클록 속도로 동작할 수도 있다. 4-피연산자 가산기가 [수학식 8] 에서의 4 개의 피연산자를 합산하는데 사용될 수도 있다.
본 명세서에 기재된 멀티스테이지 부동 소수점 누산기는, 그래픽스 프로세서 (예를 들어, 쉐이더), 그래픽스 처리 유닛 (GPU), 디지털 신호 프로세서 (DSP), 축소 명령 집합 컴퓨터 (RISC), ARM (Advanced RISC Machine) 등과 같은 각종 타입의 프로세서에 사용될 수도 있다. 무선 디바이스 및 그래픽스 프로세서에 대한 멀티스테이지 부동 소수점 누산기의 예시적인 사용이 후술된다.
도 5 는 L 개의 그래픽스 애플리케이션/프로그램을 지원하는 그래픽스 프로세서 (500) 의 일 실시형태의 블록도이고, 일반적으로 L ≥ 1 이다. L 개의 그래픽스 애플리케이션은 비디오 게임, 그래픽스 등을 위한 것일 수도 있고, 동시에 실행될 수도 있다. 그래픽스 프로세서 (500) 는 쉐이더 코어 (502), 텍스처 엔진 (504), 및 캐시 메모리 시스템 (506) 을 포함한다. 쉐이더 코어 (502) 는 쉐이딩 (shading) 과 같은 그래픽스 연산을 수행할 수도 있는데, 쉐이딩은 라이팅 (lighting), 섀도잉 (shadowing) 을 수반한 매우 복잡한 그래픽스 연산이다. 텍스처 엔진 (504) 은 텍스처 매핑과 같은 그래픽스 연산을 수행할 수도 있다. 텍스처링은, 텍스처 테이블/이미지의 컬러로 이미지의 픽셀의 컬러를 변경함으로써 달성된다. 캐시 메모리 시스템 (506) 은 하나 이상의 캐시를 포함할 수도 있는데, 이 하나 이상의 캐시는 쉐이더 코어 (502) 및 텍스처 엔진 (504) 에 대한 명령들 및 데이터를 저장할 수 있는 고속 메모리이다.
쉐이더 코어 (502) 내에서, 다중화기 (510) 는 L 개의 그래픽스 애플리케이션으로부터 스레드를 수신하여, 이들 스레드를 스레드 스케줄러 (512) 로 제공한다. 스레드 스케줄러 (512) 는 각종 기능을 수행하여, 스레드의 실행을 스케줄링 및 관리한다. 명령 캐시 (514) 는 스레드에 대한 명령들을 저장한다. 이들 명령들은 각 스레드에 대해 수행될 특정 동작을 지시하고, 캐시 메모리 시스템 (506) 및/또는 메인 메모리로부터 로딩될 수도 있다. ALU (516) 는 산술 연산, 논리 연산, 포맷 변환 등을 수행한다. ALU (516) 는 하나 이상의 멀티스테이지 부동 소수점 누산기 (Acc) 를 구현할 수도 있다. 상수 버퍼 (518) 는 ALU (516) 에 의해 이용되는 상수값을 저장한다. 로드 제어 유닛 (520) 은 쉐이더 코어 (502) 내의 각종 유닛에 대한 명령들 및 데이터의 흐름을 제어한다. 출력 버퍼 (522) 는 ALU (516 및 544) 로부터의 중간 결과 및 최종 결과를 저장한다. 역다중화기 (Demux ; 524) 는 출력 버퍼 (522) 로부터의 실행된 스레드에 대한 최종 결과를 수신하여, 이들 결과를 그래픽스 애플리케이션으로 제공한다.
텍스처 엔진 (504) 내에서, 텍스처 어드레스 발생기 (540) 는 텍스처 엔진 (504) 에 의해 연산될 각 픽셀의 위치를 컴퓨팅한다. 텍스처 캐시 (542) 는 텍스처 엔진 (504) 에 대한 픽셀을 저장한다. ALU (544) 는 픽셀에 대한 계산을 수행하여 중간 결과를 제공하는데, 이 중간 결과는 출력 버퍼 (522) 에 저장될 수도 있다. 또한, ALU (544) 는 하나 이상의 멀티스테이지 부동 소수점 누산기를 구현할 수도 있다.
도 6 은 무선 통신 시스템에서의 무선 디바이스 (600) 의 일 실시형태의 블 록도이다. 무선 디바이스 (600) 는 셀룰러 전화기, 단말기, 핸드셋, PDA (Personal Digital Assistant), 또는 일부 다른 디바이스일 수도 있다. 무선 통신 시스템은 코드 분할 다중 접속 (CDMA) 시스템, GSM (Global System for Mobile Communications) 시스템, 또는 일부 다른 시스템일 수도 있다.
무선 디바이스 (600) 는 수신 경로 및 송신 경로를 통해 양방향 통신을 제공할 수 있다. 수신 경로 상에서, 기지국에 의해 송신된 신호는 안테나 (612) 에 의해 수신되어, 수신기 (RCVR ; 614) 로 제공된다. 수신기 (614) 는 수신된 신호를 컨디셔닝 및 디지털화하여, 샘플을 추가 처리를 위해 디지털 섹션 (620) 으로 제공한다. 송신 경로 상에서, 송신기 (TMTR ; 616) 는 디지털 섹션 (620) 으로부터 송신될 데이터를 수신하고, 이 데이터를 처리 및 컨디셔닝하여, 변조된 신호를 발생시키는데, 이 변조된 신호는 안테나 (612) 를 통해 기지국으로 송신된다.
디지털 섹션 (620) 은, 예를 들어 모뎀 프로세서 (622), 비디오 프로세서 (624), 제어기/프로세서 (626), 디스플레이 프로세서 (628), ARM/DSP (632), 그래픽스 프로세서 (634), 내부 메모리 (636), 및 외부 버스 인터페이스 (EBI ; 638) 와 같은 각종 처리 유닛, 인터페이스 유닛, 및 메모리 유닛을 포함한다. 모뎀 프로세서 (622) 는 데이터 송신 및 수신을 위한 처리 (예를 들어, 인코딩, 변조, 복조, 및 디코딩) 를 수행한다. 비디오 프로세서 (624) 는, 비디오 콘텐츠 (예를 들어, 정지 이미지, 동영상 (moving video), 및 무빙 텍스트 (moving text)) 에 대해 캠코더, 비디오 재생, 및 화상 회의와 같은 비디오 애플리케이션을 위한 처리를 수행한다. 제어기/프로세서 (626) 는 디지털 섹션 (620) 내의 각종 처리 유 닛 및 인터페이스 유닛의 동작을 지시할 수도 있다. 디스플레이 프로세서 (628) 는, 디스플레이 유닛 (630) 상의 비디오, 그래픽스 및 텍스트의 디스플레이를 용이하게 하는 처리를 수행한다.
ARM/DSP (632) 는 무선 디바이스 (600) 를 위한 각종 타입의 처리를 수행할 수도 있다. 그래픽스 프로세서 (634) 는 그래픽스 처리를 수행한다. 프로세서 (622 내지 634) 각각은 하나 이상의 멀티스테이지 부동 소수점 누산기를 구현할 수도 있다. 내부 메모리 (636) 는 디지털 섹션 (620) 내의 각종 유닛에 대한 명령들 및/또는 데이터를 저장한다. EBI (638) 는 디지털 섹션 (620) (예를 들어, 내부 메모리 (636)) 과 메인 메모리 (640) 사이의 데이터 전송을 용이하게 한다.
디지털 섹션 (620) 은 하나 이상의 DSP, 마이크로프로세서, RISC 등으로 구현될 수도 있다. 또한, 디지털 섹션 (620) 은 하나 이상의 주문형 집적 회로 (ASIC) 또는 일부 다른 타입의 집적 회로 (IC) 상에 제조될 수도 있다.
본 명세서에 기재된 멀티스테이지 부동 소수점 누산기는 각종 하드웨어 유닛으로 구현될 수도 있다. 예를 들어, 부동 소수점 누산기는, ASIC, DSP, 디지털 신호 처리 디바이스 (DSPD), 프로그래머블 논리 디바이스 (PLD), 필드 프로그래머블 게이트 어레이 (FPGA), 프로세서, 제어기, 마이크로제어기, 마이크로프로세서, 전자 디바이스, 및 다른 전자 유닛으로 구현될 수도 있다.
개시된 실시형태의 전술한 설명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 개시물을 실시 또는 이용할 수 있도록 제공된다. 이들 실 시형태에 대한 각종 변형은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명하고, 본 명세서에 정의된 일반적인 원리는 본 개시물의 사상 또는 범위를 벗어나지 않으면서 다른 실시형태에 적용될 수도 있다. 따라서, 본 개시물은 본 명세서에 제시된 실시형태에 제한되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 신규 특징 및 원리에 부합하는 가장 광범위한 범위를 따르는 것이다.

Claims (23)

  1. 복수의 부동 소수점 값들에 대한 누산을 수행하도록 동작하며 적어도 2 개의 스테이지들을 포함하는 부동 소수점 누산기를 포함하고,
    각 스테이지는 상기 스테이지에 대한 적어도 하나의 결과를 저장하도록 동작하는 적어도 하나의 래치를 포함하는, 프로세서.
  2. 제 1 항에 있어서,
    상기 부동 소수점 누산기는, 적어도 2 개의 클록 사이클들 이전으로부터의 누산된 결과들을 이용하여 누산을 수행하도록 동작하는, 프로세서.
  3. 제 1 항에 있어서,
    상기 부동 소수점 누산기는 2 개의 스테이지들을 갖는 파이프라인이고, 2 개의 클록 사이클들의 지연을 갖는, 프로세서.
  4. 제 1 항에 있어서,
    상기 부동 소수점 누산기는,
    현재의 부동 소수점 값에 대한 제 1 피연산자 정렬 유닛,
    이전의 부동 소수점 값에 대한 제 2 피연산자 정렬 유닛, 및
    이전의 누산된 값에 대한 제 3 피연산자 정렬 유닛을 포함하는, 프로세서.
  5. 제 4 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 제 2 피연산자 정렬 유닛으로 제로 또는 상기 이전의 부동 소수점 값을 제공하도록 동작하는 제 1 다중화기, 및
    상기 제 3 피연산자 정렬 유닛으로 제로 또는 상기 이전의 누산된 값을 제공하도록 동작하는 제 2 다중화기를 더 포함하는, 프로세서.
  6. 제 4 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 제 1 피연산자 정렬 유닛, 상기 제 2 피연산자 정렬 유닛 및 상기 제 3 피연산자 정렬 유닛에 각각 연결된 제 1 래치, 제 2 래치 및 제 3 래치를 더 포함하는, 프로세서.
  7. 제 4 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 제 1 피연산자 정렬 유닛, 상기 제 2 피연산자 정렬 유닛 및 상기 제 3 피연산자 정렬 유닛에 의해 발생된 피연산자들을 합산하도록 동작하는 3-피연산자 가산기를 더 포함하는, 프로세서.
  8. 제 1 항에 있어서,
    상기 부동 소수점 누산기는,
    현재의 부동 소수점 값, 이전의 부동 소수점 값, 및 이전의 누산된 값을 합산하도록 동작하는 3-피연산자 가산기를 더 포함하는, 프로세서.
  9. 제 8 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 3-피연산자 가산기에 연결된 래치, 및
    상기 래치에 연결된 후정렬 (post alignment) 유닛을 더 포함하는, 프로세서.
  10. 제 1 항에 있어서,
    입력 피연산자들을 승산하여, 상기 부동 소수점 누산기로 상기 복수의 부동 소수점 값들을 제공하도록 동작하는 승산기를 더 포함하는, 프로세서.
  11. 제 10 항에 있어서,
    상기 승산기 및 상기 부동 소수점 누산기는, 피연산자들의 2 개의 시퀀스를 승산 및 누산하도록 동작하는, 프로세서.
  12. 복수의 부동 소수점 값들에 대한 누산을 수행하도록 동작하며 적어도 2 개의 스테이지들을 포함하는 부동 소수점 누산기를 포함하고,
    각 스테이지는 상기 스테이지에 대한 적어도 하나의 결과를 저장하도록 동작하는 적어도 하나의 래치를 포함하는, 집적 회로.
  13. 제 12 항에 있어서,
    상기 부동 소수점 누산기는, 적어도 2 개의 클록 사이클들 이전으로부터의 누산된 결과들을 이용하여 누산을 수행하도록 동작하는, 집적 회로.
  14. 제 12 항에 있어서,
    상기 부동 소수점 누산기는,
    현재의 부동 소수점 값에 대한 제 1 피연산자 정렬 유닛,
    이전의 부동 소수점 값에 대한 제 2 피연산자 정렬 유닛, 및
    이전의 누산된 값에 대한 제 3 피연산자 정렬 유닛을 포함하는, 집적 회로.
  15. 제 14 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 제 1 피연산자 정렬 유닛, 상기 제 2 피연산자 정렬 유닛 및 상기 제 3 피연산자 정렬 유닛에 의해 발생된 피연산자들을 합산하도록 동작하는 3-피연산자 가산기를 더 포함하는, 집적 회로.
  16. 제 15 항에 있어서,
    상기 부동 소수점 누산기는,
    상기 3-피연산자 가산기에 연결된 제 4 래치, 및
    상기 제 4 래치에 연결된 후정렬 (post alignment) 유닛을 더 포함하는, 집적 회로.
  17. 제 12 항에 있어서,
    입력 피연산자들을 승산하여, 상기 부동 소수점 누산기로 상기 복수의 부동 소수점 값들을 제공하도록 동작하는 승산기를 더 포함하는, 집적 회로.
  18. 적어도 하나의 산술 논리 유닛 (ALU) 으로서, 각 ALU 는, 복수의 부동 소수점 값들에 대한 누산을 수행하도록 동작하며 적어도 2 개의 스테이지들을 포함하는 부동 소수점 누산기를 포함하는, 상기 적어도 하나의 ALU; 및
    상기 ALU 에 연결된 메모리를 포함하는, 그래픽스 프로세서.
  19. 제 18 항에 있어서,
    상기 부동 소수점 누산기는,
    현재의 부동 소수점 값에 대한 제 1 피연산자 정렬 유닛,
    이전의 부동 소수점 값에 대한 제 2 피연산자 정렬 유닛,
    이전의 누산된 값에 대한 제 3 피연산자 정렬 유닛, 및
    상기 제 1 피연산자 정렬 유닛, 상기 제 2 피연산자 정렬 유닛 및 상기 제 3 피연산자 정렬 유닛에 의해 발생된 피연산자들을 합산하도록 동작하는 3-피연산자 가산기를 포함하는, 그래픽스 프로세서.
  20. 제 18 항에 있어서,
    각 ALU 는,
    입력 피연산자들을 승산하여, 상기 부동 소수점 누산기로 상기 복수의 부동 소수점 값들을 제공하도록 동작하는 승산기를 더 포함하는, 그래픽스 프로세서.
  21. 제 18 항에 있어서,
    그래픽스 연산들을 수행하도록 동작하며 제 1 ALU 를 포함하는 쉐이더 코어를 더 포함하는, 그래픽스 프로세서.
  22. 제 21 항에 있어서,
    텍스처 매핑을 수행하도록 동작하며 제 2 ALU 를 포함하는 텍스처 엔진을 더 포함하는, 그래픽스 프로세서.
  23. 복수의 부동 소수점 값들에 대한 누산을 수행하도록 동작하며 적어도 2 개의 스테이지들을 포함하는 부동 소수점 누산기를 포함하는 그래픽스 프로세서; 및
    상기 그래픽스 프로세서에 연결된 메모리를 포함하는, 무선 디바이스.
KR1020097001736A 2006-08-18 2007-08-17 멀티스테이지 부동 소수점 누산기 KR101085810B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/506,349 US7543013B2 (en) 2006-08-18 2006-08-18 Multi-stage floating-point accumulator
US11/506,349 2006-08-18
PCT/US2007/076242 WO2008022331A2 (en) 2006-08-18 2007-08-17 Multi-stage floating-point accumulator

Publications (2)

Publication Number Publication Date
KR20090031594A true KR20090031594A (ko) 2009-03-26
KR101085810B1 KR101085810B1 (ko) 2011-11-22

Family

ID=39083186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097001736A KR101085810B1 (ko) 2006-08-18 2007-08-17 멀티스테이지 부동 소수점 누산기

Country Status (8)

Country Link
US (1) US7543013B2 (ko)
EP (1) EP2057535B1 (ko)
JP (1) JP5086348B2 (ko)
KR (1) KR101085810B1 (ko)
CN (1) CN101506771B (ko)
AT (1) ATE487981T1 (ko)
DE (1) DE602007010468D1 (ko)
WO (1) WO2008022331A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063077A (ko) * 2018-11-26 2020-06-04 쥐에스아이 테크놀로지 인코포레이티드 대규모 병렬 연관된 승산기-누산기

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847087B (zh) * 2010-04-28 2012-03-28 中国科学院自动化研究所 一种支持定浮点可重构的横向求和网络结构
CN102445606A (zh) * 2010-09-30 2012-05-09 上海华建电力设备股份有限公司 电力监测终端的功能优化方法
CN102033732B (zh) * 2010-12-17 2012-07-18 浙江大学 基于fpga的高速低延迟浮点累加器及其实现方法
CN103176767B (zh) * 2013-03-01 2016-08-03 浙江大学 一种低功耗高吞吐的浮点数乘累加单元的实现方法
US9575725B1 (en) 2014-03-18 2017-02-21 Altera Corporation Specialized processing block with embedded pipelined accumulator circuitry
CN106503796B (zh) * 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 多运算神经网络单元
CN107305485B (zh) * 2016-04-25 2021-06-08 中科寒武纪科技股份有限公司 一种用于执行多个浮点数相加的装置及方法
CN111221496B (zh) * 2018-11-26 2023-06-13 北京华航无线电测量研究所 一种使用fpga实现浮点数据累加的方法
US11188329B1 (en) * 2020-06-24 2021-11-30 Micron Technology, Inc. Dynamic precision bit string accumulation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866652A (en) 1987-09-01 1989-09-12 Weitek Corporation Floating point unit using combined multiply and ALU functions
US4841467A (en) * 1987-10-05 1989-06-20 General Electric Company Architecture to implement floating point multiply/accumulate operations
JP2693800B2 (ja) 1988-12-28 1997-12-24 甲府日本電気株式会社 浮動小数点データ総和演算回路
JPH03163662A (ja) * 1989-11-21 1991-07-15 Mitsubishi Electric Corp 浮動小数点累算器
JPH04151729A (ja) * 1990-09-10 1992-05-25 Mitsubishi Electric Corp 浮動小数点累算器
JPH05197741A (ja) * 1991-06-06 1993-08-06 Lsi Logic Corp インターリーブド乗算器累算器
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
GB2409074B (en) 2001-03-14 2005-08-03 Micron Technology Inc Arithmetic pipeline
US7080111B2 (en) * 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US20030154227A1 (en) 2002-02-08 2003-08-14 Intel Corporation Multi-threaded multiply accumulator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063077A (ko) * 2018-11-26 2020-06-04 쥐에스아이 테크놀로지 인코포레이티드 대규모 병렬 연관된 승산기-누산기

Also Published As

Publication number Publication date
WO2008022331A3 (en) 2008-05-22
WO2008022331A2 (en) 2008-02-21
US7543013B2 (en) 2009-06-02
CN101506771A (zh) 2009-08-12
EP2057535A2 (en) 2009-05-13
JP2010501938A (ja) 2010-01-21
JP5086348B2 (ja) 2012-11-28
ATE487981T1 (de) 2010-11-15
EP2057535B1 (en) 2010-11-10
US20080046495A1 (en) 2008-02-21
CN101506771B (zh) 2013-01-02
KR101085810B1 (ko) 2011-11-22
DE602007010468D1 (de) 2010-12-23

Similar Documents

Publication Publication Date Title
KR101085810B1 (ko) 멀티스테이지 부동 소수점 누산기
KR101566257B1 (ko) 입력 데이터 값에 따른 결합형 곱셈-덧셈 (fma) 유닛의 전력 소모 절감
US8106914B2 (en) Fused multiply-add functional unit
JP5089776B2 (ja) 浮動小数点演算のための再構成アレイプロセッサ
US5844830A (en) Executing computer instrucrions by circuits having different latencies
KR100955557B1 (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
US7797363B2 (en) Processor having parallel vector multiply and reduce operations with sequential semantics
US6487575B1 (en) Early completion of iterative division
US8046564B2 (en) Reconfigurable paired processing element array configured with context generated each cycle by FSM controller for multi-cycle floating point operation
US8930433B2 (en) Systems and methods for a floating-point multiplication and accumulation unit using a partial-product multiplier in digital signal processors
CN102576302B (zh) 微处理器及用于微处理器上增强精确度乘积和计算的方法
EP0877315A2 (en) Data processing circuit
WO2000045253A1 (en) Division unit in a processor using a piece-wise quadratic approximation technique
WO2000011546A1 (en) Method and apparatus for concurrently executing multiplication and iterative operations
Hamid et al. Design of generic floating point multiplier and adder/subtractor units
US5805489A (en) Digital microprocessor device having variable-delay division hardware
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
Hsiao et al. Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system
EP1237070A2 (en) Denormalization circuit
Kumar et al. FPGA Based Implementation of Pipelined 32-bit RISC Processor with Floating Point Unit
Saini et al. Efficient implementation of pipelined double precision floating point unit on FPGA
WO1998006029A1 (en) Apparatus and methods for execution of computer instructions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee