CN112424742A - SSD data reading method and device - Google Patents

SSD data reading method and device Download PDF

Info

Publication number
CN112424742A
CN112424742A CN201880095631.2A CN201880095631A CN112424742A CN 112424742 A CN112424742 A CN 112424742A CN 201880095631 A CN201880095631 A CN 201880095631A CN 112424742 A CN112424742 A CN 112424742A
Authority
CN
China
Prior art keywords
data
data recovery
ssd
recovery step
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880095631.2A
Other languages
Chinese (zh)
Other versions
CN112424742B (en
Inventor
周冠锋
黄锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112424742A publication Critical patent/CN112424742A/en
Application granted granted Critical
Publication of CN112424742B publication Critical patent/CN112424742B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

A method and a device for recovering SSD data belong to the technical field of computers. The SSD data recovery method comprises the following steps: receiving a data reading command; reading data according to the data reading command; and selecting the executable data recovery steps to recover the data based on the remaining allowable stay time of the data reading command in the SSD and the expected execution time of each data recovery step. The data recovery method comprises the steps of marking a timestamp on a data reading command in advance, and selectively executing different steps of a data recovery process according to the remaining staying time, so that the aims of prolonging the command response time, shortening the data recovery time and reducing the long tail delay (long tail latency) are fulfilled.

Description

SSD data reading method and device Technical Field
The invention relates to the technical field of computers, in particular to the technical field of data storage.
Background
With the large-scale development of information technology, the global demand for computing and storage is higher and higher. SSD (Solid State Drive) is widely accepted by the storage market due to its characteristics of high performance, low latency and low power consumption relative to conventional hard disks. The SSD is a hard disk made of an array of solid-state electronic memory chips, and is composed of a main control unit and a memory unit. The memory cells may typically be FLASH chips or DRAM chips. The SSD solid state Disk using the solid state electronic memory chip array for storage can greatly reduce the time delay of a storage system, and can obtain much higher reliability than an HDD (Hard Disk drive) because the SSD does not need a mechanical structure required by the HDD. On one hand, under the same capacity, the SSD can obtain hundreds of times of IOPS and bandwidth performance improvement higher than that of the HDD; on the other hand, under the same performance, the SSD also only needs much lower capacity and power consumption than the HDD, and saves a large amount of precious machine room space.
In SSD applications, there is a "Long Tail Latency" (Long Tail Latency) in addition to the average Latency. The long tail delay means that there is a very small proportion of the IO in the SSD, and the response time is much longer than the average response time, which is generally expressed by percentage delay, for example, 99% IO Latency <200us, and the response time of 1 IO reaches 200us in every 100 IO. Since such applications like databases are delay sensitive, long tail delays will cause performance fluctuations for such applications.
The long tail delay comes from many sources, including data read command scheduling in SSD, command scheduling on back-end storage unit, data recovery on storage unit, command collision on back-end storage unit such as Flash, etc.
The problem of long tail delay in the data recovery process is particularly obvious, the NandFlash develops from the 2D era to the 3D era, the data error condition is more and more, the data recovery methods are more and more, and if the data recovery methods are completely executed, the consumed time is considerable. Taking Toshiba BiCS3 Flash as an example, the data recovery method comprises three methods of Shift-Read + LDPC HardDecoding/LDPC SoftDecoding, Read Retry + LDPC HardDecoding and RAID. Taking a specific implementation of a SSD as an example, a complete recovery process of Toshiba BiCS3 includes Shift-Read + LDPC HardDecoding/LDPC SoftDecoding for 4 times at maximum, Read Retry + LDPC HardDecoding for 39 times, and RAID for 1 time. If the recovery flow is performed completely, the total time is about 4 × 100us +39 × 100us +100us — 4.4 ms.
After the third-party device sends an IO read command to the SSD, firstly, command scheduling needs to be performed in the SSD, the command enters a sequencing queue to wait for being scheduled and executed, and finally data is scheduled out from the queue to be acquired from Cache or Flash in the SSD.
Disclosure of Invention
The prior art proposes various methods to solve the above command scheduling/command conflict, including read cache/command reordering based on timestamp/command rescheduling in case of command conflict on Flash, etc., but no solution has been found for the influence on long tail delay in the "data recovery of storage unit" process.
The embodiment of the invention provides an SSD data reading method and device, wherein a timestamp is printed on an IO command in advance, and different steps of a data recovery process are selectively executed according to the remaining staying time of the IO command when the data recovery process is started, so that the aims of controlling the upper limit of the IO delay and reducing the long tail delay (long tail latency) are fulfilled.
In an embodiment of the present application, in one aspect, a method for reading SSD data is provided, where the method includes: the main control unit receives a data reading command, and reads data from the storage unit according to the reading command; calculating the remaining available dwell time TimeBudge of the data reading command; and the main control unit selects the executable data recovery steps to recover the data based on the TimeBudge of the data reading command and the expected execution time TimeCredit of each data recovery step in the SSD.
Optionally, the TimeBudget is a difference between an upper limit of the allowed retention time of the data read command in the SSD and a retention time of the read command in the SSD; the TimeCredit is the expected execution time of the data recovery step.
Optionally, the number of the data recovery steps is one or more.
Optionally, the data recovery steps are independent relations.
Optionally, the data recovery steps in the data recovery steps are the same.
Optionally, the selecting, by the main control unit, an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step in the SSD to perform data recovery includes: and comparing the TimeCredit of each step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and when the TimeBudge of the data reading command is smaller than the TimeCredit of the compared data recovery step, continuing to compare the TimeCredit of the next step with the TimeBudge of the data reading command.
Optionally, the selecting, by the main control unit, an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step in the SSD to perform data recovery includes: and comparing the TimeCredit of each step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executing the data recovery step when the TimeBudge of the data reading command is greater than the TimeCredit of the compared data recovery step.
Optionally, when the TimeBudget of the data read command is greater than the TimeCredit of the compared data recovery step, the data recovery step is executed, including: and when the execution result is that the data recovery is successful, returning a success state as the response of the data reading command.
Optionally, when the TimeBudget of the data read command is greater than the TimeCredit of the compared data recovery step, the data recovery step is executed, including: and when the execution result is that the data recovery fails, recalculating the TimeBudge, and continuously comparing the TimeCredit of the next data recovery step in the preset execution sequence with the recalculated TimeBudge.
Optionally, when the data recovery execution result is that data recovery fails, the TimeBudget is recalculated, and the TimeBudget of the next step in the predetermined execution sequence and the recalculated TimeBudget are continuously compared, and when the TimeBudget of the compared step is greater than or equal to the TimeBudget of the data read command, the TimeBudget of the next data recovery step in the predetermined execution sequence and the TimeBudget of the data read command are continuously compared.
Optionally, when the data recovery execution result is that data recovery fails, the TimeBudget is recalculated, the TimeBudget of the next step in the predetermined sequence is continuously compared with the recalculated TimeBudget, and when the TimeBudget of the compared step is smaller than the TimeBudget of the data reading command, the next data recovery step is executed.
Optionally, the comparing the TimeCredit of each step with the TimeBudget of the data read command according to the predetermined execution sequence order among the recovery steps includes: and when the last step is compared and the TimeCredit of the last step is greater than the TimeBudge of the data reading command, returning a failure + Retry response.
Optionally, the comparing the TimeCredit of each data recovery step with the TimeBudget of the data read command according to the execution sequence predetermined for each data recovery step includes: and when the last data recovery step is compared and the TimeCredit of the last data recovery step is smaller than the TimeBudge of the data reading command, executing the last data recovery step.
Optionally, the last data recovery step is executed, and when the execution result is a data recovery failure, it is determined whether all the data recovery steps have been traversed, and if so, a failure state is returned as the data read command response.
Optionally, the last data recovery step is executed, when the execution result is that data recovery fails, whether all steps have been traversed is determined, and if not, a Retry state is returned as the data read command response.
Optionally, the TimeCredit is an expected execution time of the data recovery step, and includes: different data recovery steps have different timecredits.
In an embodiment of the present application, in another aspect, an SSD master control device is provided, which includes: the device comprises a third-party device interface module, a data reading module and a data recovery module; the third-party equipment interface module is used for receiving a reading command and sending the data reading command to the data reading module; the data reading module is used for receiving the data reading command from the third-party equipment interface module, reading data from a storage unit of the SSD based on the data reading command, and sending the data to the data recovery module; the data recovery module is configured to receive the data sent by the data reading module, obtain a TimeBudget of the data reading command by calculating a difference between an upper limit of an allowed retention time of the data reading command in the SSD and a retention time of the data reading command in the SSD, and select an executable data recovery step based on the TimeBudget of the data reading command and TimeBudget of each data recovery step preset in the SSD to recover the read data; the SSD master control device is provided with one or more data recovery steps; the TimeCredit is the expected execution time of the data recovery step.
Optionally, the data recovery module selects an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data, and includes: and the data recovery module compares the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and when the TimeCredit of the compared step is greater than the TimeBudge of the data reading command, the TimeCredit of the next data recovery step and the TimeBudge of the data reading command are continuously compared.
Optionally, the data recovery module selects an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data, and includes: and the data recovery module compares the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executes the data recovery step to recover the data when the compared TimeCredit of the data recovery step is smaller than the TimeBudge of the data reading command.
In another aspect, the present invention provides an SSD including: the device comprises a main control unit and a storage unit; the main control unit is used for receiving a data reading command and reading data from the storage unit according to the data reading command; calculating the difference between the upper limit of the allowed stay time of the data reading command in the SSD and the stay time of the data reading command in the SSD to obtain the TimeBudge of the data reading command; selecting an executable data recovery step based on the TimeBudge of the data reading command and the TimeCredit of each data recovery step preset in the main control unit to recover the read data; wherein, one or more data recovery steps are preset in the main control unit; the storage unit is used for sending the data read according to the data reading command to the main control unit; the TimeCredit is the expected execution time of the data recovery step.
Optionally, the selecting, by the main control unit, an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data includes: and when the main control unit judges that the TimeCredit of the compared step is greater than the TimeBudge of the data reading command, the main control unit continuously compares the TimeCredit of the next data recovery step with the TimeBudge of the data reading command.
Optionally, the selecting an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data includes: and the main control unit compares the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executes the data recovery step to recover the data when the main control unit judges that the TimeCredit of the compared data recovery step is smaller than the TimeBudge of the data reading command.
Optionally, when the main control unit determines that the TimeCredit of the compared step is smaller than the TimeBudget of the data read command, the data recovery step is executed to perform data recovery, and the step further includes: and when the execution result is that the data recovery fails, recalculating the TimeBudge, continuously comparing the TimeCredit of the next step in the preset sequence with the recalculated TimeBudge, and when the TimeCredit of the compared step is greater than or equal to the TimeBudge of the data reading command, continuously comparing the TimeCredit of the next step with the TimeBudge of the data reading command.
Optionally, when the result of the data recovery performed by the main control unit is that data recovery fails, the main control unit recalculates the TimeBudget, and continues to determine whether to perform the next data recovery step according to the TimeCredit of the next data recovery step in the predetermined sequence and the recalculated TimeBudget.
According to the embodiment of the application, the timestamp is printed on the IO reading command in advance, and when the data recovery flow is started, different steps of the data recovery flow are selectively executed according to the remaining staying time of the IO command, so that the purposes of controlling the IO delay upper limit and reducing the long tail delay (long tail delay) in the data reading process of the SSD are achieved.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments or the background art of the present application, the drawings required to be used in the embodiments or the background art of the present application will be described below.
Fig. 1 shows a flow of an SSD data read method in an embodiment of the invention;
FIG. 2 illustrates an SSD example in an embodiment of the present invention;
FIG. 3 shows a SSD master control unit structure in an embodiment of the invention;
FIG. 4 shows a SSD data recovery method flow in an embodiment of the invention;
FIG. 5 shows another SSD data recovery method flow in an embodiment of the invention.
Detailed Description
In the prior art, the processing for reducing the long tail delay is mainly focused on the front-end and back-end command scheduling of the SSD at present, but the embodiment of the invention mainly aims at improving the Flash recovery process to reduce the long tail delay. In order to facilitate understanding of the invention, some relevant parameters in the embodiments of the present invention are described below.
Global clock: a global clock is usually maintained in an SSD, which is essentially a counter whose value increases with time, saturates when the count reaches a maximum value and automatically returns to zero to recount, and whose count value range ensures that it does not return to zero twice due to saturation of the value within the maximum delay of an IO command. For example: the maximum clock value range may be taken to be 120 seconds.
Time stamping: when an IO command sent by a third-party device is received by the SSD, the IO command is usually tagged with a "timestamp" that is actually the global clock value at the time the command was received. This timestamp information will accompany the entire lifecycle of the IO command execution within the SSD.
Current dwell time: the difference between the current real-time global clock value and the timestamp is the residence time of the command in the SSD.
Command upper dwell time limit: there is also an upper limit of allowable command residence time for IO commands in SSD, i.e. the maximum time that an IO command can stay in SSD, beyond which time the command cannot be executed.
TimeBudge: the TimeBudget is the remaining staying time of the IO command in the SSD, and may be obtained by calculating a difference between the upper limit of the staying time of the IO command and the "staying time" of the command in the SSD, or may be obtained in other various manners, such as by obtaining a global clock value, a timestamp, and the upper limit of the staying time of the command, or by obtaining the time by using a timer.
TimeCredit: the SSD generally includes a main control unit and a storage unit, wherein the main control unit recovers data read from the storage unit, and a recovery process of the data is divided into a plurality of recovery steps that can be executed independently. These recovery steps differ depending on the storage unit or SSD. For example, for BiCS3 Flash of Toshiba, the data recovery flow can be divided into 3 steps that can be performed independently: offset 1 Shift-Read + LDPC HardDecoding/SoftDecoding; step 2, Read Retry + LDPC HardDecoding; and step 3: RAID Recovery. The steps and specific execution contents of the data recovery process are different for different SSDs, which is not exemplified herein. The SSD typically sets the expected required execution time for each recovery step in advance, referred to as the TimeCredit for that step. The TimeCredit of different steps may be the same or different.
Fig. 1 is a flowchart of an SSD data reading method according to an embodiment of the present invention:
s101: a data read command is received.
Specifically, the SSD receives a data read command from an external third party device, and the data read command may be received by the main control unit in the SSD first. The third-party device may be any device that requires data reading, such as a host device, a terminal device, and the like.
S102: data is read from the memory cells.
The data reading method in the SSD may be various, for example, the reading process may be that the main control unit searches, according to the data reading command, a physical address of a storage unit in the storage unit where the data to be read by the data reading command is located, and constructs the data reading command including the physical address; and sending the data reading command comprising the physical address to a storage unit after scheduling, and acquiring the data to be read from the storage unit.
S103: calculating the TimeBudge of the data reading command; and selecting an executable data recovery step based on the TimeBudge of the data reading command and the TimeCredit of each data recovery step to recover the data.
The main control unit performs data recovery on the data read from the storage unit, so as to recover and obtain correct data without bit errors. Usually, there are one or more data recovery steps in the master control unit, which can be executed independently, and the execution contents of these data recovery steps may be different and there is a fixed execution sequence.
S104: and sending the data.
The SSD performs data recovery on the read data in S103, and transmits the correct data obtained by the recovery to the third party device. Data which is normally successfully recovered is sent to the third party device together with the command response; if the data recovery fails, the data is not returned, and other command responses are usually returned to inform a third-party device that the data reading fails, wherein the common responses include a failure response. In some cases, the failure responses are divided into failure + Retry responses and failure + NOT Retry responses. The fail + Retry response is used to indicate that a third party device may retransmit the data read command again; the fail + NOT RETRY response is used to indicate that the third party device does NOT have to resend the data read command again.
The main control unit calculates the TimeBudge of the data reading command; the specific steps of selecting the executable data recovery step to recover the data based on the TimeBudget of the data read command and the TimeCredit of each data recovery step may be as shown in fig. 4:
s401, first, calculate the current TimeBudget of the read command.
After the main control unit reads the data from the storage unit, the remaining staying time of the data read command corresponding to the read data in the SSD at the moment, namely the current TimeBudge of the read command, is calculated.
S402, comparing the TimeBudge of the read command obtained by calculation with the TimeCredit1 of the first data recovery step in the SSD according to the execution sequence specified in the SSD.
Different data recovery steps may correspond to different timecredits, where the expected required execution time TimeCredit for the first data recovery step in the execution order in SSD is denoted TimeCredit1, the expected required execution time TimeCredit for the second data recovery step is denoted TimeCredit2, and so on.
S403, if the result of comparing the timecreate and the timecreate in the first data recovery step is that the timecreate is not greater than the timecreate, or the result of data recovery in the first data recovery step is failure, continuing to compare the timecreate 2 and the timecreate in the second data recovery step in sequence.
If the TimeBudget of the data reading command is not greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD is not sufficient to complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is not satisfied, and if the TimeBudget of the data reading command is greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD can complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is satisfied.
If the data recovery result of the first data recovery step is failure, the TimeBudget of the data read command needs to be recalculated, and then the TimeCredit2 of the second recovery step is compared with the TimeBudget.
S404, if the result of comparing the TimeBudget of the second data recovery step with the TimeBudget of the data read command is that the TimeBudget is not greater than the TimeBudget, or the result of data recovery of the second data recovery step is failure, continuing to sequentially compare the TimeBudget of the next recovery step with the TimeBudget of the data read command, and if the comparison results are both unsatisfied with the execution condition, that is, the TimeBudget is not greater than the TimeBudget of any recovery step all the time, or the result of data recovery is failure, comparing until the last data recovery step, and comparing the TimeBudget n of the last recovery step with the data read command TimeBudget.
Like S403, in this step, when the comparison result of the previous data recovery step is that the execution condition is not met, it is not necessary to recalculate the TimeBudget of the data read command, and when the TimeBudget of the next data recovery step needs to be continuously compared with the TimeBudget of the data read command because the previous data recovery step fails to be executed, it is necessary to recalculate the TimeBudget of the data read command at this time.
S408, if the comparison result of S404 is that the TimeBudget is not greater than the TimeCreditN, the last data recovery step is not performed. At this time, since the main control unit does not execute all the data recovery steps or execute any data recovery steps and does not recover to obtain correct data without bit errors, a failure response, specifically, a failure + Retry response, may be returned to the third-party device at this time.
S4021, if the comparison result of S402 is that the TimeBudget of the data recovery command is greater than the TimeCredit1 of the first data recovery step, then the first data recovery step is executed.
S4022, if the data recovery in the first data recovery step of S4021 fails, recalculate the TimeBudget, and proceed to step S403.
S4031, if the result of the comparison in S403 is that the TimeBudget of the data recovery command is greater than the TimeCredit2 of the second data recovery step, the second data recovery step is executed.
S4032, if the data recovery in the second data recovery step in S4031 fails, recalculate the TimeBudget, and proceed to compare the TimeBudget with the TimeCredit of the next data recovery step.
S4041, if the comparison result of the last data recovery step is that the TimeBudget of the data recovery command is greater than the TimeCreditN of the last data recovery step, the last data recovery step is executed.
S405, if the data recovery in the last data recovery step N of S4041 fails, determining whether all data recovery steps have been executed in a traversal manner.
S407, if the result of the determination in S405 is that all the data recovery steps have been executed, a failure response is returned to the third-party device, which may specifically be a failure + NOT Retry response.
S408, if the result of the determination in S405 is that all the data recovery steps have not been executed in a traversal manner, a failure + RETRY response is returned to the third-party device.
S406, if the execution result of S4021, S4031, S4041 is successful, that is, the data recovery performed by any one of the executed data recovery steps is successful, a successful response is returned, and the recovered data is returned.
In the above data recovery process, the execution order of the data recovery steps may be set as required, where the data recovery steps may be partially the same, for example, the first data recovery step and the second data recovery step may be the same data recovery step, and a designer may expect that after a recovery failure, the recovery step may be repeatedly executed once or for a preset number of times, the execution is completed for a preset number of times, and the execution is unsuccessful, and then another recovery step is tried.
Fig. 5 is an exemplary diagram of continuously performing the same data recovery step, where the first data recovery step is the same as the second data recovery step, that is, when the first data recovery step fails to be performed, it is determined whether the same data recovery step can be performed again according to the recalculated TimeBudget. The specific execution method comprises the following steps:
s501, first, calculate the current TimeBudget of the read command.
After the main control unit reads the data from the storage unit, the remaining staying time of the data read command corresponding to the read data in the SSD at the moment, namely the current TimeBudge of the read command, is calculated.
S502, comparing the TimeBudge of the read command obtained by calculation with the TimeCredit1 of the first data recovery step in the SSD according to the execution sequence specified in the SSD.
Where different types of data recovery steps may correspond to different timecredits, where the first data recovery step and the second data recovery step in the execution order in SSD belong to the same recovery step, the expected required execution time TimeCredit is denoted TimeCredit 1.
S503, if the result of comparing the timecreate and the timecreate in the first data recovery step is that the timecreate is not greater than the timecreate, or the result of data recovery in the first data recovery step is failure, continuing to compare the timecreate 1 and the timecreate in the second data recovery step in sequence.
If the data recovery result of the first data recovery step is failure, the TimeBudget of the data read command needs to be recalculated, and then the TimeCredit1 of the second recovery step is compared with the TimeBudget.
If the result of comparing the timecreate and the timecreate in the first data recovery step is that the timecreate is not greater than the timecreate, and the second data recovery step is the same as the first data recovery step, it may also be determined whether the timecreate of the data read command satisfies the second data recovery step by comparing whether the two data recovery steps are the same, without comparing the timecreate 1 and the timecreate of the second data recovery step again.
S504, if the result of comparing the TimeCredit and the TimeBudge of the second data recovery step is that the TimeBudge is not greater than the TimeCredit, or the result of data recovery of the second data recovery step is failure, the TimeCredit2 and the TimeBudge of the third recovery step are continuously compared in sequence.
If the data recovery result of the second data recovery step is failure, the TimeBudget of the data read command needs to be recalculated, and then the TimeCredit2 of the third recovery step is compared with the TimeBudget.
And S505, if the comparison result of the TimeCredit of the third data recovery step and the TimeBudge of the data reading command is that the TimeBudge is not greater than the TimeCredit or the data recovery result of the third data recovery step is failure, continuing to sequentially compare the TimeCredit of the next recovery step and the TimeBudge of the data reading command, and if the comparison results are both unsatisfied with the execution conditions, namely the TimeBudge is not greater than the TimeCredit of any recovery step all the time, or the data recovery result is failure, comparing until the last data recovery step, and comparing the TimeCreditN of the last recovery step and the TimeBudge of the data reading command.
Like S504, in this step, when the comparison result of the previous data recovery step is that the execution condition is not met, it is not necessary to recalculate the TimeBudget of the data read command, and when the TimeBudget of the next data recovery step needs to be continuously compared with the TimeBudget of the data read command because the previous data recovery step fails to be executed, it is necessary to recalculate the TimeBudget of the data read command at this time.
S509, if the comparison result of S505 is that the TimeBudget is not greater than the TimeCreditN, the last data recovery step is not performed. At this time, since the main control unit does not execute all the data recovery steps or does not execute any data recovery steps and does not recover to obtain correct data without bit errors, a failure response, specifically, a failure + Retry response, may be returned to the third-party device at this time.
S5021, if the result of the comparison in S502 is that the TimeBudget of the data recovery command is greater than the TimeCredit1 of the first data recovery step, the first data recovery step is performed.
S5022, if the data recovery in the first data recovery step in S5021 fails, recalculate the TimeBudget, and proceed to step S503.
S5031, if the result of the comparison in S503 is that the TimeBudget of the data recovery command is greater than the TimeCredit1 of the second data recovery step, the second data recovery step is executed again.
S5032, if the result of the second data recovery step in S5031 is still a failure, recalculating the TimeBudget, and proceeding to determine and compare the TimeBudget with the TimeCredit of the third data recovery step.
S5041, if the result of the comparison in S504 is that the TimeBudget of the data recovery command is greater than the TimeCredit2 of the third data recovery step, then the third data recovery step is performed.
S5042, if the data recovery in the third data recovery step of S5041 fails, recalculating the TimeBudget, and proceeding to the TimeBudget of the next data recovery step for determining and comparing the TimeBudget with the TimeCredit of the next data recovery step.
S5051, if the comparison result of the last data recovery step is that the TimeBudget of the data recovery command is greater than the TimeCreditN of the last data recovery step, then the last data recovery step is executed.
S506, if the last data recovery step N of S5051 fails to perform data recovery, it is determined whether all data recovery steps have been traversed.
S508, if the result of the determination in S506 is that all data recovery steps have been executed, a failure response is returned to the third-party device, which may specifically be a failure + NOT Retry response.
S509, if the determination result of S506 is that all data recovery steps are not executed in a traversal manner, a failure + RETRY response is returned to the third-party device.
S507, if the execution result of S5021, S5031, S5041, S5051 is successful, that is, the data recovery performed by any one of the executed data recovery steps is successful, a success response is returned, and the recovered data is returned.
In the example of fig. 5, the same data recovery step is determined twice in succession, but fig. 5 is only one example, the number of times of the same data recovery step may be other values, and the execution position may be any other position, for example, at the execution positions of 3 rd and 4 th in the execution sequence of the data recovery step, the same data recovery step may also be discontinuous.
According to the embodiment of the application, the data reading command is stamped in advance, and when the data recovery process is started, different steps of the data recovery process are selectively executed according to the remaining staying time of the reading command, so that the purposes of controlling the upper limit of the reading command delay in the data reading process of the SSD, reducing unnecessary time consumption, improving the command response time and the data reading time and reducing the long tail delay (long tail latency) are achieved.
Fig. 2 is a structural diagram of an SSD according to an embodiment of the present invention, and the SSD200 may include a main control unit 201, a storage unit 202,. The storage unit 202 may be a Flash chip or a Dram chip, which may be various types of solid-state electronic devices.
The main control unit 201: for receiving a data read command from an external third-party device and reading data from the storage unit 202 according to the data read command; calculating the TimeBudge of the data reading command; and selecting an executable data recovery step for data recovery based on the TimeBudge of the data reading command and the TimeCredit of each data recovery step.
The storage unit 202 is configured to send data to be read to the main control unit 201.
There are various ways for the main control unit 201 to read data from the storage unit 202 according to the data read command, and the method is not limited herein. Generally, a physical address reading mode can be adopted, and the main mode is that the main control unit 201 receives a data reading command, searches a physical address of a storage unit in the storage unit 202 where data to be read by the data reading command is located according to the data reading command, and constructs the data reading command including the physical address; the data reading command including the physical address is scheduled and then sent to the storage unit 202, the data to be read is acquired from the storage unit 202, and then the main control unit 201 recovers the data read from the storage unit 202.
In the data reading process in the SSD, the storage unit 202 may receive a data reading command from the main control unit 201, the storage unit 202 reads data in the storage unit 202 according to the data reading command, stores the data in a buffer memory in the storage unit 202, the main control unit 201 reads the data in the buffer memory in the storage unit 202 to the main control unit 201, and then the main control unit 201 recovers the data read from the storage unit 202.
The specific data recovery process of the main control unit 201 recovering the read data may specifically be:
after the main control unit 201 reads the data from the storage unit, the remaining staying time of the data read command corresponding to the read data in the SSD at this time, that is, the current TimeBudget of the read command, is calculated.
The main control unit 201 compares the calculated TimeBudget of the read command with the TimeCredit1 of the first data recovery step in the SSD according to the execution sequence of the data recovery steps specified in the SSD; different data recovery steps may correspond to different timecredits, where the expected required execution time TimeCredit for the first data recovery step in the execution order in SSD is denoted TimeCredit1, the expected required execution time TimeCredit for the second data recovery step is denoted TimeCredit2, and so on.
If the result of comparing the timecreate and the timecreate in the first data recovery step is that the timecreate is not greater than the timecreate, or the result of data recovery in the first data recovery step is failure, the main control unit 201 continues to compare the timecreate 2 and the timecreate in the second data recovery step in sequence; if the TimeBudget of the data reading command is not greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD is not sufficient to complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is not satisfied, and if the TimeBudget of the data reading command is greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD can complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is satisfied.
If the data recovery result of the first data recovery step is failure, the main control unit 201 needs to recalculate the TimeBudget of the data read command, and then compare the TimeCredit2 of the second recovery step with the TimeBudget.
If the comparison result of the timecreate of the second data recovery step and the timecreate of the data read command is that the timecreate is not greater than the timecreate, or the data recovery result of the second data recovery step is failure, the main control unit 201 continues to sequentially compare the timecreate of the next recovery step and the timecreate of the data read command, and if the comparison results are both unsatisfied with the execution condition, that is, the timecreate is not greater than the timecreate of any recovery step all the time, or the data recovery result is failure, the main control unit 201 compares the timecreate of the last recovery step until the last data recovery step, and compares the timecreate n of the last recovery step and the data read command timecreate.
If the comparison result of the last data recovery step is that the TimeBudget is not greater than the TimeCreditN, the main control unit 201 does not execute the last data recovery step. At this time, since the main control unit does not execute all the data recovery steps or execute any data recovery steps, and does not recover to obtain correct data without bit error, at this time, the main control unit 201 may return a failure + Retry response to the third-party device.
If the comparison result of the last data recovery step is that the TimeBudget of the data recovery command is greater than the TimeCreditN of the last data recovery step, the main control unit 201 executes the last data recovery step; if the data recovery in the last data recovery step N fails, the main control unit 201 determines whether all data recovery steps have been executed in a traversal manner; if the judgment result is that all the data recovery steps are executed in a traversal mode, returning a failure + NOT RETRY response to the third-party equipment; if the determination result is that all data recovery steps are not executed in a traversal manner, the main control unit 201 returns a failure + RETRY response to the third-party device.
If the execution result of any data recovery step is successful, the main control unit 201 returns a successful response to the third-party device, and returns the recovered data.
In the above data recovery process, the execution order of the data recovery steps may be set as required, where the data recovery steps may be partially the same, for example, the first data recovery step and the second data recovery step may be the same data recovery step, and a designer may expect that after a recovery failure, the recovery step may be repeatedly executed once or for a preset number of times, the execution is completed for a preset number of times, and the execution is unsuccessful, and then another recovery step is tried.
In a specific data recovery process in which the main control unit 201 recovers the read data, there may be a case where some data recovery steps are data recovery steps of the same type.
According to the embodiment of the application, the data reading command is stamped in advance, and when the data recovery process is started, different steps of the data recovery process are selectively executed according to the remaining staying time of the reading command, so that the purposes of controlling the upper limit of the reading command delay in the data reading process of the SSD, reducing unnecessary time consumption, improving the command response time and the data reading time and reducing the long tail delay (long tail latency) are achieved.
Fig. 3 is a structural diagram of an SSD host apparatus according to an embodiment of the invention, wherein the SSD host apparatus 300 includes: a third party device interface module 301, a data reading module 302 and a data recovery module 303.
The third party device interface module 301 is configured to receive a data reading command from the third party device 310 and send the data reading command to the data reading module 302.
A data reading module 302, configured to receive a data reading command from a third-party device interface module, search, according to the data reading command, a physical address of a storage unit in a storage unit 320 where data to be read by the data reading command is located, and construct the data reading command including the physical address; the data read command including the physical address is scheduled and then sent to the storage unit 320, and the data to be read is acquired from the storage unit 320 and sent to the data recovery module 303.
The data recovery module 303 is configured to receive the read data from the storage unit 320 from the data reading module 302, calculate the TimeBudget of the data reading command, and select an executable data recovery step based on the TimeBudget of the data reading command and the TimeCredit of each data recovery step to perform data recovery. And returns corresponding command response, or command response and data, or other information related to the read result to the third-party device interface module 301 according to the specific data recovery step execution condition, and the third-party device interface module sends the command response, or command response and data to the third-party device. The returned information may specifically be: if the data recovery is successful, returning data and successful response, and if the data recovery is failed, returning different types of failed response according to specific conditions to refer to the result of data reading.
The specific data recovery process of the data in the data recovery module 303 is as follows:
the data recovery module 302 calculates the current TimeBudget for the data read command.
After the data recovery module 302 receives the data read from the storage unit 320 from the data reading module 303, the remaining staying time of the data read command corresponding to the read data in the SSD at this time, that is, the current TimeBudget of the read command, is calculated.
The data recovery module 302 compares the calculated TimeBudget of the read command with the TimeCredit1 of the first data recovery step in the SSD according to the execution sequence of the data recovery steps specified in the SSD; different data recovery steps may correspond to different timecredits, where the expected required execution time TimeCredit for the first data recovery step in the execution order in SSD is denoted TimeCredit1, the expected required execution time TimeCredit for the second data recovery step is denoted TimeCredit2, and so on.
If the result of comparing the timecreate and the timecreate in the first data recovery step is that the timecreate is not greater than the timecreate, or the result of data recovery in the first data recovery step is a failure, the data recovery module 302 continues to sequentially compare the timecreate 2 and the timecreate in the second data recovery step; if the TimeBudget of the data reading command is not greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD is not sufficient to complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is not satisfied, and if the TimeBudget of the data reading command is greater than the TimeBudget of a certain data recovery step, it indicates that the remaining dwell time of the current data reading command in the SSD can complete the data recovery step corresponding to the TimeBudget, that is, the execution condition of the current data recovery step is satisfied.
If the data recovery result of the first data recovery step is failure, the data recovery module 302 further needs to recalculate the TimeBudget of the data read command, and then perform the comparison between the TimeCredit2 and the TimeBudget of the second recovery step.
If the result of comparing the TimeBudget of the second data recovery step with the TimeBudget of the data read command is that the TimeBudget is not greater than the TimeBudget, or the result of data recovery of the second data recovery step is failure, the data recovery module 302 continues to sequentially compare the TimeBudget of the next recovery step with the TimeBudget of the data read command, and if the comparison results are both unsatisfied with the execution condition, that is, the TimeBudget is not greater than the TimeBudget of any recovery step all the time, or the result of data recovery is failure, the data recovery module 302 continues to compare the last data recovery step, and compares the TimeBudget n of the last recovery step with the data read command TimeBudget.
If the comparison result of the last data recovery step is that the TimeBudget is not greater than the TimeCreditN, the data recovery module 302 does not execute the last data recovery step. At this time, since the data recovery module 302 does not execute all the data recovery steps or execute any data recovery steps, and does not recover to obtain correct data without bit error, at this time, the data recovery module 302 may return a failure response, specifically, a failure + Retry response, to the third-party device 310 through the third-party device interface 301.
If the comparison result of the last data recovery step is that the TimeBudget of the data recovery command is greater than the TimeCreditN of the last data recovery step, the data recovery module 302 executes the last data recovery step; if the data recovery in the last data recovery step N fails, the data recovery module 302 determines whether all data recovery steps have been performed; if the determination result is that all the data recovery steps have been executed in a traversal manner, a failure response, specifically a failure + NOT Retry response, is returned to the third-party device 310 through the third-party device interface 301; if the determination result is that all data recovery steps are not executed in a traversal manner, the data recovery module 302 returns a failure + RETRY response to the third-party device 310 through the third-party device interface 301.
If the execution result of any data recovery step is successful, the data recovery module 302 returns a successful response to the third-party device 310 through the third-party device interface 301, and returns the recovered data.
In a specific data recovery process in which the data recovery module 302 recovers the read data, there may be a case where part of the data recovery steps are data recovery steps of the same type.
In the above data recovery process, the execution order of the data recovery steps may be set as required, where the data recovery steps may be partially the same, for example, the first data recovery step and the second data recovery step may be the same data recovery step, and a designer may expect that after a recovery failure, the recovery step may be repeatedly executed once or for a preset number of times, the execution is completed for a preset number of times, and the execution is unsuccessful, and then another recovery step is tried.
According to the embodiment of the application, the data reading command is stamped in advance, and when the data recovery process is started, different steps of the data recovery process are selectively executed according to the remaining staying time of the reading command, so that the purposes of controlling the upper limit of the reading command delay in the data reading process of the SSD, reducing unnecessary time consumption, improving the command response time and the data reading time and reducing the long tail delay (long tail latency) are achieved.
It will be apparent to those skilled in the art that various changes and modifications may be made in the embodiments of the present application without departing from the spirit and scope of the application. Thus, if such modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to encompass such modifications and variations.

Claims (13)

  1. A Solid State Disk (SSD) data recovery method is characterized by comprising the following steps:
    receiving a data reading command;
    reading data according to the data reading command;
    calculating the remaining staying time TimeBudge of the data reading command in the SSD;
    selecting an executable data recovery step to recover the read data based on the remaining staying time TimeBudge of the data reading command in the SSD and the expected execution time TimeCredit of each data recovery step preset in the SSD;
    wherein the SSD is preset with one or more data recovery steps.
  2. The method of claim 1, wherein the remaining staying time TimeBudge of the data read command in the SSD is obtained by calculating a difference between an upper allowed staying time limit in the SSD and a staying time of the data read command in the SSD.
  3. The method of claim 1, wherein the partial data recovery steps are the same in each of the data recovery steps.
  4. The method according to claims 1-3,
    the selecting the executable data recovery steps based on the remaining staying time TimeBudge of the data reading command in the SSD and the expected execution time TimeCredit of each data recovery step preset in the SSD to recover the read data comprises:
    and comparing the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executing the data recovery steps to recover the data when the compared TimeCredit of the data recovery steps is smaller than the TimeBudge of the data reading command.
  5. The method of claim 4, further comprising:
    and when the result of executing the data recovery step is data recovery failure, recalculating the TimeBudge of the data reading command, and continuously judging whether to execute the next data recovery step according to the TimeCredit of the next data recovery step in a preset sequence and the recalculated TimeBudge.
  6. The method of claim 4, wherein comparing the TimeCredit of each data recovery step with the TimeBudge of the data read command according to a predetermined execution order among the data recovery steps comprises:
    and when the last data recovery step is compared and the TimeCredit of the last data recovery step is greater than the TimeBudge of the data reading command, returning a failure + Retry response.
  7. A method according to any of claims 1-3, characterized in that different data recovery steps have different timecredits.
  8. An SSD master device, comprising: the device comprises a third-party device interface module, a data reading module and a data recovery module;
    the third-party equipment interface module is used for receiving a data reading command and sending the data reading command to the data reading module;
    the data reading module is used for receiving the data reading command from the third-party equipment interface module, reading data from a storage unit of the SSD based on the data reading command, and sending the data to the data recovery module;
    the data recovery module is used for receiving the data sent by the data reading module, calculating the remaining staying time TimeBudge of the data reading command in the SSD, and selecting an executable data recovery step to recover the read data based on the TimeBudge of the data reading command and the expected execution time TimeCredit of each data recovery step preset in the SSD;
    the SSD master control device is provided with one or more data recovery steps.
  9. The SSD master control device of claim 8, wherein the data recovery module obtains the remaining staying time TimeBudget of the data read command in the SSD by calculating a difference between an upper allowed staying time limit in the SSD and a staying time of the data read command in the SSD.
  10. The main control device according to claim 8, wherein the data recovery module selects an executable data recovery step based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data, and includes:
    and the data recovery module compares the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executes the data recovery step to recover the data when the compared TimeCredit of the data recovery step is smaller than the TimeBudge of the data reading command.
  11. An SSD, comprising: the device comprises a main control unit and a storage unit;
    the storage unit is used for storing data;
    the main control unit is used for receiving a data reading command and reading data from the storage unit according to the data reading command; calculating the remaining staying time TimeBudge of the data reading command in the SSD; selecting an executable data recovery step to recover the read data based on the TimeBudge of the data reading command and the expected execution time TimeCredit of each data recovery step preset in the main control unit;
    wherein, one or more data recovery steps are preset in the main control unit.
  12. The SSD of claim 11, wherein selecting the executable data recovery steps based on the TimeBudget of the data read command and the TimeCredit of each data recovery step preset in the SSD to recover the read data comprises:
    and the main control unit compares the TimeCredit of each data recovery step with the TimeBudge of the data reading command according to a preset execution sequence among the data recovery steps, and executes the data recovery step to recover the data when the main control unit judges that the TimeCredit of the compared data recovery step is smaller than the TimeBudge of the data reading command.
  13. The SSD of claim 12, wherein when the main control unit determines that the TimeCredit of the compared data recovery step is less than the TimeBudget of the data read command, the data recovery step is performed for data recovery, and further comprising: and when the execution result is that the data recovery fails, recalculating the TimeBudge, and continuously comparing the TimeCredit of the next step in the preset sequence with the recalculated TimeBudge to judge whether to execute the next data recovery step.
CN201880095631.2A 2018-07-13 2018-07-13 SSD data reading method and device Active CN112424742B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/095572 WO2020010604A1 (en) 2018-07-13 2018-07-13 Ssd data reading method and device

Publications (2)

Publication Number Publication Date
CN112424742A true CN112424742A (en) 2021-02-26
CN112424742B CN112424742B (en) 2022-06-14

Family

ID=69143211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880095631.2A Active CN112424742B (en) 2018-07-13 2018-07-13 SSD data reading method and device

Country Status (2)

Country Link
CN (1) CN112424742B (en)
WO (1) WO2020010604A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789368A (en) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 Solid-state hard disk, and data management method and system thereof
CN103744620A (en) * 2013-12-31 2014-04-23 百度在线网络技术(北京)有限公司 Method and device for data storage
CN106293511A (en) * 2016-07-26 2017-01-04 北京理工大学 A kind of dynamic local parallel data layout towards continuous data storage
CN107391317A (en) * 2017-09-14 2017-11-24 郑州云海信息技术有限公司 A kind of method, apparatus of data recovery, equipment and computer-readable recording medium
US20170344307A1 (en) * 2016-05-25 2017-11-30 Samsung Electronics Co., Ltd. Block cleanup: page reclamation process to reduce garbage collection overhead in dual-programmable nand flash devices
CN107451012A (en) * 2014-07-04 2017-12-08 华为技术有限公司 A kind of data back up method and stream calculation system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281788A (en) * 2007-04-06 2008-10-08 群联电子股份有限公司 Flash memory system as well as control method thereof
CN102323913B (en) * 2011-09-01 2014-08-20 记忆科技(深圳)有限公司 Data readout method and system for solid state disk
CN102662608B (en) * 2012-03-30 2015-11-25 华为技术有限公司 Method and the device of time delay are read in a kind of reduction
CN103218271B (en) * 2013-04-18 2015-09-09 华为技术有限公司 A kind of data error-correcting method and device
CN107291382B (en) * 2017-05-19 2020-04-28 记忆科技(深圳)有限公司 Method for reducing read response delay of solid state disk and solid state disk

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789368A (en) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 Solid-state hard disk, and data management method and system thereof
CN103744620A (en) * 2013-12-31 2014-04-23 百度在线网络技术(北京)有限公司 Method and device for data storage
CN107451012A (en) * 2014-07-04 2017-12-08 华为技术有限公司 A kind of data back up method and stream calculation system
US20170344307A1 (en) * 2016-05-25 2017-11-30 Samsung Electronics Co., Ltd. Block cleanup: page reclamation process to reduce garbage collection overhead in dual-programmable nand flash devices
CN106293511A (en) * 2016-07-26 2017-01-04 北京理工大学 A kind of dynamic local parallel data layout towards continuous data storage
CN107391317A (en) * 2017-09-14 2017-11-24 郑州云海信息技术有限公司 A kind of method, apparatus of data recovery, equipment and computer-readable recording medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M.-K.LEE等: "《High performance DRAM architecture with split row buffer》", 《ELECTRONICS LETTERS》 *
潘文: "《应用于固态硬盘的RAID技术的研究》", 《万方学位论文平台》 *

Also Published As

Publication number Publication date
WO2020010604A1 (en) 2020-01-16
CN112424742B (en) 2022-06-14

Similar Documents

Publication Publication Date Title
US11151027B2 (en) Methods and apparatuses for requesting ready status information from a memory
US11023167B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US9916089B2 (en) Write command overlap detection
US9542271B2 (en) Method and apparatus for reducing read latency
KR102560229B1 (en) Electronic systems and method of operating electronic systems
US9841900B2 (en) Storage control apparatus, method, and medium for scheduling volume recovery
US20150220394A1 (en) Memory system and method of controlling memory system
EP3147797A1 (en) Data management method, node and system for database cluster
WO2016022156A1 (en) Error counters on a memory device
US8154925B2 (en) Semiconductor memory device and system capable of executing an interleave programming for a plurality of memory chips and a 2-plane programming at the respective memory chips
US10754552B2 (en) Data storage device and operating method thereof
CN103218271A (en) Data error correction method and device
US10802756B1 (en) Flash queue status polling
US20120017116A1 (en) Memory control device, memory device, and memory control method
CN112424742B (en) SSD data reading method and device
US20150149699A1 (en) Adaptive Erase of a Storage Device
CN109840224B (en) Memory system and method of operating the same
JP5363460B2 (en) Controller with error correction function, storage device with error correction function, and system with error correction function
CN109299018B (en) Method and device for reading historical data in Flash memory
KR102306585B1 (en) Transaction Identification
US8972614B2 (en) Half-duplex SATA link with controlled idle gap insertion
US7568121B2 (en) Recovery from failure in data storage systems
CN114047880B (en) NAND write power consumption optimization method and device for multi-Pass programming and computer equipment
CN117331492A (en) Command processing method, device, equipment and readable storage medium
CN117519592A (en) SSD-based full disk reconstruction optimization method, SSD-based full disk reconstruction optimization device, SSD-based full disk reconstruction optimization equipment and SSD-based storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant