IP Library Granted Patent US 6,839,728
Granted Patent B2
US 6,839,728 · App. 09/337,839 · Granted Jan 4, 2005

Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture

Assignee: PTS Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,839,728
App. No.
09/337,839
Granted
Jan 4, 2005
Kind
B2
Abstract

Efficient computation of complex multiplication results and very efficient fast Fourier transforms (FFTs) are provided. A parallel array VLIW digital signal processor is employed along with specialized complex multiplication instructions and communication operations between the processing elements which are overlapped with computation to provide very high performance operation. Successive iterations of a loop of tightly packed VLIWs are used allowing the complex multiplication pipeline hardware to be efficiently used. In addition, efficient techniques for supporting combined multiply accumulate operations are described.

Claims (26)

1. An apparatus for the efficient processing of complex multiplication computations, the apparatus comprising:

at least one controller sequence processor (SP);

a memory for storing process control instructions;

a plurality of processing elements (PEs) for executing multiply complex instructions;

a first multiply complex instruction stored in the memory, fetched by the controller SP and distributed to the PEs to control the PEs to carry out a multiplication operation involving a pair of complex numbers.

2. The apparatus of claim 1 wherein said PEs are arranged in an N×N array interconnected in a manifold array interconnection network.

3. The apparatus of claim 1 wherein the first multiply complex instruction completes execution in 2 cycles.

4. The apparatus of claim 1 wherein the first multiply complex instruction is pipelineable.

5. The apparatus of claim 1 wherein each complex number is stored as a word, each word comprising a first half word and a second half word, with a real component of each complex number being stored as the first half word and an imaginary component of each complex number being stored as the second half word.

6. The apparatus of claim 1 wherein the first multiply complex instruction is one of the following group of instructions: a multiply complex numbers (MPYCX), a multiply complex numbers instruction (MPYCXJ) operative to carry out the multiplication of a pair of complex numbers where an argument is conjugated, a multiply complex numbers instruction (MPYCXD2) operative to carry out the multiplication of a pair of complex numbers with a result divided by two, and a multiply complex numbers instruction (MPYCXJD2) operative to carry out the multiplication of a pair of complex numbers where an argument is conjugated with a result divided by two.

7. The apparatus of claim 1 wherein the each PE comprises a multiply accumulate unit including memory for storing the first multiply complex instruction.

8. The apparatus of claim 7 wherein the multiply accumulate unit operates in response to a multiply accumulate instruction (MPYA) to extend a multiplication operation with an accumulate operation.

9. The apparatus of claim 8 wherein the multiply accumulate unit operates in response to a multiply complex with accumulate instruction (MPYCXA) to carry out the multiplication of a pair of complex numbers with accumulation of a third complex number.

10. The apparatus of claim 9 wherein the MPYCXA instruction completes execution in 2 cycles.

11. The apparatus of claim 10 wherein the MPYCXA instruction is tightly pipelineable.

12. The apparatus of claim 7 wherein the multiply accumulate unit operates in response to a sum two product accumulate instruction (SUM2PA) to extend two multiplication operations with an accumulate operation.

13. The apparatus of claim 1 further comprising one or more of the following additional instructions (MPYCXA, MPYCXAD2, MPYCXJA or MPYCXJAD2) stored in the memory to carry out complex multiplication operations pipelined in 2 cycles.

14. A hardware instruction executing multiplication with accumulate for two complex numbers from at least one selectable source register wherein an accumulated complex product of two source operands is rounded according to a rounding mode specified in the instruction and loaded into a selectable target register with the complex numbers organized in the source such that a halfword (H 1 ) contains the real component and a halfword (H 0 ) contains the imaginary component, wherein a multiplication portion of said instruction is performed in parallel utilizing a plurality of multipliers, and an addition and subtraction portion of said instruction is performed in parallel utilizing at least two addition and subtraction units.

15. The special hardware instruction of claim 14 wherein the accumulated complex product is divided by two before it is rounded.

16. The hardware instruction of claim 14 wherein the instruction completes in two cycles, said multiplication portion completing in the first cycle and said addition and subtraction portion completing in the second cycle.

17. The hardware instruction of claim 14 wherein the instruction is pipelineable.

18. An apparatus for processing of complex multiplication computations, the apparatus comprising:

a plurality of processing elements (PEs);

memory for storing PE instructions, said PE instructions including multiply complex instructions; and

a controller sequence processor (SP) for distributing a control instruction to the PEs instructing the PEs to execute the multiply complex instructions.

19. The apparatus of claim 18 wherein each PE comprises register files and the multiply complex instructions specify particular registers for multiply complex operands and multiply complex results.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2006
From: PTS CORPORATION
To: ALTERA CORPORATION
Reel/Frame 018184/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2003
From: ALTERA CORPORATION
To: PTS CORPORATION
Reel/Frame 014683/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2003
From: BOPS, INC.
To: ALTERA CORPORATION
Reel/Frame 014683/0894 →
CHANGE OF NAME Recorded May 18, 2001
From: BILLIONS OF OPERATIONS PER SECOND, INC.
To: BOPS, INC.
Reel/Frame 011812/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 1999
From: PITSIANIS, NIKOS P.; PECHANEK, GERALD G.; RODRIGUEZ, RICARDO E.
To: BILLIONS OF OPERATIONS PER SECOND
Reel/Frame 010141/0716 →
Continuity (2)
Provisional Application 6010371200 · Oct 9, 1998
Related Publication 20030088601A1 · May 8, 2003