Quality of service scheduling for simultaneous multi-threaded processors
First Claim
Patent Images
1. A method of providing quality of service scheduling in multithreaded processing, comprising:
- identifying a plurality of hardware resources utilized by a hardware thread and its corresponding software thread in simultaneous multithreaded processing, the plurality of hardware resources including at least a plurality of floating point units, a decoder, and an L1 cache wherein the hardware thread'"'"'s usage information is tracked individually for each of the plurality of floating point units, the decoder, and the L1 cache;
communicating by hardware to an operating system the identified one or more hardware resource utilization; and
allowing reservation by the operating system of the one or more hardware resources for a software thread in the simultaneous multithreaded processing based on individually tracked usage information of said each of the plurality of floating point units, the decoder, and the L1 cache,wherein communication between the hardware and the operating system is achieved by using a mapping stored in a core that allows the operating system to log a software thread identifier, and the hardware to inserts a corresponding hardware thread identifier when the hardware executes the software thread.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system for providing quality of service guarantees for simultaneous multithreaded processors are disclosed. Hardware and operating system communicate with one another providing information relating to thread attributes for threads executing on processing elements. The operating system controls scheduling of the threads based at least partly on the information communicated and provides quality of service guarantees.
16 Citations
19 Claims
-
1. A method of providing quality of service scheduling in multithreaded processing, comprising:
-
identifying a plurality of hardware resources utilized by a hardware thread and its corresponding software thread in simultaneous multithreaded processing, the plurality of hardware resources including at least a plurality of floating point units, a decoder, and an L1 cache wherein the hardware thread'"'"'s usage information is tracked individually for each of the plurality of floating point units, the decoder, and the L1 cache; communicating by hardware to an operating system the identified one or more hardware resource utilization; and allowing reservation by the operating system of the one or more hardware resources for a software thread in the simultaneous multithreaded processing based on individually tracked usage information of said each of the plurality of floating point units, the decoder, and the L1 cache, wherein communication between the hardware and the operating system is achieved by using a mapping stored in a core that allows the operating system to log a software thread identifier, and the hardware to inserts a corresponding hardware thread identifier when the hardware executes the software thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of providing quality of service scheduling in multithreaded processing, comprising:
-
accessing, by an operating system, information associated with hardware resource utilization per hardware thread and its corresponding software thread in simultaneous multithreaded processing, information tracked by hardware associated with hardware resource utilization including the hardware thread'"'"'s usage information tracked individually for each of a plurality of floating point units, a decoder, and an L1 cache, wherein a counter is kept for each of the floating point units to track usage of said each of the floating point units individually, the information indicating which hardware threads on a core have used which hardware resources on the core; and scheduling by the operating system one or more software threads based on the information, wherein the accessing by the operating system is achieved by using a mapping stored in the core that allows the operating system to log a software thread identifier, and the hardware to insert a corresponding hardware thread identifier responsive to the hardware executing the software thread. - View Dependent Claims (17)
-
-
18. A method of providing quality of service scheduling in multithreaded processing, comprising:
-
accessing, by an operating system, information tracked by hardware associated with a software thread'"'"'s and its corresponding hardware thread'"'"'s use of a plurality of hardware resources on a core in simultaneous multithreaded processing, the plurality of hardware resources including at least a plurality of floating point units, a decoder, and an L1 cache wherein the hardware thread'"'"'s usage information is tracked individually for each of the plurality of floating units, the decoder, and the L1 cache, wherein a counter is kept for each of the floating point units to track usage of said each of the floating point units individually, the information indicating which hardware threads on the core have used which hardware resources on the core; and reserving by the operating system one or more hardware resources for a software thread based on the accessed information, wherein the accessing by the operating system is achieved by using a mapping stored in the core that allows the operating system to log a software thread identifier, and the hardware to insert a corresponding hardware thread identifier responsive to the hardware executing the software thread.
-
-
19. A system for providing quality of service scheduling in multithreaded processing, comprising:
-
a hardware controller on a processor operable to track a hardware thread'"'"'s and its corresponding software thread'"'"'s use of a plurality of hardware resources in simultaneous multithreaded processing, the plurality of hardware resources including at least a plurality of floating point units, a decoder, and an L1 cache, wherein the hardware thread'"'"'s usage information is tracked individually for each of the plurality of floating point units, the decoder, and the L1 cache, the hardware controller further operable to communicate information associated with the use of one or more hardware resources per hardware thread to an operating system; the operating system operable to access the information and schedule one or more software threads based on individually tracked usage information of said each of the plurality of floating point units, the decoder, and the L1 cache, wherein communication between the hardware controller and the operating system is achieved by using a mapping stored in a core that allows the operating system to log a software thread identifier, and the hardware controller to insert a corresponding hardware thread identifier responsive to the hardware controller executing the software thread.
-
Specification