Data processing method and device

By using the data processing method in the NAND memory, the offset voltage table is used for re -examination, which solves the problem of threshold voltage offset caused by high temperature, improves the speed and reliability of data reading, and avoids problems such as blue screen crashes.

CN119356596AActive Publication Date: 2025-01-24LENOVO (BEIJING) LTD

Patent Information

Application Number
CN202411194785.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-28
Publication Date
2025-01-24
Estimated Expiration
2044-08-28

AI Technical Summary

Technical Problem

High temperatures cause threshold voltage offset in NAND memory, resulting in slow data reading speed, which may cause NVMe command timeout and blue screen of death, especially when users use the device for the first time.

Method used

Provide a data processing method, by obtaining the target instruction, reading the target data page according to the first threshold voltage, if the reading fails, obtaining the first offset voltage from the first data table, and based on the offset voltage and the threshold voltage Reread the data page.

Benefits of technology

Through the read retry mechanism, the accuracy and stability of data reading are improved, reading errors are reduced, the hit probability of successful reading is increased, reading time is reduced, and the performance and reliability of electronic equipment are optimized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119356596A_ABST
    Figure CN119356596A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device. The method comprises the steps of obtaining a target instruction; the target instruction is used for reading a target data page in a target flash memory; in response to the target instruction, reading the target data page according to a first threshold voltage; if the reading fails, obtaining a first offset voltage from the first data table; the first data table comprises a plurality of offset voltages with a variable traversal sequence, the first offset voltage is a first traversal voltage, and the traversal sequence is related to a target parameter of the electronic equipment; the target parameter represents a use environment, use duration and / or an operation mode of the electronic equipment; and re-reading the target data page based on the first offset voltage and the first threshold voltage.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of storage technology, and in particular to a data processing method and device. Background Art

[0002] Solid-state drive (SSD) NAND memory (a type of non-volatile memory) is used to store data.

[0003] After long-term high-temperature power-off storage, the electrons stored in the NAND will be lost, causing the threshold voltage (Vth) for reading data to shift too much and fail to read the data in time or the reading speed is too slow. When the machine is turned on, it may take a long time to start up, and the Windows system may experience a blue screen of death (BSoD) due to a non-volatile memory expression (NVMe) command timeout. This is especially obvious when the user uses the device for the first time (OOBE, Out-Of-Box Experience).

[0004] Specifically, high temperature may cause data retention problems in SSD data. There are a large number of read operations during the OOBE process, which may require multiple read retries due to threshold voltage (Vth) offset, resulting in slower data reading speed and NVMe command timeout, ultimately leading to a blue screen of death. Summary of the invention

[0005] The present disclosure provides a data processing method, device, electronic device and storage medium to at least solve the above technical problems existing in the prior art.

[0006] According to a first aspect of the present disclosure, there is provided a data processing method, comprising:

[0007] Obtaining a target instruction; the target instruction is used to read a target data page in a target flash memory;

[0008] In response to the target instruction, reading the target data page according to a first threshold voltage;

[0009] If the reading fails, obtaining a first offset voltage from a first data table; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is a first traversed voltage, and the traversal order is related to a target parameter of the electronic device; the target parameter represents a use environment, a use duration and / or an operation mode of the electronic device;

[0010] The target data page is re-read based on the first offset voltage and the first threshold voltage.

[0011] According to a second aspect of the present disclosure, a data processing device is provided, the device comprising:

[0012] An acquisition module, used for obtaining a target instruction; the target instruction is used for reading a target data page in a target flash memory;

[0013] A first reading module, configured to respond to the target instruction and read the target data page according to a first threshold voltage;

[0014] A second reading module is configured to obtain a first offset voltage from a first data table if the reading fails; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is a first traversed voltage, and the traversal order is related to a target parameter of the electronic device; the target parameter represents a use environment, a use duration and / or an operation mode of the electronic device;

[0015] The target data page is re-read based on the first offset voltage and the first threshold voltage.

[0016] According to a third aspect of the present disclosure, there is provided an electronic device, including:

[0017] at least one processor; and

[0018] a memory communicatively connected to the at least one processor; wherein,

[0019] The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method described in the present disclosure.

[0020] According to a fourth aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause the computer to execute the method described in the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The above and other objects, features and advantages of the exemplary embodiments of the present disclosure will become readily understood by reading the detailed description below with reference to the accompanying drawings. In the accompanying drawings, several embodiments of the present disclosure are shown in an exemplary and non-limiting manner, in which:

[0022] In the drawings, the same or corresponding reference numerals represent the same or corresponding parts.

[0023] Figure 1 A schematic diagram of a data processing method provided by an embodiment of the present disclosure is shown;

[0024] Figure 2 A flow chart of a data processing method provided by an application embodiment of the present disclosure is shown;

[0025] Figure 3 A schematic diagram of the structure of a data processing device provided by an embodiment of the present disclosure is shown;

[0026] Figure 4 A schematic structural diagram of an electronic device provided by an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0027] In order to make the purpose, features, and advantages of the present disclosure more obvious and easy to understand, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present disclosure.

[0028] Figure 1 A flow chart of a data processing method provided by an embodiment of the present disclosure is shown; Figure 1 As shown, the data processing method includes:

[0029] Step 101, obtaining a target instruction; the target instruction is used to read a target data page in a target flash memory;

[0030] Step 102, responding to the target instruction, reading the target data page according to a first threshold voltage;

[0031] Step 103: if the reading fails, obtain a first offset voltage from a first data table; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is the first traversed voltage, and the traversal order is related to a target parameter of the electronic device; the target parameter represents the use environment, use duration and / or operation mode of the electronic device;

[0032] Step 104: re-read the target data page based on the first offset voltage and the first threshold voltage.

[0033] In some embodiments, the method can be applied to any electronic device with a target flash memory, such as mobile phones, smart phones, laptops, computers, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (PADs), portable multimedia players (PMPs), wearable devices (such as smart bracelets, smart watches, etc.), navigation devices, etc.

[0034] The target flash memory can use data pages as the basic unit for writing and reading data, that is, when reading data, it is read in units of data pages. Multiple (such as hundreds to thousands) data pages form a data block. Multiple data blocks form a plane, and multiple planes form a chip. Multiple chips can be combined to form a flash memory, such as a solid-state drive (SSD) or a flash memory card.

[0035] One target command can be used to read multiple data, and each data to be read can be distributed in different data pages, different data blocks, different planes, or even different chips.

[0036] When a threshold voltage (Vth) shift occurs, re-reading (also called read retry) can be used to try to read data using different read voltages. Specifically, different read voltages can be obtained according to the offset voltages and threshold voltages in the first data table.

[0037] The first data table is used to provide various offset voltages. When performing a read retry, each offset voltage needs to be tried in sequence based on a traversal order. The traversal order is related to the target parameters of the electronic device, and the target parameters characterize the use environment, usage duration and / or operation mode of the electronic device. The value of each offset voltage can be any one from a few mV to a few hundred mV. There is no limitation on the value of the offset voltage and the number of offset voltages in the first data table.

[0038] The use environment refers to the physical environment conditions that the electronic device is in. For example, the electronic device is operated in a high or low temperature environment, or is used in a high humidity environment.

[0039] Usage duration refers to the cumulative working time of an electronic device. For example, an electronic device has been running for several months or years, which may affect the durability and data retention ability of flash memory.

[0040] Operation mode refers to the way an electronic device is used or how often it is operated. For example, frequent data reading and writing, high-load tasks, or continuous high-intensity operations may affect the performance of flash memory.

[0041] Different traversal orders can cover different application scenarios, for example, covering scenarios such as read disturbance, programming disturbance, high temperature data retention, and low temperature data retention.

[0042] There may be two results of re-reading the target data page based on the first offset voltage and the first threshold voltage. Re-reading the target data page based on the first offset voltage and the first threshold voltage is successful, or re-reading the target data page based on the first offset voltage and the first threshold voltage fails. If the re-reading fails, the next offset voltage can be determined based on the traversal order, and the target data page can be re-read based on the next offset voltage and the first threshold voltage, and so on, until the target data page is successfully re-read using a certain offset voltage and the first threshold voltage.

[0043] In this way, using the first data table for read retry can effectively improve the accuracy and stability of read data and reduce read errors; and, considering that the electrical characteristics of electronic devices may be different under different circumstances (such as different usage environments, different operating modes, and different usage durations), the offset voltage in the first data table is adjusted according to these factors. By retrying these offset voltages, it is possible to adapt to different usage environments, operating modes and / or usage durations, thereby increasing the probability of a successful read hit, reducing the read time, and optimizing the performance and reliability of the electronic device.

[0044] In some embodiments, if the reading fails, the method further comprises:

[0045] determining at least one first data page having the first threshold voltage in the target flash memory;

[0046] re-reading each of the at least one first data page based on the first threshold voltage and the offset voltage in the first data table, and determining a second offset voltage corresponding to each of the first data pages, wherein the second offset voltage is an offset voltage used when the first data page is successfully re-read;

[0047] The first data table is updated according to the second offset voltage corresponding to each of the first data pages.

[0048] Here, considering that data pages with the same threshold voltage may have the same characteristics and need to use the same offset voltage, it is proposed to count the threshold voltages of data pages that fail to read and perform read retries on data pages with the same threshold voltage so as to update the first data table according to the statistical results.

[0049] Specifically, the target data page is reread according to the first offset voltage and the first threshold voltage. If the rereading is successful, the first offset voltage is determined to be the offset voltage used when the target data page is reread successfully, that is, the second offset voltage. If the rereading fails, the next offset voltage and the first threshold voltage are used to reread the target data page based on the traversal order, and so on, until the rereading is successful, the offset voltage used for the successful rereading is determined as the second offset voltage.

[0050] Similar to the target data page re-reading process, for each first data page, re-read based on the first threshold voltage and each offset voltage in the first data table to determine the second offset voltage corresponding to each first data page. Thus, the first data table is updated according to the second offset voltage corresponding to each data page with the first threshold voltage in the target flash memory, so that the updated first data table can be used to read the data page with the first threshold voltage later, thereby improving the hit probability of successful reading, reducing the reading time, and reducing the risk of read disturb.

[0051] Here, in order to improve the efficiency of updating the first data table, only part of the first data page may be re-read, and the first data table may be updated according to the result of the re-reading. Based on this, in some embodiments, the method further includes:

[0052] selecting a first number of first data pages from the at least one first data page;

[0053] Accordingly, re-reading each of the at least one first data page based on the first threshold voltage and the offset voltage in the first data table includes:

[0054] Each of the first number of first data pages is re-read based on the first threshold voltage and an offset voltage in the first data table.

[0055] Here, the specific value of the first quantity can be set according to the design requirements of the electronic device, and there is no limitation on the value.

[0056] In some embodiments, updating the first data table according to the second offset voltage corresponding to each of the first data pages includes:

[0057] Determine a third offset voltage according to the second offset voltage corresponding to each of the first data pages, wherein the third offset voltage is the second offset voltage whose occurrence number satisfies the first condition;

[0058] Update the traversal order of the third offset voltage in the first data table to the first;

[0059] The method further comprises:

[0060] Other data pages corresponding to the first threshold voltage are read based on the first threshold voltage and the third offset voltage.

[0061] Here, the number of times satisfying the first condition may be that the number of times is greater than a certain number threshold, and the number threshold may be set based on actual needs, such as 10, 20, etc., and there is no limitation on the value.

[0062] Here, updating the first data table according to the second offset voltage corresponding to each of the first data pages may be to update the traversal order of the offset voltages.

[0063] For example, the first data table has offset voltage 1, offset voltage 2, offset voltage 3, and offset voltage 4, and the traversal order is from front to back. If it is determined that the number of successful re-reads of offset voltage 3 is the highest, the traversal order in the first data table can be updated to: offset voltage 3, offset voltage 1, offset voltage 2, offset voltage 4.

[0064] Of course, if the number of successful re-reads is from high to low, they are offset voltage 3, offset voltage 2, offset voltage 4, and offset voltage 1, the updating of the first data table can be to update the traversal order of the above four offset voltages: offset voltage 3, offset voltage 2, offset voltage 4, and offset voltage 1.

[0065] After updating the traversal order, when the data page with the first threshold voltage is subsequently re-read, it can be read according to the new traversal order, such as reading other data pages corresponding to the first threshold voltage based on the first threshold voltage and the third offset voltage (such as offset voltage 3).

[0066] In this way, in subsequent data reading, there is no need to perform multiple read retries, and the reading action can be completed once, which greatly reduces the number of read retries, saves reading time, and improves performance.

[0067] In some embodiments, the first data table includes: at least one offset voltage combination corresponding to a scenario, the scenario being related to a target parameter;

[0068] The method further comprises:

[0069] Determine an offset voltage combination corresponding to a target scenario according to a data page reread record; the data page reread record includes: an offset voltage used when a plurality of data pages are reread; the offset voltage combination corresponding to the target scenario includes: a second threshold voltage whose number of occurrences satisfies a second condition and an offset voltage corresponding to each second threshold voltage;

[0070] The first data table is updated according to the offset voltage combination corresponding to the target scenario.

[0071] Here, the number of times satisfying the second condition may be that the number of times is greater than a certain number threshold, and the number threshold may be set based on actual needs, such as 10, 20, etc., and there is no limitation on the value.

[0072] Here, the first data table includes multiple scenarios, each of which may correspond to different target parameters. Based on multiple reread records, the scenario combinations where data retention occurs most often can be determined, so that the offset voltages of these scenario combinations are traversed first during rereading. Data retention refers to the ability of a storage medium to retain data when there is no power supply or during long-term storage. If data retention is poor, the data may become unstable, resulting in more errors during reading, thereby requiring a read retry to recover the data.

[0073] Here, by determining the offset voltage combination with a high number of occurrences and updating it to the first data table, there is no need to perform multiple read retries for data pages with the same threshold voltage (such as the second threshold voltage) subsequently, and the reading action can be completed quickly, saving reading time and improving performance.

[0074] An example of a first data table is provided below.

[0075] Scenario 1 (High Temperature) Vth1 Offset voltage 1 Offset voltage 2 Vth2 Offset voltage 3 Offset voltage 4 Scenario 2 (1 year of use) Vth1 Offset voltage 5 Offset voltage 6 Vth2 Offset voltage 7 Offset voltage 8 Scenario 3 (2 years of use) Vth1 Offset voltage 9 Offset voltage 10 Vth2 Offset voltage 11

[0076] Table 1

[0077] In Table 1, Vth represents the threshold voltage, and each threshold voltage can correspond to multiple offset voltages. The table gives a variety of scenarios, such as high temperature scenario, long-term use (1 year use) scenario, and long-term use (2 years use) scenario. The offset voltage used for the same threshold voltage in different scenarios can be different.

[0078] In some embodiments, determining the offset voltage combination corresponding to the target scenario according to the data page reread record includes:

[0079] The target model is used to identify the data page reread record and determine the offset voltage combination corresponding to the target scenario.

[0080] Here, a preset target model may be used for learning to determine an offset voltage combination for a new scenario.

[0081] The data page reread record may include: a threshold voltage, a first offset voltage, a second offset voltage, etc. of at least one reread data page.

[0082] The target model is used to identify and classify the reread records of the data page to determine the offset voltage combinations in different scenarios. It can adopt any existing model or be pre-trained, and can achieve the above functions, and there is no limitation here. For example, a method for training a target model is provided, a large amount of reread record data is collected, including multiple threshold voltages and the offset voltages used therein, and a suitable machine learning algorithm (such as support vector machine, neural network, etc.) is selected for training, so that it can identify and predict the offset voltage combinations in different scenarios.

[0083] In some embodiments, the method further comprises:

[0084] Determine at least one risk data page according to the data page reread record; the second offset voltage of the risk data page exceeds a threshold;

[0085] performing data migration on the at least one risk data page within a target time period; and / or,

[0086] At least one first data block is determined based on the at least one risk data page, wherein the first data block includes risk data pages exceeding a second number; data migration is performed on each of the first data blocks within a target time period; the target time period is a device idle time period or a specified time period.

[0087] Here, considering that the update of the first data table may result in data pages with high risk of overwriting (Risk refers to the risk of errors occurring when writing or reading data pages), such as error bits (data bits or bits affected when an error occurs in memory or communication) or data pages with large threshold voltage offsets, these data pages can be read out quickly without read retries, but these data pages may actually be at risk. In order to avoid such risks, data migration can be performed on data pages whose second offset voltage exceeds the threshold.

[0088] In addition, for a data block, if it has a certain number of data pages with a high offset voltage, there may also be risks, so data migration can also be performed on these data blocks.

[0089] Here, the target time period is a device idle time period or a specified time period, and the specified time period can be specified by the user; in the target time period, the data is moved to a new data page or data block in the background garbage collection (BG GC).

[0090] In some embodiments, the method further comprises:

[0091] Determine at least one second data page according to the data page reread record; the second data page is a data page that fails to be reread and succeeds in soft decoding; or a data page that fails to be reread, fails in soft decoding and succeeds in data recovery;

[0092] performing data migration on the at least one second data page; and / or,

[0093] At least one second data block is determined according to the at least one second data page, where the second data block includes more than a third number of second data pages; and data migration is performed on each of the second data blocks.

[0094] Here, re-reading is read retrying, which means trying to read the data page again using the threshold voltage and the offset voltage after the first read fails. If the re-reading fails, soft decoding can be attempted.

[0095] Soft decoding refers to error correction decoding of the read data to restore the original data. If successful, the data can still be read. If failed, further attempts can be made to recover the data.

[0096] Data recovery can be done using RAID (Redundant Array of Independent Disks) technology. If the data recovery is successful, the data can also be read. The recovery mechanism in RAID technology can repair data loss or damage.

[0097] The above-mentioned re-reading, soft decoding, and data recovery have practically the same function, which is to improve the reliability and success rate of data reading.

[0098] Here, for data that can be successfully read only after soft decoding or data recovery, it is considered that there is a greater risk and the reading efficiency is low. In order to improve the subsequent reading efficiency of these data, these data can be migrated;

[0099] In addition, for a data block, if it has a certain number of second data pages, other data pages contained therein may also have problems. Therefore, data migration may also be performed on these data blocks.

[0100] If the data page fails to be re-read, the soft decoding fails, and the data recovery fails, it means that the data page is damaged, and a bad data page mark can be made for it. Based on this, in some embodiments, the method further includes:

[0101] Determine at least one third data page according to the data page reread record; the third data page is a data page that fails in rereading, soft decoding, and data recovery;

[0102] marking the at least one third data page as a bad data page; and / or,

[0103] At least one third data block is determined according to the at least one third data page, wherein the third data block includes third data pages exceeding a fourth number; and each of the third data blocks is marked as a bad data block.

[0104] It should be noted that the above-mentioned first quantity, second quantity, third quantity, and fourth quantity can be set based on the actual design and demand of the electronic product, and there is no limitation on the values.

[0105] For example, the first quantity may be: 10, 20, etc.;

[0106] The second number can be: 5, 10, etc.;

[0107] The third quantity can be: 5, 10, etc.;

[0108] The fourth number can be: 1, 2, etc.

[0109] Figure 2 A flow chart of a data processing method provided by an application embodiment of the present disclosure is shown; Figure 2 As shown, the data processing method includes:

[0110] Step 201, obtaining a read instruction, responding to the read instruction, and reading at least one data page according to a threshold voltage; here, the target instruction is used to read at least one data page in a target flash memory;

[0111] Step 202, determine whether the data page is read successfully, if failed, go to step 203, if successful, go to step 208;

[0112] Here, when reading data, the threshold voltage determines whether the data can be read. If the threshold voltage shifts, it may cause a read error. At this time, the data page can be hard-decoded. Among them, hard decoding is used to provide protection and correction when data errors caused by threshold voltage changes occur. If hard decoding fails, you can try to retry the read.

[0113] Here, each data page can be read in sequence, and the following steps are performed according to the specific situation.

[0114] Step 203: retry reading the data page and record the offset voltage used in the retry reading;

[0115] Here, a first data table is provided, which includes: a plurality of offset voltages with variable traversal order, where the traversal order is related to target parameters of the electronic device; the target parameters represent the use environment, use duration and / or operation mode of the electronic device.

[0116] Step 204, determine whether the read retry is successful, if it fails, go to step 205, if it succeeds, go to step 208;

[0117] Here, the read retry of the data page can select an offset voltage for read retry based on the traversal order in the first data table. If the first offset voltage fails, continue to select the next offset voltage for read retry until the offset voltage used for successful reading is determined, and enter step 208, or, if the read retry fails, enter step 205.

[0118] Step 205, determine whether the soft decoding is successful, if it fails, go to step 206, if it succeeds, go to step 207;

[0119] Step 206, determine whether the data recovery is successful, if it fails, mark the data page as a bad data page, if it succeeds, go to step 207; here, data recovery can use RAID technology;

[0120] Step 207: Migrate data to a new data page;

[0121] Step 208, counting the offset voltages successfully adopted in the read retry of each data page having the same threshold voltage;

[0122] Step 209: If it is determined that the number of successes of a certain offset voltage (assuming it is offset voltage A) exceeds a certain threshold, then proceed to step 210; otherwise, return to step 202 to continue reading the next data page;

[0123] Step 210: Update the first data table;

[0124] Here, the traversal order of the offset voltage A can be adjusted to the first one, so that the data page with the same threshold voltage can be directly read using the read voltage obtained by the offset voltage A and the threshold voltage, thereby improving the reading efficiency. If the number of successes of multiple offset voltages reaches a certain number of thresholds, the traversal order can be adjusted in descending order according to the number of successes.

[0125] After the first data table is updated, step 203 accordingly adopts the updated first data table.

[0126] Step 211, data is moved to a new data page;

[0127] Here, at least one risky data page can be determined based on the data page reread record, and the offset voltage used when the risky data page read retry succeeds exceeds a certain voltage threshold; for the risky data page, data migration can be performed in the BG GC within the target time period;

[0128] Of course, based on the at least one risk data page, at least one risk data block can also be determined, and the risk data block includes risk data pages exceeding the second number; for the risk data block, data migration can also be performed in BG GC within the target time period; wherein the target time period is the device idle time period or a specified time period.

[0129] The embodiment of the present disclosure also provides a verification method. After verification, it can be found that the method provided by the embodiment of the present disclosure can quickly find the correct read voltage, transfer the data in the Risk data page in time, and improve the performance and data security at the same time. The verification method may include: user out-of-box experience (OOBE), boot time and SSD full disk read time. In addition, the processing of the pre-installed operating system image (Preload OS image) and the hard copy image (Hardcopy image) can also be evaluated, and the read retry efficiency of different types of NAND flash memory (such as single-level cell (SLC, Single-Level Cell), two-level cell (DSLC, Dual-Level Cell), three-level cell (TLC, Triple-Level Cell), four-level cell (QLC, Quad-Level Cell)) is analyzed.

[0130] Figure 3 A schematic diagram of the structure of a data processing device provided by an embodiment of the present disclosure is shown; Figure 3 As shown, the data processing device includes:

[0131] An acquisition module, used for obtaining a target instruction; the target instruction is used for reading a target data page in a target flash memory;

[0132] A first reading module, configured to respond to the target instruction and read the target data page according to a first threshold voltage;

[0133] A second reading module is configured to obtain a first offset voltage from a first data table if the reading fails; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is a first traversed voltage, and the traversal order is related to a target parameter of the electronic device; the target parameter represents a use environment, a use duration and / or an operation mode of the electronic device;

[0134] The target data page is re-read based on the first offset voltage and the first threshold voltage.

[0135] In some embodiments, the apparatus further comprises: a first processing module; the first processing module is configured to determine at least one first data page having the first threshold voltage in the target flash memory if the read fails;

[0136] The second reading module is used to re-read each of the at least one first data page based on the first threshold voltage and the offset voltage in the first data table, and determine a second offset voltage corresponding to each of the first data pages, wherein the second offset voltage is an offset voltage used when the first data page is successfully re-read;

[0137] The first processing module is used to update the first data table according to the second offset voltage corresponding to each of the first data pages.

[0138] In some embodiments, the first processing module is used to select a first number of first data pages from the at least one first data page;

[0139] The second reading module is used to re-read each of the first data pages in the first number of first data pages based on the first threshold voltage and the offset voltage in the first data table.

[0140] In some embodiments, the first processing module is used to determine a third offset voltage according to the second offset voltage corresponding to each of the first data pages, wherein the third offset voltage is a second offset voltage whose occurrence times meet the first condition;

[0141] Update the traversal order of the third offset voltage in the first data table to the first;

[0142] The second reading module is further configured to read other data pages corresponding to the first threshold voltage based on the first threshold voltage and the third offset voltage.

[0143] In some embodiments, the first data table includes: at least one offset voltage combination corresponding to a scenario, the scenario being related to a target parameter;

[0144] The device further includes a second processing module, which is used to determine an offset voltage combination corresponding to a target scenario according to a data page reread record; the data page reread record includes: an offset voltage used when a plurality of data pages are reread; the offset voltage combination corresponding to the target scenario includes: a second threshold voltage whose number of occurrences satisfies a second condition and an offset voltage corresponding to each second threshold voltage;

[0145] The first data table is updated according to the offset voltage combination corresponding to the target scenario.

[0146] In some embodiments, the second processing module is used to identify the data page reread record using a target model to determine an offset voltage combination corresponding to a target scenario.

[0147] In some embodiments, the second processing module is used to determine at least one risk data page according to the data page reread record; the second offset voltage of the risk data page exceeds a threshold;

[0148] performing data migration on the at least one risk data page within a target time period; and / or,

[0149] At least one first data block is determined based on the at least one risk data page, wherein the first data block includes risk data pages exceeding a second number; data migration is performed on each of the first data blocks within a target time period; the target time period is a device idle time period or a specified time period.

[0150] In some embodiments, the second processing module is used to determine at least one second data page according to the data page rereading record; the second data page is a data page that fails to be reread and succeeds in soft decoding; or a data page that fails to be reread, fails in soft decoding and succeeds in data recovery;

[0151] performing data migration on the at least one second data page; and / or,

[0152] At least one second data block is determined according to the at least one second data page, where the second data block includes more than a third number of second data pages; and data migration is performed on each of the second data blocks.

[0153] In some embodiments, the second processing module is used to determine at least one third data page according to the data page rereading record; the third data page is a data page that fails to be reread, fails to be soft decoded, and fails to recover data;

[0154] marking the at least one third data page as a bad data page; and / or,

[0155] At least one third data block is determined according to the at least one third data page, wherein the third data block includes third data pages exceeding a fourth number; and each of the third data blocks is marked as a bad data block.

[0156] It is understandable that, when the data processing device provided in the above embodiment implements the corresponding data processing method, the above processing can be assigned to different program modules as needed to complete all or part of the above-described processing. In addition, the device provided in the above embodiment and the embodiment of the corresponding method belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0157] An embodiment of the present disclosure provides a computer-readable storage medium storing executable instructions, wherein the executable instructions are stored. When the executable instructions are executed by a processor, the processor will be triggered to execute the data processing method provided by the embodiment of the present disclosure.

[0158] In some embodiments, the computer-readable storage medium may be a ferroelectric random access memory (FRAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic surface memory, an optical disk, or a CD-ROM; it may also be various devices including one or any combination of the above memories.

[0159] In some embodiments, executable instructions may be in the form of a program, software, software module, script or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, model, subroutine or other unit suitable for use in a computing environment.

[0160] By way of example, executable instructions may be deployed to be executed on one computing device, or on multiple computing devices located at one site, or on multiple computing devices distributed across multiple sites and interconnected by a communication network.

[0161] An embodiment of the present disclosure provides a computer program product, which includes a computer program / instructions. When the computer program / instructions are executed by a processor, the data processing method described in the present disclosure is implemented.

[0162] Figure 4 The structure diagram of an electronic device provided by the embodiment of the present disclosure is shown in FIG. Figure 4 As shown, the electronic device 40 includes: a processor 401 and a memory 402 for storing a computer program that can be run on the processor; when the processor 401 is used to run the computer program, it executes the data processing method provided by the embodiment of the present disclosure.

[0163] In actual application, the electronic device 40 may further include: at least one network interface 403. The various components in the electronic device 40 are coupled together via a bus system 404. It is understood that the bus system 404 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 404 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Figure 4In the figure, various buses are labeled as bus system 404. There may be at least one processor 401. The network interface 403 is used for wired or wireless communication between the electronic device 40 and other devices.

[0164] The memory 402 in the embodiment of the present disclosure is used to store various types of data to support the operation of the electronic device 40 .

[0165] The method disclosed in the above embodiment of the present disclosure can be applied to the processor 401, or implemented by the processor 401. The processor 401 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 401 or the instruction in the form of software. The above processor 401 can be a general processor, a digital signal processor (DSP, DiGital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 401 can implement or execute the disclosed methods, steps and logic block diagrams in the embodiment of the present disclosure. The general processor can be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiment of the present disclosure can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be combined to execute. The software module can be located in a storage medium, which is located in the memory 402. The processor 401 reads the information in the memory 402 and completes the steps of the above method in combination with its hardware.

[0166] In some embodiments, the electronic device 40 can be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to execute the aforementioned method.

[0167] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.

[0168] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of the present disclosure, the meaning of "plurality" is two or more, unless otherwise clearly and specifically defined.

[0169] The above is only a specific embodiment of the present disclosure, but the protection scope of the present disclosure is not limited thereto. Any person skilled in the art who is familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present disclosure, which should be included in the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be based on the protection scope of the claims.

Claims

1. A data processing method, comprising: Get target instructions; The target instruction is used to read a target data page in a target flash memory; In response to the target instruction, reading the target data page according to a first threshold voltage; If the reading fails, obtaining a first offset voltage from a first data table; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is a first traversal voltage, and the traversal order is related to a target parameter of the electronic device; The target parameter represents the usage environment, usage duration and / or operation mode of the electronic device; The target data page is re-read based on the first offset voltage and the first threshold voltage.

2. The method according to claim 1, if the reading fails, the method further comprises: determining at least one first data page having the first threshold voltage in the target flash memory; re-reading each of the at least one first data page based on the first threshold voltage and the offset voltage in the first data table, and determining a second offset voltage corresponding to each of the first data pages, wherein the second offset voltage is an offset voltage used when the first data page is successfully re-read; The first data table is updated according to the second offset voltage corresponding to each of the first data pages.

3. The method according to claim 2, further comprising: selecting a first number of first data pages from the at least one first data page; Accordingly, re-reading each of the at least one first data page based on the first threshold voltage and the offset voltage in the first data table includes: Each of the first number of first data pages is re-read based on the first threshold voltage and an offset voltage in the first data table.

4. The method according to claim 2, wherein updating the first data table according to the second offset voltage corresponding to each of the first data pages comprises: Determine a third offset voltage according to the second offset voltage corresponding to each of the first data pages, wherein the third offset voltage is the second offset voltage whose occurrence number satisfies the first condition; Update the traversal order of the third offset voltage in the first data table to the first; The method further comprises: Other data pages corresponding to the first threshold voltage are read based on the first threshold voltage and the third offset voltage.

5. The method according to claim 1, wherein the first data table comprises: an offset voltage combination corresponding to at least one scenario, wherein the scenario is related to a target parameter; The method further comprises: Determine an offset voltage combination corresponding to a target scenario according to a data page reread record; the data page reread record includes: an offset voltage used when a plurality of data pages are reread; the offset voltage combination corresponding to the target scenario includes: a second threshold voltage whose number of occurrences satisfies a second condition and an offset voltage corresponding to each second threshold voltage; The first data table is updated according to the offset voltage combination corresponding to the target scenario.

6. The method according to claim 5, wherein determining the offset voltage combination corresponding to the target scenario according to the data page reread record comprises: The target model is used to identify the data page reread record and determine the offset voltage combination corresponding to the target scenario.

7. The method according to claim 1, further comprising: Rereading records based on the data pages, determining at least one risky data page; The second offset voltage of the risk data page exceeds a threshold; Performing data migration on the at least one risk data page within a target time period; and / or, determining at least one first data block based on the at least one risk data page, the first data block including more than a second number of risk data pages; Performing data migration on each of the first data blocks within a target time period; The target time period is a device idle time period or a specified time period.

8. The method according to claim 1, further comprising: Determining at least one second data page according to the data page reread record; The second data page is a data page that fails to be re-read and succeeds in soft decoding; Or, re-read the data page that failed, soft decoding failed, and data recovery was successful; Performing data migration on the at least one second data page; and / or, At least one second data block is determined according to the at least one second data page, where the second data block includes more than a third number of second data pages; and data migration is performed on each of the second data blocks.

9. The method according to claim 1, further comprising: determining at least one third data page according to the data page reread record; The third data page is a data page that fails in re-reading, soft decoding and data recovery; marking the at least one third data page as a bad data page; and / or, At least one third data block is determined according to the at least one third data page, wherein the third data block includes third data pages exceeding a fourth number; and each of the third data blocks is marked as a bad data block.

10. A data processing device, comprising: An acquisition module is used to obtain target instructions; The target instruction is used to read a target data page in a target flash memory; A first reading module, configured to respond to the target instruction and read the target data page according to a first threshold voltage; A second reading module is used to obtain a first offset voltage from a first data table if the reading fails; the first data table includes a plurality of offset voltages with a variable traversal order, the first offset voltage is a first traversed voltage, and the traversal order is related to a target parameter of the electronic device; The target parameter represents the usage environment, usage duration and / or operation mode of the electronic device; The target data page is re-read based on the first offset voltage and the first threshold voltage.

Citation Information

Patent Citations

  • Updating read voltages

    CN105074831A

  • Multi-scene flash memory data offset method and device, electronic equipment and medium

    CN115938442A

  • Voltage control method, voltage control device and electronic equipment

    CN115985368A

  • Computer readable storage medium, method and apparatus for reading data using optimized reading voltmeter

    CN116469439A

  • Method and device for determining optimal read voltage parameter of flash memory and flash memory equipment

    CN118314943A

Cited By

  • Voltage calibration method for reading data and electronic equipment

    CN120932691A

  • Voltage calibration method for reading data and electronic device

    CN120932691B