IP Library Granted Patent US 11,243,892
Granted Patent B2
US 11,243,892 · App. 16/745,019 · Granted Feb 8, 2022

Partitioning TLB or cache allocation

Inventor: Steven Douglas Krueger (Austin, TX)
Assignee: ARM LTD.
G06F12/1045G06F12/084G06F12/0842G06F12/0875G06F12/0891G06F12/109G06F12/1027G06F12/1036G06F12/12G06F12/126G06F2212/1041G06F2212/1048G06F2212/452G06F2212/601G06F2212/6042G06F2212/6046G06F2212/68G06F2212/684
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 11,243,892
App. No.
16/745,019
Granted
Feb 8, 2022
Kind
B2
Abstract

A request for data from a cache (TLB or data/instruction cache) specifies a partition identifier allocated to a software execution environment associated with the request. Allocation of data to the cache is controlled based on a set of configuration information selected based on the partition identifier specified by the request. For a TLB, this allows different allocation policies to be used for requests associated with different software execution environments. In one example, the cache allocation is controlled based on an allocation threshold specified by the selected set of configuration information, which limits the maximum number of cache entries allowed to be allocated with data associated with the corresponding partition identifier.

Claims (26)

1. An apparatus comprising:

processing circuitry to perform data processing in response to instructions of one of a plurality of software execution environments;

wherein the processing circuitry is configured to issue a cache access request specifying a partition identifier allocated to a software execution environment associated with the cache access request, and determine the partition identifier specified by the cache access request based on a value read from a software-writable architectural register; and

a cache comprising a plurality of entries to store data;

wherein in response to a cache miss detected for the cache access request, the cache is configured to control allocation of data to the cache in dependence on one of a plurality of sets of configuration information selected in dependence on the partition identifier specified by the cache access request;

wherein in a first cache control mode, the cache is configured to control allocation of data to the cache in dependence on a threshold specified by the selected set of configuration information, the threshold identifying a maximum number of entries of the cache allowed to be allocated with data associated with the corresponding partition identifier.

2. The apparatus according to claim 1 , wherein in response to the cache access request, the cache is configured to perform a cache lookup which is independent of the partition identifier specified by the cache access request.

3. The apparatus according to claim 1 , wherein each valid entry of the cache is associated with a partition identifier tag identifying a partition identifier of the cache access request which caused the corresponding data to be allocated to that entry.

4. The apparatus according to claim 3 , wherein on writing back data from a given entry of the cache to another cache or memory, the cache is configured to issue a memory transaction specifying the partition identifier identified by the partition identifier tag of said given entry.

5. The apparatus according to claim 1 , comprising a plurality of allocation counters, each allocation counter to count a number of entries of the cache allocated for data associated with a given partition identifier.

6. The apparatus according to claim 1 , wherein in the first cache control mode, the cache is configured to prevent data being allocated to the cache in response to the cache miss if the number of entries allocated for data associated with the partition identifier specified by the cache access request is equal to or exceeds the maximum number indicated by said threshold.

7. The apparatus according to claim 1 , wherein in the first cache control mode, the cache is configured to allocate data to the cache in response to the cache miss and invalidate, evict or replace other cached data associated with the partition identifier specified by the cache access request if the number of entries allocated for data associated with the partition identifier specified by the cache access request is equal to or exceeds the maximum number indicated by said threshold.

8. The apparatus according to claim 1 , wherein the threshold identifies the maximum number of entries as a fraction of the capacity of the cache.

9. The apparatus according to claim 1 , wherein in a second cache control mode, the cache is configured to control allocation of data to the cache in dependence on a cache portion map specified by the selected set of configuration information, the cache portion map identifying which portions of the cache are allowed to be allocated with data in response to the cache access request.

10. The apparatus according to claim 9 , wherein the cache is configured to select whether to use the first cache control mode or the second cache control mode in dependence on a configuration value specified in a control register.

11. The apparatus according to claim 1 , wherein the cache comprises one of:

a data cache;

an instruction cache;

a translation lookaside buffer; and

a page walk cache.

12. A method comprising:

performing data processing in response to instructions of one of a plurality of software execution environments;

issuing a cache access request specifying a partition identifier allocated to a software execution environment associated with the cache access request, wherein the partition identifier specified by the cache access request is determined based on a value read from a software-writable architectural register;

accessing data in a cache comprising a plurality of entries; and

in response to a cache miss detected for the cache access request, controlling allocation of data to the cache in dependence on one of a plurality of sets of configuration information selected in dependence on the partition identifier specified by the cache access request;

wherein in a first cache control mode, the allocation of data to the cache is controlled in dependence on a threshold specified by the selected set of configuration information, the threshold identifying a maximum number of entries of the cache allowed to be allocated with data associated with the corresponding partition identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2020
From: KRUEGER, STEVEN DOUGLAS
To: ARM LTD.
Reel/Frame 051625/0105 →
Continuity (2)
Division 15405563 · Jan 13, 2017
Related Publication 20200151111A1 · May 14, 2020
Cited By (1)
US 12,689,599