Back to results
US 2016/0253179 A1Published application
Concurrent execution of heterogeneous vector instructions
AssigneeApple Inc.
InventorJeffry E. Gonion
Life of this patent
Estimating the term…
Abstract
A processor may include a vector functional unit that supports concurrent operations on multiple data elements of a maximum element size. The functional unit may also support concurrent execution of multiple distinct vector program instructions, where the multiple vector instructions each operate on multiple data elements of less than the maximum element size.
Claims21
-20. (canceled)
A processor, comprising:
- an instruction issue unit configured to issue vector program instructions for execution, where each vector program instruction operates on one or more vectors, each vector including a plurality of data elements, wherein each vector program instruction operates on one of a plurality of possible element sizes, wherein the plurality of possible element sizes includes a maximum element size;
- and
- a functional unit configured to execute a single instance of a given vector program instruction that operates on the maximum element size;
- wherein the functional unit is further configured to concurrently execute a plurality of vector program instructions that each operate on an element size that is less than the maximum element size;
- wherein for at least two of the plurality of vector program instructions that each operate on an element size that is less than the maximum element size, the at least two vector program instructions:
- implement different computational operations, execute with different latencies, operate on data elements of different sizes, execute in different subunits of the functional unit, or any combination thereof;
- and
- wherein a maximum number of data elements per vector on which the functional unit is configured to concurrently operate is independent of a number of vector program instructions the functional unit is configured to concurrently execute.
5 more elements
A method, comprising:
- performing, by a processor:
- issuing vector program instructions for execution, where each vector program instruction operates on one or more vectors, each vector including a plurality of data elements, wherein each vector program instruction operates on one of a plurality of possible element sizes, wherein the plurality of possible element sizes includes a maximum element size;
- for a single instance of a given vector program instruction that operates on the maximum element size, concurrently operating on a plurality of data elements of the given vector program instruction having the maximum element size;
- for two or more vector program instructions that each operate on an element size that is less than the maximum element size, concurrently operating on data elements of the two or more vector program instructions that operate on less than the maximum element size;
- wherein the two or more vector program instructions:
- implement different computational operations, execute with different latencies, operate on data elements of different sizes, execute in different subunits of a functional unit, or any combination thereof;
- and
- wherein a maximum number of data elements per vector on which concurrent operation can be performed is independent of a number of vector program instructions that are concurrently executable.
5 more elements
A system, comprising:
- a memory;
- and
- a processor coupled to the memory, wherein the processor comprises:
- an instruction issue unit configured to issue vector program instructions for execution, where each vector program instruction operates on one or more vectors, each vector including a plurality of data elements, wherein each vector program instruction operates on one of a plurality of possible element sizes, wherein the plurality of possible element sizes includes a maximum element size;
- and
- a functional unit configured to execute a single instance of a given vector program instruction that operates on the maximum element size;
- wherein the functional unit is further configured to concurrently execute a plurality of vector program instructions that each operate on an element size that is less than the maximum element size;
- wherein for at least two of the plurality of vector program instructions that each operate on an element size that is less than the maximum element size, the at least two vector program instructions:
- implement different computational operations, execute with different latencies, operate on data elements of different sizes, execute in different subunits of the functional unit, or any combination thereof;
- and
- wherein a maximum number of data elements per vector on which the functional unit is configured to concurrently operate is independent of a number of vector program instructions the functional unit is configured to concurrently execute.
8 more elements
Dependencies are inferred from the claim text.