IP Library › Granted Patent US 10,387,320
Granted Patent B2
US 10,387,320 · App. 15/665,401 · Granted Aug 20, 2019

Integrated confirmation queues

Inventors: Edward A. Brekelbaum (Austin, TX); Ankit Ghiya (Austin, TX)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F12/0862G06F12/1009G06F2212/602G06F2212/65
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,387,320
App. No.
15/665,401
Granted
Aug 20, 2019
Kind
B2
Abstract

According to one general aspect, an apparatus may include a cache pre-fetcher configured to predict data to be retrieved from a memory system. The cache pre-fetcher may include a pattern predictor circuit and a confirmation queue circuit. The pattern predictor circuit may be configured to predict a series of memory addresses to be pre-fetched from the memory system. The confirmation queue circuit may be configured to: maintain a windowed confirmation queue of predicted memory addresses, compare a requested memory address against the predicted memory addresses, and, if the requested memory address is included in the predicted memory addresses, indicate that a successful pre-fetch has occurred.

Claims (62)

1. An apparatus comprising:

a cache pre-fetcher configured to predict data to be retrieved from a memory system;

the cache pre-fetcher comprising:

a pattern predictor circuit configured to predict a series of memory addresses to be pre-fetched from the memory system, and

a confirmation queue circuit configured to:

maintain a windowed confirmation queue of predicted memory addresses,

compare a requested memory address against the predicted memory addresses, and

if the requested memory address is included in the predicted memory addresses, indicate that a successful pre-fetch has occurred, and dynamically remove the requested memory address from the windowed confirmation queue, freeing a space for a new predicted memory address.

2. The apparatus of claim 1 , wherein the windowed confirmation queue includes up to a predefined plurality of predicted memory addresses, and

wherein the windowed confirmation queue circuit is configured to, if the number of outstanding memory addresses predicted by the pattern predictor circuit is greater than the predefined plurality of predicted memory addresses, refrain from adding any more memory addresses to the windowed confirmation queue.

3. The apparatus of claim 1 , wherein the windowed confirmation queue circuit is configured to, if the requested memory address is included in the predicted memory addresses:

remove the requested memory address from the windowed confirmation queue;

remove any memory addresses predicted earlier than requested memory address from the windowed confirmation queue; and

refill the windowed confirmation queue by re-predicting memory addresses that were previously predicted by the pattern predictor circuit but not added to the windowed confirmation queue.

4. The apparatus of claim 1 , wherein the confirmation queue circuit is configured to:

maintain a plurality of windowed confirmation queues, each for a respective address stream,

compare a requested memory address of an address stream against a windowed confirmation queue associated with the address stream; and

indicate a result of the comparison to the pattern predictor circuit.

5. The apparatus of claim 1 , wherein the confirmation queue circuit is configured to:

divide the windowed confirmation queue into an early portion and a later portion;

determine if the requested memory address is included in the predicted memory addresses, and, if so, which portion;

adjust a degree of confidence in the prediction based upon which portion included the predicted memory address.

6. The apparatus of claim 1 , wherein the confirmation queue circuit is configured to:

determine a number of skipped predicted memory addresses, if any, before the requested memory address matches one of the predicted memory addresses;

lower a level of confidence in the successful fetch based, at least in part, upon the number of skipped predicted memory addresses.

7. The apparatus of claim 6 , wherein the confirmation queue circuit is configured to:

count a number of successful predictions; and

indicate an increased level of confidence if the number of successful predictions exceeds a predefined threshold.

8. The apparatus of claim 7 , wherein the confirmation queue circuit is configured to:

adjust the number of successful predictions based, at least in part, upon the number of skipped predicted memory addresses.

9. The apparatus of claim 1 , wherein the confirmation queue circuit is configured to:

for each of the predicted memory addresses, maintain a tag that indicates whether or not the respective predicted memory address has been pre-fetched.

10. The apparatus of claim 1 , wherein the confirmation queue circuit is configured to store a predicted memory address even if the predicted memory address has not been pre-fetched from the memory system.

11. A method comprising:

predicting a series of memory addresses to be pre-fetched from a memory system;

maintaining a windowed confirmation queue of predicted memory addresses;

comparing a requested memory address against the predicted memory addresses, and

if the requested memory address is included in the predicted memory addresses, indicating that a successful pre-fetch has occurred, and dynamically removing the requested memory address from the windowed confirmation queue, freeing a space for a new predicted memory address.

12. The method of claim 11 , wherein the windowed confirmation queue includes up to a predefined plurality of predicted memory addresses, and

wherein maintaining comprises:

if a number of outstanding memory addresses predicted by the pattern predictor circuit is greater than the predefined plurality of predicted memory addresses, refrain from adding any more memory addresses to the windowed confirmation queue.

13. The method of claim 12 , wherein maintaining a further comprises:

adding a predicted memory address to the windowed confirmation queue even if the predicted memory address has not been pre-fetched from the memory system.

14. The method of claim 13 , wherein maintaining comprises:

associating a tag with each respective predicted memory address, wherein the tag indicates whether or not the respective predicted memory address has been, at least partially, pre-fetched from the memory system.

15. The method of claim 11 , wherein, if the requested memory address is included in the predicted memory addresses:

removing the requested memory address from the windowed confirmation queue;

removing any memory addresses predicted earlier than requested memory address from the windowed confirmation queue; and

refilling the windowed confirmation queue by re-predicting memory addresses that were previously predicted by the pattern predictor circuit but not added to the windowed confirmation queue.

16. The method of claim 11 , wherein maintaining comprises maintaining a plurality of windowed confirmation queues, each for a respective address stream;

wherein comparing comprises comparing a requested memory address of an address stream against a windowed confirmation queue associated with the address stream; and

wherein indicating comprises indicating a result of the comparison to the pattern predictor circuit.

17. The method of claim 11 , wherein comparing comprises:

dividing the windowed confirmation queue into an early portion and a later portion, and

determining if the requested memory address is included in the predicted memory addresses, and, if so, which portion; and

wherein indicating comprises adjusting a degree of confidence in the prediction based upon which portion included the predicted memory address.

18. The method of claim 11 , wherein comparing comprises:

counting a number of successful predictions; and

determining an increased level of confidence if the number of successful predictions exceeds a predefined threshold.

19. The method of claim 11 , wherein comparing comprises determining a number of skipped predicted memory addresses, if any, before the requested memory address matches one of the predicted memory addresses; and

indicating comprises lowering a level of confidence in the successful fetch based, at least in part, upon the number of skipped predicted memory addresses.

20. The method of claim 19 , wherein indicating comprises adjusting a number of successful predictions based, at least in part, upon the number of skipped predicted memory addresses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2017
From: BREKELBAUM, EDWARD A.; GHIYA, ANKIT
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 043150/0037 →
Continuity (2)
Provisional Application 62505836 · May 12, 2017
Related Publication 20180329821A1 · Nov 15, 2018
Cited By (1)
US 12,681,862