Method and device for determining strategy for data placement within SSD

KR103003346B1Active Publication Date: 2026-08-11SAMSUNG ELECTRONICS CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
KR1020200149157
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-12-25
Filing Date
2020-11-10
Publication Date
2026-08-11
Estimated Expiration
2040-11-10

Smart Images

  • Figure 112020119931594-PAT00003_ABST
    Figure 112020119931594-PAT00003_ABST
Patent Text Reader

Abstract

A method and apparatus for determining a strategy for data placement within a Solid State Drive (SSD) are provided. A method for determining a strategy for data placement within a Solid State Drive (SSD) comprises: acquiring first workload metric data collected in advance for an optimization target and a time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the first workload metric data according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for a prediction time period corresponding to the prediction time based on second workload metric data collected within the prediction time by using the first workload metric data and the trained machine learning model for the time period.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to data storage technology, and more specifically, to methods and devices for determining a strategy for data placement within a Solid State Drive (SSD). Background Technology

[0002] NAND flash memory-based SSDs are widely used in scenarios such as data centers due to their high performance and lower power consumption compared to traditional magnetic disks. Since NAND flash memory must be erased before it can be rewritten, update operations related to data pages are not supported. To address this issue, SSDs maintain a mapping table from logical addresses to physical addresses through internal Flash Translation Layer (FTL) software.

[0003] Data placement strategies within an SSD are used to determine where to place data. To improve the capacity and throughput of an SSD, multiple channels are typically designed within the SSD, and multiple chips exist within a single channel. This multi-concurrent structure presents new challenges to the design of data placement strategies within FTL software. The two most common types of data placement strategies are the Round-Robin (RR) strategy and the striping strategy.

[0004] The principle of the round-robin strategy is illustrated in FIG. 1. Each channel processes a user's write request in sequence. Data for one write request will be input into one channel, and data for the next write request will be input into the next channel. In the illustrated embodiment, pages (P0–P8) corresponding to the first input / output request are input (written) into channel 1, and pages (P127, P128) corresponding to the second input / output request are input (written) in sequence into channel 2 (the next channel).

[0005] The principle of the strip strategy is illustrated in FIG. 2. The strip strategy divides a user's write request into multiple pages and then writes these pages in parallel to multiple channels, thereby maximizing multi-channel concurrency. In the illustrated embodiment, data (P0~P8) corresponding to the first input / output request is stored (written) in each of the multiple channels, and data (P127, P128) corresponding to the second input / output request is stored (written) in channel 2 and channel 3, respectively.

[0006] Generally, all data within a single write request has similar lifecycles, and such data is likely to become invalid simultaneously. If data from the same write request is written to the same block within the SSD, the number of valid pages that must be moved out of the block during subsequent Garbage Collection (GC) will be small, and the cost of GC will be low, which is beneficial in reducing the impact of GC on the Write Amplification Factor (WAF) and SSD performance variability. Conversely, if data from the same write request is striped across different channels, the cost of subsequent GC will increase.

[0007] The round-robin strategy effectively reduces the cost of subsequent GC on SSDs and is friendly to write-intensive workloads. The round-robin strategy is not friendly to read-intensive workloads, and long read latency issues exist because multi-channel concurrency features are not utilized.

[0008] The striping strategy is friendly to read-intensive workloads and leverages the multi-channel concurrency of SSDs. However, the striping strategy is unfriendly to write-intensive workloads because data with the same lifecycle is striped across multiple channels, and there is a problem with high costs for subsequent GC.

[0009] The data placement strategies described above do not recognize workload changes and are designed for specific workloads. If the workload changes from write-intensive to read-intensive or vice versa, corresponding adjustments cannot be performed, resulting in problems such as poor read latency or poor performance.

[0010] There are also some data placement strategies that recognize parts of workload information. For example, they count access heats within a logical address range and make it possible to store data from different heats in different physical blocks, thereby lowering subsequent GC costs. This strategy calculates the heat of the data based solely on the workload's current state. If the heat of the workload data changes rapidly, the future temperature of the data will be significantly different from the current temperature. For instance, if a data block is currently identified as hot data and placed in a hot block, the data block may cool down, thus increasing GC transportation costs within the hot block.

[0011] In summary, current data placement strategies are designed for specific workloads that are either not aware of the workload or only recognize a portion of it (e.g., it is possible to determine the current data placement based only on the workload's current state), and if the workload changes rapidly, it is impossible to dynamically adjust the data placement strategy, which ultimately leads to significant read latency or poor performance issues. The problem to be solved

[0012] The objective of the present invention is to provide a method and apparatus for determining a strategy for data placement within an SSD to solve the problem of large read latency or poor read performance. means of solving the problem

[0013] According to some embodiments, a method for determining a strategy for data placement within an SSD is provided. The method for determining a strategy for data placement within an SSD comprises: acquiring first workload metric data collected in advance for an optimization target and a time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting first feature data from the first workload metric data according to the selected training data strategy, and training the selected first machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for a prediction time period corresponding to the prediction time by using the trained machine learning model according to the first workload metric data for the time period and second workload metric data collected within the prediction time. This enables the SSD to optimize performance in various workload environments, thereby enabling dynamic determination of a strategy for data placement and improving the accuracy of the strategy for data placement.

[0014] According to some embodiments, for each subsequent prediction time, the step of determining the strategy for data placement for the prediction time period corresponding to the prediction time by using the trained machine learning model according to the workload metric data for the time period and the workload metric data collected within the prediction time may include: predicting an IO (Input / Output) pattern by using the trained machine learning model according to the first workload data for the time period and the third workload data collected within the current prediction time; and determining the strategy for data placement within the prediction time period corresponding to the current prediction time according to the predicted IO pattern.

[0015] According to some embodiments, the types of IO patterns may include at least a read-intensive IO pattern, a write-intensive IO pattern, a data-hot-degree IO pattern, a sequential-write IO pattern, and a random-write IO pattern.

[0016] According to some embodiments, the step of determining the strategy for data placement within the predicted time period corresponding to the current predicted time according to the predicted IO pattern may include: determining to use a Round-Robin strategy as the strategy for data placement based on the fact that the predicted IO pattern is the read-intensive IO pattern; determining to use a strip strategy as the strategy for data placement based on the fact that the predicted IO pattern is the write-intensive IO pattern; determining to use a strategy for partition storage for hot data and cold data based on the fact that the predicted IO pattern is the data-hot-degree IO pattern; adopting a strategy for writing data to a low-cost flash memory unit based on the fact that the predicted IO pattern is the sequential-write IO pattern; and adopting a strategy for writing data to a high-speed flash memory unit based on the fact that the predicted IO pattern is the random-write IO pattern.

[0017] According to some embodiments, the optimization goal may include at least one of write performance, NAND flash life, or read latency.

[0018] According to some embodiments, the step of selecting the machine learning model and the training data strategy according to the optimization target comprises: determining the first training data strategy for write performance optimization based on the optimization target being write performance, wherein, according to the first training data strategy for write performance optimization, at least one of IO size, IO count, IO access cycle, or write amplification factor is selected from the first workload metric data as feature data for training; and determining the training data strategy for NAND flash lifespan optimization based on the optimization target being NAND flash lifespan, wherein, according to the training data strategy for NAND flash lifespan optimization, at least the number of block erases is selected from the first workload metric data as feature data for training. And based on the fact that the optimization target is the read delay, the training data strategy is determined for read delay optimization, and according to the training data strategy for read delay optimization, at least one of the IO size, the number of IOs, or the read delay is selected from the workload metric data for training as the feature data.

[0019] According to some embodiments, the method may further include the steps of: updating the time period based on detecting a change in the optimization target and obtaining third workload metric data for the updated time period; re-determining the machine learning model and the training data strategy according to the changed optimization target; and re-selecting the feature data according to the re-selected training data strategy from the third workload metric data for the updated time period in order to determine the strategy for the data placement by retraining the re-selected machine learning model and using the retrained machine learning model at each of the subsequent prediction times.

[0020] According to some embodiments, the method may further include the step of collecting workload metric data in real time to obtain current workload metric data.

[0021] According to some embodiments, an apparatus for determining a strategy for data placement within an SSD is provided. The apparatus for determining a strategy for data placement within an SSD comprises: a processor, wherein the processor: acquires first workload metric data pre-collected for an optimization target and a time period; selects a machine learning model and a training data strategy according to the optimization target; selects feature data from the first workload metric data for the time period according to the selected training data strategy; and trains the selected first machine learning model based on the selected feature data; and for each subsequent prediction time, determines a strategy for data placement for a prediction time period corresponding to the prediction time by using the trained machine learning model according to the first workload metric data for the time period and second workload metric data collected within the prediction time.

[0022] According to some embodiments, the processor: predicts an IO (Input / Output) pattern by using the trained machine learning model according to the first workload data for the time period and the third workload data collected within the current prediction time; and, according to the predicted IO pattern, determines the strategy for the data placement within the prediction time period corresponding to the current prediction time.

[0023] According to some embodiments, the types of IO patterns may include at least a read-intensive IO pattern, a write-intensive IO pattern, a data-hot-degree IO pattern, a sequential-write IO pattern, and a random-write IO pattern.

[0024] According to some embodiments, the processor may: decide to use a Round-Robin strategy as the strategy for data placement based on the fact that the predicted IO pattern is the read-intensive IO pattern; decide to use a strip strategy as the strategy for data placement based on the fact that the predicted IO pattern is the write-intensive IO pattern; decide to use a strategy of performing partition storage on hot data and cold data based on the fact that the predicted IO pattern is the data-hot-degree IO pattern; adopt a strategy of writing data to a low-cost flash memory unit based on the fact that the predicted IO pattern is the sequential-write IO pattern; and adopt a strategy of writing data to a high-speed flash memory unit based on the fact that the predicted IO pattern is the random-write IO pattern.

[0025] According to some embodiments, the optimization goal may include at least one of write performance, NAND flash life, or read latency.

[0026] According to some embodiments, the processor determines the training data strategy for write performance optimization based on the optimization target being write performance, wherein the training data strategy for write performance optimization selects at least one of IO size, IO count, IO access cycle, or write amplification factor as the feature data for training from the first workload metric data; determines the training data strategy for NAND flash life optimization based on the optimization target being NAND flash life, wherein the training data strategy for NAND flash life optimization selects at least the block erase count as the feature data for training from the first workload metric data; and determines the training data strategy for read delay optimization based on the optimization target being read delay, wherein the training data strategy for read delay optimization selects at least one of the IO size, IO count, or read delay as the feature data for training from the workload metric data.

[0027] According to some embodiments, the processor may be further configured to update the time period based on the detection of a change in the optimization target and to acquire third workload metric data for the updated time period, to redefine the machine learning model and the training data strategy according to the changed optimization target, to redefine the feature data according to the redefined training data strategy from the third workload metric data for the updated time period, and to retrain the redefined machine learning model to determine the strategy for the data placement by using the retrained machine learning model at each of the subsequent prediction times.

[0028] According to some embodiments, the device may further include a data collection unit that collects workload metric data in real time to acquire current workload metric data.

[0029] According to some embodiments, a computer-readable storage medium is provided in which a method for determining a strategy for data placement within an SSD according to the present disclosure is implemented based on the execution of said computer program by a processor.

[0030] According to some embodiments, a Solid State Drive (SSD) comprises: a memory cell storing computer-readable instructions; and a processor, wherein the processor comprises: acquiring first workload metric data pre-collected for an optimization target and a time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the first workload metric data for the time period according to the selected training data strategy; and training the selected machine learning model based on the selected feature data; and, for a plurality of subsequent prediction time periods, using the trained machine learning model according to the first workload metric data for the time period and second workload metric data collected within the prediction time to determine a strategy for data placement for any one of the plurality of prediction time periods.

[0031] According to some embodiments, a computing device is provided comprising: a processor; and a memory for storing a computer program, and a method for determining a strategy for data placement in an SSD according to the present disclosure is implemented based on the computer program being executed by the processor.

[0032] A method and apparatus for determining a strategy for data placement within an SSD according to some embodiments acquires workload metric data collected in advance for an optimization target and a preset time period; selects a machine learning model and a training data strategy according to the optimization target; selects feature data from the workload metric data for the preset time period according to the selected training data strategy; and trains the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determines a strategy for data placement for the prediction time period corresponding to the prediction time by using a machine learning model trained according to the workload metric data for the preset, or alternatively, the desired time period and the workload metric data collected within the prediction time, thereby enabling the SSD to optimize performance in various environments, thereby enabling dynamic determination of a strategy for data placement and improving the accuracy of the strategy for data placement.

[0033] Additional aspects and / or advantages of the general concept of the present invention will be described in part in the following description of the invention, and some will become apparent from the description of the invention or will be known through the practice of the general concept of the present invention. Effects of the invention

[0034] An SSD storage device according to one embodiment of the present invention can train a machine learning model based on workload metric data using machine learning, and determine a data placement policy suitable for an optimization goal based on the trained machine learning model. Accordingly, the storage performance of the SSD can be improved under various workload environments. Brief explanation of the drawing

[0035] The above-described and other objects and features of exemplary embodiments of the present disclosure will become more apparent from the following description together with the accompanying drawings illustrating exemplary embodiments: Figure 1 illustrates a schematic diagram of the round-robin strategy theory; Figure 2 illustrates a schematic diagram of the stripe strategy theory; FIG. 3 illustrates a flowchart of a method for determining a strategy for a data placement policy within an SSD according to an exemplary embodiment of the present disclosure. FIG. 4 illustrates a block diagram of a device for determining a strategy for a data placement policy within an SSD according to an exemplary embodiment of the present disclosure. FIG. 5 illustrates a schematic diagram of a computing device according to an exemplary embodiment of the present disclosure. Specific details for implementing the invention

[0036] Now, exemplary embodiments of the present disclosure will be referred to in detail, and examples of embodiments are illustrated in the accompanying drawings, wherein the same reference numerals refer to the same parts in whole. Hereinafter, embodiments will be illustrated with reference to the accompanying drawings to explain the present invention.

[0037] FIG. 3 illustrates a flowchart of a method for determining a strategy for data placement within a Solid State Drive (SSD) according to an exemplary embodiment of the present disclosure.

[0038] Referring to FIG. 3, in operation (S301), pre-collected workload metric data is obtained during an optimization target and a preset time period.

[0039] In some exemplary embodiments, the user can set different optimization targets for the SSD according to different application scenarios. Application scenarios may be, for example, write scenes or read scenes. The optimization target may be write performance, NAND flash lifetime, read latency, and / or at least one of these. It should be understood that the optimization target may also be other targets related to data placement, which are not limited to the present disclosure.

[0040] In some exemplary embodiments, workload metric data of the SSD may be collected in real time or periodically (e.g., at intervals of 1 second or 5 seconds, etc.).

[0041] Specifically, workload metric data may include, but is not limited to, one or more input / output (IO) sizes, IO counts, read latency, write latency, write amplification factor (WAF), block erase counts, input / output per second (IOOPS), IO access intervals, etc. Therefore, the SSD's IO size, IO counts, read latency, write latency, write amplification factor, block erase counts, and IOPS related to the SSD workload may be collected in real-time or periodically to be used to dynamically determine data placement strategies within the SSD in real-time or periodically, thereby optimizing the performance of the SSD.

[0042] In operation (S302), a machine learning model and a training data strategy can be selected according to the optimization target.

[0043] In some embodiments, selecting a machine learning model and a training data strategy according to an optimization target includes selecting a training data strategy for write performance optimization when the optimization target is predetermined or alternatively desired, wherein the training data strategy for write performance optimization includes selecting at least one of IO size, IO count, IO access interval, and / or write amplification as feature data for training from workload metric data; selecting a training data strategy for NAND flash lifespan optimization when the optimization target is predetermined or alternatively desired, wherein the training data strategy for NAND flash lifespan optimization includes selecting at least a block erase count as feature data for training from workload metric data; selecting a training data strategy for read latency optimization when the optimization target is predetermined or alternatively desired, wherein the training data strategy for read latency optimization includes selecting at least one of IO size, IO count, and / or read latency as feature data for training from workload metric data. The training data strategy may also include a strategy for selecting training data for other optimization targets, and it should be understood that this is not limited to the present disclosure. That is, a training data strategy using selected feature data based on the optimization target is determined for different optimization targets.

[0044] In some embodiments, the machine learning model may be, but is not limited to, a regression algorithm model, a clustering algorithm model, a Long Short-Term Memory (LSTM) model, a Recurrent Neural Network (RNN) model, etc. Alternatively or additionally, these machine learning systems may include other forms of machine learning models, such as, for example, linear and / or logistic regression, dimensionality reduction such as statistical clustering, Bayesian classification, decision trees, principal component analysis, etc., and expert systems; and / or combinations thereof including ensembles such as random forests. These machine learning models may also be used to provide, for example, various services and / or applications, such as image classification services, advanced driver assistance system (ADAS) services, or at least one of such, and may be performed, executed, implemented, or processed by any some or all of the systems and / or devices described herein.

[0045] In operation (S303), feature data is selected according to a training data strategy selected from workload metric data for a preset, or alternatively, desired, time period, and the selected machine learning model is learned (trained) based on the selected feature data.

[0046] Specifically, if the preset, or alternatively, desired, optimization target is write performance, at least one of the IO size, IO count, IO access interval, and / or write amplification factor may be selected as feature data for training according to a training data strategy selected from workload metric data; if the preset, or alternatively, desired, optimization target is NAND flash lifetime, at least the block erase count may be selected as feature data for training according to a training data strategy selected from workload metric data; if the preset, or alternatively, desired, optimization target is read latency, at least one of the IO size, IO count, and / or read latency may be selected as feature data for training according to a training data strategy selected from workload metric data.

[0047] In some embodiments, the selected machine learning model may be trained offline or online based on selected feature data, and this is not limited to the present disclosure.

[0048] In operation (S304), at each subsequent prediction time, a strategy for data placement for a prediction time period corresponding to the prediction time is determined based on workload metric data collected within the prediction time by using a pre-set, or alternatively, desired, workload metric data for a time period and a trained machine learning model.

[0049] Specifically, workload metric data collected in real-time or periodically can be input into a machine learning model trained to determine a strategy for data placement in real-time or periodically, thereby implementing dynamic adjustment of the strategy for data placement and improving the accuracy of the strategy for data placement.

[0050] In some embodiments, in operation (S305), a strategy for data placement may be executed. The execution may take write data inputs during a time period or an updated time period and place the data of the write data inputs into channels determined by the strategy for data placement. In some exemplary embodiments, operation (S305) may be performed as a Flash Translation Layer (FTL) is executed by a memory controller within a memory device (e.g., SSD). In some exemplary embodiments, write data based on the strategy for data placement may increase the performance of the memory device (e.g., SSD) by improving the write speed or read speed. In some exemplary embodiments, the improvement will be based on optimization targets.

[0051] In some exemplary embodiments, a strategy for data placement during a prediction time period corresponding to a prediction time is determined based on workload metric data collected during the prediction time by using a pre-set, or alternatively, desired, workload metric data for a time period and a trained machine learning model, wherein an IO pattern may first be predicted based on workload metric data collected during the current prediction time by using a pre-set, or alternatively, desired, workload metric data for a time period and a trained machine learning model, and then a strategy for data placement within the prediction time period corresponding to the current prediction time is determined based on the predicted IO pattern.

[0052] In some exemplary embodiments, the types of IO patterns include at least read-intensive IO patterns, write-intensive IO patterns, data-hot-degree IO patterns, sequential-write IO patterns, and random-write IO patterns.

[0053] In some exemplary embodiments, regarding determining a strategy for data placement within the next time cycle according to a predicted IO pattern, when the IO pattern is a read-intensive IO pattern, a round-robin strategy may be determined to be used as a strategy for data placement; when the IO pattern is a write-intensive IO pattern, a strip strategy may be determined to be used as a strategy for data placement; when the IO pattern is a data-hot-degree IO pattern, a strategy for performing partition storage for hot data and cold data may be determined to be used as a strategy for data placement. For example, hot data is placed in the same physical block, and cold data is placed in a different physical block. Additionally, when the IO pattern is a sequential-write IO pattern, a strategy of writing data to a low-cost flash memory unit may be introduced. For example, data is written to a Multi-Level Cell (MLC). Additionally, when the IO pattern is a random-write IO pattern, a strategy of writing data to a high-speed flash memory unit may be introduced. For example, data is written as an SLC (Single-Level Cell).

[0054] In some exemplary embodiments, when a change in the optimization target is detected, a preset, or alternatively, desired, time period is updated, and workload metric data for the updated preset, or alternatively, desired, time period is obtained, then a machine learning model and training data strategy are selected according to the changed optimization target, and feature data is selected to retrain the re-selected machine learning model according to the re-selected training data strategy from the workload metric data for the updated preset, or alternatively, desired, time period, and thus a strategy for data placement is determined by using the re-trained machine learning model at each subsequent prediction time. In other words, when a change in the optimization target is detected, the method is reevaluated and reconstructed to adapt to the changed optimization target.

[0055] A method for determining a strategy for data placement within an SSD according to exemplary embodiments has been described with reference to FIG. 3. Below, an apparatus and its units for determining a strategy for data placement within an SSD according to exemplary embodiments will be described with reference to FIG. 4.

[0056] FIG. 4 illustrates a block diagram of a device for determining a strategy for data placement within an SSD according to exemplary embodiments. The device for determining a strategy for data placement within an SSD may be included within the SSD or may be located within an electronic device connected to the SSD.

[0057] Referring to FIG. 4, a device for determining a strategy for data placement within an SSD may be a processor (400) comprising a data collection unit (40), a data acquisition unit (41), a selection unit (42), a model training unit (43), a retraining unit (431), and / or a strategy determination unit (44).

[0058] The data acquisition unit (41) may be configured to acquire workload metric data that has been pre-collected for an optimization target and a preset, or alternatively, a desired time period.

[0059] In some exemplary embodiments, the optimization target may include at least one of write performance, NAND flash lifetime, and / or read latency.

[0060] In some exemplary embodiments, the device for determining a strategy for data placement within the SSD may further include a data collection unit (40) configured to collect workload data in real time to obtain current workload data.

[0061] The selection unit (42) is configured to select machine learning models and training data strategies according to the optimization target.

[0062] In some exemplary embodiments, the selection unit (42) may be configured to select a training data strategy for write performance optimization when the optimized target, which is preset or alternatively desired, is write performance, wherein the write performance optimization training data strategy includes selecting at least one of an IO size, an IO count, an IO access interval, and / or a write amplification factor as feature data for training from workload metric data; when the optimized target, which is preset or alternatively desired, is NAND flash lifespan, the selection unit selects a training data strategy for NAND flash lifespan optimization, wherein the training data strategy for NAND flash lifespan optimization includes selecting at least a block erase count as feature data for training from workload metric data; and when the optimized target, which is preset or alternatively desired, is read latency, the selection unit selects a training data strategy for read latency optimization, wherein the training data strategy for read latency optimization includes selecting at least one of an IO size, an IO count, and / or read latency as feature data for training from workload metric data.

[0063] The model training unit (43) can be configured to select feature data from workload metric data according to a training data strategy selected for a preset, or alternatively, desired, time period, and to train the selected machine learning model based on the selected feature data.

[0064] The strategy decision unit (44) may be configured to determine, for each subsequent prediction time, a strategy for data placement for a prediction time period corresponding to the prediction time, based on workload metric data collected within the prediction time by using a preset, or alternatively, workload metric data and a trained machine learning model for a desired time period.

[0065] In some exemplary embodiments, the strategy decision unit (44) may be configured to predict an IO pattern based on workload metric data collected within the current prediction time by using a preset, or alternatively, workload metric data and a trained machine learning model for a desired time period; and to determine a strategy for data placement for a prediction time period corresponding to the current prediction time based on the predicted IO pattern.

[0066] In some exemplary embodiments, the types of IO patterns may include at least read-intensive IO patterns, write-intensive IO patterns, data-hot-degree IO patterns, sequential-write IO patterns, and / or random-write IO patterns.

[0067] In some exemplary embodiments, the strategy decision unit (44) may be further configured to select a round-robin strategy as a strategy for data placement when the IO pattern is a read-intensive IO pattern; to select a strip strategy as a strategy for data placement when the IO pattern is a write-intensive IO pattern; to select a strategy for performing partition storage for hot data and cold data as a strategy for data placement when the IO pattern is a data-temperature-degree IO pattern; to adopt a strategy for writing data to a low-cost flash memory unit as a strategy for data placement when the IO pattern is a sequential-write IO pattern; and to adopt a strategy for writing data to a high-speed flash memory unit as a strategy for data placement when the IO pattern is a random-write IO pattern, thereby improving the accuracy of the strategy for data placement.

[0068] In some exemplary embodiments, the device for determining a strategy for data placement within an SSD may further include a re-training unit (431), which, when a change in the optimization target is detected, updates a preset, or alternatively, desired, time period and obtains workload metric data for the updated preset, or alternatively, desired, time period; selects a machine learning model and a training data strategy according to the changed optimization target; and is configured to select feature data according to the re-selected training data strategy from the workload metric data for the updated preset, or alternatively, desired, time period in order to re-train the re-selected machine learning model, so that the strategy for data placement is determined by using the re-trained machine learning model for each subsequent prediction time.

[0069] This allows SSDs to optimize performance in various workload environments, thereby enabling dynamic determination of data placement strategies and improving the accuracy of data placement strategies.

[0070] In some exemplary embodiments, the device for determining a strategy for data placement within an SSD may further include an execution unit (45) configured to execute the determined strategy for data placement. The execution unit (45) takes write data inputs during a time period or an updated time period and causes the SSD to place the data of the write data inputs into channels determined by the strategy for data placement. In some embodiments, the execution unit (45) may execute a flash conversion layer to write the data of the write data inputs to the SSD based on the determined strategy for data placement. In some exemplary embodiments, writing data based on the strategy for data placement may improve the performance of the memory device (e.g., SSD) by improving the write speed or read speed. In some exemplary embodiments, the improvement will be based on optimization targets.

[0071] Additionally, according to some exemplary embodiments, a computer-readable storage medium may be provided with a computer program, and when the computer program is executed by a processor, a method for determining a strategy for data placement within an SSD according to the present disclosure is implemented.

[0072] In some exemplary embodiments, a computer-readable storage medium may carry (handle) one or more programs, and when the programs are executed, the following operations may be implemented: acquiring an optimization target and pre-collected workload metric data for a preset, or alternatively, a desired time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the pre-set, or alternatively, workload metric data for a desired time period according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for a prediction time period corresponding to the prediction time according to the workload metric data collected within the prediction time by using the pre-set, or alternatively, workload metric data for a desired time period and the trained machine learning model.

[0073] A computer-readable medium may be, for example, an electronic, magnetic, optical, electric, infrared, or semiconductor system, device, or equipment, or any combination of those described above, but is not limited thereto. Specific examples of a computer-readable storage medium may include, but are not limited to, electrical connections having one or more conductors, portable computer disks, hard disks, random access memory (RAM), ROM (read only memory), EPROM (erasable programmable read only memory; or flash memory), optical fiber, portable CD-ROM (compact disk read only memory), optical storage medium, magnetic storage medium, or any suitable combination of those described above. In exemplary embodiments, the computer-readable medium may be any tangible medium capable of containing or storing a computer program using temporary or non-temporary memory and capable of being used by or in association with an instruction execution system, device, or equipment. A computer program embodied on a computer-readable storage medium may be transmitted by any suitable medium, such as but not limited to conductors, fiber optic cables, RF (Radio Frequency), or any suitable combination of the above. The computer-readable storage medium may be included in any device; it may also exist separately without being merged into the device.

[0074] Additionally, according to exemplary embodiments, an SSD is provided, the SSD comprises memory cells; a control chip, or alternatively, a processor, and the control chip acquires an optimization target and pre-collected workload metric data for a preset, or alternatively, desired time period; selects a machine learning model and a training data strategy according to the optimization target; selects feature data from the workload metric data for the preset, or alternatively, desired time period according to the selected training data strategy, and trains the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determines a strategy for data placement for the prediction time period corresponding to the prediction time according to the workload metric data collected within the prediction time, using the workload metric data for the preset, or alternatively, desired time period and the trained machine learning model.

[0075] An apparatus for determining a strategy for data placement within an SSD according to exemplary embodiments has been described with reference to FIG. 4. Below, a computing apparatus according to exemplary embodiments will be described with reference to FIG. 5.

[0076] FIG. 5 illustrates a schematic diagram of a computing device according to an exemplary embodiment.

[0077] Referring to FIG. 5, a computing device (5) according to some exemplary embodiments may include memory (51) and / or a processor (52), and a computer program may be stored in memory (51), and when the computer program is executed by the processor (52), a method for determining a strategy for data placement in an SSD according to the present disclosure is implemented.

[0078] In some exemplary embodiments, when a computer program is executed by a processor (52), the following operations may be implemented: acquiring an optimization target and pre-collected workload metric data for a preset, or alternatively, desired time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the preset, or alternatively, workload metric data for a desired time period according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for a prediction time period corresponding to the prediction time according to the workload metric data collected within the prediction time by using the preset, or alternatively, workload metric data for a desired time period and the trained machine learning model.

[0079] The computing device (5) may be implemented in a processing circuit with hardware such as a hardware / software combination as shown in FIG. 5, or logic circuits, or a combination thereof. For example, the computing device (5) may include, more specifically, a Central Processing Unit (CPU), an Arithmetic Logic Unit (ALU), a digital signal processor, a microcomputer, a Field Programmable Gate Array (FPGA), a System-on-Chip (SoC), a programmable logic device, a microprocessor, an application-specific integrated circuit (ASIC), but is not limited thereto.

[0080] The computing device (5) of the exemplary embodiments may include, but is not limited to, memory devices (SSD, etc.), mobile phones, notebook computers, PDAs (Personal Digital Assistants), tablet PCs (PADs), desktop computers, etc. The computing device (5) illustrated in FIG. 5 is merely an example and should not be used to limit the scope of use and functions of the embodiments.

[0081] A method and apparatus for determining a strategy for data placement within an SSD according to some exemplary embodiments have been described with reference to FIGS. 3 through 5. However, it should be understood that the apparatus for determining a strategy for data placement within an SSD and the units illustrated in FIG. 4 may be implemented in any suitable hardware, hardware and software, hardware firmware, etc., or a combination thereof or any combination thereof to perform a specific function. The computing device (5) illustrated in FIG. 5 is not limited to including the components described above, but some components may be added or removed as needed, and the components described above may also be combined.

[0082] According to exemplary embodiments, an apparatus and method for determining a strategy for data placement within an SSD comprises: acquiring an optimization target and pre-collected workload metric data for a preset, or alternatively, desired time period; selecting a machine learning model and a training data strategy according to the optimization target, selecting feature data from the workload metric data for the preset, or alternatively, desired time period according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for the prediction time period corresponding to the prediction time according to the workload metric data collected within the prediction time by using the pre-collected, or alternatively, workload metric data for the desired time period and the trained machine learning model, thereby enabling the SSD to optimize performance in various workload environments.

[0083] Although the present disclosure has been illustrated and described with reference to specific exemplary embodiments, it should be understood by those skilled in the art that various modifications in form and detail may be made without separation from the principles and essence defined by the appended claims. Explanation of the symbols

[0084] 400: Processor 5: Computing device

Claims

Claim 1 A method for determining a strategy for data placement within an SSD (Solid State Drive) comprises: acquiring first workload metric data collected in advance for an optimization target and a time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the first workload metric data according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for each subsequent prediction time, determining a strategy for data placement for a prediction time period corresponding to the prediction time, according to second workload metric data collected within the prediction time, by using the first workload metric data for the time period and the trained machine learning model, wherein the step of determining the strategy for data placement for the prediction time period corresponding to the prediction time includes: predicting an IO (Input / Output) pattern by using the trained machine learning model according to the first workload metric data for the time period and third workload metric data collected within the current prediction time; and, according to the predicted IO pattern, within the prediction time period corresponding to the current prediction time, the The method comprises the step of determining the strategy for data placement, wherein the types of the IO patterns include a read-intensive IO pattern, a write-intensive IO pattern, a data-hot-degree IO pattern, a sequential-write IO pattern, and a random-write IO pattern; the method comprises: the step of determining to use a Round-Robin strategy as the strategy for data placement based on the fact that the predicted IO pattern is the read-intensive IO pattern; and the step of determining to use a strip strategy as the strategy for data placement based on the fact that the predicted IO pattern is the write-intensive IO pattern.A method further comprising: a step of deciding to use a strategy to perform partition storage on hot data and cold data based on the fact that the predicted IO pattern is the data-hot-degree IO pattern; a step of adopting a strategy to write data to a low-cost flash memory unit based on the fact that the predicted IO pattern is the sequential-write IO pattern; and a step of adopting a strategy to write data to a high-speed flash memory unit based on the fact that the predicted IO pattern is the random-write IO pattern.; Claim 2 delete Claim 3 A method according to claim 1, wherein the optimization target includes at least one of write performance, NAND flash lifetime, or read delay. Claim 4 A method according to claim 1, further comprising: updating the time period and obtaining third workload metric data for the updated time period based on detecting a change in the optimization target; reselecting the machine learning model and the training data strategy according to the changed optimization target; and reselecting the feature data according to the reselected training data strategy from the third workload metric data for the updated time period to determine the strategy for the data placement by using the reselected machine learning model at each of the subsequent prediction times by retraining the reselected machine learning model. Claim 5 An apparatus for determining a strategy for data placement within a Solid State Drive (SSD), comprising: a processor, wherein the processor: acquires first workload metric data pre-collected for an optimization target and a time period; selects a machine learning model and a training data strategy according to the optimization target; selects feature data from the first workload metric data for the time period according to the selected training data strategy, and trains the selected machine learning model based on the selected feature data; for each subsequent prediction time, determines a strategy for data placement for a prediction time period corresponding to the prediction time based on second workload metric data collected within the prediction time by using the first workload metric data for the time period and the trained machine learning model, and predicts an IO (Input / Output) pattern by using the trained machine learning model based on the first workload metric data for the time period and third workload metric data collected within the current prediction time; And, according to the above-mentioned predicted IO pattern, determine the strategy for data placement within the above-mentioned predicted time period corresponding to the above-mentioned current predicted time, wherein the types of the above-mentioned IO pattern include a read-intensive IO pattern, a write-intensive IO pattern, a data-hot-degree IO pattern, a sequential-write IO pattern, and a random-write IO pattern, and the processor: determines to use a Round-Robin strategy as the strategy for data placement based on the fact that the above-mentioned IO pattern is the read-intensive IO pattern; determines to use a strip strategy as the strategy for data placement based on the fact that the above-mentioned IO pattern is the write-intensive IO pattern;A device that decides to use a strategy to perform partition storage on hot data and cold data based on the fact that the predicted IO pattern is the data-hot-degree IO pattern; adopts a strategy to write data to a low-cost flash memory unit based on the fact that the predicted IO pattern is the sequential-write IO pattern; and adopts a strategy to write data to a high-speed flash memory unit based on the fact that the predicted IO pattern is the random-write IO pattern. Claim 6 In claim 5, the optimization target comprises at least one of write performance, NAND flash life, or read latency. Claim 7 delete Claim 8 delete Claim 9 In an SSD (Solid State Drive), the SSD comprises: memory cells that store computer-readable instructions; and a processor, wherein the processor comprises: acquiring first workload metric data pre-collected for an optimization target and a time period; selecting a machine learning model and a training data strategy according to the optimization target; selecting feature data from the first workload metric data for the time period according to the selected training data strategy, and training the selected machine learning model based on the selected feature data; and for a plurality of subsequent prediction time periods, the processor is configured to execute computer-readable instructions to determine a strategy for data placement for any one of the plurality of subsequent prediction time periods according to second workload metric data collected in any one of the plurality of subsequent prediction time periods by using the first workload metric data for the time period and the trained machine learning model, and predict an IO (Input / Output) pattern by using the trained machine learning model according to the first workload metric data for the time period and third workload metric data collected within the current prediction time; And, according to the above-mentioned predicted IO pattern, determine the strategy for data placement within the above-mentioned predicted time period corresponding to the above-mentioned current predicted time, wherein the types of the above-mentioned IO pattern include read-intensive IO patterns, write-intensive IO patterns, data-hot-degree IO patterns, sequential-write IO patterns, and random-write IO patterns, and the processor: determines to use a Round-Robin strategy as the strategy for data placement based on the fact that the above-mentioned predicted IO pattern is the read-intensive IO pattern;An SSD that decides to use a strip strategy as the strategy for data placement based on the fact that the predicted IO pattern is the write-intensive IO pattern; decides to use a strategy to perform partition storage on hot and cold data based on the fact that the predicted IO pattern is the data-hot-degree IO pattern; adopts a strategy to write data to a low-cost flash memory unit based on the fact that the predicted IO pattern is the sequential-write IO pattern; and adopts a strategy to write data to a high-speed flash memory unit based on the fact that the predicted IO pattern is the random-write IO pattern. Claim 10 In claim 9, the processor is further configured to write data based on a strategy for the determined data placement, in an SSD.

Citation Information

Patent Citations

  • Online Flash Resource Allocation Manager Based on a TCO Model

    KR1020170020257A

  • Method and apparatus for adaptive cache load balancing for SSD-based cloud computing storage system

    KR1020190084203A

  • Managing data placement on flash-based storage by use

    US20120317337A1

  • Implementing reinforcement learning based flash control

    US20140359197A1

  • Attribute collection and tenant selection for on-boarding to a workload

    US20180365077A1