IP Library Granted Patent US 10,488,902
Granted Patent B2
US 10,488,902 · App. 15/047,176 · Granted Nov 26, 2019

Dynamic multi-core processor voltage scaling based on online core count

Inventors: Sajjad Pagarkar (San Diego, CA); Karthik Ranganathan Vishwanathan (San Diego, CA)
Assignee: QUALCOMM Innovation Center, Inc.
G06F1/26G06F1/3243G06F1/3287G06F1/3296G06F9/5094G06F1/3203G06F1/324Y02D10/152Y02D10/171Y02D10/172Y02D10/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,488,902
App. No.
15/047,176
Granted
Nov 26, 2019
Kind
B2
Abstract

A device and method for controlling a voltage applied to processor cores of a processor are disclosed. The method includes processing a plurality of tasks on the processor with a plurality of processor cores and applying a rail voltage to the plurality of processor cores. The number of the plurality of processor cores that are active is adjusted, and the rail voltage that is applied to the plurality of processor cores is adjusted based upon the number of the plurality of processor cores that are active.

Claims (39)

1. A computing device comprising:

a plurality of processor cores:

a power rail coupled to the plurality of processor cores;

a power supply coupled to the power rail to apply a rail voltage to the processor cores via the power rail;

a kernel configured to communicate with the plurality of processor cores, the power supply, and applications of the computing device, the kernel is configured to receive system calls from the applications, and the kernel includes:

a core controller configured to first control a frequency of the processor cores and a number of processor cores that are online based upon a processing load that is placed on the plurality of processor cores by tasks associated with the applications;

an online-core-based voltage controller configured to receive, from the core controller, both an indication of the number of processor cores that are online and a frequency of the processor cores, and the online-core-based voltage controller is configured to control, via a driver of the kernel, and after the core controller controls the frequency of the processor cores, the rail voltage applied by the power supply based on the number of processor cores that are online and the frequency of the processor cores; and

a voltage table that maps each of an active core value to one of a turbo frequency mode, a nominal frequency mode, or a static-voltage-scaling frequency mode, wherein each frequency mode is mapped to a corresponding one of a plurality of minimum voltage values;

wherein the online-core-based voltage controller is configured to:

obtain a particular minimum voltage value from the voltage table based on the number of processor cores that are online and the frequency mode of the processor cores; and

adjust the rail voltage to the particular minimum voltage value.

2. The computing device of claim 1 , wherein all of the plurality of processor cores operate at a same frequency and at a same voltage.

3. The computing device of claim 1 , wherein the power rail is a sole power rail applying power to the plurality of processor cores and the rail voltage is a sole voltage applied to the plurality of processor cores.

4. The computing device of claim 1 , wherein characterization data of the computing device provides the minimum voltage values stored in the voltage table.

5. The computing device of claim 4 , wherein the characterization data is obtained from characterization tests across a plurality of identical computing devices to the computing device.

6. A method for controlling power that is applied to a processor of a computing device, the method comprising:

receiving system calls at a kernel of the computing device from applications on the computing device;

processing a plurality of tasks associated with the applications on the computing device with a plurality of processor cores;

applying a rail voltage to the plurality of processor cores with a power supply of the computing device;

adjusting first, with a core controller of the kernel, a frequency of the plurality of processor cores and a number of the plurality of processor cores that are active based upon a processing load that is placed on the plurality of processor cores by the plurality of tasks;

adjusting, via a driver of the kernel, and after the core controller adjusts the frequency of the plurality of processor cores, with an online-core-based voltage controller of the kernel, the rail voltage that is applied by the power supply to the plurality of processor cores based upon the frequency and the number of the plurality of processor cores that are active;

obtaining a particular minimum voltage value from a voltage table that maps each of an active core value to one of a turbo frequency mode, a nominal frequency mode, or a static-voltage scaling frequency mode, wherein each frequency mode is mapped to a corresponding one of a plurality of minimum voltage values;

setting an all-cores-online-voltage to a value to provide a minimum voltage to the processor cores, plus a margin, based upon losses and noise; and

adjusting the rail voltage to the particular minimum voltage value wherein the rail voltage is set to a value that is less than the all-cores-online-voltage value when less than all of the processor cores are active.

7. The method of claim 6 , wherein the number of the plurality of processor cores that are active is adjusted based upon a processing load that is placed on the plurality of processor cores.

8. The method of claim 6 , further comprising:

providing characterization data comprising the minimum voltage values stored in the voltage table.

9. The method of claim 8 , further comprising:

generating the characterization data by performing characterization tests across a plurality of identical computing devices to the computing device.

10. A non-transitory, tangible processor readable storage medium, encoded with processor readable instructions to perform a method for controlling power that is applied to a processor on a computing device, the method comprising:

receiving system calls at a kernel of the computing device from applications on the computing device;

processing a plurality of tasks associated with the applications on the computing device with a plurality of processor cores;

applying a rail voltage to the plurality of processor cores with a power supply of the computing device;

adjusting first, with a core controller of the kernel, a frequency of the plurality of processor cores and a number of the plurality of processor cores that are active based upon a processing load that is placed on the plurality of processor cores by the plurality of tasks;

adjusting, via a driver of the kernel, and after the core controller adjusts the frequency of the plurality of processor cores, with an online-core-based voltage controller of the kernel, the rail voltage that is applied by the power supply to the plurality of processor cores based upon the frequency and the number of the plurality of processor cores that are active

obtaining a particular minimum voltage value from a voltage table that maps each of an active core value to one of a turbo frequency mode, a nominal frequency mode, or a static-voltage-scaling frequency mode wherein each frequency mode is mapped to a corresponding one of a plurality of minimum voltage values;

setting an all-cores-online-voltage to a value to provide a minimum voltage to the processor cores, plus a margin, based upon losses and noise; and

adjusting the rail voltage to the particular minimum voltage value wherein the rail voltage is set to a value that is less than the all-cores-online-voltage value when less than all of the processor cores are active.

11. The non-transitory, tangible processor readable storage medium of claim 10 , wherein the number of the plurality of processor cores that are active is adjusted based upon a processing load that is placed on the plurality of processor cores.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2017
From: PAGARKAR, SAJJAD; RANGANATHAN VISHWANATHAN, KARTHIK
To: QUALCOMM INNOVATION CENTER, INC.
Reel/Frame 040843/0439 →
Continuity (2)
Provisional Application 62119716 · Feb 23, 2015
Related Publication 20160246343A1 · Aug 25, 2016