IP Library › Granted Patent US 8,793,299
Granted Patent B2
US 8,793,299 · App. 13/801,356 · Granted Jul 29, 2014

Processor for performing multiply-add operations on packed data

Inventors: Alexander Peleg (Haifa, IL); Millind Mittal (Palo Alto, CA); Larry M. Mennemeier (Boulder Creek, CA); Benny Eitan (Haifa, IL); Carole Dulong (Saratoga, CA); Eiichi Kowashi (Ibarak, JP); Wolf C. Witt (Sunnyvale, CA)
Assignee: Intel 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 8,793,299
App. No.
13/801,356
Granted
Jul 29, 2014
Kind
B2
Abstract

A method and apparatus for including in a processor instructions for performing multiply-add operations on packed data. In one embodiment, a processor is coupled to a memory. The memory has stored therein a first packed data and a second packed data. The processor performs operations on data elements in said first packed data and said second packed data to generate a third packed data in response to receiving an instruction. At least two of the data elements in this third packed data storing the result of performing multiply-add operations on data elements in the first and second packed data.

Claims (15)

1. A processor comprising:

a memory to store one or more instructions including a multiply-add instruction;

a register file including a plurality of registers to store packed data including a first complex number and a second complex number; and

one or more execution units,

wherein the one or more execution units to multiply the first and second complex number in response to performing the multiply-add instruction,

wherein the one or more execution units to,

generate a result data using elements of the first and second complex number, the result data includes a first result data element (R) and a second result data element (I), the first result data element is equal to [(r1×r2)−(i1×i2)] and the second result data element is equal to [(r1×i2)+(r2×i1)], the first complex number includes a first real value (r1) and a first imaginary value (i1) and the second complex number includes a second real value (r2) and a second imaginary value (i2), and

store the result data in a destination indicated by the multiply-add instruction without adding the first result data element with the second result data element.

2. The processor of claim 1 , said one or more execution units, in response to performing the multiply-add instruction to:

generate a first, second, third, and fourth intermediate data elements, said intermediate data elements being paired into a first and second sets; and

arithmetically combine the intermediate data elements in each of said first and second sets to generate said first result data element and the second result data element respectively representing the addition of paired intermediate data elements, wherein each of said first, second, third, and fourth intermediate data elements provides a higher precision than said first and second real values or said first and second imaginary values.

3. The processor of claim 2 , said one or more execution units, in response to performing the multiply-add instruction to multiply together only corresponding data elements from said registers to store packed data including the first complex number and the second complex number to generate said first, second, third, and fourth intermediate data elements.

4. The processor of claim 2 , wherein said first and second real values and said first and second imaginary values are each stored as one or more packed signed 16-bit integer data elements.

5. The processor of claim 4 , wherein said registers to store packed data are to store the first result data element and the second result data element as packed data elements in the destination indicated by the multiply-add instruction without adding the first result data element with the second result data element.

6. The processor of claim 5 , wherein said first, second, third, and fourth intermediate data elements are each generated as signed 32-bit integer data elements.

Continuity (6)
Continuation 13175373 · Jul 1, 2011
Continuation 12409275 · Mar 23, 2009
Continuation 10861167 · Jun 4, 2004
Continuation 09989736 · Nov 19, 2001
Continuation 08522067 · Aug 31, 1995
Related Publication 20130198254A1 · Aug 1, 2013