IP Library Granted Patent US 7,395,298
Granted Patent B2
US 7,395,298 · App. 10/611,621 · Granted Jul 1, 2008

Method and apparatus for performing multiply-add operations on packed data

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 7,395,298
App. No.
10/611,621
Granted
Jul 1, 2008
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 (18)

1. An apparatus comprising: a first input to receive a first packed data comprising at least four data elements a second input to receive a second packed data comprising at least four data elements; a multiply-adder circuit, responsive to a first instruction, to multiply a first pair of data elements of the first packed data by respective data elements of the second packed data and to generate a first result representing a first sum of products of said multiplications of said respective data elements with said first pair of data elements, and to multiply a second pair of data elements of the first packed data by respective data elements of the second packed data and to generate a second result representing a second sum of products of said multiplications of said respective data elements with said second pair of data elements; and an output to store a third packed data comprising at least said first and said results in response to the first instruction.

2. The apparatus of claim 1 wherein said first and second packed data each contain at least eight data elements.

3. The apparatus of claim 2 wherein said first and second packed data each contain at least 64-bits of packed data.

4. The apparatus of claim 2 wherein said first and second packed data each contain at least 128-bits of packed data.

5. The apparatus of claim 4 wherein said first and second packed data each contain at least sixteen data elements.

6. The apparatus of claim 4 wherein the first packed data comprises unsigned data elements.

7. The apparatus of claim 4 wherein the second packed data comprises signed data elements.

8. The apparatus of claim 7 wherein the first packed data comprises unsigned data elements.

9. The apparatus of claim 8 wherein the first and second results are generated using signed saturation.

10. The apparatus of claim 1 wherein the first and second results are truncated.

11. A computing system comprising: an addressable memory to store data; a processor including: a first storage area to store M packed data elements, the first storage area corresponding to a first N-bit source; a second storage area to store M packed data elements, the second storage area corresponding to a second N-bit source; a decoder to decode a first set of one or more instruction formats having a first field to specify the first N-bit source and a second field to specify the second N-bit source; an execution unit, responsive to the decoder decoding a first instruction of the first set of one or more instruction formats, to produce M products of multiplication of the packed data elements stored in the first storage area by corresponding packed data elements stored in the second storage area, and to sum the M products of multiplication pairwise to produce M/2 results representing M/2 sums of products; and a third storage area to store M/2 packed data elements, the third storage area corresponding to a N-bit destination specified by the first instruction to store the M/2 results; and a magnetic storage device to store said first instruction.

12. The computing system of claim 11 wherein N is 128.

13. The computing system of claim 12 wherein M is 16.

14. The computing system of claim 11 wherein N is 64.

15. The computing system of claim 14 wherein M is 8.

16. The computing system of claim 15 wherein said M packed data elements of the first storage area are treated as unsigned bytes.

17. The computing system of claim 16 wherein said M packed data elements of the second storage area are treated as signed bytes.

18. The computing system of claim 17 wherein each of said M/2 results are generated using signed saturation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2004
From: DEBES, ERIC; MACY, WILLIAM W.; TYLER, JONATHAN J.; PELEG, ALEXANDER D.; MITTAL, MILLIND; MENNEMEIER, LARRY M.; EITAN, BENNY; DULONG, CAROLE; KOWASHI, EIICHI; WITT, WOLF
To: INTEL CORPORATION
Reel/Frame 014352/0705 →
Continuity (4)
Continuation In Part 0998973600 · Nov 19, 2001
Continuation In Part 0995289100 · Oct 29, 2001
Continuation 0852206700 · Aug 31, 1995
Related Publication 20040117422A1 · Jun 17, 2004