Dynamic instruction execution using distributed transaction priority registers
First Claim
1. A method for prioritizing instructions in a data processing system comprising:
- assigning a first priority value to a first instruction thread and a second priority value to a second instruction thread;
storing the first and second priority values in at least a first thread priority register in the data processing system;
replicating the first and second priority values in a plurality of thread priority registers located in a corresponding plurality of hardware resources in the data processing system;
presenting a request from a first instruction in the first instruction thread to access a first hardware resource; and
allocating the first hardware resource to the first instruction from the first instruction thread based on the first priority value.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and program are provided for dynamically assigning priority values to instruction threads in a computer system based on one or more predetermined thread performance tests, and using the assigned instruction priorities to determine how resources are used in the system. By storing the assigning priority values in thread priority registers distributed throughout the computer system, instructions from different threads that are dispatched through the system are allocated system resources based on the priority values assigned to the respective instruction threads. Priority values for individual threads may be updated with control software which tests thread performance and uses the test results to apply predetermined adjustment policies. The test results may be used to optimize the workload allocation of system resources by dynamically assigning thread priority values to individual threads using any desired policy, such as achieving thread execution balance relative to thresholds and to performance of other threads, reducing thread response time, lowering power consumption, etc.
71 Citations
20 Claims
-
1. A method for prioritizing instructions in a data processing system comprising:
-
assigning a first priority value to a first instruction thread and a second priority value to a second instruction thread; storing the first and second priority values in at least a first thread priority register in the data processing system; replicating the first and second priority values in a plurality of thread priority registers located in a corresponding plurality of hardware resources in the data processing system; presenting a request from a first instruction in the first instruction thread to access a first hardware resource; and allocating the first hardware resource to the first instruction from the first instruction thread based on the first priority value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-usable medium embodying computer program code, the computer program code comprising computer executable instructions configured for prioritizing instructions in a data processing system by:
-
assigning a first priority value to a first instruction thread and a second priority value to a second instruction thread; storing the first and second priority values in at least a first thread priority register in the data processing system; replicating the first and second priority values in a plurality of thread priority registers located in a corresponding plurality of hardware resources in the data processing system; presenting a request from a first instruction in the first instruction thread to access a first hardware resource; and allocating the first hardware resource to the first instruction from the first instruction thread based on the first priority value. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A data processing system comprising:
-
a processor for executing a plurality of instruction threads, said processor comprising one or more processor resources, such as a cache memory, memory controller, interconnect bus or interconnect controller; a thread priority register located at one or more processor resources; and a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code comprising instructions for prioritizing instructions in the data processing system by; assigning a first priority value to a first instruction thread and a second priority value to a second instruction thread; storing the first and second priority values in at least a first thread priority register in the data processing system; replicating the first and second priority values in a plurality of thread priority registers located in a corresponding plurality of hardware resources in the data processing system; presenting a request from a first instruction in the first instruction thread to access a first processor resource; and allocating the first processor resource to the first instruction from the first instruction thread based on the first priority value. - View Dependent Claims (18, 19, 20)
-
Specification