DYNAMICALLY-SELECTABLE VECTOR REGISTER PARTITIONING
First Claim
1. A method for processing data comprising:
- analyzing structure of data to be processed; and
selecting one of a plurality of vector register partitioning modes based on said analyzing, wherein said vector register partitioning modes define how vector register elements are to be partitioned for processing said data.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is directed generally to dynamically-selectable vector register partitioning, and more specifically to a processor infrastructure (e.g., co-processor infrastructure in a multi-processor system) that supports dynamic setting of vector register partitioning to any of a plurality of different vector partitioning modes. Thus, rather than being restricted to a fixed vector register partitioning mode, embodiments of the present invention enable a processor to be dynamically set to any of a plurality of different vector partitioning modes. Thus, for instance, different vector register partitioning modes may be employed for different applications being executed by the processor, and/or different vector register partitioning modes may even be employed for use in processing different vector oriented operations within a given applications being executed by the processor, in accordance with certain embodiments of the present invention.
165 Citations
33 Claims
-
1. A method for processing data comprising:
-
analyzing structure of data to be processed; and selecting one of a plurality of vector register partitioning modes based on said analyzing, wherein said vector register partitioning modes define how vector register elements are to be partitioned for processing said data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A co-processor in a multi-processor system, the co-processor comprising:
-
at least one application engine having vector registers containing vector register elements for storing data for vector oriented operations by the at least one application engine; and said at least one application engine being dynamically settable to any of a plurality of different vector register partitioning modes, wherein said vector register elements are partitioned according to the vector register partitioning mode to which the at least one application engine is dynamically set. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for processing data comprising:
-
at least one application engine having at least one configurable function unit that is configurable to any of a plurality of different vector processing personalities; an infrastructure common to all the plurality of different vector processing personalities; vector registers containing vector register elements for storing data for vector oriented operations by the at least one application engine; and wherein said at least one application engine is dynamically settable to any of a plurality of different vector register partitioning modes, said vector register partitioning mode to which the at least one application engine is dynamically set defining how said vector register elements are partitioned. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A multi-processor system comprising:
-
a host processor; and a co-processor, said co-processor including vector registers containing vector register elements for storing data for vector oriented operations by the co-processor; a control register comprising dynamically settable information for dynamically setting said co-processor to any of a plurality of different vector register partitioning modes, wherein said vector register elements are partitioned according to the vector register partitioning mode to which the co-processor is dynamically set; and said control register comprising dynamically settable information for setting at least one of a vector stride and a vector partition stride for controlling memory access pattern when said co-processor is performing a vector register memory load or store. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A method comprising:
-
initiating an executable file for processing instructions of the executable file by a multi-processor system, wherein the multi-processor system comprises a host processor and a co-processor; setting said co-processor to a selected one of a plurality of different vector register partitioning modes, said selected vector register partitioning mode defining how vector register elements of the co-processor are partitioned for use in performing vector oriented operations for processing a portion of the instructions of the executable file; processing, by the multi-processor system, the instructions of the executable file, wherein a portion of the instructions are processed by the host processor and a portion of the instructions are processed by the co-processor. - View Dependent Claims (31)
-
-
32. A method comprising:
-
initiating an executable file for processing instructions of the executable file by a multi-processor system, wherein the multi-processor system comprises a host processor and a co-processor; determining one of a plurality of different vector register partitioning modes desired for the co-processor, said desired vector register partitioning mode defining how vector register elements of the co-processor are partitioned for use in performing vector oriented operations for processing a portion of the instructions of the executable file; when determined that the co-processor is set to the desired vector register partitioning mode, dynamically setting the co-processor to the desired vector register partitioning mode; and processing, by the multi-processor system, the instructions of the executable file, wherein a portion of the instructions are processed by the host processor and a portion of the instructions are processed by the co-processor. - View Dependent Claims (33)
-
Specification