Single Precision Vector Dot Product with "Word" Vector Write Mask
First Claim
1. A method for storing data in a target register, comprising:
- receiving a dot product instruction specifying at least one source register comprising vector operands for performing a dot product operation, the target register, and a write mask, wherein the write mask identifies one or more locations of the target register for writing data; and
in response to receiving the dot product instruction, performing the dot product operation and storing a scalar result of the dot product operation to the one or more locations of the target register identified by the write mask.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is generally related to the field of image processing, and more specifically to an instruction set for processing images. Vector processing may involve performing a plurality of dot product operations to generate operands for generating operands for a new vector. The dot product operations may require the issue of a plurality of permute instructions to arrange the vector operands in desired locations of a target register. Embodiments of the invention provide a dot product instruction wherein a mask field may be used to specify a particular location of a target register in which to transfer data, thereby avoiding the need for permute instructions for arranging data, reducing dependencies between instructions, and the usage of temporary registers.
43 Citations
20 Claims
-
1. A method for storing data in a target register, comprising:
-
receiving a dot product instruction specifying at least one source register comprising vector operands for performing a dot product operation, the target register, and a write mask, wherein the write mask identifies one or more locations of the target register for writing data; and in response to receiving the dot product instruction, performing the dot product operation and storing a scalar result of the dot product operation to the one or more locations of the target register identified by the write mask. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for constructing a vector in a target register, comprising:
-
generating a plurality of dot product instructions, each dot product instruction specifying at least one source register comprising vector operands for performing a dot product operation, and the target register, wherein each dot product instruction generates a scalar result representing an operand of the vector; setting a mask field in each of the plurality of dot product instructions, wherein the mask field identifies one or more locations of the target register for storing the scalar result of the dot product operation; and executing the dot product instructions to store each operand of the vector at the one or more locations in the target register identified by the mask field to construct the vector in the target register. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system, comprising a plurality of processors communicably coupled with one another, wherein each processor comprises:
-
a register file comprising a plurality of registers; and at least one vector unit, wherein the vector unit is configured to; receive a dot product instruction specifying at least one source register comprising vector operands for performing a dot product operation, a target register, and a write mask, the write mask identifying one or more locations in the target register, and execute the dot product instruction by performing the dot product operation and storing a scalar result of the dot product operation to the one or more locations of the target register identified by the write mask. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification