Storage device, storage system, and operating method thereof

By using a neural network model to predict logical block addresses in storage devices, the write amplification problem is solved, improving the write performance and durability of storage devices and enhancing device reliability.

CN112786095BActive Publication Date: 2026-02-24SAMSUNG ELECTRONICS CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202011228309.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-08
Filing Date
2020-11-06
Publication Date
2026-02-24
Estimated Expiration
2040-11-06

AI Technical Summary

Technical Problem

Existing storage devices are prone to write amplification when performing a large number of random addressing write operations, which leads to degraded write performance, increased wear on non-volatile memory cells, and reduced device durability and reliability.

Method used

The LBA predictor, which uses a neural network model, predicts the data stream ID that is missing a stream identifier by receiving information related to the logical block address as a feature, and writes data with the same stream ID into the same storage block, reducing additional erase and write operations.

Benefits of technology

It effectively reduces write amplification, improves the write performance of storage devices and the durability of non-volatile memory cells, and enhances device reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112786095B_ABST
    Figure CN112786095B_ABST
Patent Text Reader

Abstract

A storage device includes an interface to receive data and corresponding LBAs from a host, wherein the data includes at least one of first data having a flow ID and second data lacking a flow ID; a non-volatile memory (NVM) device including at least one non-volatile memory configured to store data; and a LBA predictor configured to provide a predicted flow ID for the second data using a neural network model operating in response to at least one feature associated with a LBA value received by the storage device from the host, wherein the first data is stored in the NVM device using the flow ID and the second data is stored in the NVM device using the predicted flow ID.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to applications

[0002] This application claims priority to Korean Patent Application No. 10-2019-0142181, filed on November 8, 2019, the subject of which is incorporated herein by reference. Technical Field

[0003] This disclosure relates to storage devices, storage systems, and methods of operating storage devices and / or storage systems. Background Technology

[0004] Storage devices that include at least one non-volatile memory may experience problems associated with write amplification. Write amplification can occur when the ratio between the number of write operations performed by the non-volatile memory and the number of write operations requested by the host becomes skewed. Write amplification can occur when the storage device performs a large number of random-address write operations. Write amplification can degrade the write performance of the storage device and increase the overall wear of the non-volatile memory cells, thereby reducing the durability and reliability of the storage device.

[0005] To mitigate or prevent the adverse effects of write amplification, storage devices may use logical block addresses (LBAs) associated with one or more stream identifiers (IDs). Therefore, the storage device must be able to accurately determine the LBA value associated with the stream ID. Furthermore, the storage device must be able to associate a specific stream ID with an LBA value that has already been assigned the same stream ID. Summary of the Invention

[0006] Embodiments of this disclosure provide a storage device capable of accurately predicting the LBA value for which the same stream ID should be assigned for write operations.

[0007] Embodiments of this disclosure provide a storage system capable of accurately predicting the LBA value for which the same stream ID should be assigned for write operations.

[0008] Embodiments of this disclosure provide an operating method for a storage system that can accurately predict the LBA value for which the same stream ID should be assigned for write operations.

[0009] According to one aspect of the present invention, a storage device is provided, comprising: a buffer memory configured to store first ID-specific logical block address (LBA) related information associated with a first stream identifier (ID) and further associated with 'm' LBA values, and storing second ID-specific LBA related information associated with a second stream ID and further associated with 'n' LBA values; and an LBA predictor including a neural network model and configured to predict the (m+k)th LBA value based on the first ID-specific LBA related information, and to predict the (n+l)th LBA value based on the second ID-specific LBA related information, wherein n, m, k, and l are natural numbers. The neural network model can be configured to: receive first ID-specific LBA information as a first feature for predicting the (m+k)th LBA value; receive second ID-specific LBA information as a second feature for predicting the (n+l)th LBA value; assign a first stream ID to an LBA value greater than the m-th LBA value and less than or equal to the (m+k)-th LBA value; and assign a second stream ID to an LBA value greater than the n-th LBA value and less than or equal to the (n+l)-th LBA value.

[0010] According to one aspect of the present invention, a storage device is provided, comprising: an interface configured to receive data and a corresponding logical block address (LBA) from a host, wherein the data includes at least one of first data having a stream ID and second data lacking a stream ID; a non-volatile memory (NVM) device including at least one non-volatile memory configured to store data; a buffer memory; and an LBA predictor configured to provide a predicted stream ID for the second data using a neural network model operating in response to at least one feature associated with an LBA value received by the storage device from the host, wherein the first data is stored in the NVM device using the stream ID, and the data is stored in the NVM device using the predicted stream ID.

[0011] According to one aspect of the present invention, a storage system is provided, comprising: a host configured to output 'm' logical block address (LBA) values; and a storage device. The storage device includes: an interface configured to communicate with the host and receive the m LBA values; a buffer memory configured to temporarily store the m LBA values; a non-volatile memory device configured to store data corresponding to the m LBA values; and an LBA predictor configured to predict the (m+k)th LBA value using a neural network model in response to LBA-related information input to a neural network as features.

[0012] According to one aspect of the present invention, an operational method for a storage system is provided. The method includes: storing logical block address (LBA) related information in a buffer memory, wherein the LBA related information is associated with 'm' LBA values; using an LBA predictor including a neural network model, predicting an (m+k)th LBA value in response to the LBA related information; and assigning a prediction stream ID to an LBA value greater than the m-th LBA value and less than or equal to the (m+k)-th LBA value.

[0013] However, the aspects of this disclosure are not limited to those set forth herein. These and other aspects of the disclosure will become more apparent to those skilled in the art upon reference to the detailed description of the disclosure given below. Attached Figure Description

[0014] The above and other features and aspects of the present invention will become clearer from a detailed description of exemplary embodiments of the invention with reference to the accompanying drawings, in which:

[0015] Figure 1 This is a block diagram illustrating a storage system according to some embodiments.

[0016] Figure 2 and Figure 3 This is a conceptual diagram that further illustrates write amplification and the use of stream IDs to address the write amplification problem.

[0017] Figure 4 This is a conceptual diagram illustrating the operation of a storage device, according to some embodiments, using a neural network model to predict logical block address (LBA) values.

[0018] Figure 5 , Figure 6 and Figure 7 This is a further illustration of the corresponding graphs showing the operation of predicting LBA values ​​for storage devices according to some embodiments.

[0019] Figure 8 This is a table that further lists exemplary LBA information that can be used to predict LBA values ​​according to some embodiments.

[0020] Figure 9 and Figure 10 This is a further illustration of the corresponding graphs showing the operation of predicting LBA values ​​for storage devices according to some embodiments.

[0021] Figure 11 , Figure 12 and Figure 13 This is a block diagram illustrating a storage system according to some embodiments.

[0022] Figure 14This is a flowchart outlining an operational method for a storage system according to some embodiments. Detailed Implementation

[0023] Some embodiments will now be described with reference to the accompanying drawings. Throughout the illustrated embodiments and the associated written description, the same reference numerals and labels are used to denote the same or similar elements.

[0024] Figure 1 This is a block diagram illustrating a storage system according to some embodiments. Figure 2 This is a further description of the concept diagram for writing amplification, and Figure 3 This is a conceptual diagram that further describes the state of the stream identifier (hereinafter referred to as "ID") assigned by the storage system. Figure 4 This is a flowchart further describing the operation of a storage device, according to some embodiments, using a neural network model to predict logical block address (LBA) values.

[0025] Reference Figure 1 Storage system 1 typically includes host 10 and storage device 20.

[0026] Storage device 20 may include: interface 60 configured to facilitate communication between host 10 and storage device; non-volatile memory device (NVM) 50 including one or more non-volatile memories; buffer memory 40; and LBA predictor 30.

[0027] Host 10 may transfer data containing associated IDs to storage device 20 during a write (or programming) operation performed by storage device 20 (e.g., a solid-state drive (SSD)). Host 10 may assign IDs to data based on, for example, data type (e.g., log file, metafile, media file, etc.). In this context, the term "type" may refer to various characteristics or attributes of the data. Once host 10 has specifically assigned an ID to the data, the data may be transferred to storage device 20 as part of a multi-stream dataset. For example, host 10 may assign a first ID to first data with a log file type and a second ID to data with a media file type.

[0028] In this context, storage device 20, configured to receive multiple IDs associated with a dataset, can be referred to as a multi-stream storage device. A multi-stream storage device can provide an operating system and applications with interfaces through which data with different attributes can be stored individually. The corresponding processes (or processes) for storing individual data can be referred to as "streams." That is, a set (or "group") of individual data write operations can be included in an aggregated "stream," where each stream can be specifically identified by a corresponding "stream ID" assigned (for example) by the operating system or the corresponding application. Therefore, completely different data with similar characteristics or attributes can be assigned unique IDs, such that data corresponding to a unique stream ID can be written into the same block in the NVM device 50 of storage device 20.

[0029] However, when data lacking a stream ID is received from host 10, storage device 20 can store the data in any block. As a result, data with different stream IDs may be written to the same block. This will be discussed further below. Figure 2 This result is described in some additional details.

[0030] Reference Figure 1 and Figure 2 When data missing a stream ID is received from host 10, storage device 20 may arbitrarily write the data missing a stream ID into, for example, each of blocks BLK1, BLK2 and BLK3 of NVM50 in storage device 20.

[0031] As previously described, the NVM50 may include multiple non-volatile memories. Each of the multiple non-volatile memories may include non-volatile memory cells, such as NAND flash memory cells, NOR flash memory cells, resistive random access memory (RRAM) cells, ferroelectric random access memory (FRAM) cells, phase-change random access memory (PRAM) cells, thyristor random access memory (TRAM) cells, magnetic random access memory (MRAM) cells, etc.

[0032] exist Figure 2 In the example shown, it is assumed that storage device 20 receives six (6) individual data (e.g., first data DATA1 to sixth data DATA6) from host 10 and assigns each of the first data DATA1 to the sixth data DATA6 (e.g., using an arbitrarily established assignment sequence, randomly, etc.) to one of blocks BLK1, BLK2, and BLK3 respectively.

[0033] For example, storage device 20 can store first data DATA1 in the first row (Row1) of the first block (BLK1) and second data DATA2 in the second row (Row2) of the first block (BLK1). Storage device 20 can also store third data DATA3 in the first row (Row1) of the second block (BLK2), fourth data DATA4 in the second row (Row2) of the second block (BLK2), fifth data DATA5 in the first row (Row1) of the third block (BLK3), and sixth data DATA6 in the second row (Row2) of the third block (BLK3).

[0034] Under these assumptions, and recognizing that none of the first data DATA1 through the sixth data DATA6 has an assigned stream ID, storage device 20 may arbitrarily write each of the first data DATA1 through the sixth data DATA6 into one of blocks BLK1, BLK2, and BLK3. However, the existence of a stream ID assigned to each of the first data DATA1 through the sixth data DATA6 received by storage device 20 should depend on (or be based on) the specific type of data.

[0035] In other words, when the first data DATA1 to the sixth data DATA6 are received from the host 10 but the corresponding stream ID is missing, the storage device 20 will arbitrarily (e.g., randomly) store the first data DATA1 to the sixth data DATA6 in blocks BLK1, BLK2, and BLK3. However, more appropriately, the storage device 20 should assign a stream ID to each of the first data DATA1 to the sixth data DATA6 depending on the data type, and then allocate all data with the same stream ID among the first data DATA1 to the sixth data DATA6 to the same block.

[0036] refer to Figure 1 , Figure 2 and Figure 3 Furthermore, considering the aforementioned assumptions, storage device 20 should "redistribute" the data that has been arbitrarily written (e.g., Figure 2 The data shown) causes data with the same stream ID to be written into the same block (e.g. Figure 3 (As shown).

[0037] For example, storage device 20 can reallocate (i.e., write or program) first data DATA1, third data DATA3, and fifth data DATA5 with a first stream ID (SID1) to the first BLK1; reallocate second data DATA2 and fourth data DATA4 with a second stream ID (SID2) to the second BLK2; and reallocate sixth data DATA6 with a third stream ID (SID3) to the third BLK3. As a result of the reallocation process, storage device 20 can erase the first BLK1 and then write the first data DATA1, third data DATA3, and fifth data DATA5 into the first BLK1; erase the second BLK2 and then write the second data DATA2 and fourth data DATA4 into the second BLK2; and erase the third BLK3 and then write the sixth data DATA6 into the third BLK3.

[0038] Therefore, in order to reallocate data with the same stream ID to the same block, storage device 20 must perform numerous additional erase and / or write operations beyond those initially (and arbitrarily) required to write data received from host 10. The execution of these additional erase and / or write operations leads to the write amplification problem described above. For example, write amplification can degrade the write operation performance of storage device 20 and increase wear on the non-volatile memory cells that make up the NVM 50 of storage device 20, thereby reducing the durability of storage device 20.

[0039] To reduce or prevent write amplification, when a write command is received associated with data lacking a stream ID and before the data lacking a stream ID is actually written to the NVM 50, the storage device 20 can predict the stream ID of the data and then write the data with the predicted stream ID to the memory block based on the predicted stream ID.

[0040] The prediction of the stream ID for specific data can be performed using "LBA-related information" (e.g., LBA value, LBA size, number of times the corresponding LBA is received, time interval on which the corresponding LBA is received, etc.) applied to the neural network (NN) model. In other words, compared to arbitrarily writing data lacking a stream ID, storage device 20 can use a neural network model to predict the stream ID of data lacking a stream ID, thereby improving the accuracy of one or more write operations used to initially write data lacking a stream ID into an available storage block.

[0041] In practice, the aforementioned method seeks to accurately predict the stream ID (e.g., LBA value) of data before it is stored in NVM device 50 if a data lacks a stream ID (i.e., the same stream ID can be more accurately assigned to the LBA value that should be assigned the same stream ID). Therefore, storage device 20 can accurately predict the LBA value that should be assigned the same stream ID and store the data in the same block based on the predicted LBA value, thereby reducing write amplification and improving the reliability of storage device 20. The exemplary operation of predicting the LBA value that should be assigned the same stream ID will be described below with some additional details.

[0042] It is worth noting that the amount and type of data received by storage device 20 from host 10 are not limited to... Figure 2 and Figure 3 Those shown. Furthermore, the number and type of blocks used for storing data in storage device 20 are not limited to those shown. Figure 2 and Figure 3 Those shown in the illustration. Furthermore, in some embodiments, data may be stored on a page-by-page basis.

[0043] Refer again Figure 1 The host 10 can take one of many possible forms, including a processing unit, host memory, interface circuitry, etc. Here, the processing unit can run various software (e.g., applications, operating systems, device drivers, etc.) loaded in the host memory. The processing unit can run an operating system (OS) or applications. The processing unit can include a homogeneous multi-core processor or a heterogeneous multi-core processor. For example, the processing unit can include at least one of a central processing unit (CUP), an image processing unit (ISP), a digital signal processing unit (DSP), a graphics processing unit (GPU), a vision processing unit (VPU), and a neural processing unit (NPU), but is not limited thereto.

[0044] Applications, file systems, device drivers, etc., used to drive storage system 1 can be loaded into the host memory. However, this is not a limitation; various other software used to drive storage device 20 can also be loaded into the host memory. The host memory can also load applications or data to be processed by the processing unit. For example, an input / output scheduler (not shown) for managing the submission and completion queues of commands to be delivered to storage device 20 can be loaded into the host memory.

[0045] The interface circuitry can provide a physical connection between the host 10 and the storage device 20. For example, the interface circuitry can translate commands, addresses, datasets, etc., corresponding to various requests generated by the host 10 into an interface form with the storage device 20. For example, the interface circuitry can be configured to communicate with the storage device 20 using at least one of various communication methods such as Universal Serial Bus (USB), Serial AT Attachment (SATA), Serial Attachment SCSI (SAS), High Speed ​​Chip Interconnect (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnect (PCI), High Speed ​​PCI (PCIe), Non-Volatile Memory Host Controller Interface Specification (NVMe), Universal Flash Memory (UFS), Secure Digital (SD), Multimedia Card (MMC), and Embedded MMC (Emmc), but the configuration is not limited to these.

[0046] Interface 60 in storage device 20 can process various commands provided from host 10. These commands from host 10 may contain data with (or lack) one of several possible stream IDs. Alternatively, commands from host 10 may include data for which no stream ID is assigned. Interface 60 can be used to transfer data to NVM 50. Alternatively, when interface 60 receives a read command from host 10, interface 60 can be used to read data from NVM 50.

[0047] Interface 60 can be implemented as a circuit such as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or as a combination of a processor and software run by the processor, but the implementation of interface 60 is not limited to these.

[0048] Interface 60 can be used to temporarily store data in buffer memory 40. Alternatively, interface 60 can be used to load data from buffer memory 40. Buffer memory 40 can temporarily store LBA-related information, wherein the LBA-related information can be continuously updated according to, for example, an established update schedule or interval. In this way, an extended body of the LBA-related information (hereinafter, at any time, simply referred to as "LBA-related information") can be used by the neural network model in LBA predictor 30 to predict the stream ID of received data. LBA-related information can be stored in storage system 1 or in an external environment accessible to storage system 1 in various ways, including, for example, buffer memory 40. Here, buffer memory 40 may include volatile memory cells, such as dynamic random access memory (DRAM) cells, static random access memory (SRAM) cells, etc.

[0049] The LBA predictor 30 in storage device 20 can be used to assign prediction stream IDs associated with LBA values ​​to data received from host 10 using a neural network model that operates in response to LBA-related information.

[0050] Figure 4 An example of a neural network model that can be used in some embodiments of the LBA predictor 30 is shown.

[0051] Reference Figure 1 and Figure 4 The neural network model of the LBA predictor 30 in storage device 20 can receive LBA-related information as "features". Therefore, in Figure 4 In the example shown, LBA-related information may include, for example, LBA value F1, LBA size F2, number of times a specific LBA is received Fn-1, and time interval Fn for receiving LBAs.

[0052] These features can be bundled in feature pool 70 and temporarily stored in buffer memory 40 or in feature buffer 32, which will be described below.

[0053] Certain LBA-related information can be configured as separate LBA information for the same flow ID when it is received within the body of LBA-related information. Subsequently, certain LBA-related information that has been grouped, associated, or configured according to a specific flow ID will be referred to as "ID-specific LBA-related information." Therefore, LBA-related information can include first ID-specific LBA-related information, second ID-specific LBA-related information, etc., in various ways.

[0054] ID-specific LBA information can be channeled and bundled into the feature pool 70 of the neural network model in various ways. (See reference...) Figure 6 One possible approach to bootstrapping and / or bundling ID-specific LBA-related information with some additional details.

[0055] In the following description, it is assumed that the LBA-related information for the first ID has already been obtained by... Figure 4 The neural network model receives and accordingly bundles them in feature pool 70.

[0056] The neural network model used by the LBA predictor 30 uses the corresponding features of the feature pool 70 as input, and can assign or assign corresponding weights (e.g., weights W1, W2, ..., Wn-1 and Wn) to the features respectively. For example, the first feature F1 (e.g., LBA value) can be weighted with the first weight W1, the second feature F2 (e.g., LBA size) can be weighted with the second weight W2, and so on, so as to generate the first weighted feature value (F1×W1), the second weighted feature value (F2×W2), etc. accordingly.

[0057] Subsequently, the LBA predictor 30 can sum (or add up) the weighted feature values ​​to generate a summation result. This summation result can be used to predict the appropriate LBA value using the activation function f. Therefore, the predicted LBA value can be provided as output via the activation function f, as shown in the following equation:

[0058] Output = f(F1*W1+F2*W2+……+Fn-1*Wn-1+Fn*Wn)

[0059] Figure 4 Assume that the LBA predictor 30 uses a relatively simple neural network model. However, those skilled in the art will recognize that the neural network model used by the LBA predictor 30 can use various neural network models, including single-layer perceptron (SLP) models or multi-layer perceptron (MLP) models. The structure of the neural network model used by the LBA predictor 30 can be a nonlinear regression model or a classification model. Furthermore, the features used by the LBA predictor 30 can differ in nature and number from the examples described above. However, different ID-specific LBA-related information associated with the same flow ID can be grouped into the same feature pool 70 and used as input to the neural network model.

[0060] The following sections will describe some of the operational principles of the LBA predictor 30 with additional detail, referring to the graphs. Furthermore, possible methods for assigning and / or allocating the same stream ID based on predicted LBA values ​​derived from a neural network model using ID-specific LBA-related information as input will be described.

[0061] Figure 5 This is a graph illustrating the operation of a storage device that provides predicted LBA values ​​according to some embodiments.

[0062] refer to Figure 1 , Figure 4 and Figure 5 The LBA predictor 30 can read specific LBA values ​​as features of the neural network model from the storage of previously received LBA values ​​(e.g., LBA1 to LBAm). That is, LBA values ​​falling within the first region 'I' can be input as features of the neural network model. All LBA values ​​in the first region 'I' can be associated with the same stream ID (e.g., the first stream ID). Using this information, the LBA predictor 30 can drive the neural network model to predict the (m+k)th LBA value (e.g., LBAm+k).

[0063] Subsequently, LBA predictor 30 can receive data lacking a stream ID (e.g., an LBA value) and determine the region of the graph where the LBA value might be located. LBA predictor 30 can then (e.g., assign the first stream ID (SID1) to the received LBA value falling within the second region 'II' of the graph, where the LBA value is greater than the m-th LBA value (LBAm) and less than or equal to the (m+k)-th LBA value (LBAm+k).

[0064] For LBA values ​​that lack a flow ID, LBA predictor 30 can pre-assign a flow ID to provide a predicted flow ID, which can be used to write data with the same flow ID into the same block of NVM 50.

[0065] Figure 6 This is another graph illustrating the operation of predicting LBA values ​​for a storage device according to some embodiments.

[0066] Reference Figure 1 , Figure 4 and Figure 6 Suppose that the LBA predictor 30 reads 'm' LBA values ​​(i.e., LBA-related information specific to the first ID) associated with the first stream ID (SID1) falling within the first region 'I' of the curve graph, as features of the neural network model used to predict the (m+k)th LBA value (LBAm+k).

[0067] Additionally, assume that LBA predictor 30 reads 'n' LBA values ​​associated with the second stream ID (SID2) falling within the third region III (i.e., LBA-related information specific to the second ID) as features of the neural network model used to predict the 10+n+1th LBA value (LBA10+n+1).

[0068] It is worth noting that, despite Figure 6 Specifically, only the first stream ID (SID1) and the second stream ID (SID2) are shown as examples, but any reasonable number of stream IDs can be predicted similarly. For example, when data lacking a stream ID (e.g., an LBA value) is received by host 10 and subsequently determined to fall within the second region 'II', storage device 20 can assign the first stream ID (SID1) to the data, and when data lacking a stream ID (e.g., an LBA value) is received by host 10 and subsequently determined to fall within the fourth region 'IV', storage device 20 can assign the second stream ID (SID2) to the data.

[0069] Figure 7 This is another graph illustrating the operation of predicting LBA values ​​for a storage device according to some embodiments.

[0070] Reference Figure 1 , Figure 4 and Figure 7 The LBA predictor 30 can read (or input) the differences (e.g., Diff1 to Diff4) between 'm' previously received LBA values ​​(e.g., LBA1 to LBAm) associated with the same first stream ID, as features of the neural network model. That is, the differences between LBA values ​​falling within the first region 'I' can be input as features into the neural network model. All LBA values ​​in the first region 'I' can be associated with the same stream ID (e.g., the first stream ID). Therefore, the LBA predictor 30 can drive the neural network model to predict the m-th LBA difference (Diff m). Using this configuration, the LBA predictor 30 can predict the (m+k)-th LBA value (LBAm+k) obtained by adding the m-th LBA difference (Diff m) to the m-th LBA value (LBAm).

[0071] Subsequently, the LBA predictor 30 can receive data with missing flow IDs (e.g., LBA values) and determine the region of the graph where the LBA values ​​with missing flow IDs are located.

[0072] LBA predictor 30 can assign the first stream ID (SID1) to the received LBA value of the second region 'II', which is greater than the m-th LBA value (LBAm) and less than or equal to the (m+k)-th LBA value (LBAm+k).

[0073] For LBA values ​​lacking a stream ID, the LBA predictor 30 in storage device 20 can pre-assign a stream ID in the manner described above, so that the data lacking the stream ID can be written to the same block of NVM 50 using the predicted stream ID. Therefore, wear and tear on the constituent non-volatile memory cells of NVM 50 can be mitigated or prevented. As a result, write amplification of storage device 20 can be reduced, thereby improving the reliability of storage device 20.

[0074] Figure 8 This is an exemplary table illustrating the iterative steps of certain LBA information for predicting LBA values ​​according to some embodiments.

[0075] refer to Figure 1 , Figure 4 and Figure 8The LBA predictor 30 can read (or input) certain start LBA values ​​and certain LBA sizes of previously received LBA values ​​associated with the same flow ID (e.g., the first flow ID) as features of the neural network model. Certain end LBA values ​​of 'm' LBA values ​​can be derived by adding the LBA sizes to the start LBA values. The LBA predictor 30 can then use an LBA size table, which stores information about the start LBA values, LBA sizes, and end LBA values ​​of the corresponding m LBA values, to predict the (m+k)th LBA value with the same flow ID.

[0076] Reference Figure 9 The operation of an LBA predictor 30 according to some embodiments is described with some additional details. The operation predicts LBA values ​​by taking as input the initial LBA values ​​and LBA sizes of the past m LBA values ​​having the same first-stream ID as features of a neural network model.

[0077] Figure 9 This describes the use according to some embodiments. Figure 8 Another graph showing the operation of using LBA information to predict LBA values.

[0078] Reference Figure 1 , Figure 4 , Figure 8 and Figure 9 The LBA predictor 30 can read (or input) the initial LBA values ​​(initial LBA 1 to initial LBA m) and LBA sizes (LBA size 1 to LBA size m) of 'm' previously received LBA values ​​associated with the same first stream ID, as features of the neural network model. That is, the initial LBA values ​​(initial LBA 1 to initial LBA m) and LBA sizes (LBA size 1 to LBA size m) of the LBA values ​​of the first region I can be input as features of the neural network model. The LBA values ​​of the first region I can all have the same stream ID (e.g., the first stream ID). The LBA predictor 30 in the storage device 20 can drive the neural network model to predict the (m+k)th initial LBA value (initial LBA m+k) and the (m+k)th LBA size (LBA size m+k). With this configuration, the LBA predictor 30 in storage device 20 can predict the (m+k)th LBA value by adding the (m+k)th LBA size (LBA size m+k) to the (m+k)th initial LBA value (initial LBA m+k).

[0079] Subsequently, the LBA predictor 30 can receive data (e.g., LBA values) that lack a flow ID and can determine the region where the LBA value for the missing flow ID might be located.

[0080] LBA predictor 30 can assign a first stream ID (SID1) to the received LBA value of the second region II, the LBA value being greater than the m-th LBA value and less than or equal to the (m+k)-th LBA value, wherein the m-th LBA value is obtained by adding the m-th LBA size (LBA size m) to the m-th starting LBA value (starting LBA m), and the (m+k)-th LBA value is obtained by adding the (m+k)-th LBA size (LBA size m+k) to the (m+k)-th starting LBA value (starting LBA m+k).

[0081] For LBA values ​​from host 10 that have not been assigned a stream ID, the LBA predictor 30 in storage device 20 can pre-assign a stream ID in the manner described above, so that data with the same stream ID is written into the same block of NVM 50. Therefore, wear and tear on the constituent non-volatile memory cells of NVM 50 can be mitigated or prevented. As a result, write amplification of storage device 20 can be reduced, thereby improving the reliability of storage device 20.

[0082] Figure 10 This is another graph illustrating the operation of predicting LBA values ​​for a storage device according to some embodiments.

[0083] Reference Figure 1 , Figure 4 and Figure 10 The LBA predictor 30 can read (or input) 'm' previously received LBA values ​​(LBA1 to LBAm) associated with the same first stream ID and the time information (t1 to tm) of receiving the corresponding LBA values ​​(LBA1 to LBAm), as features of the neural network model. That is, the LBA values ​​(LBA1 to LBAm) of the first region I and the input time information (t1 to tm) of the LBA values ​​(LBA1 to LBAm) can be input as features of the neural network model. All LBA values ​​of the first region I can have the same stream ID (e.g., the first stream ID). The LBA predictor 30 in the storage device 20 can drive the neural network model to predict the (m+k)th LBA value (LBAm+k).

[0084] Since the LBA predictor 30 in storage device 20 includes time information (t1~tm) as input to the neural network model, the prediction accuracy for the (m+k)th LBA value (LBAm+k) can be further improved. More specifically, even if an LBA value falls within the first region 'I', if the time interval between the LBA value entering the region and other LBA values ​​previously falling within the first region I is too long (where the criterion for the time interval can be freely constrained by the configuration of the neural network model), the LBA value can be excluded from the prediction of the (m+k)th LBA value (LBAm+k).

[0085] Subsequently, the LBA predictor 30 can receive data (e.g., LBA values) that lack a flow ID, and can determine the region where the LBA value for the missing flow ID might be located.

[0086] LBA predictor 30 can assign a first stream ID (SID1) to the received LBA value of the second region II, the LBA value being greater than the m-th LBA value (LBAm) and less than or equal to the (m+k)-th LBA value (LBAm+k).

[0087] For LBA values ​​lacking a stream ID, the LBA predictor 30 can pre-assign a stream ID in the manner described above, so that data with the same predicted stream ID is written into the same block of the NVM 50. Therefore, wear and tear on the constituent non-volatile memory cells of the NVM 50 can be mitigated or prevented. As a result, write amplification of the storage device 20 can be reduced, thereby improving the reliability of the storage device 20.

[0088] It is worth noting that the values ​​'n', 'm', 'k', and 'l' used above are each natural numbers. Specifically, 'k' can be a natural number greater than 'm', and 'l' can be a natural number greater than 'n', but the embodiments are not limited to this.

[0089] Figure 11 , Figure 12 and Figure 13 This is a block diagram illustrating a storage system according to some embodiments.

[0090] Reference Figure 11 ,and Figure 1 Compared to the embodiments, the LBA predictor 30 of the storage device 20 in the storage system 2 may also include a feature buffer 32.

[0091] The feature buffer 32 can be used to temporarily store LBA-related information. The feature buffer 32 can contain volatile memory cells, such as DRAM cells, SRAM cells, etc.

[0092] After a certain step, the LBA predictor 30 can temporarily store LBA-related information used to predict LBA values ​​with the same flow ID in the feature buffer 32, and can load the LBA-related information for use when driving the neural network model.

[0093] Reference Figure 12 ,and Figure 1 Compared to the embodiments described above, in some embodiments, the LBA predictor 30 of the storage device 20 in the storage system 3 may be included in the interface 60, and referencing Figure 13 ,and Figure 12Compared to the previous embodiment, the LBA predictor 30 of the storage system 4 may also include a feature buffer 32.

[0094] Figure 14 This is a flowchart outlining an operational method for a storage system according to some embodiments.

[0095] Reference Figure 1 and Figure 14 Storage system 1 can extract LBA-related information as features to be input into the neural network model used to predict LBA values ​​(S10).

[0096] Subsequently, storage system 1 can group the LBA-related information extracted as features to be input into the neural network model into feature pools (S20). Here, the feature pools can be grouped according to individual ID-specific LBA-related information associated with the same stream ID.

[0097] In order to drive the neural network model, the storage system 1 can use the corresponding features (e.g., ID-specific LBA related information associated with the same stream ID of the feature pool) to drive (or run) the neural network model (S30).

[0098] Therefore, storage system 1 can predict LBA values ​​using a neural network model (S40).

Claims

1. A storage device comprising: a buffer memory configured to store first flow identifier (ID)-specific logical block address (LBA)-related information associated with a first flow ID and further associated with m LBA values, and to store second ID-specific LBA-related information associated with a second flow ID and further associated with n LBA values; and an LBA predictor comprising a neural network model and configured to predict an m+kth LBA value based on the first ID-specific LBA-related information and to predict an n+lth LBA value based on the second ID-specific LBA-related information, wherein n, m, k, and l are natural numbers, wherein the neural network model is configured to receive the first ID-specific LBA-related information as first features for predicting the m+kth LBA value, receive the second ID-specific LBA-related information as second features for predicting the n+lth LBA value, assign the first flow ID to LBA values greater than an mth LBA value and less than or equal to the m+kth LBA value, and assign the second flow ID to LBA values greater than an nth LBA value and less than or equal to the n+lth LBA value.

2. The storage device of claim 1, wherein, a first LBA value associated with the second ID-specific LBA-related information is greater than a last LBA value associated with the first ID-specific LBA-related information.

3. The storage device of claim 1, wherein, each of the m LBA values includes a starting LBA value and an LBA size value, and the neural network model is further configured to predict an m+kth starting LBA value.

4. The storage device of claim 1, wherein, k is greater than m, and l is greater than n.

5. The storage device of claim 1, wherein, the LBA predictor comprises a feature buffer configured to store at least one of the first ID-specific LBA-related information and the second ID-specific LBA-related information.

6. The storage device of claim 5, wherein, the first ID-specific LBA-related information is stored in the feature buffer in at least one of a queue, an array, and a list.

7. The storage device of claim 1, wherein, the first ID-specific LBA-related information includes a time at which an associated LBA value was received by the storage device.

8. The storage device of claim 1, wherein, the first ID-specific LBA-related information includes a time interval at which an associated LBA value was received by the storage device.

9. The storage device of claim 1, wherein, the neural network model is a regression model or a classification model.

10. The storage device of claim 1, wherein, the neural network model is a single layer perceptron (SLP) model or a multi-layer perceptron (MLP) model.

11. The storage device of claim 1, wherein, the buffer memory is a dynamic random access memory (DRAM) or a static random access memory (SRAM).

12. A storage device comprising: an interface configured to receive data and corresponding logical block addresses (LBAs) from a host, wherein the data includes at least one of first data having a flow ID and second data lacking a flow ID; a non-volatile memory (NVM) device including at least one non-volatile memory configured to store data; a buffer memory; and an LBA predictor configured to provide a predicted flow ID for the second data using a neural network model that operates in response to at least one feature associated with an LBA value received by the storage device from the host, ​ wherein the first data is stored in the NVM device using the stream ID and the second data is stored in the NVM device using the predicted stream ID, wherein the at least one feature comprises a first feature and a second feature, wherein the LBA predictor is further configured to bundle the first feature and the second feature in a feature pool stored in a buffer memory, wherein the LBA predictor is further configured to weight the first feature using a first weight to produce a first weighted feature, weight the second feature using a second weight to produce a second weighted feature, and sum the first weighted feature and the second weighted feature to produce a summation result.

13. The storage device of claim 12, wherein, The first feature comprises at least one of an LBA value, an LBA size, a number of times the LBA is received in the storage device, and a time interval according to which the LBA is received in the storage device.

14. The storage device of claim 12, wherein, The LBA predictor is configured within the interface.

15. A storage system, comprising: a host configured to output m logical block address (LBA) values; and a storage device, wherein the storage device comprises: an interface configured to communicate with the host and receive the m LBA values, a buffer memory configured to temporarily store the m LBA values, a non-volatile memory device configured to store data corresponding to the m LBA values, and an LBA predictor configured to predict an m+kth LBA value using a neural network model, in response to first ID-specific LBA-related information associated with a first stream identifier (ID) and second ID-specific LBA-related information associated with a second stream ID input as features to the neural network model, wherein the neural network model is configured to receive the first ID-specific LBA-related information as a first feature for predicting the m+kth LBA value, receive the second ID-specific LBA-related information as a second feature for predicting the n+1th LBA value, assign the first stream ID to LBA values greater than the mth LBA value and less than or equal to the m+kth LBA value, and assign the second stream ID to LBA values greater than the nth LBA value and less than or equal to the n+1th LBA value.

16. The storage system of claim 15, wherein, The storage device further includes a feature buffer configured to store the first ID-specific LBA-related information.

17. An operating method for a storage system, the method comprising: storing first ID-specific logical block address (LBA) related information associated with a first stream ID and second ID-specific LBA-related information associated with a second stream ID in a buffer memory, wherein the first ID-specific LBA-related information is associated with m LBA values and the second ID-specific LBA-related information is associated with n LBA values; predicting an m+kth LBA value in response to the first ID-specific LBA-related information associated with the first stream ID and an n+1th LBA value in response to the second ID-specific LBA-related information associated with the second stream ID using an LBA predictor comprising a neural network model; assigning a first stream ID to LBA values greater than an mth LBA value and less than or equal to an m+kth LBA value, and assigning a second stream ID to LBA values greater than an nth LBA value and less than or equal to an n+1th LBA value.

18. The method of operation of claim 17, wherein, The first ID-specific LBA-related information includes at least one of a first ID-specific LBA value, a first ID-specific LBA size, a number of times the first ID-specific LBA is received in the storage device, and a time interval according to which the first ID-specific LBA is received in the storage device.

Citation Information

Patent Citations

  • Multi-agent PPO Guided By The Best Local Policy

    KR1020190142181A

  • Automatic detection of multiple streams

    US20180074700A1

  • Non-volatile storage with adaptive command prediction

    US20190129834A1