IP Library Granted Patent US 11,334,495
Granted Patent B2
US 11,334,495 · App. 16/549,291 · Granted May 17, 2022

Cache eviction

Inventors: Joseph Michael Pusdesris (Austin, TX); Yasuo Ishii (Austin, TX)
Assignee: Arm Limited
G06F12/0891G06F9/30058G06F12/0875
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,334,495
App. No.
16/549,291
Granted
May 17, 2022
Kind
B2
Abstract

A data processing apparatus is provided. It includes cache circuitry to store a plurality of items, each having an associated indicator. Processing circuitry executes instructions using at least some of the plurality of items. Fill circuitry inserts a new item into the cache circuitry. Eviction circuitry determines which of the plurality of items is to be a victim item based on the indicator, and evicts the victim item from the cache circuitry. Detection circuitry detects a state of the processing circuitry at a time that the new item is inserted into the cache circuitry, and sets the indicator in dependence on the state.

Claims (58)

1. A data processing apparatus comprising:

cache circuitry to store a plurality of items, each having an associated indicator;

processing circuitry to execute instructions using at least some of the plurality of items;

fill circuitry to insert a new item into the cache circuitry;

eviction circuitry to determine which of the plurality of items is to be a victim item based on the indicator, and to evict the victim item from the cache circuitry; and

detection circuitry to detect a state of the processing circuitry at a time that the new item is inserted into the cache circuitry, and to set the indicator in dependence on the state; and

clearing circuitry to detect a condition and in response to the condition, to clear the indicator for a cleared item in the items, wherein

the processing circuitry is adapted to execute at least some of the instructions speculatively; and

the state of the processing circuitry comprises a speculation state of the processing circuitry.

2. The data processing apparatus according to claim 1 , comprising:

prediction circuitry to perform a branch lookup in respect of a branch instruction in the instructions, wherein

the speculation state is dependent on the branch lookup.

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

the prediction circuitry comprises a branch target buffer;

the branch lookup is a branch target lookup in the branch target buffer; and

when the branch lookup results in a miss, the speculation state is set to indicate that the at least some of the instructions are to be executed speculatively, and the indicator is set.

4. The data processing apparatus according to claim 2 , wherein

the branch instruction is a conditional branch instruction;

the prediction circuitry comprises a branch direction buffer;

the branch lookup is a branch direction lookup in the branch direction buffer; and

when the branch taken lookup results in a miss, the speculation state is set to indicate that the at least some of the instructions are to be executed speculatively, and the indicator is set.

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

when the branch direction lookup results in the miss, the processing circuitry is adapted to speculatively disregard the branch.

6. The data processing apparatus according to claim 1 , wherein

the condition comprises a requirement that the at least some of the instructions are speculatively executed twice while the cleared item is stored in the cache circuitry.

7. The data processing apparatus according to claim 1 , wherein

the condition comprises a requirement that the instructions are executed speculatively correctly.

8. The data processing apparatus according to claim 1 , wherein

the cache is an instruction cache; and

the items comprise the at least some of the instructions.

9. The data processing apparatus according to claim 8 , wherein

the instructions are deadblock instructions.

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

the cache is a data cache; and

the items comprise data used in execution of the instructions.

11. A data processing method comprising:

storing a plurality of items in a cache circuitry, each having an associated indicator;

executing instructions on processing circuitry using at least some of the plurality of items;

inserting a new item into the cache circuitry;

determining which of the plurality of items is to be a victim item based on the indicator;

evicting the victim item from the cache circuitry;

detecting a state of the processing circuitry at a time that the new item is inserted into the cache circuitry;

setting the indicator in dependence on the state;

detecting a condition; and

in response to detecting the condition, clearing the indicator for a cleared item in the items, wherein

at least some of the instructions are executed speculatively; and

the state of the processing circuitry comprises a speculation state of the processing circuitry.

12. A data processing apparatus comprising:

means for storing a plurality of items, each having an associated indicator;

means for executing instructions using at least some of the plurality of items;

means for inserting a new item into the means for storing;

means for determining which of the plurality of items is to be a victim item based on the indicator;

means for evicting the victim item from the cache circuitry;

means for detecting a state of the means for executing instructions at a time that the new item is inserted into the means for storing;

means for setting the indicator in dependence on the state; and

means for detecting a condition and in response to the condition, clearing the indicator for a cleared item in the items, wherein

the means for executing instructions is adapted to execute at least some of the instructions speculatively; and

the state of the means for executing instructions comprises a speculation state of the means for executing instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2019
From: PUSDESRIS, JOSEPH MICHAEL; ISHII, YASUO
To: ARM LIMITED
Reel/Frame 050759/0763 →
Continuity (1)
Related Publication 20210056034A1 · Feb 25, 2021