IP Library › Granted Patent US 9,043,628
Granted Patent B2
US 9,043,628 · App. 13/594,410 · Granted May 26, 2015

Power management of multiple compute units sharing a cache

Inventors: Paul Kitchin (Austin, TX); William L. Walker (Fort Collins, CO); Steven J. Kommrusch (Fort Collins, CO)
Assignee: Advanced Micro Devices, Inc.
G06F12/084G06F1/3275Y02B60/1225G06F12/0804G06F12/0811G06F2212/1024G06F2212/1028G06F1/3206
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,043,628
App. No.
13/594,410
Granted
May 26, 2015
Kind
B2
Abstract

We report methods, integrated circuit devices, and fabrication processes relating to power management transitions of multiple compute units sharing a cache. One method includes indicating that a first compute unit of a plurality of compute units of an integrated circuit device is attempting to enter a low power state, determining if the first compute unit is the only compute unit of the plurality in a normal power state, and in response to determining the first compute unit is the only compute unit in the normal power state: saving a state of a shared cache unit of the integrated circuit device, flushing at least a portion of a cache of the shared cache unit, repeating the flushing until either a second compute unit exits the low power state or the cache is completely flushed, and permitting the first compute unit to enter the low power state.

Claims (88)

1. A method, comprising:

indicating that a first compute unit of a plurality of compute units of an integrated circuit device is attempting to enter a low power state;

determining if the first compute unit is the only compute unit of the plurality of compute units in a normal power state; and

when the first compute unit is the only compute unit in the normal power state:

saving a state of a shared cache unit of the integrated circuit device;

flushing a portion of a cache of the shared cache unit;

repeating the flushing until either a second compute unit exits the low power state or the cache is completely flushed; and

permitting the first compute unit to enter the low power state.

2. The method of claim 1 , further comprising, when the first compute unit is not the only compute unit in the normal power state, permitting the first compute unit to enter the low power state.

3. The method of claim 1 , wherein prior to the indicating, the method further comprises:

requesting the first compute unit to enter the low power state;

saving a state of the first compute unit; and

flushing a cache of the first compute unit.

4. The method of claim 1 , further comprising:

reporting by the first compute unit that the first compute unit is permitted to enter the low power state subsequent the permitting; and

instructing the first compute unit to enter the low power state.

5. The method of claim 1 , wherein the indicating comprises writing to a shared cache unit handshake register.

6. A method, comprising:

indicating that a first compute unit of a plurality of compute units of an integrated circuit device is attempting to exit a low power state;

determining if all other compute units of the plurality of compute units are in the low power state; and

when all other compute units are in the low power state:

restoring a state of a shared cache unit of the integrated circuit device; and

permitting the first compute unit to exit the low power state.

7. The method of claim 6 , further comprising, when at least one other compute unit is in a normal power state, permitting the first compute unit to exit the low power state.

8. The method of claim 6 , further comprising:

restoring a state of the first compute unit prior to permitting the first compute unit to exit the low power state.

9. The method of claim 6 , wherein the indicating comprises writing to a shared cache unit handshake register.

10. An integrated circuit device, comprising:

a plurality of compute units;

a shared cache unit configured to cache data usable by two or more of the plurality of compute units;

a power management unit configured to request that a respective compute unit of the plurality of compute units enter a low power state, exit the low power state, enter a normal power state, or exit the normal power state; and,

a memory configured to store at least a state of the shared cache unit;

wherein a first compute unit of the plurality of compute units is configured to indicate that the first compute unit is attempting to enter the low power state, and, when the first compute unit is the only compute unit in the normal power state, to save a state of a shared cache unit to the memory, to flush a portion of a cache of the shared cache unit; and to repeat the flushing until either a second compute unit exits the low power state or the cache is completely flushed;

wherein the shared cache unit is further configured to determine if the first compute unit is the only compute unit of the plurality in the normal power state; and

wherein the power management unit is further configured to permit the first compute unit to enter the low power state upon completion of any required flushing by the first compute unit.

11. The integrated circuit device of claim 10 , wherein the power management unit is further configured to permit the first compute unit to enter the low power state when the first compute unit is not the only compute unit in the normal power state.

12. The integrated circuit device of claim 10 , wherein the power management unit is further configured to, prior to the indicating, request the first compute unit to enter the low power state; and

wherein the first compute unit of the plurality of compute units is further configured to save a state of the first compute unit and flush a cache of the first compute unit subsequent the requesting and prior to the indicating.

13. The integrated circuit device of claim 10 , wherein the first compute unit is further configured to:

report that the first compute unit is permitted to enter the low power state subsequent the permitting; and

wherein the power management unit is further configured to instruct the first compute unit to enter the low power state.

14. The integrated circuit device of claim 10 , wherein the shared cache unit further comprises a shared cache unit handshake register, and wherein the first compute unit is configured to indicate by writing to the shared cache unit handshake register.

15. An integrated circuit device, comprising:

a plurality of compute units;

a shared cache unit configured to cache data usable by two or more of the plurality of compute units;

a power management unit configured to request each of the plurality of compute units to enter a low power state, exit the low power state, enter a normal power state, or exit the normal power state; and,

a memory configured to store at least a state of the shared cache unit;

wherein a first compute unit is configured to indicate that the first compute unit is attempting to exit the low power state and, when all other compute units are in the low power state, to restore a state of the shared cache unit;

wherein the shared cache unit is configured to determine if all other compute units of the plurality are in the low power state; and

wherein the power management unit is configured to permit the first compute unit to exit the low power state subsequent to restoring the state of the shared cache unit.

16. The integrated circuit device of claim 15 , wherein the power management unit is further configured to permit the first compute unit to exit the low power state, when at least one other compute unit is in the normal power state.

17. The integrated circuit device of claim 15 , wherein the first compute unit is further configured to restore a state of the first compute unit from memory prior to permitting the first compute unit to exit the low power state.

18. The integrated circuit device of claim 15 , wherein the shared cache unit further comprises a shared cache unit handshake register, and wherein the first compute unit is further configured to indicate by writing to the shared cache unit handshake register.

19. A non-transitory computer-readable storage medium storing instructions executable by at least one processor to fabricate an integrated circuit, the integrated circuit comprising:

a plurality of compute units;

a shared cache unit configured to cache data usable by two or more of the plurality of compute units;

a power management unit configured to request that a respective compute unit of the plurality of compute units enter a low power state, exit the low power state, enter a normal power state, or exit the normal power state; and,

a memory configured to store at least a state of the shared cache unit;

wherein a first compute unit of the plurality of compute units is configured to indicate that the first compute unit is attempting to enter the low power state and, when the first compute unit is the only compute unit in the normal power state, to save a state of a shared cache unit to the memory, to flush a portion of a cache of the shared cache unit; and to repeat the flushing until either a second compute unit exits the low power state or the cache is completely flushed;

wherein the shared cache unit is further configured to determine if the first compute unit is the only compute unit of the plurality in the normal power state; and

wherein the power management unit is further configured to permit the first compute unit to enter the low power state upon completion of any required flushing by the first compute unit.

20. The non-transitory computer readable storage medium of claim 19 , wherein the power management unit is further configured to permit the first compute unit to enter the low power state when the first compute unit is not the only compute unit in the normal power state.

21. The non-transitory computer readable storage medium of claim 19 ,

wherein the power management unit is further configured to, prior to the indicating, request the first compute unit to enter the low power state; and

wherein the first compute unit is further configured to save a state of the first compute unit and flush a cache of the first compute unit subsequent the requesting and prior to the indicating.

22. The non-transitory computer readable storage medium of claim 19 ,

wherein the first compute unit is further configured to report that the first compute unit is permitted to enter the low power state subsequent the permitting; and

wherein the power management unit is further configured to instruct the first compute unit to enter the low power state.

23. The non-transitory computer readable storage medium of claim 19 , wherein the shared cache unit further comprises a shared cache unit handshake register, and wherein the first compute unit is configured to indicate by writing to the shared cache unit handshake register.

24. A non-transitory computer-readable storage medium storing instructions executable by at least one processor to fabricate an integrated circuit, the integrated circuit comprising:

a plurality of compute units;

a shared cache unit configured to cache data usable by two or more of the plurality of compute units;

a power management unit configured to request each of the plurality of compute units to enter a low power state, exit the low power state, enter a normal power state, or exit the normal power state; and,

a memory configured to store at least a state of the shared cache unit;

wherein a first compute unit of the plurality of compute units is configured to indicate that the first compute unit is attempting to exit the low power state and, when all other compute units are in the low power state, to restore a state of the shared cache unit;

wherein the shared cache unit is further configured to determine if all other compute units of the plurality are in the low power state; and

wherein the power management unit is further configured to permit the first compute unit to exit the low power state subsequent to restoring the state of the shared cache unit.

25. The non-transitory computer readable storage medium of claim 24 , wherein the power management unit is further configured to permit the first compute unit to exit the low power state, when at least one other compute unit is in the normal power state.

26. The non-transitory computer readable storage medium of claim 24 , wherein the first compute unit is further configured to restore a state of the first compute unit from memory prior to permitting the first compute unit to exit the low power state.

27. The non-transitory computer readable storage medium of claim 24 , wherein the shared cache unit further comprises a shared cache unit handshake register, and wherein the first compute unit is further configured to indicate by writing to the shared cache unit handshake register.

28. A method, comprising:

monitoring activity of at least two components each selected from central processing units (CPUs), graphics processing units (GPUs), or compute units of an integrated circuit device;

powering down a shared cache, in response to a finding of sufficiently low activity of the at least two components; and

powering up the shared cache, in response to a finding that the shared cache is needed by at least one of the at least two components.

29. A method, comprising,

receiving a power transition request;

checking each of a plurality of central processing units (CPUs), graphics processing units (GPUs), or compute units of an integrated circuit device as to whether powering down a shared cache is possible, in response to the receiving; and

powering down the shared cache, in response to a determination that powering down the shared cache is possible.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2013
From: KOMMRUSCH, STEVEN J
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 031141/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: KOMMRUSCH, STEVEN J
To: AMD MICRO DEVICES, INC.
Reel/Frame 029791/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2012
From: KITCHIN, PAUL; WALKER, WILLIAM L
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 028846/0561 →
Continuity (1)
Related Publication 20140059371A1 · Feb 27, 2014