Providing shared cache memory allocation control in shared cache memory systems

US2016147656A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016147656-A1
Application numberUS-201514861025-A
CountryUS
Kind codeA1
Filing dateSep 22, 2015
Priority dateNov 25, 2014
Publication dateMay 26, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Providing shared cache memory allocation control in shared cached memory systems is disclosed. In one aspect, a cache controller of a shared cache memory system comprising a plurality of cache lines is provided. The cache controller comprises a cache allocation circuit providing a minimum mapping bitmask for mapping a Quality of Service (QoS) class to a minimum partition of the cache lines, and a maximum mapping bitmask for mapping the QoS class to a maximum partition of the cache lines. The cache allocation circuit receives a memory access request comprising a QoS identifier (QoSID) of the QoS class, and is configured to determine whether the memory access request corresponds to a cache line of the plurality of cache lines. If not, the cache allocation circuit selects, as a target partition, the minimum partition mapped to the QoS class or the maximum partition mapped to the QoS class.

First claim

Opening claim text (preview).

What is claimed is: 1 . A cache controller of a shared cache memory system comprising a plurality of cache lines, the cache controller comprising a cache allocation circuit comprising: a minimum mapping bitmask for mapping a Quality of Service (QoS) class of a plurality of QoS classes to a minimum partition of the plurality of cache lines; a maximum mapping bitmask for mapping the QoS class of the plurality of QoS classes to a maximum partition of the plurality of cache lines; and the cache allocation circuit configured to: receive a memory access request comprising a QoS identifier (QoSID) corresponding to the QoS class of the plurality of QoS classes; determine whether the memory access request corresponds to a cache line of the plurality of cache lines; and responsive to determining that the memory access request does not correspond to the cache line of the plurality of cache lines: select, as a target partition, one of the minimum partition mapped to the QoS class corresponding to the QoSID by the minimum mapping bitmask and the maximum partition mapped to the QoS class corresponding to the QoSID by the maximum mapping bitmask; and allocate a cache line within the target partition for a cache fill operation. 2 . The cache controller of claim 1 , wherein the cache allocation circuit is configured to allocate the cache line within the target partition by: identifying one or more cache lines of the plurality of cache lines within the target partition as one or more eviction candidates; and evicting an eviction candidate of the one or more eviction candidates from the shared cache memory system. 3 . The cache controller of claim 1 , wherein: the cache allocation circuit is further configured to provide an average allocation target value; the cache allocation circuit is configured to select, as the target partition, the one of the minimum partition and the maximum partition to cause an actual allocation of cache lines allocated to the QoS class corresponding to the QoSID to approach the average allocation target value. 4 . The cache controller of claim 3 , wherein: the cache controller further comprises a cache usage monitor for providing an indication of an allocation of the plurality of cache lines among the plurality of QoS classes; and the cache allocation circuit is configured to select, as the target partition, the one of the minimum partition and the maximum partition based on the indication provided by the cache usage monitor. 5 . The cache controller of claim 1 , wherein the cache allocation circuit is configured to select, as the target partition, the one of the minimum partition and the maximum partition by probabilistically selecting the one of the minimum partition and the maximum partition. 6 . The cache controller of claim 5 , further comprising a probability function provider circuit; wherein the cache allocation circuit is configured to probabilistically select the one of the minimum partition and the maximum partition based on the probability function provider circuit. 7 . The cache controller of claim 1 , wherein the minimum mapping bitmask and the maximum mapping bitmask map the QoS class of the plurality of QoS classes to a same partition of the plurality of cache lines that is exclusive to the QoS class. 8 . The cache controller of claim 1 , wherein: the minimum mapping bitmask maps the QoS class of the plurality of QoS classes to the minimum partition that is exclusive to the QoS class; and the maximum mapping bitmask maps the QoS class of the plurality of QoS classes to the maximum partition that is not exclusive to the QoS class. 9 . The cache controller of claim 1 integrated into an integrated circuit (IC). 10 . The cache controller 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. 11 . A cache controller of a shared cache memory system, comprising: a means for receiving a memory access request comprising a Quality of Service (QoS) identifier (QoSID) corresponding to a QoS class of a plurality of QoS classes; a means for determining whether the memory access request corresponds to a cache line of a plurality of cache lines of the shared cache memory system; a means for selecting, as a target partition, one of a minimum partition mapped to the QoS class corresponding to the QoSID by a minimum mapping bitmask and a maximum partition mapped to the QoS class corresponding to the QoSID by a maximum mapping bitmask, responsive to determining that the memory access request does not correspond to the cache line of the plurality of cache lines; and a means for allocating the cache line of the plurality of cache lines within the target partition for a cache fill operation, responsive to determining that the memory access request does not correspond to the cache line of the plurality of cache lines. 12 . The cache controller of claim 11 , wherein the means for allocating the cache line within the target partition comprises: a means for identifying one or more cache lines of the plurality of cache lines within the target partition as one or more eviction candidates; and a means for evicting an eviction candidate of the one or more eviction candidates from the shared cache memory system. 13 . The cache controller of claim 11 , further comprising a means for providing an average allocation target value; wherein the means for selecting, as the target partition, the one of the minimum partition and the maximum partition comprises a means for selecting the one of the minimum partition and the maximum partition to cause an actual allocation of cache lines allocated to the QoS class corresponding to the QoSID to approach the average allocation target value. 14 . The cache controller of claim 13 , wherein the means for selecting, as the target partition, the one of the minimum partition and the maximum partition comprises a means for selecting the one of the minimum partition and the maximum partition based on an indication of an allocation of the plurality of cache lines among the plurality of QoS classes provided by a cache usage monitor. 15 . The cache controller of claim 11 , wherein the means for selecting, as the target partition, the one of the minimum partition and the maximum partition comprises a means for probabilistically selecting the one of the minimum partition and the maximum partition. 16 . The cache controller of claim 15 , wherein the means for probabilistically selecting the one of the minimum partition and the maximum partition is based on a probability function provider circuit. 17 . The cache controller of claim 11 , wherein the minimum mapping bitmask and the maximum mapping bitmask map the QoS class of the plurality of QoS classes to a same partition of the plurality of cache lines that is exclusive to the QoS class. 18 . The cache controller of claim 11 , wherein: the minimum mapping bitmask maps the QoS class of the plurality of QoS classes to the minimum partition that is exclusive to the QoS class; and the maximum ma

Assignees

Inventors

Classifications

  • for multiprocessing or multitasking · CPC title

  • Details of cache specific to multiprocessor cache arrangements · CPC title

  • Cache with multiple tag or data arrays being simultaneously accessible · CPC title

  • adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

  • G06F12/084Primary

    with a shared cache · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016147656A1 cover?
Providing shared cache memory allocation control in shared cached memory systems is disclosed. In one aspect, a cache controller of a shared cache memory system comprising a plurality of cache lines is provided. The cache controller comprises a cache allocation circuit providing a minimum mapping bitmask for mapping a Quality of Service (QoS) class to a minimum partition of the cache lines, and…
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/084. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).