IP Library › Granted Patent US 12,360,907
Granted Patent B2
US 12,360,907 · App. 17/957,795 · Granted Jul 15, 2025

Region pattern-matching hardware prefetcher

Inventors: Gabriel H. Loh (Bellevue, WA); Marko Scrbak (Austin, TX); Akhil Arunkumar (Sunnyvale, CA); John Kalamatianos (Boxborough, MA)
Assignee: Advanced Micro Devices, Inc.
G06F12/0862G06F12/0877G06F12/0811
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,360,907
App. No.
17/957,795
Granted
Jul 15, 2025
Kind
B2
Abstract

A method for performing prefetching operations is disclosed. The method includes storing a recorded access pattern indicating a set of accesses for a region; in response to an access within the region, fetching the recorded access pattern; and performing prefetching based on the access pattern.

Claims (43)

1. A method for performing prefetching operations, the method comprising:

in response to observing an access pattern to a first memory region, storing the access pattern as a recorded access pattern;

associating a region type with the recorded access pattern and associating the first memory region with the region type;

in response to observing a second access pattern in a second memory region, wherein the second access pattern has greater than zero and less than a threshold number of differences from the access pattern, associating the second memory region with the region type;

in response to an access within the first memory region, fetching the recorded access pattern for the region type, based on the associating of the first memory region with the region type; and

performing prefetching based on the access pattern.

2. The method of claim 1 , wherein associating the recorded access pattern with the region type includes selecting a hashing function that maps both a first memory region and a second memory region to the region type.

3. The method of claim 2 , wherein fetching the recorded access pattern is performed in response to identifying the region type based on a first region address of the first memory region.

4. The method of claim 2 , further comprising identifying the recorded access pattern based on a region type for the first memory region, the identifying comprising performing a lookup in a recorded pattern table that includes entries that map region types to recorded patterns.

5. The method of claim 1 , where performing prefetching based on the access pattern comprises prefetching region subdivisions specified by the access pattern.

6. The method of claim 1 , further comprising:

in response to a miss within the region, updating a pattern observation table based on the miss.

7. The method of claim 6 , wherein updating the pattern observation table includes, in response to no pattern observation existing for the region, generating a new pattern observation entry.

8. The method of claim 6 , wherein updating the pattern observation table includes setting an indication for a region subdivision associated with the miss, wherein the indication indicates that the region subdivision is to be prefetched.

9. The method of claim 6 , further comprising evicting a pattern observation entry to a recorded pattern table used for identifying the access pattern based on a region type of a first memory region.

10. The method of claim 1 , wherein the region type is associated with both a first memory region and a second memory region different than the first memory region.

11. A system for performing prefetching operations, the system comprising:

a memory; and

a prefetcher configured to:

in response to observing an access pattern to a first memory region, store the access pattern as a recorded access pattern;

associating a region type with the recorded access pattern and associating the first memory region with the region type;

in response to observing a second access pattern in a second memory region, wherein the second access pattern has greater than zero and less than a threshold number of differences from the access pattern, associate the second memory region with the region type;

in response to an access within the first memory region, fetch the recorded access pattern for the region type, based on the associating of the first memory region with the region type; and

performing prefetching into the memory based on the access pattern.

12. The system of claim 11 , wherein associating the recorded access pattern with the region type includes selecting a hashing function that maps both a first memory region and a second memory region to the region type.

13. The system of claim 12 , wherein fetching the recorded access pattern is performed in response to identifying the region type based on a first region address of the first memory region.

14. The system of claim 12 , further comprising identifying the recorded access pattern based on a region type for the first memory region, the identifying comprising performing a lookup in a recorded pattern table that includes entries that map region types to recorded patterns.

15. The system of claim 11 , where performing prefetching based on the access pattern comprises prefetching region subdivisions specified by the access pattern.

16. The system of claim 11 , wherein the prefetcher is further configured to:

in response to a miss within the region, update a pattern observation table based on the miss.

17. The system of claim 16 , wherein updating the pattern observation table includes, in response to no pattern observation existing for the region, generating a new pattern observation entry.

18. The system of claim 16 , wherein updating the pattern observation table includes setting an indication for a region subdivision associated with the miss, wherein the indication indicates that the region subdivision is to be prefetched.

19. The system of claim 16 , wherein the prefetcher is further configured to evict a pattern observation entry to a recorded pattern table used for identifying the access pattern based on a region type of a first memory region.

20. A system comprising:

a plurality of processing devices;

a cache configured to service requests for access to memory made by the plurality of processing devices; and

a prefetcher configured to:

in response to observing an access pattern to a first memory region, store the access pattern as a recorded access pattern;

associate a region type with the recorded access pattern and associate the first memory region with the region type;

in response to observing a second access pattern in a second memory region, wherein the second access pattern has greater than zero and less than a threshold number of differences from the access pattern, associate the second memory region with the region type;

in response to an access within the first memory region, fetch the recorded access pattern, based on the associating of the first memory region with the region type; and

performing prefetching into the cache based on the access pattern.

21. The system of claim 20 , wherein associating the recorded access pattern with the region type includes selecting a hashing function that maps both a first memory region and a second memory region to the region type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2023
From: LOH, GABRIEL H.; SCRBAK, MARKO; ARUNKUMAR, AKHIL; KALAMATIANOS, JOHN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 062606/0038 →
Continuity (1)
Related Publication 20240111677A1 · Apr 4, 2024
References Cited (22)
US 7519777B1 · Ekanadham et al. · 2009 [cited by applicant]
US 11599473B1 · Lafford · 2023 [cited by examiner]
US 20100262750A1 · Deshpande · 2010 [cited by examiner]
US 20150026413A1 · Meier et al. · 2015 [cited by applicant]
US 20170083443A1 · Wang et al. · 2017 [cited by applicant]
US 20170091104A1 · Rafacz · 2017 [cited by examiner]
US 20180052779A1 · McCauley · 2018 [cited by examiner]
US 20210073134A1 · Allu et al. · 2021 [cited by applicant]
US 20210240619A1 · Earnshaw · 2021 [cited by applicant]
US 20210406183A1 · Mashimo et al. · 2021 [cited by applicant]
US 20220058132A1 · Roberts · 2022 [cited by examiner]
Jevdjic, D., et. al., “Die-Stacked DRAM Caches for Servers: Hit Ratio, Latency, or Bandwidth? Have it All with Footprint Cache”, Proceedings of the 40th International Symposium on Computer Architecture, Jun. 2013, 12 pg… [cited by applicant]
Jevdjic, D., et. al., “Unison Cache: A Scalable and Effective Die-Stacked DRAM Cache”, Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture, 2014, 13 pgs. [cited by applicant]
Bakhshalipour, M., et. al., “Bingo Spatial Data Prefetcher”, Proceedings of the 25th International Symposium on High-Performance Computer Architecture, IEEE, 2019, 14 pgs. [cited by applicant]
Kumar, S., & Wilkerson, C., “Exploiting Spatial Locality in Data Caches using Spatial Footprints”, Proceedings of the 25th Annual ACM/IEEE International Symposium on Computer Architecture, 1998, 12 pgs. [cited by applicant]
Somogyi, S., et. al., “Spatial Memory Streaming”, Proceedings of the 33rd Annual International Symposium on Computer Architecture, Jun. 2006, 12 pgs. [cited by applicant]
Cantin, J. F., et. al., “Stealth Prefetching”, ASPLOS '06, ACM, 2006, 9 ogs. [cited by applicant]
Chen, C. F., et. al., “Accurate and Complexity-Effective Spatial Pattern Prediction”, Proceedings of the 10th International Symposium on High Performance Architecture, Feb. 2004, 12 pgs. [cited by applicant]
Shii, Y., et al., “Access Map Pattern Matching for High Performance Data Cache Prefetch”, Journal of Instruction-Level Parallelism, 13.2011, 2011, 24 pgs. [cited by applicant]
Shevgoor, M., et. al., “Efficiently Prefetching Complex Address Patterns”, MICRO-48, ACM, 2015, 12 pgs. [cited by applicant]
Kim, J., et. al., “Path Confidence based Lookahead Prefetching”, 49th Annual IEEE/ACM International Symposium on Microarchitecture, IEEE, Oct. 2016, 12 pgs. [cited by applicant]
Jaccard, P., “The Distribution of the Flora in the Alpine Zone”, The New Phytologist, vol. XI, No. 2, Feb. 1912, 15 pgs. [cited by applicant]