IP Library Granted Patent US 9,697,126
Granted Patent B2
US 9,697,126 · App. 14/860,993 · Granted Jul 4, 2017

Generating approximate usage measurements for shared cache memory systems

Inventors: Derek Robert Hower (Durham, NC); Harold Wade Cain, III (Raleigh, NC)
Assignee: QUALCOMM Incorporated
G06F12/084G06F11/3466G06F11/3471G06F12/0846G06F12/0848G06F11/348G06F12/0864G06F12/0895G06F2201/88G06F2201/885G06F2212/1016G06F2212/1044G06F2212/2112G06F2212/282G06F2212/314Y02B60/1225
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,697,126
App. No.
14/860,993
Granted
Jul 4, 2017
Kind
B2
Abstract

Generating approximate usage measurements for shared cache memory systems is disclosed. In one aspect, a cache memory system is provided. The cache memory system comprises a shared cache memory system. A subset of the shared cache memory system comprises a Quality of Service identifier (QoSID) tracking tag configured to store a QoSID tracking indicator for a QoS class. The shared cache memory system further comprises a cache controller configured to receive a memory access request comprising a QoSID, and is configured to access a cache line corresponding to the memory access request. The cache controller is also configured to determine whether the QoSID of the memory access request corresponds to a cache line assigned to the QoSID. If so, the cache controller is additionally configured to update the QoSID tracking tag.

Claims (53)

1. A shared cache memory system, comprising:

a plurality of cache subdivisions;

a plurality of Quality of Service identifier (QoSID) tracking tags each associated with a cache subdivision of the plurality of cache subdivisions; and

a cache usage monitor configured to:

associate each cache subdivision of the plurality of cache subdivisions with a QoS class of a plurality of QoS classes;

receive a memory access request comprising a QoSID;

access a cache subdivision corresponding to the memory access request among the plurality of cache subdivisions;

determine whether the QoSID of the memory access request corresponds to the QoS class associated with the cache subdivision;

update a QoSID tracking tag of the plurality of QoSID tracking tags associated with the cache subdivision corresponding to the memory access request based on the determination; and

generate an approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of QoSID tracking tags;

wherein the cache usage monitor is configured to generate the approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of OoSID tracking tags by being configured to:

determine a fraction of the plurality of cache subdivisions associated with the QoS class:

determine a count of the plurality of cache subdivisions associated with the QoS class for which the associated plurality of QoSID tracking tags is set: and

divide the count of the plurality of cache subdivisions by the fraction to generate the approximate usage measurement.

2. The shared cache memory system of claim 1 , wherein each cache subdivision of the plurality of cache subdivisions comprises a cache line.

3. The shared cache memory system of claim 1 , wherein each cache subdivision of the plurality of cache subdivisions comprises a set of cache lines.

4. The shared cache memory system of claim 1 , wherein each cache subdivision of the plurality of cache subdivisions comprises a way of cache lines.

5. The shared cache memory system of claim 1 , wherein each cache subdivision of the plurality of cache subdivisions comprises a bank of cache lines.

6. The shared cache memory system of claim 1 , wherein the plurality of QoSID tracking tags are associated with a distributed subset of the plurality of cache subdivisions.

7. The shared cache memory system of claim 1 integrated into an integrated circuit (IC).

8. The shared cache memory system of claim 1 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 mobile phone; a cellular phone; a computer; a portable computer; 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; and a portable digital video player.

9. A shared cache memory system, comprising:

a means for associating each cache subdivision of a plurality of cache subdivisions of the shared cache memory system with a Quality of Service (QoS) class of a plurality of QoS classes;

a means for receiving a memory access request comprising a QoS identifier (QoSID);

a means for accessing a cache subdivision corresponding to the memory access request among the plurality of cache subdivisions;

a means for determining whether the QoSID of the memory access request corresponds to the QoS class plurality of QoS classes associated with the cache subdivision;

a means for updating a QoSID tracking tag of a plurality of QoSID tracking tags associated with the cache subdivision corresponding to the memory access request based on the means for determining; and

a means for generating an approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of QoSID tracking tags;

wherein the means for generating the approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of QoSID tracking tags comprises:

a means for determining a fraction of the plurality of cache subdivisions associated with the QoS class;

a means for determining a count of the plurality of cache subdivisions associated with the QoS class for which the associated QoSID tracking tag is set; and

a means for dividing the count of the plurality of cache subdivisions by the fraction to generate the approximate usage measurement.

10. The shared cache memory system of claim 9 , wherein each cache subdivision of the plurality of cache subdivisions comprises a cache line.

11. The shared cache memory system of claim 9 , wherein each cache subdivision of the plurality of cache subdivisions comprises a set of cache lines.

12. The shared cache memory system of claim 9 , wherein each cache subdivision of the plurality of cache subdivisions comprises a way of cache lines.

13. The shared cache memory system of claim 9 , wherein each cache subdivision of the plurality of cache subdivisions comprises a bank of cache lines.

14. The shared cache memory system of claim 9 , wherein the plurality of QoSID tracking tags are associated with a distributed subset of the plurality of cache subdivisions.

15. A method for approximating shared cache memory usage, comprising:

associating each cache subdivision of a plurality of cache subdivisions of a shared cache memory system with a Quality of Service (QoS) class of a plurality of QoS classes;

receiving a memory access request comprising a QoS identifier (QoSID);

accessing a cache subdivision corresponding to the memory access request among the plurality of cache subdivisions;

determining whether the QoSID of the memory access request corresponds to the QoS class of the plurality of QoS classes associated with the cache subdivision;

updating a QoSID tracking tag of a plurality of QoSID tracking tags associated with the cache subdivision corresponding to the memory access request based on the determining; and

generating an approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of QoSID tracking tags;

wherein generating the approximate usage measurement for the QoS class of the plurality of QoS classes based on the plurality of QoSID tracking tags comprises:

determining a fraction of the plurality of cache subdivisions associated with the QoS class;

determining a count of the plurality of cache subdivisions associated with the QoS class for which the associated QoSID tracking tag is set; and

dividing the count of the plurality of cache subdivisions by the fraction to generate the approximate usage measurement.

16. The method of claim 15 , wherein each cache subdivision of the plurality of cache subdivisions comprises a cache line.

17. The method of claim 15 , wherein each cache subdivision of the plurality of cache subdivisions comprises a set of cache lines.

18. The method of claim 15 , wherein each cache subdivision of the plurality of cache subdivisions comprises a way of cache lines.

19. The method of claim 15 , wherein each cache subdivision of the plurality of cache subdivisions comprises a bank of cache lines.

20. The method of claim 15 , wherein the plurality of QoSID tracking tags are associated with a distributed subset of the plurality of cache subdivisions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: HOWER, DEREK ROBERT; CAIN, HAROLD WADE, III
To: QUALCOMM INCORPORATED
Reel/Frame 037663/0588 →
Continuity (2)
Provisional Application 62084469 · Nov 25, 2014
Related Publication 20160147655A1 · May 26, 2016