Patent ID: 8495649
Filing Date: 2013-07-23
Classification: G06F

Abstract:
1. A method of scheduling one or more threads in multithreaded processing, comprising: determining usage pattern characterization of hardware resources on a core, the usage pattern characterization associated with a first thread, the hardware resources including at least two or more functional units, wherein the hardware resources include more than one of a same type of functional unit, the usage pattern characterization including the first thread's usage count of each of the functional units on the core or amount of use of each of the functional units on the core, wherein a utilization table comprises a plurality of registers, each of the registers allocated to a respective thread of the one or more threads and comprising at least an entry for each functional unit the respective thread uses, and wherein hardware updates an entry of a register of the utilization table associated with the first thread and associated respective functional unit every time the first thread uses the associated respective functional unit; selecting a core running one or more threads that has usage pattern characterization that complements the usage pattern characterization associated with the first thread, the selected core running the one or more threads in simultaneous multithreaded processing mode; and scheduling the first thread on the selected core, wherein an operating system determines scheduling order of threads based on entries in the utilization table.