Constant versioning for multi-threaded processing
First Claim
1. A method of storing multiple versions of a programmable constant for use during multi-threaded processing, comprising:
- storing a first value of the programmable constant in an entry of a constant buffer located at a base address;
storing the base address of the constant buffer in a first entry of a constant buffer table;
receiving a second value of the programmable constant;
incrementing a version value stored in the first entry of the constant buffer table;
copying the first value stored in the entry of the constant buffer to a location in a page pool; and
storing the second value of the programmable constant in the entry of the constant buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for using multiple versions of programmable constants within a multi-threaded processor allow a programmable constant to be changed before a program using the constants has completed execution. Processing performance may be improved since programs using different values for a programmable constant may execute simultaneously. The programmable constants are stored in a constant buffer and an entry of a constant buffer table is bound to the constant buffer. When a programmable constant is changed it is copied to an entry in a page pool and address translation for the page pool is updated to correspond to the old version (copy) of the programmable constant. An advantage is that the constant buffer stores the newest version of the programmable constant.
36 Citations
20 Claims
-
1. A method of storing multiple versions of a programmable constant for use during multi-threaded processing, comprising:
-
storing a first value of the programmable constant in an entry of a constant buffer located at a base address; storing the base address of the constant buffer in a first entry of a constant buffer table; receiving a second value of the programmable constant; incrementing a version value stored in the first entry of the constant buffer table; copying the first value stored in the entry of the constant buffer to a location in a page pool; and storing the second value of the programmable constant in the entry of the constant buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for storing multiple versions of a programmable constant for use during multi-threaded processing, comprising:
-
a multiprocessor pipeline configured to execute shader program data processing commands using a set of programmable constants, wherein the set of programmable constants includes a current version of the programmable constant and an old version of the programmable constant; a memory configured to store a constant buffer that includes the current programmable constant; a page pool configured to store the old version of the programmable constant; and a streaming processor array cache collector coupled between the memory and the multiprocessor pipeline and configured to generate the old version of the programmable constant by copying the current version of the programmable constant from the constant buffer to the page pool and changing the value stored as the current version of the programmable constant in the constant buffer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification