IP Library › Granted Patent US 10,817,426
Granted Patent B2
US 10,817,426 · App. 16/139,160 · Granted Oct 27, 2020

Prefetching techniques

Inventors: Krishnendra Nathella (Austin, TX); Chris Abernathy (Austin, TX); Huzefa Moiz Sanjeliwala (Austin, TX); Dam Sunwoo (Austin, TX); Balaji Vijayan (Austin, TX)
Assignee: Arm Limited
G06F12/0862G06F9/30043G06F2212/6026
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,817,426
App. No.
16/139,160
Granted
Oct 27, 2020
Kind
B2
Abstract

A variety of data processing apparatuses are provided in which stride determination circuitry determines a stride value as a difference between a current address and a previously received address. Stride storage circuitry stores an association between stride values determined by the stride determination circuitry and a frequency during a training period. Prefetch circuitry causes a further data value to be proactively retrieved from a further address. The further address is the current address modified by a stride value in the stride storage circuitry having a highest frequency during the training period. The variety of data processing apparatuses are directed towards improving efficiency by variously disregarding certain candidate stride values, considering additional further addresses for prefetching by using multiple stride values, using feedback to adjust the training process and compensating for page table boundaries.

Claims (47)

1. A data processing apparatus comprising:

data access circuitry to access data values in storage circuitry at addresses specified by access instructions;

stride determination circuitry to determine a stride value as a difference between a current address and a previously received address;

stride storage circuitry to store an association between stride values determined by the stride determination circuitry and a frequency of occurrence during a training period; and

prefetch circuitry to cause a further data value to be proactively retrieved from a further address, wherein the further address is the current address modified by a stride value in the stride storage circuitry having a highest frequency during the training period such that the further address and the current address are on a same page of memory circuitry,

wherein the stride values are bound by a lower stride value and an upper stride value; and

when the further address and the current address are on different pages of the memory circuitry, the data processing apparatus is configured to reduce at least one of a magnitude of the lower stride value and a magnitude of the upper stride value, and then the data processing apparatus is configured to redetermine the stride value in the stride storage circuitry having the highest frequency during the training period.

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

both the magnitude of the lower stride value and the magnitude of the upper stride value are reduced.

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

when the further address and the current address are on different pages and when the further address is higher than the current address, the magnitude of the upper stride value is reduced; and

when the further address and the current address are on different pages and when the further address is lower than the current address, the magnitude of the lower stride value is reduced.

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

the at least one of: a magnitude of the lower stride value and a magnitude of the upper stride value is reduced to either 0 or 1.

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

the at least one of: the magnitude of the lower stride value and the magnitude of the upper stride value is reduced by a half.

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

while the further address and the current address are on different pages of the memory circuitry, at least one the magnitude of the lower stride value and the magnitude of the upper stride value is reduced and then the stride value in the stride storage circuitry having the highest frequency during the training period is redetermined.

7. A data processing apparatus comprising:

data access circuitry to access data values in storage circuitry at addresses specified by access instructions;

stride determination circuitry to determine a stride value as a difference between a current address and a previously received address;

stride storage circuitry to store an association between stride values determined by the stride determination circuitry and a frequency of occurrence during a training period;

prefetch circuitry to cause a further data value to be proactively retrieved from a further address, wherein the further address is the current address modified by a stride value in the stride storage circuitry having a highest frequency above a minimum frequency during the training period; and

feedback circuitry to adjust at least one of: the training period, the minimum frequency, and an early termination value based on a performance of the stride value in the stride storage circuitry having the highest frequency above the minimum frequency during the training period,

wherein when the performance is below a lower threshold, the feedback circuitry is configured to increase the training period, and

wherein when the performance is above an upper threshold, the feedback circuitry is configured to decrease the training period.

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

the performance is based on a number of hits that occur by using the stride value in the stride storage circuitry having the highest frequency above the minimum frequency during the training period.

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

the training period is defined by a number of access instructions being received;

the number of access instructions is equal to a number of rounds multiplied by the number of stride values in the stride storage circuitry; and

the number of rounds is adjusted in dependence on the performance.

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

the training period is defined by the highest frequency exceeding the early termination value.

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

the minimum frequency is adjusted in dependence on the performance;

when the performance is below a lower threshold, the minimum frequency is increased; and

when the performance is above an upper threshold, the minimum frequency is decreased.

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

the at least one of the training period and the minimum frequency is adjusted to one of a number of discrete values.

13. A method of operating a data processing apparatus comprising:

determining a stride value as a difference between a current address specified by access instructions and a previously received address;

storing an association between stride values and a frequency of occurrence during a training period

causing a further data value to be proactively retrieved from a further address, wherein the further address is the current address modified by a stored stride value having a highest frequency above a minimum frequency during the training period;

adjusting at least one of: the training period, the minimum frequency, and an early termination value based on a performance of the stored stride circuitry having the highest frequency above the minimum frequency during the training period,

wherein when the performance is below a lower threshold, the training period is increased, and

wherein when the performance is above an upper threshold, the training period is decreased.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2018
From: NATHELLA, KRISHNENDRA; ABERNATHY, CHRIS; SANJELIWALA, HUZEFA MOIZ; SUNWOO, DAM; VIJAYAN, BALAJI
To: ARM LIMITED
Reel/Frame 046947/0235 →
Continuity (1)
Related Publication 20200097409A1 · Mar 26, 2020