Method for determining voltage range and electronic device
By updating the initial voltage range of TLC NAND flash memory and determining the updated voltage range based on the voltage value of the storage cell, the problems of low efficiency and low accuracy in the prior art are solved, achieving efficient and accurate voltage range determination and reducing the number of operations on the SSD.
Patent Information
- Application Number
- CN202511502292.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-21
- Publication Date
- 2026-01-23
- Estimated Expiration
- 2045-10-21
AI Technical Summary
The existing technology for determining the voltage range of three-layer cell NAND flash memory is inefficient and cannot accurately simulate the actual usage environment, resulting in low accuracy of data reading.
By updating the voltage values of multiple memory cells at the current moment based on the K initial voltage ranges associated with the same bit of data, K updated voltage ranges are obtained. Only M tests are needed to determine the K updated voltage ranges.
This improves the efficiency of determining the update voltage range, reduces the number of tests, improves the accuracy of data reading, and reduces the number of PE operations on flash memory cells, thus reducing the impact on the SSD.
Smart Images

Figure CN120977343B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of data processing, and particularly relates to a voltage range determination method and an electronic device. BACKGROUND
[0002] Triple Level Cell (TLC) NAND (non-volatile storage medium) is one of NAND flash technologies, and the TLC NAND stores data in the form of storing a certain number of electrons, that is, the TLC NAND corresponds to multiple voltage ranges, and the data stored in multiple storage units in the TLC NAND can be read through the multiple voltage ranges. In some scenarios, due to the influence of data storage time and reading times on the multiple voltage ranges, it is necessary to determine the multiple voltage ranges of the TLC NAND at the current time.
[0003] In the related art, for each voltage range in the multiple voltage ranges, a server can determine multiple candidate voltage values based on the voltage range, and determine multiple candidate voltage ranges corresponding to the voltage range according to the multiple candidate voltage values, respectively. Then, the server reads the data stored in the storage unit based on the multiple candidate voltage ranges, and determines the bit error rate when the data is read by each of the multiple candidate voltage ranges, and determines the candidate voltage range with the minimum bit error rate as the voltage range of the TLC NAND at the current time. However, the efficiency of determining the voltage range of the TLC NAND at the current time through the above-mentioned manner is low. SUMMARY
[0004] The present application provides a voltage range determination method and an electronic device to improve the efficiency of determining the update voltage range corresponding to each of the multiple initial voltage ranges.
[0005] The present application provides a voltage range determination method, comprising:
[0006] determining K initial voltage ranges in multiple initial voltage ranges corresponding to a flash memory unit; the flash memory unit comprises multiple storage units, each storage unit stores M-bit data, the K initial voltage ranges are initial voltage ranges associated with Nth data in the M-bit data, K is a positive integer, M is a positive integer, and N is a positive integer less than or equal to M;
[0007] updating the K initial voltage ranges according to voltage values of the multiple storage units at the current time to obtain K update voltage ranges corresponding to the K initial voltage ranges; the K update voltage ranges are the basis for reading the Nth data of each storage unit in the multiple storage units at the current time.
[0008] The present application also provides a voltage range determination device, comprising:
[0009] The determining module is configured to determine K initial voltage ranges in a plurality of initial voltage ranges corresponding to the flash memory unit; the flash memory unit comprises a plurality of memory cells, each of the memory cells stores M-bit data, the K initial voltage ranges are initial voltage ranges associated with N-bit data in the M-bit data, K is a positive integer, M is a positive integer, and N is a positive integer less than or equal to M;
[0010] The updating module is configured to update the K initial voltage ranges according to voltage values of the plurality of memory cells at a current time, to obtain K updated voltage ranges corresponding to the K initial voltage ranges; the K updated voltage ranges are used as a basis for reading N-bit data of each of the memory cells in the plurality of memory cells at the current time.
[0011] The application further provides an electronic device, comprising a memory configured to store a computer program, and a processor configured to execute the computer program to implement steps of the method for determining the voltage range.
[0012] The application further provides a computer-readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement steps of the method for determining the voltage range.
[0013] The application further provides a computer program product, which comprises a computer program, and the computer program is executed by a processor to implement steps of the method for determining the voltage range.
[0014] According to the application, for K initial voltage ranges associated with the same bit data, K updated voltage ranges corresponding to the K initial voltage ranges can be obtained by updating the K initial voltage ranges according to voltage values of the plurality of memory cells at a current time. Therefore, for M-bit data stored in the memory cell, only M tests are needed to determine the K updated voltage ranges. Compared with the method of determining an updated voltage range corresponding to each initial voltage range by multiple tests, the efficiency of determining the K updated voltage ranges is improved. BRIEF DESCRIPTION OF DRAWINGS
[0015] To make the application clearer, the drawings needed in the embodiments will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the application, and other drawings can be obtained by those skilled in the art without any creative effort.
[0016] Figure 1 It is a distribution diagram of eight voltage ranges corresponding to a TLC NAND flash memory;
[0017] Figure 2An application scenario schematic diagram provided for an embodiment of the present application;
[0018] Figure 3 A flowchart of a voltage range determination method provided for an embodiment of the present application;
[0019] Figure 4 A flowchart of determining K update voltage ranges provided for an embodiment of the present application;
[0020] Figure 5 A schematic diagram of multiple initial voltage ranges provided for an embodiment of the present application;
[0021] Figure 6 A flowchart of determining the Nth data provided for an embodiment of the present application;
[0022] Figure 7 A structural schematic diagram of a voltage range determination apparatus provided for an embodiment of the present application;
[0023] Figure 8 A structural schematic diagram of an electronic device provided for the present application. DETAILED DESCRIPTION
[0024] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.
[0025] It should be noted that, in the description of the present application, the terms “comprise”, “contain” or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed, or includes elements inherent to such process, method, article or device. The terms “first”, “second” and the like in the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence.
[0026] First, the professional terms involved in the present application are explained.
[0027] Solid State Drives (SSD): A type of non-volatile storage device that uses NAND flash memory as storage medium. In general, the stability of the NAND flash memory fundamentally determines the stability of the data stored in the SSD. The basic unit of the NAND flash memory is a floating gate transistor, which stores data by trapping electrons in the floating gate. In some embodiments, the floating gate transistor includes a tunnel oxide layer to prevent the electrons in the floating gate from escaping.
[0028] Single-Level Cell (SLC): A type of NAND flash memory that includes multiple memory cells, each of which stores one bit of binary data.
[0029] Triple Level Cell (TLC): A type of NAND flash memory that includes multiple memory cells, each of which stores three bits of binary data. In some embodiments, since three bits of binary data correspond to eight data states (000-111), the TLC NAND flash memory can form eight different voltage ranges by the difference in the number of electrons trapped in the floating gate. In this way, the server can read the data stored in each memory cell through the eight different voltage ranges.
[0030] Quad Level Cell (QLC): A type of NAND flash memory that includes multiple memory cells, each of which stores four bits of binary data. In some embodiments, since four bits of binary data correspond to sixteen data states (0000-1111), the QLC NAND flash memory can form sixteen different voltage ranges by the difference in the number of electrons trapped in the floating gate. In this way, the server can read the data stored in each memory cell through the sixteen different voltage ranges.
[0031] In some embodiments, there is a possibility of electrons escaping from the floating gate. For example, as the number of Program / Erase (PE) operations on the SSD increases, the electron retention capability of the SSD decreases, and the probability of electrons escaping from the floating gate increases. In addition, as the data retention time of the SSD increases, the probability of electrons escaping from the floating gate also increases.
[0032] In some embodiments, electron escape in the floating gate can cause changes in the voltage range corresponding to TLC NAND flash memory and QLC NAND flash memory. When reading data stored in the memory cell, if the initial voltage range corresponding to TLC NAND flash memory or QLC NAND flash memory is still used to read the data stored in the memory cell, the accuracy of reading the data will be low.
[0033] Specifically, it can be combined with Figure 1 To understand. Figure 1 This is a schematic diagram showing the distribution of eight voltage ranges corresponding to a type of TLC NAND flash memory. For example... Figure 1 As shown, the initial voltage ranges corresponding to TLC NAND flash memory are P0, P1, P2, P3, P4, P5, P6, and P7, respectively. Figure 1 The initial voltage range is shown by the solid line. Taking P6 and P5 as examples, the voltage value that distinguishes the initial voltage ranges P6 and P5 is R1. After electrons escape from the floating gate of the TLC NAND flash memory, the eight voltage ranges corresponding to the TLC NAND flash memory are eight updated voltage ranges corresponding to the eight initial voltage ranges. The eight updated voltage ranges include P... a P b P c P d P e P f P g P h ,like Figure 1 The initial voltage range is indicated by the dashed line. (P) g and P f For example, distinguish the update voltage range P g and P f The voltage value is R2.
[0034] like Figure 1 As shown, after the eight initial voltage ranges are updated, the eight voltage ranges corresponding to the TLC NAND flash memory are updated from eight initial voltage ranges to eight updated voltage ranges. Therefore, if data stored in the memory cell is still read based on the eight initial voltage ranges corresponding to the TLC NAND flash memory, the voltage value in the R2 to R1 interval will be mistakenly identified as being within the updated voltage range P. f This results in a lower accuracy rate for the server in reading the data.
[0035] In the related art, due to the working requirement of enterprise-level SSDs, the data stored in the SSD can be stably stored for 90 days even if the SSD is powered off or does not perform any read / write operation at a working temperature of 40 degrees Celsius, and the error code rate of reading the data is within the correctable range. In some embodiments, the update voltage range corresponding to the TLC NAND flash memory can be tested under different storage durations or different PE operation times. It should be noted that during the testing of the SSD, since directly waiting for 90 days to observe the data storage state will cause the test period to be too long, a high-temperature acceleration method can be used to simulate the data storage process of the SSD.
[0036] Specifically, under the condition of high-temperature acceleration, the data storage duration of the SSD is divided into multiple duration stages. For example, assuming that the data storage duration is 90 days, the 90 days can be divided into 9 duration stages, and the 9 duration stages can be as shown in Table 1:
[0037] Table 1
[0038]
[0039] For any duration stage in the multiple duration stages, the data stored in the storage unit is read according to the multiple candidate voltage ranges, and the error code rate corresponding to each of the multiple candidate voltage ranges is determined. The candidate voltage range with the minimum error code rate is determined as the update voltage range in the duration stage.
[0040] Similar to testing the update voltage range under different storage durations, in order to test the update voltage range corresponding to the TLC NAND under different PE operation times, the TLC NAND can be subjected to a certain range of PE operations. For example, if each test stage is tested for 200 PE operation times, the number range in the test process can be as shown in Table 2:
[0041] Table 2
[0042]
[0043] For each test stage in the multiple test stages, the data stored in the storage unit is read according to the multiple candidate voltage ranges, and the error code rate corresponding to each of the multiple candidate voltage ranges is determined. The candidate voltage range with the minimum error code rate is determined as the update voltage range in the test stage.
[0044] In the actual use environment of the SSD, the TLC NAND flash memory is simultaneously affected by the PE operation times and the data storage duration, and the anti-interference ability of the tunnel oxide layer is inconsistent under different PE operation times. Therefore, the update voltage range of the TLC NAND flash memory under different PE operation times, data storage durations and read times can be determined by testing from the three dimensions of the PE operation times, the data storage duration and the read times.
[0045] In some embodiments, the manner of determining the multiple candidate voltage ranges corresponding to the initial voltage range can be as follows: taking the start value of the initial voltage range as a reference value, determining multiple candidate start values in the offset interval [reference value-128, reference value+128] with a step size of 2, and then taking the multiple candidate start values as the respective start values of the multiple candidate voltage ranges, respectively, and taking the voltage interval of the initial voltage range as the voltage interval of the multiple candidate voltage ranges, to determine the multiple candidate voltage ranges.
[0046] However, when determining the update voltage range of the flash memory unit in the above manner, the update voltage range needs to be determined through multiple tests, resulting in low efficiency of determining the update voltage range. In addition, the use environment of the SSD is different from the test environment in the laboratory. The process of determining the update voltage range in the laboratory through the above test manner cannot completely simulate the use of the SSD in the use environment of the SSD, resulting in low accuracy of determining the update voltage range.
[0047] Based on this, the present application provides a voltage range determination method. For K initial voltage ranges associated with the same bit of data, according to the voltage values of the multiple storage units at the current time, K update voltage ranges corresponding to the K initial voltage ranges can be obtained by updating the K initial voltage ranges. Therefore, for M bits of data stored in the storage unit, only M tests are required to determine the K update voltage ranges. Compared with the manner of determining the update voltage range corresponding to each initial voltage range through multiple tests, the efficiency of determining the K update voltage ranges is improved.
[0048] In order for those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the drawings and specific embodiments.
[0049] In combination with the specific application environment architecture or specific hardware architecture on which the voltage range determination method is dependent, the specific application environment architecture or specific hardware architecture is described herein. For reference Figure 2 , Figure 2 The application scenario schematic diagram provided by the embodiments of the present application is shown in FIG. 1. Figure 2As shown, it includes a client 21 and a server 22, wherein the server 22 includes an SSD, and the SSD includes a flash memory unit, which can be, for example, TLC NAND flash memory or QLC NAND flash memory.
[0050] In actual application, the client 21 can communicate with the server 22. For example, the client 21 can send a voltage range determination request to the server 22, where the voltage range determination request is used to request the server 22 to determine an update voltage range corresponding to the flash memory unit at the current time. After receiving the voltage range determination request, the server 22 determines the update voltage range corresponding to the flash memory unit at the current time.
[0051] It should be noted that the execution subject of each embodiment of the present application can be a processor, a microprocessor, etc., or a device integrated with the above-mentioned processor or microprocessor, such as a terminal device. The specific execution subject of each embodiment of the present application is not limited, and can be selected and set according to actual needs. In the following embodiments, the execution subject is taken as a terminal device integrated with the above-mentioned processor or microprocessor, which does not limit the actual execution subject.
[0052] It should be noted that Figure 2 Only one application scenario is shown as an example, and the application scenario is not limited.
[0053] The technical solutions of the present application and how the technical solutions solve the above-mentioned technical problems will be described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes can not be described in detail in some embodiments. The embodiments of the present application will be described below with reference to the drawings.
[0054] Figure 3 A flowchart of a voltage range determination method provided by an embodiment of the present application is shown. As shown, the method can include the following steps: Figure 3
[0055] S301, determining K initial voltage ranges in a plurality of initial voltage ranges corresponding to a flash memory unit; the flash memory unit includes a plurality of storage units, each storage unit stores M-bit data, the K initial voltage ranges are initial voltage ranges associated with the Nth data in the M-bit data, K is a positive integer, M is a positive integer, and N is a positive integer less than or equal to M.
[0056] A flash memory cell is a carrier for storing data in an SSD. The flash memory cell can be, for example, a TLC NAND flash memory or a QLC NAND flash memory. In some embodiments, a plurality of storage cells are included in the flash memory cell, and the storage cells are used to store multi-bit data. Taking the flash memory cell as an example of a TLC NAND flash memory, the storage cells store 3-bit data, which can be 101. Taking the 3-bit data as an example, the first bit of data in the 3-bit data is the second “1” in “101”, the second bit of data is “0” in “101”, and the third bit of data is the first “1” in “101”.
[0057] In some embodiments, the flash memory cell distinguishes different data based on a difference in the number of electrons trapped in the floating gate, and the voltages of different numbers of electrons are different. Therefore, the flash memory cell corresponds to a plurality of voltage ranges, and the data stored in the storage cells can be determined by the plurality of voltage ranges.
[0058] Since there is a possibility of escape of the electrons trapped in the floating gate, the number of electrons in the floating gate changes, that is, the plurality of voltage ranges corresponding to the flash memory cell changes. The plurality of initial voltage ranges are a plurality of voltage ranges corresponding to the flash memory cell at an initial time, for example, a time of manufacture of the flash memory cell.
[0059] In some embodiments, for any bit of data in the M-bit data, there is at least one voltage range associated with the bit of data in the plurality of voltage ranges. The value of the bit of data can be determined according to the voltage of the bit of data and the at least one voltage range associated with the bit of data.
[0060] wherein the K initial voltage ranges are initial voltage ranges associated with the Nth bit of data in the M-bit data in the plurality of initial voltage ranges. For example, for each storage cell in the plurality of storage cells, it is assumed that the storage cell stores M (M=3) bits of data, and the plurality of initial voltage ranges include initial voltage range 0, initial voltage range 1, initial voltage range 2, initial voltage range 3, initial voltage range 4, initial voltage range 5, initial voltage range 6, and initial voltage range 7, wherein the initial voltage ranges associated with the first bit of data include initial voltage range 1 and initial voltage range 5; the initial voltage ranges associated with the second bit of data include initial voltage range 2, initial voltage range 4, and initial voltage range 6; and the initial voltage ranges associated with the third bit of data include initial voltage range 3 and initial voltage range 7. Assuming that N is 1, the Nth bit of data is the first bit of data in the M-bit data, and it is determined that the K initial voltage ranges include initial voltage range 1 and initial voltage range 5.
[0061] S302, updating the K initial voltage ranges according to the voltage values of the plurality of storage units at the current time, to obtain K updated voltage ranges corresponding to the K initial voltage ranges; the K updated voltage ranges are the basis for reading the Nth bit data of each storage unit in the plurality of storage units at the current time.
[0062] Due to factors such as data retention time, PE operation, temperature, etc., electrons in the floating gate of the flash memory unit will slowly escape, causing the plurality of voltage ranges corresponding to the flash memory unit to gradually decrease from the plurality of initial voltage ranges. Therefore, in order to accurately read the data stored in the storage unit, it is necessary to determine the plurality of voltage ranges corresponding to the flash memory unit at the current time.
[0063] Among them, for each storage unit in the plurality of storage units, the voltage value of the storage unit at the current time is used to indicate the data state currently actually stored by the storage unit. In some embodiments, the difference between the voltage value of the storage unit at the current time and any initial voltage range in the K initial voltage ranges is used to indicate the degree of voltage change between the K initial voltage ranges and the K updated voltage ranges, respectively. The K updated voltage ranges are the updated voltage ranges associated with the Nth bit data in the plurality of voltage ranges corresponding to the flash memory unit at the current time.
[0064] Therefore, for any initial voltage range in the K initial voltage ranges, the server can determine the degree of voltage change between the initial voltage range and the updated voltage range corresponding to the initial voltage range according to the voltage values of the plurality of storage units at the current time, and then determine the updated voltage range corresponding to the initial voltage range according to the degree of voltage change and the initial voltage range, thereby determining the plurality of voltage ranges corresponding to the flash memory unit at the current time.
[0065] After determining the K updated voltage ranges, the Nth bit data in each storage unit can be read at the current time based on the K updated voltage ranges. In this way, the probability of inaccurate reading of low N-bit data due to initial voltage range offset is reduced.
[0066] In Figure 3 In the embodiment shown, for the K initial voltage ranges associated with the same bit data, according to the voltage values of the plurality of storage units at the current time, the K updated voltage ranges corresponding to the K initial voltage ranges can be obtained by updating the K initial voltage ranges. Therefore, for the M-bit data stored in the storage unit, only M tests are required to determine the K updated voltage ranges. Compared with the way of determining the updated voltage range corresponding to each initial voltage range through multiple tests, the efficiency of determining the K updated voltage ranges is improved.
[0067] In Figure 3 On the basis of the embodiment shown inFigure 4 The process of obtaining K updated voltage ranges corresponding to the K initial voltage ranges is further described.
[0068] Figure 4 A flowchart for determining K updated voltage ranges is provided for embodiments of the present application. As shown in the flowchart, the process can include the following steps: Figure 4
[0069] S401, in the plurality of storage units, determine a first number of storage units whose voltage values at the current time are greater than a first voltage value; the first voltage value is a start value of a first voltage range, and the first voltage range is one of the K initial voltage ranges.
[0070] The first voltage range is any one of the K initial voltage ranges. For example, assume that the K initial voltage ranges include initial voltage range 1 and initial voltage range 5, where the first voltage range can be initial voltage range 1, and the first voltage range can also be initial voltage range 5.
[0071] In some embodiments, the more electrons trapped in the floating gate, the more electrons escape, and the greater the change in voltage. Therefore, for each initial voltage range in the K initial voltage ranges, the greater the initial voltage range, the greater the degree of change. In some embodiments, to more accurately determine the voltage range of the updated initial voltage range, the initial voltage range with a higher voltage can be determined as the first voltage range among the K initial voltage ranges.
[0072] The first voltage value is a critical value for dividing the initial voltage ranges before the first voltage range among the plurality of initial voltage ranges from the first voltage range. For example, assume that the first voltage range is 10V-20V, and the first voltage value is 10V.
[0073] The first number is the number of storage units in the plurality of storage units whose voltage values at the current time are greater than or equal to the first voltage value. For example, assume that the plurality of storage units includes storage unit A, storage unit B, storage unit C, and storage unit D. Wherein the voltage value of storage unit A at the current time is 10V, the voltage value of storage unit B at the current time is 15V, the voltage value of storage unit C at the current time is 20V, the voltage value of storage unit D at the current time is 25V, and the first voltage value is 18V. Since the voltage value of storage unit C at the current time and the voltage value of storage unit D at the current time are greater than the first voltage value, the first number is determined to be 2.
[0074] In some embodiments, the NAND supports Single Level Read (SLR). SLR is an interface to obtain the voltage distribution of a plurality of memory cells in a simple way. The controller of the SSD can send a read request to the flash memory cell through the SLR, and the read request is used to read the number of memory cells whose voltage value at the current time is greater than a first voltage value. The flash memory cell determines the first number according to the read request after receiving the read request, and sends the first number to the SSD controller through the SLR.
[0075] S402, according to the first number, the first voltage value and the plurality of initial voltage ranges, determine the change amount of each of the K initial voltage ranges from the initial time to the current time.
[0076] In some embodiments, the manner of determining the change amount of each of the K initial voltage ranges from the initial time to the current time can be as follows: according to the first voltage value and the plurality of initial voltage ranges, determine a second number of memory cells in the plurality of memory cells whose voltage value at the initial time is greater than the first voltage value; according to the first number and the second number, determine the change amount of each of the K initial voltage ranges from the initial time to the current time.
[0077] The second number is the number of memory cells in the plurality of memory cells whose voltage value at the initial time is greater than or equal to the first voltage value. In some embodiments, the manner of determining the second number can be as follows: according to the first voltage value and the plurality of initial voltage ranges, determine the arrangement position of the first voltage range in the plurality of initial voltage ranges; according to the arrangement position and the number of the plurality of initial voltage ranges, determine the second number.
[0078] In some embodiments, the plurality of initial voltage ranges are arranged in order of voltage from low to high. Therefore, the arrangement position of the first voltage range in the plurality of initial voltage ranges can be determined according to the first voltage value.
[0079] Taking the TLC NAND flash memory as an example, the TLC NAND flash memory corresponds to 8 initial voltage ranges, and the 8 initial voltage ranges include initial voltage range 1 (0.1-0.5V), initial voltage range 2 (0.6-1.0V), initial voltage range 3 (1.1-1.5V), initial voltage range 4 (1.6-2.0V), initial voltage range 5 (2.1-2.5V), initial voltage range 6 (2.6-3.0V), initial voltage range 7 (3.1-3.5V), and initial voltage range 8 (3.6-4.0V). Assuming that the first voltage value is 2.1V, the first voltage range is determined to be the initial voltage range 5, i.e. the arrangement position of the first voltage range in the plurality of initial voltage ranges is 5.
[0080] In some embodiments, after data is written to the flash memory cell, the voltage of the storage cell strictly matches the initial voltage range, and because the data is scrambled (to determine the 0 / 1 ratio balance), the number of storage cells corresponding to each initial voltage range is equal to the total number of storage cells / the number of multiple initial voltage ranges.
[0081] Since the initial voltage ranges are ordered in ascending order of voltage, the initial voltage range corresponding to the memory cells with voltage values greater than the first voltage value is the initial voltage range arranged after the first voltage range. Furthermore, the number of initial voltage ranges arranged after the first voltage range is equal to the total number of initial voltage ranges minus their order.
[0082] In summary, the second quantity is equal to the number of initial voltage ranges arranged after the first voltage range multiplied by the number of memory cells corresponding to each initial voltage range.
[0083] Can be combined Figure 5 To understand, Figure 5 This is a schematic diagram illustrating multiple initial voltage ranges provided in an embodiment of this application. For example... Figure 5 As shown, the multiple initial voltage ranges include P0, P1, P2, P3, P4, P5, P6, and P7, meaning the total number of initial voltage ranges is 8. Among them, initial voltage range P4 is the first initial voltage range, and its position among the multiple initial voltage ranges is determined to be 5 based on its initial value. Assuming the total number of memory cells is 80, and the arrangement position is 5, then the second number is determined to be (8-5)*(80 / 8) = 30.
[0084] In some embodiments, the method for determining the change of each of the K initial voltage ranges from the initial time to the current time based on the first quantity and the second quantity can be as follows: determine the difference between the second quantity and the first quantity; for each of the K initial voltage ranges, determine the change of the initial voltage range from the initial time to the current time based on the difference, the mapping relationship between the difference corresponding to the initial voltage range and the change.
[0085] In some embodiments, the difference between the second quantity and the first quantity indicates the degree of change in the initial voltage range from the initial time to the current time. For example, a larger difference between the second quantity and the first quantity indicates a greater degree of change in the initial voltage range from the initial time to the current time; a smaller difference between the second quantity and the first quantity indicates a smaller degree of change in the initial voltage range from the initial time to the current time.
[0086] The mapping relationship between the difference value and the change amount corresponding to each initial voltage range is used to indicate the correlation between the change degree of the voltage distribution of the storage unit and the change degree of the initial voltage range. In some embodiments, the mapping relationship between the difference value and the change amount corresponding to each of the plurality of initial voltage ranges can be determined through multiple tests.
[0087] For example, it is assumed that the K initial voltage ranges include initial voltage range 1 and initial voltage range 5, and the mapping relationship between the difference value and the change amount corresponding to the initial voltage range 5 is shown in Table 3:
[0088] Table 3
[0089]
[0090] The mapping relationship between the difference value and the change amount corresponding to the initial voltage range 1 is shown in Table 4:
[0091] Table 4
[0092]
[0093] It is assumed that the difference value is 50, and the change amount of the initial voltage range 1 from the initial time to the current time is determined to be -2; the change amount of the initial voltage range 5 from the initial time to the current time is determined to be -4.
[0094] S403, according to the change amount of the K initial voltage ranges from the initial time to the current time, updating the K initial voltage ranges to obtain K updated voltage ranges corresponding to the K initial voltage ranges.
[0095] In some embodiments, for each initial voltage range in the K initial voltage ranges, the following operation can be performed: updating the initial voltage range according to the second voltage value, the initial voltage range, and the change amount of the initial voltage range from the initial time to the current time, to determine an updated voltage range corresponding to the initial voltage range; the second voltage value is the starting value of the initial voltage range.
[0096] Specifically, the way to determine the updated voltage range corresponding to the initial voltage range can be as follows: the difference between the second voltage value and the change amount of the initial voltage range from the initial time to the current time is determined as a third voltage value; according to the third voltage value and the initial voltage range, the updated voltage range corresponding to the initial voltage range is determined; the starting value of the updated voltage range corresponding to the initial voltage range is the third voltage value, and the range size of the updated voltage range corresponding to the initial voltage range is the same as the range size of the initial voltage range.
[0097] In some embodiments, since the reason for the change in the voltage range is the escape of electrons in the floating gate, the starting value of the updated voltage range corresponding to the initial voltage range is smaller than the starting value of the initial voltage range. Therefore, the difference between the second voltage value and the change amount of the initial voltage range from the initial time to the current time can be determined as the starting value of the updated voltage range corresponding to the initial voltage range.
[0098] The third voltage value is the starting value of the updated voltage range corresponding to the initial voltage range. For example, assuming that the updated voltage range corresponding to the initial voltage range is 0.5-1V, the third voltage value is 0.5V.
[0099] The range size of the initial voltage range is the difference between the ending value and the starting value of the initial voltage range. In some embodiments, since the updated voltage range corresponding to the initial voltage range is obtained by updating the initial voltage range, the range size of the initial voltage range is the same as the range size of the updated voltage range corresponding to the initial voltage range.
[0100] In summary, according to the third voltage value as the starting value, and the range size of the initial voltage range as the range size of the updated voltage range, the ending value of the updated voltage range corresponding to the initial voltage range is determined as the sum of the third voltage value and the range size of the initial voltage range, so that the updated voltage range corresponding to the initial voltage range is determined according to the third voltage value and the ending value of the updated voltage range corresponding to the initial voltage range.
[0101] For example, assuming that the third voltage value is 0.5V and the range size of the initial voltage range is 1V, the ending value of the updated voltage range corresponding to the initial voltage range is determined as 1.5V. Therefore, the updated voltage range corresponding to the initial voltage range is determined as 0.5-1.5V.
[0102] In Figure 4 In the embodiment shown, the server determines the change amount of each of the K initial voltage ranges from the initial time to the current time according to the first quantity and the second quantity, which provides a basis for determining the change amount of the initial voltage range from the initial time to the current time, and then determines the updated voltage range corresponding to the initial voltage range according to the change amount of the initial voltage range from the initial time to the current time. This avoids determining the updated voltage range with the lowest error rate through multiple tests, improves the efficiency and accuracy of determining the updated voltage range corresponding to the initial voltage range. In addition, the method provided by the present application for determining K updated voltage ranges reduces the read and write operations on the SSD, i.e., reduces the number of PE operations on the flash memory unit, thereby reducing the impact on the SSD.
[0103] On the basis of the above embodiments, the embodiments of the present application further provide a manner for determining the Nth bit data in each storage unit in a plurality of storage units. Hereinafter, the manner for determining the Nth bit data is described in combination with Figure 6 the above embodiments.
[0104] Figure 6 A flowchart for determining the Nth bit data is provided in the embodiments of the present application. As shown in the flowchart, the process can include the following steps: Figure 6
[0105] S601, determining a target voltage value of a storage unit at a current time for any storage unit in a plurality of storage units.
[0106] In some embodiments, the Nth bit data in the storage unit can be 0 or 1. Therefore, it is necessary to determine the voltage value of the storage unit at the current time.
[0107] S602, reading the Nth bit data in the plurality of storage units according to the target voltage value and the K update voltage ranges respectively.
[0108] In some embodiments, for each storage unit in the plurality of storage units, the following operations can be performed: determining the size relationship between the starting value of each of the K update voltage ranges and the target voltage value of the storage unit at the current time; and reading the Nth bit data in the storage unit according to the size relationship and the association relationship between the size relationship and the data.
[0109] Since the K update voltage ranges are the update voltage ranges associated with the Nth bit data, in some embodiments, for any update voltage range in the K update voltage ranges, the size relationship between the starting value of the update voltage range and the target voltage value can be determined.
[0110] For example, assuming that the K update voltage ranges include update voltage range 1 and update voltage range 5, the starting value of the update voltage range 1 is 3V, the starting value of the update voltage range 5 is 5V, and the target voltage value is 2V, then the size relationship between the starting value of the update voltage range 1 and the target voltage value and the size relationship between the starting value of the update voltage range 5 and the target voltage value are determined as follows: the target voltage value is greater than the starting value of the update voltage range 1, and the target voltage value is less than the starting value of the update voltage range 5.
[0111] In some embodiments, there are multiple size relationships between the starting value of each of the K update voltage ranges and the target voltage value, and the multiple size relationships correspond to the value of the Nth bit data respectively. The value of the Nth bit data can be 0 or 1. The association relationship between the size relationship and the data is used to indicate the value of the Nth bit data corresponding to different size relationships.
[0112] In some embodiments, since the storage unit stores multiple bits of data, the size relationship of each bit of data and the association relationship between the data are different to distinguish them. Therefore, for the Nth bit of data, the size relationship and the association relationship between the size relationship of the Nth bit of data and the data can be used to read the Nth bit of data in the storage unit.
[0113] For example, assume that the K updated voltage ranges include updated voltage range 1 and updated voltage range 5, and the starting value of updated voltage range 1 is 3V, the starting value of updated voltage range 5 is 5V, and the target voltage value is 2V. The relationship between the size of the Nth data point and the data is shown in Table 5:
[0114] Table 5
[0115]
[0116] In summary, the Nth bit of data read from the storage unit is 0.
[0117] exist Figure 6 In the embodiment shown, since the K update voltage ranges are the update voltage ranges associated with the Nth bit data among the multiple update voltage ranges corresponding to the flash memory cell at the current moment, the accuracy of reading the Nth bit data in the memory cell based on the K update voltage ranges is higher.
[0118] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.
[0119] Figure 7 This is a schematic diagram of a voltage range determination device provided in an embodiment of this application. Figure 7 As shown, embodiments of this application also provide a voltage range determination device 70, which includes a determination module 71 and an update module 72, wherein:
[0120] The determining module 71 is used to determine K initial voltage ranges among multiple initial voltage ranges corresponding to the flash memory cell; the flash memory cell includes multiple storage cells, each storage cell stores M bits of data, and the K initial voltage ranges are initial voltage ranges associated with the Nth bit of data in the M bits of data, where K is a positive integer, M is a positive integer, and N is a positive integer less than or equal to M;
[0121] The update module 72 is used to update the K initial voltage ranges according to the voltage values of the multiple storage cells at the current time, so as to obtain the K updated voltage ranges corresponding to the K initial voltage ranges; the K updated voltage ranges are the basis for reading the Nth bit data of each storage cell in the multiple storage cells at the current time.
[0122] In a possible implementation, the updating module 72 is specifically configured to:
[0123] In the plurality of storage units, determine a first quantity of storage units whose voltage values at the current time are greater than a first voltage value; the first voltage value is a start value of a first voltage range, and the first voltage range is one of K initial voltage ranges;
[0124] According to the first quantity, the first voltage value, and the plurality of initial voltage ranges, determine a change amount of each of the K initial voltage ranges from an initial time to the current time;
[0125] According to the change amount of each of the K initial voltage ranges from the initial time to the current time, update the K initial voltage ranges to obtain K updated voltage ranges corresponding to the K initial voltage ranges.
[0126] In a possible implementation, the updating module 72 is specifically configured to:
[0127] According to the first voltage value and the plurality of initial voltage ranges, determine, in the plurality of storage units, a second quantity of storage units whose voltage values at the initial time are greater than the first voltage value;
[0128] According to the first quantity and the second quantity, determine a change amount of each of the K initial voltage ranges from the initial time to the current time.
[0129] In a possible implementation, the updating module 72 is specifically configured to:
[0130] Determine a difference between the second quantity and the first quantity;
[0131] For each of the K initial voltage ranges, according to a mapping relationship between the difference and a change amount of an initial voltage range corresponding to the difference from the initial time to the current time, determine the change amount of the initial voltage range from the initial time to the current time.
[0132] In a possible implementation, the updating module 72 is specifically configured to:
[0133] According to the first voltage value, determine an arrangement position of the first voltage range in the plurality of initial voltage ranges;
[0134] According to the arrangement position and a quantity of the plurality of initial voltage ranges, determine the second quantity.
[0135] In a possible implementation, the updating module 72 is specifically configured to:
[0136] For each of the K initial voltage ranges, perform the following operations:
[0137] The initial voltage range is updated according to the second voltage value, the initial voltage range, and a variation of the initial voltage range from an initial time to a current time, and an updated voltage range corresponding to the initial voltage range is determined; the second voltage value is a start value of the initial voltage range.
[0138] In a possible implementation, the updating module 72 is specifically configured to:
[0139] The sum of the second voltage value and the variation of the initial voltage range from the initial time to the current time is determined as a third voltage value.
[0140] The updated voltage range corresponding to the initial voltage range is determined according to the third voltage value and the initial voltage range; a start value of the updated voltage range corresponding to the initial voltage range is the third voltage value, and a range size of the updated voltage range corresponding to the initial voltage range is the same as a range size of the initial voltage range.
[0141] In a possible implementation, the voltage range determination apparatus 70 further includes a processing module, which is specifically configured to:
[0142] For any storage unit in the plurality of storage units, a target voltage value of the storage unit at the current time is determined.
[0143] The Nth bit data in the plurality of storage units is read according to the target voltage value and the K updated voltage ranges.
[0144] In a possible implementation, the processing module is specifically configured to:
[0145] For each storage unit in the plurality of storage units, the following operations are performed:
[0146] A size relationship between the start value of each of the K updated voltage ranges and the target voltage value is determined.
[0147] The Nth bit data in the storage unit is read according to the size relationship, a size relationship corresponding to the Nth bit data, and a correlation between the data.
[0148] The features of the embodiments of the voltage range determination apparatus 70 can be referred to the related descriptions of the embodiments of the voltage range determination method, which will not be repeated here.
[0149] Figure 8 The structural schematic diagram of an electronic device provided in the present application is shown in FIG. 8. Figure 8 As shown in FIG. 8, the electronic device 80 provided in the present embodiment includes at least one processor 801 and a memory 802. Optionally, the electronic device 80 further includes a communication component 803. The processor 801, the memory 802, and the communication component 803 are connected through a bus.
[0150] In a specific implementation process, the at least one processor 801 executes the computer-executable instructions stored in the memory 802, so that the at least one processor 801 executes the above-mentioned voltage range determination method embodiment.
[0151] The specific implementation process of the processor 801 can refer to the above-mentioned method embodiments, which have similar implementation principles and technical effects, and details are not described here.
[0152] In the above-mentioned embodiments, it should be understood that the processor can be a central processing unit (CPU), and can also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), etc. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the application can be directly embodied as hardware processor execution, or executed by a combination of hardware and software modules in the processor.
[0153] The memory can include a random access memory (RAM), and can also include a non-volatile memory (NVM), for example, at least one disk memory.
[0154] The bus can be an industry standard architecture (ISA) bus, a peripheral component (PCI) bus, or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, the bus in the drawings of the present application does not limit to only one bus or one type of bus.
[0155] The embodiments of the present application also provide a computer readable storage medium, and the computer readable storage medium stores a computer program, wherein the computer program is configured to execute the steps in any one of the above-mentioned voltage range determination method embodiments when running.
[0156] In an example embodiment, the computer readable storage medium described above can include, but is not limited to, a U disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.
[0157] Embodiments of the present application also provide a computer program product, which comprises a computer program, and the computer program, when executed by a processor, implements the steps in any of the embodiments of the method for determining a voltage range.
[0158] Embodiments of the present application also provide another computer program product, which comprises a non-volatile computer readable storage medium, and the non-volatile computer readable storage medium stores a computer program, and the computer program, when executed by a processor, implements the steps in any of the embodiments of the method for determining a voltage range.
[0159] The skilled in the art can further realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized in electronic hardware, computer software or a combination of both. In order to clearly illustrate the interchangeability of hardware and software, the components and steps of the examples have been described in the above description in general terms. Whether the functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. The skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0160] The above describes in detail a method for determining a voltage range and an electronic device provided by the present application. The principles and implementation modes of the present application are described by applying specific examples in this paper, and the above description of the examples is only used to help understand the method of the present application and its core idea. It should be pointed out that, for those skilled in the art, without departing from the principles of the present application, some improvements and modifications can be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
Claims
1. A method for determining a voltage range, characterized in that, The method includes: K initial voltage ranges are determined from multiple initial voltage ranges corresponding to the flash memory cell; the flash memory cell includes multiple storage cells, each of which stores M bits of data, and the K initial voltage ranges are initial voltage ranges associated with the Nth bit of data in the M bits of data, where K is a positive integer, M is a positive integer, and N is a positive integer less than or equal to M; Based on the voltage values of each of the plurality of storage cells at the current moment, the K initial voltage ranges are updated to obtain K updated voltage ranges corresponding to the K initial voltage ranges; the K updated voltage ranges are the basis for reading the Nth bit data of each storage cell in the plurality of storage cells at the current moment; The step of updating the K initial voltage ranges based on the voltage values of the plurality of storage cells at the current moment to obtain K updated voltage ranges corresponding to the K initial voltage ranges includes: Among the plurality of storage cells, a first number of storage cells whose current voltage value is greater than a first voltage value is determined; the first voltage value is the starting value of a first voltage range, and the first voltage range is one of the K initial voltage ranges; Based on the first quantity, the first voltage value, and the plurality of initial voltage ranges, determine the amount of change of each of the K initial voltage ranges from the initial time to the current time; Based on the change in each of the K initial voltage ranges from the initial time to the current time, the K initial voltage ranges are updated to obtain K updated voltage ranges corresponding to the K initial voltage ranges; The step of determining the change in each of the K initial voltage ranges from the initial time to the current time based on the first quantity, the first voltage value, and the plurality of initial voltage ranges includes: Based on the first voltage value and the plurality of initial voltage ranges, a second number of storage cells whose initial voltage value is greater than the first voltage value is determined among the plurality of storage cells; Based on the first quantity and the second quantity, determine the amount of change of each of the K initial voltage ranges from the initial time to the current time; Determining the change in each of the K initial voltage ranges from the initial time to the current time based on the first quantity and the second quantity includes: Determine the difference between the second quantity and the first quantity; For each of the K initial voltage ranges, the change in the initial voltage range from the initial time to the current time is determined based on the difference, the mapping relationship between the difference and the change in the initial voltage range, and the change in the initial voltage range.
2. The method according to claim 1, characterized in that, The step of determining a second number of memory cells whose initial voltage value is greater than the first voltage value among the plurality of memory cells, based on the first voltage value and the plurality of initial voltage ranges, includes: Based on the first voltage value, determine the arrangement position of the first voltage range among the plurality of initial voltage ranges; The second quantity is determined based on the arrangement position and the number of the plurality of initial voltage ranges.
3. The method according to claim 1, characterized in that, The step of updating the K initial voltage ranges based on the changes in each of the K initial voltage ranges from the initial time to the current time, to obtain K updated voltage ranges corresponding to the K initial voltage ranges, includes: For each of the K initial voltage ranges, perform the following operations: The initial voltage range is updated based on the second voltage value, the initial voltage range, and the change in the initial voltage range from the initial time to the current time, to determine the updated voltage range corresponding to the initial voltage range; the second voltage value is the starting value of the initial voltage range.
4. The method according to claim 3, characterized in that, The step of updating the initial voltage range based on the second voltage value, the initial voltage range, and the change in the initial voltage range from the initial time to the current time, and determining the updated voltage range corresponding to the initial voltage range, includes: The third voltage value is determined by summing the second voltage value and the change in the initial voltage range from the initial time to the current time. Based on the third voltage value and the initial voltage range, an updated voltage range corresponding to the initial voltage range is determined; the starting value of the updated voltage range corresponding to the initial voltage range is the third voltage value, and the size of the updated voltage range corresponding to the initial voltage range is the same as the size of the initial voltage range.
5. The method according to claim 1, characterized in that, The method further includes: For any one of the plurality of memory cells, determine the target voltage value of the memory cell at the current time; The Nth bit data is read from the plurality of storage units according to the target voltage value and the K update voltage ranges.
6. The method according to claim 5, characterized in that, The step of reading the Nth bit data from the plurality of storage units according to the target voltage value and the K updated voltage ranges includes: For each of the plurality of storage cells, the following operations are performed: Determine the magnitude relationship between the starting value of each of the K updated voltage ranges and the target voltage value; Based on the size relationship, the size relationship corresponding to the Nth bit data, and the correlation between the data, the Nth bit data in the storage unit is read.
7. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the method for determining the voltage range as described in any one of claims 1 to 6 when executing the computer program.
Citation Information
Patent Citations
Method and device for quickly searching threshold voltage, storage medium and SSD (Solid State Disk) equipment
CN115565587A
Memory and operation method thereof, memory system and computer readable storage medium
CN119832965A