Method and device for adjusting reading voltage by recording programming position, computer equipment and storage medium

By building the recently programmed position table and pre-built conversion table, dynamically adjusting the read voltage, the problem of high bit error rate and waste of power consumption in traditional NAND Flash storage systems is solved, and lower bit error rate and power consumption are achieved.

CN120220770APending Publication Date: 2025-06-27成都芯忆联信息技术有限公司
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202510277240.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-10
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

In traditional NAND Flash storage systems, the problem of high bit error rate and waste of power consumption due to fixed voltage strategies is caused by unprogrammed blocks.

Method used

The most recent programming position table is constructed by recording the most recent programming page numbers of unprogrammed blocks, and the distance-state transition table and state-voltage conversion table are pre-built, and the read voltage is dynamically adjusted to adapt to the programming progress and floating gate charge distribution of different pages.

Benefits of technology

It significantly reduces the bit error rate of unprogrammed blocks and reduces read power consumption, solving the compatibility problem of traditional fixed voltage strategies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120220770A_ABST
    Figure CN120220770A_ABST
Patent Text Reader

Abstract

The invention provides a method and a device for adjusting read voltage by recording programming positions, computer equipment and a storage medium. The method comprises the following steps of: constructing a nearest programming position table according to a nearest programming page number of an unprogrammed block, and pre-constructing a distance-state conversion table and a state-voltage conversion table; receiving a host read command, and judging the position information of a target block in the nearest programming position table; calculating and converting the position information through the distance-state conversion table and the state-voltage conversion table to obtain a read voltage; and performing a read operation based on the read voltage. According to the invention, the problems of high bit error rate of unprogrammed blocks and waste of power consumption caused by a fixed voltage strategy in a traditional storage system are solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage technology, and more specifically, to a method, device, computer device and storage medium for adjusting a read voltage by recording a programming position. Background Art

[0002] In a NAND Flash storage system, a read operation relies on a specific voltage to determine the 0 / 1 state of a storage cell. Traditional solutions adopt a fixed voltage strategy for all blocks, resulting in additional power consumption in programmed blocks due to the forced use of high voltages, while in unprogrammed blocks (ProgrammingBlocks), due to inconsistent programming progress of each page, residual data or floating gate charges with partial programming are unstable, and the error rate is high. If the default voltage is used, pages that are not fully programmed may trigger a complex read recovery process, consuming system resources and reducing performance.

[0003] NAND Flash uses a block as the minimum unit for erasure and programming, and a page as the basic unit for reading and writing. During programming, data storage is achieved by changing the floating gate charge through a high voltage, and during reading, the data state is identified by adjusting the decision voltage. However, the inherent characteristics of the storage medium (such as the quantum tunneling effect, interference, and data retention problems) result in significant differences in the reliability of different pages under the same voltage. In unprogrammed blocks, due to uneven programming progress of local pages, the floating gate charge distribution is uneven, and the unified voltage strategy cannot adapt to its local noise characteristics, resulting in the failure of the error correction ability and further exacerbating the performance loss. Summary of the Invention

[0004] The purpose of the present invention is to overcome the defects of the prior art, and provide a method, device, computer device and storage medium for adjusting a read voltage by recording a programming position, aiming to solve the problems of high error rate and power consumption waste in unprogrammed blocks caused by the fixed voltage strategy in traditional storage systems.

[0005] To achieve the above purpose, the present invention adopts the following technical solutions:

[0006] A method for adjusting a read voltage by recording a programming position, comprising the following steps:

[0007] Construct a nearest programming position table according to the nearest programming page number of the unprogrammed block, and pre-construct a distance-state conversion table and a state-voltage conversion table;

[0008] Receive a host read command, and judge the position information of the target block in the nearest programming position table;

[0009] Calculate and convert the position information through the distance-state conversion table and the state-voltage conversion table to obtain a read voltage;

[0010] Execute a read operation based on the read voltage.

[0011] In one embodiment, the calculating and converting the position information through the distance-state conversion table and the state-voltage conversion table to obtain a read voltage includes:

[0012] Obtain the page number of the page to be read of the target block;

[0013] Obtain the page number of the most recently programmed page of the target block in the most recent programming position table;

[0014] Query the distance-state conversion table and the state-voltage conversion table according to the page number of the page to be read and the page number of the most recently programmed page, and convert them into a read voltage.

[0015] In one embodiment, the step of calculating and converting into a read voltage according to the page number of the page to be read and the page number of the most recently programmed page includes:

[0016] Calculate the difference between the page number of the page to be read and the page number of the most recently programmed page to obtain a physical distance;

[0017] Query the distance-state conversion table based on the physical distance to obtain the current state;

[0018] Query the state-voltage conversion table based on the current state to obtain a read voltage.

[0019] In one embodiment, the construction step of the distance-state conversion table includes:

[0020] Simulate the read operation of an unprogrammed block, and record the physical distance between the page to be read and the most recently programmed page of the unprogrammed block;

[0021] Define word line state categories according to the range of the physical distance;

[0022] Establish a mapping relationship between the value range of the physical distance and its corresponding word line state category to form a distance-state conversion table.

[0023] In one embodiment, the construction step of the state-voltage conversion table includes:

[0024] Test the bit error rate under different read voltages according to the word line state category, and record the corresponding relationship between the voltage range and the bit error rate;

[0025] According to the test results, select the best read voltage with the lowest bit error rate and meeting the reliability requirements for each word line state category;

[0026] Establish a mapping relationship between the word line state category and its corresponding best read voltage value to form a state-voltage conversion table.

[0027] In one embodiment, the step of the receiving host reading a command and determining the position information of the target block in the most recently programmed position table further includes:

[0028] When the target block does not exist in the most recently programmed position table, a default voltage is defined as the read voltage.

[0029] A device for adjusting a read voltage by recording a programmed position includes:

[0030] A data structure module for organizing and managing the position information of the programmed positions and defining distance-state and state-voltage mapping rules;

[0031] A programmed position table management module for maintaining the data structure module and supporting query and update operations;

[0032] A distance calculation and state conversion module for calculating and converting the data of the data structure module and mapping it to a voltage adjustment state;

[0033] A voltage policy execution module for dynamically adjusting the voltage according to the state and outputting it to a voltage regulation circuit.

[0034] In one embodiment, the data structure module includes:

[0035] A most recently programmed position table for recording the most recently programmed page numbers and position information of unprogrammed blocks;

[0036] A distance-state conversion table for defining the read states corresponding to different distance intervals;

[0037] A state-voltage conversion table for specifying the optimal read voltage corresponding to each read state.

[0038] A computer device includes a memory and a processor, and a computer program is stored on the memory. When the processor executes the computer program, the above method is implemented.

[0039] A computer-readable storage medium stores a computer program, and the computer program includes program instructions. When the program instructions are executed by a processor, the above method can be implemented.

[0040] The beneficial effects of the present invention compared with the prior art are:

[0041] (1) Calculate the distance between the current read page and the nearest programmed page based on the nearest programmed page information of each block, accurately determine the current state through a predefined distance-state mapping, and dynamically adjust the corresponding voltage value, thereby greatly reducing the error rate. (2) The dynamic voltage strategy reduces the average read power consumption. By adjusting the mapping rule in real time through a configuration file or register, it adapts to different NAND process parameters and solves the compatibility problem of the traditional fixed voltage strategy.

[0042] The above description is only an overview of the technical solution of the present invention. In order to understand the technical means of the present invention more clearly, it can be implemented according to the content of the specification. And in order to make the above and other purposes, features and advantages of the present invention more obvious and understandable, the following preferred embodiments are specifically described in detail as follows. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] Figure 1 It is a schematic flow chart of a method for adjusting the read voltage by recording the programming position provided by an embodiment of the present invention;

[0044] Figure 2 It is a schematic block diagram of a device for adjusting the read voltage by recording the programming position provided by an embodiment of the present invention;

[0045] Figure 3 It is a schematic block diagram of a data structure module of a device for adjusting the read voltage by recording the programming position provided by an embodiment of the present invention;

[0046] Figure 4 It is a schematic block diagram of a computer device provided by an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0047] In order to make the purpose, technical solution and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the drawings and specific embodiments.

[0048] The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0049] It should be understood that when used in this specification and the appended claims, the terms "comprises" and "comprising" indicate the presence of the described features, wholes, steps, operations, elements and / or components, but do not preclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or their combinations.

[0050] It should also be understood that the terms used in the specification of the present invention are merely for the purpose of describing specific embodiments and are not intended to limit the present invention. As used in the specification of the present invention and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an", and "the" are intended to include the plural forms.

[0051] It should be further understood that the term "and / or" used in the specification of the present invention and the appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0052] See Figure 1 , an embodiment of the present invention discloses a method for adjusting a read voltage by recording a programming position, including the following steps:

[0053] S100. Construct a nearest programming position table 511 according to the nearest programming page number of the unprogrammed block, and pre-construct a distance-state conversion table 512 and a state-voltage conversion table 513;

[0054] Specifically, the system needs to pre-establish three predefined tables: a nearest programming position table 511, a distance-state conversion table 512, and a state-voltage conversion table 513. The nearest programming position table 511 is used to record the nearest programming page number (last_page_N) of each unprogrammed block (die-plane-block) and is persistently stored through a non-volatile memory to ensure that the information is not lost after a power failure. The distance-state conversion table 512 defines the current state corresponding to different page distance intervals (such as |M - N|), while the state-voltage conversion table 513 maps the state to a specific read voltage value. These tables are pre-configured through an initialization phase and do not rely on real-time hardware detection or complex calculations.

[0055] S200. Receive a host read command and determine the position information of the target block in the nearest programming position table 511;

[0056] Specifically, when the host sends a read command containing the target block address, parse the command and query the nearest programming position table 511 to determine whether the target block is an unprogrammed block. If the valid_flag of the target block is valid_flag = 1, it indicates that the block is in an unprogrammed state, and its nearest programming page number N can be obtained from the nearest programming position table 511; if valid_flag = 0, it is determined to be a programmed block, and the subsequent dynamic adjustment process is directly skipped. It can be understood that valid_flag is a key field in the nearest programming position table 511 and is used to identify whether a die-plane-block is in an unprogrammed state (i.e., the programming operation has not been completed).

[0057] S300. Calculate and convert the position information through the distance - state conversion table 512 and the state - voltage conversion table 513 to obtain the read voltage;

[0058] Specifically, for an unprogrammed block, the system calculates and converts according to the mapping rules of the distance - state conversion table 512 and the state - voltage conversion table 513 to obtain the optimal read voltage value corresponding to the target block. This process is achieved through table look - up and mathematical operations, without the need for real - time hardware detection or complex calculations.

[0059] S400. Perform a read operation based on the read voltage.

[0060] Specifically, transfer the calculated voltage value to the NAND Flash controller, adjust the execution voltage of the read circuit to the read voltage, and then perform the read operation. If the bit error rate during the read process is lower than the preset threshold, directly return the data; if the bit error rate is too high (such as still triggering an error after dynamic adjustment), the voltage can be gradually increased through a fallback mechanism until successful reading or the error correction process is triggered.

[0061] In an embodiment, the calculating and converting the position information through the distance - state conversion table 512 and the state - voltage conversion table 513 to obtain the read voltage includes:

[0062] Obtain the page number of the page to be read of the target block;

[0063] Specifically, when the host sends a read command to the storage system, the command needs to include the three - dimensional physical address of the target block and the page number M to be read. After the controller parses the command, it extracts the page number M of the page to be read as the basic parameter for subsequent calculations. The core of this step is to accurately identify the read position requested by the user to ensure that subsequent operations are targeted at the correct physical page. By directly parsing the page number information in the host instruction, the system does not need to rely on additional hardware detection or complex address mapping calculations, ensuring processing efficiency and real - time performance.

[0064] Obtain the page number of the most recently programmed page of the target block in the most recent programming position table 511;

[0065] Specifically, the controller queries the pre-generated nearest programming position table 511 according to the die-plane-block identifier of the target block to obtain the nearest programming page number N of the target block. This table stores the nearest programming page information of each unprogrammed block (marked as valid_flag = 1). If the target block is an unprogrammed block, N represents the page number of its last successful programming; if the target block is a programmed block (valid_flag = 0), the dynamic adjustment process is skipped and the default voltage is directly adopted. This step quickly locates the nearest programming status of the unprogrammed block through table query, avoiding real-time scanning of the storage medium or complex status detection, and significantly reducing system overhead.

[0066] Query the distance-status conversion table 512 and the status-voltage conversion table 513 according to the page number of the page to be read and the nearest programming page number and convert them into a read voltage.

[0067] Specifically, the controller calculates the absolute distance L = |M - N| between the page number M of the page to be read and the nearest programming page number N, and then completes the voltage conversion through the mapping categories predefined in the distance-status conversion table 512 and the status-voltage conversion table 513. Through the above conversion, the system directly outputs the optimal read voltage value adapted to the current page distance, without relying on real-time algorithms or hardware circuit detection of charge distribution, realizing efficient and accurate voltage adjustment.

[0068] In one embodiment, the step of calculating and converting into a read voltage according to the page number of the page to be read and the nearest programming page number includes:

[0069] Calculate the difference between the page number of the page to be read and the nearest programming page number to obtain a physical distance;

[0070] Specifically, the controller calculates the absolute difference L = |M - N| between the page number M of the page to be read and the nearest programming page number N recorded in the nearest programming position table 511. This difference L represents the physical distance between the current page to be read and the last programming page. For example, if M = 1024 and N = 1000, then L = 24. The core of this step is to quantify the positional relationship between different pages within the unprogrammed block, providing a quantitative basis for subsequent voltage adjustment. Through simple mathematical operations, the system can quickly obtain key distance parameters without relying on complex physical detection or real-time analysis. At the same time, the positional relationship between pages is reflected by the physical distance L, indirectly characterizing the non-uniformity of the charge distribution within the unprogrammed block, providing an objective quantitative basis for voltage adjustment and reducing the error rate.

[0071] Query the distance-status conversion table 512 based on the physical distance to obtain the current status;

[0072] Specifically, the controller takes the calculated physical distance L as input and queries the predefined distance - state conversion table 512. This table defines the state categories corresponding to different distance intervals. For example, 0 ≤ L ≤ 50 corresponds to state A, 50 < L ≤ 200 corresponds to state B, and L > 200 corresponds to state C; when L = 24, the system matches state A. This step discretizes continuous distance values into finite states through interval mapping, avoiding complex dynamic calculations while ensuring the configurability of the rules. It can be understood that the state in this embodiment is the degree of influence of the programming position on the voltage distribution of the read position.

[0073] Query the state - voltage conversion table 513 based on the current state to obtain the read voltage.

[0074] Specifically, based on the state category obtained in the previous step, the controller further queries the state - voltage conversion table 513 to obtain the corresponding read voltage value. For example, state A corresponds to 2.5V. This table is pre - established through experimental data to ensure that each state category corresponds to an optimal voltage value. For example, state B may correspond to 2.8V and state C corresponds to 3.3V. This step directly maps the physical distance to an adapted voltage strategy through two - level table conversion, without the need for real - time algorithms or hardware feedback mechanisms, significantly reducing system complexity and processing latency.

[0075] In one embodiment, the construction steps of the distance - state conversion table 512 include:

[0076] Simulate the read operation of an unprogrammed block and record the physical distance between the page to be read and the nearest programmed page of the unprogrammed block;

[0077] Specifically, when constructing the distance - state conversion table 512, it is necessary to simulate different read scenarios of unprogrammed blocks through experiments, record the physical distance L = |M - N| between the page number M to be read and the nearest programmed page number N, and statistically analyze the bit error rate (BER) data at each distance. During the experimental simulation, multiple candidate voltage values are applied to different pages of the same unprogrammed block (such as L = 0, 10, 50, 200, etc.) for reading, and the bit error rate under each voltage is recorded. Through a large amount of experimental data, determine the candidate voltage range with the lowest bit error rate at different distances L as the basis for subsequent state classification. This step establishes the correlation between physical distance and voltage requirements through experimental data, providing an objective basis for state classification. Driving state classification through experimental data ensures that the physical distance intervals corresponding to each state category can accurately reflect the charge distribution differences, making the voltage adjustment strategy highly matched with the bit error rate characteristics and improving the first - read success rate.

[0078] Define the word - line state categories according to the range of the physical distance;

[0079] Specifically, based on the experimental data from the previous step, the continuous value range of the physical spacing L is divided into several discrete intervals (for example, 0 ≤ L ≤ 50, 50 < L ≤ 200, L > 200), and each interval corresponds to a word line state category (such as state A, state B, state C). The basis for dividing the state categories is the inflection point of the bit error rate varying with L: for example, when L > 50, the bit error rate rises significantly, and a higher voltage compensation needs to be switched to. This step simplifies the matching logic of the subsequent voltage strategy by discretizing the continuous distance into finite state categories, avoiding complex dynamic calculations or hardware detection requirements, and effectively reducing the system resource occupancy.

[0080] Establish a mapping relationship between the value range of the physical spacing and its corresponding word line state category to form a distance-state conversion table 512.

[0081] Specifically, make the state categories defined above correspond one by one to the physical spacing intervals to form a distance-state conversion table 512. For example, set 0 ≤ L ≤ 50 to correspond to state A, 50 < L ≤ 200 to correspond to state B, and L > 200 to correspond to state C. The construction of this table needs to ensure that the division of each interval is consistent with the bit error rate inflection point in the experimental data, so as to maximize the effectiveness of the voltage adjustment strategy. This step solidifies the experimental conclusions into a configurable mapping relationship through tabular rules, supporting dynamic adaptation to different NAND Flash process characteristics.

[0082] In one embodiment, the construction steps of the state-voltage conversion table 513 include:

[0083] Test the bit error rate at different read voltages according to the word line state category, and record the corresponding relationship between the voltage range and the bit error rate;

[0084] Specifically, for each word line state category (such as state A, B, C) defined in the distance-state conversion table 512, in the experimental environment, perform a batch read operation on the unprogrammed block to test the bit error rate (BER) at different candidate voltage values. For example, for state A (corresponding to the physical spacing 0 ≤ L ≤ 50), apply voltage values such as 2.3V, 2.5V, 2.7V in sequence to read the target page, and count the bit error rate under each voltage. By traversing all candidate voltage values (such as with a step of 0.1V), record the voltage-bit error rate curve for each state category. This step establishes the correlation between the state category and the voltage requirement through experimental data, providing data support for subsequent optimization.

[0085] According to the test results, select the best read voltage that minimizes the bit error rate and meets the reliability requirements for each word line state category;

[0086] Specifically, based on the voltage - bit error rate data recorded in the previous step, a voltage value that meets the reliability requirements (such as bit error rate ≤ 1%) and has the lowest bit error rate is selected for each state category. For example, if the bit error rate of state A is 0.8% at 2.5V and 0.5% at 2.7V but with higher power consumption, then after weighing reliability and power consumption, 2.5V is selected as the optimal voltage. The core of this step is to drive decisions through experimental data, ensuring that the voltage value corresponding to each state category can meet the error correction ability requirements, avoid data errors caused by too high bit error rate, and avoid unnecessary power consumption waste.

[0087] Establish a mapping relationship between the word - line state category and its corresponding optimal read voltage value to form a state - voltage conversion table 513.

[0088] Specifically, bind the optimal voltage value determined in the previous step to the corresponding state category to generate a state - voltage conversion table 513. For example, state A corresponds to 2.5V, state B corresponds to 2.8V, and state C corresponds to 3.3V. This table is persistently stored in a non - volatile memory and supports dynamic update through a configuration file or register to adapt to the process characteristics of different NAND Flash. This step solidifies the experimental conclusion into an executable rule table to ensure rapid matching of the optimal voltage strategy during system operation.

[0089] In one embodiment, the step of receiving a host read command and determining the position information of the target block in the recent programming position table 511 further includes:

[0090] When the target block does not exist in the recent programming position table 511, the default voltage is defined as the read voltage.

[0091] Specifically, if the target block does not exist in the recent programming position table 511 (valid_flag = 0), then directly use the predefined default voltage as the read voltage. The default voltage is usually a stable low - voltage value (such as 2.5V) for the programmed block, and it can meet the bit error rate requirements of the programmed block through experimental verification. The core of this step is to simplify the read process of the programmed block, avoid the additional computational overhead caused by dynamic voltage adjustment, thereby reducing the read power consumption. At the same time, by skipping the dynamic adjustment process of the unprogrammed block, the read latency of the programmed block is reduced, thus significantly improving the system response speed in high - concurrency scenarios.

[0092] Please refer to Figure 2 , Figure 2 which is a schematic block diagram of a device for adjusting the read voltage by recording the programming position provided by an embodiment of the present application. As Figure 2As shown in the figure, corresponding to the above method of adjusting the reading voltage by recording the programming position, the present application also provides a device 500 for adjusting the reading voltage by recording the programming position. The device 500 for adjusting the reading voltage by recording the programming position includes a unit for executing the above method of adjusting the reading voltage by recording the programming position, and the device can be configured in terminals such as desktop computers, tablet computers, laptops, etc.

[0093] A device 500 for adjusting the reading voltage by recording the programming position, comprising:

[0094] A data structure module 510, the data structure module 510 is used to organize and manage the position information of the programming position and define the distance-state and state-voltage mapping rules;

[0095] Specifically, the data structure module 510 is responsible for organizing and managing two types of key data - the programming position information of the unprogrammed block (such as the last programming page number last_page_N corresponding to the unprogrammed block) and the mapping rules (distance-state conversion table 512, state-voltage conversion table 513). This module persistently stores data through non-volatile memory to ensure that the rules are not lost after the system restarts. For example, the distance-state conversion table 512 stores the mapping relationship between the physical distance interval and the state category in the form of key-value pairs, and the state-voltage conversion table 513 stores the corresponding relationship between the state and the voltage value. Through predefined tables and structured storage, flexible configuration and fast access of the rules are realized, supporting dynamic adaptation to the process characteristics of different NAND Flash, and at the same time reducing the real-time calculation overhead.

[0096] A programming position table management module 520, the programming position table management module 520 is used to maintain the data structure module 510 and support query and update operations;

[0097] Specifically, the programming position table management module 520 is responsible for maintaining the nearest programming position table 511 in the data structure module 510. First, the programming position table management module 520 retrieves the corresponding table entry in the table according to the address of the unprogrammed block in the host read command to determine whether the target block is an unprogrammed block (valid_flag = 1); after the programming operation is completed, update the nearest programming page number of the corresponding block in the table and mark the unprogrammed block (valid_flag = 1); if the programming is completed and passes the ECC check, mark it as a programmed block (valid_flag = 0). Through efficient table entry management, ensure the accuracy and reliability of the state information of the unprogrammed block, and at the same time support multi-threaded concurrent access to improve the system throughput.

[0098] A distance calculation and state conversion module 530, the distance calculation and state conversion module 530 is used to calculate and convert the data of the data structure module 510 and map it to the voltage adjustment state;

[0099] Specifically, the distance calculation and state conversion module 530 receives the last_page_N provided by the programming position table management module 520 and the page number M to be read requested by the host, calculates the physical distance L = |M - N|, and maps L to the corresponding state category (such as state A, B, C) by querying the distance-state conversion table 512. For example, when L = 24, state A is matched. This process is completely based on predefined rules and does not require real-time algorithms or hardware detection. Quantifying the physical distance into discrete state categories simplifies the voltage adjustment logic and significantly reduces the error rate of unprogrammed blocks.

[0100] A voltage strategy execution module 540, which is used to dynamically adjust the voltage according to the state and output it to the voltage regulation circuit.

[0101] Specifically, the voltage strategy execution module 540 queries the state-voltage conversion table 513 according to the state category to obtain the corresponding target voltage value (such as state A corresponding to 2.5V), and transfers this voltage parameter to the NAND Flash controller to drive the voltage regulation circuit to perform the read operation. If the read fails (the error rate exceeds the limit), a fallback mechanism (such as gradually increasing the voltage) is triggered. Through predefined rules and dynamic adjustment mechanisms, the accurate execution of the voltage strategy is achieved, reducing the read power consumption of unprogrammed blocks and adapting to the charge stability requirements of different NAND Flash processes at the same time.

[0102] Please refer to Figure 3 , in an embodiment, the data structure module 510 includes:

[0103] The most recently programmed position table 511, which is used to record the most recently programmed page number and position information of unprogrammed blocks;

[0104] Specifically, the most recently programmed position table 511 is used to record the most recently programmed page number (last_page_N) and its physical position information (such as die-plane-block) of each unprogrammed block (marked as valid_flag = 1). For example, the entry in the table die = 0, plane = 0, block = 0, last_page_N = 1000, valid = 1 indicates that the last programmed page number of this block is 1000 and not all programming has been completed. By centrally managing the most recently programmed position information of unprogrammed blocks, the system can quickly locate the charge distribution characteristics of the target block, providing basic data support for dynamic voltage adjustment and reducing the overhead of real-time scanning of the storage medium.

[0105] The distance-state conversion table 512, which is used to define the read states corresponding to different distance intervals;

[0106] Specifically, the distance - state conversion table 512 defines the mapping rules between the physical distance (L = |M - N|) and the read state categories. For example, when 0 ≤ L ≤ 50, it corresponds to state A; when 50 < L ≤ 200, it corresponds to state B; when L > 200, it corresponds to state C. The state categories reflect the degree of noise interference or charge distribution differences in different distance ranges. Discretizing the continuous physical distance into finite state categories simplifies the matching logic of the voltage adjustment strategy, avoids complex real - time calculations, and at the same time supports dynamically adjusting the interval threshold through a configuration file to adapt to the process sensitivity differences of different NAND Flash.

[0107] A state - voltage conversion table 513, and the state - voltage conversion table 513 is used to specify the optimal read voltage corresponding to each read state.

[0108] Specifically, the state - voltage conversion table 513 specifies the optimal read voltage values corresponding to each state category. For example, state A corresponds to 2.5V, state B corresponds to 2.8V, and state C corresponds to 3.3V. The voltage values are determined through experimental data to ensure the lowest bit error rate and meet the error correction ability requirements in the corresponding state. Through the predefined optimal voltage mapping relationship, the system can directly output the voltage value adapted to the current state without relying on hardware detection or dynamic algorithms, reducing the processing delay and at the same time ensuring the read reliability.

[0109] Please refer to Figure 4 , Figure 4 which is a schematic block diagram of a computer device provided by an embodiment of the present application. The computer device 600 can be a terminal or a server. Among them, the terminal can be an electronic device with communication functions such as a smart phone, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, and a wearable device. The server can be an independent server or a server cluster composed of multiple servers.

[0110] Refer to Figure 4 As shown, the computer device 600 includes a processor 620, a memory, and a network interface 650 connected through a system bus 610. Among them, the memory can include a non - volatile storage medium 630 and an internal memory 640.

[0111] The non - volatile storage medium 630 can store an operating system 631 and a computer program 632. The computer program 632 includes program instructions, and when the program instructions are executed, the processor 320 can be made to execute a method of adjusting the read voltage by recording the programming position.

[0112] The processor 620 is used to provide computing and control capabilities to support the operation of the entire computer device 600.

[0113] The internal memory 640 provides an environment for the operation of the computer program 632 in the non-volatile storage medium 630. When the computer program 632 is executed by the processor 620, it can cause the processor 620 to execute a method of adjusting the read voltage by recording the programming position.

[0114] The network interface 650 is used for network communication with other devices. Those skilled in the art can understand that Figure 4 the structure shown in is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device 600 to which the solution of this application is applied. The specific computer device 600 may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.

[0115] It should be understood that in the embodiments of this application, the processor 620 may be a central processing unit (CPU), and the processor 320 may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), off-the-shelf programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Among them, the general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.

[0116] Those of ordinary skill in the art can understand that all or part of the processes in the methods of implementing the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program includes program instructions, and the computer program can be stored in a storage medium, and the storage medium is a computer-readable storage medium. The program instructions are executed by at least one processor in the computer system to implement the process steps of the embodiments of the above method.

[0117] Therefore, this application also provides a storage medium. The storage medium may be a computer-readable storage medium. The storage medium stores a computer program, where the computer program includes program instructions. When the program instructions are executed by the processor, the processor executes the following steps:

[0118] S100. Construct a nearest programming position table according to the nearest programming page number of the unprogrammed block, and pre-construct a distance-state conversion table and a state-voltage conversion table;

[0119] S200. Receive a host read command and judge the position information of the target block in the nearest programming position table;

[0120] S300. Calculate and convert the position information through the distance - status conversion table and the status - voltage conversion table to obtain a read voltage.

[0121] S400. Perform a read operation based on the read voltage.

[0122] The storage medium can be various computer - readable storage media such as a USB flash drive, a mobile hard disk, a read - only memory (ROM), a magnetic disk, or an optical disc, etc., which can store program codes.

[0123] Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described according to functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this application.

[0124] The non - company software tools or components appearing in the embodiments of this application are only introduced by way of example and do not represent actual use.

[0125] In several embodiments provided by this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of each unit is only a logical function division, and there can be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.

[0126] The steps in the method embodiments of this application can be adjusted, combined, and deleted according to actual needs. The units in the device embodiments of this application can be combined, divided, and deleted according to actual needs. In addition, the functional units in each embodiment of this application can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit.

[0127] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a storage medium. Based on such an 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 several instructions for causing a computer device (which may be a personal computer, a terminal, or a network device, etc.) to execute all or part of the steps of the methods in various embodiments of this application.

[0128] The above is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed by this application can easily think of various equivalent modifications or substitutions, and these modifications or substitutions should be covered within the protection scope of this application. Therefore, the protection scope of this application shall be subject to the protection scope of the claims.

Claims

1. A method for adjusting a read voltage by recording a programming position, characterized in that: The following steps are involved: Constructing a most recently programmed position table according to the most recently programmed page number of the unprogrammed block and pre-constructing a distance-state conversion table and a state-voltage conversion table; receiving a host read command, and determining location information of a target block in the most recently programmed location table; Calculate and convert the position information through the distance-state conversion table and the state-voltage conversion table to obtain a read voltage; A read operation is performed based on the read voltage.

2. The method for adjusting a read voltage by recording a programming position according to claim 1, characterized in that: The calculating and converting the position information through the distance-state conversion table and the state-voltage conversion table to obtain the read voltage comprises: Obtaining the page number of the target block to be read; Obtaining the page number of the most recently programmed page of the target block in the most recently programmed location table; The distance-state conversion table and the state-voltage conversion table are queried according to the to-be-read page number and the most recently programmed page number and converted into a read voltage.

3. The method for adjusting a read voltage by recording a programming position according to claim 2, characterized in that: The step of calculating and converting the voltage into a read voltage according to the page number to be read and the page number of the most recently programmed page comprises: Calculating the difference between the page number to be read and the page number of the most recent programming page to obtain a physical spacing; querying the distance-state conversion table based on the physical distance to obtain a current state; The state-to-voltage conversion table is queried based on the current state to obtain a read voltage.

4. The method for adjusting a read voltage by recording a programming position according to claim 3, characterized in that: The steps of constructing the distance-state conversion table include: Simulating a read operation of an unprogrammed block, and recording a physical distance between a page to be read and a most recently programmed page of the unprogrammed block; defining word line state categories according to a range of physical spacing; A mapping relationship is established between the value range of the physical spacing and the corresponding word line state category to form a distance-state conversion table.

5. The method for adjusting a read voltage by recording a programming position according to claim 4, characterized in that: The steps of constructing the state-voltage conversion table include: Testing the bit error rates under different read voltages according to the word line state categories, and recording the corresponding relationship between the voltage range and the bit error rate; According to the test results, an optimal read voltage is selected for each word line state category so as to minimize the bit error rate and meet the reliability requirements; A mapping relationship is established between the word line state categories and their corresponding optimal read voltage values ​​to form a state-voltage conversion table.

6. The method for adjusting a read voltage by recording a programming position according to claim 1, characterized in that: The step of receiving a host read command and determining the location information of the target block in the most recently programmed location table further comprises: When the target block does not exist in the most recently programmed location table, a default voltage is defined as the read voltage.

7. A device for adjusting a read voltage by recording a programming position, characterized in that: include: A data structure module, the data structure module is used to organize and manage the location information of the programming location and define distance-state and state-voltage mapping rules; A programming position table management module, the programming position table management module is used to maintain the data structure module and supports query and update operations; A distance calculation and state conversion module, the distance calculation and state conversion module is used to calculate and convert the data of the data structure module and map it to the voltage adjustment state; A voltage strategy execution module is used to dynamically adjust the voltage according to the state and output it to the voltage regulation circuit.

8. The device for adjusting a read voltage by recording a programming position according to claim 7, characterized in that: The data structure module includes: A most recently programmed position table, the most recently programmed position table being used to record the most recently programmed page number and position information of the unprogrammed block; A distance-state conversion table, wherein the distance-state conversion table is used to define the reading states corresponding to different distance intervals; A state-voltage conversion table is used to define an optimal read voltage corresponding to each read state.

9. A computer device, characterized in that: The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the method according to any one of claims 1 to 6 when executing the computer program.

10. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a processor, the method according to any one of claims 1 to 6 can be implemented.

Citation Information

Cited By

  • Bit error rate determination method, data recovery method, device, equipment and medium

    CN120743618A

  • Error rate determination method, data recovery method, apparatus, device, and medium

    CN120743618B