IP Library Granted Patent US 10,482,016
Granted Patent B2
US 10,482,016 · App. 15/684,418 · Granted Nov 19, 2019

Providing private cache allocation for power-collapsed processor cores in processor-based systems

Inventors: Kaustav Roychowdhury (Bangalore, IN); Siddesh Halavarthi Math Revana (Bangalore, IN)
Assignee: QUALCOMM Incorporated
G06F12/0831G06F12/084G06F12/0811G06F2212/283G06F2212/314G06F2212/621
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,482,016
App. No.
15/684,418
Granted
Nov 19, 2019
Kind
B2
Abstract

Providing private cache allocation for power-collapsed processor cores in processor-based systems is provided. In one aspect, a processor-based system provides multiple processor cores, each residing within its own processor core power domain. Each processor core is provided with a private cache residing within its own private cache power domain, configured to be power-controlled independently of the corresponding processor core power domain. When a first processor core is placed in a power-collapsed state, a snoop controller corresponding to the private cache of the first processor core maintains power to the private cache power domain of the private cache, allowing the private cache to remain online. The snoop controller also enables allocation and snooping of the private cache by a second processor core while the first processor core remains in the power-collapsed state. In this manner, each private cache may be used for data-caching operations while its corresponding processor core is power-collapsed.

Claims (61)

1. A method for providing private cache allocation, comprising:

determining, by a snoop controller of a plurality of snoop controllers, that a first processor core of a first processor core power domain of a plurality of processor core power domains corresponding to the plurality of snoop controllers has entered a power-collapsed state; and

responsive to the first processor core entering the power-collapsed state:

maintaining power to a private cache of a private cache power domain of a plurality of private cache power domains corresponding to the first processor core power domain of the plurality of processor core power domains, wherein each private cache power domain of the plurality of private cache power domains is configured to be power-controlled independently of the corresponding processor core power domain; and

enabling allocation and snooping of the private cache by a second processor core of a second processor core power domain of the plurality of processor core power domains while the first processor core remains in the power-collapsed state;

wherein:

each snoop controller of the plurality of snoop controllers comprises a configuration bit indicating whether to enable allocation and snooping of the private cache of the private cache power domain corresponding to the snoop controller; and

enabling allocation and snooping of the private cache by the second processor core while the first processor core remains in the power-collapsed state is further responsive to determining that the configuration bit of the snoop controller is set.

2. The method of claim 1 , wherein determining that the first processor core has entered the power-collapsed state comprises receiving a shutdown request from the first processor core.

3. The method of claim 1 , further comprising, subsequent to the first processor core entering the power-collapsed state:

determining, by the snoop controller, that a cache access operation by the second processor core resulted in a cache miss;

responsive to determining that the cache access operation by the second processor core resulted in the cache miss, issuing a cache line allocation command to the private cache.

4. The method of claim 1 , further comprising:

determining, by the snoop controller, that the first processor core has entered an active state; and

responsive to the first processor core entering the active state, disabling allocation of the private cache by the second processor core while the first processor core remains in the active state.

5. The method of claim 4 , wherein determining that the first processor core has entered the active state comprises receiving a wake-up request from the first processor core.

6. A non-transitory computer-readable medium having stored thereon computer-executable instructions which, when executed by a processor, cause the processor to:

determine that a first processor core of a first processor core power domain of a plurality of processor core power domains has entered a power-collapsed state; and

responsive to the first processor core entering the power-collapsed state:

maintain power to a private cache of a private cache power domain of a plurality of private cache power domains corresponding to the first processor core power domain of the plurality of processor core power domains, wherein each private cache power domain of the plurality of private cache power domains is configured to be power-controlled independently of the corresponding processor core power domain; and

enable allocation and snooping of the private cache by a second processor core of a second processor core power domain of the plurality of processor core power domains while the first processor core remains in the power-collapsed state, further responsive to determining that a configuration bit indicating whether to enable allocation and snooping of the private cache is set.

7. The non-transitory computer-readable medium of claim 6 having stored thereon computer-executable instructions which, when executed by a processor, further cause the processor to determine that the first processor core has entered the power-collapsed state by receiving a shutdown request from the first processor core.

8. The non-transitory computer-readable medium of claim 6 having stored thereon computer-executable instructions which, when executed by a processor, further cause the processor to:

determine that a cache access operation by the second processor core resulted in a cache miss;

responsive to determining that the cache access operation by the second processor core resulted in the cache miss, issue a cache line allocation command to the private cache.

9. The non-transitory computer-readable medium of claim 6 having stored thereon computer-executable instructions which, when executed by a processor, further cause the processor to:

determine that the first processor core has entered an active state; and

responsive to the first processor core entering the active state, disable allocation of the private cache by the second processor core while the first processor core remains in the active state.

10. The non-transitory computer-readable medium of claim 9 having stored thereon computer-executable instructions which, when executed by a processor, further cause the processor to determine that the first processor core has entered the active state by receiving a wake-up request from the first processor core.

11. A processor-based system for providing private cache allocation, comprising:

a plurality of processor core power domains, each comprising a processor core;

a plurality of private cache power domains, each corresponding to a processor core power domain of the plurality of processor core power domains and comprising a private cache; and

a shared cache power domain comprising a plurality of snoop controllers, each corresponding to a private cache power domain of the plurality of private cache power domains;

wherein:

each private cache power domain of the plurality of private cache power domains is configured to be power-controlled independently of the corresponding processor core power domain; and

each snoop controller of the plurality of snoop controllers is configured to:

determine that a first processor core of a processor core power domain associated with the snoop controller has entered a power-collapsed state; and

responsive to the first processor core entering the power-collapsed state:

maintain power to the private cache associated with the snoop controller; and

enable allocation and snooping of the private cache of the private cache power domain associated with the snoop controller by a second processor core of a second processor core power domain of the plurality of processor core power domains while the first processor core remains in the power-collapsed state.

12. The processor-based system of claim 11 , wherein each snoop controller of the plurality of snoop controllers is configured to determine that the first processor core has entered the power-collapsed state by being configured to receive a shutdown request from the first processor core.

13. The processor-based system of claim 11 , wherein:

each snoop controller of the plurality of snoop controllers comprises a configuration bit indicating whether to enable allocation and snooping of the private cache of the private cache power domain associated with the snoop controller; and

each snoop controller of the plurality of snoop controllers is configured to enable allocation and snooping of the private cache by the second processor core while the first processor core remains in the power-collapsed state further responsive to determining that the configuration bit of the snoop controller is set.

14. The processor-based system of claim 11 , wherein:

each snoop controller of the plurality of snoop controllers is further configured to, subsequent to the first processor core entering the power-collapsed state:

determine that a cache access operation by the second processor core resulted in a cache miss; and

responsive to determining that the cache access operation by the second processor core resulted in the cache miss, issue a cache line allocation command to the private cache of the private cache power domain associated with the snoop controller; and

the private cache of the private cache power domain associated with the snoop controller is configured to:

receive the cache line allocation command from the snoop controller; and

responsive to receiving the cache line allocation command from the snoop controller, allocate a cache line within the private cache of the private cache power domain associated with the snoop controller for the second processor core.

15. The processor-based system of claim 11 , wherein each snoop controller of the plurality of snoop controllers is further configured to:

determine that the first processor core has entered an active state; and

responsive to the first processor core of the processor core power domain associated with the snoop controller entering the active state, disable allocation of the private cache of the private cache power domain associated with the snoop controller by the second processor core while the first processor core remains in the active state.

16. The processor-based system of claim 15 , wherein each snoop controller of the plurality of snoop controllers is configured to determine that the first processor core has entered the active state by being configured to receive a wake-up request from the first processor core.

17. The processor-based system of claim 11 integrated into an integrated circuit (IC).

18. The processor-based system of claim 11 integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a global positioning system (GPS) device; a mobile phone; a cellular phone; a smart phone; a session initiation protocol (SIP) phone; a tablet; a phablet; a server; a computer; a portable computer; a mobile computing device; a wearable computing device; a desktop computer; a personal digital assistant (PDA); a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; an automobile; a vehicle component; avionics systems; a drone; and a multicopter.

19. A processor-based system for providing private cache allocation, comprising:

a means for determining that a first processor core of a first processor core power domain of a plurality of processor core power domains corresponding to a plurality of private cache power domains has entered a power-collapsed state, wherein each private cache power domain of the plurality of private cache power domains is configured to be power-controlled independently of the corresponding processor core power domain;

a means for maintaining power to a private cache of a private cache power domain of the plurality of private cache power domains corresponding to the first processor core power domain, responsive to the first processor core entering the power-collapsed state; and

a means for enabling allocation and snooping of the private cache by a second processor core of a second processor core power domain of the plurality of processor core power domains while the first processor core remains in the power-collapsed state, responsive to the first processor core entering the power-collapsed state, and further responsive to determining that a configuration bit indicating whether to enable allocation and snooping of the private cache is set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2017
From: ROYCHOWDHURY, KAUSTAV; HALAVARTHI MATH REVANA, SIDDESH
To: QUALCOMM INCORPORATED
Reel/Frame 044149/0048 →
Continuity (1)
Related Publication 20190065372A1 · Feb 28, 2019