Flash data re-reading method, flash data re-reading device and readable storage medium
Patent Information
- Application Number
- CN202610747705.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-28
- Publication Date
- 2026-10-30
AI Technical Summary
[0003]传统方案通常采用单一重读表对多场景进行重读,这种单一表覆盖多场景的方式存在局限性,难以灵活适应不同工况组合,缺乏对特定工况的针对性处理,导致数据重读的准确性低和效率低
[0014]本申请实施例还公开了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的闪存数据重读方法中的步骤。
Smart Images

Figure CN123011129A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of storage technology, and in particular to a flash memory data rereading method, a flash memory data rereading device, and a readable storage medium. Background Technology
[0002] With the rapid development of solid-state storage technology, NAND Flash (flash memory) has become a mainstream storage medium, widely used in various devices due to its advantages such as high performance, low power consumption, and non-volatility. However, in actual use, due to its physical structure characteristics and external environmental factors, data errors are prone to occur during the reading process, especially with TLC and QLC chips, whose data stability heavily relies on read retry functionality. These data errors are mainly caused by factors such as read interference, data retention, and temperature differences between read and write operations, leading to bit flips and affecting the reliability and performance of the storage system. To correct these data errors, NAND Flash devices typically employ read retry functionality.
[0003] Traditional solutions typically use a single reread table to reread data across multiple scenarios. This approach, which uses a single table to cover multiple scenarios, has limitations. It is difficult to flexibly adapt to different combinations of working conditions and lacks targeted processing for specific working conditions, resulting in low accuracy and efficiency of data rereading. Summary of the Invention
[0004] The purpose of this application is to provide a flash memory data rereading method, a flash memory data rereading device, and a readable storage medium to improve the accuracy and efficiency of flash memory data rereading.
[0005] This application discloses a method for rereading flash memory data, the method comprising the following steps: Construct multiple reread tables based on different scenarios; Create an index list for multiple reread tables: Obtain the current scene information, and search for the corresponding reread table, i.e. the target reread table, based on the current scene information and the index list; Data is reread according to the target reread table.
[0006] Optionally, the step of creating an index list for multiple reread tables includes: The reread table and the scenario are mapped to each other in a one-to-one manner. Assign a corresponding index ID to each of the aforementioned scenarios; and An index list is established based on the index ID and the mapping relationship.
[0007] Optionally, each scenario includes multiple working conditions, and the step of assigning a corresponding index ID to each scenario includes: Set the parameter range for each operating condition; The parameter range for each operating condition is divided into at least two intervals, and each interval is numbered; and The index ID of the scenario is obtained by performing a linear weighted calculation based on the number of intervals and the interval number for each working condition in the scenario.
[0008] Optionally, the step of obtaining the current scene information and searching for the corresponding reread table, i.e., the target reread table, based on the current scene information and the index list includes: Obtain current scene information during firmware runtime; Based on the current scene information, derive the corresponding index ID; and The corresponding reread table is found based on the index ID corresponding to the current scene information and the index list.
[0009] Optionally, after obtaining the current scene information and searching for the corresponding reread table, i.e., the target reread table, based on the current scene information and the index list, the flash data reread method further includes: A confidence assessment is performed on the target reread table; If the confidence level is greater than or equal to the preset threshold, proceed to the next step; if the confidence level is less than the preset threshold, reacquire the current scene information and regenerate the target reread table.
[0010] Optionally, the step of assessing the confidence level of the target reread table includes: The number of iterations for low-density parity-check codes is reduced; Select a subset of reread entries from the target reread table for rereading to obtain target characteristic indicators; and The confidence level of the target reread table is evaluated based on the target characteristic indicators.
[0011] Optionally, in the step of reducing the number of iterations of the low-density parity check code, the number of iterations of the low-density parity check code is reduced to 1-10 times; in the step of selecting some reread entries in the target reread table for rereading to obtain the target characteristic index, an accelerated algorithm is used to select some reread entries in the target reread table for rereading.
[0012] Optionally, each scenario includes multiple operating conditions, including at least one of ambient temperature, Flash wear, Block status, Block read count, storage time, and the current stored data mode.
[0013] This application also discloses a flash memory data rereading device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps in the flash memory data rereading method described above.
[0014] This application also discloses a readable storage medium storing a computer program, which, when executed by a processor, implements the steps in the flash memory data rereading method described above.
[0015] The beneficial effects of this application's embodiments are as follows: By constructing multiple reread tables based on different scenarios—that is, constructing different reread tables for different scenarios—this allows for the identification of a specific reread table for data rereading when a scenario occurs. This enables flexible adaptation to different combinations of operating conditions within different scenarios, overcoming the limitations of traditional solutions where a single table covers multiple scenarios. It improves the accuracy of data rereading and provides an operable solution for predicting flash memory failures under various operating conditions. Furthermore, this application's embodiments establish an index list of all reread tables. The corresponding reread table can be quickly found using the index list and current scenario information, eliminating the need to traverse all reread tables and reread items, thereby effectively improving the efficiency of data rereading. Attached Figure Description
[0016] The accompanying drawings, which form part of the specification, are used to provide a further understanding of the embodiments of this application and illustrate the implementation methods of this application, together with the textual description, to explain the principles of this application. Obviously, the drawings described below are merely some embodiments of this application, and those skilled in the art can obtain other drawings based on these drawings without any creative effort. In the drawings: Figure 1 This is a flowchart of a flash memory data rereading method provided in the first embodiment of this application; Figure 2 This is an expanded flowchart of a flash memory data rereading method provided in the first embodiment of this application; Figure 3 This is a flowchart of another flash memory data rereading method provided in the first embodiment of this application; Figure 4 This is a schematic diagram of a flash memory data rereading device provided in the second embodiment of this application; Figure 5 This is a schematic diagram of a readable storage medium provided in the third embodiment of this application.
[0017] Among them, 10 is a flash memory data rereading device; 20 is a memory; 21 is a computer program; 30 is a processor; and 40 is a readable storage medium. Detailed Implementation
[0018] It should be understood that the terminology, specific structural and functional details used herein are merely for describing particular embodiments and are representative. However, this application may be implemented in many alternative forms and should not be construed as being limited to the embodiments set forth herein.
[0019] Furthermore, unless otherwise explicitly specified and limited, "connected" or "linked" should be interpreted broadly. For example, it can refer to a fixed connection, a detachable connection, or an integral connection; it can refer to a mechanical connection or an electrical connection; it can refer to a direct connection or an indirect connection through an intermediate medium, or a connection within two components. Those skilled in the art can understand the specific meaning of the above terms in this application based on the specific circumstances.
[0020] In traditional solutions, the reread table typically consists of multiple sets of reread entries, each containing multiple decision voltage parameters to correspond to a single reread scenario. This approach of using a single table to cover multiple scenarios has limitations, making it difficult to flexibly adapt to different combinations of operating conditions and lacking targeted processing for specific operating conditions. Moreover, existing reread mechanisms often require traversing all reread entries, resulting in low reread efficiency and increased data reading time when there are many reread entries. Therefore, in complex operating environments with multiple operating conditions, how to quickly find a suitable reread table and perform efficient data rereading based on it directly affects the performance and reliability of solid-state memory. Based on this, the first embodiment of this application provides a flash memory data rereading method to improve the accuracy and efficiency of flash memory data rereading, thereby improving the performance and reliability of solid-state memory.
[0021] like Figure 1 As shown, the flash memory data rereading method includes the following steps: S1: Construct multiple reread tables based on different scenarios; S2: Create an index list for multiple reread tables: S3: Obtain the current scene information, and search for the corresponding reread table, i.e. the target reread table, based on the current scene information and the index list; S4: Reread the data according to the target reread table.
[0022] This application embodiment constructs multiple reread tables based on different scenarios, meaning different reread tables are built for different scenarios. This ensures that a specific reread table can be found for data rereading when each scenario occurs, flexibly adapting to different combinations of working conditions in different scenarios. This overcomes the limitation of a single table covering multiple scenarios in traditional solutions and improves the accuracy of data rereading. Furthermore, this application embodiment also establishes an index list of all reread tables. The corresponding reread table can be quickly found using the index list and the current scenario information, without needing to traverse all reread tables and reread items, thus effectively improving the efficiency of data rereading.
[0023] Moreover, the technical solutions provided in this application can provide an operable solution for predicting the failure of flash memory under various operating conditions.
[0024] First, it should be noted that the scenarios in this application embodiment include multiple operating conditions, including at least one of the following: ambient temperature, Flash wear, Block status, Block read count, storage time, and the currently stored data pattern. Of course, other operating conditions can be added as needed, but they are not listed here. This application embodiment preferentially uses multiple operating conditions to construct the scenarios in order to improve the relevance and accuracy of the reread table.
[0025] Specifically, in step S1, a reread table is generated based on operating conditions such as ambient temperature, flash wear, block status, and block read count. The number of operating conditions used to generate the reread table can be selected based on actual conditions; the more operating conditions, the higher the accuracy of the reread table. The specific method for generating the reread table based on operating conditions involves first collecting historical and real-time information for a given operating condition, then discretizing the collected information into operating condition labels, finding the base voltage sequence template, and then dynamically scaling and offsetting the operating condition information to obtain the corresponding reread items. By using the above method to obtain the reread items corresponding to all operating conditions in a scenario, a reread table is obtained.
[0026] like Figure 2 As shown, step S2 specifically includes: S21: Establish a one-to-one mapping relationship between the reread table and the scenario; S22: Assign a corresponding index ID to each of the scenarios; S23: Establish an index list based on the index ID and the mapping relationship.
[0027] This application employs a scenario-reread table mapping mechanism to establish a mapping relationship between scenarios and reread tables, ensuring that each reread table corresponds to a scenario containing multiple operating conditions. Then, an index ID is assigned to each scenario, and an index list is built using the index IDs and the mapping relationship. The index list contains the index IDs corresponding to each scenario. After obtaining scenario information, the corresponding reread table can be quickly found by searching for the corresponding index ID in this index list.
[0028] In other embodiments, different scenarios can be marked by assigning numbers or patterns, and a corresponding index list can be established to quickly find the corresponding reread table through these markings.
[0029] Specifically, step S22 includes: S221: Set the parameter range for each operating condition; S222: Divide the parameter range of each operating condition into at least two intervals and number each interval; S223: The index ID of the scenario is obtained by performing a linear weighted calculation based on the number of intervals and the interval number of each working condition in the scenario.
[0030] This application first groups multiple operating parameters and sets the parameter range and partitions for each operating condition. As shown in the table below, as a specific example, taking an operating condition that includes five dimensions such as ambient temperature, Flash wear, Block state, Block read count, and storage time for each scenario, based on the normal usage of the memory, the parameter range of the ambient temperature where the memory is located is set to -10℃ to 100℃, and the parameter range of the ambient temperature parameter is divided into three intervals; the Flash wear (i.e., the number of times the memory is erased and written) is set to 0-3000 times, and the Flash wear is divided into six intervals; the Block state is set to two states, open and close, and correspondingly divided into two intervals; the Block read count is set to 0-900,000 times, and evenly divided into three intervals; the storage time is set to 0-12 months, and evenly divided into four intervals.
[0031]
[0032] In this example, there are 432 combinations of all operating conditions (3*6*2*3*4), which is 432 scenarios. Therefore, 432 reread tables are needed. Each reread table corresponds to five different dimensions and specific operating conditions. The reread item is the maximum number of threshold voltage distribution combinations under that operating condition, thus forming a refined reread table.
[0033] As for the numbering of each interval, the intervals within each operating condition are sorted in numerical order. In this example, the interval with an ambient temperature between -10 and 0°C is numbered 0, the interval with an ambient temperature between 1 and 64°C is numbered 1, and the interval with an ambient temperature between 65 and 100°C is numbered 2. The interval with Flash wear between 0 and 500 is numbered 0, the interval with Flash wear between 501 and 1200 is numbered 1, the interval with Flash wear between 1201 and 1500 is numbered 2, the interval with Flash wear between 1501 and 2000 is numbered 3, the interval with Flash wear between 2001 and 2500 is numbered 4, and the interval with Flash wear between 2501 and 3000 is numbered 5. The block with the open state is numbered 0, and the block with the closed state is numbered 1. Blocks with 0-300,000 reads are numbered 0, those with 300,000-600,000 reads are numbered 1, and those with 600,000-900,000 reads are numbered 2. Blocks with a storage time of 0-3 months are numbered 0, those with a storage time of 3-6 months are numbered 1, and those with a storage time of 6-9 months are numbered 2.
[0034] As a specific example, in a scenario where the ambient temperature is 28℃, the Flash wear level is 850 times, the Block state is closed, the Block read count is 55 times, and the storage time is 7 months, the ambient temperature interval is numbered 1, the Flash wear level interval is numbered 1, the Block state interval is numbered 1, the Block read count interval is numbered 1, and the storage time interval is numbered 2. At this time, the index ID is the ambient temperature interval number * ambient temperature weight + the Flash wear level interval number * Flash wear level weight + the Block state interval number * Block state weight + the Block read count interval number * Block read count weight + the storage time interval number * storage time weight. Substituting the numbers, we get the index ID as 1 * (6 * 2 * 3 * 4) + 1 * (2 * 3 * 4) + 1 * (3 * 4) + 1 * (4) + 2 * (1), which equals 186. That is, the index ID for this scenario is 186.
[0035] This application embodiment calculates the unique index ID of the reread table under the corresponding combination scenario through a linear weighted combination calculation method, and records the corresponding relationship in the index list, thus establishing an effective indexing mechanism. This enables the index ID of the reread table to be quickly derived based on parameters such as the current ambient temperature, Flash wear level, and Block status when the FW (Firmware) is running and enters the reread process, which significantly improves the positioning efficiency of the reread table.
[0036] In other embodiments, other operating condition parameter ranges and other number of interval division methods can be selected, other numbering methods can be used, and even other methods can be used to calculate the index ID.
[0037] In this embodiment, after establishing the index list, the index ID derived from the current scenario information is substituted into the index list to obtain the corresponding reread table. Specifically, step S3 includes: S31: Obtain current scene information during firmware runtime; S32: Derive the corresponding index ID based on the current scene information; S33: Find the corresponding reread table based on the index ID corresponding to the current scene information and the index list.
[0038] The current scene information includes operating parameters such as ambient temperature, flash wear level, and block status. These parameters are analyzed and assigned intervals, and then a corresponding index ID is calculated using linear weighting. This index ID is then placed in an index list for searching, specifically using direct array indexing. This allows for quick retrieval of the reread table corresponding to the index ID, thus obtaining the reread table for the current scene. This search process is efficient, accurate, and fast, effectively improving the accuracy and efficiency of reread table lookup.
[0039] It should be noted that if a special circumstance causes the calculated index ID to be invalid and unable to be displayed in the index list, the index ID can be ensured to be valid by adjusting the relevant operating condition parameters.
[0040] In some embodiments, the flash memory data rereading method further includes a verification step of the reread table to improve performance. Specifically, such as... Figure 3 As shown, between steps S3 and S4, the following also applies: S5: Perform a confidence assessment on the target reread table.
[0041] If the confidence level is greater than or equal to the preset threshold, proceed to the next step; if the confidence level is less than the preset threshold, return to step S3, reacquire the current scene information, and regenerate the target reread table.
[0042] To avoid situations where reread entries in the target reread table do not meet the requirements, this application first evaluates the confidence level of the target reread table after finding it for the current scenario. If the confidence level meets the requirements, it means that the reread entries in the target reread table basically meet the requirements, and data rereading can be performed based on this reread table. If the confidence level does not meet the requirements, it means that there are reread entries in the target reread table that do not meet the requirements. It is necessary to rematch the scenario and generate a new target reread table until a target reread table that meets the confidence requirements is obtained before proceeding with subsequent data rereading operations. This ensures the accuracy and reliability of data rereading and further improves the success rate of error correction after rereading.
[0043] Furthermore, step S5 specifically includes: S51: Reduce the number of iterations for low-density parity-check codes; S52: Select a portion of the reread items in the target reread table for rereading to obtain target characteristic indicators; S53: Evaluate the confidence level of the target reread table based on the target characteristic index.
[0044] Specifically, in step S51, the number of iterations for the Low Density Parity Check Code (LDPC) is reduced to 1-10 times, and further reduced to 3 times. The normal number of LDPC iterations is 48. This embodiment reduces the number of LDPC iterations to 1-10 times, which can greatly improve the fast filtering speed by approximately 93%, while also ensuring the accuracy of the filtering to a certain extent. Simultaneously, it can reduce the latency of the filtering stage to approximately 45µs per reread item, while the normal latency for a reread item is approximately 150µs. Therefore, reducing the number of iterations can significantly reduce latency and improve the efficiency of fast filtering. Subsequently, acceleration algorithms such as binary search, conditional filtering, random sampling, and weighted algorithms can be used to quickly reread a portion of the reread items in the selected reread table, obtaining characteristic indicators such as RBER values or Syndrome Weight. The confidence level of the current reread table is then evaluated based on the threshold of the characteristic indicators. Specifically, the first, last, and middle reread items in the target reread table can be selected for rereading to improve the efficiency of confidence verification.
[0045] This application's embodiments employ a method such as binary search to quickly scan the reread entries in the reread table. By judging feature values such as RBER or Syndrome Weight, the confidence level of the current reread table is quickly assessed. Combined with the adjustment mechanism of LDPC iteration count, the initial screening of a very small number of reread tables with high confidence is quickly achieved, thus improving the efficiency of the initial screening of reread tables.
[0046] After assessing the confidence level of the target reread table and obtaining a reread table that meets the criteria, a deep reread of that table is performed. Specifically, first, the LDPC iteration count is restored to the normal configuration, for example, from 3 to 48 iterations; then, each reread item in the reread table is reread with voltage bias one by one, and the process waits for ECC to finish; next, it is determined whether the result is no longer UECC. If the verification passes, the reread process is completed. Specifically, after the data reread is completed, the data is returned to the host, and successful read information is recorded (e.g., the index ID and the number of reread items corresponding to the reread table are recorded), the original block data is updated, and a success report is sent to the host; if the process fails, the previous steps are returned to continue rereading until all reread items in the current reread table have been tried.
[0047] This application embodiment employs a deep reread strategy for the very few reread tables that match the current scenario. By restoring the normal LDPC iteration count, each item is reread to ensure that the relevant reread items are fully reread for the current working condition, thereby improving the probability and efficiency of correct reads and ensuring the accuracy and reliability of the reread data, effectively improving the overall performance of the NAND Flash storage system.
[0048] After testing, the rereading method of this application embodiment has an average rereading time of 242µs and a rereading success rate of 99.5%, while the traditional rereading method using a single overlay rereading table has an average rereading time of 650µs and a rereading success rate of 95.0%. It is evident that, compared to traditional data rereading methods, the rereading method provided in this application embodiment can significantly reduce rereading time and improve the rereading success rate.
[0049] like Figure 4 As shown, a flash memory data rereading device 10 provided as a second embodiment of this application includes a memory 20, a processor 30, and a computer program 21 stored in the memory 20 and executable on the processor 30. When the processor 30 executes the computer program 21, it implements the steps in the flash memory data rereading method described above.
[0050] like Figure 5 As shown, a readable storage medium 40 is provided as a third embodiment of this application. The readable storage medium 40 stores a computer program 21. When the computer program 21 is executed by the processor 30, it implements the steps in the flash memory data rereading method as described above.
[0051] It should be noted that the limitations of each step involved in this solution are not considered as limiting the order of steps, provided that they do not affect the implementation of the specific solution. The steps listed first can be executed first, later, or even simultaneously. Solutions from different embodiments can be combined and applied without conflict. As long as this solution can be implemented, they should be considered to fall within the protection scope of this application.
[0052] The above description, in conjunction with specific optional embodiments, provides a further detailed explanation of this application and should not be construed as limiting the specific implementation of this application to these descriptions. For those skilled in the art, various simple deductions or substitutions can be made without departing from the concept of this application, and all such modifications or substitutions should be considered within the scope of protection of this application.
Claims
1. A method for rereading flash memory data, characterized in that, Including the following steps: Construct multiple reread tables based on different scenarios; Create an index list for multiple reread tables: Obtain current scene information, and search for the corresponding reread table, i.e., the target reread table, based on the current scene information and the index list; and Data is reread according to the target reread table.
2. The flash memory data rereading method as described in claim 1, characterized in that, The step of creating an index list for multiple reread tables includes: The reread table and the scenario are mapped to each other in a one-to-one manner. Assign a corresponding index ID to each of the aforementioned scenarios; and An index list is established based on the index ID and the mapping relationship.
3. The flash memory data rereading method as described in claim 2, characterized in that, Each scenario includes multiple working conditions. The step of assigning a corresponding index ID to each scenario includes: Set the parameter range for each operating condition; The parameter range for each operating condition is divided into at least two intervals, and each interval is numbered; and The index ID of the scenario is obtained by performing a linear weighted calculation based on the number of intervals and the interval number for each working condition in the scenario.
4. The flash memory data rereading method as described in claim 2, characterized in that, The step of obtaining the current scene information and searching for the corresponding reread table, i.e., the target reread table, based on the current scene information and the index list includes: Obtain current scene information during firmware runtime; Based on the current scene information, derive the corresponding index ID; and The corresponding reread table is found based on the index ID corresponding to the current scene information and the index list.
5. The flash memory data rereading method as described in claim 1, characterized in that, After obtaining the current scene information and searching for the corresponding reread table, i.e., the target reread table, based on the current scene information and the index list, the flash data reread method further includes: A confidence assessment is performed on the target reread table; If the confidence level is greater than or equal to the preset threshold, proceed to the next step; if the confidence level is less than the preset threshold, reacquire the current scene information and regenerate the target reread table.
6. The flash memory data rereading method as described in claim 5, characterized in that, The step of assessing the confidence level of the target reread table includes: The number of iterations for low-density parity-check codes is reduced; Select a subset of reread entries from the target reread table for rereading to obtain target characteristic indicators; and The confidence level of the target reread table is evaluated based on the target characteristic indicators.
7. The flash memory data rereading method as described in claim 6, characterized in that, In the step of reducing the number of iterations of the low-density parity check code, the number of iterations of the low-density parity check code is reduced to 1-10. In the step of selecting a portion of the reread items in the target reread table for rereading to obtain the target characteristic index, an accelerated algorithm is used to select a portion of the reread items in the target reread table for rereading.
8. The flash memory data rereading method as described in claim 1, characterized in that, Each scenario includes multiple operating conditions, which include at least one of the following: ambient temperature, Flash wear level, Block status, Block read count, storage time, and current stored data mode.
9. A flash memory data rereading device, characterized in that, The flash memory data rereading device includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the flash memory data rereading method according to any one of claims 1-8.
10. A readable storage medium, characterized in that, The readable storage medium stores a computer program that, when executed by a processor, implements the steps of the flash memory data rereading method as described in any one of claims 1-8.
