Method and device for improving NAND read interference characteristic processing capability of solid state disk
By counting and verifying the number of reads of data blocks in solid-state drives, the data recycling process is optimized, and the data over-recycling problem caused by NAND flash memory reading interference is solved, and the performance of solid-state drives and the utilization efficiency of storage resources is improved.
Patent Information
- Application Number
- CN202411995916.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2044-12-31
AI Technical Summary
As the number of NAND flash memory stacking layers increases, the number of pages in a single data block increases, resulting in a decline in the data block's ability to resist read interference, and the data over-recycling caused by read interference is serious, affecting the performance of solid-state drives and the utilization efficiency of storage resources.
By reading the data block and counting the number of reads, if the number of reads is greater than the preset threshold, the data block is placed in the first queue and the page is marked as the state to be recovered. Verify the pages in the first queue. If there is a page that needs to be refreshed, put its information into the second queue for data recovery. The number of reads of data blocks updated after data recycling is completed.
It effectively prevents over-recycling of data caused by read interference, reduces data recovery amount, and improves the performance and service life of solid-state drives.
Smart Images

Figure CN119759294A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data storage technology, and in particular to a method and device for improving the ability of a solid-state hard disk to process NAND read disturbance characteristics. Background Art
[0002] As the number of NAND flash memory stacking layers increases, the number of pages in a single data block increases, resulting in the data block's ability to resist read disturbance becoming worse and worse. When the read disturbance threshold remains unchanged, the threshold of the number of reads per page becomes smaller and smaller, further exacerbating the problem of excessive data recovery caused by read interference. Excessive recovery will lead to a waste of storage resources, and the frequent triggering of background data will also greatly affect the performance of the SSD. Summary of the invention
[0003] In view of this, the purpose of the present invention is to provide a method and device for improving the ability of a solid-state drive to handle NAND read disturbance characteristics, thereby preventing excessive recovery of data in the entire data block under the influence of read disturbance, reducing the amount of data recovery, and improving the performance and service life of the solid-state drive.
[0004] In a first aspect, an embodiment of the present invention provides a method and device for improving the ability of a solid-state drive to handle NAND read disturbance characteristics, the method comprising: reading a data block and counting the number of reads; if the number of reads is greater than a preset read threshold, placing the data block in a first queue and marking the state of a page of valid data stored in the data block as a pending data recovery state; the first queue is a queue for pre-data recovery; the pages of valid data stored in the data blocks in the first queue are verified in turn to obtain a verification result; if the verification result indicates that there is a page for data refresh, the information of the page for data refresh is placed in a second queue for data recovery; the second queue is a queue for direct data recovery; after data recovery is completed, the number of reads of the data block is updated and the number of updates is recorded.
[0005] In a preferred embodiment of the present invention, before placing the data block into the first queue, the method further includes: determining whether the number of updates is greater than a preset update number threshold; if the number of updates is greater than or equal to the preset update number threshold, placing the data block into the second queue; if the number of updates is less than the preset update number threshold, placing the data block into the first queue.
[0006] In a preferred embodiment of the present invention, the pages of valid data stored in the data block in the first queue are verified in sequence to obtain a verification result, including: performing a first read operation of a default read level on the current page in the data block, obtaining a decoding status of the first read operation and recording the number of bit1 in the original data as Cnt X; if the decoding status is that the decoding is unsuccessful, retrying the first read operation of the default read level based on a pre-set retry option to obtain a retry reading result; if the retry reading result indicates that the read operation of the default read level is unsuccessful in decoding during the retry reading process, the verification result indicates that there is a page for data refresh.
[0007] In a preferred embodiment of the present invention, after retrying the first read operation of the default read level based on a pre-set retry option and obtaining the retry read result, the method further includes: if the retry read result indicates that the read operation of the default read level is decoded successfully during the retry read process, presetting the corresponding threshold interval (rl0, rl0-ΔVt); after shifting the relative position of the read level r10 to the left from the default position by a corresponding offset value, performing a second read operation of the default read level and recording the number of bit 1s in the original data as Cnt Y; determining a read count compensation value for the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a pre-set read count compensation comparison table; determining a target read count compensation value based on the read count compensation value of the current page and the read count compensation value during the last verification.
[0008] In a preferred embodiment of the present invention, the above-mentioned determination of the read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a pre-set read count compensation comparison table includes: performing difference processing on the number of bit 1s corresponding to the first read operation and the number of bit 1s corresponding to the second read operation to obtain a difference; determining an absolute value based on the difference; and determining the read count compensation value of the current page based on the absolute value and the read count compensation comparison table.
[0009] In a preferred embodiment of the present invention, the target read compensation value is determined based on the read compensation value of the current page and the read compensation value at the last verification, including: comparing the read compensation value of the current page with the read compensation value at the last verification; and taking the smaller read compensation value between the read compensation value of the current page and the read compensation value at the last verification as the target read compensation value.
[0010] In a preferred embodiment of the present invention, the updating of the number of reads of the data block includes: updating the number of reads of the data block based on the target read number compensation value.
[0011] In the second aspect, an embodiment of the present invention also provides a device for improving the ability of a solid-state hard disk to handle NAND read interference characteristics, including: a data block reading module, used to read the data block and count the number of reads; a data block placement module, used to place the data block into a first queue and mark the state of the page of valid data stored in the data block as a pending data recovery state if the number of reads is greater than a preset read number threshold; the first queue is a queue for pre-data recovery; a verification module, used to verify the pages of valid data stored in the data blocks in the first queue in turn to obtain a verification result; a data recovery module, used to place the page information into a second queue for data recovery if the verification result indicates that there is a page for data refresh; the second queue is a queue for direct data recovery; a read count update module, used to update the read count of the data block after data recovery is completed.
[0012] In a third aspect, an embodiment of the present invention further provides an electronic device, including a processor and a memory, wherein the memory stores computer executable instructions that can be executed by the processor, and the processor executes the computer executable instructions to implement the method of improving the ability of a solid-state drive to handle NAND read interference characteristics according to the first aspect mentioned above.
[0013] In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions. When the computer-executable instructions are called and executed by a processor, the computer-executable instructions prompt the processor to implement the method of improving the ability of a solid-state drive to handle NAND read interference characteristics according to the first aspect mentioned above.
[0014] The embodiments of the present invention bring the following beneficial effects:
[0015] The embodiment of the present invention provides a method and device for improving the ability of a solid-state drive to handle NAND read disturbance characteristics, by reading a data block and counting the number of reads, if the number of reads is greater than a preset read number threshold, the data block is placed in a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered, the first queue is a queue for pre-data recovery, the pages of valid data stored in the data block in the first queue are verified in sequence to obtain a verification result, if the verification result indicates that there is a page for data refresh, the information of the page for data refresh is placed in a second queue for data recovery, the second queue is a queue for direct data recovery, after data recovery is completed, the number of reads of the data block is updated and the update number is recorded. In this way, excessive recovery of data in the entire data block is prevented under the influence of read interference, the amount of data recovery is reduced, and the performance and service life of the solid-state drive are improved.
[0016] Other features and advantages of the present disclosure will be set forth in the following description, or some features and advantages may be inferred or unambiguously determined from the description, or may be learned by implementing the above-mentioned technology of the present disclosure.
[0017] In order to make the above-mentioned objectives, features and advantages of the present disclosure more obvious and easy to understand, preferred embodiments are specifically cited below and described in detail with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0019] Figure 1 A flow chart of a method for improving the ability of a solid state drive to handle NAND read disturbance characteristics provided by an embodiment of the present invention;
[0020] Figure 2 A flowchart of another method for improving the ability of a solid state drive to handle NAND read disturbance characteristics provided by an embodiment of the present invention;
[0021] Figure 3 A schematic diagram of the structure of a device for improving the ability of a solid-state hard disk to handle NAND read disturbance characteristics provided by an embodiment of the present invention;
[0022] Figure 4 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0023] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution of the present invention will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0024] Most of the existing solutions on the market are as follows:
[0025] In order to solve the data security problem caused by the read disturbance effect of NAND flash memory in solid state drives, the firmware in existing solid state drives handles read disturbance strategies. Usually, the block or the block is divided into several limited areas as the unit for recording the number of reads to record the number of times the page in the unit area is read. When the number of recorded unit reads reaches a certain threshold, the firmware will recycle data for all pages in the area that reaches the read disturbance threshold and refresh the valid data to other storage locations. Using the block or dividing the block into several limited areas as the unit for recording the number of reads is limited by the storage space in the solid state drive. It is impossible to allocate a large enough space to record all the single page reads in the entire solid state drive. The large recording unit results in a lack of ability to distinguish whether the target read position is dominated by single page level or block level read during a large number of read operations. The read threshold can only be based on the smaller of the two read disturbance thresholds. Since the single page level read disturbance threshold is smaller than the block level read disturbance threshold, the single page level read disturbance threshold is actually used as the basis. When the target unit read count reaches the threshold, valid data in all pages in the entire unit will be recycled, which leads to over-recycling. Usually, in some cases, one or several pages in the entire record unit consume the read count of the entire unit.
[0026] Furthermore, in order to ensure the reliability of all products produced, NAND flash memory suppliers usually provide a read disturbance threshold that reserves sufficient safety space. When the actual number of times a block is read reaches the threshold, the data of the block itself can ensure sufficient reliability, which may also lead to over-recycling. In addition, as the number of stacked layers of NAND flash memory increases, the number of pages in a single block increases, resulting in the block's ability to resist read disturbance becoming worse and worse. When the read disturbance threshold remains unchanged, the threshold number of reads amortized to each page becomes smaller and smaller, further aggravating the problem of excessive data recycling caused by read interference. Excessive recycling will lead to a waste of storage resources, and the frequent triggering of background data recycling will also greatly affect the performance of the solid-state drive.
[0027] Based on this, an embodiment of the present invention provides a method and device for improving the ability of a solid-state drive to handle NAND read disturbance characteristics. The method and device can read a data block and count the number of reads. If the number of reads is greater than a preset read number threshold, the data block is placed in a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered. The pages of valid data stored in the data block in the first queue are verified in turn to obtain a verification result. If the verification result indicates that there is a page for data refresh, the information of the page for data refresh is placed in a second queue for data recovery. After data recovery is completed, the number of reads of the data block is updated and the update number is recorded. In this way, excessive recovery of data in the entire data block is prevented under the influence of read disturbance, the amount of data recovery is reduced, and the performance and service life of the solid-state drive are improved.
[0028] For ease of understanding, the following is an explanation of the terms involved in the scheme:
[0029] Read disturbance: After multiple read operations are performed on a page in a NAND Flash Block, the data in the page that is not directly accessed may also be affected. Specifically, after executing a large number of read commands, the charge in some adjacent or non-adjacent cells that are not directly read may change slightly, which may cause these data bits that are not directly read to become unstable or even erroneous. This phenomenon is particularly prone to occur in multi-bit storage (TLC / QLC) type NAND Flash because the interval between storage states is small.
[0030] GC (Garbage Collection): This is an important process inside the SSD for managing and optimizing the use of storage space. In the SSD, it specifically refers to the process of cleaning up data blocks that are no longer needed and refreshing data with poor reliability. As users continue to write, delete, and modify files to the SSD, many small pieces of data will be left behind. These data occupy physical storage locations but are no longer useful. If this situation is allowed to develop, it will eventually lead to a large number of storage fragmentation problems, affecting the overall performance and life of the SSD. In addition, due to the inherent characteristics of the storage medium, the data stored in the NAND Flash is affected by read interference, high and low temperature changes, retention, medium wear and other factors, and the reliability of the data deteriorates. Therefore, it becomes necessary to sort out these invalid and unreliable data by performing garbage collection operations.
[0031] Verify: The process of reading and checking data to confirm that it meets the expected requirements. This is an important step to ensure data integrity and correctness.
[0032] Single page level read interference: refers to the phenomenon in NAND flash memory that when a page is read frequently, other storage pages adjacent to the page that have not been read may be affected or interfered. Usually, NAND Flash particle suppliers will provide a single page safe read count for the reliability of NAND Flash, that is, the single page level read interference threshold.
[0033] Block level read (data block level read) interference: refers to the phenomenon that when a large number of read operations are performed on a certain storage block, all storage units in the entire storage block may be disturbed, which may cause data errors in these units that are not directly accessed. Usually, NAND Flash particle suppliers will provide a safe read count for the Block level, namely the Block level read interference threshold, for the reliability of NAND Flash. The total number of Block level read interferences is usually greater than the single page level read count.
[0034] RBER (Raw Bit Error Rate): refers to the raw bit error rate, which indicates the bit error rate compared with the stored data when the data is read out from the flash memory and has not yet been corrected by any error correction code (ECC).
[0035] NAND Flash threshold voltage distribution: In NAND Flash, information is stored by changing the amount of charge in the storage cell (cell), and these changes are reflected as different levels of threshold voltage. According to the different voltage levels that the storage cell can represent, NAND Flash can be divided into SLC, MLC, TLC and QLC types. A page in NAND Flash contains a large number of storage cells. If the threshold voltages of all storage cells are collected, a threshold voltage distribution will be presented. The ideal threshold voltage distribution should have clear boundaries between each state, so that the stored data can be accurately identified when reading. If the voltage ranges between adjacent states are too close or overlap, it may cause read errors.
[0036] Read level: NAND Flash read level refers to the voltage threshold used to determine the data state in the storage cell in NAND flash memory. TLC requires seven read levels to determine the eight threshold voltage states of storage, which are represented by rl0, rl1, rl2, rl3, rl4, rl5, and rl6 in this application, respectively. rl0 specifically refers to the one close to the erased state.
[0037] Retry option: refers to the process of NAND flash read operation, when the number of errors exceeds the decoding capability of the controller, you can continue the read operation by changing the default position of the read level in order to successfully decode the data. Generally, NAND Flash suppliers will provide multiple sets of values that change the default read level position to deal with the problems of read interference and data retention time in NAND Flash. These values constitute the Retry option.
[0038] To facilitate understanding of this embodiment, a method for improving the ability of a solid state drive to handle NAND read disturbance characteristics disclosed in an embodiment of the present invention is first introduced in detail.
[0039] Example 1
[0040] The embodiment of the present invention provides a method for improving the ability of a solid state drive to handle NAND read disturbance characteristics. Figure 1 A flowchart of a method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics is provided in an embodiment of the present invention. Figure 1 As shown, the method for improving the ability of a solid state drive to handle NAND read disturbance characteristics may include the following steps:
[0041] Step S101, reading a data block and counting the number of reads.
[0042] Step S102: if the number of reads is greater than a preset read number threshold, the data block is put into a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered.
[0043] The first queue is a queue for pre-data recovery.
[0044] When the number of reads is recorded in units of partitions in a data block, the partition corresponding to the data block is put into the first queue and the state of the page of valid data stored in the partition corresponding to the data block is marked as a state to be recovered.
[0045] Furthermore, before placing the data block into the first queue, the method also includes: determining whether the number of updates is greater than a preset update number threshold; if the number of updates is greater than or equal to the preset update number threshold, placing the data block into the second queue; if the number of updates is less than the preset update number threshold, placing the data block into the first queue.
[0046] Step S103 , verifying the pages of valid data stored in the data blocks in the first queue in sequence to obtain verification results.
[0047] Among them, the target read count compensation value can be determined through the verification process to update the read count, and it can be determined which pages in the data block need to be directly recycled. The remaining pages can compensate for the read count and continue to be used.
[0048] Step S104: if the verification result indicates that there is a page to be refreshed, information of the page to be refreshed is put into a second queue for data recycling.
[0049] The second queue is a queue for directly recovering data.
[0050] The page for data refresh is the page for which data recovery is required directly, and the page is not successfully decoded during the verification process.
[0051] Step S105: after data recovery is completed, the number of reads of the data block is updated and the update number is recorded.
[0052] The number of reads of the data block is updated, specifically, the number of reads of the data block is updated based on a target read compensation value, and the target read compensation value is obtained in the process of sequentially verifying pages of valid data stored in the data block in the first queue.
[0053] The method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics provided by an embodiment of the present invention can read a data block and count the number of reads. If the number of reads is greater than a preset read number threshold, the data block is placed in a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered. The pages of valid data stored in the data block in the first queue are verified in sequence to obtain a verification result. If the verification result indicates that there is a page for data refresh, the information of the page for data refresh is placed in a second queue for data recovery. After data recovery is completed, the number of reads of the data block is updated and the update number is recorded. In this way, excessive recovery of data in the entire data block is prevented under the influence of read disturbance, the amount of data recovery is reduced, and the performance and service life of the solid-state drive are improved.
[0054] Example 2
[0055] An embodiment of the present invention also provides another method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics; this method is implemented on the basis of the method in the above embodiment; this method focuses on describing a specific implementation method of sequentially verifying pages of valid data stored in a data block in a first queue to obtain verification results.
[0056] Figure 2 A flowchart of another method for improving the ability of a solid state drive to handle NAND read disturbance characteristics provided by an embodiment of the present invention is shown in FIG. Figure 2As shown, the pages of valid data stored in the data blocks in the first queue are verified in sequence to obtain the verification result, which may include the following steps:
[0057] Step S201 , performing a first read operation of a default read level on a current page in a data block, obtaining a decoding state of the first read operation and recording the number of bit 1s in the original data as Cnt X.
[0058] The decoding status includes successful decoding and unsuccessful decoding.
[0059] Step S202: if the decoding status is that the decoding is unsuccessful, a first read operation of the default read level is retried based on a preset retry option to obtain a retry read result.
[0060] Among them, the retry options can be expressed as retry option 1~N. These retry options are customized and can be obtained through media analysis and research. They are not limited by the original retry options provided by the NAND Flash supplier. Retry option 1~N can ensure that the data stored in the page is safe and can continue to be used under the influence of factors such as read interference and data retention time.
[0061] The retry read is to perform traversal read in retry option 1 to N.
[0062] Step S203 , if the retry reading result indicates that the read operation of the default read level is decoded successfully during the retry reading process, a corresponding threshold interval (rl0 , rl0 −ΔVt) is pre-set.
[0063] In the process of traversing retry options 1 to N for retry reading, once the data read out from the page can be decoded successfully, the subsequent retry option read operation will not be performed.
[0064] Step S204 , after the relative position of the read level r10 is shifted to the left from the default position by the corresponding offset value, a second read operation of the default read level is performed and the number of bit 1 in the original data is recorded as Cnt Y.
[0065] The number of bit 1 or 0 within the threshold interval (rl0, rl0-ΔVt) may be counted to determine the degree of read disturbance.
[0066] Among them, the remaining read levels except the read level r10 are kept at the default initial position, and then the read operation is performed.
[0067] Step S205 , determining a read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a preset read count compensation comparison table.
[0068] Specifically, determining the read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a pre-set read count compensation comparison table can include: subtracting the number of bit 1s corresponding to the first read operation from the number of bit 1s corresponding to the second read operation to obtain a difference; determining an absolute value based on the difference; and determining the read count compensation value of the current page based on the absolute value and the read count compensation comparison table.
[0069] Among them, Table 1 is a comparison table of reading times compensation.
[0070] Table 1:
[0071] Number of Bit1 Read times compensation value Remark 0~Cnt1 Thr1 Thr1 has the largest value Cnt1~Cnt2 Thr2 Cnt2~Cnt3 Thr3 ... ... >CntN 0 Indicates that the page needs GC
[0072] Step S206 , determining a target read count compensation value based on the read count compensation value of the current page and the read count compensation value during the last verification.
[0073] Specifically, determining a target read compensation value based on the read compensation value of the current page and the read compensation value during the last verification may include: comparing the read compensation value of the current page with the read compensation value during the last verification; and taking the smaller read compensation value between the read compensation value of the current page and the read compensation value during the last verification as the target read compensation value.
[0074] Among them, the absolute value is |Cnt_Y-Cnt_X|.
[0075] Step S207 , if the retry reading result indicates that the read operation of the default read level is not decoded successfully during the retry reading process, then the verification result indicates that there is a page for data refresh.
[0076] If decoding fails through retry options 1 to N, it means that the data in the page is not within the safe use range, and the following process ends directly, indicating that the data is to be recycled.
[0077] In the embodiment of the present application, a verify operation can be performed on all valid pages contained in a recording unit that exceeds a read count threshold without changing the read count recording unit. The verify operation is mainly performed on the state that is most seriously disturbed by read in a page, that is, the erase state (level 0). The verify operation characterizes the degree to which the erase state is moved to the right by read disturbance by counting the number of bits 1 or 0 within a set threshold range, thereby determining whether the page needs to be directly recycled or can be continuously used after a certain number of read counts are compensated. This avoids direct data recycling of all valid pages in the entire recording unit when the recording unit reaches the read count threshold, thereby extending the number of times the recording unit can be read.
[0078] Example 3
[0079] Corresponding to the above method embodiment, the embodiment of the present invention provides a device for improving the ability of a solid state drive to handle NAND read disturbance characteristics. Figure 4 A schematic diagram of a structure of a device for improving the ability of a solid state drive to handle NAND read disturbance characteristics provided by an embodiment of the present invention, such as Figure 4 As shown, the device for improving the ability of a solid state drive to process NAND read disturbance characteristics may include:
[0080] The data block reading module 301 is used to read the data block and count the number of reads.
[0081] The data block placement module 302 is used to place the data block into the first queue and mark the page state of valid data stored in the data block as a waiting data recovery state if the number of reads is greater than a preset read number threshold; the first queue is a queue for pre-data recovery.
[0082] The verification module 303 is used to verify the pages of valid data stored in the data blocks in the first queue in sequence to obtain verification results.
[0083] The data recovery module 304 is used to put the page information into the second queue for data recovery if the verification result indicates that there is a page for data refresh; the second queue is a queue for direct data recovery.
[0084] The read count updating module 305 is used to update the read count of the data block after the data recovery is completed.
[0085] The device for improving the ability of a solid-state hard disk to handle NAND read disturbance characteristics provided by an embodiment of the present invention can read a data block and count the number of reads. If the number of reads is greater than a preset read number threshold, the data block is placed in a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered. The pages of valid data stored in the data block in the first queue are verified in sequence to obtain a verification result. If the verification result indicates that there is a page for data refresh, the information of the page for data refresh is placed in a second queue for data recovery. After the data recovery is completed, the number of reads of the data block is updated and the update number is recorded. In this way, excessive recovery of data in the entire data block is prevented under the influence of read disturbance, the amount of data recovery is reduced, and the performance and service life of the solid-state hard disk are improved.
[0086] In some embodiments, the data block is placed in the module, and is also used to determine whether the number of updates is greater than a preset update number threshold; if the number of updates is greater than or equal to the preset update number threshold, the data block is placed in the second queue; if the number of updates is less than the preset update number threshold, the data block is placed in the first queue.
[0087] In some embodiments, the verification module is further used to perform a first read operation at a default read level on the current page in the data block, obtain a decoding status of the first read operation and record the number of bit 1s in the original data as Cnt X; if the decoding status is that the decoding is unsuccessful, then based on a pre-set retry option, the first read operation at the default read level is retried to obtain a retried read result; if the retried read result indicates that the read operation at the default read level is unsuccessful in decoding during the retried read process, then the verification result indicates that there is a page for data refresh.
[0088] In some embodiments, the verification module is also used to pre-set the corresponding threshold interval (rl0, rl0-ΔVt) if the retry read result indicates that the read operation of the default read level is successfully decoded during the retry read process; after shifting the relative position of the read level r10 to the left from the default position by a corresponding offset value, perform a second read operation of the default read level and record the number of bit 1s in the original data as Cnt Y; determine the read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a pre-set read count compensation comparison table; determine the target read count compensation value based on the read count compensation value of the current page and the read count compensation value during the last verification.
[0089] In some embodiments, the verification module is further used to perform a difference process on the number of bit 1s corresponding to the first read operation and the number of bit 1s corresponding to the second read operation to obtain a difference; determine an absolute value based on the difference; and determine a read count compensation value for the current page based on the absolute value and a read count compensation comparison table.
[0090] In some embodiments, the verification module is also used to compare the read compensation value of the current page with the read compensation value during the last verification; and use the smaller read compensation value between the read compensation value of the current page and the read compensation value during the last verification as the target read compensation value.
[0091] In some embodiments, the read count update module is further configured to update the read count of the data block based on the target read count compensation value.
[0092] The device provided in the embodiment of the present invention has the same implementation principle and technical effects as those of the aforementioned method embodiment. For the sake of brief description, for matters not mentioned in the device embodiment, reference may be made to the corresponding contents in the aforementioned method embodiment.
[0093] Example 4
[0094] The embodiment of the present invention also provides an electronic device for executing the above method for improving the ability of a solid state drive to handle NAND read disturbance characteristics; see Figure 4 A structural schematic diagram of an electronic device is shown, which includes a memory 400 and a processor 401, wherein the memory 400 is used to store one or more computer instructions, and the one or more computer instructions are executed by the processor 401 to implement the above-mentioned method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics.
[0095] Further, Figure 4 The electronic device shown further includes a bus 402 and a communication interface 403 , and the processor 401 , the communication interface 403 and the memory 400 are connected via the bus 402 .
[0096] The memory 400 may include a high-speed random access memory (RAM), and may also include a non-volatile memory, such as at least one disk storage. The communication connection between the system network element and at least one other network element is realized through at least one communication interface 403 (which may be wired or wireless), and the Internet, wide area network, local area network, metropolitan area network, etc. may be used. The bus 402 may be an ISA bus, a PCI bus, or an EISA bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 4Only one bidirectional arrow is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0097] The processor 401 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the processor 401. The above processor 401 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present invention can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiment of the present invention can be directly embodied as a hardware decoding processor for execution, or a combination of hardware and software modules in the decoding processor for execution. The software module may be located in a storage medium mature in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 400, and the processor 401 reads the information in the memory 400 and completes the steps of the method of the above embodiment in combination with its hardware.
[0098] An embodiment of the present invention also provides a computer-readable storage medium, which stores computer-executable instructions. When the computer-executable instructions are called and executed by a processor, the computer-executable instructions prompt the processor to implement the above-mentioned method for improving the ability of a solid-state drive to handle NAND read interference characteristics. The specific implementation can be found in the method embodiment, which will not be repeated here.
[0099] The computer program product of the method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics provided in an embodiment of the present invention includes a computer-readable storage medium storing a non-volatile program code executable by a processor. The instructions included in the program code can be used to execute the method described in the previous method embodiment. The specific implementation can be found in the method embodiment, which will not be repeated here.
[0100] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0101] In the several embodiments provided by the present invention, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some communication interfaces, and the indirect coupling or communication connection of devices or units can be electrical, mechanical or other forms.
[0102] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0103] In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0104] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a non-volatile computer-readable storage medium that is executable by a processor. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0105] Finally, it should be noted that the above-described embodiments are only specific implementations of the present invention, which are used to illustrate the technical solutions of the present invention, rather than to limit them. The protection scope of the present invention is not limited thereto. Although the present invention is described in detail with reference to the above-mentioned embodiments, ordinary technicians in the field should understand that any technician familiar with the technical field can still modify the technical solutions recorded in the above-mentioned embodiments within the technical scope disclosed by the present invention, or can easily think of changes, or make equivalent replacements for some of the technical features therein; and these modifications, changes or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention, and should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention shall be based on the protection scope of the claims.
Claims
1. A method for improving the ability of a solid state drive to handle NAND read disturbance characteristics, characterized in that: The method comprises: Read the data block and count the number of reads; If the number of reads is greater than a preset read number threshold, the data block is placed in a first queue and the state of the page of valid data stored in the data block is marked as a state to be recovered; the first queue is a queue for pre-data recovery; Verifying pages of valid data stored in the data blocks in the first queue in sequence to obtain verification results; If the verification result indicates that there is a page for data refresh, the information of the page for data refresh is put into a second queue for data recovery; the second queue is a queue for directly recovering data; After the data recovery is completed, the reading times of the data block are updated and the update times are recorded.
2. The method according to claim 1, characterized in that Before placing the data block into the first queue, the method further comprises: Determine whether the update number is greater than a preset update number threshold; If the update number is greater than or equal to a preset update number threshold, placing the data block into the second queue; If the update number is less than a preset update number threshold, the data block is put into the first queue.
3. The method according to claim 1, characterized in that The verifying the pages of valid data stored in the data blocks in the first queue in sequence to obtain the verification results includes: Performing a first read operation at a default read level on the current page in the data block, obtaining a decoding state of the first read operation and recording the number of bit 1s in the original data as Cnt X; If the decoding status is that the decoding is unsuccessful, retry reading the first read operation of the default read level based on a preset retry option to obtain a retry reading result; If the retry read result indicates that the read operation of the default read level is not successfully decoded during the retry read process, then the verification result indicates that there is a page for data refresh.
4. The method according to claim 3, characterized in that After retrying the first read operation of the default read level based on the preset retry option to obtain a retry read result, the method further includes: If the retry reading result indicates that the read operation of the default read level is decoded successfully during the retry reading process, a corresponding threshold interval (rl0, rl0-ΔVt) is pre-set; After the relative position of the read level r10 is shifted to the left from the default position by the corresponding offset value, the second read operation of the default read level is performed and the number of bit 1 in the original data is recorded as Cnt Y; Determine a read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a preset read count compensation comparison table; A target read count compensation value is determined based on the read count compensation value of the current page and the read count compensation value during the last verification.
5. The method according to claim 4, characterized in that The determining the read count compensation value of the current page based on the number of bit 1s corresponding to the first read operation, the number of bit 1s corresponding to the second read operation, and a preset read count compensation comparison table includes: Subtract the number of bit 1s corresponding to the first read operation from the number of bit 1s corresponding to the second read operation to obtain a difference value; determining an absolute value based on the difference; The read count compensation value of the current page is determined based on the absolute value and the read count compensation comparison table.
6. The method according to claim 5, characterized in that The determining of the target read count compensation value based on the read count compensation value of the current page and the read count compensation value during the last verification comprises: Comparing the read count compensation value of the current page with the read count compensation value during the last verification; The smaller one of the read count compensation value of the current page and the read count compensation value during the last verification is used as the target read count compensation value.
7. The method according to claim 4, characterized in that The updating of the number of reads of the data block includes: The number of reads of the data block is updated based on the target read number compensation value.
8. A device for improving the ability of a solid state drive to handle NAND read disturbance characteristics, characterized in that: The device comprises: A data block reading module is used to read data blocks and count the number of reads; A data block placing module is used to place the data block into a first queue and mark the state of the page of valid data stored in the data block as a waiting data recovery state if the number of reads is greater than a preset read number threshold; the first queue is a queue for pre-data recovery; A verification module, used for sequentially verifying pages of valid data stored in the data blocks in the first queue to obtain a verification result; A data recovery module, configured to put the information of the page into a second queue for data recovery if the verification result indicates that there is a page for data refresh; the second queue is a queue for direct data recovery; The read count update module is used to update the read count of the data block after the data recovery is completed.
9. An electronic device, characterized in that: It includes a processor and a memory, the memory stores computer executable instructions that can be executed by the processor, and the processor executes the computer executable instructions to implement the method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics as described in any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions. When the computer-executable instructions are called and executed by the processor, the computer-executable instructions prompt the processor to implement the method for improving the ability of a solid-state drive to handle NAND read disturbance characteristics as described in any one of claims 1 to 7.
Citation Information
Patent Citations
Data storage device, memory controller and data management method thereof and data block management method
CN107368429A
Memory system, controller and operation method thereof
CN110531922A
Method for rereading data in NAND Flash bad block, electronic equipment and storage medium
CN113223583A
Memory system and operation method thereof
US20170235487A1