Centralized synchronization mechanism for a multi-core processor
First Claim
1. A multi-core microprocessor that supports a plurality of operating states representing different levels of performance and power consumption, the microprocessor comprising:
- a plurality of cores;
a control unit configured to put selected cores into selected operating states at selected times; and
for each core, a synchronization register external to that core, specific to that core, and readable by the control unit;
wherein each core is configured to respond to an instruction to target an operating state by writing a value identifying the target operating state to its synchronization register;
wherein the control unit is configured to help the cores work cooperatively to cause a power saving action that affects a shared resource provided that the action does not reduce performance of any core sharing that resource below its target operating state;
wherein the control unit is configured to refrain from performing a power-saving action that affects a shared resource until all of the cores sharing that resource have written values identifying a consistent target operating state to their synchronization registers, wherein a core'"'"'s target operating state is consistent with the power saving action if the power saving action would not reduce performance of the core below its target operating state;
wherein the control unit is configured to cause individual cores to enter a sleep state while waiting for other cores sharing the resource to write values identifying target operating states that are consistent with the power-saving action;
wherein the control unit is configured to wake only a selected one of the cores sharing the shared resource, when all cores sharing that resource have written values identifying target operating states that are consistent with the power-saving action; and
wherein in response to being awaken, the selected core communicates with a chipset to disable the shared resource.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-core microprocessor supports a plurality of operating states that provide different levels of performance and power consumption to the microprocessor and its cores. A control unit puts selected cores into selected operating states at selected times. A core-specific synchronization register is provided for each core external to the core and readable by the control unit. Each core responds to an instruction to target an operating state by writing a value identifying the target operating state to the synchronization register. The control unit causes power saving actions that affect shared resources provided that the actions do not reduce performance of any core sharing the resources below the core'"'"'s target operating state.
126 Citations
21 Claims
-
1. A multi-core microprocessor that supports a plurality of operating states representing different levels of performance and power consumption, the microprocessor comprising:
-
a plurality of cores; a control unit configured to put selected cores into selected operating states at selected times; and for each core, a synchronization register external to that core, specific to that core, and readable by the control unit; wherein each core is configured to respond to an instruction to target an operating state by writing a value identifying the target operating state to its synchronization register; wherein the control unit is configured to help the cores work cooperatively to cause a power saving action that affects a shared resource provided that the action does not reduce performance of any core sharing that resource below its target operating state; wherein the control unit is configured to refrain from performing a power-saving action that affects a shared resource until all of the cores sharing that resource have written values identifying a consistent target operating state to their synchronization registers, wherein a core'"'"'s target operating state is consistent with the power saving action if the power saving action would not reduce performance of the core below its target operating state; wherein the control unit is configured to cause individual cores to enter a sleep state while waiting for other cores sharing the resource to write values identifying target operating states that are consistent with the power-saving action; wherein the control unit is configured to wake only a selected one of the cores sharing the shared resource, when all cores sharing that resource have written values identifying target operating states that are consistent with the power-saving action; and wherein in response to being awaken, the selected core communicates with a chipset to disable the shared resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 18, 19)
-
-
9. A method of managing power consumption in a multi-core microprocessor that supports a plurality of operating states representing different levels of performance and power consumption, the method comprising:
-
issuing an instruction to each core of the microprocessor to target an operating state, so that different cores have different target operating states; each core that receives the instruction writing a value identifying the targeted operating state to a core-specific synchronization register external to the core, wherein each core has a synchronization register specific to that core; and a control unit reading the core-specific synchronization registers and comparing their values to identify a maximum extent to which each core'"'"'s targeted operating states can be implemented without reducing performance of any other core below its own target operating state; implementing each core'"'"'s targeted operating state to the identified maximum extent, so that the implementation does not reduce performance of any other core below its own target operating state; the control unit refraining from performing a power-saving action that affects a shared resource until all of the cores sharing that resource have written values identifying a target operating state consistent with the power-saving action to their synchronization registers, wherein a core'"'"'s target operating state is consistent with the power saving action if the power saving action would not reduce performance of the core below its target operating state; causing at least one of the cores sharing the resource to enter a sleep state while waiting for other cores sharing the resource to write values identifying target operating states that are consistent with the power-saving action; waking only a selected one of the cores sharing the resource, when all cores sharing the resource have written values identifying target operating states that are consistent with the power-saving action; and the selected core communicating with a chipset to disable the shared resource. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 20, 21)
-
-
17. A computer program product encoded in at least one non-transitory computer usable medium for use with a computing device, the computer program product comprising:
computer usable program code embodied in said medium, for specifying a microprocessor that supports a plurality of operating states representing different levels of performance and power consumption, the computer usable program code comprising; first program code for specifying a control unit, configured to put selected cores into selected operating states at selected times; and second program code for specifying, for each core, a synchronization register external to that core, specific to that core, and readable by the control unit; wherein each core is configured to respond to an instruction to target an operating state by writing a value identifying the target operating state to the synchronization register; and wherein the control unit is configured to help the cores work cooperatively to cause a power saving action that affects a shared resource provided that the action does not reduce performance of any core sharing that resource below the core'"'"'s target operating state; wherein the control unit is configured to refrain from performing a power-saving action that affects a shared resource until all of the cores sharing that resource have written values identifying a consistent target operating state to their synchronization registers, wherein a core'"'"'s target operating state is consistent with the power saving action if the power saving action would not reduce performance of the core below its target operating state; wherein the control unit is configured to cause individual cores to enter a sleep state while waiting for other cores sharing the resource to write values identifying target operating states that are consistent with the power-saving action; wherein the control unit is configured to wake only a selected one of the cores sharing the shared resource, when all cores sharing that resource have written values identifying target operating states that are consistent with the power-saving action; and wherein in response to being awaken, the selected core communicates with a chipset to disable the shared resource.
Specification