Managing state information for a multi-threaded processor
AssigneeNVIDIA Corporation
InventorsBryon S. Nordquist, Brett W. Coon
Life of this patent
Estimating the term…
Abstract
Embodiments of the present invention facilitate dynamically adapting to state information changes in a graphics processing environment. In one embodiment, a master register holds state information corresponding to units of work (threads) to be performed. The state information in the master register is copied to a per-group state register when a group of threads is to be launched. The per-group state register is coupled to processing engines configured to process the threads, so that the processing engines read state information from the per-group state register rather than the master register. In another embodiment, a number of master registers may be used to store state information for different types of threads.
Claims13
An apparatus for processing data, the apparatus comprising:
- a multi-threaded processing core including:
- a plurality of processing engines configured to execute a thread group;
- a master register configured to store and update state information for each of a plurality of thread types, wherein the state information in the master register can be updated at any time without affecting currently running threads;
- and
- a per-group state register coupled to the master register, wherein, during a creation of a new thread group to be executed by the plurality of processing engines, the state information pertaining to threads of the new thread group is copied to the per-group state register from the master register,
- wherein during execution of the new thread group by the plurality of processing engines, each of the plurality of processing engines reads the state information from the per-group state register.
An apparatus for processing data, the apparatus comprising:
- a multi-threaded processing core including:
- a plurality of processing engines configured to execute a plurality of thread groups;
- a plurality of master registers configured to store and update state information for a plurality of thread types, wherein the state information in the master register can be updated at any time without affecting currently running threads;
- and
- a plurality of per-group state registers coupled to the plurality of master registers, wherein, during a creation of a new thread group to be executed by the plurality of processing engines, the state information stored in one of the master registers and pertaining to threads of the new thread group is copied to one of the per-group state registers,
- wherein the plurality of master registers exclusively provide state information to the plurality of per-group state registers in the multi-threaded processing core, and
- wherein during execution of the new thread group, each of the plurality of processing engines reads the state information from one of the per-group state registers.
A method of processing data comprising:
- receiving updated state information defining a data processing context;
- updating the state information for each of a plurality of thread types in a master register, wherein the master register may be updated at any time without affecting any executing thread;
- forwarding the state information from the master register to a first per-group state register during a creation of a first thread group;
- and
- executing the first thread group by a plurality of processing engines,
- wherein during execution of the thread group, each of the plurality of processing engines reads the state information from the first per-group state register.
Dependencies are inferred from the claim text.