Retry read operation processing method, device, and computer-readable storage medium for dynamically adjusting retry read process
Patent Information
- Authority / Receiving Office
- TW · TW
- Patent Type
- Applications
- Current Assignee / Owner
- SILICON MOTION INC
- Filing Date
- 2025-03-26
- Publication Date
- 2026-08-01
AI Technical Summary
Existing flash memory technologies employ a fixed reread process that is inefficient under specific conditions, leading to increased time consumption, resource wastage, and power consumption due to the inability to dynamically adjust the order of decoding methods.
A dynamic adjustment method that monitors decoding operations, records success and failure rates, and reorders the decoding steps based on success rates to improve efficiency and accuracy.
The method enhances decoding success rates, reduces power consumption, and shortens response times by prioritizing steps with higher success rates in the rereading process.
Smart Images

Figure TWG2TA001070059_001 
Figure TWG2TA001070059_002 
Figure TWG2TA001070059_003
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and more particularly to a reread operation processing method, apparatus, and computer-readable storage medium for dynamically adjusting the reread process. Prior Technology
[0002] When the performance of data storage devices degrades, voltage drift occurs, leading to increased error rates and poor data stability. Taking flash memory as an example, as the storage density of flash memory increases significantly, it inevitably suffers from various interferences during read and write operations, generating error codes that cause a sharp increase in the error rate and reliability degradation. In existing flash memory technologies, hardware, either hardware or software, is typically used by the main control chip and hardware in conjunction with a reread voltage meter and error correction unit provided by the manufacturer.
[0003] In traditional flash memory device read / reread processes, a common practice is to use a preset fixed read / reread sequence. This can include, for example, using a voltage meter for read / reread with hardware decoding, using the optimal threshold voltage for software decoding, and RAID repair methods. When the device experiences voltage drift or data errors, the system will sequentially try different read / reread methods to repair the data.
[0004] For example, the rereading process first uses a set of preset rereading voltmeters for hardware decoding. If decoding is successful in this step, the system will directly end the rereading process; if decoding fails, it will proceed to the next step.
[0005] Next, the system will attempt to find the optimal threshold voltage, or directly extract the threshold voltage recorded internally from the flash memory device and perform software decoding. If the software decoding is successful, the reread process will end; however, if the software decoding still cannot recover the data, the system will proceed to the third step.
[0006] The third step is to use RAID (Redundant Array of Independent Disks) technology to repair the data. If the RAID can successfully repair the data, the reread process will stop; if it still cannot repair the data, the system will return to the host and report a decoding failure.
[0007] However, this fixed rereading process has significant drawbacks. Because the order of the rereading process is preset and cannot be flexibly adjusted according to specific circumstances, the first few steps may become completely ineffective under certain special conditions. For example, when the device faces a specific type of data error, both hardware decoding and software decoding may fail to resolve the issue, but the system still needs to execute these steps step by step, wasting a significant amount of time and resources. This makes the entire rereading process lengthy, reduces system performance, and increases the device's power consumption.
[0008] Therefore, the present invention provides a reread operation processing method, apparatus and computer-readable storage medium for dynamically adjusting the reread process, so as to improve decoding efficiency and system performance. Summary of the Invention
[0009] To achieve the above objectives, the present invention provides a rereading operation processing method, apparatus, and computer-readable storage medium capable of dynamically adjusting the order of rereading methods used for decoding to improve decoding success rate and system operating efficiency.
[0010] This invention discloses a dynamic adjustment method for rereading operations, which decodes data segments in memory. The method includes the following steps: monitoring multiple stages of the decoding operation in the rereading process and recording the number of successes and failures at each stage, where each stage corresponds to a sequence number; obtaining the success rate of each stage, where the success rate is the ratio of the number of successes to the number of failures; when the success rate is less than a reordering threshold, reordering the corresponding stages according to the success rate; and updating the rereading order lookup table based on the reordered stage order and corresponding values corresponding to the content of the data segment.
[0011] In one embodiment, after reordering the order of the corresponding steps, the reordered order of the steps is converted into a numerical value according to its sequence number, and the contents of the rereading order lookup table are updated accordingly.
[0012] In one embodiment, the decoding operation includes hardware decoding, software decoding, or repair using a redundant array of independent disks.
[0013] In one embodiment, the numerical value is related to the order of the sequence number and the factorial. And the numerical value is an integer.
[0014] In one embodiment, the reread operation processing method further includes accessing a reread order lookup table, reading the integer corresponding to the data segment, and then obtaining the order of the steps in the data segment decoding operation.
[0015] Furthermore, to achieve the above objectives, the present invention also provides a reread operation processing apparatus, characterized by comprising a memory and a processor interconnected. The memory is used to store computer programs. The processor is used to execute the computer programs to implement the aforementioned reread operation processing method for dynamically adjusting the reread process.
[0016] Furthermore, to achieve the above objectives, the present invention also provides a computer-readable storage medium for storing computer programs. When the computer program is executed by a processor, it implements the aforementioned reread operation processing method that dynamically adjusts the reread process.
[0017] As described above, the rereading operation processing method, device, and computer-readable storage medium disclosed in this invention record the success rate of each rereading step, and when preset conditions are met, reorder the steps with high success rates to execute them in advance, thereby achieving more accurate rereading.
[0018] The above description is merely an overview of the technical solution of the present invention. In order to better understand the technical means of the present invention and to implement it in accordance with the contents of the specification, and to make the above and other objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described in detail below with reference to the accompanying drawings. Simple Explanation of the Diagram
[0019] Figure 1 is a flowchart of the reread operation processing method according to a preferred embodiment of the present invention. Figure 2 is a schematic diagram of the contents recorded in the repetition order comparison table. Figure 3 is a schematic diagram of the contents recorded in the updated repetition order comparison table. Figure 4 is a schematic diagram of the reread operation processing device according to a preferred embodiment of the present invention. Implementation
[0020] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Many specific details are set forth in the following description to provide a thorough understanding of the present invention. However, the present invention may also be implemented in other ways different from those described herein. Those skilled in the art can make similar extensions without departing from the spirit of the present invention. Therefore, the present invention is not limited to the specific embodiments disclosed below.
[0021] Figure 1 is a flowchart illustrating the reread operation processing method of dynamically adjusting the reread process in this embodiment. The reread operation processing method of dynamically adjusting the reread process can be applied to a memory, which includes a flash memory module and a flash memory controller, and the flash memory controller is used to access the flash memory module. In this embodiment, the flash memory controller may include a microprocessor and a read-only memory (ROM). The ROM can be used to store a computer program, and the microprocessor can be used to execute the computer program to control access to the flash memory module. Generally, a flash memory module includes multiple flash memory chips, and each flash memory chip includes multiple blocks, and a block can record a specific number of data pages. In this embodiment, a data page is exemplified by including 16 decoding units, and each decoding unit can perform decoding operations on a chunk. The aforementioned segments, data pages, or chunks can all be referred to as data segments.
[0022] Referring to Figure 1, the dynamic adjustment reread process includes steps S1 to S7, which involve decoding the data segments of the memory. This embodiment uses blocks as the data segment, and the decoding operation includes three steps: rereading with a voltage meter combined with hardware decoding, using an optimal threshold voltage combined with software decoding, and repairing using an independent disk redundancy array. The rereading with a voltage meter combined with hardware decoding is denoted as "Sequence Number 1," the optimal threshold voltage combined with software decoding is denoted as "Sequence Number 2," and the repair using an independent disk redundancy array is denoted as "Sequence Number 3."
[0023] Step S1 involves accessing the rereading order lookup table. The rereading order lookup table records the order of the decoding operations for each data segment, and the corresponding numerical value obtained based on that order. In this embodiment, the numerical value is an integer, related to the order of the sequence numbers and the factorial relationship. Further, this embodiment uses Cantor expansion to convert the permutation into numerical values. For the element at the i-th position, the number of elements in undetermined positions that follow it and are smaller than it is counted, denoted as . The sequence numbering of a certain data segment is [ , , …, It can be converted into a numerical value through the following equation:
[0024] Figure 2 is a schematic diagram of the rereading order reference table T1, where the data segments include 1, 2, 3 to Q. Taking data segment 1 as an example, its corresponding order is [3, 1, 2], that is, n is 3. Substituting 2, 0, and 0 into the above equation, we get 2. In this way, when accessing the rereading order lookup table T1, the execution order of the process corresponding to data segment 1 can be determined by reading a single value.
[0025] Step S2 involves monitoring multiple stages of the decoding operation in the rereading process and recording the number of successes and failures for each stage. In this embodiment, the number of successes and failures is recorded when performing the above three stages (i.e., rereading the voltmeter with hardware decoding (stage one), the optimal threshold voltage with software decoding (stage two), and repairing using an independent disk redundancy array (stage three)). The number of successes is recorded as follows: The number of failures is recorded as .
[0026] Step S3 is to obtain the success rate of each step. The success rate is denoted as... It is the ratio of the number of successes to the number of failures, that is, By analyzing the success rate, the system can assess the effectiveness of each step and decide whether to adjust the process sequence based on this data.
[0027] Step S4 determines whether the success rate is less than the reordering threshold. If the success rate is greater than the reordering threshold, it indicates that the decoding success rate of the current arrangement is within an acceptable range, and therefore step S2 can be re-executed, i.e., another reread. However, if the success rate is less than the reordering threshold, it indicates that the decoding success rate of the current arrangement is too low and should be adjusted, and therefore step S5 is executed. In this embodiment, the reordering threshold is set to 1, meaning that reordering will be triggered when the number of successful attempts is less than the number of failed attempts. However, this value can be changed according to needs and is not a limiting value.
[0028] Step S5 involves reordering the sequence of each step. In this embodiment, the sequence of each step is based on its success rate. For example, assuming the success rate of the optimal threshold voltage combined with software decoding is higher than that of the reread voltage meter combined with hardware decoding, and the success rate of the reread voltage meter combined with hardware decoding is higher than that of independent disk redundancy array repair, then the order of the data segment will be rearranged to [2, 1, 3]. In short, the system reorders all rereading steps, prioritizing steps with higher success rates to improve rereading efficiency. Accordingly, in the next rereading process, the system will execute according to the updated order.
[0029] Step S6 converts each step into a corresponding value based on its order. To further explain, the order of the reordered steps will be converted into a value based on their sequence number. For example, the step sequence [2, 1, 3] will be converted to the value 6, using the same conversion method as explained above, and will not be repeated here.
[0030] Step S7 is to update the rereading order lookup table. In this embodiment, the rereading order lookup table is updated based on the order of the reordered segments corresponding to the data segment and their corresponding values. In short, the order and value corresponding to data segment 1 in the above-mentioned rereading order lookup table T1 are updated to [2, 1, 3] and its corresponding value 6, thus updating the rereading order lookup table T1A as shown in Figure 3.
[0031] It's worth noting that when the order needs to be redefined, the system can convert the integer value back to the corresponding permutation. The specific process involves repeatedly dividing by the corresponding factorial and taking the remainder to determine the element at each position. For example, the first element of the permutation can be determined by dividing the integer by (n-1)! and taking the remainder, and then the elements at subsequent positions are determined sequentially.
[0032] For example, let's calculate the arrangement of the number 12. The calculation process is as follows: First, divide 12 by 3 factorial (3!), resulting in a quotient of 2 and a remainder of 0. Based on this result, the number in the third position is 3, because there are two numbers smaller than 3 to its right. Next, take the remainder 0 and divide it by 2 factorial (2!), resulting in a quotient of 0 and a remainder of 0. This indicates that the number in the second position is 1, because there are no numbers smaller than 1 to its right. Finally, continue using the remainder 0 and divide it by 1 factorial (1!), resulting in a quotient and remainder of 0. Therefore, the number in the first position is 2. Based on the above results, the arrangement order is [3, 1, 2].
[0033] As mentioned above, during the reread process, the system will refer to the adjusted order of execution, thereby improving the success rate of rereads, reducing power consumption, and shortening response time. As the number of rereads increases, the system will continuously optimize the order of execution to achieve optimal overall performance.
[0034] It is worth mentioning that the "stage" mentioned in the above embodiments can also be a combination of voltage groups in the rereading voltmeter. For example, a data segment may be a chunk, which can be decoded by the decoding unit according to voltage groups, such as [4V, 8V] (stage one), [3V, 5V] (stage two), and [-3V, -5V] (stage three). The order of the voltage groups used to perform the decoding operation on a chunk can also be adjusted according to the rereading operation processing of the dynamic adjustment rereading process of this invention to optimize system performance.
[0035] The following describes a reread operation processing device for dynamically adjusting the reread process according to an embodiment of this application. The reread operation processing device described below can be referred to in conjunction with the reread operation processing method described above. As shown in FIG4, the reread operation processing device 10 of this embodiment includes a memory 11 and a processor 12 interconnected. The memory 11 is used to store a computer program. The processor 12 is used to execute the computer program to implement the memory reread operation processing method described above.
[0036] The following describes a computer-readable storage medium that dynamically adjusts the rereading process according to an embodiment of this application. The computer-readable storage medium described below can be referred to in conjunction with the rereading operation processing method and rereading operation processing apparatus described above. The computer-readable storage medium of this embodiment is used to store a computer program, wherein the computer program, when executed by a processor, implements the rereading operation processing method of the aforementioned embodiment. The specific steps of this method can be referred to the corresponding content in the foregoing embodiments, and will not be repeated here.
[0037] In summary, the dynamic adjustment rereading process processing method, device, and computer-readable storage medium disclosed in this invention can record the success rate of each rereading step according to the actual situation of each data segment, and when preset conditions are met, reorder the rereading steps with high success rates to execute in advance, thereby dynamically adjusting the order of the rereading steps, effectively improving data rereading efficiency, reducing unnecessary energy consumption, and thus achieving more accurate rereading.
[0038] The above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention in any way. Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make some modifications or alterations to the methods and techniques disclosed above without departing from the scope of the present invention to create equivalent embodiments. Any simple modifications, equivalent changes and alterations made to the above embodiments based on the technical essence of the present invention without departing from the scope of the present invention shall still fall within the scope of the present invention.
[0039] S1~S7: Steps T1, T1A: Repetition Order Reference Table 10: Reread operation processing device 11: Memory 12: Processor
Claims
1. A dynamic adjustment method for rereading operations, which decodes a data segment in memory, comprising: monitoring multiple stages of the decoding operation in the rereading process and recording the number of successes and failures of each stage, wherein each stage corresponds to a sequence number; obtaining a success rate for each stage, wherein the success rate is the ratio of the number of successes to the number of failures; when the success rate is less than a reordering threshold, reordering the corresponding stages according to the success rate; and updating the content of a rereading order lookup table according to the reordered stage order corresponding to the content of the data segment.
2. The reread operation processing method as described in Request 1, after reordering the order of the corresponding steps, further includes converting the reordered order of the steps into a numerical value based on its corresponding sequence number, and updating the contents of the reread order lookup table accordingly.
3. The reread operation processing method as described in Request 1, wherein the decoding operation includes hardware decoding, software decoding, or repair using a redundant array of independent disks.
4. The reread operation processing method as described in request item 2, wherein the value is related to the order of the sequence number and the factorial.
5. The reread operation processing method as described in request item 4, wherein the value is an integer.
6. The reread operation processing method as described in claim 5 further includes: accessing the reread order lookup table, reading the integer corresponding to the data segment, and thereby obtaining the order of the steps in the decoding operation for the data segment.
7. A reread operation processing apparatus, comprising: a memory for storing a computer program; and a processor connected to the memory for executing the computer program to implement a reread operation processing method for dynamically adjusting the reread process as described in any one of claims 1 to 6.
8. A computer-readable storage medium for storing a computer program, wherein, When executed by a processor, the computer program implements a reread operation processing method that dynamically adjusts the reread process as described in any one of requests 1 to 6.