Data processing systems
AssigneeArm Limited
InventorsTord Kvestad Oygard, Samuel Martin
Life of this patent
Estimating the term…
Abstract
In a data processor that executes programs to perform data processing operations for groups of execution threads, when the threads of a thread group are all to process a same, common input data value, different portions of the common input data value are loaded into respective registers of different threads of the group of threads, such that the common input data value is stored in a distributed fashion across registers of plural different threads of the thread group. Then, when the threads of the thread group are to process a portion the common input data value, the portion is provided from the thread that stores it to all the threads in the thread group.
Claims21
A method of operating a data processor that includes a programmable execution unit operable to execute programs to perform data processing operations and in which execution threads executing a program to perform data processing operations may be grouped together into thread groups in which the plural threads of a thread group each execute a program together, with each execution thread in a thread group executing a program having an associated set of one or more registers for storing data for the execution thread while executing the program;
- the method comprising:
- when the threads of a thread group executing a program are all to process a same, common input data value when executing the program:
- storing different portions of the common input data value to be processed by the threads of the thread group into respective registers of different threads of the group of threads, such that the common input data value is stored in a distributed fashion across registers of plural different threads of the thread group;
- the method further comprising:
- when a thread of the group of threads is to process the common input data value when executing the program:
- providing some or all of a portion of the common input data value to be processed by the thread that is not stored in a register associated with the thread to the thread from the register of another thread in the thread group that stores the portion of the common input data value that the thread is to process;
- and
- the thread processing the some or all of the portion of the common input data value provided from the register of the another thread in the thread group.
A data processor, the data processor comprising:
- a programmable execution unit operable to execute programs for execution threads to perform data processing operations and in which execution threads executing a program to perform data processing operations may be grouped together into thread groups in which the plural threads of a thread group each execute a program together;
- a plurality of registers for storing data for execution threads executing a program, each execution thread of a thread group, when executing a program, having an associated set of registers of the plurality of registers for storing data for the execution thread;
- the data processor further comprising:
- a processing circuit configured to:
- when the threads of a thread group executing a program are all to process a same, common input data value when executing the program:
- store different portions of the common input data value to be processed by the threads of the thread group into respective registers of different threads of the group of threads, such that the common input data value is stored in a distributed fashion across registers of plural different threads of the thread group;
- and
- when a thread of the group of threads is to process the common input data value when executing the program:
- provide some or all of a portion of the common input data value to be processed by the thread that is not stored in a register associated with the thread to the thread from the register of another thread in the thread group that stores the portion of the common input data value that the thread is to process, such that the thread may then process the some or all of the portion of the common input data value provided from the register of the another thread in the thread group.
A data processing system comprising:
- a data processor, the data processor comprising:
- a programmable execution unit operable to execute programs for execution threads to perform data processing operations and in which execution threads executing a program to perform data processing operations may be grouped together into thread groups in which the plural threads of a thread group each execute a program together;
- a plurality of registers for storing data for execution threads executing a program, each execution thread of a thread group, when executing a program, having an associated set of registers of the plurality of registers for storing data for the execution thread;
- the data processor further comprising:
- a processing circuit configured to:
- when the threads of a thread group executing a program are all to process a same, common input data value when executing the program:
- store different portions of the common input data value to be processed by the threads of the thread group into respective registers of different threads of the group of threads, such that the common input data value is stored in a distributed fashion across registers of plural different threads of the thread group;
- and
- when a thread of the group of threads is to process the common input data value when executing the program:
- provide some or all of a portion of the common input data value to be processed by the thread that is not stored in a register associated with the thread to the thread from the register of another thread in the thread group that stores the portion of the common input data value that the thread is to process, such that the thread may then process the some or all of the portion of the common input data value provided from the register of the another thread in the thread group;
- and
- a host processor;
- wherein:
- an application executing on the host processor that requires data processing by the data processor can indicate when the threads of a thread group executing a program are all to process a same, common input data value when executing the program.
A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of operating a data processor that includes a programmable execution unit operable to execute programs to perform data processing operations and in which execution threads executing a program to perform data processing operations may be grouped together into thread groups in which the plural threads of a thread group each execute a program together, with each execution thread in a thread group executing a program having an associated set of one or more registers for storing data for the execution thread while executing the program;
- the method comprising:
- when the threads of a thread group executing a program are all to process a same, common input data value when executing the program:
- storing different portions of the common input data value to be processed by the threads of the thread group into respective registers of different threads of the group of threads, such that the common input data value is stored in a distributed fashion across registers of plural different threads of the thread group;
- the method further comprising:
- when a thread of the group of threads is to process the common input data value when executing the program:
- providing some or all of a portion of the common input data value to be processed by the thread that is not stored in a register associated with the thread to the thread from the register of another thread in the thread group that stores the portion of the common input data value that the thread is to process;
- and
- the thread processing the some or all of the portion of the common input data value provided from the register of the another thread in the thread group.
Dependencies are inferred from the claim text.