A flash read retry method and apparatus

By acquiring flash memory data characteristic information and using fuzzy control algorithms to calculate new read voltage offset direction and step size, the problem of flash memory data read errors is solved, enabling rapid rereading by finding the appropriate read voltage and reducing system latency.

CN114333951BActive Publication Date: 2026-02-24HEFEI DATANG STORAGE TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202111651211.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-30
Publication Date
2026-02-24
Estimated Expiration
2041-12-30

AI Technical Summary

Technical Problem

Existing technologies may cause data reading errors due to misjudgments caused by voltage threshold changes when reading flash memory data, and continuous attempts at different read voltage reread strategies will prolong the system read command response time.

Method used

By acquiring the characteristic information of flash memory data, a fuzzy control algorithm is used to calculate the new read voltage offset direction and step size, thereby quickly finding a suitable read voltage in the retry table for rereading and reducing the number of rereads.

Benefits of technology

It effectively reduces the number of flash memory rereads, lowers the latency of system read commands, and improves the response time of read commands.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114333951B_ABST
    Figure CN114333951B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a flash memory re-reading method and device, the method comprising: cyclically performing the following steps until the flash memory data or the current reading voltage meets a preset condition: obtaining feature information of the flash memory data read when the flash memory is read at the current reading voltage; wherein the initial obtained current reading voltage is an arbitrary reading voltage obtained from a preset retry table; calculating the offset direction and offset step of the next obtainable new reading voltage compared with the current reading voltage by using a preset fuzzy control algorithm according to the feature information; obtaining the serial number of the new reading voltage in the retry table according to the offset direction and offset step; obtaining the new reading voltage in the retry table by taking the serial number as an index; and reading the data on the flash memory by taking the new reading voltage as the current reading voltage. Through the embodiment scheme, the number of flash memory re-reading is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to flash memory reading technology, and more particularly to a flash memory rereading method and apparatus. Background Technology

[0002] Flash memory (NAND flash) is a new type of storage medium with advantages such as large storage capacity, fast read and write speeds, long lifespan, and low cost. Solid-state drives (SSDs), which use flash memory as their storage medium, are being widely used in consumer-grade applications such as PCs (personal computers) and enterprise-grade applications such as data centers. However, due to the storage characteristics and manufacturing processes of flash memory, data stored in flash memory is often affected by factors such as P / E (Program / Erase), retention, and disturbance, which can cause bit flips and lead to uncorrectable errors when the system reads data from flash memory.

[0003] Flash memory relies on cells (storage units) to store basic information. It determines whether the current cell stores bit 0 or bit 1 by checking the voltage threshold and read level of the cell being read. Different cells in a flash memory may have different voltage thresholds. Figure 1 This is a statistical chart of voltage thresholds for different cells. The horizontal axis represents the voltage threshold, and the vertical axis represents the number of cells. The vertical line in the middle represents the read level; when the threshold voltage of a cell is less than the read level, the stored information of the current cell represents logic "1", and when the threshold voltage of a cell is greater than the read level, the stored information of the current cell represents logic "0".

[0004] However, due to factors such as P / E (Program / Erase), retention, and disturbance, the cell's voltage threshold can change. Figure 2 As shown. If the previous read level is used to determine whether the current cell stores "1" or "0", some cells that originally represented logical "0" will be misinterpreted as logical "1". This will cause errors in some data read from the flash memory, such as... Figure 2 As shown.

[0005] To address the issue of misjudging the state of some cells, the system needs to set a new, appropriate read level to reread the data from the flash memory. For example... Figure 3As shown, the new read level is shifted to the left compared to the old read level. Once the system finds a new, suitable read level, the misjudged cells will be read correctly again, effectively reducing the number of errors during data reading.

[0006] Current technical methods involve the system selecting a first read level from the Retry Table when encountering numerous errors during data reading from flash memory. If the system sets the read level and rereads the data, it selects a second read level, and so on, until the errors are corrected or all read levels have been tried without success. Since each data read from flash memory typically takes about 100µs, this strategy of continuously trying different read levels results in significant delays in read commands, prolonging the system's read command response time. Summary of the Invention

[0007] This application provides a flash memory rereading method and apparatus that can reduce the number of flash memory rereads.

[0008] This application provides a flash memory rereading method, which may include: repeatedly executing the following steps until the flash memory data or the current read voltage meets a preset condition:

[0009] Obtain the characteristic information of the flash memory data read when rereading the flash memory with the current read voltage; wherein, the initially obtained current read voltage is any read voltage obtained from a preset retry table;

[0010] Based on the feature information, a preset fuzzy control algorithm is used to calculate the offset direction and offset step size of the next new obtainable reading voltage compared to the current reading voltage;

[0011] The new reading voltage is obtained from the offset direction and offset step size in the retry table.

[0012] The new reading voltage is obtained from the retry table using the serial number as an index;

[0013] The new read voltage is used as the current read voltage to read data from the flash memory.

[0014] In an exemplary embodiment of this application, obtaining the feature information of the flash memory data read when rereading the flash memory with the current read voltage may include:

[0015] The number of 0s in the read flash memory data is counted as C0, and recorded as the first number; the number of 1s in the read flash memory data is counted as C1, and recorded as the second number;

[0016] The first number and the second number are used as the feature information.

[0017] In an exemplary embodiment of this application, the preset condition may include: error elimination of the flash memory data or the first number being equal to the second number.

[0018] In an exemplary embodiment of this application, the step of calculating the offset direction and offset step size of the next obtainable new read voltage compared to the current read voltage using a preset fuzzy control algorithm based on the feature information may include:

[0019] Compare the magnitudes of the first number and the second number, and determine the offset direction of the new reading voltage relative to the current reading voltage based on the comparison result;

[0020] Calculate the difference between the first number and the second number, as well as the rate of change of the difference. Based on the difference, the rate of change of the difference, and the fuzzy control algorithm, calculate the offset step size of the new reading voltage compared to the current reading voltage.

[0021] In an exemplary embodiment of this application, comparing the magnitudes of the first number and the second number, and determining the offset direction of the new read voltage relative to the current read voltage based on the comparison result, may include:

[0022] When the second number is greater than the first number, the new reading voltage shifts in the direction of decreasing voltage value compared to the current reading voltage;

[0023] When the second number is less than the first number, the new reading voltage shifts in the direction of increasing voltage value compared to the current reading voltage.

[0024] In an exemplary embodiment of this application, calculating the offset step size of the new reading voltage compared to the current reading voltage based on the difference, the rate of change of the difference, and the fuzzy control algorithm may include:

[0025] The difference is fuzzified using a first fuzzy control table pre-established according to the fuzzy control algorithm to obtain the fuzzified difference, which is denoted as the fuzzy difference.

[0026] The difference change rate is fuzzified using a second fuzzy control table pre-established according to the fuzzy control algorithm to obtain the fuzzified difference change rate, which is denoted as the fuzzy difference change rate.

[0027] Based on the fuzzy difference and the rate of change of the fuzzy difference, the third fuzzy control table, which was pre-established according to the fuzzy control algorithm, is searched to obtain the fuzzy control value;

[0028] The fourth fuzzy control table, which was pre-established based on the fuzzy control algorithm, is used to defuzzify the fuzzy control value and obtain the control value.

[0029] The offset step size is determined based on the control value and the preset offset step size calculation formula.

[0030] In an exemplary embodiment of this application, determining the offset step size based on the control value and a preset offset step size calculation formula may include:

[0031] The offset step size is obtained by dividing the absolute value of the difference by the control value.

[0032] In an exemplary embodiment of this application, obtaining the sequence number of the new reading voltage in the retry table based on the offset direction and offset step size may include:

[0033] According to the offset direction, obtain the serial number corresponding to multiple reading voltages that conform to the offset direction from the preset offset direction table Shift Table;

[0034] Search for multiple serial numbers obtained from the offset direction table Shift Table in the preset offset step table, and obtain the serial number corresponding to the offset step from the corresponding multiple serial numbers in the offset step table Step Table, and use it as the serial number of the new reading voltage in the retry table.

[0035] In an exemplary embodiment of this application, the method may further include:

[0036] The offset direction of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming the offset direction table Shift Table; the offset direction table Shift Table is marked with the serial number of each reading voltage;

[0037] The offset step size of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming the offset step size table Step Table; the offset step size table Step Table is marked with the serial number of each reading voltage.

[0038] This application also provides a flash memory rereading device, which may include a processor and a computer-readable storage medium, wherein the computer-readable storage medium stores instructions that, when executed by the processor, implement the flash memory rereading method.

[0039] Compared with related technologies, the embodiments of this application may include: cyclically executing the following steps until the flash memory data or the current read voltage meets a preset condition: obtaining feature information of the flash memory data read when rereading the flash memory with the current read voltage; wherein, the initially obtained current read voltage is any read voltage obtained from a preset retry table; calculating the offset direction and offset step size of the next obtainable new read voltage compared to the current read voltage using a preset fuzzy control algorithm based on the feature information; obtaining the sequence number of the new read voltage in the retry table based on the offset direction and offset step size; obtaining the new read voltage in the retry table using the sequence number as an index; and reading the data on the flash memory using the new read voltage as the current read voltage. This embodiment reduces the number of flash memory rereads.

[0040] Other features and advantages of this application will be set forth in the following description, and will be apparent in part from the description, or may be learned by practicing the application. Other advantages of this application can be realized and obtained by means of the solutions described in the description and the accompanying drawings. Attached Figure Description

[0041] The accompanying drawings are used to provide an understanding of the technical solutions of this application and constitute a part of the specification. They are used together with the embodiments of this application to explain the technical solutions of this application and do not constitute a limitation on the technical solutions of this application.

[0042] Figure 1 A statistical chart of voltage thresholds for different cells in related technologies;

[0043] Figure 2 This is a statistical chart of cell voltage thresholds affected by external factors in related technologies.

[0044] Figure 3 This is a read level offset diagram in related technologies;

[0045] Figure 4 This is a flowchart of a flash memory rereading method according to an embodiment of this application;

[0046] Figure 5 This is a block diagram of the flash memory rereading device according to an embodiment of this application. Detailed Implementation

[0047] This application describes several embodiments, but these descriptions are exemplary and not restrictive, and it will be apparent to those skilled in the art that many more embodiments and implementations are possible within the scope of the embodiments described herein. Although many possible combinations of features are shown in the drawings and discussed in the detailed description, many other combinations of the disclosed features are also possible. Unless specifically limited, any feature or element of any embodiment may be used in combination with, or may replace, any feature or element of any other embodiment.

[0048] This application includes and contemplates combinations of features and elements known to those skilled in the art. The embodiments, features, and elements disclosed in this application may also be combined with any conventional features or elements to form a unique inventive scheme as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other inventive schemes to form another unique inventive scheme as defined by the claims. Therefore, it should be understood that any feature shown and / or discussed in this application may be implemented individually or in any suitable combination. Therefore, the embodiments are not limited except by the limitations imposed by the appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.

[0049] Furthermore, in describing representative embodiments, the specification may have presented methods and / or processes as a specific sequence of steps. However, the method or process should not be limited to the specific order of steps described herein, to the extent that it does not depend on such a specific order. As will be understood by those skilled in the art, other sequences of steps are also possible. Therefore, the specific order of steps set forth in the specification should not be construed as a limitation of the claims. Moreover, the claims concerning the method and / or process should not be limited to the steps performed in the written order, and those skilled in the art will readily understand that these orders can be varied and still remain within the spirit and scope of the embodiments of this application.

[0050] This application provides a flash memory rereading method, such as... Figure 4 As shown, the method may include: repeatedly executing the following steps S101-S105 until the flash memory data or the current read voltage meets a preset condition:

[0051] S101. Obtain the characteristic information of the flash memory data read when rereading the flash memory with the current read voltage; wherein, the initially obtained current read voltage is any read voltage obtained from the preset retry table;

[0052] S102. Based on the feature information, use a preset fuzzy control algorithm to calculate the offset direction and offset step size of the next new obtainable reading voltage compared to the current reading voltage;

[0053] S103. Obtain the serial number of the new reading voltage in the retest table according to the offset direction and offset step size;

[0054] S104. Obtain the new reading voltage from the retry table using the serial number as an index;

[0055] S105. Use the new read voltage as the current read voltage to read the data on the flash memory.

[0056] To reduce the number of errors when reading data from flash memory, the system often adjusts the read voltage before reading the data. The specific steps are: ① The system sends a "set feature" command to the flash memory, with the new read voltage serving as the data field for the "set feature" command; ② The system sends a "read data" command to the flash memory to read the user data. Changing the read voltage of the flash memory can effectively reduce the number of errors when reading data from it. However, since factors affecting the correctness of data in flash memory include P / E, retention, and disturbance, the appropriate read voltage varies depending on these factors. When an error occurs while reading data from flash memory, the system often tries setting different read levels and then rereading the data until the erroneous data is corrected, or all read levels have been tried but the erroneous data still cannot be corrected.

[0057] NAND flash manufacturers combine appropriate read levels for different scenarios into a retry table. A retry table often contains dozens or even hundreds of read levels. Existing technology involves selecting the first read level from the retry table when the system encounters a large number of errors while reading data from flash memory, setting the read level, and then rereading the data. If the number of errors in the reread data is still uncorrectable, the system selects the second read level. This process continues until the errors are corrected or all read levels have been tried without success. Because each read from flash memory typically takes time, this strategy of continuously trying different read levels leads to significant latency in read commands, increasing system read command response time. Therefore, quickly selecting an appropriate read level from the retry table for rereading, instead of starting with the first read level each time, is a key technology for reducing system read command latency and response time.

[0058] In an exemplary embodiment of this application, the method involves acquiring feature information of the flash memory data being reread, and using a fuzzy control algorithm (primarily referring to multiple pre-established fuzzy control tables) to calculate the offset direction and offset step size of the new read level (i.e., the read voltage that can be acquired for the next reread) compared to the current read level. The offset direction and offset step size are then used to obtain the sequence number of the new read level in the Retry Table. The new read level is then retrieved from the Retry Table based on the sequence number, and the data on the flash memory is read using the new read level. This embodiment of the application can quickly find a suitable read level from the Retry Table for rereading through a limited number of calculations, thereby reducing system read command latency and improving rereading efficiency.

[0059] In an exemplary embodiment of this application, obtaining the feature information of the flash memory data read when rereading the flash memory with the current read voltage may include:

[0060] The number of 0s in the read flash memory data is counted as C0, and recorded as the first number; the number of 1s in the read flash memory data is counted as C1, and recorded as the second number;

[0061] The first number and the second number are used as the feature information.

[0062] In an exemplary embodiment of this application, the system can set the read level xi using the set feature command, reread the data on the flash memory, and after reading the data, count the number of bits 0 (C0, the first number) and the number of bits 1 (C1, the second number) in the statistics. If an uncorrectable error occurs in the data on the flash memory after ECC (Error Checking and Correction) (making C0 and C1 unequal), it indicates that the system needs to select a new read level from the Retry Table and set it.

[0063] In an exemplary embodiment of this application, the preset condition may include any one of the following: the error of the flash memory data is eliminated or the first number is equal to the second number.

[0064] In an exemplary embodiment of this application, the step of calculating the offset direction and offset step size of the next obtainable new read voltage compared to the current read voltage using a preset fuzzy control algorithm based on the feature information may include:

[0065] Compare the magnitudes of the first number and the second number, and determine the offset direction of the new reading voltage relative to the current reading voltage based on the comparison result;

[0066] Calculate the difference between the first number and the second number, as well as the rate of change of the difference. Based on the difference, the rate of change of the difference, and the fuzzy control algorithm, calculate the offset step size of the new reading voltage compared to the current reading voltage.

[0067] In an exemplary embodiment of this application, before comparing the magnitudes of the first number and the second number and determining the offset direction of the new read voltage relative to the current read voltage based on the comparison result, the method may further include:

[0068] The offset direction of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming the offset direction table Shift Table; the offset direction table Shift Table is marked with the serial number of each reading voltage;

[0069] The offset step size of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming the offset step size table Step Table; the offset step size table Step Table is marked with the serial number of each reading voltage.

[0070] In an exemplary embodiment of this application, a RetryTable can be obtained from a Nand Flash manufacturer. The contents of the Retry Table are different read levels under various scenarios, which can be represented as {x1,x2,x3,..xi,xn}. The system can pre-calculate the offset direction Y of each read level in the Retry Table relative to the current read voltage read level xi.

[0071] In an exemplary embodiment of this application, when Y=0, it indicates that the read levels in the Retry Table, excluding read level xi, are shifted to the left relative to read level xi; when Y=1, it indicates that all read levels in the Retry Table, excluding read level xi, are shifted to the right relative to read level xi. In this way, a Shift Table (offset direction table) can be obtained, which can be represented as {Y1,Y2,Y3,..0.,Yn}. The contents of the Shift Table represent the offset direction of each read level relative to read level xi.

[0072] In an exemplary embodiment of this application, the system can also calculate the offset step size S of each read level (excluding read level xi) relative to read level xi in the Retry Table. This yields a Step Table (offset step size table), which can be represented as {S1, S2, S3, ..., Sn}. The contents of the Step Table represent the offset step size of each read level relative to read level xi.

[0073] In an exemplary embodiment of this application, the offset direction table Shift Table and the offset step table Step Table can be used separately or combined into one offset table. The offset table can uniformly record the offset direction of each read level relative to read level xi, and the offset step size of each read level relative to read level xi.

[0074] In an exemplary embodiment of this application, comparing the magnitudes of the first number and the second number, and determining the offset direction of the new read voltage relative to the current read voltage based on the comparison result, may include:

[0075] When the second number is greater than the first number, the new read voltage is offset in the direction of decreasing voltage value compared to the current read voltage;

[0076] When the second number is less than the first number, the new read voltage is offset in the direction of increasing voltage value compared to the current read voltage.

[0077] In an exemplary embodiment of the present application, the system can determine the offset direction of the new read level compared to the read level xi by comparing the magnitudes of C0 and C1: If C1 > C0, the new read level needs to be offset to the left (i.e., in the direction of decreasing voltage value) compared to the read level xi; if C1 < C0, the new read level needs to be offset to the right (i.e., in the direction of increasing voltage value) compared to the read level xi; according to the comparison result of C1 and C0, by querying the aforementioned Shift Table, the corresponding offset direction Y can be found, and the sequence number Mi of Y in the Shift Table is recorded, that is, the sequence number of the next available read level in the Shift Table. For each cycle of the embodiment solution of the present application, the sequence number of a read level in the Shift Table can be obtained respectively, and after recording them in sequence, a sequence number list can be obtained, which can be expressed as {M1, M2, M3... MZ}.

[0078] In an exemplary embodiment of the present application, calculating the offset step of the new read voltage compared to the current read voltage according to the difference value, the change rate of the difference value, and the fuzzy control algorithm may include:

[0079] Performing fuzzy processing on the difference value by using a first fuzzy control table established in advance according to the fuzzy control algorithm to obtain a fuzzified difference value, denoted as fuzzy difference value;

[0080] Performing fuzzy processing on the change rate of the difference value by using a second fuzzy control table established in advance according to the fuzzy control algorithm to obtain a fuzzified change rate of the difference value, denoted as fuzzy change rate of the difference value;

[0081] According to the fuzzy difference value and the fuzzy change rate of the difference value, querying a third fuzzy control table established in advance according to the fuzzy control algorithm to obtain a fuzzy control value;

[0082] Querying a fourth fuzzy control table established in advance according to the fuzzy control algorithm to perform defuzzification processing on the fuzzy control value to obtain a control value;

[0083] Determining the offset step according to the control value and a preset offset step calculation formula.

[0084] In an exemplary embodiment of this application, one or more fuzzy control tables can be obtained in advance for all read voltages in the reread table using a fuzzy control algorithm. For example, a first fuzzy control table regarding the correspondence between CP and CP_Fuzzy, a second fuzzy control table regarding the correspondence between ΔCP and ΔCP_Fuzzy, a third fuzzy control table regarding the correspondence between Qp_Fuzzy and ΔCP and ΔCP_Fuzzy, and a fourth fuzzy control table regarding the correspondence between Qp and Qp_Fuzzy.

[0085] In an exemplary embodiment of this application, the difference between C0 and C1, CP = C0 - C1, is calculated, and the rate of change of Cp, ΔCp = Cp - Cp-1, is calculated, where Cp-1 is the difference between C0 and C1 at the previous Read level. CP and ΔCp are then fuzzified: CP_Fuzzy (fuzzy difference) is obtained by looking up Table 1 (first fuzzy control table), and ΔCp_Fuzzy (fuzzy difference rate of change) is obtained by looking up Table 2 (second fuzzy control table). CP_Fuzzy and ΔCp_Fuzzy are then used to look up fuzzy control table 3 (third fuzzy control table) to obtain fuzzified Qp_Fuzzy (fuzzy control value). Qp_Fuzzy (fuzzy control value) is then defuzzified, and Qp (control value) is obtained by looking up Table 4 (fourth fuzzy control table).

[0086] CP [-499,-50] [-49,0] [0,49] [50,499] CP_Fuzzy Large burden Negative small Just small Zhengda

[0087] Table 1

[0088] ΔCp [-199,-20] [-19,0] [0,19] [20,199] ΔCp_Fuzzy Large burden Negative small Just small Zhengda

[0089] Table 2

[0090]

[0091] Table 3

[0092] <![CDATA[Q p _Fuzzy]]> Large burden Negative small Just small Zhengda <![CDATA[Q p ]]> 10 100 20 200

[0093] Table 4

[0094] In an exemplary embodiment of this application, determining the offset step size based on the control value and a preset offset step size calculation formula may include:

[0095] The offset step size is obtained by dividing the absolute value of the difference by the control value.

[0096] In an exemplary embodiment of this application, the offset step size step_c of the new read level relative to read level xi can be calculated according to the following formula: step_c = |C0-C1| / QP.

[0097] In an exemplary embodiment of this application, obtaining the sequence number of the new reading voltage in the retry table based on the offset direction and offset step size may include:

[0098] According to the offset direction, obtain the serial number corresponding to multiple reading voltages that conform to the offset direction from the preset offset direction table Shift Table;

[0099] Search for multiple serial numbers obtained from the offset direction table Shift Table in the preset offset step table, and obtain the serial number corresponding to the offset step from the corresponding multiple serial numbers in the offset step table Step Table, and use it as the serial number of the new reading voltage in the retry table.

[0100] In an exemplary embodiment of this application, the steps with indices {M1, M2, M3...MZ} in the Step Table are queried, the step closest to step_c is found, and the indices Mp of that step are recorded. Mp is an element in {M1, M2, M3...MZ}. The Retry Table is then queried using Mp as an index to obtain the new read level xp.

[0101] In an exemplary embodiment of this application, the system simultaneously calculates the offset direction Y of each read level relative to xp in the retry table. Y = 0 indicates that the read level in the retry table is offset to the left relative to xp; Y = 1 indicates that the read level in the retry table is offset to the right relative to xp. This results in an updated Shift Table, i.e., {Y1',Y2',Y3',..0.,Yn'}, where the contents of the Shift Table represent the offset direction of each read level relative to xp. The system also calculates the offset step size S of each read level relative to xp in the retry table. This results in an updated Step Table, i.e., {S1',S2',S3',..0.,Sn'}.

[0102] In an exemplary embodiment of this application, the system can set read level xp using the set feature command, then reread the data on the flash memory. After reading the data on the flash memory, the system counts the number of bit 0s (C0) and the number of bit 1s (C1) in the data, and repeats the above process until ΔCp equals 0 or the erroneous data can be corrected.

[0103] In an exemplary embodiment of this application, compared to the traditional strategy of continuously trying different read levels before rereading, the present embodiment obtains the feature information of the data being reread, calculates the offset direction and offset step size of the new read level relative to the current read level using a fuzzy control algorithm based on the feature information, obtains the index of the new read level in the Retry Table using the offset direction and step size, finds the new read level in the Retry Table based on the index, and then uses the new read level to read data from the flash memory. This embodiment fully utilizes the feature information of the reread data, and through a feedback mechanism, obtains the index of the new read level in the Retry Table after a limited number of calculations, effectively reducing the number of flash memory rereads, reducing read command latency, and optimizing system command response time.

[0104] This application embodiment also provides a flash memory rereading device 1, such as... Figure 5 As shown, it may include a processor 11 and a computer-readable storage medium 12, wherein the computer-readable storage medium 12 stores instructions that, when executed by the processor 11, implement the flash memory reread method.

[0105] In the exemplary embodiments of this application, any of the embodiments in the foregoing method embodiments are applicable to the device embodiments, and will not be described in detail here.

[0106] It will be understood by those skilled in the art that all or some of the steps, systems, or apparatuses disclosed above, and their functional modules / units, can be implemented as software, firmware, hardware, or suitable combinations thereof. In hardware implementations, the division between functional modules / units mentioned above does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed collaboratively by several physical components. Some or all components may be implemented as software executed by a processor, such as a digital signal processor or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit (ASIC). Such software may be distributed on a computer-readable medium, which may include computer storage media (or non-transitory media) and communication media (or transient media). As is known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.

Claims

1. A flash memory rereading method, characterized in that, The method includes: repeatedly executing the following steps until the flash memory data or the current read voltage meets a preset condition: Obtain the characteristic information of the flash memory data read when rereading the flash memory with the current read voltage; wherein, the initially obtained current read voltage is any read voltage obtained from a preset retry table; The offset direction of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming an offset direction table (Shift Table); the offset direction table (Shift Table) is marked with the serial number of each reading voltage; the offset step size of each reading voltage (excluding the current reading voltage) in the retry table relative to the current reading voltage is obtained in advance, forming an offset step size table (Step Table); the offset step size table (Step Table) is marked with the serial number of each reading voltage; Based on the feature information, a preset fuzzy control algorithm is used to calculate the offset direction and offset step size of the next new obtainable reading voltage compared to the current reading voltage. The preset fuzzy control algorithm refers to multiple fuzzy control tables that are established in advance. According to the offset direction, obtain the serial number corresponding to multiple reading voltages that conform to the offset direction from the preset offset direction table Shift Table; Search for multiple serial numbers obtained from the offset direction table Shift Table in the preset offset step table, and obtain the serial number corresponding to the offset step from the corresponding multiple serial numbers in the offset step table Step Table, and use it as the serial number of the new reading voltage in the retry table; The new reading voltage is obtained from the retry table using the serial number as an index; The new read voltage is used as the current read voltage to read data from the flash memory.

2. The flash memory rereading method according to claim 1, characterized in that, The acquisition of feature information of the flash memory data read when rereading the flash memory with the current read voltage includes: The number of 0s in the read flash memory data is counted as C0, and recorded as the first number; the number of 1s in the read flash memory data is counted as C1, and recorded as the second number; The first number and the second number are used as the feature information.

3. The flash memory rereading method according to claim 2, characterized in that, The preset conditions include: the error of the flash memory data is eliminated or the first number is equal to the second number.

4. The flash memory rereading method according to claim 2, characterized in that, The step of calculating the offset direction and offset step size of the next available new read voltage relative to the current read voltage using a preset fuzzy control algorithm based on the feature information includes: Compare the magnitudes of the first number and the second number, and determine the offset direction of the new reading voltage relative to the current reading voltage based on the comparison result; Calculate the difference between the first number and the second number, as well as the rate of change of the difference. Based on the difference, the rate of change of the difference, and the fuzzy control algorithm, calculate the offset step size of the new reading voltage compared to the current reading voltage.

5. The flash memory rereading method according to claim 4, characterized in that, The step of comparing the magnitudes of the first number and the second number, and determining the offset direction of the new reading voltage relative to the current reading voltage based on the comparison result, includes: When the second number is greater than the first number, the new reading voltage shifts in the direction of decreasing voltage value compared to the current reading voltage; When the second number is less than the first number, the new reading voltage shifts in the direction of increasing voltage value compared to the current reading voltage.

6. The flash memory rereading method according to claim 4, characterized in that, The step of calculating the offset step size of the new reading voltage compared to the current reading voltage based on the difference, the rate of change of the difference, and the fuzzy control algorithm includes: The difference is fuzzified using a first fuzzy control table pre-established according to the fuzzy control algorithm to obtain the fuzzified difference, which is denoted as the fuzzy difference. The difference change rate is fuzzified using a second fuzzy control table pre-established according to the fuzzy control algorithm to obtain the fuzzified difference change rate, which is denoted as the fuzzy difference change rate. Based on the fuzzy difference and the rate of change of the fuzzy difference, the third fuzzy control table, which was pre-established according to the fuzzy control algorithm, is searched to obtain the fuzzy control value; The fourth fuzzy control table, which was pre-established based on the fuzzy control algorithm, is used to defuzzify the fuzzy control value and obtain the control value. The offset step size is determined based on the control value and the preset offset step size calculation formula.

7. The flash memory rereading method according to claim 6, characterized in that, The step of determining the offset step size based on the control value and the preset offset step size calculation formula includes: The offset step size is obtained by dividing the absolute value of the difference by the control value.

8. A flash memory rereading device, characterized in that, The device includes a processor and a computer-readable storage medium, wherein the computer-readable storage medium stores instructions that, when executed by the processor, implement the flash memory reread method as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Memory system and operating method thereof

    CN106251903A

  • Data reading method and device, storage medium and equipment

    CN111145820A

  • Data rereading method and system of storage medium, terminal equipment and storage medium

    CN112634973A