IP Library Granted Patent US 10,810,126
Granted Patent B2
US 10,810,126 · App. 16/139,517 · Granted Oct 20, 2020

Cache storage techniques

Inventors: Joseph Michael Pusdesris (Austin, TX); Adrian Montero (Austin, TX); Klas Magnus Bruce (Leander, TX); Chris Abernathy (Austin, TX)
Assignee: Arm Limited
G06F12/0862G06F11/3409G06F12/0871G06F2212/1021
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,810,126
App. No.
16/139,517
Granted
Oct 20, 2020
Kind
B2
Abstract

The present disclosure is concerned with improvements to cache systems that can be used to improve the performance (e.g. hit performance) and/or bandwidth within a memory hierarchy. For instance, a data processing apparatus is provided that comprises a cache. Access circuitry receives one or more requests for data and when the data is present in the cache the data is returned. Retrieval circuitry retrieves the data and stores the data in the cache, either proactively or in response to the one or more requests for the data. Control circuitry evicts the data from the cache and, in dependence on at least one condition, stores the data in the further cache. The at least one condition comprises a requirement that the data was stored into the cache proactively and that a number of the one or more requests is above a threshold value.

Claims (52)

1. A data processing apparatus comprising:

a cache comprising a plurality of storage locations distributed into a first subset, a second subset and a third subset;

allocation circuitry to determine a given location into which data can be stored and determine whether to store the data at the given location in dependence on:

a first policy when the given location is in the first subset;

a second policy when the given location is in the second subset; and

a selected policy when the given location is in the third subset; and

performance monitoring circuitry to monitor a performance of the first policy and the second policy, wherein

the selected policy is whichever of the first policy and the second policy has a higher performance;

in response to a performance level exceeding an upper predetermined threshold, the allocation circuitry is adapted to determine whether to store the data at the given location in dependence on the first policy regardless of the given location; and/or

in response to a performance level falling below a lower predetermined threshold, the allocation circuitry is adapted to determine whether to store the data at the given location in dependence on the second policy when the data is in the second subset or the third subset.

2. A data processing apparatus according to claim 1 , wherein

the performance of the first policy is based on a hit rate in the first subset; and

the performance of the second policy is based on a hit rate in the second subset.

3. A data processing apparatus according to claim 2 , wherein

the hit rate of the first policy and the hit rate of the second policy are relative to each other.

4. A data processing apparatus according to claim 1 , wherein

the performance of the first policy and the second policy is determined using a saturated counter.

5. A data processing apparatus according to claim 4 , wherein

the performance monitoring circuitry is adapted to change the saturated counter in one direction in response to a hit in the first subset; and

the performance monitoring circuitry is adapted to change the saturated counter in another direction in response to a hit in the second subset.

6. A data processing apparatus according to claim 4 , wherein

the performance monitoring circuitry is adapted to change the saturated counter in one direction in response to a miss in the second subset; and

the performance monitoring circuitry is adapted to change the saturated counter in another direction in response to a miss in the first subset.

7. A data processing apparatus according to claim 4 , wherein

the performance monitoring circuitry is adapted to apply a weighting to data that is stored as a consequence of an explicit fetch over data that is stored as a consequence of a prefetch operation.

8. A data processing apparatus according to claim 7 , wherein

a ratio of the weighting is between 2:1 and 4:1.

9. A data processing apparatus according to claim 1 , wherein

the performance level is the performance of the first subset.

10. A data processing apparatus according to claim 1 , wherein

the performance level is a performance of the cache.

11. A data processing apparatus comprising:

a cache comprising a plurality of storage locations distributed into a first subset, a second subset and a third subset;

allocation circuitry to determine a given location into which data can be stored and determine whether to store the data at the given location in dependence on:

a first policy when the given location is in the first subset;

a second policy when the given location is in the second subset; and

a selected policy when the given location is in the third subset; and

performance monitoring circuitry to monitor a performance of the first policy and the second policy, wherein

the selected policy is whichever of the first policy and the second policy has a higher performance, wherein

the data is evicted from a further cache;

the first policy is adapted to store the data; and

the second policy is adapted to store data on the condition that it has been accessed from the further cache more than once.

12. A method of using a cache comprising a plurality of storage locations distributed into a first subset, a second subset and a third subset, the method comprising:

determining a given location into which data can be stored;

determining whether to store the data at the given location in dependence on:

a first policy when the given location is in the first subset;

a second policy when the given location is in the second subset; and

a selected policy when the given location is in the third subset; and

monitoring a performance of the first policy and the second policy, wherein

the selected policy is whichever of the first policy and the second policy has a higher performance;

in response to a performance level exceeding an upper predetermined threshold, it is determined whether to store the data at the given location in dependence on the first policy regardless of the given location; and/or

in response to a performance level falling below a lower predetermined threshold, it is determined whether to store the data at the given location in dependence on the second policy when the data is in the second subset or the third subset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2018
From: PUSDESRIS, JOSEPH MICHAEL; MONTERO, ADRIAN; BRUCE, KLAS MAGNUS; ABERNATHY, CHRIS
To: ARM LIMITED
Reel/Frame 047586/0064 →
Continuity (1)
Related Publication 20200097410A1 · Mar 26, 2020