KR101603471B1 - 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 - Google Patents

디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101603471B1
KR101603471B1 KR1020147032167A KR20147032167A KR101603471B1 KR 101603471 B1 KR101603471 B1 KR 101603471B1 KR 1020147032167 A KR1020147032167 A KR 1020147032167A KR 20147032167 A KR20147032167 A KR 20147032167A KR 101603471 B1 KR101603471 B1 KR 101603471B1
Authority
KR
South Korea
Prior art keywords
product
input
mantissa
sorted
false
Prior art date
Application number
KR1020147032167A
Other languages
English (en)
Other versions
KR20150003338A (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 KR20150003338A publication Critical patent/KR20150003338A/ko
Application granted granted Critical
Publication of KR101603471B1 publication Critical patent/KR101603471B1/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/4806Computations with complex numbers
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • 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/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

부동 소수점 복소수 승산 누산의 디지털 계산을 위한 방법 및 관련 장치의 실시예가 제공된다. 방법은 입력 가수, 제1 곱 및 제2 곱을 수신하는 단계를 포함한다. 입력 가수, 제1 곱 및 제2 곱은 각각 각자의 거짓수 및 지수를 갖는다. 방법은 입력 가수, 제1 곱 및 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해, 입력 가수, 제1 곱 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하는 단계, 및 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 단계를 포함한다.

Description

디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법{SYSTEM AND METHOD FOR SIGNAL PROCESSING IN DIGITAL SIGNAL PROCESSORS}
삭제
본 발명은 일반적으로 디지털 계산을 위한 시스템 및 방법에 관한 것이며, 보다 상세하게는 디지털 신호 프로세서(digital signal processor) 또는 하드웨어 가속기(hardware accelerator)와 같은 시스템에서의 부동 소수점 복소수 승산 누산 유닛(floating-point complex multiply-add unit)을 구축하기 위한 시스템 및 방법에 관한 것이다.
가산기들(adders) 및 승산기들(multipliers)은 마이크로프로세서들, 디지털 신호 프로세서들(DSP들), 산술논리 연산장치들(ALU들), 하드웨어 가속기들(HAC들), 기타 등등과 같은 디지털 프로세서들에서 기초 디지털 수치 연산들을 수행하는 논리 소자들이다. 그와 같은 디바이스들의 전반적 성능은 이것을 구성하는 논리 소자들의 속도와 에너지 효율성에 일반적으로 의존한다. 가산기들, 승산기들, 및 기타 논리 소자들은 이들의 복잡도를 본질적으로 증가시키는 부동 소수점 계산들을 수행하도록 일반적으로 요구 받는다. 마이크로프로세서들, DSP들, 기타 등등의 비용은 이들이 그로부터 형성되는 논리 소자들을 구현하는 데에 요구되는 실리콘 면적에 실질적으로 비례한다. 그러므로, 가산기들, 승산기들, 기타 등등의 설계는 최종 제품을 위한 경쟁력 있는 설계를 제공하는데 있어서 중요한 고려 사항이 되고, 구현에 요구되는 실리콘 면적의 축소 및 효율성의 어떤 개선이라도 시장 수용성에 실질적인 영향을 미칠 수 있다.
불필요한 비용을 초래하지 않고서 ALU들, HAC들, 기타 등등을 구현하는 데에 요구되는 실리콘 면적을 감소시키며 성능을 개선하는 능력은 중요한 시장 필요를 충족시킬 것이다.
제1 복소수 피승수(first complex multiplicand), 제2 복소수 피승수, 및 복소수 가수(複素數 加數:complex addend)로부터의 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부 및 허수부를 계산하기 위한 시스템 및 방법을 제공하는 본 발명의 실시예들에 의해 기술적 장점들이 일반적으로 달성된다.
예시적 실시예에 따라서, 부동 소수점 복소수 승산 누산의 디지털 계산을 위한 방법 및 관련 장치가 제공된다. 방법은 입력 가수, 제1 곱(first product), 및 제2 곱을 수신하는 단계를 포함한다. 입력 가수, 제1 곱, 및 제2 곱 각각은 제각기 거짓수(假數:mantissa) 및 지수(exponent)를 갖는다. 방법은 입력 가수, 제1 곱 및 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수를 시프팅하는 단계, 및 정렬된 입력 가수, 정렬된 제1 곱, 및 정렬된 제2 곱을 더하는 단계를 포함한다.
본 발명 및 이것의 장점에 대한 더 철저한 이해를 도모하기 위해, 첨부 도면과 연계하여 취해지는 하기 설명에 대한 참조가 이제 이루어진다.
도 1 및 도 2는 실시예에 따라서 합산된 항들의 거짓수들의 정렬 및 끊음(truncation)의 그래픽 표현들을 도해한다;
도 3은 실시예에 따라서, 복소수 A=B + C×D의 허수부를 계산하도록 구성되는 복소수 부동 소수점 승산 누산 유닛의 블록도를 도해한다;
도 4는 실시예에 따라서, 복소수 A=B + C×D의 실수부를 계산하도록 구성되는 복소수 부동 소수점 승산 누산 유닛의 블록도를 도해한다;
도 5는 실시예에 따라서, 여기서 논의되는 처리들 중 하나 이상을 수행하는데 사용될 수 있는 처리 시스템의 요소들의 블록도를 도해한다; 및
도 6a 및 도 6b는 실시예에 따른 통신 시스템의 기저대역 시그널링 프로세스의 블록도를 도해한다.
본 양호한 실시예들의 구성 및 사용이 하기에서 상세히 논의된다. 그러나, 본 발명은 매우 다양한 특정 맥락들로 구체화될 수 있는 다수의 적용 가능한 발명 개념을 제공한다는 것을 알아야 한다. 논의되는 특정 실시예들은 본 발명을 구성하고 이용하기 위한 특정 방식들의 예에 지나지 않으며, 본 발명의 범위를 제한하는 것은 아니다.
FLP(floating-point) CMAD(complex multiply-add) 연산을 수행하는 디바이스는 그래픽 처리 시스템, 레이더 시스템 및 통신 시스템과 같은 디지털 시스템들의 신호 처리에서 가장 빈번하게 사용되는 연산들 중 하나를 수행한다. CMAD 연산의 에너지 효율성을 증진시키고 향상시키는 것은 DSP 또는 기타 디지털 디바이스의 성능을 크게 개선할 수 있다.
복소수들에 대한 산술 연산들은 더욱 추가적 도전들을 제기한다. 그와 같은 복소수 연산들은 일반적으로 각각의 항의 실수부 및 허수부에 대해 개별적으로 수행된다. 그 구현을 위해 상당한 양의 실리콘 면적을 소모하고 또한 그 실행을 위해 상당한 양의 시간을 요구하는 상당한 양의 처리를 수행해야만 한다.
본 명세서에 도입된 것처럼, 디지털 처리 유닛의 실시예는 DSP, 하드웨어 가속기, 기타 등등에서의 부동 소수점 복소수 승산 누산 처리를 위한 고속 알고리즘을 구현한다.
실시예에서, 복소수들에 대한 산술 연산들을 수행하기 위하여 요구되는 대기 시간 및 에너지는 감소된다. 입력 데이터 및 중간 계산 결과들의 특징(characteristic)들은 부동 소수점 복소수 승산 누산 연산을 효율적으로 실행할 수 있는 DSP 또는 기타 산술 디바이스를 제조하기 위해 사용된다.
부동 소수점 복소수 승산 누산 유닛은 수학식
A=B + C×D
를 실행하는데, 여기서 항들 A, B, C 및 D는 부동 소수점 복소수들이고, 이것의 각각의 성분은 부호 비트, 지수 비트들, 및 거짓수 비트들을 가진 디지털 부동 소수점 포맷으로 일반적으로 표현된다. 항 B는 가수이고, 항들 C 및 D는 제각기 제1 및 제2 피승수들이다. 항 A는 복소수 부동 소수점 승산 누산 결과이다. 복소수의 한 예로서 실수가 본 발명의 실시예들에서 논의되는 복소수 연산에 따라서 또한 처리될 수 있다는 것을 유의해야 한다.
본 발명의 실시예에 따라서, 표준 부동 소수점 승산 연산과 이에 이어지는 표준 부동 소수점 가산 연산을 갖는 부동 소수점 CMAD 연산을 구현하는 것은 필요하지 않다. 통신 시스템을 예로 들어 보면, CMAD 계산은, 예를 들어 LTE(Long-Term Evolution), UMTS(Universal Mobile Telecommunications System), 및 GSM(Global System for Mobile Communications) 셀 방식 규격들 하에서 동작하도록 설계된 통신 시스템들에서 사용되는 것과 같은, 기저대역 응용의 정밀도 요건을 충족하도록 단순화될 수 있다.
복소수 승산 및 가산을 하나의 처리가 되도록 조합하는 것은 논리 회로가 더 작은 처리 대기 시간과 더 높은 전력 효율성을 위해 단일 프로세서 내에 최적화되도록 하기 위한 실질적 기회를 허용한다. 예를 들면, 중복성들(redundancies)이 논리 회로에서 제거될 수 있고, 계산 단계들은 합쳐질 수 있고, 캐리 세이브 가산기들(carry-save adders)이 이용될 수 있다.
상기 예시된 부동 소수점 복소수 승산 누산 수학식을 실수부 및 허수부(즉, A.real 및 A.imaginary)가 되도록 분해하는 것은 두 개의 수학식을 산출한다:
A.real=B.real+C.real×D.real-C.imaginary×D.imaginary
A.imaginary=B.imaginary+C.real×D.imaginary+C.imaginary×D.real
이것들 각각은 실시예에서 실수 산술(real arithmetic)을 수행하는 디지털 논리 회로에 의해 각각 구현될 수 있다. A.real에 대한 수학식 결과는 한 실수에 두 개의 실수의 곱을 더하고 이것에서 두 개의 실수의 곱을 뺀 값이다. A.imaginary에 대한 수학식 결과는 한 실수에 두 개의 실수의 곱을 더한 것에 두 개의 추가 실수의 곱을 더한 값이다. 각각의 수학식은 실수 가수 및 실수 곱의 합 및 실수 곱의 가산 또는 감산 중 어느 하나를 포함한다. 입력 가수와 두 개의 실수 곱 중에서, 더 작은 지수들을 가진 2개의 수의 거짓수들은 최대 지수를 가진 제3 수의 거짓수와 정렬하도록 시프팅된다. 3개의 거짓수의 합은 캐리 세이브 가산기와 이것에 이어지는 2입력 전 가산기(two-input full adder)에 의해 계산된다.
두 개의 곱과 입력 가수의 거짓수들은 이들의 지수들에 따라 정렬되고 또한 이들의 거짓수들에 따라 끊어져서(truncated) 만약 존재한다면 불필요하게 정확한 저 차수 비트들(low-order bits)을 떨궈 버리게 된다. 2개의 끊어진 곱은 이후 끊어진 입력 가수에 가산되고 및/또는 입력 가수로부터 감산된다.
가산기들의 비트 폭은 응용의 정밀도 요건들에 따라 결정된다. 끊음(truncation)에 의해 초래되는 정밀도 손실은 가산기들의 비트 폭을 약간 증가시킴으로써 부분적으로 보상될 수 있다. 거짓수들의 두 개의 곱의 정규화는 처리 회로 및 처리 시간을 절감하기 위해 (가산기 비트 폭에 또 하나의 비트를 더함으로써) 회피될 수 있다. CMAD의 가수의 이용은 소프트웨어 파이프라이닝(software pipelining)의 개시 구간을 감소시키기 위해 그 후의 파이프라인 단까지 연기될 수 있다.
도 1 및 도 2로 이제 돌아가면, 실시예에 따라, 합산될 3개 항의 3개의 예시적 거짓수(101, 102, 및 103)의 정렬 및 끊음의 그래픽 표현들이 도해된다. 특히, 도 1은 정렬 전의 3개의 예시적 거짓수(101, 102 및 103)를 도해하고, 도 2는 정렬 후의 3개의 예시적 거짓수(101, 102 및 103)를 도해한다.
도 1 및 도 2에 도해된 끊음 예에서, 부동 소수점 입력 이진 실수는 부호 비트, 5 지수 비트, 및 10 거짓수 비트로서 표현된다. 입력 거짓수들은 숨겨진 "1" 비트가 선행하는 것으로 상정된다. 그에 따라서, 각각의 거짓수는 형태 "1.xxxxxxxxxx"의 11 비트, 즉 숨겨진 비트 "1"에 이어지는 기수점(radix point) 이후의 10 거짓수 비트인 것으로 상정된다. 따라서, 각각의 입력 거짓수는 범위 1 ≤ 거짓수 < 2에 정규화된다. 11 비트 거짓수들의 직접 승산(straightforward multiplication)은 통상적으로는 22 비트까지의 거짓수 곱을 산출하는데, 이것은 대다수의 응용들에서 저 차수 비트들에서의 불필요한 정밀도를 포함한다.
도 1 및 도 2에 예시된 표기는 A.real 및 A.imaginary에 대한 상기 실수 및 허수 수학식들의 표기를 따르면서,
Mbi는 B.imaginary의 거짓수이고,
Mri는 C.real 및 D.imaginary의 거짓수 곱이고, 및
Mir는 C.imaginary 및 D.real의 거짓수 곱인 추가 파라미터들을 갖는다.
도 1 및 도 2의 예에서, (C.real×D.imaginary)가 최대 지수를 갖는 것으로 상정된다. 그러면, 정렬을 위한 Mbi 및 Mir의 각자의 시프팅 거리들은 아래와 같다:
ΔErib=exp(C.real)+exp(D.imaginary)-exp(B.real), 및
ΔEriir=exp(C.real)+exp(D.imaginary)-(exp(C.imaginary)+exp(D.real))
처리의 목적은 합산된 항들의 모든 지수들이 최대 지수와 동일하도록 설정하는 것이다. 이것은 기수점(110)이 지수들을 정렬한 후의 각각의 성분에 대해 동일한 것을 낳는다.
기수점들을 정렬한 후의 3개의 거짓수(101, 102, 및 103)는, 도 1 및 도 2에서 비트 "1"에 의해 식별되는 선두 부호 비트, 이것에 이어져서 3개 항의 덧셈에 의해 산출되는 가능한 캐리들을 수용하기 위한 것으로서 비트들 "2" 및 "3"에 의해 식별되는 두 개의 비트, 이것에 이어져서 곱들의 정수부를 수용하기 위한 두 개의 추가 비트 "4" 및 "5"에 의해 표현되는 것으로 상정된다. 5개의 선두 비트에 이어져서, 필요한 정밀도를 유지하기 위한 14개의 분수 비트(fractional bit)가 따라온다. 끊어진 비트들(120)은 이들이 최종 응용의 요건들을 조사함으로써 결정될 수 있는 불필요한 정밀도 레벨을 나타내기 때문에 무시된다.
이 예에서, 6 비트가 19 비트 거짓수를 산출하기 위해 최대 지수를 가진 항으로부터 끊어진다. 거짓수들(102, 103)로부터의 비트들의 끊음도 상응하여 두 개의 19 비트 거짓수를 산출하도록 이루어진다. 3개의 결과적 끊어진 거짓수는, 이 예에서, 19 비트 가산기에 의해 더해질 수 있다.
처음의 도 1을 참조하면, 본 발명의 실시예에 따라서, 거짓수(102)를 거짓수(101)와 정렬하기 위해, (정렬 후의) 거짓수(102)의 비트 "4"는 12 비트 거짓수를 산출하기 위해 "0" 비트로 채워지고, 결과로 생기는 12 비트 거짓수(102)는 비트 거리 ΔErib 만큼 우측 시프팅되어 거짓수(102)의 전체 비트 길이가 정렬 후에 (ΔEr ib + 12)가 되도록 하는데, 이는 ΔErib + (Mbi의 최초 11비트) + (비트 "4"에서의 더해진 "0"의 1 비트)이다.
거짓수(101)는, 정밀도 요건에 따라 바라는 대로, 16 비트에 끊어지고, 거짓수(102)는 거짓수(102)의 끊어진 부분이 (ΔErib + 12 - 16), 즉 (ΔErib - 4)가 되도록 상응하여 끊어진다.
도 3 및 도 4로 이제 돌아가 보면, 실시예에 따라서, 복소수 부동 소수점 승산 누산 유닛을 사용하여 A=B + C×D의 허수부 A.imaginary 및 실수부 A.real의 계산을 하기 위한 논리 이진 처리들의 배열 및 상호 연결을 제각기 보여주는 블록도가 도해된다. 입력들 C.r.s, C.i.s, D.r.s, D.i.s, B.r.s, 및 B.i.s는 제각기 항 및 인자들 C, D, 및 B의 실수 및 허수 부호 비트들을 나타낸다. 입력들 C.r.e, C.i.e, D.r.e, D.i.e, B.r.e, 및 B.i.e는 제각기 항 및 인자들 C, D, 및 B의 실수 및 허수 지수 비트들을 나타낸다. 입력들 B.r.m, B.i.m, C.r.m, C.i.m, D.r.m, 및 D.i.m은 제각기 항 및 인자들 B, C, 및 D의 실수 및 허수 거짓수 비트들을 나타낸다. 거짓수 입력들은 승산기들(305 및 306)에 결합되고, 승산기들은 2+20 비트 곱들(307, 308)을 산출한다. 승산기들(305, 306)에 의해 산출되는 곱들(307, 308)은 정규화되지 않는데, 즉 승산에 의해 산출되는 기수점의 위치는 몇몇 처리 회로 및 시간을 절감하기 위해 곱의 기수점의 정규화 없이 유지된다. 입력들의 지수 비트들은 가산기들(310 및 311)에 결합되고, 이것들의 출력들 및 입력 B.i.e의 지수 비트들은 기수들(radices)의 정렬을 위해 필요한 시프트를 결정하는 지수들 최대 및 차이들 블록(exponents maximum and differences block)(315)에 결합된다. 지수들 최대 및 차이들 블록(315)의 출력들은 기수들의 정렬을 달성하기 위해 입력 데이터를 시프팅하는 시프트 레지스터들(320, 321, 및 322)에 결합된다. 시프트 레지스터들(320, 321, 및 322)과 결합하여 지수들 최대 및 차이들 블록(315)에 의해 실행되는 정렬은 도 1을 참조해 앞에서 예시하고 기술한 처리에 따라 동작한다.
시프트 레지스터들의 출력들은 가수의 시프팅된 거짓수 및 시프팅된 2+20 비트 곱들의 2의 보수 표현들을 형성하고 또한 2의 보수 산술을 이용하는 계산을 실행하는데 사용되는 비트 인버터들을 포함하는 두 개의 경로(330, 331)에 결합된다. 실시예에서, 2의 보수 산술을 사용하는 것은 필요하지 않다. 2개의 경로(330, 331)는 결과로 생기는 덧셈의 부호가 아직 알려지지 않았기 때문에 제공된다. 합의 절대 값의 계산에 앞서서 경로들(330, 331)에서의 합과 병렬로 음의 합을 계산하는 것이 선행한다. 비트 인버터들은 비트 인버터 제어 블록(335)에 의해 제어되는데, 비트 인버터 제어 블록의 입력들은 배타적 논리합된(exclusively-ORed) 부호 비트들 C.r.s^D.i.s 및 C.i.s^D.r.s와 가수 B의 실수부의 부호 비트 B.r.s이다. 좌측 경로(330)는 덧셈의 양의 결과를 상정하고, 우측 경로(331)는 음의 결과를 상정한다. 각각의 제각기 경로에서의 덧셈은 캐리 세이브 가산기(340, 341), 이에 뒤이어서 (2의 보수 계산을 위한) 조절 비트들을 캐리 세이브 가산기의 2개 출력과 조합하는 것(345, 346), 및 추가로 이어지는 캐리 예측 가산기(carry-look-ahead adder)(360, 361)에 의해 실행된다. 조절 비트들은 CMAD 연산의 입력 항들의 부호 비트들에 기초하여 (2의 보수 계산의 부분으로서) 조절 비트들을 생성하는 블록(343)으로부터 유래한다. 좌측 경로(330) 또는 우측 경로(331)에서의 결과의 선택은 부호 생성 및 절대 값 선택 블록(350)에 의해 제어되는 다중화기들(380 및 381)에 의해 이루어진다.
2개의 거짓수 곱과 입력 가수를 모두 함께 정렬하고 이후 그 합을 계산하는 목적은 캐리 세이브 가산기(340, 341)와 이에 이어지는 캐리 예측 가산기(360, 361)(또는 리플 캐리 가산기)가 계산 대기 시간을 감소시키는데 사용될 수 있다는 점이다. 그렇지 않다면, 두 개의 캐리 예측 가산기(또는 두 개의 리플 캐리 가산기)는 직렬로 이용될 것인데, 이는 더 긴 대기 시간을 갖는다.
가산기 폭에 또 하나의 비트를 추가함으로써, 거짓수 곱들의 정규화가 몇몇 처리 회로 및 시간을 절감하기 위해 회피된다.
최종 결과의 정규화를 위해, 선두 영 예측 처리(370, 371)가 처리 대기 시간을 감소시키기 위해 사용된다. 선두 영 예측은 선두 "1" 비트 전의 선두 영들의 수가 캐리 예측 가산기에서 이뤄지는 덧셈과 병렬로 계산되도록 허용한다. 선두 "1" 비트 예측 처리는 Suzuki 등의 논문, 『"Leading-Zero Anticipatory Logic for High-speed Floating Point Addition," IEEE Journal of Solid-State Circuits, Vol. 31, No. 8, August 1996』에 기술되었는데, 이 논문은 이 선언에 의해 참조로써 본 명세서에 통합된다.
부호 생성 및 절대 값 선택 블록(350)에의 입력들은 도 3의 좌측 부분에 도해된 것과 같이 배타적 논리합된 부호 비트들 C.r.s ^ D.i.s 및 C.i.s ^ D.r.s와 가수 B의 실수부의 부호 비트 B.i.s 및 (360)의 출력의 부호 비트이다. 선택된 다중화기(380 또는 381)의 출력은 선두의 것이 기수점의 좌측에 위치되도록 좌측으로 또는 우측으로 시프팅함으로써 정규화 블록(390)에서 정규화되는데, 이는 최종 CMAD 결과의 정규화된 거짓수(본 예에서는 기수점의 우측에서의 10 비트)를 형성한다. 블록(315)으로부터의 지수는 이후 시프팅의 방향 및 거리에 따라 블록(390)에서 조절된다. 블록(350)으로부터의 부호 비트, 정규화된 거짓수, 및 조정된 지수는 부동 소수점 포맷을 갖는 최종 결과가 되도록 조합되고, 이는 "A.i"로서 도 3의 하부에 도시된, 부동 소수점 복소수 승산 누산 유닛의 허수부 A.imaginary이다. A.i를 형성하는 항들 및 인자들은 B.i, C.r, D.i, C.i, 및 D.r로서 도 3의 하부에 도시되는데, 이는 제각기 B.imaginary, C.real, D.imaginary, C.imaginary, 및 D.real과 동일한 변수들이다.
도 4로 지금 돌아가 보면, 실시예에 따라서, 복소수 A의 실수부 A.real을 계산하도록 구성되는 부동 소수점 복소수 승산 누산 유닛의 블록도가 도해된다. 도 4에 도해된 복소수 부동 소수점 승산 누산 유닛의 논리 소자들은 도 3에 도해된 것들과 유사하게 형성되고 배열되며, 간략화를 위해 추가로 기술되지 않을 것이다.
도 3 및 도 4에 도해된 유닛들은 더 큰 처리량을 위한 다단 파이프라인 유닛들(multi-stage pipelined units)로서 구현될 수 있다. 다단 파이프라인 유닛은 최종 결과를 산출하기 위해 차례로 실행되는 복수의 연산 단으로서 일반적으로 형성된다. 그러나, 제1 단이 제1 입력에 대한 결과를 계산하고 그 결과를 제2 단에 넘겨준 후, 제1 단은 이제 제2 단에서의 처리들의 실행과 병렬로 제2 입력을 처리하는 데에 쓰일 수 있다. 이런 방식으로, 복수의 연산 단의 각각은 복수의 입력에 대해 동시적으로 데이터를 처리하는 데에 사용될 수 있다. 이 구조의 한 예로서, 가수 B의 실수부의 거짓수, 즉 B.r.m은 비-1차 파이프라인 단(420)에 결합된다. 상응하여, 도 3에서의 가수 B의 허수부의 거짓수, 즉 B.i.m은 상응하는 제2 파이프라인 단에 결합된다.
도 4에 도해된 복소수 부동 소수점 승산 누산 유닛의 순차 배열된 단들(sequenced stages)은 제1 단(410), 제2 단(420), 및 제3 단(430)으로서 식별된다. 비슷하게 순차 배열된 단들이 도 3에서 식별될 수 있다. 따라서, 도 4에 도해된 제1 단(410)은 제1 단(410)이 제2 단(420)에게 제1 데이터 세트에 대한 연산들의 결과들을 넘겨주자마자 제2 데이터 세트에 대해 연산하도록 구성된다. 유사하게, 제2 단(420)은 제2 단(420)이 제3 단(430)에게 제1 데이터 세트에 대한 연산들의 결과들을 넘겨주자마자 제2 데이터 세트에 대해 연산하도록 구성된다.
도 5를 이제 참조하면, 실시예에 따라서, 앞서 논의된 처리들 중 하나 이상을 수행하기 위해 이용될 수 있는 처리 시스템(500)의 요소들의 블록도가 도해된다. 처리 시스템(500)은 비디오 어댑터/GPU(graphics processing unit)와 같은, 하나 이상의 입/출력 장치들을 갖춘 프로세서(510)를 포함할 수 있다. 프로세서(510)는 버스(520)에 연결되는 CPU(central processing unit)/DSP, 메모리, 및 하드웨어 가속기를 포함할 수 있다.
버스(520)는 메모리 버스 또는 메모리 제어기, 주변장치 버스, 비디오 버스, 또는 기타 등등을 포함하는 임의 유형의 몇 가지 버스 아키텍처들 중 하나 이상일 수 있다. CPU는 임의 유형의 전자적 데이터 프로세서를 포함할 수 있다. 메모리는 SRAM(static random access memory), DRAM(dynamic random access memory), SDRAM(synchronous DRAM), ROM(read-only memory), NVRAM(nonvolatile random access memory), 이들의 조합, 또는 기타 등등과 같은 임의 유형의 시스템 메모리를 포함할 수 있다. 실시예에서, 메모리는 시동(boot-up)시의 사용을 위한 ROM, 및 프로그램들을 실행하는 도중의 사용을 위한 데이터 저장 장치용의 DRAM을 포함할 수 있다.
비디오 어댑터/GPU는 프로세서를 디스플레이에 결합하기 위한 인터페이스를 제공한다. 기타 디바이스들이 프로세서에 결합될 수 있고, 추가의 또는 더 적은 인터페이스 카드들이 활용될 수 있다. 예를 들어, 병렬 인터페이스 카드(도시 안 됨)가 프린터용 병렬 인터페이스를 제공하기 위해 사용될 수 있다.
프로세서는 또한 네트워크 인터페이스(도시 안 됨)를 포함할 수 있고, 이 네트워크 인터페이스는 이더넷 케이블 또는 그와 유사한 것과 같은 유선 링크, 및/또는 셀 방식 통신 네트워크와 같은 네트워크와의 통신을 가능하게 하기 위한 무선 링크일 수 있다. 네트워크 인터페이스는 프로세서가 네트워크를 통해 원격 유닛들과 통신하도록 허용한다. 실시예에서, 프로세서는 기타 프로세서들, 인터넷, 원격 저장 장치 설비들, 또는 기타 등등과 같은 원격 디바이스들과의 통신을 제공하기 위해 근거리 통신망(local-area network) 또는 광역 통신망(wide-area network)에 결합된다.
도 6a 및 도 6b를 참조하면, LTE 시스템의 다운링크 전송에서의 및 업링크 전송에서의 기저대역 신호 처리의 전형적 구현이 제각기 도해된다. 여러가지 실시예들에서, 본 발명은 기지국 또는 UE에서의 신호 처리에 적용될 수 있다.
본 발명의 실시예에 따라서, 기저대역 신호 처리에서의 부동 소수점 복소수 승산 누산 계산은 복소수 포맷으로 3개의 기저대역 신호를 수신하는 것을 포함한다. 복소수 포맷을 갖는 3개의 기저대역 신호의 각각은 거짓수 및 지수를 갖는다. 본 발명의 실시예에서, 복소수 포맷을 갖는 기저대역 신호들은 부호용의 하나 이상의 비트를 더 포함한다. 본 발명의 실시예에서, 기저대역 신호 처리에서의 부동 소수점 복소수 승산 누산 계산 방법은 입력 가수로서 제1 기저대역 신호를 수신/획득하는 단계, 제2 기저대역 신호 및 제3 기저대역 신호로부터 제1 곱 및 제2 곱을 생성하는 단계 - 여기서 입력 가수, 제1 곱 및 제2 곱은 각자의 거짓수 및 지수를 가짐- ; 프로세서에서 입력 가수, 제1 곱 및 제2 곱 중의 최대 지수를 갖는 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱 및 제2 곱 중의 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하는 단계; 및 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 함께 합산하는 단계를 포함한다.
실시예에서, 두 개의 곱은 제2 기저대역 신호의 실수부/허수부를 제3 기저대역 신호의 실수부/허수부와 승산함으로써 형성된다. 예를 들면, 제1 곱은 제2 기저대역 신호의 실수부와 제3 기저대역 신호의 실수부의 승산된 곱이고, 제2 곱은 제2 기저대역 신호의 허수부와 제3 기저대역 신호의 허수부의 승산된 곱이다. 대안 실시예에서, 제1 곱은 제2 기저대역 신호의 실수부와 제3 기저대역 신호의 허수부의 승산된 곱이고, 제2 곱은 제2 기저대역 신호의 허수부와 제3 기저대역 신호의 실수부의 승산된 곱이다.
처리 시스템이 기타 요소들을 포함할 수 있다는 것을 유의해야 한다. 예를 들어, 처리 시스템은 전원들, 케이블들, 마더보드, 착탈 가능 저장 매체, 케이스들, 및 기타 등등을 포함할 수 있다. 이러한 기타 요소들은, 도시되지는 않았지만, 처리 시스템의 일부라고 여겨진다.
복소수 승산 누산 연산에 있어서 앞서 기술된 방법을 이용한 결과는 부동 소수점 DSP들 및 하드웨어 가속기들의 향상된 성능 및 전력 효율성이다. 더 높은 전력 효율성 및 더 큰 처리 속도가 달성될 수 있다. 실질적인 이점들이 기지국들 및 단말 장치들에 대한 무선 기저대역 디지털 신호 프로세서 또는 SoC(System on chip)에게 생길 수 있다.
달리 지적되지 않았다면, 본 명세서에서 기술되는 기능들은 인간 개입과 함께 또는 개입 없이, 하드웨어 또는 소프트웨어, 또는 이것들의 몇몇 조합으로 실행될 수 있다. 실시예에서, 기능들은, 달리 지적되지 않았다면, 컴퓨터 프로그램 코드와 같은 코드, 소프트웨어, 및/또는 그와 같은 기능들을 수행하기 위해 코딩된 집적 회로들에 따라서, 도 5를 참조하여 앞서 논의된 것들과 같이, 컴퓨터 또는 전자적 데이터 프로세서와 같은 프로세서에 의해 수행된다.
본 명세서에 제시된 것들과 같은 실시예들은 제1 복소수 피승수, 제2 복소수 피승수, 및 복소수 가수로부터 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부를 계산하기 위한 장치 및 관련 방법을 제공한다. 장치는 메모리 및 메모리에 결합된 프로세서로 형성된다. 실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 복소수 피승수의 실수부의 거짓수와 제2 복소수 피승수의 실수부의 거짓수의 제1 거짓수 곱을 형성하고, 제1 복소수 피승수의 허수부의 거짓수와 제2 복소수 피승수의 허수부의 거짓수의 제2 거짓수 곱을 형성하도록 구성된다. 또 다른 실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 복소수 피승수의 실수부의 지수와 제2 복소수 피승수의 실수부의 지수의 제1 지수 합을 형성하고, 제1 복소수 피승수의 허수부의 지수와 제2 복소수 피승수의 허수부의 지수의 제2 지수 합을 형성하도록 추가로 구성된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 복소수 가수의 실수부, 제1 지수 합 및 제2 지수 합의 지수들 중에서 최대 지수를 찾아내도록 추가로 구성된다. 또 다른 실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 거짓수 곱, 제2 거짓수 곱 및 복소수 가수의 실수부의 거짓수를, 지수들 중의 최대 값에 대하여 이들의 각자의 지수들에 따라 정렬하고, 정렬된 제1 거짓수 곱, 제2 거짓수 곱 및 복소수 가수의 실수부의 최하위 비트들을 끊도록 추가로 구성된다. 또 다른 실시예에서, 프로세서는 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 이들의 부호들에 따라 2의 보수 포맷으로 변환하도록 추가로 구성된다. 변환되고 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부는 이후 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부의 비정규화된 거짓수를 형성하기 위해 프로세서에 의해서 더해진다. 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부의 비정규화된 거짓수는 정규화된 거짓수의 기수점의 좌측으로 선두 "1" 비트를 산출하기 위해 비트들을 시프팅함으로써 정규화된다. 복소수 가수의 실수부, 제1 지수 합, 및 제2 지수 합의 지수들 중의 최대 지수는 기수점의 좌측으로 선두 "1" 비트를 산출하기 위해 비트들을 시프팅하는 것으로부터 귀결되는 시프팅 거리에 따라 조절된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 캐리 세이브 가산기와 이것에 이어지는 2 입력 전 가산기에 의해, 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 더하도록 추가로 구성된다. 실시예에서, 2 입력 전 가산기는 캐리 예측 가산기이다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 2개의 경로에서의 캐리 세이브 가산기와 이것에 이어지는 2 입력 전 가산기에 의해, 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 더하도록 추가로 구성되는데, 2개의 경로 중 한 경로는 부호 생성 및 절대 값 선택 처리에 의해 생성되는 제어 신호에 따라 실수부의 거짓수를 정규화하기 전에 선택된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 2의 보수 산술에 의해 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 더하도록 추가로 구성된다. 실시예에서, 2의 보수 산술을 이용하는 것은 필요하지 않다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 더해지고 정렬된 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 2의 보수 포맷으로부터 부호 크기 포맷(sign-magnitude format)으로 변환하도록 추가로 구성된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 정렬된 거짓수들을 더하도록 구성되는 가산기들의 비트 폭을 증가시킴으로써, 최하위 비트들을 끊음으로써 야기되는 정밀도 손실을 보상하도록 추가로 구성된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 거짓수 곱 및 제2 거짓수 곱을 정규화하지 않고서, 승산에 의해 산출되는 제1 거짓수 곱의 기수점 및 제2 거짓수 곱의 기수점의 위치를 유지하도록 구성된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제2의 또는 이후의 파이프라인 단으로 복소수 가수의 실수부의 거짓수의 사용을 연기하도록 구성된다.
실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 복소수 피승수, 제2 복소수 피승수, 및 복소수 가수로부터 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 허수부를 계산하도록 추가로 구성된다. 또 다른 실시예에서, 프로세서는, 메모리와 연계하여 또는 독립적으로, 제1 복소수 피승수의 허수부의 거짓수와 제2 복소수 피승수의 실수부의 거짓수의 제3 거짓수 곱을 형성하고, 제1 복소수 피승수의 실수부의 거짓수와 제2 복소수 피승수의 허수부의 거짓수의 제4 거짓수 곱을 형성하고, 제1 복소수 피승수의 허수부의 지수와 제2 복소수 피승수의 실수부의 지수의 제3 지수 합을 형성하고, 제1 복소수 피승수의 실수부의 지수와 제2 복소수 피승수의 허수부의 지수의 제4 지수 합을 형성하고, 복소수 가수의 허수부, 제3 지수 합, 및 제4 지수 합의 지수들 중에서의 최대 지수를 찾아내고, 제3 거짓수 곱, 제4 거짓수 곱, 및 복소수 가수의 허수부의 거짓수를, 복소수 가수의 허수부, 제3 지수 합 및 제4 지수 합의 지수들 중의 최대 값에 대하여 이들의 각자의 지수들에 따라 정렬하도록 구성된다.
메모리와 연계된 프로세서는, 정렬된 제3 거짓수 곱, 제4 거짓수 곱, 및 복소수 가수의 허수부의 최하위 비트들을 끊고, 정렬된 제3 거짓수 곱, 제4 거짓수 곱, 및 복소수 가수의 허수부를 이들의 부호들에 따라 2의 보수 포맷으로 변환하고, 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 허수부의 비정규화된 거짓수를 형성하기 위해 변환되고 정렬된 제3 거짓수 곱, 제4 거짓수 곱, 및 복소수 가수의 허수부를 더하고, 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 허수부의 정규화된 거짓수의 기수점의 좌측으로 선두 "1" 비트를 산출하기 위해 시프팅함으로써 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 허수부의 비정규화된 거짓수를 정규화하고, 기수점의 좌측으로 선두 "1" 비트를 산출하기 위해 시프팅하는 것으로부터 귀결되는 시프팅 거리에 따라 복소수 가수의 허수부, 제3 지수 합, 및 제4 지수 합의 지수들 중에서의 최대 지수를 조절하도록 추가로 구성된다.
본 명세서에 제시된 것들과 같은 실시예들은 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부를 계산하기 위한 장치 및 관련 방법을 제공한다. 장치는 메모리 및 메모리에 결합된 프로세서로 형성된다. 프로세서는, 제1 복소수 피승수, 제2 복소수 피승수, 및 복소수 가수에 대해 연산하는 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부를 계산하고, 복소수 가수의 실수부, 제1 복소수 피승수의 실수부의 지수와 제2 복소수 피승수의 실수부의 지수의 제1 지수 합, 및 제1 복소수 피승수의 허수부의 지수와 제2 복소수 피승수의 허수부의 지수의 제2 지수 합의 지수들 중에서 최대 지수를 찾아내고, 제1 복소수 피승수의 실수부와 제2 복소수 피승수의 실수부의 제1 거짓수 곱, 제1 복소수 피승수의 허수부와 제2 복소수 피승수의 허수부의 제2 거짓수 곱, 및 복소수 가수의 실수부의 거짓수를, 지수들 중에서의 최대 지수에 대하여 이들의 각자의 지수들에 따라 정렬하도록 구성된다.
실시예에서, 프로세서는, 메모리와 결합되거나 또는 독립적으로, 정렬된 거짓수들의 최하위 비트들을 끊고, 정렬되고 끊어진 제1 거짓수 곱, 제2 거짓수 곱, 및 복소수 가수의 실수부를 이들의 부호들에 따라 2의 보수 포맷으로 변환하고, 변환된 거짓수들을 더하여 비정규화된 합 거짓수(non-normalized sum mantissa)를 형성하도록 추가로 구성된다.
실시예에서, 프로세서는 부동 소수점 복소수 승산 누산 처리에 의해 산출되는 실수부를 형성하기 위해 이것의 기수점의 좌측으로의 선두 "1" 비트를 산출하기 위해 비트들을 시프팅시킴으로써 비정규화된 합 거짓수를 정규화하도록 추가로 구성된다. 또 다른 실시예에서, 프로세서는 시프팅으로부터 귀결되는 비트 시프팅 거리에 따라 최대 지수를 조절하도록 추가로 구성된다.
본 명세서에 제시된 것들과 같은 실시예들은 부동 소수점 복소수 승산 누산의 디지털 계산을 위한 방법 및 관련 장치를 제공한다. 장치는 메모리 및 메모리에 결합된 프로세서로 형성된다. 방법은 입력 가수, 제1 곱, 및 제2 곱을 수신하는 단계 - 입력 가수, 제1 곱, 및 제2 곱은 각각 각자의 거짓수 및 지수를 가짐-, 프로세서에서 입력 가수, 제1 곱, 및 제2 곱 중의 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱, 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하는 단계, 및 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 단계를 포함한다.
실시예에서, 입력 가수는 제1 입력의 실수부이고, 제1 곱은 제2 입력의 실수부와 제3 입력의 실수부의 승산된 곱이고, 제2 곱은 제2 입력의 허수부와 제3 입력의 허수부의 승산된 곱이다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것은 정렬된 입력 가수를 정렬된 제1 곱과 더하는 것 및 정렬된 입력 가수와 정렬된 제1 곱의 합으로부터 정렬된 제2 곱을 빼는 것을 포함한다.
실시예에서, 방법은 제2 입력의 실수부의 거짓수와 제3 입력의 실수부의 거짓수를 승산함으로써 제1 곱의 거짓수를 형성하는 단계, 제2 입력의 실수부의 지수와 제3 입력의 실수부의 지수를 합산함으로써 제1 곱의 지수를 형성하는 단계, 제2 입력의 허수부의 거짓수와 제3 입력의 허수부의 거짓수를 승산함으로써 제2 곱의 거짓수를 형성하는 단계, 및 제2 입력의 허수부의 지수와 제3 입력의 허수부의 지수를 합산함으로써 제2 곱의 지수를 형성하는 단계를 추가로 포함한다.
실시예에서, 제2 입력의 실수부의 거짓수, 제3 입력의 실수부의 거짓수, 제2 입력의 허수부의 거짓수, 및 제3 입력의 허수부의 거짓수는 승산 전에 정규화되지 않는다.
실시예에서, 입력 가수는 제1 입력의 허수부이고, 제1 곱은 제2 입력의 실수부와 제3 입력의 허수부의 승산된 곱이고, 제2 곱은 제2 입력의 허수부와 제3 입력의 실수부의 승산된 곱이다.
실시예에서, 방법은 제2 입력의 실수부의 거짓수와 제3 입력의 허수부의 거짓수를 승산함으로써 제1 곱의 거짓수를 형성하는 단계, 제2 입력의 실수부의 지수와 제3 입력의 허수부의 지수를 합산함으로써 제1 곱의 지수를 형성하는 단계, 제2 입력의 허수부의 거짓수와 제3 입력의 실수부의 거짓수를 승산함으로써 제2 곱의 거짓수를 형성하고, 제2 입력의 허수부의 지수와 제3 입력의 실수부의 지수를 합산함으로써 제2 곱의 지수를 형성하는 단계를 추가로 포함한다.
실시예에서, 제2 입력의 실수부의 거짓수, 제3 입력의 실수부의 거짓수, 제2 입력의 허수부의 거짓수 및 제3 입력의 허수부의 거짓수는 승산 전에 정규화되지 않는다.
실시예에서, 제1 곱은 두 개의 비정규화된 입력의 곱이다. 실시예에서, 제2 곱은 두 개의 비정규화된 입력의 곱이다.
실시예에서, 입력 가수, 제1 곱 및 제2 곱 중 최대 지수를 갖는 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱, 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하는 것은 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 더 작은 지수들을 가진 두 개의 것의 거짓수를 우측으로 시프팅하는 것을 포함하며, 여기서 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱은 동일 지수 값(same exponent number)을 갖는다.
실시예에서, 방법은, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱의 거짓수들의 비트 폭이 정밀도 요건에 따른 비트 폭을 초과하면, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱의 하나 이상의 비트들을 끊는 것을 추가로 포함한다.
실시예에서, 방법은 입력 가수, 제1 곱, 및 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하는 것을 추가로 포함한다.
실시예에서, 입력 가수, 제1 곱 및 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하는 것은 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하는 것을 포함한다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것은 변환되고 정렬된 입력 가수, 변환되고 정렬된 제1 곱 및 변환되고 정렬된 제2 곱을 더하는 것을 포함한다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것은 캐리 세이브 가산기 및 전 가산기에 의해, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것을 포함한다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것은 2개의 경로에서 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하는 것을 포함하는데, 2개의 경로 중 하나의 경로는 부호 생성 및 절대 값 선택 처리에 의해 생성되는 제어 신호에 따라 선택된다.
본 명세서에 제시된 것들과 같은 실시예들은 부동 소수점 복소수 승산 누산 처리의 디지털 계산을 실행하기 위한 장치 및 관련된 방법을 제공한다. 장치는 메모리 및 메모리에 결합된 프로세서로 형성된다. 프로세서는 입력 가수, 제1 곱 및 제2 곱을 수신하고 - 여기서 입력 가수, 제1 곱 및 제2 곱은 각각 각자의 거짓수 및 지수를 가짐 -, 입력 가수, 제1 곱 및 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수를 시프팅하고, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 구성된다.
실시예에서, 입력 가수는 제1 입력의 실수부이고, 제1 곱은 제2 입력의 실수부와 제3 입력의 실수부의 승산된 곱이고, 제2 곱은 제2 입력의 허수부와 제3 입력의 허수부의 승산된 곱이다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 구성되는 프로세서는 정렬된 입력 가수와 정렬된 제1 곱을 더하고 및 정렬된 입력 가수와 정렬된 제1 곱의 합으로부터 정렬된 제2 곱을 빼도록 구성된다.
실시예에서, 프로세서는 제2 입력의 실수부의 거짓수와 제3 입력의 실수부의 거짓수를 승산함으로써 제1 곱의 거짓수를 형성하고, 제2 입력의 실수부의 지수와 제3 입력의 실수부의 지수를 합산함으로써 제1 곱의 지수를 형성하고, 제2 입력의 허수부의 거짓수와 제3 입력의 허수부의 거짓수를 승산함으로써 제2 곱의 거짓수를 형성하고, 및 제2 입력의 허수부의 지수와 제3 입력의 허수부의 지수를 합산함으로써 제2 곱의 지수를 형성하도록 추가로 구성된다.
실시예에서, 입력 가수는 제1 입력의 허수부이고, 제1 곱은 제2 입력의 실수부와 제3 입력의 허수부의 승산된 곱이고, 제2 곱은 제2 입력의 허수부와 제3 입력의 실수부의 승산된 곱이다.
실시예에서, 프로세서는 제2 입력의 실수부의 거짓수와 제3 입력의 허수부의 거짓수를 승산함으로써 제1 곱의 거짓수를 형성하고, 제2 입력의 실수부의 지수와 제3 입력의 허수부의 지수를 합산함으로써 제1 곱의 지수를 형성하고, 제2 입력의 허수부의 거짓수와 제3 입력의 실수부의 거짓수를 승산함으로써 제2 곱의 거짓수를 형성하고, 및 제2 입력의 허수부의 지수와 제3 입력의 실수부의 지수를 합산함으로써 제2 곱의 지수를 형성하도록 추가로 구성된다.
실시예에서, 제1 곱은 두 개의 비정규화된 입력의 곱이다. 실시예에서, 제2 곱은 두 개의 비정규화된 입력의 곱이다.
실시예에서, 입력 가수, 제1 곱 및 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 입력 가수, 제1 곱 및 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하도록 구성되는 프로세서는, 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하도록 구성되며, 여기서 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱은 동일 지수 값을 갖는다.
실시예에서, 프로세서는, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱의 거짓수들의 비트 폭이 정밀도 요건에 따른 비트 폭을 초과하면, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱의 하나 이상의 비트들을 끊도록 추가로 구성된다.
실시예에서, 프로세서는 입력 가수, 제1 곱 및 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하도록 추가로 구성된다.
실시예에서, 입력 가수, 제1 곱 및 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하도록 구성되는 프로세서는 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하도록 추가로 구성된다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 구성되는 프로세서는 변환되고 정렬된 입력 가수, 변환되고 정렬된 제1 곱 및 변환되고 정렬된 제2 곱을 더하도록 추가로 구성된다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 구성되는 프로세서는 캐리 세이브 가산기 및 전 가산기에 의해, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 추가로 구성된다.
실시예에서, 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 구성되는 프로세서는 두 개의 경로에서 정렬된 입력 가수, 정렬된 제1 곱 및 정렬된 제2 곱을 더하도록 추가로 구성되고, 두 개의 경로 중 하나의 경로가 부호 생성 및 절대 값 선택 처리에 의해 생성되는 제어 신호에 따라 선택된다.
본 발명이 예시적인 실시예들을 참조하여 기술되기는 하였지만, 본 기술은 제한적인 의미로 해석되도록 의도되지 않았다. 예시적 실시예들의 다양한 변형들 및 조합들뿐만 아니라 본 발명의 기타 실시예들이 설명을 참조할 때 당업자에게 명백할 것이다. 따라서, 첨부한 청구항들이 임의의 이러한 변형들 또는 실시예들을 포괄하도록 의도된다.

Claims (32)

  1. 부동 소수점 복소수 승산 누산(floating point complex multiply-add)의 디지털 계산을 위한 방법으로서,
    입력 가수(input addend), 제1 곱(first product) 및 제2 곱을 수신하는 단계 -상기 입력 가수, 상기 제1 곱 및 상기 제2 곱은 각각 각자의 거짓수(mantissa) 및 지수(exponent)를 가짐-;
    상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅(shifting)하는 단계; 및
    상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 입력 가수는 제1 입력의 실수부이고, 상기 제1 곱은 제2 입력의 실수부와 제3 입력의 실수부의 승산된 곱(multiplied product)이고, 상기 제2 곱은 상기 제2 입력의 허수부와 상기 제3 입력의 허수부의 승산된 곱인, 방법.
  3. 제1항에 있어서, 상기 입력 가수는 제1 입력의 허수부이고, 상기 제1 곱은 제2 입력의 실수부와 제3 입력의 허수부의 승산된 곱이고, 상기 제2 곱은 상기 제2 입력의 허수부와 상기 제3 입력의 실수부의 승산된 곱인, 방법.
  4. 제1항에 있어서, 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하는 단계는,
    상기 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 더 작은 지수들을 가진 두 개의 것의 거짓수들을 우측으로 시프팅하는 단계를 포함하고, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱은 동일 지수 값(same exponent number)을 갖는, 방법.
  5. 제1항에 있어서,
    상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱의 거짓수들의 비트 폭이 정밀도 요건에 따른 비트 폭을 초과하면, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱의 하나 이상의 비트들을 끊는(truncating) 단계를 더 포함하는 방법.
  6. 제1항에 있어서, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하는 단계는,
    캐리 세이브 가산기(carry-save adder) 및 전 가산기(full adder)에 의해, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하는 단계를 포함하는, 방법.
  7. 제1항에 있어서, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하는 단계는,
    두 개의 경로에서 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하는 단계를 포함하고, 상기 두 개의 경로 중 하나의 경로는 부호 생성 및 절대 값 선택 처리(sign generation and absolute value select process)에 의해 생성되는 제어 신호에 따라 선택되는, 방법.
  8. 부동 소수점 복소수 승산 누산의 디지털 계산을 실행하기 위한 장치로서,
    메모리; 및
    상기 메모리에 결합된 프로세서
    를 포함하고,
    상기 프로세서는,
    입력 가수, 제1 곱 및 제2 곱을 수신하고 - 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱은 각각 각자의 거짓수 및 지수를 가짐 -,
    상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하고,
    상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하도록 구성되는, 장치.
  9. 제8항에 있어서, 상기 입력 가수는 제1 입력의 실수부이고, 상기 제1 곱은 제2 입력의 실수부와 제3 입력의 실수부의 승산된 곱이고, 및 상기 제2 곱은 상기 제2 입력의 허수부와 상기 제3 입력의 허수부의 승산된 곱인, 장치.
  10. 제8항에 있어서, 상기 입력 가수는 제1 입력의 허수부이고, 상기 제1 곱은 제2 입력의 실수부와 제3 입력의 허수부의 승산된 곱이고, 상기 제2 곱은 상기 제2 입력의 허수부와 상기 제3 입력의 실수부의 승산된 곱인, 장치.
  11. 제8항에 있어서, 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱 중 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하도록 구성되는 상기 프로세서는,
    상기 최대 지수를 가진 것의 거짓수와 함께 정렬하기 위해 상기 더 작은 지수들을 가진 두 개의 것의 거짓수들을 시프팅하도록 구성되고, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱은 동일 지수 값을 갖는, 장치.
  12. 제8항에 있어서, 상기 프로세서는,
    상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱의 거짓수들의 비트 폭이 정밀도 요건에 따른 비트 폭을 초과하면, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱의 하나 이상의 비트들을 끊도록 추가로 구성되는, 장치.
  13. 제8항에 있어서, 상기 프로세서는 상기 입력 가수, 상기 제1 곱 및 상기 제2 곱을 이들의 부호들에 따라 2의 보수 포맷으로 변환하도록 추가로 구성되는, 장치.
  14. 제8항에 있어서, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하도록 구성되는 상기 프로세서는,
    캐리 세이브 가산기 및 전 가산기에 의해, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하도록 추가로 구성되는, 장치.
  15. 제8항에 있어서, 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하도록 구성되는 상기 프로세서는,
    두 개의 경로에서 상기 정렬된 입력 가수, 상기 정렬된 제1 곱 및 상기 정렬된 제2 곱을 더하도록 추가로 구성되고, 상기 두 개의 경로 중 하나의 경로가 부호 생성 및 절대 값 선택 처리에 의해 생성되는 제어 신호에 따라 선택되는, 장치.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020147032167A 2012-04-20 2012-05-11 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 KR101603471B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/452,690 US9274750B2 (en) 2012-04-20 2012-04-20 System and method for signal processing in digital signal processors
US13/452,690 2012-04-20
PCT/CN2012/075375 WO2013155744A1 (en) 2012-04-20 2012-05-11 System and method for signal processing in digital signal processors

Publications (2)

Publication Number Publication Date
KR20150003338A KR20150003338A (ko) 2015-01-08
KR101603471B1 true KR101603471B1 (ko) 2016-03-14

Family

ID=49381136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147032167A KR101603471B1 (ko) 2012-04-20 2012-05-11 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US9274750B2 (ko)
EP (1) EP2828737A4 (ko)
JP (1) JP5873599B2 (ko)
KR (1) KR101603471B1 (ko)
CN (1) CN104246690B (ko)
IL (1) IL235179B (ko)
WO (1) WO2013155744A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094744B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变浮点数据微处理器
US9841999B2 (en) 2015-07-31 2017-12-12 Futurewei Technologies, Inc. Apparatus and method for allocating resources to threads to perform a service
US20170052762A1 (en) * 2015-08-20 2017-02-23 Futurewei Technologies, Inc. System and method for representing complex numbers in fused floating point
KR102338863B1 (ko) 2015-09-09 2021-12-13 삼성전자주식회사 연산을 제어하기 위한 장치 및 방법
US10185699B2 (en) 2016-03-14 2019-01-22 Futurewei Technologies, Inc. Reconfigurable data interface unit for compute systems
US10157059B2 (en) * 2016-09-29 2018-12-18 Intel Corporation Instruction and logic for early underflow detection and rounder bypass
US10146533B2 (en) * 2016-09-29 2018-12-04 Intel Corporation Instruction and logic for detecting numeric accumulation error
US10735279B2 (en) 2017-04-14 2020-08-04 Futurewei Technologies, Inc. Networking service level agreements for computer datacenters
US10341158B2 (en) 2017-05-17 2019-07-02 Futurewei Technologies, Inc. Segment-based transforms in digital signal processing
CN108255777B (zh) * 2018-01-19 2021-08-06 中国科学院电子学研究所 用于fpga的嵌入式浮点型dsp硬核结构
CN113138750A (zh) * 2020-01-20 2021-07-20 华为技术有限公司 算数逻辑单元、浮点数乘法计算的方法及设备
CN112527239B (zh) * 2021-02-10 2021-05-07 北京微核芯科技有限公司 一种浮点数据处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076047A (ja) 1998-08-20 2000-03-14 Advanced Risc Mach Ltd 浮動小数点乗算累算ユニット

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4996661A (en) * 1988-10-05 1991-02-26 United Technologies Corporation Single chip complex floating point numeric processor
JP3064405B2 (ja) 1990-11-26 2000-07-12 富士通株式会社 複素数の演算処理方式
JPH05174046A (ja) 1991-12-20 1993-07-13 Ricoh Co Ltd 演算回路
US5359548A (en) * 1992-04-15 1994-10-25 Fujitsu Limited Floating-point arithmetic system having multiple-input addition and subtraction means
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
JP2747267B2 (ja) 1996-01-29 1998-05-06 甲府日本電気株式会社 3入力浮動小数点加算装置
GB2409074B (en) * 2001-03-14 2005-08-03 Micron Technology Inc Arithmetic pipeline
KR100929423B1 (ko) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
KR100513160B1 (ko) 2003-10-28 2005-09-08 한국전자통신연구원 감소된 면적을 갖는 캐리 예측 가산기
KR20070018981A (ko) * 2004-06-04 2007-02-14 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 복소수 로그 alu
US20060101244A1 (en) 2004-11-10 2006-05-11 Nvidia Corporation Multipurpose functional unit with combined integer and floating-point multiply-add pipeline
US20070198815A1 (en) 2005-08-11 2007-08-23 Coresonic Ab Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit
CN101438232B (zh) 2006-05-16 2015-10-21 英特尔公司 不同浮点格式的浮点加法
CN101174200B (zh) 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
CN100570552C (zh) 2007-12-20 2009-12-16 清华大学 一种并行浮点乘加单元
US8046399B1 (en) * 2008-01-25 2011-10-25 Oracle America, Inc. Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module
US8239440B2 (en) 2008-03-28 2012-08-07 Oracle America, Inc. Processor which implements fused and unfused multiply-add instructions in a pipelined manner
US8166091B2 (en) * 2008-11-10 2012-04-24 Crossfield Technology LLC Floating-point fused dot-product unit
GB2474901B (en) 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076047A (ja) 1998-08-20 2000-03-14 Advanced Risc Mach Ltd 浮動小数点乗算累算ユニット

Also Published As

Publication number Publication date
EP2828737A4 (en) 2015-05-06
JP2015518610A (ja) 2015-07-02
CN104246690B (zh) 2017-10-24
CN104246690A (zh) 2014-12-24
US9274750B2 (en) 2016-03-01
EP2828737A1 (en) 2015-01-28
KR20150003338A (ko) 2015-01-08
IL235179B (en) 2019-01-31
US20130282778A1 (en) 2013-10-24
WO2013155744A1 (en) 2013-10-24
JP5873599B2 (ja) 2016-03-01

Similar Documents

Publication Publication Date Title
KR101603471B1 (ko) 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법
CN107168678B (zh) 一种乘加计算装置及浮点乘加计算方法
Zendegani et al. RoBA multiplier: A rounding-based approximate multiplier for high-speed yet energy-efficient digital signal processing
CN108287681B (zh) 一种单精度浮点融合点乘运算装置
US9639326B2 (en) Floating-point adder circuitry
US9552189B1 (en) Embedded floating-point operator circuitry
US8930433B2 (en) Systems and methods for a floating-point multiplication and accumulation unit using a partial-product multiplier in digital signal processors
CN112463113B (zh) 浮点加法单元
Nambi et al. Debam: Decoder-based approximate multiplier for low power applications
Min et al. A floating-point fused FFT butterfly arithmetic unit with merged multiple-constant multipliers
Tan et al. Multiple-mode-supporting floating-point FMA unit for deep learning processors
Menon et al. Implementation of 24 Bit high speed floating point Vedic multiplier
US9400635B1 (en) Methods and apparatus for performing dynamic data alignment for floating-point operations
CN110727412B (zh) 一种基于掩码的混合浮点乘法低功耗控制方法及装置
Zhang et al. FPGA-based approximate multiplier for efficient neural computation
Tsen et al. Hardware design of a binary integer decimal-based floating-point adder
US9575725B1 (en) Specialized processing block with embedded pipelined accumulator circuitry
Amaricai et al. Low‐precision DSP‐based floating‐point multiply‐add fused for Field Programmable Gate Arrays
Krishnan A comparative study on the performance of FPGA implementations of high-speed single-precision binary floating-point multipliers
Rahman et al. Optimized hardware architecture for implementing IEEE 754 standard double precision floating point adder/subtractor
EP3647939A1 (en) Arithmetic processing apparatus and controlling method therefor
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
Nguyen et al. A combined IEEE half and single precision floating point multipliers for deep learning
Prasanna et al. An Efficient Fused Floating-Point Dot Product Unit Using Vedic Mathematics
Zhang et al. Low-Cost Multiple-Precision Multiplication Unit Design For Deep Learning

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: 20190219

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 5