USPatent applicationPatented

Method for predicting LBA information, and SSD

Granted 6 Sep 2022 · 1 office action

Current assignee: DAPUSTOR CORPORATION · originally SHENZHEN DAPU MICROELECTRONICS CO., LTD.

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Xiang Chen, Li Jiang, Weijun Li · Examiner: Charles Rones · AU 2136 · TC 2100

Life of the application

10 dated events
⤢ drag to zoom2022202420262028203020322034203620382040ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A method for predicting logical blocks address (LBA) information, including: receiving, by a Solid State Drive (SSD), a trace sent from a host, wherein the host can acquire the trace in a reusable environment; determining, by the SSD, one or more LBAs received by the SSD according to the trace; obtaining, by the SSD, a distribution of the LBAs by learning the LBAs based on a preset learning algorithm; and predicting, by the SSD, one or more subsequent LBAs based on the distribution of the LBAs. As a result, it can perform heat classification and prediction of the following LBA used in the SSD by means of learning the LBA distribution of the SSD in a certain reusable environment of the host, thus to improve the hit rate of reading and writing and the efficiency of classification of hot and cold data in garbage collection.

Description

8 parts
›CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of International Application No. PCT/CN2019/095198, filed on Jul. 9, 2019, which claims the benefit of priority to Chinese Patent Application No. 201810789741.0, filed on Jul. 18, 2018. The entire contents of both applications are incorporated herein by reference.

›TECHNICAL FIELD

The present disclosure relates to the field of data processing, and in particular, to a method and an SSD for predicting LBA information.

›BACKGROUND

Solid State Drive (SSD) typically needs to predict the logical blocks addresses (LBA) that are supplied to the host subsequently. If the LBA information can be predicted as accurately as possible, the hot LBA data can be buffered into the buffer, which can improve the performance of the reading and writing command and reduce the delay. At the same time, if the following LBA data can be predicted to be hot data or cold data, the FTL algorithm in the SSD can classify the hot and cold data to improve the efficiency of Garbage Collection (GC). The current IO PATTERN prediction technology is mainly divided into the following two categories:

An explicit algorithm based on the host's access frequency and proximity information to the LBA, including the statistics of the LBA writing frequency, the statistics of the LBA life cycle (Age), the statistics of the interval of two same LBA in a row (IRR), and some algorithms even combine the LBA writing frequency and Age. This kind of algorithm basically needs to count all LBA access frequency and other information in the memory, which requires huge memory capacity.

Another batch of algorithms use an implicit algorithm to count the current frequency or heat information of the nearest or hottest LBA by using data structures. This kind of algorithm is similar to the CPU cache statistics of the host system, and mainly includes Multiple LRUlist, Multiple hash functions (MHF), Multiple Bloom Filters (MBF), and Window-based Direct Address Counting.

Currently, the popular cluster-based algorithms mainly include Dynamic DATA CLUSTERING (DAC), IRR based K-Means, and Extent-based Temperature. Using specific algorithms to classify data into multiple classes due to its heat can significantly improve the GC efficiency.

The current mainstream explicit algorithms, although having a high accuracy rate, need to store a set of heat information in the memory for each LBA, which occupies a lot of memory and is basically infeasible for an embedded system. Moreover, it can only distinguish between hot and cold data, and can't predict the next LBA. A invariable threshold of the hot and the cold data cannot accommodate all host loads either.

The current mainstream implicit algorithms only need limited memory to record the information such as LRU list, bloom filter size and so on. But there may be false alarms in the prediction of hot and the cold data. Similarly, the next LBA cannot be predicted.

The cluster-based algorithms can improve the accuracy of the partitioning of the hot and the cold data while minimizing the memory occupancy, and has higher performance. Similarly, they can only classify the data of hot and cold, but cannot predict.

›SUMMARY OF THE DISCLOSURE · 1 of 2

The present disclosure is to overcome the deficiencies of the prior art, and provide a method and an SSD for predicting LBA information, which can learn the LBA distribution of the SSD in a certain reusable environment of the host; and perform heat classification and prediction of the following LBA used in the SSD, to improve the hit rate of reading and writing and the efficiency of classification of hot and cold data in garbage collection.

In order to solve the above problems, in a first aspect, the present disclosure provides a method for predicting logical blocks address (LBA) information, including:

receiving, by a Solid State Drive (SSD), a trace sent from a host, wherein the host can acquire the trace in a reusable environment;

determining, by the SSD, one or more LBAs received by the SSD according to the trace;

obtaining, by the SSD, a distribution of the LBAs by learning the LBAs based on a preset learning algorithm; and

predicting, by the SSD, one or more subsequent LBAs based on the distribution of the LBAs.

In some embodiments, the step of determining, by the SSD, the one or more LBAs includes:

determining, by the SSD, one or more reading and writing commands sent by the host according to the trace; and

determining, by the SSD, an LBA and a process ID parameter carried by the reading and writing commands.

In some embodiments, the step of obtaining, by the SSD, the distribution of the LBAs includes:

determining, by the SSD, a distance between each pair of adjacent LBAs;

determining, by the SSD, a target distance that is greater than a preset threshold value among the distances between the adjacent LBAs;

recording, by the SSD, the target distance and a corresponding process ID of a current LBA as a two-dimensional coordinate, wherein the abscissa of the two-dimensional coordinate represents the target distance, the ordinate represents the process ID, and the SSD obtains M two-dimensional coordinates, wherein M is a positive integer;

performing, by the SSD, a K-MEANS clustering operation on the M two-dimensional coordinates to obtain N classes, wherein N is a positive integer;

establishing, by the SSD, N Long Short Term Memory networks (LSTM) state machines by taking the result of N classes as the prediction targets of the LSTM; and

training, by the SSD, parameters of the N LSTM state machines by inputting the M two-dimensional coordinates to the N LSTM state machines.

In some embodiments, the step of predicting, by the SSD, the subsequent LBAs includes:

determining, by the SSD, a target LSTM state machine based on the trained parameters of the N LSTM state machines; and

predicting, by the SSD, the subsequent LBAs based on the target LSTM state machine.

In some embodiments, the step of predicting, by the SSD, the subsequent LBAs includes:

receiving, by the SSD, one or more subsequent reading and writing commands sent from the host;

determining, by the SSD, the subsequent LBAs and one or more subsequent process ID parameters carried in the subsequent reading and writing commands sent from the host;

determining, by the SSD, that a distance between adjacent subsequent LBAs is greater than a preset threshold;

inputting the distance between the adjacent subsequent LBAs and the process ID of the corresponding current LBA as the two-dimensional coordinates into the target LSTM state machine; and

obtaining a heat classification of the subsequent LBAs.

In a second aspect, the present disclosure also provides a solid state drive (“SSD”), including:

a receiving module, configured to receive a trace sent from a host, wherein the host can acquire the trace of the SSD in a reusable environment;

a determining module, configured to determine, according to the trace, one or more LBAs received by the SSD;

an obtaining module, configured to obtain a distribution of the LBAs by learning the LBAs based on a preset learning algorithm; and

a prediction module, configured to predict one or more subsequent LBAs based on the distribution of the LBAs.

In some embodiments, the determining module is configured to determine, according to the trace, one or more reading and writing commands sent by the host, and determine an LBA and a process ID parameter carried by the reading and writing commands.

In some embodiments, the obtaining module is further configured to

determine a distance between each pair of adjacent LBAs;

determine a target distance that is greater than a preset threshold value among the distances between the adjacent LBAs;

record the target distances and a corresponding process ID of a current LBA as a two-dimensional coordinate, wherein the abscissa of the two-dimensional coordinate represents the target distance, the ordinate represents the process ID, and the SSD obtains M two-dimensional coordinates, wherein M is a positive integer;

perform a K-MEANS clustering operation on the M two-dimensional coordinates to obtain N classes, wherein N is a positive integer;

establish N Long Short Term Memory networks (LSTM) state machines by taking the result of N classes as prediction targets of the LSTM; and

train parameters of the N LSTM state machines by inputting the M two-dimensional coordinates to N LSTM state machines.

In some embodiments, the prediction module is further configured to determine a target LSTM state machine based on the trained parameters of the N LSTM state machines; and classify the subsequent LBAs based on the target LSTM state machine.

In some embodiments, the prediction module is further configured to:

receive one or more subsequent reading and writing commands sent from the host;

determine the subsequent LBA and one or more subsequent process ID parameters carried in the subsequent reading and writing command sent from the host;

determine that a distance between adjacent subsequent LBAs is greater than a preset threshold;

input the distance between the adjacent subsequent LBAs and the process ID of the corresponding current LBA as the two-dimensional coordinates into the target LSTM state machine; and

obtain a heat classification of the subsequent LBAs.

›SUMMARY OF THE DISCLOSURE · 2 of 2

In a third aspect, the present disclosure provides a system for predicting LBA information, including:

a host configured to generate reading and writing commands; and

a solid state drive (“SSD”), including:

a receiving module, configured to receive a trace sent from a host, wherein the host can acquire the trace of the SSD in a reusable environment;

a determining module, configured to determine, according to the trace, one or more LBAs received by the SSD;

an obtaining module, configured to obtain a distribution of the LBAs by learning the LBAs based on a preset learning algorithm; and

a prediction module, configured to predict one or more subsequent LBAs based on the distribution of the LBAs.

In some embodiments, the determining module is further configured to:

determine, according to the trace, one or more reading and writing commands sent by the host, and

determine an LBA and a process ID parameter carried by the reading and writing commands.

In some embodiments, the obtaining module is further configured to:

determine a distance between each pair of adjacent LBAs;

determine a target distance that is greater than a preset threshold value among the distances between the adjacent LBAs;

record the target distances and a corresponding process ID of a current LBA as a two-dimensional coordinate, wherein the abscissa of the two-dimensional coordinate represents the target distance, the ordinate represents the process ID, and the SSD obtains M two-dimensional coordinates, wherein M is a positive integer;

perform a K-MEANS clustering operation on the M two-dimensional coordinates to obtain N classes, wherein N is a positive integer;

establish N Long Short Term Memory networks (LSTM) state machines by taking the result of N classes as prediction targets of the LSTM; and

train parameters of the N LSTM state machines by inputting the M two-dimensional coordinates to N LSTM state machines.

In some embodiments, the prediction module is further configured to:

determine a target LSTM state machine based on the trained parameters of the N LSTM state machines; and

classify the subsequent LBAs based on the target LSTM state machine.

In some embodiments, the prediction module is further configured to:

receive one or more subsequent reading and writing commands sent from the host;

determine the subsequent LBA and one or more subsequent process ID parameters carried in the subsequent reading and writing command sent from the host;

determine that a distance between adjacent subsequent LBAs is greater than a preset threshold;

input the distance between the adjacent subsequent LBAs and the process ID of the corresponding current LBA as the two-dimensional coordinates into the target LSTM state machine; and

obtain a heat classification of the subsequent LBAs.

›BRIEF DESCRIPTION OF THE DRAWINGS

In order to more clearly illustrate the embodiments of the present application, the drawings to be used in the embodiments will be briefly described below. It is apparent that the drawings in the following description are only some of the embodiments described in the present application.

FIG. 1 is a flow chart showing the steps of an embodiment of a method for predicting LBA information of the present disclosure;

FIG. 2 is a schematic structural view of an embodiment of an SSD of the present disclosure.

›DETAILED DESCRIPTION · 1 of 2

The technical solutions in the embodiments of the present disclosure are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present disclosure. It is obvious that the described embodiments are only a part of the embodiments of the present disclosure, but not all embodiments. All other embodiments obtained by a person skilled in the art based on the embodiments of the present disclosure without creative efforts are within the scope of the present disclosure.

In order to accurately understand the data processing method and the storage device of the embodiment of the present disclosure, some terms related to the data processing method and the storage device of the embodiment of the present disclosure are introduced below.

As shown in FIG. 1 , a method for predicting LBA information, comprising:

S 1 : receiving, by the SSD, the trace sent from the host; and from the trace, the host can acquire the trace of the SSD in a certain reusable environment;

S 2 : determining, by the SSD, all LBA currently received by the SSD according to the Trace;

S 3 : learning, by the SSD, all the LBA based on the preset learning algorithm to obtain the distribution of all the LBA;

S 4 : classifying and predicting, by the SSD, the heat of the subsequent LBA based on the LBA distribution.

In the foregoing step S 1 , the host obtains a trace of the SSD in a certain reusable environment (the user uses the scene and mode regularly), and replays the trace to the SSD; wherein the trace carries read and write commands.

In step S 2 , the SSD receives the trace, and the trace carries the read and write commands; furthermore, the read and write command carries the LBA. In addition, a logical block is a data block stored in a disk or tape, and the data block has an address to retrieve or rewrite. The term logic block is generally used to refer to the physical device data addressing from the host angle. In a storage device, it is often necessary to translate a logical block address provided to a host into a physical media address in which the corresponding data is actually stored.

In step S 3 , the firmware of SSD learns all the received LBAs through the learning algorithm to learn the patterns and rules of the LBA.

In step S 4 , the firmware of SSD enters the real use session, and classifies and predicts the heat of the subsequent LBA according to the LBA patterns and rules learned during the learning phase.

The present disclosure provides a method of predicting LBA information, which includes performing heat classification and prediction of the following LBA used in the SSD by means of learning the LBA distribution of the SSD in a certain reusable environment of the host, thus to improve the hit rate of reading and writing and the efficiency of classification of hot and cold data in garbage collection.

In some embodiments, the foregoing step S 2 includes:

determining, by the SSD, all reading and writing commands sent by the host according to the Trace;

determining, by the SSD, the LBA and the process number ID parameters carried in the reading and writing commands.

In this embodiment, the host sends all the read and write commands with the LBA and the process ID parameter, so that the SSD can determine the LBA and process ID parameters carried in the read and write commands.

In some embodiments, the foregoing step S 3 includes:

determining, by the SSD, the distance between each adjacent LBA in turn;

determining, by the SSD, a target distance that is greater than a preset threshold value among the distances between the adjacent LBAs;

recording, by the SSD, the target distances and the corresponding process IDs of the current LBAs as a two-dimensional coordinate, and obtains M two-dimensional coordinates; wherein the abscissa of the two-dimensional coordinate represents the distance, and the ordinate represents the process ID, and the M is a positive integer;

performing, by the SSD, a K-MEANS clustering operation on the M two-dimensional coordinates to obtain N classes, wherein the N is a positive integer;

establishing, by the SSD, N LSTM state machines by taking the result of N classes as the prediction targets of the LSTM;

training, by the SSD, the parameters of the N LSTM state machines by inputting the M two-dimensional coordinates to the N LSTM state machines.

In this embodiment, whenever the distance between LBA(n+1) and LBA(n) is greater than a threshold th, the SSD calculates the difference value of LBA as ΔLBA=LBA(n+1)−LBA(n); then obtains the process ID of the current LBA, and records (ΔLBA, ID) as a record point of the K-MEANS algorithm.

When the Trace playback is completed, the two-dimensional coordinates including all M (ΔLBA, ID) are subjected to K-MEANS clustering operation to obtain N classes.

The SSD establishes N LSTM state machines by taking the result of N classes as the prediction targets of the LSTM.

The SSD inputs M two-dimensional coordinates including the (ΔLBA, ID) into the N LSTM state machines, and trains the parameters of the N LSTM state machines. The trained parameters are used as input parameters for following prediction.

In some embodiments, the foregoing step S 4 includes:

determining, by the SSD, a target LSTM state machine based on the parameters of the N LSTM state machines obtained by training;

classifying and predicting, by the SSD, the heat of the subsequent LBA based on the target LSTM state machine.

Further, the step of classifying and predicting, by the SSD, the heat of the subsequent LBA based on the target LSTM state machine further comprises:

receiving, by the SSD, the subsequent read and write command sent from the host;

determining, by the SSD, the subsequent LBA and the subsequent process ID parameter carried in the subsequent read and write command sent from the host;

if the distance between adjacent subsequent LBAs is determined to be greater than a preset threshold by the SSD, inputting the distance between the subsequent LBAs and the two-dimensional coordinates recorded by the process ID of the corresponding current LBA into the target LSTM state machine, and then obtaining the heat classification and prediction of the subsequent LBA.

›DETAILED DESCRIPTION · 2 of 2

In this embodiment, the SSD enters a real use session. Each read or write command sent from the host to the SSD needs to carry the LBA and process ID information. Among them, the learning phase is to learn the trace, rather than really to provide services for the users. The real use refers to providing the customers with standard services of SSD. The read and write commands are the basic command interfaces of the storage device.

If the distance, received by the SSD, between the LBA(n+1) and LBA(n) is greater than a threshold of th, the coordinate of (ΔLBA, ID) is input to the LSTM of the corresponding cluster to obtain a prediction of the next LBA.

As shown in FIG. 2 , a solid state drive is provided, comprising:

a receiving module 1 , configured to receive a trace sent from the host; wherein the host can acquire the trace of the SSD in a certain reusable environment;

a determining module 2 , configured to determine, according to the trace, all LBAs currently received by the SSD;

a learning module 3 , configured to learn all the LBAs based on a preset learning algorithm to obtain an LBA distribution; and

a prediction module 4 , configured to perform heat classification and prediction on subsequent LBAs based on the LBA distribution.

The SSD provided by this embodiment performs heat classification and prediction of the following LBA used in the SSD by means of learning the LBA distribution of the SSD in a certain reusable environment of the host. Thus to improve the hit rate of reading and writing and the efficiency of classification of hot and cold data in garbage collection.

In some embodiments, the determining module 2 is configured to determine, according to the trace, all read and write commands sent from the host, and determine the LBA and the process ID parameter carried in the read and write command.

In some embodiments, the learning module 3 is specifically configured to determine the distance between the adjacent LBAs; determine a target distance that is greater than a preset threshold value among the distances between the adjacent LBAs; sequentially record the target distances and the corresponding process IDs of the current LBAs as a two-dimensional coordinate, and obtain M two-dimensional coordinates; wherein the abscissa of the two-dimensional coordinate represents the distance, and the ordinate represents the process ID, and the M is a positive integer; perform a K-MEANS clustering operation on the M two-dimensional coordinates to obtain N classes, wherein the N is a positive integer; establish N LSTM state machines by taking the result of N classes as the prediction targets of the LSTM; train the parameters of the N LSTM state machines by inputting the M two-dimensional coordinates to the N LSTM state machines.

In some embodiments, the prediction module 4 is specifically configured to determine a target LSTM state machine based on the parameters of the N LSTM state machines obtained by training; and classify and predict the heat of the subsequent LBA based on the target LSTM state machine.

In some embodiments, the prediction module 4 is specifically configured to receive the subsequent read and write command sent from the host; determine the subsequent LBA and the subsequent process ID parameter carried in the subsequent read and write command sent from the host; if the distance between adjacent subsequent LBAs is determined to be greater than the preset threshold by the SSD, input the distance between the subsequent LBAs and the two-dimensional coordinates recorded by the process ID of the corresponding current LBA into the target LSTM state machine, and then obtain the heat classification and prediction of the subsequent LBA.

It should be noted that SSD and the method of predicting LBA information in the above embodiments are based on the same inventive concept. Therefore, the specific functions in the function modules of the SSD can have corresponding method steps, and the details are not described herein again.

The above embodiments are only used to illustrate the technical solutions of the present disclosure, and are not intended to be limiting; although the present disclosure has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that The technical solutions are described as being modified, or equivalent to some of the technical features, and the modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present disclosure.

Claims as granted

15 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section G — Physics
  • G06F3/06
  • G06F9/448
  • G06K9/62

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2021Apr 2021Jul 2021Oct 2021Jan 2022Apr 2022Jul 2022Oct 2022USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
1.8 y
642 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Charles Rones
art unit 2136 · TC 2100
Citations: 10 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2022202420262028203020322034203620382040Owner 1Owner 2
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock