IP Library › Granted Patent US 11,392,383
Granted Patent B2
US 11,392,383 · App. 17/041,312 · Granted Jul 19, 2022

Apparatus and method for prefetching data items

Inventors: Ian Michael Caulfield (Cambridge, GB); Peter Richard Greenhalgh (Cambridge, GB); Frederic Claude Marie Piry (Cagnes sur Mer, FR); Albin Pierrick Tonnerre (Nice, FR)
Assignee: Arm Limited
G06F9/3802G06F9/3455G06F9/382G06F9/383G06F12/0875G06F2212/1021G06F2212/452
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,392,383
App. No.
17/041,312
Granted
Jul 19, 2022
Kind
B2
Abstract

Examples of the present disclosure relate to an apparatus comprising execution circuitry to execute instructions defining data processing operations on data items. The apparatus comprises cache storage to store temporary copies of the data items. The apparatus comprises prefetching circuitry to a) predict that a data item will be subject to the data processing operations by the execution circuitry by determining that the data item is consistent with an extrapolation of previous data item retrieval by the execution circuitry, and identifying that at least one control flow element of the instructions indicates that the data item will be subject to the data processing operations by the execution circuitry; and b) prefetch the data item into the cache storage.

Claims (40)

1. An apparatus comprising:

execution circuitry to execute instructions defining data processing operations on data items;

cache storage to store temporary copies of the data items; and

prefetching circuitry to:

a) predict that a data item will be subject to the data processing operations by the execution circuitry by:

determining that the data item is consistent with an extrapolation of previous data item retrieval by the execution circuitry; and

identifying that at least one control flow element of the instructions indicates that the data item will be subject to the data processing operations by the execution circuitry, and

b) prefetch the data item into the cache storage;

wherein the determining comprises identifying that a further data item is used as a pointer to a memory location storing the data item;

the prefetching further comprises prefetching the further data item into the cache storage;

the at least one control flow element of the instructions comprises a pointer value bounds check on the further data item to check whether a memory address of the data item is within a range of memory addresses to which the pointer is allowed to point.

2. An apparatus according to claim 1 , wherein:

the apparatus comprises a sequence of pipelined stages including the execution circuitry;

the prefetching circuitry is arranged to receive an indication of the control flow element of the instructions from a pre-execution circuitry stage of the sequence of pipelined stages.

3. An apparatus according to claim 2 , wherein the pre-execution circuitry stage of the sequence of pipelined stages is a decode stage of the sequence of pipelined stages.

4. An apparatus according to claim 3 , wherein:

the decode stage comprises a micro-op cache to store at least partially decoded instructions; and

the decode stage is arranged to determine the indication of the control flow element in dependence on contents of the micro-op cache.

5. An apparatus according to claim 2 , wherein the pre-execution circuitry stage of the sequence of pipelined stages is an issue stage of the sequence of stages.

6. An apparatus according to claim 5 , wherein the indication of the control flow element comprises a data hazard identification made at the issue stage.

7. An apparatus according to claim 1 , wherein:

the instructions define an instruction loop; and

the at least one control flow element comprises at least one property of the loop indicating whether the data item will be subject to the data processing operations.

8. An apparatus according to claim 7 , wherein:

the at least one property comprises a number of iterations of the loop to be executed.

9. An apparatus according to claim 7 , wherein:

the at least one property comprises a termination condition of the loop.

10. An apparatus according to claim 9 , wherein:

determining that the at least one control flow element of the instructions indicates that the data item will be subject to the data processing operations comprises determining whether the termination condition will be met.

11. An apparatus according to claim 9 , wherein the termination condition is a data value dependent termination condition.

12. A method comprising:

predicting that a data item will be subject to a data processing operation by:

determining that the data item is consistent with an extrapolation of previous data item retrieval; and

identifying that at least one control flow element of the instructions indicates that the data item will be subject to the data processing,

prefetching the data item into cache storage; and

executing the data processing operation on the data item;

wherein the determining comprises identifying that a further data item is used as a pointer to a memory location storing the data item;

the prefetching further comprises prefetching the further data item into the cache storage;

the at least one control flow element of the instructions comprises a pointer value bounds check on the further data item to check whether a memory address of the data item is within a range of memory addresses to which the pointer is allowed to point.

13. The apparatus according to claim 1 , wherein the prefetch circuitry is configured to determine whether to prefetch the data item based on whether the memory address of the data item is within the range of memory addresses to which the pointer is allowed to point.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: CAULFIELD, IAN MICHAEL; GREENHALGH, PETER RICHARD; PIRY, FREDERIC CLAUDE MARIE; TONNERRE, ALBIN PIERRICK
To: ARM LIMITED
Reel/Frame 053876/0414 →
Priority Claims (1)
GB 1806170 · Apr 16, 2018 · national
Continuity (1)
Related Publication 20210019148A1 · Jan 21, 2021