A selection method for pre-filling data of a flash memory, a computer device and a storage medium

By acquiring the Gray code and pre-filled data of the NAND flash chip state, reliability verification was performed, and the optimal data mode was selected for filling. This solved the problem of the impact of reflow on the reliability of NAND flash and improved its stability and data retention capability under high temperature environments.

CN122489449APending Publication Date: 2026-07-31ARTMEM TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ARTMEM TECHNOLOGY CO LTD
Filing Date
2026-04-14
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

Existing technologies have a severe impact on the reliability of NAND Flash during the reflow process, especially at high temperatures. Existing solutions lack universality, and methods such as erasing states or pre-filling data with special instructions are not effective.

Method used

By acquiring Gray codes, pre-filled data, and the number of data blocks in different states of NAND flash chips, reliability verification is performed, and the optimal data mode is selected for filling, thereby reducing the impact of reflow on the reliability of NAND flash.

Benefits of technology

By evaluating the reliability impact of various data modes and selecting the optimal mode for filling, the impact of reflow on the reliability of NAND Flash was reduced, and its stability and data retention capability under high temperature environments were improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122489449A_ABST
    Figure CN122489449A_ABST
Patent Text Reader

Abstract

This application proposes a method, computer device, and storage medium for selecting flash memory prefill data, relating to the field of flash memory data technology. The method includes: firstly, acquiring the Gray code of different states of NAND flash memory, prefill data, and the number of data blocks; writing the prefill data evenly into the data blocks according to the number of data blocks; performing reliability verification on the prefill data to obtain a reliability verification result; and comparing the reliability verification result with a preset control group to obtain a selection result. This application evaluates the impact of various data patterns on the reliability of NAND flash memory after reflow, selects the optimal data pattern for prefilling, and reduces the impact on the reliability of NAND flash memory after reflow using this data prefill.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of flash memory data technology, and in particular to a method for selecting pre-filled data in flash memory, a computer device, and a storage medium. Background Technology

[0002] In related technologies, the number of stacked layers in 3D NAND Flash is increasing, and the cell size has shrunk to a level that is highly sensitive to high temperatures. Reflow is one of the SMT (Surface Mount Technology) steps, and the peak temperature during the process can reach over 200°C, posing a severe challenge to the reliability of NAND Flash at this temperature. Currently, the mainstream solutions include reflow in an erase state or using special instructions to implement a solid VT pattern and pre-fill data for reflow. Existing technologies typically use an erase state before reflow, and while some NAND Flash manufacturers provide special instructions to implement a solid VT pattern, this is not universally applicable. Summary of the Invention

[0003] This application aims to address at least one of the technical problems existing in the prior art. To this end, this application proposes a method for selecting pre-filled data in flash memory, a computer device, and a storage medium, aiming to effectively reduce the impact of reflow on the reliability of NAND Flash.

[0004] In a first aspect, embodiments of this application provide a method for selecting flash memory pre-filled data, the method comprising: Obtain the Gray code, pre-filled data, and number of data blocks for different states of the NAND flash memory. The pre-filled data is written evenly into the data blocks according to the number of data blocks; The pre-filled data is subjected to reliability verification to obtain the reliability verification results; The reliability verification results are compared with a preset control group to obtain the selection results.

[0005] According to some embodiments of this application, before writing the pre-filled data evenly into the data blocks according to the number of data blocks, the process includes: Data is written to the page type of the NAND chip according to the Gray code to obtain the write status; If the write status is verified to be correct, the pre-filled data is written evenly into the data blocks according to the number of data blocks.

[0006] According to some embodiments of this application, after writing the pre-filled data evenly into the data blocks according to the number of data blocks, the process includes: The sample of the pre-filled data is reflowed multiple times, and the data in the data block is erased.

[0007] According to some embodiments of this application, the step of performing reliability verification on the pre-filled data to obtain a reliability verification result includes: The pre-filled data is subjected to a cross-temperature test to obtain the cross-temperature test results; The pre-filled data is subjected to a data retention test to obtain the data retention test results.

[0008] According to some embodiments of this application, the step of performing a cross-temperature test on the pre-filled data to obtain the cross-temperature test result includes: The pre-filled data is subjected to a cross-temperature test to obtain the first number of flipped bits, the first read window length, and the first threshold voltage distribution.

[0009] According to some embodiments of this application, the step of performing a data retention test on the pre-filled data to obtain the data retention test result includes: The pre-filled data is subjected to a data retention test to obtain the second number of flipped bits, the second read window length, and the second threshold voltage distribution.

[0010] According to some embodiments of this application, comparing the reliability verification result with a preset control group to obtain a selection result includes: The first number of flipped bits, the first read window length, and the first threshold voltage distribution are compared with a preset control group to obtain a first comparison result, a second comparison result, and a third comparison result. When the first comparison result indicates that the number of the first flipped bits is less than or equal to the number in the preset control group, the first pre-filled data is determined; When the second comparison result indicates that the length of the first reading window is greater than or equal to the length in the preset control group, the second pre-filled data is determined; When the third comparison result indicates that the first threshold voltage distribution matches the voltage distribution in the preset control group, the third pre-filled data is determined. The selection result is obtained based on the first pre-filled data, the second pre-filled data, and the third pre-filled data.

[0011] According to some embodiments of this application, comparing the reliability verification result with a preset control group to obtain a selection result includes: The second number of flipped bits, the second read window length, and the second threshold voltage distribution are compared with the preset control group to obtain the fourth comparison result, the fifth comparison result, and the sixth comparison result. When the fourth comparison result indicates that the number of the second flipped bits is less than or equal to the number in the preset control group, the fourth pre-filled data is determined; When the fifth comparison result indicates that the length of the second reading window is greater than or equal to the length in the preset control group, the fifth pre-filled data is determined. When the sixth comparison result indicates that the second threshold voltage distribution matches the voltage distribution in the preset control group, the sixth pre-filled data is determined; The selection result is obtained based on the fourth, fifth, and sixth pre-filled data.

[0012] Secondly, embodiments of this application provide a computer device, including: At least one memory; At least one processor; At least one computer program; The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to implement the flash memory pre-filled data selection method described in the first aspect above.

[0013] Thirdly, embodiments of this application provide a computer-readable storage medium storing a computer program for causing a computer to execute the flash memory pre-filled data selection method described in the first aspect.

[0014] According to the technical solution of this application embodiment, at least the following beneficial effects are achieved: This application first obtains the Gray code, pre-filled data, and the number of data blocks for different states of the NAND flash memory; the pre-filled data is written evenly into the data blocks according to the number of data blocks; the reliability of the pre-filled data is verified to obtain a reliability verification result; the reliability verification result is compared with a preset control group to obtain a selection result. This application embodiment evaluates the impact of various data patterns on the reliability of NAND flash memory after reflow, selects the optimal data pattern for filling, and uses this data for pre-filling before reflow, which can reduce the impact on the reliability of NAND flash memory.

[0015] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description

[0016] The accompanying drawings are used to provide a further 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.

[0017] Figure 1 This is a flowchart illustrating a method for selecting flash memory prefilled data according to an embodiment of this application; Figure 2 This is a schematic diagram of the process preceding writing to a data block according to one embodiment of this application; Figure 3 This is a graph of the MLC VT distribution and Gray code provided in one embodiment of this application; Figure 4 This is a schematic diagram of the process after writing data into a data block according to one embodiment of this application; Figure 5 This is a schematic diagram of the process for obtaining reliability verification results provided in one embodiment of this application; Figure 6 This is a schematic diagram of the process for obtaining cross-temperature test results provided in one embodiment of this application; Figure 7 This is a schematic diagram of the process for obtaining and maintaining test results based on an embodiment of this application; Figure 8 This is a schematic diagram of the process for obtaining the selection result provided in one embodiment of this application; Figure 9 This is a schematic diagram of the process for obtaining the selection result provided in another embodiment of this application; Figure 10 This is an overall flowchart of a method for selecting flash memory pre-filled data according to an embodiment of this application; Figure 11 This is a schematic diagram of the hardware structure of a computer device provided in one embodiment of this application. Detailed Implementation

[0018] The embodiments of this application are described in detail below. Examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application.

[0019] In the description of this application, it should be understood that the orientation descriptions, such as up, down, front, back, left, right, etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this application and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this application.

[0020] In the description of this application, "several" means one or more, "more than" means two or more, "greater than," "less than," and "exceeding" are understood to exclude the stated number, while "above," "below," and "within" are understood to include the stated number. The use of "first" and "second" in the description is merely for distinguishing technical features and should not be construed as indicating or implying relative importance, or implicitly indicating the number of indicated technical features, or implicitly indicating the order of the indicated technical features.

[0021] In the description of this application, unless otherwise expressly defined, terms such as "setup," "installation," and "connection" should be interpreted broadly, and those skilled in the art can reasonably determine the specific meaning of the above terms in this application in conjunction with the specific content of the technical solution.

[0022] First, let's analyze some of the terms used in this application: Reflow soldering is a core process in surface mount technology (SMT). It refers to the soldering process that melts (reflows) the solder paste pre-coated on the PCB pads through a precisely controlled heating process, thereby achieving mechanical and electrical connections between surface mount devices such as 3D NAND Flash and the PCB.

[0023] Data Pattern: A set of binary data with a fixed pattern that is deliberately written into NAND Flash memory cells. It is a standardized data format used to stabilize the threshold voltage (Vt) distribution of memory cells and verify the reliability of devices.

[0024] The method for selecting flash memory pre-filled data provided in this application is specifically illustrated through the following embodiments.

[0025] The embodiments of this application can acquire and process relevant data based on artificial intelligence technology. Artificial intelligence (AI) is the theory, method, technology, and application system that uses digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, perceive the environment, acquire knowledge, and use that knowledge to obtain optimal results.

[0026] Foundational technologies for artificial intelligence generally include sensors, dedicated AI chips, cloud computing, distributed storage, big data processing, operating / interactive systems, and mechatronics. AI software technologies mainly encompass computer vision, robotics, biometrics, speech processing, natural language processing, and machine learning / deep learning.

[0027] The flash memory pre-filling data selection method provided in this application relates to the field of flash memory technology. This method can be applied to a terminal, a server, or software running on either the terminal or the server. In some embodiments, the terminal can be a smartphone, tablet, laptop, desktop computer, etc.; the server can be configured as an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms; the software can be an application implementing the flash memory pre-filling data selection method, but is not limited to the above forms.

[0028] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.

[0029] It should be noted that in all specific embodiments of this application, when processing data related to user identity or characteristics, such as user information, user behavior data, user historical data, and user location information, user permission or consent will be obtained first. Furthermore, the collection, use, and processing of this data will comply with relevant laws, regulations, and standards. In addition, when embodiments of this application require access to sensitive personal information of users, separate permission or consent from the user will be obtained through pop-ups or redirects to confirmation pages. Only after obtaining the user's separate permission or consent will the necessary user-related data for the normal operation of the embodiments of this application be obtained.

[0030] In related technologies, the number of stacked layers in 3D NAND Flash is increasing, and the cell size has shrunk to a level that is highly sensitive to high temperatures. Reflow is one of the SMT (Surface Mount Technology) steps, and the peak temperature during the process can reach over 200°C, posing a severe challenge to the reliability of NAND Flash at this temperature. Currently, the mainstream solutions include reflow in an erase state or using special instructions to implement a solid VT pattern and pre-fill data for reflow. Existing technologies typically use an erase state before reflow, and while some NAND Flash manufacturers provide special instructions to implement a solid VT pattern, this is not universally applicable.

[0031] Please see Figure 1 , Figure 1 This is a flowchart illustrating a method for selecting flash memory prefilled data according to an embodiment of this application. The method for selecting flash memory prefilled data according to an embodiment of this application includes, but is not limited to, steps S110 to S140, which will be described in turn below. Step S110: Obtain the Gray code, pre-filled data, and number of data blocks for different states of the NAND chip; Step S120: Write the pre-filled data evenly into the data blocks according to the number of data blocks; Step S130: Perform reliability verification on the pre-filled data to obtain the reliability verification results; Step S140: Compare the reliability verification results with the preset control group to obtain the selection results.

[0032] It should be noted that this application first obtains the Gray code, pre-filled data, and number of data blocks for different states of the NAND flash memory; then, the pre-filled data is written evenly into the data blocks according to the number of data blocks; the reliability of the pre-filled data is verified to obtain the reliability verification result; and the reliability verification result is compared with a preset control group to obtain the selection result. This application's embodiments evaluate the impact of various data patterns on the reliability of NAND flash memory after reflow, select the optimal data pattern for filling, and use this data for pre-filling before reflow to reduce the impact on the reliability of NAND flash memory.

[0033] In one embodiment, fill data is constructed, taking MLC particles as an example. Normal operation can yield the following four states: SLC erase status / SLC program status / MLC erase status / MLC program status.

[0034] Please see Figure 2 , Figure 2 This is a schematic diagram of the process before writing data into a data block according to an embodiment of this application; before step S120, which writes the pre-filled data into the data block evenly according to the number of data blocks, there are steps including but not limited to steps S210 to S220, which will be described in turn below.

[0035] Step S210: Write data to the page type of the NAND chip according to the Gray code to obtain the write status; Step S220: If the write status is verified to be correct, write the pre-filled data evenly into the data blocks according to the number of data blocks.

[0036] Please see Figure 3 , Figure 3 This is a graph of the MLC VT distribution and Gray code provided in one embodiment of this application.

[0037] It should be noted that data is written to the NAND flash memory according to the page type based on the Gray code to obtain the write status. The next operation is then performed based on the write status. If the write status is verified to be correct, pre-filled data is evenly written to the data blocks according to the number of data blocks. The scheme can be flexibly adjusted for different reflow curves, effectively reducing the impact of reflow on NAND flash reliability. The Gray codes for the four MLC states are known to be 11 / 10 / 00 / 01, with randomization disabled. Pages are written with either all 0s or all 1s to construct the corresponding four Gray code states. MLC level-1 is constructed with all 1s for low pages and all 0s for middle pages; MLC level-2 with all 0s for low pages and all 0s for middle pages; and MLC level-3 with all 0s for low pages and all 1s for middle pages. The correctness of the write status can be verified using VT (cell distribution under different voltages). In the sample chip, seven data patterns will be evenly distributed according to the number of blocks. For example, if the chip has 700 blocks, each data pattern will occupy 100 blocks.

[0038] Please see Figure 4 , Figure 4 This is a schematic diagram of the process after writing data into a data block according to an embodiment of this application; regarding the above step S120, after writing the pre-filled data into the data block evenly according to the number of data blocks, including but not limited to step S410, each step will be described in turn below.

[0039] Step S410: Perform multiple reflows on the sample with pre-filled data and erase the data in the data block.

[0040] It should be noted that the pre-filled data sample is repeatedly reflow soldered according to a preset temperature profile and holding time. This simulates the temperature cycling stress that the sample may experience during actual production, transportation, and use, verifying the sample's stability and data retention capability under extreme or repeated temperature environments. All pre-filled data in the data block is cleared, restoring the data block to its initial blank state or default initialization state, ensuring no data residue or leakage. This also provides a clean storage environment for subsequent secondary testing, reuse, or shipment of the sample. This embodiment simulates actual temperature cycles during use through multiple reflows, such as equipment start-up and shutdown, and changes in ambient temperature. It tests the stability of the storage unit during repeated high-temperature and low-temperature processes, determining whether data loss, corruption, or misreading due to temperature stress will occur. Multiple reflow soldering processes can expose welding defects between the sample and pads, packaging defects, and hidden faults in the storage unit, allowing for early screening of unqualified samples and reducing subsequent usage risks.

[0041] Please see Figure 5 , Figure 5 This is a schematic flowchart of obtaining reliability verification results provided in one embodiment of this application; regarding the above step S130 of performing reliability verification on the pre-filled data to obtain reliability verification results, including but not limited to steps S510 to S520, each step will be described in turn below.

[0042] Step S510: Perform a cross-temperature test on the pre-filled data to obtain the cross-temperature test results; Step S520: Perform a data retention test on the pre-filled data to obtain the data retention test results.

[0043] It should be noted that a Fresh Block that has not undergone Reflow stress was added as a control group. The MLCmode program was used uniformly. The reliability verification scenarios were cross-temperature testing and data retention testing. Test data were collected for FBC (flip bitcount), Read Window Length (card control standard is master hard decode), and VT (cell distribution under different voltages).

[0044] In one embodiment, the experimental group consisted of NAND blocks subjected to reflow thermal stress treatment, while the control group consisted of fresh blocks that had not undergone reflow stress treatment. All test samples from both the experimental and control groups were pre-filled using MLC modeprogram (Multi-Level Cell Programming Mode) to ensure that the programming method, programming voltage, programming timing, and other parameters were completely identical between the two groups. The pre-filled data used random data (e.g., random combinations of 0x00 to 0xFF), and the fill capacity was the full capacity of the NAND block (or a preset fixed capacity to ensure consistent fill ratios between the two groups). After programming, the blocks were allowed to stand for 30 minutes to allow the cell voltage to stabilize.

[0045] In one embodiment, pre-filled data undergoes a cross-temperature test to obtain the test results. This simulates the temperature fluctuations that NAND flash memory may face throughout its product lifecycle (such as high and low temperature storage in consumer electronics, outdoor temperature changes in industrial equipment, etc.). The test examines the stability of the pre-filled data and the changes in cell electrical characteristics under different temperature conditions, primarily verifying the impact of reflow thermal stress on the temperature adaptability of NAND flash memory. Data retention tests are then performed on the pre-filled data to obtain the results. Simulating application scenarios for long-term data storage in NAND flash memory (such as data centers, automotive storage, and other scenarios requiring long-term data preservation), the test examines the retention capability of the pre-filled data during long-term storage, primarily verifying the impact of reflow thermal stress on the long-term reliability of NAND flash memory data storage, thus preventing data flipping and loss due to long-term storage.

[0046] Please see Figure 6 , Figure 6 This is a schematic flowchart of obtaining cross-temperature test results provided in one embodiment of this application; regarding the above step S510 of performing cross-temperature test on the pre-filled data to obtain cross-temperature test results, it includes, but is not limited to, step S610, and each step will be described in turn below.

[0047] Step S610: Perform a cross-temperature test on the pre-filled data to obtain the first number of flipped bits, the first read window length, and the first threshold voltage distribution.

[0048] Please see Figure 7 , Figure 7 This is a schematic flowchart of obtaining data retention test results provided in one embodiment of this application; regarding the above step S520 of performing a data retention test on the pre-filled data to obtain the data retention test results, including but not limited to step S710, each step will be described in turn below.

[0049] Step S710: Perform a data retention test on the pre-filled data to obtain the second number of flipped bits, the second read window length, and the second threshold voltage distribution.

[0050] It should be noted that during the test, bit flips occurred in the pre-filled data (i.e., the number of bits that were inconsistent between the original data and the read data). A higher FBC value indicates worse data stability and lower reliability; a lower FBC value indicates better data stability and higher reliability. Data collection timing: After each temperature node of the cross-temperature test and after each time node of the data hold test, the pre-filled data was read, and the FBC value was counted, including the number of first flipped bits and the number of second flipped bits.

[0051] When reading data from NAND flash memory, the voltage window range within which the data can be correctly decoded is strictly defined in this embodiment according to the main controller's hard decode control standard. The Read Window Length must meet the minimum requirement of the main controller's hard decode (i.e., window length ≥ control threshold). If the window length is less than the control threshold, it means that the data cannot be correctly decoded by the main controller, and the reliability is deemed substandard. The larger the window length, the stronger the fault tolerance of data reading and the higher the reliability. Data acquisition timing: Data is acquired synchronously with FBC. After each test node, the read window length is detected and compared with the main controller's hard decode control standard, including the first read window length and the second read window length.

[0052] The distribution of NAND flash memory cells under different read voltages reflects the stability of the cell's electrical characteristics. In MLC mode, cells need to be stably distributed within a preset voltage range. The more concentrated the VT distribution, the more stable the cell's electrical characteristics, the better the programming consistency, and the higher the reliability. The more dispersed the VT distribution, the greater the fluctuation in the cell's electrical characteristics, the more prone to bit flips, and the lower the reliability. Data collection timing: Cell distribution data at different voltages (e.g., 0V to 5V, in 0.01V steps) are collected before the test begins (after pre-filling data) and after each test node ends to form the VT distribution curve, thereby obtaining the first threshold voltage distribution and the second threshold voltage distribution.

[0053] Please see Figure 8 , Figure 8 This is a schematic flowchart of obtaining the selection result provided in one embodiment of this application; regarding the above step S140, which compares the reliability verification result with the preset control group to obtain the selection result, including but not limited to steps S810 to S850, each step will be described in turn below.

[0054] Step S810: Compare the first number of flipped bits, the first reading window length, and the first threshold voltage distribution with the preset control group to obtain the first comparison result, the second comparison result, and the third comparison result; Step S820: When the first comparison result indicates that the number of first flipped bits is less than or equal to the number in the preset control group, the first pre-filled data is determined; Step S830: When the second comparison result indicates that the length of the first reading window is greater than or equal to the length in the preset control group, the second pre-filled data is determined; Step S840: When the third comparison result indicates that the voltage distribution of the first threshold voltage matches the voltage distribution in the preset control group, the third pre-filled data is determined; Step S850: Based on the first pre-filled data, the second pre-filled data, and the third pre-filled data, obtain the selection result.

[0055] Please see Figure 9 , Figure 9 This is a flowchart illustrating the process of obtaining the selection result provided in another embodiment of this application; regarding the above step S140, which compares the reliability verification result with the preset control group to obtain the selection result, including but not limited to steps S910 to S950, each step will be described in turn below.

[0056] Step S910: Compare the second number of flipped bits, the second reading window length, and the second threshold voltage distribution with the preset control group to obtain the fourth comparison result, the fifth comparison result, and the sixth comparison result; Step S920: When the fourth comparison result indicates that the number of second flipped bits is less than or equal to the number in the preset control group, the fourth pre-filled data is determined; Step S930: When the fifth comparison result indicates that the length of the second reading window is greater than or equal to the length in the preset control group, the fifth pre-filled data is determined; Step S940: When the sixth comparison result indicates that the second threshold voltage distribution matches the voltage distribution in the preset control group, the sixth pre-filled data is determined; Step S950: Based on the fourth pre-filled data, the fifth pre-filled data, and the sixth pre-filled data, obtain the selection result.

[0057] It should be noted that when comparing the Read Window Length data obtained under cross-temperature / data hold scenarios, a larger Read Window Length indicates a wider read window. Using the control group Block as a benchmark, a Read Window Length less than the control group Block indicates that reflowing this data pattern will reduce reliability; a Read Window Length greater than or equal to the control group Block indicates that reflowing this data pattern will have a smaller impact on reliability. Therefore, the data pattern with the larger Read Window Length after reliability testing is selected for reflow. Similarly, when comparing the FBC data obtained under cross-temperature / data hold scenarios, a smaller FBC indicates fewer toggles. Using the control group Block as a benchmark, a FBC greater than the control group Block indicates that reflowing this data pattern will reduce reliability; a FBC less than or equal to the control group Block indicates that reflowing this data pattern will have a smaller impact on reliability. Therefore, the data pattern with the smaller overall FBC is selected for reflow. The consistent characteristics of FBC, Read Window Length, and VT allow for the evaluation of the appropriate data pattern for this particle in reflow scenarios.

[0058] Please see Figure 10 , Figure 10 This is an overall flowchart of a method for selecting flash memory prefilled data according to an embodiment of this application.

[0059] Step 1010: Begin; Step 1020: Construct a data pattern and write it into the experimental group samples; Step 1030: Repeated Reflow of the experimental group samples; Step 1040: Re-encode the experimental and control group samples in MLC mode and perform a cross-temperature test, during which FBC / read window width / VT are collected; Step 1050: Re-encode / Program the MLC mode of the experimental and control group samples and perform data retention tests. During the test, FBC / read window width / VT are collected. Step 1060: Compare FBC / read window width / VT, select the data pattern with better performance, and take the intersection of the data patterns selected in each scenario; Step 1070, End.

[0060] This application also provides a computer device comprising: at least one memory, at least one processor, and at least one computer program. The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to implement any of the flash memory pre-filled data selection methods described in the above embodiments. This computer device can be any smart terminal, including tablet computers, in-vehicle computers, etc.

[0061] See Figure 11 , Figure 11 This is a schematic diagram of the hardware structure of a computer device provided in one embodiment of this application. The computer device includes: The processor 1110 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application. The memory 1120 can be implemented as a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 1120 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 1120, and the processor 1110 calls and executes the flash memory pre-filling data selection method of the embodiments of this application. The input / output interface 1130 is used to implement information input and output; The communication interface 1140 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.). Bus 1150 transmits information between various components of the device (e.g., processor 1110, memory 1120, input / output interface 1130, and communication interface 1140); The processor 1110, memory 1120, input / output interface 1130 and communication interface 1140 are connected to each other within the device via bus 1150.

[0062] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described method for selecting flash memory pre-filled data.

[0063] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0064] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0065] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.

[0066] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.

[0067] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.

[0068] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0069] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

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

[0071] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

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

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

[0074] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.

Claims

1. A method for selecting pre-filled data in flash memory, characterized in that, The method includes: Obtain the Gray code, pre-filled data, and number of data blocks for different states of the NAND flash memory. The pre-filled data is written evenly into the data blocks according to the number of data blocks; The pre-filled data is subjected to reliability verification to obtain the reliability verification results; The reliability verification results are compared with a preset control group to obtain the selection results.

2. The method according to claim 1, characterized in that, Before writing the pre-filled data evenly into the data blocks according to the number of data blocks, the process includes: Data is written to the page type of the NAND chip according to the Gray code to obtain the write status; If the write status is verified to be correct, the pre-filled data is written evenly into the data blocks according to the number of data blocks.

3. The method according to claim 1, characterized in that, After writing the pre-filled data evenly into the data blocks according to the number of data blocks, the process includes: The sample of the pre-filled data is reflowed multiple times, and the data in the data block is erased.

4. The method according to claim 1, characterized in that, The reliability verification of the pre-filled data, to obtain the reliability verification result, includes: The pre-filled data is subjected to a cross-temperature test to obtain the cross-temperature test results; The pre-filled data is subjected to a data retention test to obtain the data retention test results.

5. The method according to claim 4, characterized in that, The step of performing a cross-temperature test on the pre-filled data to obtain the cross-temperature test results includes: The pre-filled data is subjected to a cross-temperature test to obtain the first number of flipped bits, the first read window length, and the first threshold voltage distribution.

6. The method according to claim 4, characterized in that, The step of performing a data retention test on the pre-filled data to obtain the data retention test results includes: The pre-filled data is subjected to a data retention test to obtain the second number of flipped bits, the second read window length, and the second threshold voltage distribution.

7. The method according to claim 5, characterized in that, The step of comparing the reliability verification results with a preset control group to obtain the selection result includes: The first number of flipped bits, the first read window length, and the first threshold voltage distribution are compared with a preset control group to obtain a first comparison result, a second comparison result, and a third comparison result. When the first comparison result indicates that the number of the first flipped bits is less than or equal to the number in the preset control group, the first pre-filled data is determined; When the second comparison result indicates that the length of the first reading window is greater than or equal to the length in the preset control group, the second pre-filled data is determined; When the third comparison result indicates that the first threshold voltage distribution matches the voltage distribution in the preset control group, the third pre-filled data is determined. The selection result is obtained based on the first pre-filled data, the second pre-filled data, and the third pre-filled data.

8. The method according to claim 6, characterized in that, The step of comparing the reliability verification results with a preset control group to obtain the selection result includes: The second number of flipped bits, the second read window length, and the second threshold voltage distribution are compared with the preset control group to obtain the fourth comparison result, the fifth comparison result, and the sixth comparison result. When the fourth comparison result indicates that the number of the second flipped bits is less than or equal to the number in the preset control group, the fourth pre-filled data is determined; When the fifth comparison result indicates that the length of the second reading window is greater than or equal to the length in the preset control group, the fifth pre-filled data is determined. When the sixth comparison result indicates that the second threshold voltage distribution matches the voltage distribution in the preset control group, the sixth pre-filled data is determined; The selection result is obtained based on the fourth, fifth, and sixth pre-filled data.

9. A computer device, characterized in that, include: At least one memory; At least one processor; At least one computer program; The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to implement the method as described in any one of claims 1 to 8.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program for causing a computer to perform the method as described in any one of claims 1 to 8.