IP Library Granted Patent US 12,730,558
Granted Patent B2
US 12,730,558 · App. 17/980,920 · Granted Sep 8, 2026

Memory expansion with persistent predictive prefetching

Inventors: Chace A. Clark (Hillsboro, OR); Christina Strong (Beaverton, OR)
Assignee: Intel Corporation
G06F3/0604G06F3/0631G06F3/0679
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,730,558
App. No.
17/980,920
Granted
Sep 8, 2026
Kind
B2
Abstract

A memory device with non-volatile memory and persistent predictive prefetching provides highspeed storage to a computer system. The memory device uses a non-volatile memory to store data and a volatile memory to cache the data from the non-volatile memory. The computer system sends access requests to obtain data in the non-volatile memory. A prediction engine in the memory device receives the access requests. The prediction engine compute access histories based on the access requests and stores them in an access history table. The prediction engine computes prediction of non-volatile memory addresses that will be accessed in the future based on the stored access history table. The prediction engine causes to store the data from the predicted addresses of the non-volatile memory in the volatile memory. The memory device stores the prediction in the non-volatile memory so the past predictions can be used after restarting the computer system.

Claims (71)

1 . A memory device comprising:

a non-volatile memory to store data;

a volatile memory to cache the data from the non-volatile memory; and

circuitry to:

receive an access request, the access request including an address directed to the non-volatile memory,

store an access history, the access history computed based on the access request,

compute a prediction of a region of the non-volatile memory to be accessed based on the stored access history,

cause to store the data from the predicted region of the non-volatile memory in the volatile memory,

store the prediction in the non-volatile memory,

determine a first subset of a global prediction table in the non-volatile memory, wherein the global prediction table is to include the stored prediction in the non-volatile memory, and

store the first subset of the global prediction table in a local prediction table.

2 . The memory device of claim 1 , wherein:

the circuitry comprises a memory to store the access history in an access history table, the access request in an access request table, and the prediction in a local prediction table;

the non-volatile memory comprises a global prediction table to store the prediction;

the access request includes a page number and an offset to identify a location in the non-volatile memory; and

the access history includes a page index and the offset, page index computed based on the page number.

3 . The memory device of claim 2 , wherein the non-volatile memory allocated to store the global prediction table has a greater storage capacity than the memory allocated to store the local prediction table.

4 . The memory device of claim 2 , wherein the computed prediction includes a confidence value to rank the strength of the prediction.

5 . The memory device of claim 4 , wherein the circuitry is to increase the confidence value when the data associated with the computed prediction is accessed in the volatile memory.

6 . The memory device of claim 4 , wherein the circuitry is to decrease the confidence value when the data associated with the computed prediction is evicted from the volatile memory.

7 . The memory device of claim 4 , wherein the circuitry to cause the memory to replace the prediction having the confidence value lower than a predefined value with an other prediction.

8 . The memory device of claim 2 , wherein the memory is a portion of the volatile memory.

9 . The memory device of claim 1 , wherein the circuitry to:

determine a second subset of the global prediction table in the non-volatile memory;

store updates to the first subset of the global prediction table based on changes made to the local prediction table; and

subsequently replace the local prediction table with the second subset of the global prediction table.

10 . A computer system comprising:

a processor; and

a memory device including:

a non-volatile memory to store data;

a volatile memory to cache the data from the non-volatile memory; and

circuitry to:

receive an access request, the access request including an address directed to the non-volatile memory,

store an access history, the access history computed based on the access request,

compute a prediction of a region of the non-volatile memory to be accessed based on the stored access history,

cause to store the data from the predicted region of the non-volatile memory in the volatile memory,

store the prediction,

determine a first subset of a global prediction table in the non-volatile memory, and

store the first subset of the global prediction table in a local prediction table in the volatile memory.

11 . The computer system of claim 10 , wherein

the circuitry comprises a memory to store the access history in an access history table, the access request in an access request table, and the prediction in a local prediction table;

the non-volatile memory comprises a global prediction table to store the prediction;

the access request includes a page number and an offset to identify a location in the non-volatile memory; and

the access history includes a page index and the offset, page index computed based on the page number.

12 . The computer system of claim 11 , wherein

the computed prediction includes a confidence value to rank the strength of the prediction;

the circuitry is to increase the confidence value when the data associated with the computed prediction is accessed in the volatile memory;

the circuitry is to decrease the confidence value when the data associated with the computed prediction is evicted from the volatile memory; and

the circuitry to cause the memory to replace the prediction having the confidence value lower than a predefined value with an other prediction.

13 . The computer system of claim 10 , wherein the circuitry to:

determine a second subset of the global prediction table in the non-volatile memory;

update the first subset of the global prediction table with the local prediction table; and

replace the local prediction table with the second subset of the global prediction table.

14 . A method comprising:

receiving an access request;

computing an access history based on the access request;

storing the access history;

computing a prediction of a region of a non-volatile memory to be accessed based on the stored access history;

causing to store data from the predicted region of the non-volatile memory in a volatile memory;

storing the prediction;

determining a first subset of a global prediction table in the non-volatile memory; and

storing the first subset of the global prediction table in a local prediction table in the volatile memory.

15 . The method of claim 14 , wherein the computed prediction includes a confidence value to rank the strength of the prediction.

16 . The method of claim 15 , comprising increasing the confidence value when the data associated with the computed prediction is accessed in the volatile memory.

17 . The method of claim 15 , comprising decreasing the confidence value when the data associated with the computed prediction is evicted from the volatile memory.

18 . The method of claim 14 , comprising:

determining a first subset of a global prediction table in the non-volatile memory, wherein the global prediction table is to include the stored prediction in the non-volatile memory;

storing the first subset of the global prediction table in a local prediction table;

determining a second subset of the global prediction table in the non-volatile memory;

storing updates to the first subset of the global prediction table based on changes made to the local prediction table; and

subsequently replacing the local prediction table with the second subset of the global prediction table.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 075990/0991 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: CLARK, CHACE A.; STRONG, CHRISTINA
To: INTEL CORPORATION
Reel/Frame 061693/0310 →
Continuity (1)
Related Publication 20230052700A1 · Feb 16, 2023
References Cited (13)
US 8180981B2 · Kapil et al. · 2012 [cited by applicant]
US 9948531B2 · Snodgrass et al. · 2018 [cited by applicant]
US 10007616B1 · Feero · 2018 [cited by examiner]
US 10412197B1 · Britto et al. · 2019 [cited by applicant]
US 10705973B2 · Gschwind · 2020 [cited by examiner]
US 10884930B2 · Gschwind · 2021 [cited by examiner]
US 20110320747A1 · Madisetti · 2011 [cited by examiner]
US 20120059983A1 · Nellans · 2012 [cited by examiner]
US 20140089600A1 · Biswas et al. · 2014 [cited by applicant]
US 20140281458A1 · Ravimohan · 2014 [cited by examiner]
US 20170228168A1 · Bahnsen et al. · 2017 [cited by applicant]
US 20170269937A1 · Eickemeyer · 2017 [cited by examiner]
WO WO9501600A1 · 1995 [cited by examiner]