IP Library › Granted Patent US 12,288,073
Granted Patent B2
US 12,288,073 · App. 18/129,979 · Granted Apr 29, 2025

Instruction prefetch throttling

Inventors: Chang Joo Lee (Austin, TX); Jason Lee Setter (Austin, TX); Julia Kay Lanier (Austin, TX); Michael Brian Schinzler (Round Rock, TX); Yasuo Ishii (Austin, TX)
Assignee: Arm Limited
G06F9/3806G06F9/3861G06F9/3802
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 12,288,073
App. No.
18/129,979
Granted
Apr 29, 2025
Kind
B2
Abstract

An apparatus is provided for limiting the effective utilisation of an instruction fetch queue. The instruction fetch entries are used to control the prefetching of instructions from memory, such that those instructions are stored in an instruction cache prior to being required by execution circuitry while executing a program. By limiting the effective utilisation of the instruction fetch queue, fewer instructions will be prefetched and fewer instructions will be allocated to the instruction cache, thus causing fewer evictions from the instruction cache. In the event that the instruction fetch entries are for instructions that are unnecessary to the program, the pollution of the instruction cache with these unnecessary instructions can be mitigated.

Claims (55)

1. An apparatus comprising:

an instruction fetch queue for storage of instruction fetch entries;

prefetching circuitry configured, for each of the instruction fetch entries, to fetch an instruction indicated by that instruction fetch entry and to cause the instruction to be allocated to an instruction cache; and

control circuitry configured to suppress allocation of a further instruction fetch entry to the instruction fetch queue in response to a number of the instruction fetch entries meeting or exceeding a limit value, wherein the limit value is less than a storage capacity of the instruction fetch queue.

2. The apparatus of claim 1 , wherein

in response to fetching the instruction indicated by the instruction fetch entry, the prefetching circuitry is configured to cause a deallocation of the instruction fetch entry; and

in response to the number of instruction fetch entries being less than the limit value after the deallocation, the control circuitry is configured to cause the further instruction fetch entry to be allocated to the instruction fetch queue.

3. The apparatus of claim 1 , wherein

the limit value is dynamically modifiable.

4. The apparatus of claim 3 , comprising:

event measurement circuitry configured to detect occurrences of one or more events; and

determination circuitry configured to update the limit value based on the events detected.

5. The apparatus of claim 4 , wherein:

the event measurement circuitry is configured to measure the number of occurrences of one or more events; and

the determination circuitry is configured to update the limit value based on the number of occurrences of the one or more events within a measurement period.

6. The apparatus of claim 5 , wherein

the measurement period is a predetermined number of allocations to the instruction fetch queue.

7. The apparatus of claim 4 , comprising:

prediction circuitry configured to generate the further instruction fetch entry,

wherein the one or more events are indicative of an increased risk of misprediction by the prediction circuitry.

8. The apparatus of claim 7 , wherein

the prediction circuitry is configured to generate a further instruction fetch entry after the further instruction fetch entry has been allocated to the instruction fetch queue.

9. The apparatus of claim 7 , wherein

the control circuitry is configured to suppress allocation of the further instruction fetch entry to the instruction fetch queue by causing the prediction circuitry to stall.

10. The apparatus of claim 7 , wherein

the one or more events comprises at least one of:

a miss in the instruction cache,

a miss in a branch target buffer, and

a miss in a branch prediction buffer.

11. The apparatus of claim 1 , comprising:

sequence tracking circuitry configured to determine a number of contiguous instruction fetch entries for instructions that are contiguous in program order, wherein

the control circuitry is configured to suppress allocation of the further instruction fetch entry to the instruction fetch queue in response to the number of contiguous instruction fetch entries meeting or exceeding the limit value.

12. The apparatus of claim 11 , wherein

in response to fetching an instruction indicated by a corresponding instruction fetch entry, the prefetching circuitry is configured to cause a deallocation of the corresponding instruction fetch entry; and

in response to the number of contiguous instruction fetch entries being less than the limit value after the deallocation, the control circuitry is configured to cause the further instruction fetch entry to be allocated to the instruction fetch queue.

13. The apparatus of claim 11 , wherein

the sequence tracking circuitry is configured to determine the number of contiguous instruction fetch entries based on a number of instruction fetch entries allocated to the instruction fetch queue since detecting a break in a predicted program flow.

14. The apparatus of claim 13 , wherein

the sequence tracking circuitry is configured to detect the break in the predicted program flow based on at least one of:

an instruction fetch entry corresponding to a predicted taken branch instruction; and

a pipeline flush.

15. A system comprising:

the apparatus of claim 1 , implemented in at least one packaged chip;

at least one system component; and

a board,

wherein the at least one packaged chip and the at least one system component are assembled on the board.

16. A chip-containing product comprising the system of claim 15 assembled on a further board with at least one other product component.

17. A method comprising:

storing instruction fetch entries in an instruction fetch queue;

for each of the instruction fetch entries, fetching an instruction indicated by that instruction fetch entry and causing the instruction to be allocated to an instruction cache; and

suppressing allocation of a further instruction fetch entry in response to a number of instruction fetch entries meeting or exceeding a limit value, wherein the limit value is less than a storage capacity of the instruction fetch queue.

18. A non-transitory computer-readable medium to store computer-readable code for fabrication of an apparatus comprising:

an instruction fetch queue for storage of instruction fetch entries;

prefetching circuitry configured, for each of the instruction fetch entries, to fetch an instruction indicated by that instruction fetch entry and to cause the instruction to be allocated to an instruction cache; and

control circuitry configured to suppress allocation of a further instruction fetch entry to the instruction fetch queue in response to a number of the instruction fetch entries meeting or exceeding a limit value, wherein the limit value is less than a storage capacity of the instruction fetch queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2023
From: LEE, CHANG JOO; SETTER, JASON LEE; LANIER, JULIA KAY; SCHINZLER, MICHAEL BRIAN; ISHII, YASUO
To: ARM LIMITED
Reel/Frame 064794/0228 →
Continuity (1)
Related Publication 20240329999A1 · Oct 3, 2024
References Cited (11)
US 7359890B1 · Ku · 2008 [cited by examiner]
US 10296460B2 · Sudhir · 2019 [cited by examiner]
US 10474578B2 · Lee · 2019 [cited by examiner]
US 20050076181A1 · Hsu · 2005 [cited by examiner]
US 20060179238A1 · Griswell, Jr. · 2006 [cited by examiner]
US 20130013867A1 · Manne · 2013 [cited by examiner]
US 20140108740A1 · Rafacz · 2014 [cited by examiner]
US 20190065376A1 · Lee et al. · 2019 [cited by applicant]
US 20210173783A1 · Thyagarajan et al. · 2021 [cited by applicant]
U.S. Appl. No. 18/754,594, filed Jun. 26, 2024, Ecco et al. [cited by applicant]
PCT International Search Report and Written Opinion of the International Searching Authority for PCT/GB2024/050363 mailed May 16, 2024, 14 pages. [cited by applicant]