IP Library Granted Patent US 10,852,949
Granted Patent B2
US 10,852,949 · App. 16/384,618 · Granted Dec 1, 2020

Predictive data pre-fetching in a data storage device

Inventors: Alex Frolikov (San Jose, CA); Zachary Andrew Pete Vogel (San Jose, CA); Joe Gil Mendes (Santa Cruz, CA); Chandra Mouli Guda (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F3/061G06F3/0659G06F3/0673G06F12/0862G06N20/00
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,852,949
App. No.
16/384,618
Granted
Dec 1, 2020
Kind
B2
Abstract

A data storage system having non-volatile media, a buffer memory, a processing device, and a data pre-fetcher. The data pre-fetcher receives commands to be executed in the data storage system, provides the commands as input to a predictive model, obtains at least one command identified for pre-fetching, as output from the predictive model having the commands as input. Prior to the command being executed in the data storage device, the data pre-fetcher retrieves, from the non-volatile memory, at least a portion of data to be used in execution of the command; and stores the portion of data in the buffer memory. The retrieving and storing the portion of the data can be performed concurrently with the execution of many commands before the execution of the command, to reduce the latency impact of the command on other commands that are executed concurrently with the execution of the command.

Claims (56)

1. A data storage system, comprising:

non-volatile media;

a buffer memory;

a processing device coupled to the buffer memory and the non-volatile media; and

a data pre-fetcher configured to:

receive commands to be executed in the data storage system;

provide the commands as input to a predictive model;

identify, using the predictive model and based on the commands, at least one command for pre-fetching; and

prior to the command being executed in the data storage device,

retrieve, from the non-volatile memory, at least a portion of data to be used in execution of the command; and

store the portion of data in the buffer memory.

2. The data storage system of claim 1 , wherein the data pre-fetcher configured to use the predictive model periodically.

3. The data storage system of claim 1 , wherein the data pre-fetcher configured to provide the commands of a predetermined number as input to the predictive model during each use of the predictive model.

4. The data storage system of claim 1 , wherein the predictive model is trained using a supervised machine learning technique.

5. The data storage system of claim 4 , wherein the data pre-fetcher configured to spread latency impact of the command over more than a threshold number of commands.

6. The data storage system of claim 4 , wherein the data pre-fetcher configured to retrieve the portion of data from the non-volatile memory and store the portion of data in the buffer memory during execution of a plurality of commands, using resources that are not required for the execution of the plurality of commands.

7. The data storage system of claim 4 , wherein the command is predicted to cause more than a threshold amount of increase in latency in execution of a further command if the portion of data is not available in the buffer memory.

8. The data storage system of claim 4 , wherein the command is identified by the predictive model based at least in part that the command is in a predetermined category.

9. The data storage system of claim 8 , wherein commands in the predetermined category have an average in execution latency that is longer than a threshold.

10. The data storage system of claim 9 , further configured to:

generate latency data of second commands executed in the data storage system;

identify, from the latency data, the third commands causing more than a threshold amount of increase in latency in execution of at least one of the second commands; and

train the predictive model using the supervised machine learning technique to reduce differences between third commands identified using the latency data and commands identified by the predictive model from the second commands.

11. A method, comprising:

receiving, in a controller of a data storage system, commands from a host system for execution in the data storage system;

providing, to a predictive model, the commands as input;

identifying, using the predictive model and based on the commands as input, at least one command for pre-fetching; and

prior to the command being executed in the data storage device,

retrieving, from non-volatile memory of the data storage media, at least a portion of data to be used in execution of the command; and

storing the portion of data in buffer memory of the data storage system.

12. The method of claim 11 , wherein the predictive model is trained using a supervised machine learning technique.

13. The method of claim 12 , further comprising:

generating execution latency data of first commands;

identify, from the latency data, second commands causing more than a threshold amount of increase in execution latency of at least one of the first commands; and

training the predictive model using the supervised machine learning technique to reduce differences between the second commands identified using the latency data and third commands identified by the predictive model from the first commands.

14. The method of claim 13 , further comprising:

computing averages of execution latency of different types of commands; and

comparing execution latency of the first commands to the averages to identify the at least one of the first commands that has more than the threshold amount of increase in execution latency.

15. The method of claim 14 , further comprising:

identifying the second commands in response to a determination that the second commands have a predetermined characteristic and that the second commands have been executed concurrently with the at least one of the first commands.

16. The method of claim 15 , wherein the predetermined characteristic includes a predetermined command type, a predetermined command category, or an average execution latency being above a threshold, or any combination thereof.

17. The method of claim 12 , further comprising:

spreading latency impact of the command over more than a threshold number of commands.

18. The method of claim 12 , further comprising:

retrieving the portion of data from the non-volatile memory and storing the portion of data in the buffer memory during execution of a plurality of commands, using resources that are not used for the execution of the plurality of commands.

19. A non-transitory computer storage medium storing instructions which, when executed by a computing system, cause the computing system to perform a method, the method comprising:

receiving latency data of first commands executed in a data storage system;

identify, from the latency data, second commands causing more than a threshold amount of increase in execution latency of at least one of the first commands; and

training a predictive model using the supervised machine learning technique to reduce differences between the second commands identified using the latency data and third commands identified by the predictive model from the first commands.

20. The non-transitory computer storage medium of claim 19 , storing further instructions which, when executed by a computing system, cause the computing system to perform the method, the method further comprising:

receiving, in a controller of a data storage system, pending commands from a host system for execution in the data storage system;

providing, to the predictive model, the pending commands as input;

identifying, using the predictive model and based on the pending commands as input, at least one fifth command for pre-fetching; and

prior to the fifth command being executed in the data storage device,

retrieving, from non-volatile memory of the data storage media, at least a portion of data to be used in execution of the fifth command; and

storing the portion of data in buffer memory of the data storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2019
From: FROLIKOV, ALEX; VOGEL, ZACHARY ANDREW PETE; MENDES, JOE GIL; GUDA, CHANDRA MOULI
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048888/0464 →
Continuity (1)
Related Publication 20200326851A1 · Oct 15, 2020
Cited By (1)
US 12,386,742