WO2022027170A1 - Flash memory data management method, storage device controller, and storage device - Google Patents
Flash memory data management method, storage device controller, and storage device Download PDFInfo
- Publication number
- WO2022027170A1 WO2022027170A1 PCT/CN2020/106548 CN2020106548W WO2022027170A1 WO 2022027170 A1 WO2022027170 A1 WO 2022027170A1 CN 2020106548 W CN2020106548 W CN 2020106548W WO 2022027170 A1 WO2022027170 A1 WO 2022027170A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target block
- programming
- erasing
- preset
- latency
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
Definitions
- the present application relates to the field of storage technologies, and in particular, to a flash data management method, a storage device controller, and a storage device.
- NAND Flash is a current mainstream non-volatile storage medium, which has been widely used in smartphones, enterprise-level solid-state drives, servers, and cloud storage.
- the current method for determining bad blocks is based on the failure behavior that has already occurred, and the data processing of the bad block after the failure behavior occurs, the risk of data loss in its storage is high.
- the present application provides a flash data management method, a storage device controller, and a storage device, so as to reduce the risk of data loss in the flash memory medium and improve the data storage reliability of the flash memory medium.
- an embodiment of the present application provides a flash data management method, including: acquiring intrinsic parameters of a target block in a flash memory medium during an erasing and writing operation, wherein the intrinsic parameters include an execution time of the erasing and writing operations;
- the running state of the target block is predicted according to the intrinsic parameters and the preset intrinsic parameter threshold, and the running state includes a normal state and an abnormal state; the subsequent data management of the target block is performed according to the predicted running state.
- the evaluation of the flash medium by obtaining the intrinsic parameters of the target block in the flash medium during the erasing and writing operations, and then predicting the operating state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the evaluation of the flash medium
- the health level of each block is used to perform subsequent data management on the block according to the predicted operating state of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium.
- the subsequent data management of the target block according to the predicted running state may include: stopping the write operation or programming operation on the target block.
- the write operation or programming operation to the target block is stopped, so as to avoid the failure of newly written data, so as to further reduce the risk of data loss and improve the data of the flash medium. Storage reliability.
- the above-mentioned subsequent data management of the target block according to the predicted operation state may include: performing data migration on the stored data in the target block.
- the data stored in the target block is data moved, so as to further reduce the risk of data loss and improve the reliability of data storage.
- the target block may also be marked as bad if the prediction is an abnormal state.
- the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advance processing is performed, which reduces the additional operations generated after the failure occurs, further reduces the risk of data loss, and improves the flash memory.
- the data storage reliability of the medium is not limited.
- the erasing and writing operations include programming operations
- the intrinsic parameters include the programming latency of the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, the predicted running state is abnormal state. .
- the operating state of the target block is predicted by comparing the programming latency with the preset programming time range. If the predicted operating state is an abnormal state, the target is determined according to the intrinsic parameters and the preset intrinsic parameters. After the running state of the block, the target block can be marked as bad. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
- the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state,
- the preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
- the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
- the erasing operation includes the erasing operation
- the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
- the operating state of the target block is determined by comparing the erasing latency with the preset upper limit value of erasing time. If the predicted operating state is an abnormal state, the After predicting the running state of the target block based on the characteristic parameters, the target block can be marked as a bad block. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
- the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
- an embodiment of the present application further provides a storage device controller, including: a processor and a buffer; wherein, the processor obtains, from the buffer, the intrinsic properties of a target block in a flash medium during an erasing and writing operation. parameters, the intrinsic parameters include the execution time of the erasing and writing operations; the processor predicts the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, and stores the running state in the buffer, and the running state includes the normal state and the abnormal state ; Data management of the target block by the processor according to the predicted operating state.
- a storage device controller including: a processor and a buffer; wherein, the processor obtains, from the buffer, the intrinsic properties of a target block in a flash medium during an erasing and writing operation. parameters, the intrinsic parameters include the execution time of the erasing and writing operations; the processor predicts the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, and stores the running state in the buffer, and the running state includes the normal state and
- the processor stops writing or programming the target block.
- the processor is used to perform data movement on the stored data in the target block.
- the processor marks the target block as a bad block in the buffer.
- the erasing and writing operations include programming operations
- the intrinsic parameters include the programming latency of the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, then the running state is determined to be an abnormal state.
- the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state,
- the preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
- the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
- the erasing operation includes the erasing operation
- the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
- the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
- an embodiment of the present application further provides a storage device, including: a flash memory medium and any one of the storage device controllers provided in the third aspect; wherein, the storage device controller is used to control each block in the flash memory medium Conduct data management.
- the present application provides a flash data management method, a storage device controller, and a storage device.
- a flash data management method By acquiring intrinsic parameters of a target block in a flash memory medium during an erasing and writing operation, and then predicting based on intrinsic parameters and preset intrinsic parameter thresholds
- the operating status of the target block is used to evaluate the health of each block in the flash medium, and the subsequent data management of the block can be performed according to the predicted operating status of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium. sex.
- FIG. 1 is a schematic diagram of a NAND Flash organizational structure provided by an embodiment of the present application.
- FIG. 2 is a schematic diagram of a storage system architecture provided by an embodiment of the present application.
- FIG. 3 is a schematic flowchart of a flash data management method provided in Embodiment 1 of the present application.
- FIG. 4 is a schematic flowchart of a flash data management method provided in Embodiment 2 of the present application.
- FIG. 5 is a schematic diagram of a programming latency test result according to an embodiment of the present application.
- FIG. 6 is a schematic diagram of a programming latency test result shown in the present application according to another embodiment
- FIG. 7 is a schematic diagram of the voltage distribution of the S1 region shown in FIG. 6;
- FIG. 8 is a schematic flowchart of a flash data management method provided in Embodiment 3 of the present application.
- FIG. 9 is a schematic diagram of the test result of the number of bit errors shown in the present application according to an embodiment
- FIG. 10 is a schematic flowchart of a flash data management method provided in Embodiment 4 of the present application.
- FIG. 11 is a schematic structural diagram of a storage device controller according to Embodiment 5 of the present application.
- FIG. 12 is a schematic structural diagram of a storage device provided in Embodiment 5 of the present application.
- NAND Flash is a current mainstream non-volatile storage medium, which has been widely used in smartphones, enterprise-level solid-state drives, servers, and cloud storage. It can save data for a long time after power failure, and has the advantages of fast data transmission speed, low production cost, and large storage capacity.
- the current mainstream NAND Flash manufacturers use a 3D multi-layer stacking structure; as the number of stacked layers becomes larger and larger, more and more memory cells (cells) are squeezed into a small space, and the mutual interference between cells/cells The leakage current increases significantly, and the reliability risk of the storage medium increases.
- the reduction of the distance between the memory cells and the reduction of the thickness of the oxide layer make the inherent errors in the flash memory more and more serious.
- the traditional error correction code method can no longer meet the reliability requirements of the flash memory. important subject.
- the medium may have key read and write errors due to process defects, resulting in data loss, or the system needs to spend additional processes to recover data.
- PE erasing and writing
- FIG. 1 is a schematic diagram of a NAND Flash organizational structure provided by an embodiment of the present application.
- the NAND chip 100 divides the storage unit into several flash memory slices (planes), for example: a first plane 110 and a second plane 120 .
- planes can be further divided into different blocks (blocks), for example, the first plane 110 includes the first block 110B.
- the block needs to be marked as a bad block, that is, a bad block, where the smallest unit of isolation failure unit is a block.
- the block in the organizational structure of a NAND chip, the block is divided into different strings (strings), and the following strings are further divided into different word lines (Word Lines, WL for short).
- the minimum unit of the erase operation is a block
- the minimum unit of the programming operation is a WL.
- the industry usually only marks the target block as a bad block when the target block in the NAND Flash is erased or written, for example, when a write failure or an erase failure occurs. Then, additional means are used to recover data lost due to write failures.
- FIG. 2 is a schematic diagram of an architecture of a storage system provided by an embodiment of the present application.
- the storage system provided in this embodiment mainly includes three core modules: a controller (Controller), a buffer (Cache), and a storage medium (NAND Flash), wherein the controller is the entire storage
- the control brain of the system is responsible for the processing of read and write commands of the SSD, data distribution management, and NAND Flash management.
- the NAND flash part may consist of 1 die or multiple dies, and is the physical carrier for the final storage of data.
- the buffer part is used to buffer the data sent from the controller or read from the buffer.
- the redundant array of independent hard disks Redundant Array of Independent Disks, referred to as RAID
- RAID redundant array of independent hard disks
- one of the dies may be used to XOR the data in the remaining dies and then write them into the RAID dies. After the media failure occurs, the lost data can be recovered by reading data from other locations on the same strip; In addition, there is also a way to write the data cache, which can be to write the data to the cache first, and release the cache after the writing to the NAND is successful.
- the embodiment of the present application aims to predict/evaluate the state of the target block by using some intrinsic parameters during NAND erasing and writing, so as to predict the failure in advance, so as to perform corresponding advanced processing, so as to perform corresponding data on each block in the flash memory medium. management to reduce the risk of data loss.
- the technical approach provided by the embodiments of the present application utilizes the intrinsic characteristics of the NAND Flash medium, and mainly utilizes the programming latency (T program , referred to as T PROG ), the erasing latency (T erase , referred to as T ERS ) and the number of blank page errors after erasing Detect (erased page FBC check) to judge the health status of NAND media, and predict/handle upcoming failures in advance through subsequent operations.
- T program referred to as T PROG
- T erase erasing latency
- T ERS erasing latency
- the number of blank page errors after erasing Detect erasesed page FBC check
- FIG. 3 is a schematic flowchart of a flash data management method provided in Embodiment 1 of the present application. As shown in FIG. 3 , the flash data management method provided by this embodiment includes:
- Step 101 Acquire intrinsic parameters of the target block in the flash memory medium during the erasing and writing operations.
- NAND Flash media mainly includes three basic operations: read operation (Read), programming operation (Program), and erase operation (Erase).
- Read read operation
- Program programming operation
- Erase erase operation
- the NAND erase operation and programming operation time will change with the wear degree of the medium.
- the current erase operation or programming operation may not necessarily show state failure. But it can show a big change in erasing operation or programming operation time. Therefore, the prediction of the running state of the target block can be performed by obtaining intrinsic parameters of the target block in the flash medium during the erasing and writing operations, wherein the intrinsic parameters include the operation time required to complete the erasing and writing operations.
- Step 102 Predict the running state of the target block according to the intrinsic parameters and a preset intrinsic parameter threshold.
- the operating state of the target block can be predicted according to the intrinsic parameters of the NAND medium, and based on the intrinsic parameters and the preset intrinsic parameter threshold, wherein the operating state includes normal state and abnormal state. Therefore, the health of the NAND medium is evaluated by monitoring the programming latency and erasing latency of NAND, so as to predict the occurrence of target block failure in advance.
- the embodiment of the present application may be a software management solution, in which a whole set of application policies is implemented through a storage system controller.
- the programming latency and the erasing latency can be detected by the controller to detect the execution time of the programming and erasing operations, and the number of blank page errors after erasing can be detected by the controller issuing a read operation to read the blank page data.
- the controller can compare the operation time preset offline or the threshold for the number of blank page errors. If a failure is predicted to occur, the controller defines this block as a bad block, ignores it in subsequent operations, and no longer operates.
- the above three sub-schemes may be combined arbitrarily for prediction, or only a single scheme may be used for prediction.
- Step 103 Perform subsequent data management on the target block according to the predicted running state.
- the controller may perform subsequent data management on the target block according to the predicted running state of the target block.
- the predicted operating state of the target block is abnormal, it means that the target block has a high risk of failure. Therefore, in order to reduce the risk of data loss, the write operation or programming operation on the target block can be stopped to avoid new writing.
- the entered data is invalid.
- the predicted running state of the target block is abnormal, it means that the failure risk of the target block is low, and the reliability of storing data in the target block is high. Therefore, you can continue to write to the target block or programming operation.
- data movement may also be performed on the stored data in the target block.
- the controller can obtain the relevant identification code of each block to predict the running state of the block, and the block predicted to be in an abnormal state will be marked as a bad block.
- the identification bit of the block is configured as a specific field for bad block identification.
- the evaluation of the flash medium by acquiring the intrinsic parameters of the target block in the flash medium during the erasing and writing operation, and then predicting the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the evaluation of the flash medium
- the health level of each block is used to perform subsequent data management on the block according to the predicted operating state of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium.
- the target block may be marked as a bad block. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
- the data stored in the target block can also be moved. Therefore, before the target block fails, the data stored in the target block is moved to further reduce the risk of data loss and improve the reliability of data storage.
- FIG. 4 is a schematic flowchart of a flash data management method provided in Embodiment 2 of the present application. As shown in FIG. 4 , the flash data management method provided by this embodiment includes:
- Step 201 Acquire intrinsic parameters of the target block in the flash medium during the erasing and writing operations.
- the programming operation time will change with the wear degree of the medium, especially when some weak leakage occurs, the current programming operation may not necessarily show a state failure, but it can show a large change in the programming operation time.
- the programming latency can be obtained by the controller detecting the execution time of the programming operation.
- the prediction of the running state of the target block can be performed by obtaining the programming latency of the target block in the flash memory medium when the programming operation is performed.
- Step 202 Determine whether the programming latency is within a preset programming time range. If the judgment result is yes, go to step 204; if the judgement result is no, go to step 203.
- the programming latency can also be compared with a preset programming time range, so as to predict the running state of the target block.
- the preset programming time range may be determined according to a normal programming time range.
- Step 203 predicting that the running state is an abnormal state.
- the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time lower limit, it can be predicted that the operating state is an abnormal state.
- the word line programming time of each word line in the target block can also be obtained.
- the above programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset word line programming time upper limit, the predicted operating state is an abnormal state, and the preset programming time upper limit Values include preset word line programming time upper limit values.
- the leakage between the word line and the word line (WL-WL), or between the word line and the channel (WL-channel) may be only a small leakage in the early stage, and the programming failure will not occur immediately, but due to the existence of Leakage will cause the programming voltage on the WL to drop, resulting in a decrease in programming efficiency and an abnormal increase in programming latency, but it does not reach the level of programming failure.
- FIG. 5 is a schematic diagram of a programming latency test result according to an embodiment of the present application.
- the horizontal axis is the number of erase/write cycles of the target block
- the vertical axis is the programming latency
- the four groups are four WLs on the same layer that share the WL metal layer but different channels.
- the programming sequence is from From top to bottom, it is a cycle. It can be seen that with the increase of the number of erase/write cycles, the programming latency decreases slowly, but when the number of erase/write cycles is around 7500, the programming time of the first WL and the second WL suddenly increases abnormally, but there is no programming failure. A programming failure occurs when the third WL is reached, that is, the fourth WL cannot continue programming.
- L10 is the programming latency test curve corresponding to the first WL
- L20 is the programming latency test curve corresponding to the second WL
- L30 is the programming latency test curve corresponding to the third WL
- L40 is the fourth WL The corresponding programming latency test curve.
- the running state can also be predicted to be an abnormal state.
- the above-mentioned intrinsic parameters may also include the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of erasing and writing.
- the defects in the oxide layer will gradually increase after the tunnel oxide layer is subjected to repeated voltage pressure, making it easier for electrons to enter the charge trap layer through the defects.
- the response in the programming latency is that the programming speed increases and the programming latency decreases. Speeding up the programming speed to a certain threshold will lead to an increase in the number of electrons acquired by each voltage pulse, resulting in a decrease in programming accuracy, which is reflected in particle performance as over-programming, that is, the programmed threshold voltage is higher than the preset value, and the final response is read Data errors are on the rise, even leading to UNC.
- FIG. 6 is a schematic diagram of a programming latency test result according to another embodiment of the present application. As shown in FIG. 6 , the vertical axis is the programming latency, and the horizontal axis is the maximum number of errors per page. It can be seen from the figure that the page with an increased Fail Bit Count (FBC for short), that is, the S1 area shown in the figure, has a programming latency in a smaller range.
- FBC Fail Bit Count
- FIG. 7 is a schematic diagram of the voltage distribution in the S1 region shown in Figure 6.
- an obvious over-programming problem can be found, and the increase in the number of errors caused by such over-programming is due to the rise of the voltage valley, even if the bias voltage reads It cannot be recovered.
- the horizontal axis in FIG. 7 represents the value of the threshold voltage
- the vertical axis represents the number of memory cells under the threshold voltage.
- all memory cells under a word line of a three-level cell (TLC) are distributed in 8 states, except erase.
- L1 represents the threshold voltage distribution of the page with a large number of errors in the total S1 area of Figure 6, and L2/L3 are The threshold voltage distribution of the normal error number page.
- the decreasing trend of programming latency can be used to evaluate or predict the health state of the storage medium, and samples can be measured offline, such as the variation of programming latency with the number of PEs, and the programming latency threshold that causes over-programming problems. for online monitoring.
- the programming latency drops to a certain threshold, the corresponding target block is processed in advance.
- Step 204 predicting that the operating state is a normal state.
- the operating state of the target block is predicted by comparing the programming latency with the preset programming time range. If the predicted operating state is an abnormal state, the target block is predicted according to the intrinsic parameters and the preset intrinsic parameters. After the running state of the block, the target block can be marked as bad. Therefore, the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advanced processing is carried out, which reduces the extra operation after the failure occurs, further reduces the risk of data loss, and improves the data storage reliability of the flash medium. sex.
- Step 205 Perform subsequent data management on the target block according to the predicted running state.
- the controller may perform subsequent data management on the target block according to the predicted operating state of the target block.
- the target block may also be marked as a bad block.
- the target block can be marked as a bad block, the write operation or programming operation can be stopped on the target block, or the stored data in the target block can be stopped.
- the data migration can also be any combination of the above three methods.
- FIG. 8 is a schematic flowchart of a flash data management method provided in Embodiment 3 of the present application. As shown in FIG. 8 , the flash data management method provided by this embodiment includes:
- Step 301 Acquire intrinsic parameters of the target block in the flash memory medium during the erasing and writing operations.
- the current erasing operation may not necessarily show a state failure, but it can show a large amount of time in the erasing and writing operation time. Variations, where the erase-write latency can be obtained by the controller detecting the execution time of the programming operation.
- the prediction of the running state of the target block can be performed by obtaining the erasing latency of the target block in the flash medium when the erasing operation is performed.
- Step 302 judging whether the erasing latency is greater than the preset upper limit of erasing time. If the judgment result is yes, step 303 is executed; if the judgment result is no, step 304 is executed.
- Step 303 predicting that the running state is an abnormal state.
- the predicted operating state is an abnormal state.
- the predicted operating state is an abnormal state.
- continue to read the number of bit errors in the erasing operation If the number of bit errors is greater than the preset number of bit errors, the predicted operating state is abnormal. .
- FIG. 9 is a schematic diagram illustrating a test result of the number of bit errors according to an embodiment of the present application.
- the data shows that the erase operation before the programming failure did not feedback the erase failure, but the Erased FBC (the dot is the FBC value after erasing, the vertical axis is the FBC, and the horizontal axis is the number of erase cycles) read Fetch has shown abnormality, and programming failure occurs in the next programming cycle (the cross point is the FBC value after programming, where the number of errors read is very high because of programming failure).
- Step 304 predicting that the operating state is a normal state.
- the operating state of the target block is predicted by comparing the erasing latency with the preset upper limit value of erasing time. If the predicted operating state is an abnormal state, the After predicting the running state of the target block based on the characteristic parameters, the target block can be marked as a bad block. Therefore, the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advanced processing is carried out, which reduces the extra operation after the failure occurs, further reduces the risk of data loss, and improves the data storage reliability of the flash medium. sex.
- Step 305 Perform subsequent data management on the target block according to the predicted running state.
- step 305 For the specific implementation of step 305, reference may be made to the specific description of step 205 in the embodiment shown in FIG. 4 , which will not be repeated here.
- FIG. 10 is a schematic flowchart of a flash data management method of a flash memory provided by Embodiment 4 of the present application. As shown in FIG. 8 , the flash data management method provided by this embodiment includes:
- Step 401 select the word line of the target block to start writing data.
- Step 402 Record the programming latency after programming is completed.
- the controller when programming the target block, the controller records the programming time and the number of erase/write cycles of each WL, and compares it with the programming latency measured offline and the preset programming time range of the number of erase/write cycles after wear. Compared.
- Step 403 Determine whether the programming latency is within a preset programming time range. If the judgment result is yes, step 405 is executed, and if the judgment result is no, step 404 is executed.
- the programming operation time will change with the wear degree of the medium, especially when some weak leakage occurs, the current programming operation may not necessarily show a state failure, but it can show a large change in the programming operation time.
- the programming latency can be obtained by the controller detecting the execution time of the programming operation.
- the programming latency can also be compared with a preset programming time range, so as to predict the running state of the target block.
- the preset programming time range may be determined according to a normal programming time range.
- Step 404 Determine whether the programming latency is greater than the preset programming time upper limit. If the judgment result is yes, step 410 is executed, and if the judgment result is no, step 4041 is executed.
- the word line programming time of each word line in the target block can also be obtained.
- the above programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset word line programming time upper limit, the predicted operating state is an abnormal state, and the preset programming time upper limit Values include preset word line programming time upper limit values.
- Step 4041 read verification.
- Step 4042 Determine whether the read verification is passed. If the judgment result is no, step 410 is executed, and if the judgment result is yes, step 405 is executed.
- the running state can also be predicted to be an abnormal state.
- the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing. When the programming latency reaches a certain threshold, the corresponding target block is processed in advance.
- Step 405 Continue to program the next word line.
- Step 406 perform an erasing operation on the target block, and record the erasing latency.
- the current erasing operation may not necessarily show a state failure, but it can show a large amount of time in the erasing and writing operation time. Variations, where the erase-write latency can be obtained by the controller detecting the execution time of the programming operation.
- the prediction of the running state of the target block can be performed by obtaining the erasing latency of the target block in the flash medium when the erasing operation is performed.
- Step 407 Determine whether the erasing latency is greater than the preset upper limit of erasing time. If the judgment result is no, go to step 409, and if the judgement result is yes, go to step 4081.
- Step 4081 Read the number of bit errors in the erase operation.
- Step 4082 Determine that the number of bit errors is greater than the preset number of bit errors. If the judgment result is no, step 409 is executed, and if the judgment result is yes, step 410 is executed.
- the predicted operating state is an abnormal state.
- the predicted operating state is an abnormal state.
- continue to read the number of bit errors in the erasing operation If the number of bit errors is greater than the preset number of bit errors, the predicted operating state is abnormal. .
- the controller records the programming time and the number of erasing and writing cycles of each WL, and compares it with the relationship between the programming time and the number of wear cycles measured offline. If the programming latency is within the preset programming time safety range corresponding to the current cycle value, the WL is considered to be in a healthy state, and the next step can be continued. When it is detected that the current programming time is greater than the preset programming time safety range of the cycle value When the target block is directly identified as a bad block, the bad block is marked and the necessary data movement is performed.
- the target block is in a risk state, and the programmed WL is immediately read and verified to determine whether FBC occurs. In the case of rising, if the FBC is found to exceed a certain threshold, it will be marked as a bad block.
- the controller records the erasing latency, and compares the erasing latency with the relationship between the erasing time and the number of wear cycles measured offline. When the erasing latency is found When the erasure time safety interval of the current cycle value is exceeded, the controller sends a read command to read the number of errors in the blank page after erasing the specified page. If the number of bit errors is found to be greater than the preset number of bit errors, it will The target block is marked as bad.
- Step 409 update the erasing cycle times.
- Step 410 Mark the target block as a bad block.
- FIG. 11 is a schematic structural diagram of a storage device controller according to Embodiment 5 of the present application.
- the storage device controller 500 provided in this embodiment includes: a processor 501 and a buffer 502 ; wherein, the processor 501 obtains a target block in the flash medium from the buffer 502 when performing an erasing and writing operation and the intrinsic parameters include the execution time of the erase and write operations; then, the processor 501 predicts the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, and stores the running state in the buffer 502, The running state includes a normal state and an abnormal state; then, the processor 501 performs data management on the target block according to the predicted running state.
- the processor 501 stops writing or programming the target block.
- the processor 501 is configured to perform data movement on the stored data in the target block.
- the processor 501 marks the target block as a bad block in the buffer 502 .
- the erasing and writing operations include programming operations
- the intrinsic parameters include the programming latency for the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, the predicted running state is abnormal state.
- the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state,
- the preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
- the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
- the erasing operation includes the erasing operation
- the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
- the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
- FIG. 12 is a schematic structural diagram of a storage device provided in Embodiment 5 of the present application.
- the storage device provided in this embodiment includes a flash memory medium and the storage device controller shown in FIG. 11 .
- the flash media part may be composed of one die or multiple die, and is the physical carrier for the final storage of data.
- the storage device controller is used for data management of each block in the flash memory medium.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Provided by embodiments of the present application are a flash memory data management method, a storage device controller, and a storage device. The method comprises: acquiring intrinsic parameters, when a target block in a flash memory medium is subjected to erase and write operations, of the target block, wherein the intrinsic parameters comprise an execution time of the erase and write operations; predicting running statuses of the target block according to the intrinsic parameters and a preset intrinsic parameter threshold, wherein the running statuses comprise a normal status and an abnormal status; and according to the predicted running statuses, performing subsequent data management on the target block. In the method provided in the present embodiments, by means of acquiring the intrinsic parameters, when the target block in the flash memory medium is subjected to the erase and program operations, of the target block, and then predicting the running statuses of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the health level of each block in the flash memory medium is evaluated, so as to perform subsequent data management on the block according to a determined running status of each block, thereby reducing the risk of data loss, and improving the data storage reliability of the flash memory medium.
Description
本申请涉及存储技术领域,尤其涉及一种闪存数据管理方法、存储设备控制器及存储设备。The present application relates to the field of storage technologies, and in particular, to a flash data management method, a storage device controller, and a storage device.
与非型闪存(NAND Flash)是一种当前主流的非挥发性存储介质,已经在智能手机、企业级固态硬盘,服务器,云端储存等大量应用。NAND Flash (NAND Flash) is a current mainstream non-volatile storage medium, which has been widely used in smartphones, enterprise-level solid-state drives, servers, and cloud storage.
在对NAND Flash中的目标块进行数据的擦写时,业界通常只是在该目标块失效发生时,例如:在写失败(Program Status Fail,简称PSF)或者擦失败(Erase Status Fail,简称ESF)发生时,将该目标块标记为坏块,从而对该目标块进行数据管理。When erasing or writing data to a target block in NAND Flash, the industry usually only occurs when the target block fails, for example, in the event of a write failure (Program Status Fail, PSF for short) or Erase Status Fail (ESF for short) When this occurs, the target block is marked as bad for data management of the target block.
可见,当前对于坏块确定的方式都是基于已经发生的失效行为,而在失效行为发生后再对坏块进行数据处理,其存储的数据丢失风险较高。It can be seen that the current method for determining bad blocks is based on the failure behavior that has already occurred, and the data processing of the bad block after the failure behavior occurs, the risk of data loss in its storage is high.
发明内容SUMMARY OF THE INVENTION
本申请提供一种闪存数据管理方法、存储设备控制器及存储设备,以降低闪存介质中的数据丢失风险,提升闪存介质的数据存储可靠性。The present application provides a flash data management method, a storage device controller, and a storage device, so as to reduce the risk of data loss in the flash memory medium and improve the data storage reliability of the flash memory medium.
第一方面,本申请实施例提供了一种闪存数据管理方法,包括:获取闪存介质中的目标块在进行擦写操作时的本征参数,其中,本征参数包括擦写操作的执行时间;根据本征参数以及预设本征参数阈值预测目标块的运行状态,运行状态包括正常状态以及异常状态;根据预测的运行状态对目标块进行后续的数据管理。In a first aspect, an embodiment of the present application provides a flash data management method, including: acquiring intrinsic parameters of a target block in a flash memory medium during an erasing and writing operation, wherein the intrinsic parameters include an execution time of the erasing and writing operations; The running state of the target block is predicted according to the intrinsic parameters and the preset intrinsic parameter threshold, and the running state includes a normal state and an abnormal state; the subsequent data management of the target block is performed according to the predicted running state.
在本实现方式中,通过获取闪存介质中的目标块在进行擦写操作时的本征参数,然后根据本征参数以及预设本征参数阈值预测目标块的运行状态,从而来评估闪存介质中各个块的健康程度,以根据各个块所预测的运行状态来对该块进行后续的数据管理,从而降低数据丢失风险,提升闪存介质的数据存储可靠性。In this implementation manner, by obtaining the intrinsic parameters of the target block in the flash medium during the erasing and writing operations, and then predicting the operating state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the evaluation of the flash medium The health level of each block is used to perform subsequent data management on the block according to the predicted operating state of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium.
在一种可能的设计中,若预测是异常状态,则上述根据预测的运行状态对目标块进行后续的数据管理,可以包括:停止对目标块进行写操作或者编程操作。In a possible design, if the prediction is an abnormal state, the subsequent data management of the target block according to the predicted running state may include: stopping the write operation or programming operation on the target block.
在本实现方式中,通过在目标块被确定为异常状态时,停止对目标块进行写操作或者编程操作,从而避免新写入的数据发生失效,以进一步降低数据丢失风险,提升闪存介质的数据存储可靠性。In this implementation manner, when the target block is determined to be in an abnormal state, the write operation or programming operation to the target block is stopped, so as to avoid the failure of newly written data, so as to further reduce the risk of data loss and improve the data of the flash medium. Storage reliability.
在一种可能的设计中,若预测是异常状态,上述根据预测的运行状态对目标块进行后续的数据管理,可以包括:则对目标块中的存储数据进行数据搬移。In a possible design, if the prediction is an abnormal state, the above-mentioned subsequent data management of the target block according to the predicted operation state may include: performing data migration on the stored data in the target block.
在本实现方式中,在目标块发生失效前,对目标块中的存储数据进行数据搬移,以进一步降低数据丢失的风险,提高数据存储的可靠性。In this implementation manner, before the target block fails, the data stored in the target block is data moved, so as to further reduce the risk of data loss and improve the reliability of data storage.
在一种可能的设计中,若预测是异常状态,还可以将目标块标记为坏块。In one possible design, the target block may also be marked as bad if the prediction is an abnormal state.
在本实现方式中,通过目标块在进行擦写操作时的本征参数来提前预测失效并进 行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。In this implementation manner, the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advance processing is performed, which reduces the additional operations generated after the failure occurs, further reduces the risk of data loss, and improves the flash memory. The data storage reliability of the medium.
在一种可能的设计中,擦写操作包括编程操作,则本征参数包括目标块执行编程操作的编程潜伏期;若编程潜伏期大于预设编程时间上限值,或者编程潜伏期小于预设编程时间下限值,则预测运行状态为异常状态。。In a possible design, the erasing and writing operations include programming operations, and the intrinsic parameters include the programming latency of the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, the predicted running state is abnormal state. .
在本实现方式中,通过将编程潜伏期与预设编程时间范围进行比较,从而预测目标块的运行状态,若预测的运行状态为异常状态,则在根据本征参数以及预设本征参数确定目标块的运行状态之后,可以将该目标块标记为坏块。从而通过目标块在进行擦写操作时的本征参数来提前预测失效并进行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。In this implementation, the operating state of the target block is predicted by comparing the programming latency with the preset programming time range. If the predicted operating state is an abnormal state, the target is determined according to the intrinsic parameters and the preset intrinsic parameters. After the running state of the block, the target block can be marked as bad. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
在一种可能的设计中,编程潜伏期包括目标块中各个字线的字线编程时间,若存在至少一个字线编程时间大于预设字线编程时间上限值,则预测运行状态为异常状态,预设编程时间上限值包括预设字线编程时间上限值,预设本征参数阈值包括目标块中各个字线的预设字线编程时间上限值。In a possible design, the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state, The preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
在一种可能的设计中,本征参数还包括擦写次数,预设编程时间上限值以及预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。In a possible design, the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
在一种可能的设计中,擦写操作包括擦除操作,则本征参数包括目标块执行擦除操作的擦除潜伏期;若擦除潜伏期大于预设擦除时间上限值,则预测运行状态为异常状态。In a possible design, the erasing operation includes the erasing operation, and the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
在本实现方式中,通过将擦除潜伏期与预设擦除时间上限值进行比较,从而确定目标块的运行状态,若预测的运行状态为异常状态,则在根据本征参数以及预设本征参数预测目标块的运行状态之后,可以将该目标块标记为坏块。从而通过目标块在进行擦写操作时的本征参数来提前预测失效并进行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。In this implementation manner, the operating state of the target block is determined by comparing the erasing latency with the preset upper limit value of erasing time. If the predicted operating state is an abnormal state, the After predicting the running state of the target block based on the characteristic parameters, the target block can be marked as a bad block. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
在一种可能的设计中,若擦除潜伏期大于预设擦除时间上限值,则读取擦除操作比特出错数,若比特出错数大于预设比特出错数,则预测运行状态为异常状态。In a possible design, if the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
第二方面,本申请实施例还提供了一种存储设备控制器,包括:处理器以及缓存器;其中,处理器从缓存器中获取闪存介质中的目标块在进行擦写操作时的本征参数,本征参数包括擦写操作的执行时间;处理器根据本征参数以及预设本征参数阈值预测目标块的运行状态,并将运行状态存储至缓存器,运行状态包括正常状态以及异常状态;处理器根据预测的运行状态对目标块进行的数据管理。In a second aspect, an embodiment of the present application further provides a storage device controller, including: a processor and a buffer; wherein, the processor obtains, from the buffer, the intrinsic properties of a target block in a flash medium during an erasing and writing operation. parameters, the intrinsic parameters include the execution time of the erasing and writing operations; the processor predicts the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, and stores the running state in the buffer, and the running state includes the normal state and the abnormal state ; Data management of the target block by the processor according to the predicted operating state.
在一种可能的设计中,若处理器从缓存器中获取到的目标块的运行状态为异常状态,则处理器停止对目标块进行写操作或者编程操作。In a possible design, if the running state of the target block obtained by the processor from the buffer is an abnormal state, the processor stops writing or programming the target block.
在一种可能的设计中,若处理器从缓存器中获取到的目标块的运行状态为异常状态,则处理器用于对目标块中的存储数据进行数据搬移。In a possible design, if the running state of the target block obtained by the processor from the buffer is an abnormal state, the processor is used to perform data movement on the stored data in the target block.
在一种可能的设计中,若处理器从缓存器中获取到的目标块的运行状态为异常状态,则处理器在缓存器中将目标块标记为坏块。In a possible design, if the running state of the target block obtained by the processor from the buffer is abnormal, the processor marks the target block as a bad block in the buffer.
在一种可能的设计中,擦写操作包括编程操作,则本征参数包括目标块执行编程操作的编程潜伏期;若编程潜伏期大于预设编程时间上限值,或者编程潜伏期小于预 设编程时间下限值,则确定运行状态为异常状态。In a possible design, the erasing and writing operations include programming operations, and the intrinsic parameters include the programming latency of the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, then the running state is determined to be an abnormal state.
在一种可能的设计中,编程潜伏期包括目标块中各个字线的字线编程时间,若存在至少一个字线编程时间大于预设字线编程时间上限值,则预测运行状态为异常状态,预设编程时间上限值包括预设字线编程时间上限值,预设本征参数阈值包括目标块中各个字线的预设字线编程时间上限值。In a possible design, the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state, The preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
在一种可能的设计中,本征参数还包括擦写次数,预设编程时间上限值以及预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。In a possible design, the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
在一种可能的设计中,擦写操作包括擦除操作,则本征参数包括目标块执行擦除操作的擦除潜伏期;若擦除潜伏期大于预设擦除时间上限值,则预测运行状态为异常状态。In a possible design, the erasing operation includes the erasing operation, and the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
在一种可能的设计中,若擦除潜伏期大于预设擦除时间上限值,则读取擦除操作比特出错数,若比特出错数大于预设比特出错数,则预测运行状态为异常状态。In a possible design, if the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
第三方面、本申请实施例还提供了一种存储设备,包括:闪存介质以及第三方面中提供的任意一项的存储设备控制器;其中,存储设备控制器用于对闪存介质中的各个块进行数据管理。In a third aspect, an embodiment of the present application further provides a storage device, including: a flash memory medium and any one of the storage device controllers provided in the third aspect; wherein, the storage device controller is used to control each block in the flash memory medium Conduct data management.
本申请提供一种闪存数据管理方法、存储设备控制器及存储设备,通过获取闪存介质中的目标块在进行擦写操作时的本征参数,然后根据本征参数以及预设本征参数阈值预测目标块的运行状态,从而来评估闪存介质中各个块的健康程度,以根据各个块所预测的运行状态来对该块进行后续的数据管理,从而降低数据丢失风险,提升闪存介质的数据存储可靠性。The present application provides a flash data management method, a storage device controller, and a storage device. By acquiring intrinsic parameters of a target block in a flash memory medium during an erasing and writing operation, and then predicting based on intrinsic parameters and preset intrinsic parameter thresholds The operating status of the target block is used to evaluate the health of each block in the flash medium, and the subsequent data management of the block can be performed according to the predicted operating status of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium. sex.
图1是本申请实施例提供的NAND Flash组织架构示意图;1 is a schematic diagram of a NAND Flash organizational structure provided by an embodiment of the present application;
图2是本申请实施例提供的存储系统架构示意图;2 is a schematic diagram of a storage system architecture provided by an embodiment of the present application;
图3是本申请实施例一提供的闪存数据管理方法的流程示意图;3 is a schematic flowchart of a flash data management method provided in Embodiment 1 of the present application;
图4是本申请实施例二提供的闪存数据管理方法的流程示意图;FIG. 4 is a schematic flowchart of a flash data management method provided in Embodiment 2 of the present application;
图5是本申请根据一实施例示出的编程潜伏期测试结果示意图;5 is a schematic diagram of a programming latency test result according to an embodiment of the present application;
图6是本申请根据另一实施例示出的编程潜伏期测试结果示意图;6 is a schematic diagram of a programming latency test result shown in the present application according to another embodiment;
图7是图6所示S1区域部分的电压分布示意图;FIG. 7 is a schematic diagram of the voltage distribution of the S1 region shown in FIG. 6;
图8是本申请实施例三提供的闪存数据管理方法的流程示意图;FIG. 8 is a schematic flowchart of a flash data management method provided in Embodiment 3 of the present application;
图9是本申请根据一实施例示出的比特出错数测试结果示意图;9 is a schematic diagram of the test result of the number of bit errors shown in the present application according to an embodiment;
图10是本申请实施例四提供的闪存数据管理方法的流程示意图;FIG. 10 is a schematic flowchart of a flash data management method provided in Embodiment 4 of the present application;
图11是本申请实施例五提供的存储设备控制器的结构示意图;11 is a schematic structural diagram of a storage device controller according to Embodiment 5 of the present application;
图12是本申请实施例五提供的存储设备的结构示意图。FIG. 12 is a schematic structural diagram of a storage device provided in Embodiment 5 of the present application.
在现代电子信息产业中,存储器作为电子设备中存储数据的载体一直有着非常重要的地位。目前,市场上的存储器主要分为:易挥发存储器和非易挥发存储器。其中, NAND Flash是一种当前主流的非挥发存储介质,已经在智能手机、企业级固态硬盘,服务器,云端储存等大量应用。它能够在掉电后长时间保存数据,并且有着数据传输速度快、生产成本低、存储容量大等优点。In the modern electronic information industry, memory has always played a very important role as a carrier for storing data in electronic equipment. At present, the memory on the market is mainly divided into: volatile memory and non-volatile memory. Among them, NAND Flash is a current mainstream non-volatile storage medium, which has been widely used in smartphones, enterprise-level solid-state drives, servers, and cloud storage. It can save data for a long time after power failure, and has the advantages of fast data transmission speed, low production cost, and large storage capacity.
当前主流的NAND Flash厂商采用3D多层堆叠架构;随着堆叠层数越来越大,越来越多的存储单元(cell)挤压到很小的空间,cell与cell之间的相互干扰/漏电显著增加,存储介质的可靠性风险增大。存储单元间距离的减小以及氧化层厚度的降低使闪存中固有的错误越来越严重,传统的纠错码方法已无法满足闪存的可靠性需求,闪存的可靠性问题已经成为当前存储器研究领域的重要课题。The current mainstream NAND Flash manufacturers use a 3D multi-layer stacking structure; as the number of stacked layers becomes larger and larger, more and more memory cells (cells) are squeezed into a small space, and the mutual interference between cells/cells The leakage current increases significantly, and the reliability risk of the storage medium increases. The reduction of the distance between the memory cells and the reduction of the thickness of the oxide layer make the inherent errors in the flash memory more and more serious. The traditional error correction code method can no longer meet the reliability requirements of the flash memory. important subject.
其中,NAND Flash在达到最大擦写(PE)寿命规格之前,介质可能由于工艺缺陷(defect)出现关键读写错误,导致数据丢失,或需要系统耗费额外的流程来恢复数据。另外,在新一代介质早期应用时,由于生产/测试/参数调整未完全优化,出现早期介质失效的机率越大,出现数据丢失的风险也越大。Among them, before NAND Flash reaches the maximum erasing and writing (PE) life specification, the medium may have key read and write errors due to process defects, resulting in data loss, or the system needs to spend additional processes to recover data. In addition, in the early application of new-generation media, due to incomplete optimization of production/testing/parameter adjustment, the greater the probability of early media failure, the greater the risk of data loss.
图1是本申请实施例提供的NAND Flash组织架构示意图。如图1所示,NAND芯片100除去外围的一些控制单元后将存储单元划分为几个闪存片(plane),例如:第一plane110以及第二plane120。而各个plane中可以再分成不同的块(block),例如第一plane110中包括第一块110B。在使用过程中,如发生编程/擦除/读失败后,需要将这个块标记为坏块,即bad block,其中,隔离失效单元的最小单位即为一个block。继续参照图1,在NAND芯片组织结构中,在block以内划分为不同的串(string),string以下继续划分为不同的字线(Word Line,简称WL)。其中,擦除操作的最小单元为一个block,而编程操作的最小单元为一个WL。FIG. 1 is a schematic diagram of a NAND Flash organizational structure provided by an embodiment of the present application. As shown in FIG. 1 , after removing some peripheral control units, the NAND chip 100 divides the storage unit into several flash memory slices (planes), for example: a first plane 110 and a second plane 120 . Each plane can be further divided into different blocks (blocks), for example, the first plane 110 includes the first block 110B. In the process of use, if programming/erase/read failure occurs, the block needs to be marked as a bad block, that is, a bad block, where the smallest unit of isolation failure unit is a block. Continuing to refer to FIG. 1 , in the organizational structure of a NAND chip, the block is divided into different strings (strings), and the following strings are further divided into different word lines (Word Lines, WL for short). Among them, the minimum unit of the erase operation is a block, and the minimum unit of the programming operation is a WL.
业界通常只在对NAND Flash中的目标块进行擦写时,例如:在写失败或者擦失败发生时,将该目标块标记为坏块。然后,再通过额外的手段来恢复因写失败丢失的数据。The industry usually only marks the target block as a bad block when the target block in the NAND Flash is erased or written, for example, when a write failure or an erase failure occurs. Then, additional means are used to recover data lost due to write failures.
图2是本申请实施例提供的存储系统架构示意图。如图2所示,在本实施例提供的存储系统中,主要包括三块核心模组:控制器(Controller)、缓存器(Cache)以及存储介质(NAND Flash),其中,控制器是整个存储系统的控制大脑,承担固态硬盘读写命令的处理、数据分布管理、NAND Flash管理等功能。NAND flash部分可能是有1个晶片(die)或多个晶片组成,是数据最终存储的物理载体。缓存器部分用于缓存控制器发出的或缓存器中读取的数据。在SSD存储系统中会采用增加独立硬盘冗余阵列(Redundant Array of Independent Disks,简称RAID)die的方式保护数据。FIG. 2 is a schematic diagram of an architecture of a storage system provided by an embodiment of the present application. As shown in FIG. 2 , the storage system provided in this embodiment mainly includes three core modules: a controller (Controller), a buffer (Cache), and a storage medium (NAND Flash), wherein the controller is the entire storage The control brain of the system is responsible for the processing of read and write commands of the SSD, data distribution management, and NAND Flash management. The NAND flash part may consist of 1 die or multiple dies, and is the physical carrier for the final storage of data. The buffer part is used to buffer the data sent from the controller or read from the buffer. In the SSD storage system, the redundant array of independent hard disks (Redundant Array of Independent Disks, referred to as RAID) die will be added to protect data.
继续参照图2,可能其中一个die用来将剩余die中的数据做异或运算再写入RAID die中,在介质失效发生后通过读出同一条带上其他位置的数据来恢复丢失的数据;另外也有采用写数据缓存的方式,可以是先把数据写缓存中,待写到NAND成功后,才释放缓存。Continuing to refer to Figure 2, one of the dies may be used to XOR the data in the remaining dies and then write them into the RAID dies. After the media failure occurs, the lost data can be recovered by reading data from other locations on the same strip; In addition, there is also a way to write the data cache, which can be to write the data to the cache first, and release the cache after the writing to the NAND is successful.
当编程失败标记坏块后,如使用RAID等技术恢复,在RAID条带变长的背景下,需要读出的数据量以及处理时间增大,而如过使用高可靠性缓存,则会使介质成本增加。另外,一些擦除成功的块,不代表该块仍为好块,某些字线到衬底漏电/短路(WL-Channel leak/short)不会反馈擦除失效(Erase fail),只有严重的失效会导致擦除失败。这些轻微漏电会导致擦除态拖尾,使得下一次编程后擦除态(Erase态)与编 程态(编程态分为A/B/C/D/E/F/G,7个态)交叠而导致不可纠码字(Uncorrected Code word,简称UNC),并且这类擦除态拖尾也不会导致编程失败,也无法从编程状态中感知到。因此即使采用了高可靠性,在写入NAND存储时,编程成功后释放缓存的方式仍有可能出现数据丢失。When programming fails to mark bad blocks, such as using RAID and other technologies to restore, in the context of longer RAID stripes, the amount of data that needs to be read and the processing time increase, and if high-reliability cache is used, the medium will be damaged. Increased costs. In addition, some blocks that are successfully erased do not mean that the block is still a good block, and some word lines to the substrate leakage/short circuit (WL-Channel leak/short) will not feedback erase failure (Erase fail), only serious Invalidation will cause the erase to fail. These slight leakages will cause the erased state to tail, so that after the next programming, the erased state (Erase state) and the programming state (the programming state is divided into A/B/C/D/E/F/G, 7 states) intersect Overlap results in Uncorrected Code word (UNC), and this type of erased state trailing will not cause programming failure, nor can it be perceived from the programming state. Therefore, even if high reliability is adopted, when writing to NAND storage, data loss may still occur in the way of releasing the cache after successful programming.
而本申请实施例旨在通过NAND擦写时的一些本征参数来预测/评估目标块的状态,从而提前预测失效,从而进行相应的提前处理,以对闪存介质中的各个块进行对应的数据管理,进而来降低数据丢失的风险。However, the embodiment of the present application aims to predict/evaluate the state of the target block by using some intrinsic parameters during NAND erasing and writing, so as to predict the failure in advance, so as to perform corresponding advanced processing, so as to perform corresponding data on each block in the flash memory medium. management to reduce the risk of data loss.
本申请实施例提供的技术方式是利用NAND Flash介质的本征特性,主要利用编程潜伏期(T
program,简称T
PROG),擦除潜伏期(T
erase,简称T
ERS)以及擦除后空白页出错数检测(erased page FBC check)来判断NAND介质的健康状态,并通过后续的操作来提前预测/处理即将发生的失效。
The technical approach provided by the embodiments of the present application utilizes the intrinsic characteristics of the NAND Flash medium, and mainly utilizes the programming latency (T program , referred to as T PROG ), the erasing latency (T erase , referred to as T ERS ) and the number of blank page errors after erasing Detect (erased page FBC check) to judge the health status of NAND media, and predict/handle upcoming failures in advance through subsequent operations.
图3是本申请实施例一提供的闪存数据管理方法的流程示意图。如图3所示,本实施例提供的闪存数据管理方法,包括:FIG. 3 is a schematic flowchart of a flash data management method provided in Embodiment 1 of the present application. As shown in FIG. 3 , the flash data management method provided by this embodiment includes:
步骤101、获取闪存介质中的目标块在进行擦写操作时的本征参数。Step 101: Acquire intrinsic parameters of the target block in the flash memory medium during the erasing and writing operations.
其中,NAND Flash介质主要包含3种基本操作:读操作(Read)、编程操作(Program)、擦除操作(Erase)。除了Read时间较稳定外,NAND擦除操作以及编程操作时间会随着介质的磨损程度而出现变化,尤其在一些微弱的漏电发生时,当前的擦除操作或者编程操作可能未必表现出状态失效,但在擦除操作或者编程操作时间上却能表现出较大的变化。因此,可以通过获取闪存介质中的目标块在进行擦写操作时的本征参数来进行目标块的运行状态的预测,其中,本征参数包括完成擦写操作所需的操作时间。Among them, NAND Flash media mainly includes three basic operations: read operation (Read), programming operation (Program), and erase operation (Erase). In addition to the stable Read time, the NAND erase operation and programming operation time will change with the wear degree of the medium. Especially when some weak leakage occurs, the current erase operation or programming operation may not necessarily show state failure. But it can show a big change in erasing operation or programming operation time. Therefore, the prediction of the running state of the target block can be performed by obtaining intrinsic parameters of the target block in the flash medium during the erasing and writing operations, wherein the intrinsic parameters include the operation time required to complete the erasing and writing operations.
步骤102、根据本征参数以及预设本征参数阈值预测目标块的运行状态。Step 102: Predict the running state of the target block according to the intrinsic parameters and a preset intrinsic parameter threshold.
在获取到目标块在进行擦写操作时的本征参数之后,可以根据上述NAND介质本征参数,并且根据本征参数以及预设本征参数阈值预测目标块的运行状态,其中,运行状态包括正常状态以及异常状态。从而通过监测NAND的编程潜伏期以及擦除潜伏期来评估NAND介质的健康程度,以便提前预测目标块失效的发生。After acquiring the intrinsic parameters of the target block during the erasing and writing operation, the operating state of the target block can be predicted according to the intrinsic parameters of the NAND medium, and based on the intrinsic parameters and the preset intrinsic parameter threshold, wherein the operating state includes normal state and abnormal state. Therefore, the health of the NAND medium is evaluated by monitoring the programming latency and erasing latency of NAND, so as to predict the occurrence of target block failure in advance.
其中,本申请实施例可以是一种软件管理方案,通过存储系统控制器来实现整套应用策略。可以参照图2,编程潜伏期以及擦除潜伏期可以通过控制器检测编程操作和擦除操作的执行时间,擦除后空白页出错数检测可以通过控制器下发读操作读取空白页数据的方式进行。进而控制器可以对比离线预设的操作时间或者空白页出错数门限,如预测失效将要发生,则控制器将这个块定义为坏块,在后续操作中将其忽略,不再进行操作。The embodiment of the present application may be a software management solution, in which a whole set of application policies is implemented through a storage system controller. Referring to FIG. 2, the programming latency and the erasing latency can be detected by the controller to detect the execution time of the programming and erasing operations, and the number of blank page errors after erasing can be detected by the controller issuing a read operation to read the blank page data. . Furthermore, the controller can compare the operation time preset offline or the threshold for the number of blank page errors. If a failure is predicted to occur, the controller defines this block as a bad block, ignores it in subsequent operations, and no longer operates.
对于本征参数以及预设本征参数阈值的比较,可以是包括以下三方面子方案,分别为:For the comparison of intrinsic parameters and preset intrinsic parameter thresholds, the following three sub-schemes can be included, namely:
1、通过编程潜伏期预来预设测编程操作失败;1. Pre-predict the programming operation failure by programming the latency prediction;
2、通过编程潜伏期来预测过编程问题;2. Predicted programming problems through programming latency;
3、通过擦除潜伏期及擦除后FBC check来预测失效。3. Predict failure by erasing latency and FBC check after erasing.
而实际操作时,还可以是可将上述的三个子方案进行任意组合后进行预测,也可只采用某一单独方案进行。In actual operation, the above three sub-schemes may be combined arbitrarily for prediction, or only a single scheme may be used for prediction.
步骤103、根据预测的运行状态对目标块进行后续的数据管理。Step 103: Perform subsequent data management on the target block according to the predicted running state.
在根据本征参数以及预设本征参数阈值预测目标块的运行状态之后,控制器可以根据目标块所预测的运行状态,对该目标块进行后续的数据管理。After predicting the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the controller may perform subsequent data management on the target block according to the predicted running state of the target block.
其中,若对于目标块所预测的运行状态为异常状态,则说明该目标块存在较高的失效风险,因此,为了降低数据丢失风险,可以停止对目标块进行写操作或者编程操作,避免新写入的数据发生失效。但是,对于目标块所预测的运行状态为异常状态,则说明该目标块失效风险较低,则在该目标块中存储数据的可靠性较高,因此,可以继续对该目标块进行写操作或者编程操作。Among them, if the predicted operating state of the target block is abnormal, it means that the target block has a high risk of failure. Therefore, in order to reduce the risk of data loss, the write operation or programming operation on the target block can be stopped to avoid new writing. The entered data is invalid. However, if the predicted running state of the target block is abnormal, it means that the failure risk of the target block is low, and the reliability of storing data in the target block is high. Therefore, you can continue to write to the target block or programming operation.
此外,当对于目标块所预测的运行状态为异常状态,为了进一步保证该目标块中已经存在的数据的丢失风险,还可以对该目标块中的存储数据进行数据搬移。In addition, when the predicted running state of the target block is an abnormal state, in order to further ensure the risk of loss of data already existing in the target block, data movement may also be performed on the stored data in the target block.
而对于控制器在进行擦写数据过程中,可以通过获取各个块的相关标识码以预测该块的运行状态,其中,对于预测为异常状态的块会被标记为坏块,例如,可以是通过将该块的标识位配置为特定字段来进行坏块标识。In the process of erasing and writing data, the controller can obtain the relevant identification code of each block to predict the running state of the block, and the block predicted to be in an abnormal state will be marked as a bad block. The identification bit of the block is configured as a specific field for bad block identification.
在本实施例中,通过获取闪存介质中的目标块在进行擦写操作时的本征参数,然后根据本征参数以及预设本征参数阈值预测目标块的运行状态,从而来评估闪存介质中各个块的健康程度,以根据各个块所预测的运行状态来对该块进行后续的数据管理,从而降低数据丢失风险,提升闪存介质的数据存储可靠性。In this embodiment, by acquiring the intrinsic parameters of the target block in the flash medium during the erasing and writing operation, and then predicting the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the evaluation of the flash medium The health level of each block is used to perform subsequent data management on the block according to the predicted operating state of each block, thereby reducing the risk of data loss and improving the data storage reliability of the flash medium.
在上述实施例的基础上,若预测的运行状态为异常状态,则在根据本征参数以及预设本征参数预测目标块的运行状态之后,可以将该目标块标记为坏块。从而通过目标块在进行擦写操作时的本征参数来提前预测失效并进行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。Based on the above embodiment, if the predicted operating state is an abnormal state, after predicting the operating state of the target block according to the intrinsic parameters and the preset intrinsic parameters, the target block may be marked as a bad block. Therefore, through the intrinsic parameters of the target block during the erasing and writing operations, the failure can be predicted in advance and the corresponding advanced processing is carried out, so as to reduce the additional operations generated after the failure occurs, further reduce the risk of data loss, and improve the data storage reliability of the flash medium. sex.
此外,若将目标块标记为坏块之后,还可以对目标块中的存储数据进行数据搬移。从而在目标块发生失效前,对目标块中的存储数据进行数据搬移,以进一步降低数据丢失的风险,提高数据存储的可靠性。In addition, after the target block is marked as a bad block, the data stored in the target block can also be moved. Therefore, before the target block fails, the data stored in the target block is moved to further reduce the risk of data loss and improve the reliability of data storage.
图4是本申请实施例二提供的闪存数据管理方法的流程示意图。如图4所示,本实施例提供的闪存数据管理方法,包括:FIG. 4 is a schematic flowchart of a flash data management method provided in Embodiment 2 of the present application. As shown in FIG. 4 , the flash data management method provided by this embodiment includes:
步骤201、获取闪存介质中的目标块在进行擦写操作时的本征参数。Step 201: Acquire intrinsic parameters of the target block in the flash medium during the erasing and writing operations.
由于编程操作时间会随着介质的磨损程度而出现变化,尤其在一些微弱的漏电发生时,当前的编程操作可能未必表现出状态失效,但在编程操作时间上却能表现出较大的变化,其中,编程潜伏期可以通过控制器检测编程操作的执行时间来获得。Since the programming operation time will change with the wear degree of the medium, especially when some weak leakage occurs, the current programming operation may not necessarily show a state failure, but it can show a large change in the programming operation time. Among them, the programming latency can be obtained by the controller detecting the execution time of the programming operation.
因此,在本步骤中,可以通过获取闪存介质中的目标块在进行编程操作时的编程潜伏期来进行目标块的运行状态的预测。Therefore, in this step, the prediction of the running state of the target block can be performed by obtaining the programming latency of the target block in the flash memory medium when the programming operation is performed.
步骤202、判断编程潜伏期是否在预设编程时间范围。若判断结果为是,则执行步骤204;若判断结果为否,则执行步骤203。Step 202: Determine whether the programming latency is within a preset programming time range. If the judgment result is yes, go to step 204; if the judgement result is no, go to step 203.
在本步骤中,在获取到编程潜伏期之后,还可以将编程潜伏期与预设编程时间范围进行比较,从而预测目标块的运行状态。其中,预设编程时间范围可以是根据正常的编程时间范围进行确定。In this step, after the programming latency is acquired, the programming latency can also be compared with a preset programming time range, so as to predict the running state of the target block. The preset programming time range may be determined according to a normal programming time range.
步骤203、预测运行状态为异常状态。 Step 203 , predicting that the running state is an abnormal state.
若编程潜伏期大于预设编程时间上限值,或者编程潜伏期小于预设编程时间下限值,均可以预测运行状态为异常状态。If the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time lower limit, it can be predicted that the operating state is an abnormal state.
其中,当潜伏期大于预设编程时间上限值时,还可以获取目标块中各个字线的字线编程时间。而上述编程潜伏期包括目标块中各个字线的字线编程时间,若存在至少一个字线编程时间大于预设字线编程时间上限值,则预测运行状态为异常状态,预设编程时间上限值包括预设字线编程时间上限值。Wherein, when the latency period is greater than the preset programming time upper limit value, the word line programming time of each word line in the target block can also be obtained. The above programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset word line programming time upper limit, the predicted operating state is an abnormal state, and the preset programming time upper limit Values include preset word line programming time upper limit values.
具体的,字线与字线之间(WL-WL),或者字线与通道(WL-channel)之间的漏电在发生初期,可能只是微小的漏电,不会立刻发生编程失败,但由于存在漏电,会造成WL上的编程电压下降,导致编程效率降低,编程潜伏期异常升高,但未达到编程失败发生的程度。Specifically, the leakage between the word line and the word line (WL-WL), or between the word line and the channel (WL-channel) may be only a small leakage in the early stage, and the programming failure will not occur immediately, but due to the existence of Leakage will cause the programming voltage on the WL to drop, resulting in a decrease in programming efficiency and an abnormal increase in programming latency, but it does not reach the level of programming failure.
图5是本申请根据一实施例示出的编程潜伏期测试结果示意图。如图5所示,横轴为目标块的擦写循环次数,纵轴为编程潜伏期,4组分别为同一层(layer)上的4条共用WL金属层但不同channel的四条WL,编程顺序从上到下,为一次循环。可见随着擦写循环次数的增加,编程潜伏期缓慢减小,但到了擦写循环次数为7500附近,第一WL和第二条WL的编程时间突然异常升高,但未出现编程失败,当编程进行到第三条WL时发生了编程失败,即第四条WL无法继续编程。其中,参照图5,L10为第一WL所对应的编程潜伏期测试曲线,L20为第二WL所对应的编程潜伏期测试曲线,L30为第三WL所对应的编程潜伏期测试曲线,L40为第四WL所对应的编程潜伏期测试曲线。FIG. 5 is a schematic diagram of a programming latency test result according to an embodiment of the present application. As shown in Figure 5, the horizontal axis is the number of erase/write cycles of the target block, the vertical axis is the programming latency, and the four groups are four WLs on the same layer that share the WL metal layer but different channels. The programming sequence is from From top to bottom, it is a cycle. It can be seen that with the increase of the number of erase/write cycles, the programming latency decreases slowly, but when the number of erase/write cycles is around 7500, the programming time of the first WL and the second WL suddenly increases abnormally, but there is no programming failure. A programming failure occurs when the third WL is reached, that is, the fourth WL cannot continue programming. 5, L10 is the programming latency test curve corresponding to the first WL, L20 is the programming latency test curve corresponding to the second WL, L30 is the programming latency test curve corresponding to the third WL, and L40 is the fourth WL The corresponding programming latency test curve.
此外,在具体实验中,对于测试中发生编程操作失败的案例,全部在发生之前出现前面WL的编程时间异常。因此,这一类编程潜伏期的异常升高是很明显的异常信号,因此,可以用来提前发现编程失败的发生。In addition, in the specific experiment, for the cases where the programming operation fails in the test, all the programming time exceptions of the previous WL occurred before the occurrence. Therefore, an abnormal increase in this type of programming latency is an obvious abnormal signal, and therefore, can be used to detect the occurrence of programming failure in advance.
而当编程潜伏期小于预设编程时间下限值,也可以预测运行状态为异常状态。其中,上述本征参数还可以包括擦写次数,预设编程时间上限值以及预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。And when the programming latency is less than the preset programming time lower limit value, the running state can also be predicted to be an abnormal state. Wherein, the above-mentioned intrinsic parameters may also include the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of erasing and writing.
具体的,闪存介质随着磨损次数的增加,会导致隧穿氧化层因受到反复电压压力后,氧化层中的缺陷会逐渐增多,使电子更容易借助缺陷进入电荷陷阱层(charge trap layer),反应在编程潜伏期上则表现为编程速度加快,编程潜伏期下降。编程速度加快到一定的阈值会导致每次电压脉冲获取的电子数增多,使得编程精度下降,反应在颗粒表现上则为过编程,即编程后的阈值电压较预设的高,最终反应为读数据错误上升,甚至导致UNC。Specifically, with the increase of the wear times of the flash memory medium, the defects in the oxide layer will gradually increase after the tunnel oxide layer is subjected to repeated voltage pressure, making it easier for electrons to enter the charge trap layer through the defects. The response in the programming latency is that the programming speed increases and the programming latency decreases. Speeding up the programming speed to a certain threshold will lead to an increase in the number of electrons acquired by each voltage pulse, resulting in a decrease in programming accuracy, which is reflected in particle performance as over-programming, that is, the programmed threshold voltage is higher than the preset value, and the final response is read Data errors are on the rise, even leading to UNC.
通过测试发现,存在过编程现象的闪存介质,其编程潜伏期远小于其他正常的介质。图6是本申请根据另一实施例示出的编程潜伏期测试结果示意图。如图6所示,纵轴为编程潜伏期,横轴为每个页(page)最大的出错数。从图中可见,比特出错数(Fail Bit Count,简称FBC)增大的页,即图中所示S1区域,其编程潜伏期均处于较小值区间。Through testing, it is found that the flash memory medium with over-programmed phenomenon has a much shorter programming latency than other normal mediums. FIG. 6 is a schematic diagram of a programming latency test result according to another embodiment of the present application. As shown in FIG. 6 , the vertical axis is the programming latency, and the horizontal axis is the maximum number of errors per page. It can be seen from the figure that the page with an increased Fail Bit Count (FBC for short), that is, the S1 area shown in the figure, has a programming latency in a smaller range.
可以对图6中S1区域分析这些FBC较大page的阈值电压分布。图7是图6所示S1区域部分的电压分布示意图,如图7所示,可以发现明显的过编程问题,且这种过编程导致的出错数升高是由于电压谷底抬升,即使偏电压读取也无法恢复。其中,图 7中横轴表示阈值电压的值,纵轴表示处于该阈值电压下的存储单元个数,通常三层单元(TLC)一个字线下所有的存储单元分布呈8个态,除了erase态外,如图7所示从左至右分别为A/B/C/D/E/F/G态,L1表示图6总S1区域出错数较大page的阈值电压分布,L2/L3为正常出错数page的阈值电压分布。The threshold voltage distributions of these larger pages of FBCs can be analyzed for the S1 region in Figure 6. Figure 7 is a schematic diagram of the voltage distribution in the S1 region shown in Figure 6. As shown in Figure 7, an obvious over-programming problem can be found, and the increase in the number of errors caused by such over-programming is due to the rise of the voltage valley, even if the bias voltage reads It cannot be recovered. Among them, the horizontal axis in FIG. 7 represents the value of the threshold voltage, and the vertical axis represents the number of memory cells under the threshold voltage. Generally, all memory cells under a word line of a three-level cell (TLC) are distributed in 8 states, except erase. Outside the state, as shown in Figure 7, from left to right are A/B/C/D/E/F/G states, L1 represents the threshold voltage distribution of the page with a large number of errors in the total S1 area of Figure 6, and L2/L3 are The threshold voltage distribution of the normal error number page.
因此,可以利用编程潜伏期的减小趋势来评估或者预测存储介质的健康状态,可离线测得样本,例如:编程潜伏期随PE次数的变化规律,以及导致出现过编程问题的编程潜伏期阈值,从而应用于在线监测。当编程潜伏期下降到一定的阈值时,对相应的目标块提前进行处理。Therefore, the decreasing trend of programming latency can be used to evaluate or predict the health state of the storage medium, and samples can be measured offline, such as the variation of programming latency with the number of PEs, and the programming latency threshold that causes over-programming problems. for online monitoring. When the programming latency drops to a certain threshold, the corresponding target block is processed in advance.
步骤204、预测运行状态为正常状态。 Step 204, predicting that the operating state is a normal state.
在本实施例中,通过将编程潜伏期与预设编程时间范围进行比较,从而预测目标块的运行状态,若预测的运行状态为异常状态,则在根据本征参数以及预设本征参数预测目标块的运行状态之后,可以将该目标块标记为坏块。从而通过目标块在进行擦写操作时的本征参数来提前预测失效并进行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。In this embodiment, the operating state of the target block is predicted by comparing the programming latency with the preset programming time range. If the predicted operating state is an abnormal state, the target block is predicted according to the intrinsic parameters and the preset intrinsic parameters. After the running state of the block, the target block can be marked as bad. Therefore, the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advanced processing is carried out, which reduces the extra operation after the failure occurs, further reduces the risk of data loss, and improves the data storage reliability of the flash medium. sex.
步骤205、根据预测的运行状态对目标块进行后续的数据管理。Step 205: Perform subsequent data management on the target block according to the predicted running state.
在根据本征参数以及预设本征参数阈值确定目标块的运行状态之后,控制器可以根据目标块所预测的运行状态,对该目标块进行后续的数据管理。After determining the operating state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, the controller may perform subsequent data management on the target block according to the predicted operating state of the target block.
其中,若对于目标块所预测的运行状态为异常状态,则说明该目标块存在较高的失效风险,因此,为了降低数据丢失风险,可以停止对目标块进行写操作或者编程操作,避免新写入的数据发生失效。但是,对于目标块所预测的运行状态为异常状态,则说明该目标块失效风险较低,则在该目标块中存储数据的可靠性较高,因此,可以继续对该目标块进行写操作或者编程操作。并且,为了后续对该目标块进行识别,还可以是将该目标块标记为坏块。Among them, if the predicted operating state of the target block is abnormal, it means that the target block has a high risk of failure. Therefore, in order to reduce the risk of data loss, the write operation or programming operation on the target block can be stopped to avoid new writing. The entered data is invalid. However, if the predicted running state of the target block is abnormal, it means that the failure risk of the target block is low, and the reliability of storing data in the target block is high. Therefore, you can continue to write to the target block or programming operation. Moreover, in order to identify the target block subsequently, the target block may also be marked as a bad block.
值得说明的,若目标块的运行状态预测为异常状态时,可以只是将该目标块标记坏块,也可以只是停止对目标块进行写操作或者编程操作,还可以只是对目标块中的存储数据进行数据搬移,还可以是上述三种方式的任意组合。It is worth noting that if the running state of the target block is predicted to be abnormal, the target block can be marked as a bad block, the write operation or programming operation can be stopped on the target block, or the stored data in the target block can be stopped. The data migration can also be any combination of the above three methods.
图8是本申请实施例三提供的闪存数据管理方法的流程示意图。如图8所示,本实施例提供的闪存数据管理方法,包括:FIG. 8 is a schematic flowchart of a flash data management method provided in Embodiment 3 of the present application. As shown in FIG. 8 , the flash data management method provided by this embodiment includes:
步骤301、获取闪存介质中的目标块在进行擦写操作时的本征参数。Step 301: Acquire intrinsic parameters of the target block in the flash memory medium during the erasing and writing operations.
由于擦写操作时间会随着介质的磨损程度而出现变化,尤其在一些微弱的漏电发生时,当前的擦除操作可能未必表现出状态失效,但在擦写操作时间上却能表现出较大的变化,其中,擦写潜伏期可以通过控制器检测编程操作的执行时间来获得。Since the erasing operation time will change with the degree of wear of the medium, especially when some weak leakage occurs, the current erasing operation may not necessarily show a state failure, but it can show a large amount of time in the erasing and writing operation time. Variations, where the erase-write latency can be obtained by the controller detecting the execution time of the programming operation.
因此,在本步骤中,可以通过获取闪存介质中的目标块在进行擦写操作时的擦写潜伏期来进行目标块的运行状态的预测。Therefore, in this step, the prediction of the running state of the target block can be performed by obtaining the erasing latency of the target block in the flash medium when the erasing operation is performed.
步骤302、判断擦除潜伏期是否大于预设擦除时间上限值。若判断结果为是,则执行步骤303;若判断结果为否,则执行步骤304。 Step 302, judging whether the erasing latency is greater than the preset upper limit of erasing time. If the judgment result is yes, step 303 is executed; if the judgment result is no, step 304 is executed.
步骤303、预测运行状态为异常状态。 Step 303 , predicting that the running state is an abnormal state.
若擦除潜伏期大于预设擦除时间上限值,则预测运行状态为异常状态。可选的,还可以在确定擦除潜伏期大于预设擦除时间上限值之后,继续读取擦除操作比特出错 数,若比特出错数大于预设比特出错数,则预测运行状态为异常状态。If the erasing latency is greater than the preset upper limit of erasing time, the predicted operating state is an abnormal state. Optionally, after it is determined that the erasing latency is greater than the preset upper limit of erasing time, continue to read the number of bit errors in the erasing operation. If the number of bit errors is greater than the preset number of bit errors, the predicted operating state is abnormal. .
具体的,由于擦除时所产生的高电势差,很多隧穿氧化层(tunnel Oxide)击穿会发生在擦除循环过程中。WL-Channel漏电会使擦除电压下降,导致擦除潜伏期发生异常升高,且漏电WL会产生擦除态拖尾,由于单个WL擦除态拖尾很可能不会反馈擦除失效,在后续编程时导致Erase态与编程A态交叠,造成数据不可恢复,或者直接在下一个编程循环中出现编程失败。Specifically, due to the high potential difference generated during erasing, many tunnel oxide breakdowns occur during erasing cycles. The leakage of WL-Channel will cause the erase voltage to drop, resulting in an abnormal increase in the erase latency, and the leakage of WL will cause the erased state tail. Since a single WL erased state tail is likely not to feedback the erasure failure, in the follow-up During programming, the Erase state and the programming A state overlap, resulting in unrecoverable data, or programming failure directly in the next programming cycle.
图9是本申请根据一实施例示出的比特出错数测试结果示意图。如图9所示,数据表明,编程失败发生前的擦除操作未反馈擦除失败,但Erased FBC(圆点为擦除后FBC值,纵轴为FBC,横轴为擦除循环数)读取已表现出异常,而下一个编程循环即出现了编程失败(叉点为编程后FBC值,此处因编程失败,因此读出的出错数非常高)。因此,可首先通过判断擦除时间的变化,如擦除时间异常变长,则进行读取擦除态的FBC数,监测由于轻微漏电导致的擦除态拖尾,提前预测失效。FIG. 9 is a schematic diagram illustrating a test result of the number of bit errors according to an embodiment of the present application. As shown in Figure 9, the data shows that the erase operation before the programming failure did not feedback the erase failure, but the Erased FBC (the dot is the FBC value after erasing, the vertical axis is the FBC, and the horizontal axis is the number of erase cycles) read Fetch has shown abnormality, and programming failure occurs in the next programming cycle (the cross point is the FBC value after programming, where the number of errors read is very high because of programming failure). Therefore, firstly, by judging the change of the erasing time, if the erasing time is abnormally long, read the FBC number in the erasing state, monitor the tailing of the erasing state caused by slight leakage, and predict the failure in advance.
步骤304、预测运行状态为正常状态。 Step 304, predicting that the operating state is a normal state.
在本实施例中,通过将擦除潜伏期与预设擦除时间上限值进行比较,从而预测目标块的运行状态,若预测的运行状态为异常状态,则在根据本征参数以及预设本征参数预测目标块的运行状态之后,可以将该目标块标记为坏块。从而通过目标块在进行擦写操作时的本征参数来提前预测失效并进行相应的提前处理,减小因失效发生后产生的额外操作,进一步降低数据丢失的风险,提升闪存介质的数据存储可靠性。In this embodiment, the operating state of the target block is predicted by comparing the erasing latency with the preset upper limit value of erasing time. If the predicted operating state is an abnormal state, the After predicting the running state of the target block based on the characteristic parameters, the target block can be marked as a bad block. Therefore, the failure is predicted in advance by the intrinsic parameters of the target block during the erasing and writing operation, and the corresponding advanced processing is carried out, which reduces the extra operation after the failure occurs, further reduces the risk of data loss, and improves the data storage reliability of the flash medium. sex.
步骤305、根据预测的运行状态对目标块进行后续的数据管理。Step 305: Perform subsequent data management on the target block according to the predicted running state.
其中,对于步骤305的具体实现方式可以参照图4所示实施例中步骤205的具体描述,此处不再进行赘述。For the specific implementation of step 305, reference may be made to the specific description of step 205 in the embodiment shown in FIG. 4 , which will not be repeated here.
图10是本申请实施例四提供的闪存的闪存数据管理方法的流程示意图。如图8所示,本实施例提供的闪存数据管理方法,包括:FIG. 10 is a schematic flowchart of a flash data management method of a flash memory provided by Embodiment 4 of the present application. As shown in FIG. 8 , the flash data management method provided by this embodiment includes:
步骤401、选择目标块的字线开始写入数据。 Step 401 , select the word line of the target block to start writing data.
步骤402、编程完成后记录编程潜伏期。Step 402: Record the programming latency after programming is completed.
在编程操作时,当对目标块开始编程时,控制器记录每个WL的编程时间与擦写循环数,并且与离线测得的编程潜伏期与磨损后擦写循环数的预设编程时间范围做对比。During the programming operation, when programming the target block, the controller records the programming time and the number of erase/write cycles of each WL, and compares it with the programming latency measured offline and the preset programming time range of the number of erase/write cycles after wear. Compared.
步骤403、判断编程潜伏期是否在预设编程时间范围。若判断结果为是,则执行步骤405,若判断结果为否,则执行步骤404。Step 403: Determine whether the programming latency is within a preset programming time range. If the judgment result is yes, step 405 is executed, and if the judgment result is no, step 404 is executed.
由于编程操作时间会随着介质的磨损程度而出现变化,尤其在一些微弱的漏电发生时,当前的编程操作可能未必表现出状态失效,但在编程操作时间上却能表现出较大的变化,其中,编程潜伏期可以通过控制器检测编程操作的执行时间来获得。Since the programming operation time will change with the wear degree of the medium, especially when some weak leakage occurs, the current programming operation may not necessarily show a state failure, but it can show a large change in the programming operation time. Among them, the programming latency can be obtained by the controller detecting the execution time of the programming operation.
在本步骤中,在获取到编程潜伏期之后,还可以将编程潜伏期与预设编程时间范围进行比较,从而预测目标块的运行状态。其中,预设编程时间范围可以是根据正常的编程时间范围进行确定。In this step, after the programming latency is acquired, the programming latency can also be compared with a preset programming time range, so as to predict the running state of the target block. The preset programming time range may be determined according to a normal programming time range.
步骤404、判断编程潜伏期是否大于预设编程时间上限值。若判断结果为是,则执行步骤410,若判断结果为否,则执行步骤4041。Step 404: Determine whether the programming latency is greater than the preset programming time upper limit. If the judgment result is yes, step 410 is executed, and if the judgment result is no, step 4041 is executed.
其中,当潜伏期大于预设编程时间上限值时,还可以获取目标块中各个字线的字 线编程时间。而上述编程潜伏期包括目标块中各个字线的字线编程时间,若存在至少一个字线编程时间大于预设字线编程时间上限值,则预测运行状态为异常状态,预设编程时间上限值包括预设字线编程时间上限值。Wherein, when the latency period is greater than the preset programming time upper limit value, the word line programming time of each word line in the target block can also be obtained. The above programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset word line programming time upper limit, the predicted operating state is an abnormal state, and the preset programming time upper limit Values include preset word line programming time upper limit values.
步骤4041、读取验证。 Step 4041, read verification.
步骤4042、判断读取验证是否通过。若判断结果为否,则执行步骤410,若判断结果为是,则执行步骤405。Step 4042: Determine whether the read verification is passed. If the judgment result is no, step 410 is executed, and if the judgment result is yes, step 405 is executed.
而当编程潜伏期小于预设编程时间下限值,也可以预测运行状态为异常状态。其中,预设编程时间上限值以及预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。当编程潜伏期到一定的阈值时,对相应的目标块提前进行处理。And when the programming latency is less than the preset programming time lower limit value, the running state can also be predicted to be an abnormal state. The upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing. When the programming latency reaches a certain threshold, the corresponding target block is processed in advance.
步骤405、继续下一个字线编程。Step 405: Continue to program the next word line.
步骤406、对目标块进行擦除操作,记录擦除潜伏期。 Step 406 , perform an erasing operation on the target block, and record the erasing latency.
由于擦写操作时间会随着介质的磨损程度而出现变化,尤其在一些微弱的漏电发生时,当前的擦除操作可能未必表现出状态失效,但在擦写操作时间上却能表现出较大的变化,其中,擦写潜伏期可以通过控制器检测编程操作的执行时间来获得。Since the erasing operation time will change with the degree of wear of the medium, especially when some weak leakage occurs, the current erasing operation may not necessarily show a state failure, but it can show a large amount of time in the erasing and writing operation time. Variations, where the erase-write latency can be obtained by the controller detecting the execution time of the programming operation.
因此,在本步骤中,可以通过获取闪存介质中的目标块在进行擦写操作时的擦写潜伏期来进行目标块的运行状态的预测。Therefore, in this step, the prediction of the running state of the target block can be performed by obtaining the erasing latency of the target block in the flash medium when the erasing operation is performed.
步骤407、判断擦除潜伏期是否大于预设擦除时间上限值。若判断结果为否,则执行步骤409,若判断结果为是,则执行步骤4081。Step 407: Determine whether the erasing latency is greater than the preset upper limit of erasing time. If the judgment result is no, go to step 409, and if the judgement result is yes, go to step 4081.
步骤4081、读取擦除操作比特出错数。Step 4081: Read the number of bit errors in the erase operation.
步骤4082、判断比特出错数大于预设比特出错数。若判断结果为否,则执行步骤409,若判断结果为是,则执行步骤410。Step 4082: Determine that the number of bit errors is greater than the preset number of bit errors. If the judgment result is no, step 409 is executed, and if the judgment result is yes, step 410 is executed.
若擦除潜伏期大于预设擦除时间上限值,则预测运行状态为异常状态。可选的,还可以在确定擦除潜伏期大于预设擦除时间上限值之后,继续读取擦除操作比特出错数,若比特出错数大于预设比特出错数,则预测运行状态为异常状态。If the erasing latency is greater than the preset upper limit of erasing time, the predicted operating state is an abnormal state. Optionally, after it is determined that the erasing latency is greater than the preset upper limit of erasing time, continue to read the number of bit errors in the erasing operation. If the number of bit errors is greater than the preset number of bit errors, the predicted operating state is abnormal. .
在编程操作时,当对目标开始进行编程操作时,控制器记录每个WL的编程时间与擦写循环数,并且与离线测得的编程时间与磨损循环数的关系作对比,当检测到当前的编程潜伏期处于当前循环数值所对应的预设编程时间安全范围内,则认为该WL处于健康状态,则可以继续下一步操作,当检测到当前编程时间大于该循环数值的预设编程时间安全范围时,则直接认定目标块为坏块,并标记坏块以及进行必要的数据搬移。当检测到当前编程时间小于该循环数值的预设编程时间安全范围时,则认为该目标块处于风险状态下,则马上对编程完的WL进行读取验证(read verify),以确定是否出现FBC升高的情况,如发现FBC超出一定阈值则将其标为坏块。During the programming operation, when the target starts to perform the programming operation, the controller records the programming time and the number of erasing and writing cycles of each WL, and compares it with the relationship between the programming time and the number of wear cycles measured offline. If the programming latency is within the preset programming time safety range corresponding to the current cycle value, the WL is considered to be in a healthy state, and the next step can be continued. When it is detected that the current programming time is greater than the preset programming time safety range of the cycle value When the target block is directly identified as a bad block, the bad block is marked and the necessary data movement is performed. When it is detected that the current programming time is less than the preset programming time safety range of the cycle value, it is considered that the target block is in a risk state, and the programmed WL is immediately read and verified to determine whether FBC occurs. In the case of rising, if the FBC is found to exceed a certain threshold, it will be marked as a bad block.
在擦除操作时,当对目标块开始进行擦除操作时,控制器记录擦除潜伏期,将擦除潜伏期与离线测得的擦除时间与磨损循环数的关系作对比,当发现擦除潜伏期超出当前循环数值的擦除时间安全区间时,则控制器下发读取指令,对指定页进行擦除后的空白页读取出错数,如发现比特出错数大于预设比特出错数,则将该目标块标记为坏块。During the erasing operation, when the target block starts to be erased, the controller records the erasing latency, and compares the erasing latency with the relationship between the erasing time and the number of wear cycles measured offline. When the erasing latency is found When the erasure time safety interval of the current cycle value is exceeded, the controller sends a read command to read the number of errors in the blank page after erasing the specified page. If the number of bit errors is found to be greater than the preset number of bit errors, it will The target block is marked as bad.
步骤409、更新擦除循环次数。 Step 409 , update the erasing cycle times.
步骤410、将目标块标记为坏块。Step 410: Mark the target block as a bad block.
图11是本申请实施例五提供的存储设备控制器的结构示意图。如图11所示,本实施例提供的存储设备控制器500,包括:处理器501以及缓存器502;其中,处理器501从缓存器502中获取闪存介质中的目标块在进行擦写操作时的本征参数,而本征参数包括擦写操作的执行时间;然后,处理器501根据本征参数以及预设本征参数阈值预测目标块的运行状态,并将运行状态存储至缓存器502,运行状态包括正常状态以及异常状态;接着,处理器501根据预测的运行状态对目标块进行的数据管理。FIG. 11 is a schematic structural diagram of a storage device controller according to Embodiment 5 of the present application. As shown in FIG. 11 , the storage device controller 500 provided in this embodiment includes: a processor 501 and a buffer 502 ; wherein, the processor 501 obtains a target block in the flash medium from the buffer 502 when performing an erasing and writing operation and the intrinsic parameters include the execution time of the erase and write operations; then, the processor 501 predicts the running state of the target block according to the intrinsic parameters and the preset intrinsic parameter threshold, and stores the running state in the buffer 502, The running state includes a normal state and an abnormal state; then, the processor 501 performs data management on the target block according to the predicted running state.
在一种可能的设计中,若处理器501从缓存器502中获取到的目标块的运行状态为异常状态,则处理器501停止对目标块进行写操作或者编程操作。In a possible design, if the running state of the target block acquired by the processor 501 from the buffer 502 is an abnormal state, the processor 501 stops writing or programming the target block.
在一种可能的设计中,若处理器501从缓存器502中获取到的目标块的运行状态为异常状态,则处理器501用于对目标块中的存储数据进行数据搬移。In a possible design, if the running state of the target block acquired by the processor 501 from the buffer 502 is an abnormal state, the processor 501 is configured to perform data movement on the stored data in the target block.
在一种可能的设计中,若处理器501从缓存器502中获取到的目标块的运行状态为异常状态,则处理器501在缓存器502中将目标块标记为坏块。In a possible design, if the running state of the target block obtained by the processor 501 from the buffer 502 is an abnormal state, the processor 501 marks the target block as a bad block in the buffer 502 .
在一种可能的设计中,擦写操作包括编程操作,则本征参数包括目标块执行编程操作的编程潜伏期;若编程潜伏期大于预设编程时间上限值,或者编程潜伏期小于预设编程时间下限值,则预测运行状态为异常状态。In a possible design, the erasing and writing operations include programming operations, and the intrinsic parameters include the programming latency for the target block to perform the programming operation; if the programming latency is greater than the preset programming time upper limit, or the programming latency is less than the preset programming time limit, the predicted running state is abnormal state.
在一种可能的设计中,编程潜伏期包括目标块中各个字线的字线编程时间,若存在至少一个字线编程时间大于预设字线编程时间上限值,则预测运行状态为异常状态,预设编程时间上限值包括预设字线编程时间上限值,预设本征参数阈值包括目标块中各个字线的预设字线编程时间上限值。In a possible design, the programming latency includes the word line programming time of each word line in the target block. If there is at least one word line programming time greater than the preset upper limit value of the word line programming time, the predicted operating state is an abnormal state, The preset upper limit of programming time includes a preset upper limit of word line programming time, and the preset intrinsic parameter threshold includes a preset upper limit of word line programming time of each word line in the target block.
在一种可能的设计中,本征参数还包括擦写次数,预设编程时间上限值以及预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。In a possible design, the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit of the preset programming time and the lower limit of the preset programming time are determined according to the normal programming time corresponding to each number of times of erasing and writing.
在一种可能的设计中,擦写操作包括擦除操作,则本征参数包括目标块执行擦除操作的擦除潜伏期;若擦除潜伏期大于预设擦除时间上限值,则预测运行状态为异常状态。In a possible design, the erasing operation includes the erasing operation, and the intrinsic parameter includes the erasing latency of the target block to perform the erasing operation; if the erasing latency is greater than the preset upper limit value of the erasing time, the operating state is predicted is an abnormal state.
在一种可能的设计中,若擦除潜伏期大于预设擦除时间上限值,则读取擦除操作比特出错数,若比特出错数大于预设比特出错数,则预测运行状态为异常状态。In a possible design, if the erasing latency is greater than the preset upper limit value of the erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than the preset number of bit errors, the predicted operating state is an abnormal state .
图12是本申请实施例五提供的存储设备的结构示意图。如图12所示,本实施例提供的存储设备,包括闪存介质以及图11中所示的存储设备控制器。闪存介质部分可能是有1个晶片(die)或多个晶片组成,是数据最终存储的物理载体。其中,存储设备控制器用于对闪存介质中的各个块进行数据管理。FIG. 12 is a schematic structural diagram of a storage device provided in Embodiment 5 of the present application. As shown in FIG. 12 , the storage device provided in this embodiment includes a flash memory medium and the storage device controller shown in FIG. 11 . The flash media part may be composed of one die or multiple die, and is the physical carrier for the final storage of data. The storage device controller is used for data management of each block in the flash memory medium.
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention. should be included within the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.
Claims (19)
- 一种闪存数据管理方法,其特征在于,包括:A method for managing flash memory data, comprising:获取闪存介质中的目标块在进行擦写操作时的本征参数,其中,所述本征参数包括所述擦写操作的执行时间;Acquiring intrinsic parameters of the target block in the flash medium during the erasing and writing operations, wherein the intrinsic parameters include the execution time of the erasing and writing operations;根据所述本征参数以及预设本征参数阈值预测所述目标块的运行状态,所述运行状态包括正常状态以及异常状态;Predict the operating state of the target block according to the intrinsic parameter and a preset intrinsic parameter threshold, where the operating state includes a normal state and an abnormal state;根据预测的所述运行状态对所述目标块进行的数据管理。Data management of the target block according to the predicted operating state.
- 根据权利要求1所述的方法,其特征在于,若预测是所述异常状态,则所述根据预测的所述运行状态对所述目标块进行的数据管理,包括:The method according to claim 1, wherein if the prediction is the abnormal state, the data management performed on the target block according to the predicted operating state comprises:停止对所述目标块进行写操作或者编程操作。Stop writing or programming to the target block.
- 根据权利要求1或2所述的方法,其特征在于,若预测是所述异常状态,则所述根据所述运行状态对所述目标块进行后续的数据管理,包括:The method according to claim 1 or 2, wherein if the prediction is the abnormal state, the subsequent data management of the target block according to the operating state includes:对所述目标块中的存储数据进行数据搬移。Data movement is performed on the stored data in the target block.
- 根据权利要求2或3所述的方法,其特征在于,所述根据所述运行状态对所述目标块进行后续的数据管理,还包括:The method according to claim 2 or 3, wherein the performing subsequent data management on the target block according to the running state further comprises:将所述目标块标记为坏块。Mark the target block as bad.
- 根据权利要求1-4中任意一项所述的方法,其特征在于,所述擦写操作包括编程操作,则所述本征参数包括所述目标块执行所述编程操作的编程潜伏期;The method according to any one of claims 1-4, wherein the erasing and writing operations include programming operations, and the intrinsic parameters include a programming latency for the target block to perform the programming operations;若所述编程潜伏期大于预设编程时间上限值,或者所述编程潜伏期小于预设编程时间下限值,则预测所述运行状态为所述异常状态。If the programming latency is greater than the preset programming time upper limit value, or the programming latency is less than the preset programming time lower limit value, the operating state is predicted to be the abnormal state.
- 根据权利要求5所述的方法,其特征在于,所述编程潜伏期包括所述目标块中各个字线的字线编程时间,若存在至少一个所述字线编程时间大于预设字线编程时间上限值,则预测所述运行状态为所述异常状态,所述预设编程时间上限值包括所述预设字线编程时间上限值,所述预设本征参数阈值包括所述目标块中各个字线的预设字线编程时间上限值。The method according to claim 5, wherein the programming latency includes a word line programming time of each word line in the target block, and if there is at least one word line programming time greater than a preset word line programming time limit, the operating state is predicted to be the abnormal state, the preset upper limit of programming time includes the upper limit of the preset word line programming time, and the preset intrinsic parameter threshold includes the target block The preset upper limit value of word line programming time for each word line in .
- 根据权利要求5所述的方法,其特征在于,所述本征参数还包括擦写次数,所述预设编程时间上限值以及所述预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。The method according to claim 5, wherein the intrinsic parameter further includes the number of times of erasing and writing, and the upper limit value of the preset programming time and the lower limit of the preset programming time are based on the lower limit of each number of erasing and writing times. The corresponding normal programming time is determined.
- 根据权利要求1-4中任意一项所述的方法,其特征在于,所述擦写操作包括擦除操作,则所述本征参数包括所述目标块执行所述擦除操作的擦除潜伏期;The method according to any one of claims 1-4, wherein the erasing operation includes an erasing operation, and the intrinsic parameter includes an erasing latency for the target block to perform the erasing operation ;若所述擦除潜伏期大于预设擦除时间上限值,则预测所述运行状态为所述异常状态。If the erasing latency period is greater than a preset upper limit value of erasing time, it is predicted that the operating state is the abnormal state.
- 根据权利要求8所述的方法,其特征在于,若所述擦除潜伏期大于预设擦除时间上限值,则读取所述擦除操作比特出错数,若所述比特出错数大于预设比特出错数,则预测所述运行状态为所述异常状态。The method according to claim 8, wherein if the erasing latency is greater than a preset upper limit of erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is greater than a preset number of errors The number of bit errors is predicted, the operating state is predicted to be the abnormal state.
- 一种存储设备控制器,其特征在于,包括:处理器以及缓存器;A storage device controller, comprising: a processor and a buffer;所述处理器从所述缓存器中获取闪存介质中的目标块在进行擦写操作时的本征参数,其中,所述本征参数包括所述擦写操作的执行时间;The processor acquires, from the buffer, an intrinsic parameter of the target block in the flash medium during an erasing and writing operation, wherein the intrinsic parameter includes an execution time of the erasing and writing operation;所述处理器根据所述本征参数以及预设本征参数阈值确定所述目标块的运行状态, 并将所述运行状态存储至所述缓存器,所述运行状态包括正常状态以及异常状态;The processor determines an operating state of the target block according to the intrinsic parameter and a preset intrinsic parameter threshold, and stores the operating state in the buffer, where the operating state includes a normal state and an abnormal state;所述处理器根据预测的所述运行状态对所述目标块进行的数据管理。Data management of the target block by the processor according to the predicted operating state.
- 根据权利要求10所述的存储设备控制器,其特征在于,若所述处理器从所述缓存器中获取到的所述目标块的所述运行状态为所述异常状态,则所述处理器停止对所述目标块进行写操作或者编程操作。The storage device controller according to claim 10, wherein if the running state of the target block obtained by the processor from the buffer is the abnormal state, the processor Stop writing or programming to the target block.
- 根据权利要求10或11所述的存储设备控制器,其特征在于,若所述处理器从所述缓存器中获取到的所述目标块的所述运行状态为所述异常状态,则所述处理器用于对所述目标块中的存储数据进行数据搬移。The storage device controller according to claim 10 or 11, wherein if the running state of the target block acquired by the processor from the buffer is the abnormal state, the The processor is configured to perform data movement on the stored data in the target block.
- 根据权利要求11或12所述的存储设备控制器,其特征在于,若所述处理器从所述缓存器中获取到的所述目标块的所述运行状态为所述异常状态,则所述处理器在所述缓存器中将所述目标块标记为坏块。The storage device controller according to claim 11 or 12, wherein if the running state of the target block acquired by the processor from the buffer is the abnormal state, the The processor marks the target block as a bad block in the buffer.
- 根据权利要求10-13中任意一项所述的存储设备控制器,其特征在于,所述擦写操作包括编程操作,则所述本征参数包括所述目标块执行所述编程操作的编程潜伏期;The storage device controller according to any one of claims 10-13, wherein the erasing operation includes a programming operation, and the intrinsic parameter includes a programming latency for the target block to perform the programming operation ;若所述编程潜伏期大于预设编程时间上限值,或者所述编程潜伏期小于预设编程时间下限值,则预测所述运行状态为所述异常状态。If the programming latency is greater than the preset programming time upper limit value, or the programming latency is less than the preset programming time lower limit value, the operating state is predicted to be the abnormal state.
- 根据权利要求14所述的存储设备控制器,其特征在于,所述编程潜伏期包括所述目标块中各个字线的字线编程时间,若存在至少一个所述字线编程时间大于预设字线编程时间上限值,则预测所述运行状态为所述异常状态,所述预设编程时间上限值包括所述预设字线编程时间上限值,所述预设本征参数阈值包括所述目标块中各个字线的预设字线编程时间上限值。The storage device controller of claim 14, wherein the programming latency includes a word line programming time of each word line in the target block, and if there is at least one word line programming time greater than a preset word line programming time upper limit value, the operating state is predicted to be the abnormal state, the preset programming time upper limit value includes the preset word line programming time upper limit value, and the preset intrinsic parameter threshold includes all The preset upper limit value of the word line programming time for each word line in the target block.
- 根据权利要求14所述的存储设备控制器,其特征在于,所述本征参数还包括擦写次数,所述预设编程时间上限值以及所述预设编程时间下限值根据各个擦写次数下所对应的正常编程时间进行确定。The storage device controller according to claim 14, wherein the intrinsic parameter further comprises the number of times of erasing and writing, the upper limit value of the preset programming time and the lower limit value of the preset programming time according to each erasing and writing time The normal programming time corresponding to the number of times is determined.
- 根据权利要求10-13中任意一项所述的存储设备控制器,其特征在于,所述擦写操作包括擦除操作,则所述本征参数包括所述目标块执行所述擦除操作的擦除潜伏期;The storage device controller according to any one of claims 10-13, wherein the erasing operation includes an erasing operation, and the intrinsic parameter includes the target block performing the erasing operation. erasure latency;若所述擦除潜伏期大于预设擦除时间上限值,则预测所述运行状态为所述异常状态。If the erasing latency period is greater than a preset upper limit value of erasing time, it is predicted that the operating state is the abnormal state.
- 根据权利要求17所述的存储设备控制器,其特征在于,若所述擦除潜伏期大于预设擦除时间上限值,则读取所述擦除操作比特出错数,若所述比特出错数大于预设比特出错数,则预测所述运行状态为所述异常状态。The storage device controller according to claim 17, wherein if the erasing latency is greater than a preset upper limit of erasing time, the number of bit errors in the erasing operation is read, and if the number of bit errors is If it is greater than the preset number of bit errors, the running state is predicted to be the abnormal state.
- 一种存储设备,其特征在于,包括:闪存介质以及如权利要求10-18中任意一项所述的存储设备控制器;其中,所述存储设备控制器用于对所述闪存介质中的各个块进行数据管理。A storage device, comprising: a flash memory medium and the storage device controller according to any one of claims 10-18; wherein, the storage device controller is configured to process each block in the flash memory medium Conduct data management.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202080100778.3A CN115552383A (en) | 2020-08-03 | 2020-08-03 | Flash memory data management method, storage device controller and storage device |
PCT/CN2020/106548 WO2022027170A1 (en) | 2020-08-03 | 2020-08-03 | Flash memory data management method, storage device controller, and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/106548 WO2022027170A1 (en) | 2020-08-03 | 2020-08-03 | Flash memory data management method, storage device controller, and storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022027170A1 true WO2022027170A1 (en) | 2022-02-10 |
Family
ID=80119815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/106548 WO2022027170A1 (en) | 2020-08-03 | 2020-08-03 | Flash memory data management method, storage device controller, and storage device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115552383A (en) |
WO (1) | WO2022027170A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302633B (en) * | 2023-01-18 | 2024-04-09 | 北京得瑞领新科技有限公司 | Logical unit failure management method, device, medium and equipment of flash memory |
CN118538275B (en) * | 2024-07-15 | 2024-10-11 | 广东长兴半导体科技有限公司 | Dynamic wear leveling method and system for flash memory |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (en) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | Nonvolatile memory |
US20110191526A1 (en) * | 2007-12-21 | 2011-08-04 | Brent Haukness | Flash Memory Timing Pre-Characterization |
US8254172B1 (en) * | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
CN103678150A (en) * | 2013-12-23 | 2014-03-26 | 华为技术有限公司 | Method and device for using solid state disk |
CN108052287A (en) * | 2017-12-12 | 2018-05-18 | 深圳市创维软件有限公司 | Partition data management method, set-top box and the medium of a kind of nonvolatile memory |
US20180286485A1 (en) * | 2017-03-29 | 2018-10-04 | Toshiba Memory Corporation | Memory system controlling data erase for nonvolatile memory and control method for erasing data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9299455B2 (en) * | 2012-03-06 | 2016-03-29 | Hitachi, Ltd. | Semiconductor storage device having nonvolatile semiconductor memory |
US10366752B2 (en) * | 2016-12-11 | 2019-07-30 | Technion Research & Development Foundation Ltd. | Programming for electronic memories |
-
2020
- 2020-08-03 WO PCT/CN2020/106548 patent/WO2022027170A1/en active Application Filing
- 2020-08-03 CN CN202080100778.3A patent/CN115552383A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (en) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | Nonvolatile memory |
US20110191526A1 (en) * | 2007-12-21 | 2011-08-04 | Brent Haukness | Flash Memory Timing Pre-Characterization |
US8254172B1 (en) * | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
CN103678150A (en) * | 2013-12-23 | 2014-03-26 | 华为技术有限公司 | Method and device for using solid state disk |
US20180286485A1 (en) * | 2017-03-29 | 2018-10-04 | Toshiba Memory Corporation | Memory system controlling data erase for nonvolatile memory and control method for erasing data |
CN108052287A (en) * | 2017-12-12 | 2018-05-18 | 深圳市创维软件有限公司 | Partition data management method, set-top box and the medium of a kind of nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
CN115552383A (en) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9304856B2 (en) | Implementing ECC control for enhanced endurance and data retention of flash memories | |
CN108052414B (en) | Method and system for improving working temperature range of SSD | |
CN106776109B (en) | Solid state disk reading error detection device and method for detecting reasons of uncorrectable errors | |
KR102487553B1 (en) | Storage Device comprising repairable volatile memory and operating method of storage device | |
US9424927B2 (en) | Memory system, control system and method of predicting lifetime | |
US8887027B2 (en) | Solid-state mass storage device and method for failure anticipation | |
KR101608679B1 (en) | Torn write mitigation | |
US8910002B2 (en) | NAND flash-based storage device with built-in test-ahead for failure anticipation | |
DE102014115885B4 (en) | Health state of non-volatile memory | |
US20140237298A1 (en) | Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify | |
US9330783B1 (en) | Identifying word-line-to-substrate and word-line-to-word-line short-circuit events in a memory block | |
US20110173378A1 (en) | Computer system with backup function and method therefor | |
TWI566252B (en) | Method of performing wear management in non-volatile memory devices | |
US11348643B2 (en) | Identifying failure type in NVM programmed in SLC mode using a single programming pulse with no verification | |
CN109918022B (en) | SSD open card bad block table inheritance method | |
WO2022027170A1 (en) | Flash memory data management method, storage device controller, and storage device | |
US11688483B2 (en) | Managing block retirement for temporary operational conditions | |
JP2012517068A (en) | Memory device, memory management device, and memory management method | |
US20230161482A1 (en) | Memory device defect scanning | |
US20220137854A1 (en) | Rating memory devices based on performance metrics for various timing margin parameter settings | |
US8988799B1 (en) | Magnetic disk device and control method of magnetic disk | |
US20070277059A1 (en) | Storage device, control device, and error reporting method | |
US20120159280A1 (en) | Method for controlling nonvolatile memory apparatus | |
CN116153381A (en) | Flash memory particle life prediction method, device, equipment and readable storage medium | |
US10832790B1 (en) | Performance of non data word line maintenance in sub block mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20947863 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20947863 Country of ref document: EP Kind code of ref document: A1 |