IP Library Granted Patent US 11,010,299
Granted Patent B2
US 11,010,299 · App. 16/416,911 · Granted May 18, 2021

System and method for performing discriminative predictive read

Inventors: Ariel Navon (Revava, IL); Eran Sharon (Rishon Lezion, IL); Idan Alrod (Herzliya, IL)
Assignee: Western Digital Technologies, Inc.
G06F12/0862G06F2212/1021G06F2212/1024G06F2212/602
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,010,299
App. No.
16/416,911
Granted
May 18, 2021
Kind
B2
Abstract

Systems and methods for pre-fetching data in a memory device are disclosed. The method may include receiving a current read command and determining whether the current read command is a random read command, for example based on a data chunk length identified by the current read command. The method may further include updating a prior read command data structure with the current read command, for random read commands; determining a predicted next read command from the prior read command data structure based on the current read command; and pre-fetching data associated with the predicted next read command. Functionality for prediction of next read commands, or pre-fetch of predicted next read commands, may be turned on or off based on resource availability or prediction success rate measurements.

Claims (68)

1. A method for pre-fetching data in a memory device, the method comprising:

receiving a current read command;

determining whether the current read command is a random read command based on a data chunk length identified by the current read command;

in response to determining that the current read command is a random read command:

updating a prior read command data structure with the current read command;

determining a predicted next read command from the prior read command data structure based on the current read command; and

pre-fetching data associated with the predicted next read command; and

in response to determining that the current read command is not a random read command, refraining from updating the prior read command data structure and instead waiting for a new read command.

2. The method of claim 1 , wherein pre-fetching further comprises pre-fetching data associated with the predicted next read command only responsive to a prediction success rate for prior predicted next read commands exceeding a predetermined threshold.

3. The method of claim 2 , wherein the predetermined threshold is a prediction success rate of 50%.

4. The method of claim 1 , further comprising determining the predicted next read command and pre-fetching data associated with the predicted next read command only in response to a determination by the memory device that a predetermined amount of memory device resources are available for determining the predicted next read command.

5. The method of claim 1 , wherein determining the predicted next read command from the prior read command data structure comprises:

calculating an index value for the prior read command data structure based on the current read command by:

applying a value of the current read command as input for a many-to-one mapping operation; and

processing a result of the many-to-one mapping operation with a modulo operation having an output limited to index values in a predetermined range of index values.

6. The method of claim 1 , further comprising:

receiving a next read command;

comparing the predicted next read command to the next read command; and

responsive to the next read command being a random read command and not matching the predicted next read command:

updating the prior read command data structure with the next read command;

determining a second predicted next read command from the prior read command data structure based on the next read command; and

refraining from pre-fetching of any data associated with the second predicted next read command.

7. The method of claim 1 , further comprising:

receiving a next read command;

comparing the predicted next read command to the next read command; and

responsive to the next read command being a sequential read command, regardless of whether the predicted next read command matches the next read command:

refraining from updating the prior read command data structure with the next read command; and

refraining from predicting a second next read command based on the next read command.

8. The method of claim 1 , wherein:

the memory device comprises a non-volatile memory and a volatile memory; and

pre-fetching data associated with the predicted next read command comprises pre-fetching data associated with the predicted next read command from the non-volatile memory to the volatile memory.

9. The method of claim 1 , wherein updating the prior read command data structure with the current read command comprises:

calculating an index value for the prior read command data structure based on a read command received prior to the current read command; and

storing at least one parameter of the current read command in an entry of the prior read command data structure at the calculated index value.

10. The method of claim 9 , wherein the at least one parameter comprises a start logical block address (LBA) for data associated with the current read command.

11. A memory device comprising:

a first memory; and

a controller in communication with the first memory, the controller configured to:

obtain a current read command directed to data in the first memory;

determine whether the current read command is a random read command or a sequential read command;

in response to determining that the current read command is a random read command:

predict a next read command based on the obtained current read command; and

responsive to a prediction success rate for a prior predicted next read command exceeding a predetermined threshold, pre-fetch data from the first memory to a second memory; and

in response to determining that the current read command is a sequential read command:

refrain from pre-fetching the next read command; and

wait for a new read command.

12. The memory device of claim 11 , wherein, in response to the obtained current read command being a random read command, the controller is configured to update a prior read command data structure.

13. The memory device of claim 11 , wherein:

the prediction success rate comprises a success of only a last predicted next read command; and

the success of the last predicted next read command comprises whether the last predicted next read command identified data associated with the current read command.

14. The memory device of claim 11 , wherein:

the prediction success rate comprises a hit rate for a predetermined plurality of prior predicted read commands; and

the predetermined threshold is a prediction success rate of at least 50%.

15. The memory device of claim 11 , wherein the controller is further configured to:

determine whether a predetermined amount of memory device resources are available to predict the next read command; and

predict the next read command and pre-fetch data associated with the predicted next read command only in response to determining that the predetermined amount of memory device resources are available.

16. The memory device of claim 11 , wherein the controller is further configured to:

determine a prediction success rate for the memory device;

responsive to the prediction success rate for the memory device meeting or exceeding a predetermined threshold, pre-fetch data for a new next predicted read command; and

responsive to the prediction success rate for the memory device being below the predetermined threshold, refrain from pre-fetching data for a new predicted next read command.

17. The memory device of claim 11 , wherein the first memory comprises a non-volatile memory substrate formed with a three-dimensional memory structure.

18. A memory device comprising:

a non-volatile memory;

a volatile memory containing a prior read command data structure;

means for determining whether a received read command is a random or sequential read command and, responsive to determining that the received read command is a random read command, for identifying a predicted next read command from the prior read command data structure;

means for pre-fetching, from the non-volatile memory, data associated with the predicted next read command only upon identifying a prior read command prediction success level that exceeds a predetermined threshold; and

means for refraining, responsive to determining that the current read command is not a random read command, from updating the prior read command data structure and instead waiting for a new read command.

19. The memory device of claim 18 , wherein the prior read command prediction success level comprises a prediction hit rate for a predetermined plurality of prior read command predictions.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2019
From: NAVON, ARIEL; SHARON, ERAN; ALROD, IDAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049233/0256 →
Continuity (1)
Related Publication 20200371940A1 · Nov 26, 2020