KR101073343B1 - 개선된 감소 트리 회로를 갖는 부스 곱셈기 - Google Patents
개선된 감소 트리 회로를 갖는 부스 곱셈기 Download PDFInfo
- Publication number
- KR101073343B1 KR101073343B1 KR1020087021912A KR20087021912A KR101073343B1 KR 101073343 B1 KR101073343 B1 KR 101073343B1 KR 1020087021912 A KR1020087021912 A KR 1020087021912A KR 20087021912 A KR20087021912 A KR 20087021912A KR 101073343 B1 KR101073343 B1 KR 101073343B1
- Authority
- KR
- South Korea
- Prior art keywords
- digital signal
- signal processor
- multiplication
- multiplier
- booth
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
통신(예컨대, CDMA) 시스템에서의 전송을 처리하는 것을 포함해서 디지털 신호 프로세서의 설계 및 사용을 위한 기술들이 설명된다. 변경된 부스 곱셈 시스템 및 처리는 피승수(A) 및 승수(B)를 결정한다. B에 대한 radix-m(예컨대, radix-4) 부스 레코딩은 "n"개의 곱셈 인자들을 생성하는데, 여기서 정수 "n"은 승수 비트들의 수의 절반에 가깝고, "n"개의 부분곱들이 "n"개의 곱셈 인자를 A의 승수들로서 사용하여 생성된다. 다음으로, 곱셈 트리가 radix-m 부스 인코딩을 사용하여 형성된다. 곱셈 트리는 곱셈 인자를 생성하기 위해서 연관된 승수 비트들을 포함한다. 네거티브 곱셈 인자의 경우에, A의 2의 보수를 달성하기 위해서 A의 비트들을 인버팅하고 스틱키 "1"을 연관시킴으로써 A의 2의 보수가 형성된다. 게다가, 곱셈 인자들은 미리 결정된 길이의 합 및 캐리 성분들을 형성하기 위해서 다수의 스테이지들에서 감소된다. A×B의 덧셈 역원이 A와 -B의 곱을 계산하기 위해서 신규한 기술들을 사용하여 형성된다.
Description
본 출원은 2006년 2월 15일에 "POWER-EFFICIENT SIGN EXTENSION FOR BOOTH MULTIPLICATION METHODS AND SYSTEMS"란 명칭으로 출원되어진 공동 계류 중인 미국 특허 출원 제 11/356,359호에 관련된다.
본 발명은 디지털 신호 프로세서들 내의 수치연산 프로세서들(math processors) 분야에 관한 것으로, 더 상세히는, 높은 속도로 수치들의 곱셈을 수행하기 위해 수치연산 프로세서들에서 사용되는 부스 곱셈기들(Booth multipliers)에 관한 것이다. 더 상세하게는, 본 발명은 다양한 데이터 타입들의 피연산자들과 또한 부호화된 이진 값들 및 비부호화된 이진 값들에 대해 연산들을 수행할 수 있는 곱셈기 회로에 관한 것이다.
점차적으로, 전자 기기 및 보조 소프트웨어 애플리케이션들은 디지털 신호 처리를 수반한다. 홈시어터, 컴퓨터 그래픽들, 의학 화상 및 원격통신들 모두가 디지털 신호 처리 기술에 의존한다. 디지털 신호 처리는 복잡하지만 반복적인 알고리즘들을 통한 고속 수치연산을 필요로 한다. 많은 애플리케이션들이 실시간적으로 계산들을 필요로 하는데, 즉, 신호는 연속적인 시간의 함수이고, 상기 신호는 수치적인 처리를 위해서 샘플링되어 디지털로 변환되어야 한다. 그 프로세서는 샘플들이 도달할 때 상기 샘플들에 대해 이산적인 계산들(discrete computations)을 수행하는 알고리즘들을 실행해야 한다. 디지털 신호 프로세서(DSP)의 구조는 이러한 알고리즘들을 처리하도록 최적화된다. 양호한 신호 처리 엔진의 특징들은 고속의 융통성있는 수학 계산 유닛들, 그 계산 유닛들로 및 그 계산 유닛들로부터의 비구속된(unconstrained) 데이터 흐름, 그 계산 유닛들에서의 확장된 정확성 및 다이내믹한 범위, 이중 어드레스 생성기들, 효율적인 프로그램 시퀀싱, 및 프로그래밍의 편이성을 포함한다.
DSP 기술의 하나의 유망한 애플리케이션은 위성 또는 지상 링크를 통해서 사용자들 간에 음성 및 데이터 통신을 지원하는 CDMA(code division multiple access) 시스템과 같은 통신 시스템들을 포함한다. 다중 액세스 통신 시스템에서 CDMA 처리를 사용하는 것은 "SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS"이란 명칭의 미국 특허 제 4,901,307호, 및 "SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM"이란 명칭의 미국 특허 제 5,103,459호에 개시되어 있는데, 그 두 미국 특허들은 본 출원의 양수인에게 양도되었다.
CDMA 시스템은 통상적으로 하나 이상의 원격통신들 및 현재 스트리밍 비디오 표준들을 따르도록 설계된다. 하나의 이러한 제 1 세대 표준으로는 이후로 IS-95 표준으로 지칭되는 "TIA/EIA/IS-95 Terminal-Base Station Compatibility Standard for Dual-mode Wideband Spread Spectrum Cellular System"이 있다. IS-95 CDMA 시스템들은 음성 데이터 및 패킷 데이터를 전송할 수 있다. 패킷 데이터를 더욱 효율적으로 전송할 수 있는 더 새로운 세대의 표준이 "3rd Generation Partnership Project"(3GPP)란 이름의 컨소시엄에 의해 제공되었으며, 문헌 번호들 3G TS 25.211, 3G TS 25.212, 3G TS 25.213 및 3G TS 25.214를 포함하는 문헌 세트들에 삽입되어 있는데, 상기 문헌들은 대중적으로 쉽게 입수가능하다. 3GPP 표준은 이후로는 W-CDMA 표준으로 지칭된다. MPEG-1, MPEG-2, MPEG-4, H.263 및 WMV(Windows Media Video)와 같은 비디오 압축 표준들뿐만 아니라, 무선 핸드셋들이 점점 많이 이용할 많은 다른 것들이 또한 존재한다.
고속의 융통성있는 수학 계산 유닛들을 달성하기 위해서, 고속 곱셈 연산들을 수행할 필요가 있다. 이러한 연산들을 수행하기 위한 하나의 처리가 부스 곱셈(Booth multiplication)으로 공지되어 있다. 부스 곱셈은 곱해지는 수치들을 레코딩함으로써 더 작으면서 더 빠른 곱셈 회로들을 가능하게 하는 처리이다. 부스 처리를 사용하는 곱셈은 통상적으로 부분곱들(partial products)의 생성에 의해 수행된다. 다음으로, 상기 부분곱들은 최종 결과를 얻기 위해서 가산된다. 부스 곱셈 처리를 통해서, 부분곱들의 수는 승수(multiplier) 행렬에서 행들의 수와 동일하다. "부분곱"이란 용어는 곱셈 트리(multiplication tree)에서의 행을 지칭한다.
본래의 부스 알고리즘에 대한 많은 변경들이 존재하지만, 기본적인 원리는 부스 인코딩 처리를 사용하여 더 적은 부분곱들을 생성하는 것이다. radix-4 부스 레코딩의 처리를 사용함으로써 거의 절반만큼 부분곱들의 수를 감소시킬 수 있다. radix-4 부스 레코딩은 0 및 1의 이진 값들로 본래 표현되는 승수(B)의 비트들을 -2, -1, 0, 1 또는 2의 값들을 취할 수 있는 곱셈 인자들 세트에 매핑시킨다. 이러한 방법은 발생한 부분곱들의 수를 거의 절반으로 줄이는 이점을 제공한다. 이는 회로의 실행에 있어서의 전파 지연 및 그 회로의 구현에 있어서의 복잡성 및 전력 소모에 관련해서 상기 회로의 구현에 있어 중요하다.
일단 상기 부분곱들이 부스 인코딩의 처리를 사용하여 생성되면, 상기 부분곱들은 감소 기술들을 이용함으로써 모두 가산된다. 그 감소 처리는 반가산기들(half-adders), 전가산기들(full-adders) 및 다중-피연산자 가산기들(multi-operand adders)을 사용하여 병렬 처리에서 부분곱 비트들로 이루어진 다수의 행들을 합산하는 것을 포함한다. 이러한 감소는 그 합이 캐리-전파 가산기(carry propagate adder)를 사용하여 구해질 때 최종 곱을 나타내는 중복 형태로 있는 것으로서 말해지는 비트들의 두 행들을 유도한다. 이러한 행들 중 하나는 합(S)으로 지칭되고, 나머지 행은 캐리(C)로 지칭된다. MAC(multiply-accumulate) 연산들에 있어서, [Z+(A×B)]에서의 Z 항은 통상적으로 최종 CPA에 앞서 감소 트리에 포함된다. 이러한 처리는 중복 포맷에서 곱셈 곱(multiplication product)의 결과값(resolution) 및 후속적인 누산을 위해 CPA들을 이용할 때 절감된다.
일부 부분곱들은 네거티브적일 수 있기 때문에, 2의 보수화를 위해 필요한 하드웨어가 부스 곱셈기의 양상이다. 이러한 하드웨어를 통해, 곱셈 곱의 덧셈 역원(additive inverse)을 생성할 수 있는 부스 곱셈기를 제공하는 것이 필요하다. 현재로서는, DSP 애플리케이션들에 대해 효율적으로 -(A×B)를 생성할 수 있는 공 지된 방법 또는 시스템이 존재하지 않는다. 따라서, DSP 애플리케이션에서 곱의 덧셈 역원, 즉, -(A×B)를 생성하기 위해 부스 곱셈 처리를 사용할 수 있는 방법 및 시스템의 필요성이 존재한다.
일단 이러한 곱이 생성되면, 그러나, 곱셈의 곱 "A×B"에 대해 누산될 값 "Z"이 곱 "A×B"보다 더 큰 비트폭을 갖는 경우에는, 중복적인 곱의 "합" 및 "캐리" 성분들이 적절히 부호 확장될 필요가 있다는 문제점이 있다. 때로는, 넓은 범위의 비트들에 걸쳐 부호 확장을 수행하는 것이 필요할 수 있다. 따라서, DSP에서의 부스 곱셈 처리들 동안에 적절한 부호 확장의 처리가 필요하다.
개선된 감소 트리 회로를 가진 부스 곱셈기를 제공하기 위한 기술들이 설명되는데, 이러한 처리들은 개인용 컴퓨터들, 개인용 디지털 어시스턴트(PDA), 무선 핸드셋들, 및 유사한 전자 장치들을 위한 점차적으로 강력한 소프트웨어 애플리케이션들을 처리할 뿐만 아니라 연관된 디지털 신호 프로세서 속도 및 서비스 품질을 증가시키기 위한 디지털 신호 프로세서 명령들의 효율적인 사용 및 디지털 신호 프로세서의 동작 양쪽 모두를 향상시킨다.
따라서, 설명되는 요지는 통신(예컨대, CDMA) 시스템에서의 전송들을 처리하는 것을 포함해서, 디지털 신호 프로세서의 설계 및 사용을 위한 처리를 제공한다. 기재된 방법 및 시스템은 디지털 신호 프로세서에서 향상된 부스 곱셈을 수행한다. 상기 방법 및 시스템은 제 1의 다수의 비트들을 갖는 피승수(multiplicand)(A) 및 제 2의 다수의 비트들을 갖는 승수(multiplier)(B)를 결정한다. 기재된 요지는 제 1 미리 결정된 정수 "n"개의 곱셈 인자들을 생성하기 위해서 B에 대해 radix-m(예컨대, radix-4) 부스 레코딩을 수행한다. "n"개의 곱셈 인자들은 제 2의 다수의 비트들의 수의 비율(예컨대, radix-4 곱셈의 경우에는 절반)에 가깝다. 상기 방법 및 시스템은 또한 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들을 생성한다. 다음으로, radix-m 부스 인코딩을 사용하여 곱셈 트리가 형성된다. 네거티브 곱셈 인자의 경우에, 설명은 A의 2의 보수를 달성하기 위해서 A의 제 1의 다수의 비트들을 인버팅하고 또한 스틱키(sticky) "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하는 것을 포함한다. 또한, 처리는 다수의 감소 스테이지들에서 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키는 것을 포함한다. 또한, 처리는 상기 합 및 캐리 성분들의 세트에 기초하여 A 및 B의 곱을 생성하는 것을 포함한다.
기재된 요지의 이러한 및 다른 장점들과 또한 추가적인 신규한 특징들이 본 명세서에서 제공되는 설명으로부터 자명해질 것이다. 이러한 요약의 의도는 청구되는 요지의 포괄적인 설명인 것이 아니며, 오히려 요지의 기능 중 일부에 대한 간략한 개요를 제공하는 것이다. 여기서 제공되는 다른 시스템들, 방법들, 특징들 및 장점들이 아래의 도면들 및 실시예를 검토함으로써 당업자에게 자명해질 것이다. 모든 이러한 추가적인 시스템들, 방법들, 특징들 및 장점들은 본 설명 내에 포함되고 또한 첨부된 청구항들의 범위 내에 포함되도록 의도된다.
설명된 요지의 특징들, 속성, 및 장점들이 도면들과 연계하여 이루어지는 아래의 설명으로부터 더욱 자명해질 것이고, 도면들 전반에 걸쳐서는 동일한 참조 문자들이 동일한 것을 나타낸다.
도 1은 본 실시예를 구현할 수 있는 통신 시스템의 간략한 블록도를 나타낸다.
도 2는 본 실시예의 교지들을 이후로 설명하기 위한 DSP 구조를 나타낸다.
도 3은 설명된 요지의 기술적인 장점들을 제공하는 디지털 신호 프로세서의 일실시예에 대한 구조 블록도를 제공한다.
도 4는 설명된 요지의 다양한 구현들을 위한 데이터 경로도를 나타낸다.
도 5는 설명된 요지에 적용가능한 변경된 16×16 radix-4 부스 곱셈 트리를 제공한다.
도 6은 설명된 요지에 대한 부스 레코더를 구현하기 위한 로직 셀을 제공한다.
도 7은 설명된 요지를 갖는 도 7의 로직 셀에 대한 비트 그룹화를 설명한다.
도 8은 -(A×B) 곱을 위한 부스 레코딩 로직을 구현하기 위한 로직 셀을 제공한다.
도 9는 설명된 요지가 부스 곱셈에서 감산을 어떻게 처리하는지에 대한 표를 나타낸다.
도 10은 설명된 요지의 다른 교지에 따른 16×16 부스 곱셈 감소 트리를 나타낸다.
여기서 제공되는 변경된 부스 곱셈기에 대한 설명된 요지는 다중-스레드 처리(multi-threaded processing)를 수반하는 것을 포함해서 매우 광범위한 디지털 신호 처리 애플리케이션들에서 사용된다. 하나의 이러한 애플리케이션은 원격통신에서, 특히, 하나 이상의 디지털 신호 처리 회로들을 이용하는 무선 핸드셋들에서 나타난다. 그 결과, 아래의 도 1 내지 도 3은 본 교지들이 유용할 수 있는 원격통신 DSP를 설명한다. 도 4는 개선된 부스 곱셈 연산에 대한 본 발명이 동작할 수 있는 곱셈 처리의 데이터 경로를 설명한다. 그러나, 여기서 설명되는 구현은 설명된 요지가 적용될 수 있는 가상적으로 무제한적인 애플리케이션 세트 중 하나를 제공한다는 것을 기억하자.
무선 핸드셋이 어떻게 사용되는지를 설명하기 위해서, 도 1은 설명된 인터럽트 처리 방법 및 시스템의 제공된 실시예들을 구현할 수 있는 통신 시스템(10)의 간략한 블록도를 제공한다. 전송기 유닛(12)에서는, 데이터가 통상적인 블록들의 형태로 데이터 소스(14)로부터 전송(TX) 데이터 프로세서(16)에 전송되는데, 상기 전송 데이터 프로세서(16)는 하나 이상의 아날로그 신호들을 생성하기 위해서 데이터를 포맷, 코딩, 및 처리한다. 다음으로, 그 아날로그 신호들은 전송기(TMTR)(18)에 제공되고, 그 전송기(TMTR)(18)는 변조된 신호를 생성하기 위해서 기저대역 신호들을 변조, 필터링, 증폭, 및 상향변환한다. 다음으로, 그 변조된 신호는 안테나(20)를 통해서 하나 이상의 수신기 유닛들에 전송된다.
수신기 유닛(22)에서는, 전송된 신호가 안테나(24)에 의해 수신되어 수신기(RCVR)(26)에 제공된다. 수신기(26) 내에서, 수신된 신호는 동위상(I) 및 직교위상(Q) 샘플들을 생성하기 위해서 증폭, 필터링, 하향변환, 복조, 및 디지털화된다. 다음으로, 그 샘플들은 전송된 데이터를 복원하기 위해서 수신(RX) 데이터 프로세서(28)에 의해 디코딩되고 처리된다. 수신기 유닛(22)에서의 인코딩 및 처리는 전송기 유닛(12)에서 수행되는 코딩 및 처리와 상보적인 방식으로 수행된다. 다음으로, 복원된 데이터가 데이터 싱크(30)에 제공된다.
위에 설명된 신호 처리는 음성, 비디오, 패킷 데이터, 메시징, 및 한 방향으로의 다른 타입들의 통신을 전송하는 것을 지원한다. 양방향성 통신 시스템은 2-방향 데이터 전송을 지원한다. 그러나, 다른 방향에 대한 신호 처리는 간략성을 위해서 도 1에 도시되어 있지 않다. 통신 시스템(10)은 CDMA(code division multiple access) 시스템, TDMA(time division multiple access) 통신 시스템(예컨대, GSM 시스템), FDMA(frequency division multiple access) 통신 시스템들, 또는 지상 링크를 통해 사용자들 간의 음성 및 데이터 통신을 지원하는 다른 다중 액세스 통신 시스템일 수 있다. 특정 실시예에서, 통신 시스템(10)은 W-CDMA 표준을 따르는 CDMA 시스템이다.
도 2는 도 1의 전송 데이터 프로세서(16) 및 수신 데이터 프로세서(28)로서 기능할 수 있는 DSP(40) 구조를 나타낸다. 한번 더, DSP(40)는 여기서 제공되는 교지들 및 개념들을 효과적으로 사용할 수 있는 매우 많은 수의 가능한 디지털 신호 프로세서 중 하나의 실시예만을 나타낸다는 것이 강조된다. DSP(40)에서는, 따라서, 스레드들(threads) T0:T5(참조번호들 42 내지 52)가 다른 스레드들로부터의 명령들 세트들을 포함한다. 회로(54)는 명령 액세스 메커니즘을 나타내고, 스레드들 T0:T5에 대한 명령들을 페칭하기 위해 사용된다. 회로(54)에 대한 명령들은 명령 대기열(56)에서 대기된다. 명령 대기열(56) 내의 명령들은 프로세서 파이프라인(66)에 발행되기 위해 대기한다(아래 참조). 명령 대기열(56)로부터, 단일 스레드, 예컨대 스레드 T0가 발행 로직 회로(58)에 의해서 선택될 수 있다. 선택된 스레드의 레지스터 파일(60)이 판독되고, 판독된 데이터가 슬롯 0 내지 슬롯 3에 대한 실행 데이터 경로들(62)에 전송된다. 슬롯 0 내지 슬롯 3은, 본 예에서는, 본 실시예에서 이용되는 패킷 그룹화 결합을 제공한다.
실행 데이터 경로들(62)로부터의 출력은 DSP(40)의 연산들의 결과들을 반환하기 위해 개별적인 스레드들 T0:T5를 수용하도록 구성되는 파일 기록 회로(64)로 간다. 따라서, 회로(54)로부터 다양한 스레드들에 따라 분할되는 레지스터 파일 기록 회로(64) 이전까지의 데이터 경로는 처리 파이프라인(66)을 형성한다.
본 실시예는 최대 6 개의 스레드들 T0:T5을 갖는 단일 마이크로프로세서를 사용하는 헤테로지니어스 엘리먼트 프로세서(HEP) 시스템의 하이브리드를 이용할 수 있다. 프로세서 파이프라인(66)은 회로(54)로부터의 데이터 아이템을 레지스터들(60 및 64)에 페칭하는데 필요한 최소 수의 프로세서 사이클들에 일치하는 6 개의 스테이지들을 갖는다. DSP(40)는 프로세서 파이프라인(66) 내에서 상이한 스레드들 T0:T5의 명령들을 동시에 실행한다. 즉, DSP(40)는 6 개의 독립적인 프로그램 카운터들, 프로세서 파이프라인(66) 내에서 스레드들 T0:T5의 명령들을 구별하기 위한 내부 태깅(tagging) 메커니즘, 및 스레드 스위치를 트리거링하는 메커니즘을 제공한다. 스레드-스위치 오버헤드는 제로 사이클로부터 단지 수 사이클까지 변한다.
그러므로, DSP(40)는 광범위한 신호, 이미지 및 비디오 처리 애플리케이션들 에 대해 고성능 및 저전력을 위해 설계된 범용 디지털 신호 프로세서를 제공한다. 도 3은 설명된 요지의 한 표현을 위한 연관된 명령 세트 구조의 일부 양상들을 포함해서 DSP(40) 구조의 간략한 개요를 제공한다. DSP(40) 구조의 구현들은 인터리빙된 다중스레딩(IMT)을 지원한다. 이러한 실행 모델에 있어서, 하드웨어는 파이프라인의 상이한 스레드들로부터의 명령들을 인터리빙함으로써 다수의 하드웨어 스레드들 T0:T5의 동시적인 실행을 지원한다. 이러한 특징은 DSP(40)로 하여금 적극적인(aggressive) 클록 주파수를 포함하는 동시에 높은 코어 및 메모리 활용을 유지하도록 한다. IMT는 비순차적(out-of-order) 실행, 광범위한 전송 네트워크들 등과 같은 고비용의 보상 메커니즘들을 필요로 하지 않고도 높은 스루풋(throughput)을 제공한다.
도 3은, 더 상세하게, 설명된 요지의 교지들을 이용할 수 있는 단일 스레드에 대한 프로그래밍 모델의 일실시예의 구조 블록도를 제공한다. 블록도(70)는 AXI 버스(74)로부터 명령들을 수신하는 전용 명령 캐시들(72)을 나타내는데, 그 명령들은 스레드들 T0:T5의 시퀀서(76), 사용자 제어 레지스터(78) 및 슈퍼바이저 제어 레지스터(80)에 대한 혼합된 16-비트 및 32-비트 명령들을 포함한다. 시퀀서(76)는 하이브리드 2-방향 슈퍼스칼라 명령들 및 4-방향 VLIW 명령들을 S-파이프 유닛(82), M-파이프 유닛(84), Ld-파이프(86), 및 Ld/St-파이프 유닛(88)에 제공한다. AXI 버스(74)는 또한 공유 데이터 캐시(90)를 통해서 스레드들 T0:T5에 LD/ST 명령들을 통신한다. 외부 DMA 마스터(94)를 통해, 공유 데이터 TCM(96)은 LD/ST 명령들을 통신하는데, 상기 LD/ST 명령들은 또한 스레드들 T0:T5로 간다. AHB 주변 버스(98)로부터, MSM 특정 제어기(100)는 인터럽트 제어기 명령들, 디버깅 명령들, 및 타이밍 명령들을 포함하는 TO:T5를 가진 인터럽트 핀들을 통신한다. 글로벌 제어 레지스터들(102)이 스레드들 T0:T5를 가진 제어 레지스터 명령들을 통신한다.
도 3의 M-파이프(84)에서 제공되는 바와 같은 단일-스레드 처리의 구조 내에서는, 고속의 수학 처리가 발생한다. 곱셈 블록(118) 내에서 곱셈의 타이밍은 M-파이프(84)의 동작들이 적절히 이루어지도록 보장하기 위해서 중요하다. 설명된 요지가 적용될 수 있는 임의의 애플리케이션에도 유사한 타이밍 고려들이 존재하기 매우 쉽다. 따라서, 부스 곱셈 처리가 발생하는 속도는 여기서 설명되는 요소의 독특하게 신규한 양상을 제공한다.
이러한 시간 제약들을 충족시키기 위해서, 설명된 요지는 두 수치들의 곱(A×B)이나 또는 두 수치들의 곱의 덧셈 역원(-(A×B))을 수행할 수 있는 부스 곱셈을 사용한다. 또한, 본 발명은 부스 감소 트리 및 부호 확장 처리에 라운딩 컨스턴트(rounding constant)를 포함시키기 위한 방법을 포함하고, 상기 방법은 전력 및 영역을 감소시킨다. 게다가, 본 발명의 부스 곱셈 처리들은, 심지어 곱셈이 비부호 피연산자들에 대해 수행될지라도, 부분곱들이 부호화된 수치들로 되는 것을 필요로 한다. 일부 부분곱들은 네거티브적일 수 있기 때문에, 부스 곱셈을 수행하기 위한 2의 보수 회로는 곱셈 곱의 네거티브 값을 생성하기 위해서 통상적인 부스 곱셈기에 대한 변경을 허용한다. -(A×B)를 효율적으로 생성하는 능력은 [Z + -(A×B)] 형태의 연산들을 포함하는 많은 DSP 애플리케이션들에 큰 영향을 준다. 이 러한 MAC 연산들(multiply accumulate operations)은 본 발명에 의해 가능하다.
도 4는 설명된 요지의 다양한 구현을 위한 데이터 경로도(180)를 나타내고, 본 부스 곱셈 처리가 이루어질 수 있는 데이터 흐름을 설정한다. 특히, 곱셈 블록(118)은 Rs 및 Rt 입력을 수신한다. 곱셈 블록(118) 내에는 곱셈 유닛들(M0:M3)이 존재한다. 특히, MO 곱셈기 유닛(182), M1 곱셈기 유닛(184), M2 곱셈기 유닛(186), 및 M3 곱셈기 유닛(188)은 개별적으로 Rs 및 Rt 입력을 수신하여, 시프트/부호-확장 유닛(148)으로 출력되는 SOCO(즉, Sum0 및 Carry0), S1C1, S2C2, 및 S3C3를 각각 생성한다. 시프트/부호-확장 유닛(148)은 이러한 중간 중복 곱들의 로직컬 시프트들 및 부호 확장을 담당한다.
따라서, 곱셈 블록(118)은 M-파이프(84)에 대한 곱셈 관련 명령들을 수행한다. 이러한 명령들은 16×16 곱셈 처리를 기본적으로 사용하는 복합 명령들로서 처리될 수 있다. 그 곱셈 블록은 4 개의 16×16 곱셈기 유닛들(MO:M3)로 구성된다. 각각의 곱셈기 유닛(M0:M3)은 매우 다양한 M-타입 명령들을 지원하기 위하여 몇몇 모드들에서 기능할 수 있다. 부호 및 비부호 모드들이 지원된다. 그 곱셈기들은 또한 곱에 대해 감산이 수행될 필요가 있는 경우에 그들의 곱들의 2의 보수를 생성할 수 있다.
설명된 요지를 통해서, MO:M3 곱셈기들(182 내지 188)은 radix-4 부스 인코딩을 사용한다. 비부호 모드에 있어서, 그들은 부호 비트로서 가능한 가외의 17번째 비트를 갖는 17×17 곱셈기와 비슷하다. 배정밀도 곱셈(즉, 32×32 곱셈)을 제외하고, 모든 다른 곱셈 명령들은 "부호×부호" 또는 "비부호×비부호"이다. 16× 16 곱셈기들을 사용하여 배정밀도 32×32 곱셈들 및 32×16 곱셈들을 계산하는 것도 역시 "부호×비부호" 및 "비부호×부호" 곱셈들을 필요로 한다. 이러한 모드들 모두는 MO:M3 곱셈기들(182 내지 188)의 곱셈기 피연산자들 및 곱셈의 부호 비트들을 제어함으로써 지원된다.
시프트/부호-확장 유닛(148)으로부터의 출력은 다중-피연산자 가산기(150)로 가고, RO:R3 입력으로 분석될 수 있다. 다중-피연산자 가산기(150)는 이러한 RO:R3 입력들을 수신하고, 궁극적으로는, 한 세트의 압축 및 누산 스테이지들 이후에, Rdd 출력들(170)을 제공한다.
데이터 경로(180)는 4 개의 단계들로 분할될 수 있는 것으로 이해될 수 있다. 무엇보다도, 데이터 라운딩 단계에 있어서는 Rs 및 Rt 소스 레지스터들로부터의 데이터가 곱셈 블록(118)에 제공된다. 곱셈 블록(118) 내에서는, 소스 피연산자들로부터의 16-비트 하프-워드들(half-words)이 명령에 기초하여 4 개의 MO:M3 곱셈기 유닛들(182 내지 188)에 라우팅된다. 다음으로, 부분곱 생성 및 감소 벡터 가산 또는 감산이 발생하는데, 여기서는 MO:M3 곱셈기 유닛들(182 내지 188)이 radix-4 부스 인코딩을 사용하여 부분곱들을 생성하고, 중복적인 출력들 쌍에 대해 감소를 사용하여 상기 부분곱들을 감소시킨다.
다중-피연산자 감소 단계 동안에, 곱셈 블록(118)으로부터의 중복 출력들은 다중-피연산자 가산기에 입력되고, 상기 다중-피연산자 가산기에서는 이러한 입력들 및 선택적인 누산기/라운드 값을 두 쌍들의 중복 출력들로 감소시킨다. 마지막으로, 가간/감산 단계에서는, 중복 출력들이 캐리 전파 가산을 사용하여 결정되고, 포화가 적용가능할 때 수행된다.
따라서, 설명된 요지는 이러한 값들의 변경된 부스 곱셈을 제공한다. 이러한 복소 값들을 통해, 입력들은 낮은 하프워드의 실수 16-비트 값 및 높은 하프워드의 허수 16-비트 값을 갖는다. 곱셈 결과들은 0-1 비트들에 의해서 선택적으로 스케일링된다. 라운딩 컨스턴트가 각각의 실수 및 허수 합에 가산된다. 실수 및 허수 부분들은 32 비트들까지 각각 포화된다. 32-비트 결과들 각각의 상위 16-비트들은 32-비트 목적 레지스터에 팩킹된다(packed).
본 예에서, SO:S3 및 C0:C3은 33-비트들의 범위에 걸친다. 비록 16×16 곱셈의 출력이 32-비트들로 표현될 수 있지만, 일부 명령들은 비부호 모드에서 동작하고, 가외의 비트가 이 경우에는 부호 확장을 용이하게 하기 위해 부호 비트로서 사용된다. SO:S3 및 CO:C3이 시프트/부호-확장 유닛(148)을 통해 보내진다. SO:S1 및 CO:C1이 팩킹 이전에 최종 결과의 낮은 차수의 32-비트들에 기여한다. 이는 그 결과의 실수 부분을 형성한다. 이러한 4 개의 수치들은 명령에 명시되는 경우에 1-비트의 좌측 시프트에 의해 선택적으로 스케일링된다.
이러한 수치들의 시프트된 버전은 RO:R3으로 라벨링된다. RO:R3은 다중-피연산자 가산기(150)를 통해 보내진다. 다중-피연산자 가산기(150)로부터의 출력은 포화/가산 유닛(170)으로 간다.
도 5는 설명된 요지에 적용가능한 변경된 16×16 radix-4 부스 곱셈 트리를 제공함으로써 그 설명된 요지의 부스 곱셈 처리를 이해하는데 도움을 준다. 개념적인 도 5의 도표(200)는 설명된 요지의 16×16 곱셈기들 상에서의 radix-4 부스 인코딩을 나타내는데, 이는 9 개의 부분곱들(202, 204, 206, 208, 210, 212, 214, 216, 및 218)을 유도한다. 그 9 개의 부분곱들은 4:2 압축의 한 레벨이 후속하는 3:2의 두 레벨들로 구성된 감소 트리를 사용하여 두 개의 32-비트 중복 출력들(S0:S3 및 C0:C3)까지 감소된다. 비록 32-비트들의 정밀도가 16×16 곱셈의 경우에 충분하지만, 33번째 비트가 또한 비부호 곱셈의 경우에 부호 비트로서 기능하도록 보존된다. 33번째 열로부터의 추가적인 캐리-아웃 비트(carry-out bit)가 또한 부호 확장에 있어 도움을 주기 위해 곱셈기로부터 출력된다.
도 5를 추가적으로 참조하면, 각각의 부분곱 행(220 내지 236)은 수평으로 도시된 다수의 피승수 비트들(238)이다. 열의 수치들이 도 5의 상단에 표시되어 있다. 승수 비트들(240)이 수직으로 도시되어 있고, 이러한 비트들은 부분곱 행들(220 내지 236)을 형성하기 위해서 곱셈 인자들을 생성하도록 레코딩된다. 도 5에 도시된 신호들(n0 내지 n7)은 네거티브 가중치를 수신하는 부분곱 행들(220 내지 236)에 가산되는 스틱키 "1"을 나타낸다. 이들은 곱의 마지막 인버전을 필요로 하지 않는 곱셈을 처리하기에 충분하다. 곱셈기에서 절대적으로 -(A×B)의 경우를 처리하기 위해서, 추가적인 신호(n8)가 제공된다.
신호들(s0 내지 s7)은 곱셈 연산의 곱이 곱셈기 트리 내에서 절대적으로 감산될 때 부호 확장을 처리한다. 만약 A 및 B가 피승수 및 승수인 것으로 각각 가정되면, radix-B 부스 인코딩은 곱셈기 피연산자(B)의 3 비트들의 그룹들을 인코딩하고 또한 세트 {-2A, -A, 0, A, 2A}로부터 부분곱들을 선택하기 위해 이러한 인코딩을 사용함으로써 진행한다. 이제, 만약 최종 곱(A×B)이 감산될 필요가 있다면, 그것은 A×-(B)를 가산하는 것과 동일하다. 승수는 이제 B로부터 -(B)로 변경된다.
도 6은 설명된 요지를 구현하기 위한 부스 레코더 회로(250)를 제공한다. 부스 레코더 셀(250)은 XOR(256)에서의 LSB 입력(254)부터 인버터 XOR(260)에서의 MSB 입력(258)까지의 범위에 있는 승수 그룹 입력(252)을 포함한다. MSB 입력(258)은 또한 부스 레코더 회로(250)로부터 출력되는 "neg"를 제공한다. XOR(256)로부터의 출력은 부스 레코더(250)로부터의 A×1 신호(A)를 나타내고, 또한 인버터 XOR(264)에 입력을 제공한다. 인버터 XOR(260)로부터의 출력은 또한 부스 레코더 회로(250)로부터 A×2 신호(2A)를 생성하기 위해서 인버터 XOR(264)에 입력을 제공한다. XOR(264)은 부스 레코더 회로(250)로부터의 니게이션("neg":negation)을 나타내기 위해서 출력을 제공한다. 따라서, 부스 레코더 회로(250)는 승수(B)의 3-비트들을 검사하고, 그 3-비트들을 신호들 "A", "2A" 및 "neg"에 레코딩한다. 감산이 수행될 필요가 있을 때, "neg" 신호는 곱 A×B의 2의 보수를 생성할 부분곱들을 생성하기 위해서 인버팅된다.
도 7은 설명된 요지를 통해 도 6의 로직 셀에 대한 비트 그룹화를 나타낸다. 특히, radix-4 부스 레코딩은 9 개의 부분곱들을 생성하기 위해서 A의 승수들로서 사용되는 16-비트 승수(B)로부터의 9 개의 곱셈 인자들을 생성한다. 0 내지 8의 범위에 있는 "n"에 대해서, 도 7의 표는 비트 그룹들에 대한 부스 곱셈 인자 B[2n+1:2n-1]를 결정한다. 본 실시예의 레코딩 방식에 있어서, B[-1]은 제로인 것으로 가정된다. B[16] 및 B[17]은 B가 비부호 수인 경우에 제로이고, B가 부호 수 인 경우, 즉, B[17]=B[16]=B[15]인 경우에 B의 부호 확장이다. 곱셈 인자들은 3 개의 신호들, 즉, XOR(256)로부터의 A, XOR(264)로부터의 2A 및 MSB 입력(262)으로부터의 "neg"로 기록된다. 따라서, A에 대한 곱셈 인자가 -2일 때, 신호들(2A 및 neg)는 하이이다. 마찬가지로, +1의 경우에는, 단지 A만이 하이일 것이고, 모든 3 개의 신호들은 +/-0에 대해서 로우일 것이다. 또한, 곱 A×B를 생성하는 경우에는 최상위비트 그룹에 대한 곱셈 인자 B[17:15]는 항상 파저티브라는 것을 주시하자. 이제는, B[17:15]에 대한 단지 가능한 비트 그룹들이 B가 비부호화된 경우에는 [000] 또는 [001]이고, B가 부호화된 경우에는 [000] 또는 [111]이다. 도 7로부터, 모든 이러한 그룹들은 파저티브 곱셈 인자를 유도한다. 따라서, 여기서 설명되는 부스 곱셈 멀티플렉서들은 부분곱들을 생성하기 위해서 세트 {0, A, 2A}로부터 선택할 수 있다.
도 8은 -(A×B) 곱에 대한 부스 레코딩 로직을 구현하는 부스 레코더 회로(270)를 제공한다. 부스 레코더 셀은 XOR(276)에서의 LSB 입력(274)부터 인버터 XOR(280)에서의 MSB 입력(278)까지의 범위에 있는 승수 그룹 입력(272)을 포함한다. "감산" 입력(282) 및 MSB 입력(278)은 XOR(284)로 간다. XOR(276)로부터의 출력은 부스 레코더(270)로부터의 피승수 A를 나타내고, 또한 인버터 XOR(286)에 입력을 제공한다. 인버터 XOR(280)로부터의 출력은 또한 부스 레코더 회로(270)로부터 2A 신호를 생성하기 위해서 인버터 XOR(286)에 입력을 제공한다. XOR(864)은 부스 레코더 회로(270)로부터의 "neg" 출력을 제공한다.
따라서, 도 8은 피승수(A)와 승수(B)의 곱의 네거티브 값이 A와 B의 네거티 브 값의 곱을 계산함으로써 획득된다는 특성을 이용한다. 따라서, 이는 곱 A×B를 제일먼저 계산하고 이어서 -(A×B)를 얻기 위해 그 곱의 2의 보수를 계산하는 공지된 두 단계 처리를 회피한다. 부스 레코더 회로(270)는 곱셈 스테이지와 병렬로 니게이션(negation)을 수행한다.
곱의 2의 보수는 -(A×B)가 A×(-B)와 동일하다는 사실을 활용한다. 이 경우에, 피연산자(-B)는 승수로서 처리된다. (-B)를 승수로서 사용하여 생성되는 부스 곱셈 인자들은 B를 곱셈기 피연산자로서 사용하여 생성되는 상응하는 곱셈 인자들의 덧셈 역원들이다. 곱 A×B를 계산하는데 사용된 부스 곱셈 하드웨어 구조가 부스 곱셈 인자들 각각의 부호들을 인버팅함으로써 A×(-B)를 계산하기 위해 재사용될 수 있다. 이러한 부호는 부스 레코더 회로(270)의 "neg" 신호에 의해 결정되는데, 이는 곱을 니게이팅(negating)하는데 있어서 "-neg" 신호를 생성하기 위한 레코딩 하드웨어에 대한 변경이다.
부스 레코더 회로(270)에서는 XOR 게이트(284)가 비-핵심 경로(non-critical path) 상에 있어서 핵심 경로에 기여하지 않는다는 것을 주시하자. 대신에, 핵심 경로는 신호들(A 및 2A)을 생성하기 위한 승수 비트들을 포함한다. 부분곱들을 위한 곱셈 인자들의 부호를 인버팅시키는 이러한 처리는 마지막 부분곱 행의 부호가 네거티브일 수 있는 경우들을 유도한다. 따라서, 신호 "n8"가 위의 도 5에서 나타난 바와 같이 곱셈 트리에 가산될 수 있다. 행을 추가하는 것은 추가적인 행을 수용하기 위해서 감소 스테이지를 변경함으로써 감소될 수 있다. 그러나, 이는 추가적인 지연 및 연관된 하드웨어를 의미할 수 있다.
여기서 제공되는 처리는 감소 스테이지에서 추가적인 행을 포함하지 않고, 대신에 곱셈 트리에 대해 논리적인 변경을 수행함으로써 부분곱들의 기존의 9 개의 행들에 n8 신호를 포함시키는 것에 초점을 둔다. 곱셈 트리에 추가되는 지연은 최소적이다.
PProw _ columm 형태의 각 "도트"를 지칭하는 표기는 설명된 요지의 이러한 양상에 대한 이해를 획득하는데 도움을 준다. 도 9를 참조하면, 곱셈 트리의 각각의 이진 비트(도트)는 행렬에서 고유의 가중치 및 위치를 갖는다. 동일한 열 내의 모든 비트들은 동일한 가중치를 갖고, 그 가중치들이 유지되는 한은 임의의 순서에 따라 감소될 수 있다. 행들은 '0'에서 시작해서 상단으로부터 하단까지 번호가 매겨지고, 열들은 '0'에서 시작해서 우측으로부터 좌측으로 번호가 매겨진다. 이러한 표기를 사용하면, n8은 PP10 _ 16와 동일하다. PP0 _16, PP0 -17, PP0 -18 및 PP0 -19가 radix-4 부스 인코딩을 갖는 공지된 스케일링 및 부호 확장 처리들을 사용하여 생성된다. 이러한 해결법을 통해, n8을 곱셈 트리에 포함시키는 것이 가능하다. 따라서, 부호 및 비부호 곱셈 모드들 양쪽 모두에서 PP0 _16, PP0 -17, PP0 -18 및 PP0 -19에 대한 모든 가능한 비트 값들을 분석함으로써, n8이 삽입될 수 있는 위치가 모든 가능한 부스 곱셈 인자들에 대해 결정될 수 있다.
도 9는 부분 곱 행 '0'의 4개의 최상위 비트들에 대한 값들의 범위 및 신호 n8을 이러한 4-비트 필드에 더한 효과를 열거한다. MUX 구조는 n8이 하이일 때 4-비트 필드의 변경된 값을 선택하는 것을 허용한다. 즉, 설명된 처리는, 만약 신호 n8이 열 16, 즉, P0_16에서 더해진다면 부분곱 행 '0'의 4 최상위 비트들의 값을 사전에 계산하고, 이러한 변경된 4-비트 필드를 감소 스테이지에서 사용한다. MUX 구조는 일단 PP0_16(표에서 "a"로 도시되었음)이 표준 부스 다중화 회로를 사용하여 계산되도록 최적화된다. n8에 기초한 변경된 4-비트 필드가 그 이후에 최소의 지연을 통해 결정된다. 곱셈 처리의 나머지는 곱 A×B를 생성하기 위한 정규 변경 흐름과 동일하다.
도 10은 설명된 요지의 추가적인 양상들에 적용될 수 있는 변경된 16×16 radix-4 부스 곱셈 트리를 제공한다. 도 10으로부터, 본 발명의 중요한 부호 확장 및 라운딩 컨스턴트 함수들을 이해하는 것이 가능하다. 16×16 곱셈기의 감소 스테이지에 대한 변경은 9개의 부분곱 행들을 통한 핵심 경로를 최소화하고, 곱이 중복 합-캐리 형태로 이용될 수 있을 때 부호 확장을 효율적으로 제공한다. 도 10은 16×16 radix-4 부스 곱셈기에 대한 변경된 감소 트리(304)를 나타낸다. 변경된 감소 트리(304)는 부호 및 비부호 피연산자들을 수용하고, 곱을 니게이팅하는 잠재성을 갖는다.
제 1 감소 스테이지는 전가산기들의 3 개의 행들을 사용하여 9 개의 행들을 6 개의 행들로 감소시킨다. 제 2 감소 스테이지는 전가산기들의 2 개의 행들을 사용하여 6 개의 행들을 4 개의 행들로 감소시킨다. 제 3 및 마지막 감소 스테이지는 4 개의 행들을 최종적인 중복 합 및 캐리 행들로 감소시키기 위해서 4:2 다중-피연산자 가산기들의 행을 이용한다. 비록 합 및 캐리의 32 비트들이 16×16 곱을 나타내기에 충분하지만, 추가적인 비트가 부호 확장이 비부호 곱셈을 위해 정확히 처리되는 것을 보장한다.
도 10은 또한 곱을 형성하는 하부 32 비트들보다 높은 열들(306)을 나타낸다. 본 발명은 마지막 부분곱 행(308)에 대한 부호 비트 n8를 도입하기 위해서 열 #32 위로부터의 부스 곱셈 트리를 변경한다. 이러한 부호 비트 s8는 만약 곱이 부호 확장을 필요로 하지 않는다면 필요하지 않다. 이제는, 부분곱 행(8)의 정확한 부호를 보존하기 위해서, 처리는 부분곱 행(308)을 1비트씩 확장하는 것을 포함한다. #32보다 높은 열들은 마지막 감소 스테이지까지 영향을 받지 않는다. 이러한 점에서, 신호(~s8)는 열 #31로부터 캐리-아웃을 통해 결정되고, ""로서 도시된 캐리-아웃(310)을 생성한다.
캐리-아웃 ""(310)를 열 #33 위로부터의 한 확장에 더함으로써 최종적인 곱이 형성된다. 그 결과로 를 부호로서 갖는 마지막 곱의 합 성분이 부호-확장되고, 반면에 마지막 곱의 캐리 성분들이 제로-확장된다. 이러한 단계들은 합 및 캐리 성분들 양쪽 모두를 부호-확장할 필요성을 제거한다. 예컨대, 만약 16×16 곱셈이 32-비트 곱에 16-비트 값을 누산하는 것을 필요로 하는 MAC 연산의 일부라면, 32-비트 곱을 64 비트 수에 가산하기 이전에 그 32-비트 곱을 64-비트들로 부호-확장하는 것이 필요할 것이다. 만약 중간 32-비트 곱이 중복 형태로 남고 또한 여기서 제공되는 부호 확장 처리가 적용된다면, 캐리 성분들을 31-비트들 이상으로 부호-확장하기 위해 사용된 MUX들을 제거할 수 있는 가능성으로 인해서 상당한 전 력 절감이 발생할 수 있다.
도 10을 다시 참조하면, 본 발명은 라운딩 컨스턴트를 승수(B)에 더하는 능력을 또한 제공한다. DSP 연산들에서 16×16 곱셈에 통상적인 라운딩 컨스턴트는 0x8000이다. 16×16 곱셈의 곱을 라운딩하는 것은 일반적인 연산인데, 이는 통상적으로 2 단계 연산으로서 수행되고, 여기서 곱셈기는 곱을 생성하기 위해 제일먼저 사용되고, 이어서 라운딩 컨스턴트가 그 곱에 더해진다.
위에 설명된 표기를 사용함으로써, PP8_15는 '0'이라는 것을 도 10에서 주시하자. 곱셈 행렬의 이러한 비트 위치에 "1'을 삽입함으로써, 곱을 제일먼저 생성하고 이어서 0x8000인 값을 그 곱에 더함으로써 획득되어진 동일한 결과를 생성하는 것이 가능하다. 이러한 처리는 또한 핵심 경로에 어떠한 레이턴시도 추가하지 않는다.
만약 곱셈 블록(118)의 하드웨어가 곱셈의 곱에 하나의 누산-피연산자를 더할 수 있는 능력으로 제한된다면, 곱셈의 곱이 라운딩될 필요가 있을 때 누산-피연산자를 통해 라운딩 컨스턴트를 다중화하는 것이 일반적이다. 이는 곱셈의 곱에 대해 라운딩 및 누산 연산들 양쪽 모두를 단일 단계에서 수행하는 것을 어렵게 한다. 그러나, 여기서 설명된 처리를 사용함으로써 이러한 제한들이 제거된다.
요약하면, 설명된 요지는 통신(예컨대, CDMA) 시스템에서 전송을 처리하는 것을 포함해서 디지털 신호 프로세서의 설계 및 사용을 위한 처리들을 제공한다. 설명된 방법 및 시스템은 디지털 신호 프로세서에서 부스 곱셈을 수행하기 위한 개선된 감소 트리 회로를 갖는 부스 곱셈기를 포함한다. 상기 방법 및 시스템은 제 1의 다수의 비트들을 포함하는 피승수(A) 및 제 2의 다수의 비트들을 갖는 승수(B)를 결정한다. 설명된 요지는 곱셈 인자들의 제 1 미리 결정된 정수 "n"을 생성하기 위해서 radix-m(예컨대 radix-4) 부스 레코딩을 B에 대해서 수행한다. "n"개의 곱셈 인자들은 제 2의 다수의 비트들의 수의 절반에 가깝다. 상기 방법 및 시스템은 또한 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들을 생성한다. 다음으로, radix-m 부스 인코딩을 사용하여 곱셈 트리가 형성된다. 네거티브 곱셈 인자의 경우에, 본 발명은 A의 2의 보수를 달성하기 위해서 A의 제 1의 다수의 비트들을 인버팅하고 스틱키 "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하는 것을 포함한다. 게다가, 그 처리는 다수의 곱셈 스테이지들에서의 곱셈 인자들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키는 것을 포함한다.
본 발명은 또한 [Z + -(A×B) + 라운딩 컨스턴트]의 형태인 MAC 연산들에서 사용될 수 있는 변경된 부스 곱셈기의 기술적인 장점들을 제공한다. 이러한 곱셈기는, (a) 부스 곱셈 인자들을 니게이팅하고 또한 가외의 스틱키 비트를 감소 트리에 포함시키며, (b) 라운딩 컨스턴트를 감소 트리에 채울 장소를 찾고, (c) 중복적인 합의 부호 확장을 단지 필요로 하는 부호 확장 처리를 사용함으로써, 지연, 전력, 및 하드웨어를 최소화한다.
또한, 여기서 설명된 처리 특징들 및 기능들은 다양한 방식들로 구현될 수 있다. 예컨대, 많은 DSP(40)가 위에서 설명된 연산들을 수행할 뿐만 아니라, 본 실시예들은 ASIC(application specific integrated circuit), 마이크로제어기, 마이크로프로세서, 또는 여기서 설명된 기능들을 수행하도록 설계된 다른 전자 회로들로 구현될 수 있다. 그러므로, 본 실시예들에 대한 위의 설명은 당업자가 청구 된 요지를 실시하고 이용할 수 있도록 제공되었다. 이러한 실시예들에 대한 다양한 변경들이 당업자들에게는 쉽게 자명할 것이고, 여기서 정의된 포괄적인 원리들은 혁신적인 기능을 사용하지 않고도 다른 실시예들에 적용될 수 있다. 따라서, 청구된 요지는 여기서 설명된 실시예들로 제한되도록 의도되지 않고, 여기서 설명된 원리들 및 신규한 특징들에 부합하는 광범위한 범위로 제공되어야 한다.
Claims (25)
- 디지털 신호 프로세서에서 부스 곱셈(Booth multiplication)을 수행하기 위한 방법으로서, 상기 방법은,상기 디지털 신호 프로세서에 의해서, 제 1의 다수의 비트들을 포함하는 피승수(multiplicand)(A) 및 제 2의 다수의 비트들을 포함하는 승수(multiplier)(B)를 결정하는 단계;상기 디지털 신호 프로세서에 의해서, 제 1 미리 결정된 수(n)의 곱셈 인자들을 생성하기 위해 B에 대해 radix-m 부스 레코딩을 수행하는 단계 ;상기 디지털 신호 프로세서에 의해서, 상기 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들(partial products)을 생성하는 단계;네거티브 곱셈 인자의 경우에, 상기 디지털 신호 프로세서에 의해서, A의 2의 보수를 달성하기 위해 A의 제 1의 다수의 비트들을 인버팅하고 또한 스틱키(sticky) "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하는 단계;상기 디지털 신호 프로세서에 의해서, 다수의 감소 스테이지들에서 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트(set of sum and carry components)로 감소시키는 단계; 및상기 합 및 캐리 성분들의 세트에 기초하여, 상기 디지털 신호 프로세서에 의해서 A 및 B의 곱을 생성하는 단계를 포함하는,부스 곱셈 수행 방법.
- 제 1항에 있어서, 상기 피승수(A) 및 승수(B)를 결정하는 단계는 16×16 곱셈기를 사용하여 A 및 B를 결정하는 단계를 더 포함하는,부스 곱셈 수행 방법.
- 제 1항에 있어서,상기 디지털 신호 프로세서에 의해서, 곱셈 인자들의 덧셈 역원(additive inverse)을 결정함으로써 -B를 승수로서 설정하여 A 및 B의 네거티브 곱을 결정하는 단계; 및상기 디지털 신호 프로세서에 의해서, [Z + -(A×B)] 형태의 피가수(summand)로서 곱을 생성하는 단계를 더 포함하고,상기 Z는 상기 디지털 신호 프로세서에서 누산될 값을 나타내는,부스 곱셈 수행 방법.
- 제 1항에 있어서, 상기 디지털 신호 프로세서에 의해서, 상기 부분곱들 중 적어도 하나의 부분곱의 미리 결정된 비트에 스틱키 "1"을 삽입함으로써 A 및 B의 곱셈에 라운딩 컨스턴트(rounding constant)를 가산하는 단계를 더 포함하는,부스 곱셈 수행 방법.
- 제 1항에 있어서,상기 B에 대해 radix-m 부스 레코딩을 수행하는 단계는 9 개의 곱셈 인자들을 생성하기 위해서 B에 대해 radix-4 부스 레코딩을 수행하는 단계를 더 포함하고;상기 n 부분곱들을 생성하는 단계는 상기 9 개의 곱셈 인자들을 A의 승수들로서 사용하여 9 개의 부분곱들을 생성하는 단계를 더 포함하고;상기 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키는 단계는 상기 부분곱들을 다수의 32-비트 합 및 캐리 성분들로 감소시키는 단계를 더 포함하는,부스 곱셈 수행 방법.
- 제 1항에 있어서, 상기 디지털 신호 프로세서에 의해서, MAC 연산 동안에 부스 곱셈 처리를 64-비트 값 누산의 일부로서 수행하는 단계를 더 포함하는,부스 곱셈 수행 방법.
- 디지털 신호 프로세서에서 부스 곱셈을 수행하기 위해 상기 디지털 신호 프로세서와 관련하여 동작하기 위한 시스템으로서,제 1의 다수의 비트들을 포함하는 피승수(A) 및 제 2의 다수의 비트들을 포함하는 승수(B)를 결정하도록 구성된 처리 회로;제 1 미리 결정된 수(n)의 곱셈 인자들을 생성하기 위해서 B에 대해 radix-m 부스 레코딩을 수행하도록 구성된 곱셈기 블록;상기 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들을 생성하도록 구성되는, 상기 곱셈기 블록과 연관된 다수의 곱셈기 유닛들;네거티브 곱셈 인자의 경우에, A의 2의 보수를 달성하기 위해서 A의 제 1의 다수의 비트들을 인버팅하고 또한 스틱키(sticky) "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하도록 구성된 인버터 회로; 및다수의 감소 스테이지들에서 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키고, 상기 합 및 캐리 성분들의 세트에 기초하여 A 및 B의 곱을 생성하도록 구성되는, 상기 곱셈기 블록들과 연관된 감소 회로를 포함하는,동작 시스템.
- 제 7항에 있어서, 상기 처리 회로는 16×16 곱셈기를 사용하여 A 및 B를 결정하도록 또한 구성되는,동작 시스템.
- 제 7항에 있어서,상기 인버터 회로는 곱셈 인자들의 덧셈 역원(additive inverse)을 결정함으로써 -B를 승수로서 설정하여 A 및 B의 네거티브 곱을 결정하도록 또한 구성되고;상기 동작 시스템은 [Z + -(A×B)] 형태의 피가수(summand)로서 곱을 생성하도록 구성된 누산 회로를 더 포함하고,상기 Z는 상기 디지털 신호 프로세서에서 누산될 값을 나타내는,동작 시스템.
- 제 7항에 있어서, 상기 부분곱들 중 적어도 하나의 부분곱의 미리 결정된 비트에 스틱키 "1"을 삽입함으로써 A 및 B의 곱셈에 라운딩 컨스턴트(rounding constant)를 가산하도록 구성되는 비트 삽입 회로를 더 포함하는,동작 시스템.
- 제 7항에 있어서,상기 곱셈기 블록은 9 개의 곱셈 인자들을 생성하기 위해서 B에 대해 radix-4 부스 레코딩을 수행하도록 또한 구성되고;상기 곱셈기 유닛들은 상기 9 개의 곱셈 인자들을 A의 승수들로서 사용하여 9 개의 부분곱들을 생성하도록 또한 구성되며;상기 감소 회로는 상기 부분곱들을 다수의 32-비트 합 및 캐리 성분들로 감소시키도록 또한 구성되는,동작 시스템.
- 제 7항에 있어서, MAC 연산 동안에 부스 곱셈 처리를 64-비트 값 누산의 일부로서 수행하도록 구성된 회로를 더 포함하는,동작 시스템.
- 개인용 전자 장치의 원조로 동작하고, 또한 디지털 신호 프로세서에서 부스 곱셈을 수행하는 디지털 신호 프로세서로서, 상기 디지털 신호 프로세서는,상기 디지털 신호 프로세서에 의해서, 제 1의 다수의 비트들을 포함하는 피승수(A) 및 제 2의 다수의 비트들을 포함하는 승수(B)를 결정하기 위한 수단;상기 디지털 신호 프로세서에 의해서, 제 1 미리 결정된 수(n)의 곱셈 인자들을 생성하기 위해 B에 대해 radix-m 부스 레코딩을 수행하기 위한 수단;상기 디지털 신호 프로세서에 의해서, 상기 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들을 생성하기 위한 수단;네거티브 곱셈 인자의 경우에, 상기 디지털 신호 프로세서에 의해서, A의 2의 보수를 달성하기 위해서, A의 제 1의 다수의 비트들을 인버팅하고 또한 스틱키(sticky) "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하기 위한 수단;상기 디지털 신호 프로세서에 의해서, 다수의 감소 스테이지들에서 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키기 위한 수단; 및상기 합 및 캐리 성분들의 세트에 기초하여, 상기 디지털 신호 프로세서에 의해서 A 및 B의 곱을 생성하기 위한 수단을 포함하는,디지털 신호 프로세서.
- 제 13항에 있어서, 상기 디지털 신호 프로세서에 의해서, 16×16 곱셈기를 사용하여 A 및 B를 결정하기 위한 수단을 더 포함하는,디지털 신호 프로세서.
- 제 13항에 있어서,상기 디지털 신호 프로세서에 의해서, 곱셈 인자들의 덧셈 역원을 결정함으로써 -B를 승수로서 설정하여 A 및 B의 네거티브 곱을 결정하기 위한 수단; 및상기 디지털 신호 프로세서에 의해서, [Z + -(A×B)] 형태의 피가수(summand)로서 곱을 생성하기 위한 수단을 더 포함하고,상기 Z는 상기 디지털 신호 프로세서에서 누산될 값을 나타내는,디지털 신호 프로세서.
- 제 13항에 있어서, 상기 디지털 신호 프로세서에 의해서, 상기 부분곱들 중 적어도 하나의 부분곱의 미리 결정된 비트에 스틱키 "1"을 삽입함으로써 A 및 B의 곱셈에 라운딩 컨스턴트(rounding constant)를 가산하기 위한 수단을 더 포함하는,디지털 신호 프로세서.
- 제 13항에 있어서,상기 디지털 신호 프로세서에 의해서, 9 개의 곱셈 인자들을 생성하기 위해 B에 대해 radix-4 부스 레코딩을 수행하기 위한 수단;상기 디지털 신호 프로세서에 의해서, 상기 9 개의 곱셈 인자들을 A의 승수들로서 사용하여 9 개의 부분곱들을 생성하기 위한 수단; 및상기 디지털 신호 프로세서에 의해서, 상기 부분곱들을 다수의 32-비트 합 및 캐리 성분들로 감소시키기 위한 수단을 더 포함하는,디지털 신호 프로세서.
- 제 13항에 있어서, 상기 디지털 신호 프로세서에 의해서, MAC 연산 동안에 부스 곱셈 처리를 64-비트 값 누산의 일부로서 수행하기 위한 수단을 더 포함하는,디지털 신호 프로세서.
- 디지털 신호 프로세서에서 부스 곱셈을 수행하기 위해 내부에 포함된 컴퓨터 판독가능 프로그램 코드를 갖는 컴퓨터 사용가능 매체로서,상기 디지털 신호 프로세서에 의해서, 제 1의 다수의 비트들을 포함하는 피승수(A) 및 제 2의 다수의 비트들을 포함하는 승수(B)를 결정하기 위한 컴퓨터 판독가능 프로그램 코드;상기 디지털 신호 프로세서에 의해서, 제 1 미리 결정된 수(n)의 곱셈 인자들을 생성하기 위해 B에 대해 radix-m 부스 레코딩을 수행하기 위한 컴퓨터 판독가능 프로그램 코드;상기 디지털 신호 프로세서에 의해서, 상기 "n"개의 곱셈 인자들을 A의 승수들로서 사용하여 "n"개의 부분곱들을 생성하기 위한 컴퓨터 판독가능 프로그램 코드;네거티브 곱셈 인자의 경우에, 상기 디지털 신호 프로세서에 의해서, A의 2의 보수를 달성하기 위해 A의 제 1의 다수의 비트들을 인버팅하고 또한 스틱키(sticky) "1"을 연관시킴으로써 상기 A의 2의 보수를 형성하기 위한 컴퓨터 판독가능 프로그램 코드;상기 디지털 신호 프로세서에 의해서, 다수의 감소 스테이지들에서 부분곱들을 미리 결정된 길이의 합 및 캐리 성분들의 세트로 감소시키기 위한 컴퓨터 판독가능 프로그램 코드; 및상기 합 및 캐리 성분들의 세트에 기초하여, 상기 디지털 신호 프로세서에 의해서 A 및 B의 곱을 생성하기 위한 컴퓨터 판독가능 프로그램 코드를 포함하는,컴퓨터 사용가능 매체.
- 제 19항에 있어서, 상기 디지털 신호 프로세서에 의해서, 16×16 곱셈기를 사용하여 A 및 B를 결정하기 위한 컴퓨터 판독가능 프로그램 코드를 더 포함하는,컴퓨터 사용가능 매체.
- 삭제
- 제 19항에 있어서, 상기 디지털 신호 프로세서에 의해서, 상기 부분곱들 중 적어도 하나의 부분곱의 미리 결정된 비트에 스틱키 "1"을 삽입함으로써 A 및 B의 곱셈에 라운딩 컨스턴트(rounding constant)를 가산하기 위한 컴퓨터 판독가능 프로그램 코드를 더 포함하는,컴퓨터 사용가능 매체.
- 제 19항에 있어서,상기 디지털 신호 프로세서에 의해서, 9 개의 곱셈 인자들을 생성하기 위해 B에 대해 radix-4 부스 레코딩을 수행하기 위한 컴퓨터 판독가능 프로그램 코드;상기 디지털 신호 프로세서에 의해서, 상기 9 개의 곱셈 인자들을 A의 승수들로서 사용하여 9 개의 부분곱들을 생성하기 위한 컴퓨터 판독가능 프로그램 코드; 및상기 디지털 신호 프로세서에 의해서, 상기 부분곱들을 다수의 32-비트 합 및 캐리 성분들로 감소시키기 위한 컴퓨터 판독가능 프로그램 코드를 더 포함하는,컴퓨터 사용가능 매체.
- 제 19항에 있어서, 상기 디지털 신호 프로세서에 의해서, MAC 연산 동안에 부스 곱셈 처리를 64-비트 값 누산의 일부로서 수행하기 위한 컴퓨터 판독가능 프로그램 코드를 더 포함하는,컴퓨터 사용가능 매체.
- 제 19항에 있어서,상기 디지털 신호 프로세서에 의해서, 상기 곱셈 인자들의 덧셈 역원(additive inverse)을 결정함으로써 -B를 승수로서 설정하여 A 및 B의 네거티브 곱을 결정하기 위한 컴퓨터 판독가능 프로그램 코드; 및상기 디지털 신호 프로세서에 의해서, [Z + -(A×B)] 형태의 피가수(summand)로서 곱을 생성하기 위한 컴퓨터 판독가능 프로그램 코드를 더 포함하고,상기 Z는 상기 디지털 신호 프로세서에서 누산될 값을 나타내는,컴퓨터 사용가능 매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/356,359 US7797366B2 (en) | 2006-02-15 | 2006-02-15 | Power-efficient sign extension for booth multiplication methods and systems |
US11/356,359 | 2006-02-15 | ||
US11/355,397 | 2006-02-15 | ||
US11/355,397 US7809783B2 (en) | 2006-02-15 | 2006-02-15 | Booth multiplier with enhanced reduction tree circuitry |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080094812A KR20080094812A (ko) | 2008-10-24 |
KR101073343B1 true KR101073343B1 (ko) | 2011-10-14 |
Family
ID=38283320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087021912A KR101073343B1 (ko) | 2006-02-15 | 2007-02-13 | 개선된 감소 트리 회로를 갖는 부스 곱셈기 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1984810B1 (ko) |
JP (2) | JP5074425B2 (ko) |
KR (1) | KR101073343B1 (ko) |
WO (1) | WO2007095548A2 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797366B2 (en) * | 2006-02-15 | 2010-09-14 | Qualcomm Incorporated | Power-efficient sign extension for booth multiplication methods and systems |
RU2653310C1 (ru) * | 2017-05-24 | 2018-05-07 | федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный университет" (ФГБОУ ВО "ВГУ") | Устройство для умножения числа по модулю на константу |
CN112540743B (zh) * | 2020-12-21 | 2024-05-07 | 清华大学 | 面向可重构处理器的有无符号乘累加器及方法 |
CN117555515B (zh) * | 2024-01-11 | 2024-04-02 | 成都市晶蓉微电子有限公司 | 一种用于平衡性能与面积的数字asic串并结合乘法器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4183008A (en) | 1958-05-12 | 1980-01-08 | The United States Of America As Represented By The Secretary Of The Navy | Noise making device |
EP0497622A2 (en) | 1991-01-31 | 1992-08-05 | Nec Corporation | Multiplying system |
US6463453B1 (en) | 1998-01-12 | 2002-10-08 | Motorola, Inc. | Low power pipelined multiply/accumulator with modified booth's recoder |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62229439A (ja) * | 1986-03-31 | 1987-10-08 | Toshiba Corp | 並列乗算器 |
JPH01116764A (ja) * | 1987-10-29 | 1989-05-09 | Ricoh Co Ltd | 累積加算器 |
JPH0527948A (ja) * | 1991-07-17 | 1993-02-05 | Ricoh Co Ltd | 演算装置 |
JPH06348455A (ja) * | 1993-06-14 | 1994-12-22 | Matsushita Electric Ind Co Ltd | 乗算における丸め込み方法及び乗算回路 |
JPH1011267A (ja) * | 1996-06-21 | 1998-01-16 | Sharp Corp | 乗算器 |
JP3678512B2 (ja) * | 1996-08-29 | 2005-08-03 | 富士通株式会社 | 乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路 |
EP0840207A1 (en) * | 1996-10-30 | 1998-05-06 | Texas Instruments Incorporated | A microprocessor and method of operation thereof |
JPH10133856A (ja) * | 1996-10-31 | 1998-05-22 | Nec Corp | 丸め機能付き乗算方法及び乗算器 |
JPH10333885A (ja) * | 1997-05-30 | 1998-12-18 | Sony Corp | 乗算回路 |
JPH11134175A (ja) * | 1997-10-29 | 1999-05-21 | Toshiba Corp | 乗加減算器及び演算器 |
US6157939A (en) * | 1998-06-04 | 2000-12-05 | Integrated Device Technology, Inc. | Methods and apparatus for generating multiplicative inverse product |
EP0992885B1 (en) * | 1998-10-06 | 2005-12-28 | Texas Instruments Incorporated | Multiplier accumulator circuits |
JP2002157114A (ja) * | 2000-11-20 | 2002-05-31 | Hitachi Ltd | 乗算器及びそれを搭載した集積回路装置 |
US7797366B2 (en) * | 2006-02-15 | 2010-09-14 | Qualcomm Incorporated | Power-efficient sign extension for booth multiplication methods and systems |
-
2007
- 2007-02-13 EP EP07756940.8A patent/EP1984810B1/en not_active Not-in-force
- 2007-02-13 KR KR1020087021912A patent/KR101073343B1/ko not_active IP Right Cessation
- 2007-02-13 WO PCT/US2007/062082 patent/WO2007095548A2/en active Application Filing
- 2007-02-13 JP JP2008555460A patent/JP5074425B2/ja not_active Expired - Fee Related
-
2011
- 2011-12-26 JP JP2011283978A patent/JP2012104138A/ja not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4183008A (en) | 1958-05-12 | 1980-01-08 | The United States Of America As Represented By The Secretary Of The Navy | Noise making device |
EP0497622A2 (en) | 1991-01-31 | 1992-08-05 | Nec Corporation | Multiplying system |
US6463453B1 (en) | 1998-01-12 | 2002-10-08 | Motorola, Inc. | Low power pipelined multiply/accumulator with modified booth's recoder |
Also Published As
Publication number | Publication date |
---|---|
EP1984810A2 (en) | 2008-10-29 |
JP2009527060A (ja) | 2009-07-23 |
KR20080094812A (ko) | 2008-10-24 |
WO2007095548A2 (en) | 2007-08-23 |
JP2012104138A (ja) | 2012-05-31 |
EP1984810B1 (en) | 2017-03-22 |
WO2007095548A3 (en) | 2007-11-15 |
JP5074425B2 (ja) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101086560B1 (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
US8078835B2 (en) | Reconfigurable array processor for floating-point operations | |
JP4064989B2 (ja) | パック・データの乗加算演算を実行する装置 | |
US7430578B2 (en) | Method and apparatus for performing multiply-add operations on packed byte data | |
US7809783B2 (en) | Booth multiplier with enhanced reduction tree circuitry | |
US8229991B2 (en) | Processor core and multiplier that support a multiply and difference operation by inverting sign bits in booth recoding | |
Huang et al. | Low-cost binary128 floating-point FMA unit design with SIMD support | |
US8930433B2 (en) | Systems and methods for a floating-point multiplication and accumulation unit using a partial-product multiplier in digital signal processors | |
KR101073343B1 (ko) | 개선된 감소 트리 회로를 갖는 부스 곱셈기 | |
US6675286B1 (en) | Multimedia instruction set for wide data paths | |
US8234326B2 (en) | Processor core and multiplier that support both vector and single value multiplication | |
US7958180B2 (en) | Multiplier engine | |
JPWO2007094047A1 (ja) | 演算装置および演算方法 | |
TWI258698B (en) | Static floating-point processor suitable for embedded digital signal processing and shift control method thereof | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20140929 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150930 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160929 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |