System and Method For Dynamically Controlling A Plurality Of Cores In A Multicore Central Processing Unit Based On Tempature
AssigneeQUALCOMM Incorporated
InventorsSumit Sur, Bohuslav Rychlik, Steven S. Thomson, Ali Iranli, Brian J. Salsbery
Life of this patent
Estimating the term…
Abstract
A method of controlling power within a multicore central processing unit (CPU) is disclosed. The method may include monitoring a die temperature, determining a degree of parallelism within a workload of the CPU, and powering one or more cores of the CPU up or down based on the degree of parallelism, the die temperature, or a combination thereof.
Claims28
A method of controlling power in a multicore system, the method comprising:
- determining a first frequency value (Fopt1) for a first core of the multicore system;
- determining a second frequency value (Fopt2) for a second core of the multicore system;
- monitoring a sensor that can be used to measure die temperature to obtain a first sensor value;
- determining whether the first sensor value is greater than or equal to a first threshold value;
- determining an operating frequency of the second core;
- determining whether the operating frequency of the second core is below the second frequency value (Fopt2);
- determining a degree of parallelism within a workload of the multicore system based on a length of a plurality of operating system scheduler ready-to-run queues;
- determining whether the degree of parallelism is greater than a second threshold value;
- decreasing an operating frequency of the first core to the first frequency value (Fopt1) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of second core is below the second frequency value (Fopt2);
- and
- increasing the operating frequency of the second core to the second frequency value (Fopt2) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of the second core is below the second frequency value (Fopt2).
A multicore computing device, comprising:
- a processing core configured with processor-executable instructions to perform operations comprising:
- determining a first frequency value (Fopt1) for a first core of the multicore computing device;
- determining a second frequency value (Fopt2) for a second core of the multicore computing device;
- monitoring a sensor that can be used to measure die temperature to obtain a first sensor value;
- determining whether the first sensor value is greater than or equal to a first threshold value;
- determining an operating frequency of the second core;
- determining whether the operating frequency of the second core is below the second frequency value (Fopt2);
- determining a degree of parallelism within a workload of the multicore computing device based on a length of a plurality of operating system scheduler ready-to-run queues;
- determining whether the degree of parallelism is greater than a second threshold value;
- decreasing an operating frequency of the first core to the first frequency value (Fopt1) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of second core is below the second frequency value (Fopt2);
- and
- increasing the operating frequency of the second core to the second frequency value (Fopt2) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of the second core is below the second frequency value (Fopt2).
A non-transitory computer-readable storage medium having stored thereon processor executable instructions configured to cause a processor to perform operations for controlling power in a multicore system, the operations comprising:
- determining a first frequency value (Fopt1) for a first core of the multicore system;
- determining a second frequency value (Fopt2) for a second core of the multicore system;
- monitoring a sensor that can be used to measure die temperature to obtain a first sensor value;
- determining whether the first sensor value is greater than or equal to a first threshold value;
- determining an operating frequency of the second core;
- determining whether the operating frequency of the second core is below the second frequency value (Fopt2);
- determining a degree of parallelism within a workload of the multicore system based on a length of a plurality of operating system scheduler ready-to-run queues;
- determining whether the degree of parallelism is greater than a second threshold value;
- decreasing an operating frequency of the first core to the first frequency value (Fopt1) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of second core is below the second frequency value (Fopt2);
- and
- increasing the operating frequency of the second core to the second frequency value (Fopt2) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of the second core is below the second frequency value (Fopt2).
A multicore computing device, comprising:
- a first core;
- a second core;
- means for determining a first frequency value (Fopt1) for the first core;
- means for determining a second frequency value (Fopt2) for the second core;
- means for monitoring a sensor that can be used to measure die temperature to obtain a first sensor value;
- means for determining whether the first sensor value is greater than or equal to a first threshold value;
- means for determining an operating frequency of the second core;
- means for determining whether the operating frequency of the second core is below the second frequency value (Fopt2);
- means for determining a degree of parallelism within a workload based on a length of a plurality of operating system scheduler ready-to-run queues;
- means for determining whether the degree of parallelism is greater than a second threshold value;
- means for decreasing an operating frequency of the first core to the first frequency value (Fopt1) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of second core is below the second frequency value (Fopt2);
- and
- means for increasing the operating frequency of the second core to the second frequency value (Fopt2) in response to determining that the degree of parallelism is greater than the second threshold value, that the first sensor value is greater than or equal to the first threshold value, and that the operating frequency of the second core is below the second frequency value (Fopt2).
Dependencies are inferred from the claim text.