IP Library › Granted Patent US 9,600,059
Granted Patent B2
US 9,600,059 · App. 13/019,912 · Granted Mar 21, 2017

Facilitating power management in a multi-core processor

Inventor: Guy Sotomayor (San Jose, CA)
Assignee: Apple Inc.
G06F1/3243G06F1/00G06F1/324Y02B60/1217Y02B60/1239
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 9,600,059
App. No.
13/019,912
Granted
Mar 21, 2017
Kind
B2
Abstract

The disclosed embodiments provide a system that facilitates power management in a multi-core processor. During operation, the system detects a change related to a number of active processor cores in the multi-core processor. (Within this system, a given processor core can reside in an active state, wherein the given processor core can draw an active power, or alternatively in a constrained state, wherein the given processor core can draw a constrained power, which is less than the active power.) In response to detecting the change, the system computes a new current limit I CCMAX for the multi-core processor based on the number of active and constrained processor cores. Finally, the system communicates I CCMAX to a power-management mechanism within the multi-core processor. This enables the power-management mechanism to use I CCMAX to account for power saved by the constrained processor cores when the multi-core system is subsequently determining whether to change its operating frequency.

Claims (74)

1. A method for facilitating power management in a multi-core processor, comprising:

detecting a change related to a number of active processor cores in the multi-core processor, wherein a given processor core can reside in an active state, wherein the given processor core can draw an active power, or in a constrained state, wherein the given processor core can draw a constrained power, which is less than the active power;

in response to detecting the change, computing a new current limit I CCMAX for the multi-core processor based on a maximum current that can be supplied to the multi-core processor and the number of active and constrained processor cores; and

communicating I CCMAX to a power-management mechanism within the multi-core processor, wherein I CCMAX causes the power-management mechanism to account for power saved by the constrained processor cores when determining whether to change an operating frequency of the multi-core processor.

2. The method of claim 1 , wherein a processor core in the constrained state is constrained to run at a fraction of an operating frequency for the multi-core processor.

3. The method of claim 1 , wherein computing I CCMAX involves computing I CCMAX +I SUPPLY +N CONSTRAINED _ CORES (P ACTIVE −P CONSTRAINED )/V, wherein:

I SUPPLY is a maximum current that can be supplied to the multi-core processor;

N CONSTRAINED _ CORES is the number of constrained processor cores;

P ACTIVE is a maximum power that an active processor core can consume;

P CONSTRAINED is a maximum power that a constrained processor core can consume; and

V is a voltage of the multi-core processor.

4. The method of claim 1 , wherein determining whether to change the operating frequency of the multi-core processor involves determining whether to change the operating frequency between a first frequency and a second frequency.

5. The method of claim 4 ,

wherein a power supply for the multi-core processor is capable of supplying power to all processor cores in the multi-core processor executing at the first frequency, and

wherein the power supply is not capable of supplying power to all processor cores in the multi-core processor executing at the second frequency.

6. The method of claim 4 , wherein:

the first frequency corresponds to an underclocked state of the multi-core processor; and

the second frequency corresponds to a normally clocked state of the multi-core processor.

7. The method of claim 4 , wherein:

the first frequency corresponds to a normally clocked state of the multi-core processor; and

the second frequency corresponds to an overclocked state of the multi-core processor.

8. The method of claim 1 ,

wherein changes in the number of active processor cores can be related to asynchronous wakeup events; and

wherein when an asynchronous wakeup event is created for a processor core and the processor core is preparing to enter an idle state, the method further comprises placing the processor core into the constrained state so that the processor core is configured to resume operation at a reduced operating frequency to service the asynchronous wakeup event.

9. The method of claim 8 , wherein resuming operation of the processor core to service the asynchronous wakeup event involves:

determining a workload associated with servicing the asynchronous wakeup event; and

if the workload exceeds a threshold, negotiating with a controller for the multi-core processor to place the processor core into the active state to service the asynchronous wakeup event.

10. A system that facilitates power management in a multi-core processor, comprising:

the multi-core processor;

a detection mechanism coupled to the multi-core processor, the detection mechanism configured to detect a change related to a number of active processor cores in the multi-core processor, wherein a given processor core can reside in an active state, wherein the given processor core can draw an active power, or in a constrained state, wherein the given processor core can draw a constrained power, which is less than the active power; and

a computation mechanism coupled to the multi-core processor, wherein in response to a change in the number of active processor cores, the computation mechanism is configured to,

compute a new current limit I CCMAX for the multi-core processor based on a maximum current that can be supplied to the multi-core processor and the number of active and constrained processor cores, and

communicate I CCMAX to a power-management mechanism within the multi-core processor, wherein I CCMAX causes the power-management mechanism to account for power saved by the constrained processor cores when determining whether to change an operating frequency of the multi-core processor.

11. The system of claim 10 , wherein a processor core in the constrained state is constrained to run at a fraction of an operating frequency for the multi-core processor.

12. The system of claim 10 , wherein while computing I CCMAX , the computation mechanism is configured to compute I CCMAX =I SUPPLY +N CONSTRAINED _ CORES (P ACTIVE −P CONSTRAINED )/V, wherein:

I SUPPLY is a maximum current that can be supplied to the multi-core processor;

N CONSTRAINED _ CORES is the number of constrained processor cores;

P ACTIVE is a maximum power that an active processor core can consume;

P CONSTRAINED is a maximum power that a constrained processor core can consume; and

V is a voltage of the multi-core processor.

13. The system of claim 10 , wherein while determining whether to change the operating frequency of the multi-core processor, the power-management mechanism in the multi-core processor is configured to determine whether to change the operating frequency between a first frequency and a second frequency.

14. The system of claim 13 ,

wherein a power supply for the multi-core processor is capable of supplying power to all processor cores in the multi-core processor executing at the first frequency, and

wherein the power supply is not capable of supplying power to all processor cores in the multi-core processor executing at the second frequency.

15. The system of claim 13 , wherein:

the first frequency corresponds to an underclocked state of the multi-core processor; and

the second frequency corresponds to a normally clocked state of the multi-core processor.

16. The system of claim 13 , wherein:

the first frequency corresponds to a normally clocked state of the multi-core processor; and

the second frequency corresponds to an overclocked state of the multi-core processor.

17. The system of claim 10 ,

wherein changes in the number of active processor cores can be related to asynchronous wakeup events; and

wherein when an asynchronous wakeup event is created for a processor core and the processor core is preparing to enter an idle state, the system is configured to place the processor core into the constrained state so that the processor core is configured to resume operation at a reduced operating frequency to service the asynchronous wakeup event.

18. The system of claim 17 , wherein while resuming operation of the processor core to service the asynchronous wakeup event, the system is configured to:

determine a workload associated with servicing the asynchronous wakeup event; and

if the workload exceeds a threshold, negotiate with a controller for the multi-core processor to place the processor core into the active state to service the asynchronous wakeup event.

19. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating power management in a multi-core processor, the method comprising:

detecting a change related to a number of active processor cores in the multi-core processor, wherein a given processor core can reside in an active state, wherein the given processor core can draw an active power, or in a constrained state, wherein the given processor core can draw a constrained power, which is less than the active power;

in response to detecting the change, computing a new current limit I CCMAX for the multi-core processor based on a maximum current that can be supplied to the multi-core processor and the number of active and constrained processor cores; and

communicating I CCMAX to a power-management mechanism within the multi-core processor, wherein I CCMAX causes the power-management mechanism to account for power saved by the constrained processor cores when determining whether to change an operating frequency of the multi-core processor.

20. The computer-readable storage medium of claim 19 , wherein a processor core in the constrained state is constrained to run at a fraction of an operating frequency for the multi-core processor.

21. The computer-readable storage medium of claim 19 , wherein computing I CCMAX involves computing I CCMAX =I SUPPLY +N CONSTRAINED _ CORES (P ACTIVE −P CONSTRAINED )/V, wherein:

I SUPPLY is a maximum current that can be supplied to the multi-core processor;

N CONSTRAINED _ CORES is the number of constrained processor cores;

P ACTIVE is a maximum power that an active processor core can consume;

P CONSTRAINED is a maximum power that a constrained processor core can consume; and

V is a voltage of the multi-core processor.

22. A computer system that facilitates power management in a multi-core processor, comprising:

a multi-core processor;

a power supply coupled to the multi-core processor;

a detection mechanism coupled to the multi-core processor, the detection mechanism configured to detect a change related to a number of active processor cores in the multi-core processor, wherein a given processor core can reside in an active state, wherein the given processor core can draw an active power, or in a constrained state, wherein the given processor core can draw a constrained power, which is less than the active power; and

a computation mechanism coupled to the multi-core processor, wherein in response to the detection mechanism detecting the change related to a number of active processor cores, the computation mechanism is configured to,

compute a new current limit I CCMAX for the multi-core processor based on a maximum current that can be supplied to the multi-core processor and the number of active and constrained processor cores, and

communicate I CCMAX to a power-management mechanism within the multi-core processor, wherein I CCMAX causes the power-management mechanism to account for power saved by the constrained processor cores when determining whether to change an operating frequency of the multi-core processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2011
From: SOTOMAYOR, GUY
To: APPLE INC.
Reel/Frame 025776/0123 →
Continuity (2)
Continuation In Part 12886431 · Sep 20, 2010
Related Publication 20120072746A1 · Mar 22, 2012