A data re-reading method, device and equipment

By acquiring the applicable offset voltage parameter set and voltage threshold distribution scan during flash memory read, the problems of uncertainty and inefficiency in the reread table in flash memory are solved, achieving efficient data reread, adapting to complex scenarios and reducing costs.

CN119883118BActive Publication Date: 2025-11-04SHENZHEN CITY TECHWIN SEMICONDUCTOR COMPANY LIMITED
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411952662.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2025-11-04
Estimated Expiration
2044-12-27

AI Technical Summary

Technical Problem

Existing data rereading methods in flash memory suffer from problems such as uncertainty in the reread table, performance degradation due to large range of differences, high dependence on historical experience, and limitations in the process of calculating the optimal voltage threshold, resulting in low efficiency, especially in complex and diverse storage scenarios.

Method used

If the bit error rate exceeds the error correction range during flash memory read, the appropriate first offset voltage parameter set is obtained for rereading; if this fails, a voltage threshold distribution scan is performed to determine the voltage offset direction, find the target reread offset voltage item, and update the reread table to improve efficiency.

Benefits of technology

It significantly improves the efficiency of rereading entries, reduces the time spent on rereading operations, adapts to complex and diverse storage scenarios, improves system performance and reliability, and reduces maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119883118B_ABST
    Figure CN119883118B_ABST
Patent Text Reader

Abstract

The application provides a data re-reading method, device and equipment, applied to the technical field of data storage, which comprises the following steps: when data is read from a flash memory, if the error code rate exceeds the error correction range value, a first offset voltage parameter group is obtained from a preset re-reading table, and the target data page is re-read by using the first offset voltage parameter group. If the re-reading fails, the target data page is subjected to voltage threshold distribution scanning processing, and a second offset parameter set of the target data page is obtained. The second offset parameter set is compared with the first offset parameter set to determine the voltage offset direction. According to the voltage offset direction, the target re-reading offset voltage item is searched for in the optional offset voltage items, the second offset voltage parameter group is determined, the target data page is re-read by using the re-reading offset voltage item, and the re-reading table parameter is updated, so that the problems of flash memory performance decline, high dependence on historical experience and relatively limited calculation of optimal voltage threshold in the current data re-reading process are solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data storage technology, and in particular to a data rereading method, apparatus, and device. Background Technology

[0002] In modern digital storage systems, flash memory is widely used in various devices such as solid-state drives (SSDs), USB flash drives, and embedded storage modules due to its high density, low power consumption, and non-volatility. However, in actual use, flash memory is prone to electronic misalignment, which can lead to data errors and bit flips, thereby affecting the reliability and performance of the storage system.

[0003] Currently, to address this electronic offset issue, flash memory data rereading is typically performed by traversing a pre-defined retry table, adding a dedicated set of offset voltage parameters for a fixed scenario, searching within all offset voltage entries, and calculating the optimal voltage threshold. However, with the increasing number of storable bits in flash memory cells and the growing complexity of storage scenarios driven by digitization, current data rereading methods suffer from several problems: uncertainty in the retry table, large-range differences leading to performance degradation in flash memory, high reliance on historical experience, and limitations in the process of calculating the optimal voltage threshold. Summary of the Invention

[0004] The purpose of this application is to provide a data rereading method, apparatus, and device to solve the problems in the current data rereading process, such as uncertainty in the rereading table, large range of differences leading to flash memory performance degradation, high dependence on historical experience, and limitations in the process of calculating the optimal voltage threshold.

[0005] In a first aspect, embodiments of this application provide a data rereading method applied to flash memory. The flash memory includes at least one word line and at least one data page, with each word line connected to at least one data page. Each data page includes at least one read level. The data rereading method includes: when reading data from the flash memory, if the bit error rate when reading a target data page exceeds the error correction range, obtaining a first offset voltage parameter set applicable to the target data page in the current state from a preset rereading table, and rereading the target data page using the first offset voltage parameter set. The first offset voltage parameter in the first offset voltage parameter set corresponds to the read level in the target data page. If rereading the target data page using the first offset voltage parameter set fails, performing a voltage threshold distribution scan on the target data page to obtain a second offset parameter set for the target data page. Comparing the second offset parameter set with the first offset parameter set determines the voltage offset direction of the read level in the target data page. The first offset parameter set is the voltage threshold distribution parameter set of the flash memory in its original, unworn state at room temperature. Based on the voltage offset direction, the target reread offset voltage item is located in the selectable offset voltage items to determine the second offset voltage parameter group, and the target data page is reread using the reread offset voltage item in the second offset voltage parameter group.

[0006] One possible implementation involves performing a voltage threshold distribution scan on the target data page to obtain a second offset parameter set. This includes: performing a voltage threshold distribution scan on each read level of the target data page to obtain a voltage offset for each read level; determining the voltage threshold distribution for each read level based on the voltage offset; and extracting the second offset parameter set from the voltage threshold distribution for each read level. The voltage offset parameters in the second offset parameter set correspond to each read level.

[0007] One possible implementation involves comparing a second offset parameter set with a first offset parameter set to determine the voltage offset direction of the read level in the target data page. This includes: determining a matching index based on the target data page. The matching index represents a preset correspondence between the target data page and at least one target read level. For any target read level among the at least one target read levels, based on the matching index, determining a first offset parameter of the target read level in the first offset parameter set and a second offset parameter of the target read level in the second offset parameter set. Determining the difference between the second offset parameter and the first offset parameter. If the absolute value of the difference between the target read levels corresponding to the target data page is less than or equal to a difference threshold, determining the voltage offset direction based on the difference.

[0008] One possible implementation involves determining a second set of offset voltage parameters by searching for a target reread offset voltage term among selectable offset voltage terms based on the voltage offset direction. This includes: determining selectable offset voltage terms from all available offset voltage terms corresponding to the flash memory, based on the voltage offset direction. Each selectable offset voltage term includes at least one characteristic parameter. The characteristic parameter represents the offset size of the selectable offset voltage term. The target reread offset voltage term is determined based on the number of characteristic parameters in the selectable offset voltage terms. The second set of offset voltage parameters is then determined based on the target reread offset voltage term.

[0009] One possible implementation, a data rereading method provided in this application embodiment, further includes: if the target data page is successfully reread using the rereading offset voltage item in the second offset voltage parameter group, the rereading table is updated using the rereading offset voltage item.

[0010] One possible implementation involves updating the reread table using a reread offset voltage item, including: obtaining the current state information of the flash memory. If the percentage difference between the current state information and the preset state information stored in the reread table is less than or equal to the state update percentage threshold stored in the reread table, based on the matching index between the target data page and the target read level, the reread offset voltage item in the second offset voltage parameter group is used as the offset voltage item for the target read level to update the corresponding first offset voltage parameter in the reread table.

[0011] One possible implementation, a data rereading method provided in this application embodiment, further includes: if the percentage difference between the current state information and the preset state information stored in the rereading table is greater than the state update percentage threshold stored in the rereading table, then the target state matching percentage threshold and the target state update percentage threshold are re-determined based on the current state information. A new parameter set is obtained based on the second offset voltage parameter set, the current state information, and the correspondingly set target state matching percentage threshold and target state update percentage threshold, and this new parameter set is added to the rereading table.

[0012] Secondly, embodiments of this application provide a data rereading device applied to flash memory, the flash memory including at least one word line, each word line including at least one data page, and each data page including at least one read level. The device includes: an acquisition module, a processing module, a determination module, and a rereading module.

[0013] The acquisition module is used to, when reading data from the flash memory, if the bit error rate when reading the target data page exceeds the error correction range, retrieve a first offset voltage parameter set applicable to the target data page in the current state from a preset reread table, and reread the target data page using the first offset voltage parameter set. The first offset voltage parameter in the first offset voltage parameter set corresponds to the read level in the target data page.

[0014] The processing module is used to perform voltage threshold distribution scanning processing on the target data page to obtain the second offset parameter set of the target data page if it fails to reread the target data page using the first offset voltage parameter set.

[0015] The determination module compares the second offset parameter set with the first offset parameter set to determine the voltage offset direction of the read level in the target data page. The first offset parameter set is the voltage threshold distribution parameter set of the flash memory in its original, unworn state at room temperature.

[0016] The reread module is used to find the target reread offset voltage item in the selectable offset voltage items according to the voltage offset direction, determine the second offset voltage parameter group, and reread the target data page using the reread offset voltage item in the second offset voltage parameter group.

[0017] Thirdly, embodiments of this application provide a data rereading device that has the function of implementing the data rereading method of the first aspect or any possible implementation described above. This function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described function.

[0018] Fourthly, embodiments of this application provide a computer-readable storage medium storing instructions that, when executed on a computer, enable the computer to perform the data rereading method described in the first aspect or any possible implementation thereof.

[0019] Fifthly, embodiments of this application provide a computer program product containing instructions that, when run on a computer, enable the computer to execute the data rereading method described in the first aspect or any possible implementation thereof.

[0020] The technical effects of any of the design methods in aspects two through five can be found in the technical effects of different possible implementation methods in aspect one, and will not be repeated here. Attached Figure Description

[0021] To more clearly illustrate the technical solutions in the specific embodiments of this application or the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0022] Figure 1 A schematic diagram of a flash memory structure provided in an embodiment of this application;

[0023] Figure 2 A schematic diagram of a data rereading device provided in an embodiment of this application;

[0024] Figure 3 A flowchart illustrating a data rereading method provided in this application embodiment;

[0025] Figure 4 A specific example diagram of a reread table provided in an embodiment of this application;

[0026] Figure 5 A schematic diagram of a data rereading device provided in an embodiment of this application;

[0027] Figure 6 This is a schematic diagram of a data rereading system provided in an embodiment of this application. Detailed Implementation

[0028] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0029] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0030] Electronic offsets are prone to occur during flash memory use, resulting in data errors. Current flash memory products use decoding modules to decode data written to the flash memory. However, when the amount of data experiencing bit flips is large and exceeds the error correction capability of the decoding module, data loss may occur.

[0031] Regarding electron shift, the voltage threshold (Vth) data in flash memory can effectively reflect the current distribution of electron shift. Many factors can cause electron shift. For example, when data is written to flash memory at a high temperature and then read at a low temperature, or vice versa, the voltage threshold (Vth) in the flash memory will drift, causing bit flipping during reading. Alternatively, frequent reading of the same area can induce slight electron shift, especially noticeable in multi-level cell (MLC) or quad-level cell (QLC) flash memory. Furthermore, prolonged static storage of flash memory can also cause internal charge leakage or migration, resulting in changes in the Vth distribution.

[0032] If the default read voltage fails to retrieve data correctly, an offset voltage and reread operation are required. Generally, hard drive firmware can utilize the reread offset voltage group in the retry table to perform the reread operation. When flash memory uses the retry table for reread operations, taking the QLC mode shown in Table 1 as an example, due to the complexity of the application scenario and the uncertainty of the data error page type and corresponding read level, it is impossible to recover all erroneous data using the same set of reread offset voltage entries in the retry table. Therefore, current reread methods often require traversing all parameter groups in the retry table. This reread method can only perform the reread operation in a specific order to determine the applicable reread parameters before completing the reread operation, resulting in low efficiency for reread operations after a read failure. Furthermore, some data cannot be corrected even after traversing the retry table, requiring the use of stronger soft decoding methods, which significantly impacts data reading efficiency. Although flash memory manufacturers generally provide a fixed number of reread offset voltage groups, their effectiveness is poor in certain uncertain scenarios, and timely updates are not possible.

[0033] Table 1 QLC Mode

[0034]

[0035]

[0036] Therefore, it is necessary to process the electronic offset data to reduce the probability of data loss and improve the decoding efficiency when correcting error data.

[0037] Currently, flash memory data rereading methods generally involve traversing a pre-defined retry table, adding a dedicated offset voltage parameter group for fixed scenarios, searching within all offset voltage items, and calculating the optimal voltage threshold. However, with the increasing number of storable bits in flash memory cells and the increasing complexity of storage scenarios driven by the digital revolution, the following shortcomings have arisen:

[0038] 1) The pre-defined reread offset voltage group in the reread table has priority applicability, but it has a large degree of uncertainty and may not be able to cover the optimal voltage under all fault scenarios. In extreme cases, even if all entries are traversed, the read may still fail. Moreover, for the complex and diverse flash memory characteristics under reread scenarios, the limited number of reread table entries and update mechanism may gradually become insufficient to meet the needs.

[0039] 2) The method of repeatedly reading by searching a wide range of voltage offset items may greatly increase the reading time, and the more Read Levels that need to be adjusted, the greater the impact of multiple large-range voltage offset reading attempts on the overall system performance.

[0040] 3) Rereading parameters based on historical data and experience summaries under fixed scenarios can use the previous offset voltage term for current rereading. However, when the new scenario differs greatly from the historical scenario, historical experience and data may not be fully applicable, and complete reliance on historical experience may lead to deviations and error propagation.

[0041] 4) Calculating the optimal voltage threshold can, to some extent, pinpoint the best reread parameters in the current scenario. However, relying solely on voltage threshold data makes the method's accuracy entirely dependent on the accuracy of the read voltage threshold data. If the original data contains errors or is subject to interference, it may affect the determination of the optimal threshold voltage, thus impacting the rereading performance. Furthermore, relying solely on calculating the optimal voltage threshold can lead to repetitive operations in some application scenarios due to extreme read failures, increasing system complexity and computational burden. This may require more powerful hardware or additional computing resources, thereby increasing cost and implementation difficulty to some extent.

[0042] Based on this, this application provides a data rereading method applied to flash memory. The flash memory includes at least one word line, each word line includes at least one data page, and each data page includes at least one read level. The method includes: when reading data from the flash memory, if the bit error rate when reading a target data page exceeds the error correction range, obtaining a first offset voltage parameter set applicable to the target data page in the current state from a preset rereading table, and rereading the target data page using the first offset voltage parameter set. The first offset voltage parameter in the first offset voltage parameter set corresponds to the read level in the target data page. If rereading the target data page using the first offset voltage parameter set fails, performing a voltage threshold distribution scan on the target data page to obtain a second offset parameter set for the target data page. Comparing the second offset parameter set with the first offset parameter set to determine the voltage offset direction of the read level in the target data page. Based on the voltage offset direction, searching for a target reread offset voltage item in the selectable offset voltage items to determine the second offset voltage parameter set, and rereading the target data page using the reread offset voltage item in the second offset voltage parameter set.

[0043] The data rereading method provided in this application significantly improves the efficiency of rereading table entries, reduces the time consumption of rereading operations, and effectively addresses complex and diverse storage scenarios. By matching the rereading offset voltage entries of page types that have experienced read failures in similar scenarios in the Retry Table, it is not necessary to traverse all offset voltage parameter groups in sequence, thereby greatly improving the efficiency of rereading table entries.

[0044] Furthermore, the Retry Table update mechanism in this application effectively utilizes historical data of successful rereads of offset voltage items located based on voltage threshold distribution. This not only enables timely adaptation to differentiated scenarios but also allows subsequent failed read data in the same scenario to quickly match the latest parameter set, achieving efficient rereading and reducing the computational burden of reread lookup. This method uses voltage threshold distribution only as a criterion for determining the offset direction and uses this to accurately locate the data within the valid offset voltage items. This effectively avoids errors or interference present in the voltage threshold distribution data, reduces searches for invalid offset voltage items and Read Levels, and achieves optimal rereading performance. This method is not only applicable to flash memory from different manufacturers and models but also demonstrates good compatibility, capable of handling complex and diverse storage scenario requirements. In summary, the data rereading method provided by this application not only improves system performance and reliability but also significantly reduces maintenance costs, providing users with a better experience.

[0045] The solutions provided in the embodiments of this application will be described in detail below with reference to the specific accompanying drawings.

[0046] On the one hand, embodiments of this application provide a flash memory 100, such as Figure 1 As shown, the flash memory 100 may include at least one storage block 101, each storage block 101 includes at least one data page 102, each data page 102 is controlled by a set of word lines 103, and each data page 102 has at least one read level 104 to distinguish different bit states.

[0047] Flash 100 is a non-volatile storage technology widely used in various devices, such as USB flash drives, solid-state drives (SSDs), and embedded systems. It features fast read and write speeds and high-density storage capabilities.

[0048] Word line 103 is a control line in flash memory 100 used to select a row of memory cells. Each word line connects multiple memory cells, which together form one or more data pages 102. By activating a specific word line, all memory cells in that row can be accessed.

[0049] Data page 102 is a logical storage unit in flash memory consisting of a group of contiguous storage cells. A word line can contain multiple data pages. Each data page typically stores a certain number of data bits (e.g., 4KB or 8KB) and can be read and programmed independently.

[0050] Read level 104 refers to the voltage threshold or reference level used when reading a flash memory cell. Since multilevel cell (MLC, TLC, etc.) can store multiple bits of information in a single memory cell, different read levels are needed to distinguish the state of each bit.

[0051] It should be noted that, Figure 1 The flash memory 100 shown is merely an example illustrating the application scenario of this application and is not intended to limit the application scenario of this application. This application does not limit the number of storage blocks 101, data pages 102, word lines 103, and read levels 104 in the flash memory 100. This application does not limit the manufacturer and model of the flash memory 100.

[0052] On the one hand, embodiments of this application provide a data rereading device, such as... Figure 2 As shown, the data rereading device 200 may include a processor 201 and a memory 202.

[0053] The processor 201 may include one or more processing units, such as an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural network processing unit (NPU). These different processing units may be independent devices or integrated into one or more processors.

[0054] For example, processor 201 can be used to... Figure 1 The data in the flash memory 100 shown is read.

[0055] Memory 202 is used to store instructions and data. In some embodiments, memory 202 can be a cache memory. This memory 202 can store instructions or data that the processor 201 has just used or is reusing. If the processor needs to use the instruction or data again, it can directly retrieve it from memory. This avoids repeated accesses, reduces the waiting time of the processor 201, and improves the efficiency of the data re-reading device.

[0056] It should be noted that the above Figure 2 The illustrated data rereading device 200 is merely an example to illustrate the application scenario of the solution in this application, and is not intended to limit the application scenario of the solution in this application.

[0057] On the one hand, embodiments of this application provide a data rereading method, which can be deployed by, for example, Figure 2 The data rereading device 200 shown is used for execution. For example... Figure 3 As shown, the method includes:

[0058] S301, when reading data from the flash memory, if the bit error rate when reading the target data page exceeds the error correction range value, the first offset voltage parameter group applicable to the target data page in the current state is obtained from the preset reread table, and the target data page is reread using the first offset voltage parameter group.

[0059] Among them, the first offset voltage parameter in the first offset voltage parameter group corresponds to the read level in the target data page.

[0060] For example, such as Figure 4As shown, the reread table contains one or more sets of offset voltage parameters for rereading each read level, matching conditions for each state information, state matching thresholds for each state information, and state update thresholds for each state information. The read levels include RV1 to RV15.

[0061] Each offset voltage parameter group in the reread table includes offset voltage parameters for RV1 to RV15. This offset voltage parameter group is a pre-set set of offset parameters based on historical data and experience, designed to successfully reread pages that have failed to read under certain conditions. Some conditions can be m (m is a natural number) status information such as the corresponding flash memory cell's lifetime (program / erase cycle, PE Cycle) and operating temperature, denoted as Vc_1, Vc_2...Vc_m.

[0062] Specifically, the offset voltage parameters for RV1 to RV15 in the first offset parameter set (Vth parameters) are a set of Vth distribution parameters of the flash memory in its original state at room temperature without wear. This offset voltage parameter set refers to the pre-set voltage offset parameters obtained after the Vth distribution transformation processing of Word Line data that has not experienced read failure in its original state at room temperature.

[0063] The process of determining the Vth distribution involves scanning the Read Offset (voltage offset) of each read level using command sets such as `set parameter` or `set feature`, recording the number of cells with a read result of 1 (or 0), calculating the cell count difference between adjacent Read Offsets to obtain a set of values, and then determining the Vt distribution for the corresponding Read Level. By repeatedly performing Read Offset operations, the Vt distributions for all page types (such as LP, UP, XP, TP) under a Word Line are collected. After processing and merging the data, a Vt distribution set is obtained.

[0064] The Vth distribution transformation process refers to converting a set of cell count difference values ​​obtained by performing n Read Offset operations on the Vt distribution set under certain conditions into (n-1) coordinate points in sequence, such as (1,y1), (2,y2), (3,y3)...(n-1,yn-1). The horizontal coordinate corresponds one-to-one with the operation of calculating the cell count difference value of each adjacent Read Offset, and the vertical coordinate y corresponds to the cell count difference value of the adjacent Read offset. Through data processing, the horizontal coordinate x_r1 of the lowest point in the trough of each Read Level of the fitted waveform of this set of coordinate points is obtained.

[0065] Taking QLC mode as an example, the first offset parameter set can be defined as [x_r1, x_r2, x_r3, x_r4, x_r5, x_r6, x_r7, x_r8, x_r9, x_r10, x_r11, x_r12, x_r13, x_r14, x_r15].

[0066] The matching condition for each status information in the reread table is the matching condition corresponding to the status information. This matching condition is the adjustment for each status information.

[0067] The state matching threshold Pcp for each state information in the reread table is the matching threshold set for the offset voltage in the offset voltage parameter set in the RetryTable under similar states during the reread operation. That is, when the state difference percentage is less than this threshold, it is considered to meet the matching requirements. Individual thresholds can be set for different state conditions, or a unified matching threshold can be set.

[0068] The status update threshold Pup for each status information in the reread table is used to strictly limit the update threshold of the offset voltage parameter group in the reread table. That is, when the percentage of status difference is greater than the threshold, it is considered to meet the update requirements. Individual thresholds can be set for different status conditions, or a uniform update threshold can be set.

[0069] It should be noted that Pcp <= Pup is generally required. The smaller the state matching threshold, the closer it is to the successfully matched rereading scenario, and the easier it is to use its offset voltage to successfully reread. The larger the state update threshold, the more strict the rereading table update is, and the greater the difference in the rereading scenarios that meet the requirements. The rereading scenarios are added to the rereading table first.

[0070] For example, taking QLC mode as an example, the first reread parameter set can be defined as [{RV1, RV2, ..., RV15}, {Vc_1, Pcp, Pup}, {Vc_2, Pcp, Pup}, ..., {Vc_m, Pcp, Pup}].

[0071] Specifically, when reading data from the flash memory, the flash controller checks whether the bit error rate exceeds the ECC error correction range. If the bit error rate exceeds the limit, it searches a preset reread table for the closest first offset voltage parameter set of the target data page in the current state, based on the current environmental parameters and error mode. The target data page is then reread using the newly acquired first offset voltage parameter set.

[0072] This process allows for the matching of reread offset voltage entries for page types that experienced read failures in similar scenarios within the Retry Table. This eliminates the need to traverse all offset voltage parameter groups in the retry table in a specific order, improving the efficiency of reread table entries and reducing reread operation time. Furthermore, this application is applicable to flash memory from different manufacturers and models, which may have varying characteristics, thus ensuring compatibility with diverse and complex storage scenarios.

[0073] S302, if it fails to reread the target data page using the first offset voltage parameter set, perform voltage threshold distribution scanning processing on the target data page to obtain the second offset parameter set of the target data page.

[0074] Specifically, when rereading the target data page using the newly acquired first offset voltage parameter set, if the bit error rate still exceeds the error correction range of ECC, the target data page is subjected to voltage threshold distribution scanning processing.

[0075] One possible implementation involves performing a voltage threshold distribution scan on each read level in the target data page to obtain the voltage offset for each read level. Based on the voltage offset for each read level, a voltage threshold distribution for each read level is determined. A second offset parameter set is extracted from the voltage threshold distribution for each read level. The voltage offset parameters in the second offset parameter set correspond to each read level.

[0076] Specifically, a matching index is determined based on the target data page. The matching index represents a pre-defined correspondence between the target data page and at least one target read level. For any target read level among the at least one target read levels, based on the matching index, a first offset parameter in a first offset parameter set and a second offset number in a second offset parameter set for the target read level are determined. The difference between the first offset parameter and the second offset parameter is determined. If the absolute value of the difference between the target read level and the target data page is less than or equal to a difference threshold, the voltage offset direction is determined based on the difference.

[0077] For example, when rereading the target data page using the newly acquired first offset voltage parameter set, if the bit error rate still exceeds the error correction range of ECC, the page type of the data that failed to be read is first located, and all the corresponding Read Level information is determined to obtain the first matching index. Taking the UP page in Table 1 as an example, the index list [3, 11] corresponding to R4 and R12 is obtained.

[0078] Under the corresponding state conditions, the page type for which read failure occurred is matched against the first reread parameter set in the reread table, and a reread operation is performed. The specific steps are detailed below:

[0079] a. Obtain m state information values ​​under the current state conditions and record the state list Uc = [Uc_1, Uc_2, ..., Uc_m].

[0080] b. Based on the m (m is a natural number) state information in the state list Uc, perform a matching search in the reread table. Specifically, if a state information value in the state list Uc is less than the state matching threshold Pcp set in the first reread parameter set of the reread table, then the state is considered to meet the matching requirement. Furthermore, based on the pre-agreed requirements for the number of matching successful state conditions in the parameter group and the matching priority requirements, determine the first reread parameter set of the best match in the reread table, denoted as the first matching parameter set.

[0081] c. Obtain the offset voltage item corresponding to the first matching index in the first matching parameter set to obtain the first offset voltage parameter group. Perform a reread operation using the flash memory manufacturer's command set such as set parameter or set feature. If the reread is successful, the operation ends.

[0082] If the reread fails, proceed to Vth scan comparison. Under the corresponding state conditions, perform Vth distribution scan processing on the Word Line containing the data page where the read failure occurred to obtain the second offset parameter set.

[0083] S303, compare the second offset parameter set with the first offset parameter set to determine the voltage offset direction of the read level in the target data page.

[0084] For example, after determining the second offset parameter set, it is compared with the first offset parameter set according to the first matching index. The specific steps are as follows:

[0085] a. Perform Vth distribution scanning processing on the Word Line where the data page that failed to read is located. The method is the same as the processing method of the first offset parameter set in the Vth parameter group setting, and will not be described in detail in this application. Obtain the horizontal coordinate of the lowest point in the trough corresponding to each Read Level of the fitted waveform of the Vth distribution coordinate points. Taking QLC mode as an example, obtain the second offset parameter set [U_r1, U_r2, U_r3, U_r4, U_r5, ..., U_r15].

[0086] b. Read the Read Level position information in the first matching index, and obtain the coordinate values ​​of the corresponding positions in the first offset parameter set and the second offset parameter set respectively; subtract the corresponding coordinate values ​​in the first offset parameter set from the Read Level coordinate values ​​in the second offset parameter set to obtain the difference D_value.

[0087] c. Set a threshold value B_thr (B_thr is a natural number) to reduce the offset error caused by Vth distribution reading fluctuations and data processing, as well as the voltage offset within an acceptable range. Specifically, if |D_value|≤B_thr holds true for all corresponding ReadLevels of the first matching index, then if D_value>0, record the voltage offset direction of that ReadLevel as shifting to the right. If D_value<0, record the voltage offset direction of that ReadLevel as shifting to the left.

[0088] d. Where not all |D_value|≤B_thr values ​​for all corresponding Read Levels in the first matching index are true, then when |D_value|≤B_thr, it can be considered that the Read Level has not shifted, and the default read voltage setting is maintained. If |D_value|>B_thr and D_value>0, then the voltage shift direction of the read level is recorded as shifting to the right. If |D_value|>B_thr and D_value<0, then the voltage shift direction of the read level is recorded as shifting to the left.

[0089] S304. Based on the voltage offset direction, find the target reread offset voltage item in the selectable offset voltage items, determine the second offset voltage parameter group, and use the reread offset voltage item in the second offset voltage parameter group to reread the target data page.

[0090] One possible implementation involves determining an optional offset voltage term from all available offset voltage terms corresponding to the flash memory, based on the voltage offset direction. Each optional offset voltage term includes at least one characteristic parameter. This characteristic parameter represents the offset magnitude of the optional offset voltage term. A target reread offset voltage term is determined based on the number of characteristic parameters in the optional offset voltage term. A second set of offset voltage parameters is then determined based on the target reread offset voltage term.

[0091] For example, after obtaining the voltage offset direction of all read levels corresponding to the page where the data read failure occurred, the optimal offset voltage term is searched for each read level according to the corresponding offset direction. The specific steps are as follows:

[0092] a. Obtain all available offset voltage items in ascending (or descending) order along the offset direction as the third offset parameter set, which is generally half of all available offset voltage items given by the flash memory manufacturer. Obtain the length L of the third offset parameter set Vol_lst list, with the first boundary index as left_idx and the second boundary index as right_idx, and the initial values ​​as left_idx = 0 and right_idx = L - 1; R is the threshold value for the percentage of "1" bits that can be best distinguished from different states of the memory cell when the set offset voltage reading of this Read Level is used; Delta (0 ≤ Delta) is the difference boundary between the acceptable percentage of actual "1" bits and the percentage threshold R.

[0093] The default read voltage of flash memory is based on 0. When the voltage is shifted to the left, the offset settings of its characteristic parameters from small to large are generally 0xFF, 0xFE, ..., 0x81, 0x80, etc. When the voltage is shifted to the right, the offset settings of its characteristic parameters from small to large are generally 0x01, 0x02, ..., 0x7E, 0x7F, etc.

[0094] In this context, bit "1" refers to the process of determining whether the stored data is "0" or "1" by comparing the voltage of the storage cell with the read voltage during a read operation. If the voltage of the storage cell is lower than the read voltage, it will be interpreted as data "1", and otherwise as "0".

[0095] b. Determine the third boundary index Lmid_idx and the fourth boundary index Rmid_idx based on the first boundary index left_idx and the second boundary index right_idx. They can be defined as Lmid_idx = left_idx + (right_idx - left_idx) / / 3 and Rmid_idx = right_idx - (right_idx - left_idx) / / 3, respectively.

[0096] c. When left_idx < right_idx is not satisfied, if left_idx > L - 1, set left_idx = L - 1; if right_idx < 0, set right_idx = 0. Then the better reread offset voltage term Vol_better = Vol_lst[(left_idx + right_idx) / / 2], and the search ends.

[0097] d. When left_idx < right_idx is satisfied, for the current Read Level, perform rereading according to the offset voltages in the third offset parameter set corresponding to the Lmid_idx and Rmid_idx two indexes, and obtain the percentages Lmid_pct and Rmid_pct of bit "1" in the corresponding data.

[0098] e. If |Lmid_pct - R| ≤ Delta or |Rmid_pct - R| ≤ Delta, then the better reread offset voltage term Vol_better = Vol_lst[Lmid_idx] or Vol_lst[Rmid_idx], and the search ends.

[0099] f. If Lmid_pct + Delta < R < Rmid_pct - Delta, then update left_idx = Lmid_idx + 1 and right_idx = Rmid_idx - 1; if Lmid_pct - Delta > R, then update right_idx = Lmid_idx - 1; if Rmid_pct + Delta < R, then update left_idx = Rmid_idx + 1. Return to step b until Vol_better is obtained and the search ends.

[0100] This application uses the voltage threshold distribution only as a judgment basis for the offset direction and accurately locates it among the valid offset voltage terms, which can effectively avoid the errors or interference existing in the voltage threshold distribution data, and reduce the search for invalid offset voltage terms and Read Levels, achieving the best reread effect.

[0101] Further, if the rereading operation on the target data page using the reread offset voltage term is successful, update the reread table using the reread offset voltage term in the second offset voltage parameter group.

[0102] Specifically, the current status information of the flash memory is obtained. If the percentage difference between the current status information and the preset status information stored in the reread table is less than or equal to the status update percentage threshold stored in the reread table, the reread offset voltage item in the second offset voltage parameter group is used as the target read level offset voltage item to update the corresponding first offset voltage parameter in the reread table based on the matching index between the target data page and the target read level.

[0103] For example, using the offset voltage entry of the Read Level required for the page where the read failure occurred, a reread operation is performed and the reread table is updated. The specific steps are as follows:

[0104] a. Based on the corresponding offset voltage item of the Read Level required for the data page that failed to read, obtained from the third offset parameter set, perform the reread operation using the flash memory manufacturer's set parameter or set feature command set.

[0105] b. If the reread is successful, the m (m is a natural number) state information values ​​in the state list Uc are compared with the first matching parameter set in the reread table. Specifically, if a state information value in the state list Uc is greater than the corresponding state information value in the first matching parameter set, then the state is considered to meet the update requirements. The reread table parameter update method is selected based on the pre-agreed requirements for the number of updated state conditions and the update priority in the parameter group.

[0106] When the required number of updates and update priority requirements for the state conditions in the pre-agreed parameter set are not met, a similar scenario is considered to have occurred. The current state list Uc and the offset voltage item corresponding to the optimal Read Level for the data page that failed to read, obtained from the third offset parameter set, are used to update the data in the parameter set corresponding to the first matching parameter set in the RetryTable.

[0107] Specifically, if the percentage difference between the current state information and the preset state information stored in the reread table is greater than the state update percentage threshold stored in the reread table, the target state matching percentage threshold and the target state update percentage threshold are re-determined based on the current state information.

[0108] Based on the second offset voltage parameter set, the current state information, and the corresponding set target state matching percentage threshold and target state update percentage threshold, a new parameter set is obtained and added to the reread table.

[0109] For example, when the required number of updates for state conditions in the pre-agreed parameter set and the update priority requirements are met, other scenarios with significant differences are considered to have occurred. A new state update threshold Pup and a state matching threshold Pcp are set for each state condition. The current state list Uc and the optimal offset voltage item corresponding to the Read Level required for the data page that failed to read, obtained from the third offset parameter set, are obtained. The parameter information from the first matching parameter set is then used to update the data correspondingly with the second offset voltage parameter set and the current state condition information to obtain the second reread parameter set, which is then added to the Retry Table.

[0110] This application can effectively utilize historical data of successful rereading of offset voltage terms located based on voltage threshold distribution. It can not only adapt to different scenarios in a timely manner, but also quickly match the latest data of parameter group in the RetryTable to achieve efficient rereading of subsequent failed read data in the same scenario, reducing the computational burden of rereading search.

[0111] The foregoing mainly describes the solution provided by the embodiments of this application from the perspective of the working principle of the data rereading device. It is understood that, in order to achieve the above functions, the data rereading device includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0112] This application embodiment can divide the data rereading device into functional modules according to the above method example. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into a single processor. The integrated modules can be implemented in hardware or as software functional modules.

[0113] It should be noted that the module division in this embodiment is illustrative and represents only one logical functional division; in actual implementation, other division methods may be used. When dividing functional modules according to their respective functions, Figure 5 A schematic diagram of a possible configuration of the data rereading device involved in the above and embodiment is shown. For example... Figure 5 As shown, the data rereading device 500 may include: an acquisition module 501, a processing module 502, a determination module 503, and a rereading module 504.

[0114] The acquisition module 501 is used to support the data rereading device 500 provided in this application embodiment to perform, such as Figure 3 S301 in the data rereading method shown.

[0115] Processing module 502 is used to support the data rereading device 500 provided in the embodiments of this application to perform, such as Figure 3 S302 in the data rereading method shown.

[0116] The determination module 503 is used to support the data rereading device 500 provided in the embodiments of this application to perform, such as Figure 3 S303 in the data rereading method shown.

[0117] The reread module 504 is used to support the data reread device 500 provided in the embodiments of this application to perform, such as Figure 3 S304 in the data rereading method shown.

[0118] One possible implementation involves the device performing a voltage threshold distribution scan on each read level in the target data page to obtain a voltage offset for each read level. Based on the voltage offset for each read level, a voltage threshold distribution for each read level is determined. A second offset parameter set is extracted from the voltage threshold distribution for each read level. The voltage offset parameters in the second offset parameter set correspond to each read level.

[0119] One possible implementation involves the device determining a matching index based on a target data page. The matching index represents a preset correspondence between the target data page and at least one target read level. For any of the at least one target read levels, based on the matching index, a first offset parameter in a first offset parameter set and a second offset parameter in a second offset parameter set are determined for the target read level. The difference between the second offset parameter and the first offset parameter is determined. If the absolute value of the difference between the target read levels corresponding to the target data page and the target read level is less than or equal to a difference threshold, the voltage offset direction is determined based on the difference.

[0120] One possible implementation involves the apparatus specifically used to determine an optional offset voltage term from all available offset voltage terms corresponding to the flash memory, based on the voltage offset direction. The optional offset voltage term includes at least one characteristic parameter. The characteristic parameter represents the offset magnitude of the optional offset voltage term. A target reread offset voltage term is determined based on the number of characteristic parameters in the optional offset voltage term.

[0121] One possible implementation is that the device is specifically used to update the reread table using the reread offset voltage term if the target data page is successfully reread using the reread offset voltage term.

[0122] One possible implementation involves the device acquiring the current state information of the flash memory. If the percentage difference between the current state information and the preset state information stored in the reread table is less than or equal to the state update percentage threshold stored in the reread table, the reread table is updated with the reread offset voltage item as the first offset voltage parameter of the target read level, based on the matching index between the target data page and the target read level.

[0123] In one possible implementation, the device is specifically used to redetermine the target state matching percentage threshold and the target state update percentage threshold based on the current state information if the percentage difference between the current state information and the preset state information stored in the reread table is greater than the state update percentage threshold stored in the reread table. A new parameter set is obtained based on the second offset voltage parameter set, the current state information, and the correspondingly set target state matching percentage threshold and target state update percentage threshold, and then added to the reread table.

[0124] It should be noted that all relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.

[0125] The data rereading device 500 provided in this application embodiment is used to perform the above-mentioned... Figure 3 The data rereading method shown can achieve the same effect as the data rereading method described above.

[0126] This application also provides a data rereading device, which can be the data rereading device described in the foregoing embodiments. Figure 2 The data rereading device 200 shown can perform the data rereading method and related steps in the above method embodiments.

[0127] This application also provides a computer-readable storage medium storing instructions thereon, which, when executed, perform the data rereading method and related steps described in the above method embodiments.

[0128] This application also provides a computer program product that, when run on a computer, causes the computer to execute the data rereading method and related steps described in the above method embodiments.

[0129] In some embodiments, the methods shown in this application can be implemented as computer program instructions encoded in a machine-readable format on a computer-readable storage medium or on other non-transitory media or articles of art.

[0130] This application also provides a data rereading system 600, such as... Figure 6 As shown, the data rereading system 600 includes at least one processor 601 and at least one interface circuit 602.

[0131] As an example, when the data rereading system 600 includes a processor and an interface circuit, the processor can be... Figure 6 The processor 601 shown in the solid box (or the processor 601 shown in the dashed box) can be an interface circuit. Figure 6 The interface circuit 602 is shown in the solid box (or the dashed box). When the data rereading system 600 includes two processors and two interface circuits, the two processors include... Figure 6 The processor 601 shown in the solid box and the processor 601 shown in the dashed box, these two interface circuits include Figure 6 Interface circuit 602 is shown in both solid and dashed boxes. No limitations are imposed on this.

[0132] Processor 601 and interface circuit 602 can be interconnected via a line. For example, interface circuit 602 can be used to receive signals. Alternatively, interface circuit 602 can be used to send signals to other devices (e.g., processor 601). For instance, interface circuit 602 can read computer instructions stored in memory and send those instructions to processor 601. Processor 601 executes the instructions and, in conjunction with input / output devices, implements the various steps in the above embodiments, such as implementing... Figure 3 or Figure 4 The methods illustrated are the steps performed in the embodiments shown. Of course, the data rereading system 600 may also include other discrete components, and this application embodiment does not specifically limit this.

[0133] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.

[0134] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

[0135] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0136] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0137] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solution of the embodiments of this application, or the part that contributes to it, or all or part of the technical solution, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a data rereading device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0138] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A data re-read method, characterized by, Applied to flash memory, the flash memory including at least one word line and at least one data page, each word line being connected to at least one data page, the data page including at least one read level; the method includes: When reading data from the flash memory, if the bit error rate when reading the target data page exceeds the error correction range, a first offset voltage parameter group applicable to the target data page in the current state is obtained from a preset reread table, and the target data page is reread using the first offset voltage parameter group; the first offset voltage parameter in the first offset voltage parameter group corresponds to the read level in the target data page; If it fails to reread the target data page using the first offset voltage parameter set, a voltage threshold distribution scan is performed on the target data page to obtain the second offset parameter set of the target data page. The second offset parameter set is compared with the first offset parameter set to determine the voltage offset direction of the read level in the target data page; the first offset parameter set is the voltage threshold distribution parameter set of the flash memory in its original state without wear at room temperature; Based on the voltage offset direction, the target reread offset voltage item is searched in the optional offset voltage items to determine the second offset voltage parameter group, and the target data page is reread using the reread offset voltage item in the second offset voltage parameter group.

2. The method of claim 1, wherein, The voltage threshold distribution scanning process performed on the target data page to obtain the second offset parameter set of the target data page includes: A voltage threshold distribution scan is performed on each reading level in the target data page to obtain the voltage offset of each reading level; The voltage threshold distribution for each read level is determined based on the voltage offset for each read level. The second offset parameter set is extracted from the voltage threshold distribution of each read level; the voltage offset parameters in the second offset parameter set correspond to each read level.

3. The method according to claim 1, characterized in that, The step of comparing the second offset parameter set with the first offset parameter set to determine the voltage offset direction of the read level in the target data page includes: Based on the target data page, a matching index is determined; the matching index is used to represent a preset correspondence between the target data page and at least one target reading level; For any one of the at least one target read level, based on the matching index, determine a first offset parameter of the target read level in the first offset parameter set and a second offset parameter of the target read level in the second offset parameter set; Determine the difference between the second offset parameter and the first offset parameter; If the absolute value of the difference between the target read level and the target data page is less than or equal to the difference threshold, the voltage offset direction is determined based on the difference.

4. The method according to claim 1, characterized in that, The step of searching for the target reread offset voltage item in the selectable offset voltage items according to the voltage offset direction, and determining the second offset voltage parameter group, includes: Based on the voltage offset direction, the optional offset voltage term is determined from all available offset voltage terms corresponding to the flash memory; the optional offset voltage term includes at least one feature parameter; the feature parameter is used to represent the offset magnitude of the optional offset voltage term; The target reread offset voltage term is determined based on the number of the characteristic parameters in the optional offset voltage term; The second offset voltage parameter group is determined based on the target reread offset voltage term.

5. The method according to claim 1, characterized in that, The method further includes: If the rereading operation of the target data page using the rereading offset voltage item in the second offset voltage parameter group is successful, the rereading table is updated using the rereading offset voltage item.

6. The method according to claim 5, characterized in that, The step of updating the reread table using the reread offset voltage term includes: Obtain the current status information of the flash memory; If the percentage difference between the current status information and the preset status information stored in the reread table is less than or equal to the status update percentage threshold stored in the reread table, based on the matching index between the target data page and the target reading level, the reread offset voltage item in the second offset voltage parameter group is used as the offset voltage item of the target reading level to update the corresponding first offset voltage parameter in the reread table.

7. The method according to claim 6, characterized in that, The method further includes: If the percentage difference between the current state information and the preset state information stored in the reread table is greater than the state update percentage threshold stored in the reread table, the target state matching percentage threshold and the target state update percentage threshold are re-determined based on the current state information. Based on the second offset voltage parameter group, the current state information, and the corresponding set target state matching percentage threshold and target state update percentage threshold, a new parameter group is obtained and added to the reread table.

8. A data rereading device, characterized in that, Applied to flash memory, the flash memory including at least one word line, the word line including at least one data page, the data page including at least one read level; the device includes: The acquisition module is used to, when reading data from flash memory, if the bit error rate when reading the target data page exceeds the error correction range value, retrieve a first offset voltage parameter group applicable to the target data page in the current state from a preset reread table, and reread the target data page using the first offset voltage parameter group; the first offset voltage parameter in the first offset voltage parameter group corresponds to the read level in the target data page; The processing module is configured to perform voltage threshold distribution scanning processing on the target data page to obtain a second offset parameter set of the target data page if it fails to reread the target data page using the first offset voltage parameter set. The determination module is used to compare the second offset parameter set with the first offset parameter set to determine the voltage offset direction of the read level in the target data page; the first offset parameter set is the voltage threshold distribution parameter set of the flash memory in its original state without wear at room temperature; The reread module is used to find the target reread offset voltage item in the selectable offset voltage items according to the voltage offset direction, determine the second offset voltage parameter group, and reread the target data page using the reread offset voltage item in the second offset voltage parameter group.

9. A data rereading device, characterized in that, The data rereading device includes a processor and a memory, the memory storing computer-executable instructions that can be executed by the processor, the processor executing the computer-executable instructions to implement the data rereading method according to any one of claims 1-7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the data rereading method as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Method for quickly searching optimal reread voltage of NAND flash memory

    CN110797068A

  • Reread management method, solid state disk controller and solid state disk

    CN112562766A