Apparatus and method for performing multi-dimensional computations based on intra-add operation
AssigneeIntel Corporation
InventorPatrice L. Roussel
Life of this patent
Estimating the term…
Abstract
A method and apparatus for including in a processor, instructions for performing multiply-intra-add operations on packed data is described. In one embodiment, a processor is coupled to a memory. The memory has stored therein a first and a second packed data. The processor performs operations on data elements in the first packed data and the second packed data to generate a plurality of data elements in a third packed data in response to receiving an instruction. At least two of the plurality of data elements in the third packed data store the result of multiply-intra-add operations.
Claims21
An apparatus for use in a computer system comprising:
- a memory having stored therein a first packed data and a second packed data;
- and
- a processor coupled to said memory to receive said first and said second packed data, said processor performing operations on a first plurality of data elements in said first packed data, and performing operations on a second plurality of data elements in said second packed data to generate a third plurality of data elements in a third packed data in response to receiving an instruction, at least two of said third plurality of data elements in said third packed data storing the result of multiply-intra-add operations.
An apparatus for use in a computer system comprising:
- a first storage area;
- a second storage area;
- a circuit coupled to said first and said second storage areas, said circuit multiplying a value A by a value B to generate a first intermediate result, multiplying a value C by a value D to generate a second intermediate result, said first intermediate result being stored in a first element of said first storage area, said second intermediate result being stored in a second element of said first storage area, said circuit adding said first and said second elements of said first storage element to generate a value E, and storing said value E in said second storage area as an element of a first packed data.
A computer system comprising:
- a processor;
- and
- a storage area coupled to said processor having stored therein
- a multiply instruction for operating on a first packed data and a second packed data, said first packed data containing at least data elements A and B each including a predetermined number of bits, said second packed data containing at least data elements C and D each including said predetermined number of bits, said processor generating a third packed data containing at least elements E and F in response to receiving said multiply instruction, said data element E equal to (A×C) and said data element F equal to (B×D);
- an intra-add instruction for operating on said data elements E and F of said third packed data, said processor generating a fourth packed data containing at least element G in response to receiving said intra add instruction, said data element G equal to (E+F).
A processor comprising:
- a first storage area for storing a first packed data containing at least an A and a B data element;
- a second storage area for storing a second packed data containing at least a C and a D data element;
- a multiply-intra-add circuit including:
- a first multiplier coupled to said first storage area to receive said A data element, and coupled to said second storage area to receive said C data element;
- a second multiplier coupled to said second storage area to receive said B data element, and coupled to said second storage area to receive said D data element;
- a third storage area coupled to said first multiplier and said second multiplier, said third storage area having a first field for storing an output of said first multiplier as a first data element of a third packed data, said third storage area having a second field for storing an output of said second multiplier as a second data element of said third packed data;
- an adder coupled to said third storage area to receive said first data element of said third packed data and said second data element of said third packed data;
- and
- a fourth storage area for storing an output of said adder as a data element in a fourth packed data.
In a computer system, a method for manipulating a first packed data and a second packed data, said first packed data having A1 and A2 as data elements, said second packed data having B1 and B2 as data elements, said method comprising the steps of:
- a) performing the operation (A1×B1) to generate a first data element C1 in a third packed data;
- b) performing the operation (A2×B2) to generate a second data element C2 in the third packed data;
- c) performing the operation of adding said first data element C1 in the third packed data and a second data element C2 in said third packed data to generate a data element D in a fourth packed data;
- d) storing said data element D in said fourth packed data in a storage area;
- and
- e) storing said data element D in said fourth packed data in a storage area.
In a computer system, a method for manipulating a first packed data, said method comprising manipulating two data elements of said first packed data to generate a data element in a second packed data.
Dependencies are inferred from the claim text.