A method, apparatus and control device for decoding

CN114667570BActive Publication Date: 2026-10-23HUAWEI TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201980102172.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-11-29
Publication Date
2026-10-23
Estimated Expiration
2039-11-29

AI Technical Summary

Technical Problem

这种方法虽然可行,但遍历的过程耗时较长

Benefits of technology

[0098]本申请实施例第六方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面或第一方面任意一种可能的实现方式所述的译码的方法。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114667570B_ABST
    Figure CN114667570B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a decoding method, device and control equipment, which are used for reading and decoding data from a solid state disk. The method comprises the following steps: first, a controller acquires error information corresponding to N groups of first data respectively; then, the controller determines a decoding voltage range of a second page according to the error information corresponding to the N groups of first data respectively and N groups of first read voltages; finally, the controller reads second data from the second page according to the decoding voltage range and decodes the second data. Since the known second read voltages can be screened through the decoding voltage range, the number of second read voltages that need to be decoded is reduced, thereby the time for determining the optimal read voltage is shortened.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of solid-state drive control technology, and in particular to a decoding method, apparatus, and control device. Background Technology

[0002] A solid-state drive (SSD), also known as a solid-state hard drive, is a hard drive made using an array of solid-state electronic storage chips. SSDs use various storage media, one of which is flash memory. The optimal read voltage of flash memory can shift due to factors such as data retention, read disturbances, program / erase cycles (PE), and temperature. Therefore, reading data from flash memory using the original read voltage may result in read errors. When a read error occurs, the read voltage needs to be adjusted before rereading the data from the flash memory.

[0003] Typically, flash memory manufacturers provide voltages for rereading data. However, there are often multiple voltages available, and it's impossible to determine the optimal voltage before decoding. Therefore, currently, when rereading data from flash memory, all voltages provided by the manufacturer are iterated through, data is read and decoded, and the iteration ends once decoding is successful. While this method is feasible, the iteration process is time-consuming. Summary of the Invention

[0004] This application provides a decoding method, apparatus, and control device that can reduce the number of second read voltages that need to be decoded, thereby shortening the time for determining the optimal read voltage.

[0005] The first aspect of this application provides a decoding method applied to a solid-state drive controller, comprising:

[0006] The controller obtains the error information corresponding to each of the N sets of first data. The N sets of first data are the data corresponding to the first page under the N sets of first read voltages. The first page belongs to a data block in the solid-state drive, where N is a positive integer.

[0007] The controller determines the decoding voltage range of the second page based on the error information corresponding to each of the N sets of first data and the N sets of first read voltages. The second page belongs to the data block. The second page can be the same page as the first page, or the two pages can be different pages.

[0008] The controller reads the second data from the second page according to the decoding voltage range and decodes the second data.

[0009] In this embodiment, the decoding voltage range is determined by N sets of first read voltages and the error information of the first data corresponding to the N sets of first read voltages. Then, the known second read voltages are filtered by the decoding voltage range, which reduces the number of second read voltages that need to be decoded, thereby shortening the time to determine the optimal read voltage.

[0010] Based on the first aspect, this application also provides a first implementation of the first aspect, in which N is an integer greater than 1, and the controller obtains error information corresponding to each of the N sets of first data, including:

[0011] The controller acquires the first data of group M corresponding to the first read voltage of group M on the first page;

[0012] The controller determines the error information corresponding to the first data in each of the M groups;

[0013] The controller determines the error information corresponding to the first data of each of the M groups based on the error information and the first reading voltage of the M groups. The first data of the NM groups is the data corresponding to the first page under the first reading voltage of the NM groups.

[0014] There are multiple methods to obtain the error information corresponding to each of the N groups of first data. This implementation provides a feasible solution, namely, to determine the error information corresponding to each of the NM groups of first data based on the error information corresponding to each of the M groups of first data.

[0015] Based on the first implementation of the first aspect, this application also provides a second implementation of the first aspect, in which the controller determines the error information corresponding to each of the NM groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages, including:

[0016] The controller determines the first reading voltage of group NM based on the error information corresponding to the first data of group M and the first reading voltage of group M.

[0017] The controller reads the first data of group NM from the first page based on the first read voltage of group NM, that is, a first read voltage corresponds to a first data.

[0018] The controller determines the error information corresponding to the first data in each of the NM groups.

[0019] There are multiple methods to determine the error information corresponding to each of the first data in the NM group. This implementation provides a feasible solution, namely, determining the first reading voltage of the NM group based on the error information corresponding to each of the first data in the M group, making the first reading voltage of the NM group closer to the optimal reading voltage, and then determining the error information corresponding to each of the first data in the NM group based on the first reading voltage of the NM group.

[0020] Based on the first implementation of the first aspect, this application also provides a third implementation of the first aspect. In this implementation, the controller determines the error information corresponding to each of the NM groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages, including:

[0021] The controller determines the first reading voltage of group K based on the error information corresponding to the first data of group M and the first reading voltage of group M, where K is less than NM;

[0022] The controller reads the first data of group K from the first page based on the first read voltage of group K;

[0023] The controller determines the error information corresponding to the first data in each of the K groups;

[0024] The controller determines the first reading voltage of group L based on the error information corresponding to each of the first data in group K, the error information corresponding to each of the first data in group M, the first reading voltage of group K, and the first reading voltage of group M, where L is less than or equal to NMK;

[0025] The controller reads the first data of group L from the first page based on the first read voltage of group L;

[0026] The controller determines the error information corresponding to the first data in group L.

[0027] There are multiple methods to determine the error information corresponding to each of the first data in groups N and M. This implementation provides another feasible solution, namely, firstly, determine the first reading voltage of group K based on the error information corresponding to each of the first data in groups M, so that the first reading voltage of group K is closer to the optimal reading voltage; then, determine the error information corresponding to each of the first data in groups K; then, determine the first reading voltage of group L based on the error information corresponding to each of the first data in groups K and the error information corresponding to each of the first data in groups M, so that the first reading voltage of group L is further close to the optimal reading voltage; finally, determine the error information corresponding to each of the first data in group L based on the first reading voltage of group L.

[0028] Based on the first implementation of the first aspect, or the second implementation of the first aspect, or the third implementation of the first aspect, this application also provides a fourth implementation of the first aspect, in which the controller acquires the M groups of first data corresponding to the first page under the M groups of first read voltages, including:

[0029] The controller reads the first data of group M from the first page based on the first read voltage of group M.

[0030] There are multiple methods to obtain the first data of group M. In this embodiment, the first data of group M is read directly based on the first reading voltage of group M.

[0031] Based on the first implementation of the first aspect, or the second implementation of the first aspect, or the third implementation of the first aspect, this application also provides a fifth implementation of the first aspect, in which each group of first reading voltages in the M groups includes multiple paired reading voltages, that is, multiple paired reading voltages are required to read the data in the first page;

[0032] The controller also needs to read the third data in at least one paired page according to the preset third read voltage, wherein the paired page belongs to the same data block as the first page;

[0033] The controller acquires the first data of group M corresponding to the first read voltage of group M on the first page, including:

[0034] The controller first reads the first data of group H from the first page based on the first reading voltage of group H, where H is less than M;

[0035] The controller then determines the first reading voltage of group MH based on the first reading voltage of group H. Each first reading voltage in group MH contains multiple paired reading voltages, and each paired reading voltage in group MH is contained in multiple paired reading voltages in group M.

[0036] The controller finally determines the first data of MH group on the first page under the first reading voltage of MH group based on the third data and the first data of H group.

[0037] In this way, H data readings were performed based on the first reading voltage of group H, and the first reading voltage of group M can be obtained in the end. This reduces the number of times the first data is read, and thus can further shorten the time to determine the optimal reading voltage.

[0038] Based on the first implementation method of the first aspect, or the second implementation method of the first aspect, or the third implementation method of the first aspect, or the fourth implementation method of the first aspect, or the fifth implementation method of the first aspect, this application also provides a sixth implementation method of the first aspect, in which the controller determines the error information corresponding to each of the M groups of first data, including:

[0039] The controller first decodes the first data in group M, and then determines the error information corresponding to each of the first data in group M based on the decoding result.

[0040] This implementation provides a feasible scheme for determining the error information corresponding to each of the M groups of first data. In this scheme, the error information corresponding to each group of first data is determined based on the decoding result of the M groups of first data.

[0041] Based on the first implementation of the first aspect, or the second implementation of the first aspect, or the third implementation of the first aspect, or the fourth implementation of the first aspect, or the fifth implementation of the first aspect, this application also provides a seventh implementation of the first aspect, in which the second page and the first page are different pages.

[0042] The controller determines the error information corresponding to each of the first data in the M groups by: the controller determining the error information corresponding to each of the first data in the M groups based on the information preset in the first page.

[0043] This implementation provides another feasible scheme for determining the error information corresponding to each of the M groups of first data. In this scheme, since the information in the first page is known to the controller, the error information corresponding to each group can be determined based solely on the M groups of first data. There is no need to decode the M groups of first data, thus shortening the time for determining the optimal reading voltage.

[0044] Based on the first aspect, this application also provides an eighth implementation of the first aspect, in which the controller acquires error information corresponding to each of the N sets of first data, including:

[0045] The controller first reads N sets of first data from the first page based on the N sets of first read voltages, and then determines the error information corresponding to each of the N sets of first data.

[0046] There are multiple methods to obtain the error information corresponding to each of the N sets of first data. This implementation provides another feasible solution, namely, directly reading the N sets of first data based on the N sets of first reading voltages, and then determining the error information corresponding to each of the N sets of first data.

[0047] Based on the first aspect, or the first implementation of the first aspect, or the second implementation of the first aspect, or the third implementation of the first aspect, or the fourth implementation of the first aspect, or the fifth implementation of the first aspect, or the sixth implementation of the first aspect, or the seventh implementation of the first aspect, or the eighth implementation of the first aspect, this application also provides a ninth implementation of the first aspect, in which the controller reads second data from the second page according to the decoding voltage range and decodes the second data including:

[0048] The controller reads the second data from the second page according to the decoding voltage range and the preset voltage set, and decodes the second data. The voltage set contains multiple sets of second read voltages.

[0049] In this embodiment, the voltage set contains multiple sets of second read voltages. By filtering the multiple sets of second read voltages in the voltage set through the decoding voltage range, the number of second read voltages that need to be decoded can be reduced, thereby shortening the time to determine the optimal read voltage.

[0050] Based on the first aspect, or the first implementation of the first aspect, or the second implementation of the first aspect, or the third implementation of the first aspect, or the fourth implementation of the first aspect, or the fifth implementation of the first aspect, or the sixth implementation of the first aspect, or the seventh implementation of the first aspect, or the eighth implementation of the first aspect, or the ninth implementation of the first aspect, this application also provides a tenth implementation of the first aspect, in which the decoding method further includes:

[0051] The controller determines the read recovery time based on the decoding voltage range;

[0052] Once the read recovery time is determined, the controller reads the second data from the second page according to the decoding voltage range and decodes the second data, including:

[0053] The controller reads the second data from the second page based on the read recovery time and the decoding voltage range, and then decodes the second data.

[0054] In this implementation, the time of the entire decoding process is controlled by the read recovery time, thereby preventing the time to determine the optimal read voltage from being too long.

[0055] A second aspect of this application provides a decoding apparatus for a solid-state drive controller, comprising:

[0056] The acquisition unit is used to acquire the error information corresponding to each of the N sets of first data. The N sets of first data are the data corresponding to the first page under the N sets of first read voltages. The first page belongs to a data block in the solid-state drive, where N is a positive integer.

[0057] The determining unit is used to determine the decoding voltage range of the second page based on the error information corresponding to each of the N groups of first data and the N groups of first read voltages. The second page belongs to the data block.

[0058] The decoding unit is used to read the second data from the second page according to the decoding voltage range and decode the second data.

[0059] Based on the second aspect, this application also provides a first implementation of the second aspect, wherein the acquisition unit is used for:

[0060] Retrieve the first data of group M corresponding to the first reading voltage of group M on the first page;

[0061] Determine the error message corresponding to the first data in group M;

[0062] Based on the error information corresponding to the first data in group M and the first reading voltage of group M, determine the error information corresponding to the first data in group NM. The first data in group NM is the data corresponding to the first page under the first reading voltage of group NM.

[0063] Based on the first implementation of the second aspect, this application also provides a second implementation of the second aspect, wherein the acquisition unit is used for:

[0064] Determine the first reading voltage of group NM based on the error information corresponding to the first data of group M and the first reading voltage of group M.

[0065] Read the first data of group NM from the first page based on the first read voltage of group NM;

[0066] Determine the error message corresponding to the first data in group NM.

[0067] Based on the first implementation of the second aspect, this application also provides a third implementation of the second aspect, wherein the acquisition unit is used for:

[0068] The first reading voltage of group K is determined based on the error information corresponding to the first data of group M and the first reading voltage of group M, where K is less than NM;

[0069] Read the first data of group K from the first page based on the first read voltage of group K;

[0070] Determine the error message corresponding to the first data in each of the K groups;

[0071] The first reading voltage of group L is determined based on the error information corresponding to the first data of group K, the error information corresponding to the first data of group M, the first reading voltage of group K, and the first reading voltage of group M, where L is less than or equal to NMK;

[0072] Read the first data of group L from the first page based on the first reading voltage of group L;

[0073] Determine the error message corresponding to the first data in group L.

[0074] Based on the first implementation of the second aspect, or the second implementation of the second aspect, or the third implementation of the second aspect, this application also provides a fourth implementation of the second aspect, wherein the acquisition unit is configured to: read M groups of first data from the first page according to the M groups of first read voltages.

[0075] Based on the first implementation of the second aspect, or the second implementation of the second aspect, or the third implementation of the second aspect, this application also provides a fifth implementation of the second aspect, wherein each group of first read voltages in the M groups includes multiple paired read voltages.

[0076] Acquisition unit: It is also used to read the third data in at least one paired page according to a preset third read voltage, wherein the paired page and the first page belong to the same data block;

[0077] The acquisition unit is used for:

[0078] The first data of group H is read from the first page based on the first reading voltage of group H, where H is less than M;

[0079] The first reading voltage of group MH is determined based on the first reading voltage of group H. Each first reading voltage in group MH contains multiple paired reading voltages. Each paired reading voltage in group MH is contained in multiple paired reading voltages in group M.

[0080] Based on the third data and the first data of group H, determine the first data of group MH at the first read voltage of group MH on the first page.

[0081] Based on the first, second, third, fourth, or fifth implementation of the second aspect, this application also provides a sixth implementation of the second aspect, wherein the acquisition unit is used for:

[0082] Decode the first data in group M;

[0083] The error information corresponding to the first data in group M is determined based on the decoding results.

[0084] Based on the first implementation of the second aspect, or the second implementation of the second aspect, or the third implementation of the second aspect, or the fourth implementation of the second aspect, or the fifth implementation of the second aspect, this application also provides a seventh implementation of the second aspect, wherein the second page and the first page are different pages;

[0085] The acquisition unit is used to determine the error information corresponding to each of the first data in the M groups based on the information in the preset first page.

[0086] Based on the second aspect, this application also provides an eighth implementation of the second aspect, wherein the acquisition unit is used for:

[0087] Read N sets of first data from the first page based on N sets of first read voltages;

[0088] Determine the error message corresponding to each of the N groups of first data.

[0089] Based on the second aspect, or the first implementation of the second aspect, or the second implementation of the second aspect, or the third implementation of the second aspect, or the fourth implementation of the second aspect, or the fifth implementation of the second aspect, or the sixth implementation of the second aspect, or the seventh implementation of the second aspect, or the eighth implementation of the second aspect, this application also provides a ninth implementation of the second aspect, in which the decoding unit is used to read second data from the second page according to the decoding voltage range and a preset voltage set, and to decode the second data, wherein the voltage set includes multiple sets of second read voltages.

[0090] Based on the second aspect, or the first implementation of the second aspect, or the second implementation of the second aspect, or the third implementation of the second aspect, or the fourth implementation of the second aspect, or the fifth implementation of the second aspect, or the sixth implementation of the second aspect, or the seventh implementation of the second aspect, or the eighth implementation of the second aspect, or the ninth implementation of the second aspect, this application embodiment also provides a tenth implementation of the second aspect, in which the determining unit is further configured to determine the read recovery time according to the decoding voltage range;

[0091] The decoding unit is used to read the second data from the second page according to the read recovery time and the decoding voltage range, and to decode the second data.

[0092] A third aspect of this application provides a control device, comprising: at least one processor and a memory, the memory storing computer-executable instructions executable on the processor, wherein when the computer-executable instructions are executed by the processor, the control device performs a decoding method as described in the first aspect or any possible implementation thereof.

[0093] The fourth aspect of this application provides a chip or chip system including at least one processor and a communication interface, the communication interface and at least one processor being interconnected via a line, the at least one processor being used to run a computer program or instructions to perform the decoding method as described in the first aspect or any possible implementation thereof.

[0094] The communication interface in the chip can be an input / output interface, pins, or circuits.

[0095] Based on the fourth aspect, this application also provides a first implementation of the fourth aspect. The chip or chip system described above in this application further includes at least one memory, which stores instructions. The memory can be an internal storage unit of the chip, such as a register or cache, or it can be a storage unit of the chip itself (e.g., read-only memory, random access memory, etc.).

[0096] A fifth aspect of this application provides a computer storage medium for storing computer software instructions for use with the control device described above, including instructions for executing a program designed for the control device.

[0097] The control device may be a decoding apparatus as described in the second aspect above.

[0098] A sixth aspect of this application provides a computer program product including computer software instructions that can be loaded by a processor to implement the decoding method described in the first aspect or any possible implementation thereof.

[0099] In the technical solution provided by this application embodiment, the controller first obtains the error information corresponding to each of the N sets of first data, where the N sets of first data are the data corresponding to the first page under the N sets of first read voltages; then, the controller determines the decoding voltage range of the second page based on the error information corresponding to each of the N sets of first data and the N sets of first read voltages; finally, the controller reads the second data from the second page based on the decoding voltage range and decodes the second data; it can be seen that this application embodiment first determines the decoding voltage range through the N sets of first read voltages and the error information of the first data corresponding to the N sets of first read voltages, and then filters the known second read voltages through the decoding voltage range, reducing the number of second read voltages that need to be decoded, thereby shortening the time for determining the optimal read voltage. Attached Figure Description

[0100] Figure 1 This is a schematic diagram of the storage system architecture in an embodiment of this application;

[0101] Figure 2 This is a schematic diagram of the voltage distribution when data writing is completed in an embodiment of this application;

[0102] Figure 3 This is a schematic diagram of the voltage distribution after a period of time following the completion of data writing in this embodiment of the application;

[0103] Figure 4 This is a schematic diagram illustrating the process of reading data from a flash memory array according to an embodiment of this application;

[0104] Figure 5This is a schematic diagram of one embodiment of the decoding method in this application;

[0105] Figure 6 This is a schematic diagram of an embodiment of obtaining error information corresponding to each of N sets of first data in this application;

[0106] Figure 7 A schematic diagram of an embodiment for determining the error information corresponding to each of the first data in the NM group in this application;

[0107] Figure 8 A schematic diagram of another embodiment for determining the error information corresponding to each of the first data in the NM group in this application;

[0108] Figure 9 This is a schematic diagram of an embodiment for obtaining the first set of M groups of data in this application.

[0109] Figure 10 This is a schematic diagram of an embodiment of the decoding apparatus in this application;

[0110] Figure 11 This is a schematic diagram of an embodiment of the control device in this application. Detailed Implementation

[0111] The technical solutions in the embodiments of this application will be described in detail below with reference to the accompanying drawings.

[0112] This application's embodiments can be applied to storage systems containing solid-state drives (SSDs). Please refer to [link / reference]. Figure 1 This application illustrates the architecture of a storage system according to an embodiment. The storage system includes a host, an SSD controller, and a flash array. The host can connect to the front end of the SSD controller via various interfaces such as NVMe, SAS, and PCIe, while the back end of the SSD controller can connect to the flash array via an NVMe interface. The host can perform operations such as reading or erasing data in the flash array through the SSD controller, and can also write data to the flash array through the SSD controller.

[0113] After receiving a data output request from the host, the SSD controller reads data from the flash memory array. To ensure accurate data reading, an optimal read voltage is required. However, this optimal read voltage can deviate due to data storage time, read interference, programming / erase cycles (and other factors such as temperature). For example, please refer to... Figure 2 and Figure 3 ,in Figure 2 This is a schematic diagram of the voltage distribution when data writing is completed in an embodiment of this application. Figure 3 This is a schematic diagram of the voltage distribution some time after the data writing is completed in an embodiment of this application. (Comparison) Figure 2 and Figure 3 It can be seen that the voltage distribution of some data has shifted. Taking data A, B, and C as examples, assuming that the voltage distribution of data A has not shifted, that is, the optimal reading voltage of data A has not changed, it can be seen that... Figure 3 and Figure 2 In comparison, the smaller gap between the voltage distribution plots of data A and data B indicates a smaller voltage difference between the optimal reading voltage of data B and data A, meaning the optimal reading voltage of data B is shifting towards the direction of the optimal reading voltage of data A; similarly, Figure 3 and Figure 2 In contrast, the voltage distribution map of data B overlaps with the voltage distribution map of voltage C, so the optimal reading voltage of data C also shifts towards the direction of the optimal reading voltage of data A.

[0114] When the optimal read voltage of the flash memory array deviates, continuing to read data according to the preset read voltage will inevitably lead to data read errors. Therefore, it is necessary to adjust the read voltage and reread the data from the flash memory array. Figure 4 The diagram illustrates the process of reading data from a flash memory array according to an embodiment of this application. When the SSD controller receives a data output request, it first performs an initial data read according to a set read voltage. If the data read fails, a read recovery process begins, continuously adjusting the read voltage and attempting to read the data again. During the read recovery process, data is typically read and decoded sequentially based on the read voltages provided by the flash memory manufacturer until decoding is successful. The successfully decoded read voltage is the optimal read voltage. Since the number of read voltages in the voltage set is large, this embodiment provides a decoding method to save time in determining the optimal read voltage. This method filters the read voltages in the voltage set to reduce the number of read voltages used for decoding.

[0115] The decoding method is described in detail below. Please refer to [link / reference]. Figure 5 The diagram below illustrates one embodiment of the decoding method described in this application. Figure 5 As shown, this application provides an embodiment of a decoding method applied to a solid-state drive controller, comprising:

[0116] 101. The controller obtains the error information corresponding to each of the N sets of first data.

[0117] It is understandable that reading data from the same page using different read voltages will yield different results. The first data in N sets refers to the data of the first page under the first read voltage in N sets. The first page belongs to a data block in the solid-state drive, where N is a positive integer. A solid-state drive can have multiple data blocks, and a data block can contain multiple pages.

[0118] Different types of flash memory have different numbers of read voltages in a set. A set of first read voltages can contain one read voltage, for example, the first read voltage can be represented as 5V or 5.2V. A set of first read voltages can also contain multiple paired read voltages, for example, a set of first read voltages can be represented as (5V, 5.2V) or (4.8V, 5V, 5.2V).

[0119] The embodiments of this application do not limit the content of the error information. For example, the error information may include the range of erroneous data in the first data, and the error information may also include the number of bits of erroneous data in the first data.

[0120] There are multiple methods to obtain the error information corresponding to each of the N sets of first data, and this application embodiment does not limit the methods.

[0121] 102. The controller determines the decoding voltage range of the second page based on the error information corresponding to each of the N sets of first data and the N sets of first read voltages.

[0122] In this context, the second page belongs to the same data block as the first page. The second page can be the same page as the first page, meaning the controller can determine the decoding voltage range of the first page based on the error information corresponding to each of the N sets of first data. Since the read voltages of all pages in the same data block will exhibit a certain pattern of distribution, such as a linear distribution, a piecewise linear distribution, or a gradient distribution, the second page and the first page can also be different pages. The controller can also determine the decoding voltage range of the first page based on the error information corresponding to each of the N sets of first data, and then determine the decoding voltage range of other pages in the same data block based on the distribution pattern of all pages in the same data block.

[0123] It should be noted that there are multiple methods for determining the decoding voltage range of the second page, and this application embodiment does not limit this method. Taking the case where the first page and the second page are the same page as an example, assuming that the error information is the number of bits of the erroneous data in the first data, there are 5 sets of first read voltages, which are 4.8V, 4.9V, 5.0V, 5.1V and 5.2V respectively. The number of bits of the erroneous data in the first data corresponding to each set is 300 bits, 260 bits, 180 bits, 240 bits and 350 bits respectively. It can be seen that the number of bits of the erroneous data in the first data corresponding to 5V is the fewest. Starting from 5V, as the first read voltage increases or decreases, the number of bits of the erroneous data in the first data increases. Therefore, it can be considered that the optimal read voltage of the first page is close to 5V, and the decoding voltage range can be determined to be 4.9V to 5.1V.

[0124] The above is just one example to illustrate the process of determining the decoding voltage range of the second page. The process of determining the decoding voltage range of the second page will vary depending on the specific circumstances of the error information corresponding to each group of first data. This application will not describe it in detail here.

[0125] Additionally, it should be noted that the decoding voltage range can be an effective voltage range, which can be understood as having a high probability of containing the optimal read voltage; the decoding voltage range can also be an invalid voltage range, which can be understood as having a low probability of containing the optimal read voltage.

[0126] 103. The controller reads the second data from the second page according to the decoding voltage range and decodes the second data.

[0127] There are various methods for the controller to read the second data based on the decoding voltage range, and this application embodiment does not limit this method. For example, the known second read voltage can be filtered according to the decoding voltage range, and then the second data can be read according to the filtered second read voltage. Alternatively, the value can be taken within the decoding voltage range to obtain the second read voltage for decoding. This application embodiment determines the decoding voltage range through N sets of first read voltages and the error information of the first data corresponding to the N sets of first read voltages. Then, the known second read voltages can be filtered through the decoding voltage range, reducing the number of second read voltages that need to be decoded, thereby shortening the time for determining the optimal read voltage.

[0128] As can be seen from the above embodiments, there are multiple ways to obtain the error information corresponding to each of the N sets of first data. The following is a detailed introduction to obtaining the error information corresponding to each of the N sets of first data.

[0129] Please see Figure 6 This application provides an embodiment of obtaining error information corresponding to each of N sets of first data. In this embodiment, N is an integer greater than 1, and the controller obtains the error information corresponding to each of the N sets of first data in the following ways:

[0130] 201, The controller acquires the first data of group M corresponding to the first reading voltage of group M on the first page.

[0131] There are multiple methods to obtain the first data of group M, and this application embodiment does not limit the methods.

[0132] 202, The controller determines the error information corresponding to the first data of each group M.

[0133] There are various methods for determining the error information corresponding to each of the first data in group M, and this application embodiment does not limit this method.

[0134] 203. The controller determines the error information corresponding to the first data of each of the M groups based on the error information and the first reading voltage of the M groups. The first data of the NM groups is the data corresponding to the first page under the first reading voltage of the NM groups.

[0135] In this embodiment, the objective is to obtain the error information corresponding to each of the N groups of first data. The purpose of obtaining the N error information is to more accurately determine the decoding voltage range of the second page, so that the decoding voltage range is as small as possible while including the optimal read voltage, thereby reducing the number of second read voltages that need to be read and decoded. Therefore, by combining the error information corresponding to each of the M groups of first data and the M groups of first read voltages, this embodiment can determine the NM groups of first read voltages and the error information corresponding to each of the NM groups of first data that are closer to the optimal read voltage, thereby ensuring that the decoding voltage range is small and accurate.

[0136] There are multiple methods for determining the first reading voltage of group NM and the corresponding error information of the first data of group NM based on the error information and the first reading voltage of group M, and this application embodiment does not limit this method. The process is described in detail below.

[0137] Please see Figure 7 This application provides an embodiment diagram illustrating the error information corresponding to each of the first data in the NM group. (See attached diagram.) Figure 7 As shown, in this embodiment, the controller determines the error information corresponding to each of the M groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages.

[0138] 301. The controller determines the first reading voltage of group NM based on the error information corresponding to the first data of group M and the first reading voltage of group M.

[0139] It should be noted that there are multiple methods for determining the first reading voltage of the NM group, and this application embodiment does not limit this method. Specifically, based on the error information corresponding to each of the first data of the M groups and the first reading voltage of the M groups, the variation law of the error information with the first reading voltage can be determined. Based on this variation law, the first reading voltage of the NM group that is closer to the optimal reading voltage can be determined.

[0140] For example, assuming the error message represents the number of bits of the erroneous data in the first data set, with N being 8 and M being 5, the first read voltages in group M include 4.8V, 4.9V, 5.0V, 5.1V, and 5.2V. The corresponding number of bits of the erroneous data in the first data set are 300, 260, 180, 240, and 350, respectively. It can be seen that the number of bits of the erroneous data in the first data set corresponding to 5V is the fewest. Starting from 5V, the number of bits of the erroneous data in the first data set increases with the increase or decrease of the first read voltage. Therefore, it can be considered that the optimal read voltage for the first page is close to 5V, and the optimal read voltage is more likely to exist between 4.9V and 5.1V. Thus, the first read voltages for group NM can be determined between 4.9V and 5.1V. For example, the first read voltages for group NM can be determined as 4.95V, 5.05V, and 5.02V.

[0141] In the example above, a set of first read voltages contains one read voltage, while a set of first read voltages can contain multiple read voltages. When multiple read voltages are included, multiple sets of first read voltages with only one read voltage changing can be compared to determine the pattern of error information changing with the first read voltage. Based on this pattern, the NM set of first read voltages that is closer to the optimal read voltage can be determined. The process of determining the NM set of first read voltages is described below using an example of a set of read voltages containing two read voltages.

[0142] In this example, we still assume that the error message represents the number of bits of the erroneous data in the first data set, with N being 8 and M being 5. The first read voltages for the M groups are (4.8V, 3V), (4.9V, 3V), (5.0V, 3V), (5.0V, 3.1V), and (4.9V, 3.1V), respectively. The corresponding number of bits of the erroneous data in the first data set are 300, 260, 180, 240, and 350 bits, respectively. It can be seen that compared to the first three groups of first read voltages, one pair of read voltages is always 3V, while the other pair has a different voltage. Furthermore, as the voltage of the other pair increases, the number of bits of the erroneous data in the corresponding first data set decreases. Therefore, if (x, y) represents the first read voltage of the NM groups... For voltage, x can take values ​​in the range above 4.9V. For example, (4.95V, 3V) or (5.05V, 3V) can be used as one of the first read voltages in the NM group. Comparing (4.9V, 3V) with (4.9V, 3.1V) and (5.0V, 3V) with (5.0V, 3V), it can be seen that when a paired read voltage changes from 3V to 3.1V, the number of bits of erroneous data in the corresponding first data increases. Therefore, if (x, y) represents the first read voltage of the NM group, y can take values ​​in the range below 3.1V. For example, (4.9V, 3.05V) or (5.0V, 3.05V) can be used as one of the first read voltages in the NM group.

[0143] 302, The controller reads the first data of group NM from the first page based on the first read voltage of group NM.

[0144] Reading the first data from the first page based on the first reading voltage is a relatively mature technology, and the embodiments in this application will not be described in detail here.

[0145] 303, The controller determines the error information corresponding to the first data of each NM group.

[0146] Similar to determining the error information corresponding to each of the first data in group M, the controller can determine multiple error information corresponding to each of the first data in groups NM, and this application embodiment does not limit this.

[0147] In this embodiment, the first reading voltage of NM groups is determined at once based on the error information corresponding to each of the M groups of first data and the first reading voltage of the M groups, resulting in a smaller and more accurate range of the final determined decoding voltage. Alternatively, based on the error information corresponding to each of the M groups of first data and the first reading voltage of the M groups, one set of first reading voltages and the error information corresponding to one set of first data can be determined firstly. Then, the error information corresponding to each of the M groups of first data is combined with the error information corresponding to a newly determined set of first data to determine another set of first reading voltages and the error information corresponding to another set of first data, and so on, until the error information corresponding to each of the NM groups of first data is determined. This process is described in detail below.

[0148] Please see Figure 8 This application provides another embodiment of the method for determining the error information corresponding to each of the first data in the NM group. (See diagram below.) Figure 8 As shown, in this embodiment, the controller determines the error information corresponding to each of the M groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages.

[0149] 401. The controller determines the first reading voltage of group K based on the error information corresponding to the first data of group M and the first reading voltage of group M, where K is less than NM.

[0150] It should be noted that the process of determining the first reading voltage of group K in operation 401 is the same as the process of determining the first reading voltage of group NM in operation 301. For details, please refer to the relevant instructions on determining the first reading voltage of group NM in operation 301.

[0151] 402, The controller reads the first data of group K from the first page based on the first read voltage of group K.

[0152] It should be noted that the process of reading the first data of group K in operation 402 is the same as the process of reading the first data of group NM in operation 302. For details, please refer to the relevant instructions on determining the first data of group NM in operation 302.

[0153] 403, the controller determines the error information corresponding to the first data of group K.

[0154] It should be noted that the process of determining the error information corresponding to each of the first data in group K in operation 403 is the same as the process of determining the error information corresponding to each of the first data in group NM in operation 303. For details, please refer to the relevant explanations on determining the error information corresponding to each of the first data in group NM in operation 303.

[0155] 404. The controller determines the first reading voltage of group L based on the error information corresponding to the first data of group K, the error information corresponding to the first data of group M, the first reading voltage of group K, and the first reading voltage of group M, where L is less than or equal to NMK.

[0156] In this embodiment, the error information corresponding to each of the K groups of first data is combined with the error information corresponding to each of the M groups of first data to determine the first reading voltage of group L. Since the determination of the first reading voltage of group L references the error information corresponding to each of the K groups of first data, the first reading voltage of group L may be closer to the optimal reading voltage than the first reading voltage of group K. The process of determining the first reading voltage of group L is the same as the process of determining the first reading voltage of group K in operation 401, and can be understood by referring to the relevant description of operation 401.

[0157] 405, The controller reads the first data of group L from the first page based on the first read voltage of group L.

[0158] The process of reading the first data of group L is the same as the process of reading the first data of group K in operation 402. For details, please refer to the relevant instructions of operation 402.

[0159] 406, The controller determines the error information corresponding to the first data of group L.

[0160] The process of determining the error information corresponding to the first data in group L is the same as the process of determining the error information corresponding to the first data in group K in operation 403. For details, please refer to the relevant instructions in operation 403.

[0161] When L equals NMK, operation 406 has completed the determination of the error information corresponding to each of the N groups of first data. When L is less than NMK, after operation 406, the error information corresponding to each of the L groups of first data, the K groups of first data, and the M groups of first data can be combined to determine the T groups of first read voltages, where T is a positive integer less than or equal to NMKL. Then, the error information corresponding to each of the T groups of first data is determined based on the T groups of first read voltages. Since the determination of the T groups of first read voltages refers to the error information corresponding to each of the L groups of first data, the T groups of first read voltages may be closer to the optimal read voltages than the L groups of first read voltages, resulting in a smaller and more accurate range of the final determined decoding voltage.

[0162] Additionally, it should be noted that in order to ensure that the N groups of first read voltages are closer to the optimal read voltage, K, L, and T can all be set to 1. That is, only one group of first read voltages is determined each time. Finally, the Nth group of first data will be determined based on the error information corresponding to each of the N-1 groups of first data, so that the final determined decoding voltage range is smaller and more accurate.

[0163] As can be seen from the foregoing embodiments, there are various methods for obtaining the first data of the M groups. In another embodiment of the decoding method provided in this application, the controller obtains the first data of the M groups corresponding to the first page under the first read voltage of the M groups, including:

[0164] The controller reads the first data of group M from the first page based on the first read voltage of group M.

[0165] It is understandable that the controller directly sends the first reading voltage of group M, and then reads the first data of group M based on the first reading voltage of group M.

[0166] In addition, the controller can issue the first reading voltage of group H, then read the first data of group H based on the first reading voltage of group H, then determine the first reading voltage and the first data of group MH, and finally determine the error information corresponding to the first data of group MH. The process is described in detail below.

[0167] This application provides another embodiment of the decoding method, wherein each of the M groups of first read voltages includes multiple paired read voltages. For example, the M groups of first read voltages can be represented as (a, b), (c, d), or (q, w, e).

[0168] In addition to the operations described in the foregoing embodiments, the decoding method also includes: the controller reading third data from at least one paired page according to a preset third read voltage.

[0169] In this context, a paired page refers to another page that belongs to the same data block as the first page.

[0170] In this embodiment, please refer to Figure 9 This application illustrates an embodiment of obtaining M sets of first data; as shown in the diagram. Figure 9 As shown, the controller acquires the first data of group M corresponding to the first read voltage of group M on the first page, including:

[0171] 501, the controller reads the first data of group H from the first page based on the first read voltage of group H, where H is less than M.

[0172] The process of reading the first data of group H is the same as the process of reading the first data of group K in operation 402. For details, please refer to the relevant instructions in operation 402.

[0173] 502, the controller determines the first reading voltage of group MH based on the first reading voltage of group H.

[0174] In this context, each first read voltage in group MH contains multiple paired read voltages, and each paired read voltage in group MH is contained within multiple paired read voltages in group M. Therefore, the number of paired read voltages contained in the first read voltage of group H is related to the number of paired read voltages contained in the first read voltage of group M.

[0175] Specifically, assuming that the M groups of first reading voltages include two groups of first reading voltages (a, b) and (c, d), then the other two groups of first reading voltages (a, c) and (b, d) can be determined based on these M groups of first reading voltages; if the M groups of first reading voltages include two groups of first reading voltages (a, a) and (c, c), then only one group of first reading voltages (a, c) can be determined based on these M groups of first reading voltages.

[0176] Assuming that the first reading voltages of group M include (a, b, c) and (q, w, e), then another 6 groups of first reading voltages can be determined by combining them. Let (x, y, z) represent these 6 groups of reading voltages, where x can be a or q, y can be b or w, and z can be c or e.

[0177] 503, the controller determines the first data of MH group at the first read voltage of MH group based on the third data and the first data of H group.

[0178] It should be noted that there is a certain correspondence between the first data in group MH and the data in group H and the third data. Through certain logical operations, the first and third data in group MH can be converted into data in group H. The number of groups in the third data is related to the number of paired read voltages contained in a group of first read voltages. Specifically, this can be achieved by applying log2... p Round up to determine the number of groups of the third data, where p represents the number of paired read voltages contained in a group of first read voltages.

[0179] In this embodiment, only H data reads are performed on the first page to obtain M sets of first data, which reduces the number of data reads and shortens the time to determine the optimal reading voltage.

[0180] It should also be noted that, in the process of determining the L group of first data in the previous embodiment, in addition to the method for determining the L group of first data mentioned in the previous embodiment, the combination method in the embodiments of this application can also be used to determine at least one group of first data, and the first group of data can be used as a part of the L group of first data. Specifically, at least one group of first data can be obtained by combining the K group of first data, the M group of first data and the third data, and the at least one group of first data can be used as a part of the L group of first data. Correspondingly, at least one group of first reading voltages in the L group of first reading voltages can also be obtained by combining the K group of first reading voltages and the M group of first reading voltages, and the at least one group of first reading voltages corresponds to at least one group of first data.

[0181] In the above embodiments, the error information corresponding to each of the M groups of first data is first obtained, and then the error information corresponding to each of the NM groups of first data is determined based on the error information corresponding to each of the M groups of first data. Alternatively, the error information corresponding to each of the N groups of first data can be obtained directly.

[0182] In another embodiment of the decoding method provided in this application, the controller obtains error information corresponding to each of the N sets of first data, including:

[0183] The controller reads N sets of first data from the first page based on N sets of first read voltages;

[0184] The controller determines the error information corresponding to each of the N groups of first data.

[0185] It is understandable that the controller directly sends out N sets of first reading voltages, then reads N sets of first data based on these N sets of first reading voltages, and finally determines the error information corresponding to each of these N sets of first data. The process of reading N sets of first data based on the N sets of first reading voltages is the same as the process of reading NM sets of first data in operation 302. For details, please refer to the relevant instructions on reading NM sets of first data in operation 302.

[0186] As can be seen from the foregoing embodiments, there are multiple methods to determine the error information corresponding to each of the first data in the M groups. Two of these methods are described below.

[0187] In another embodiment of the decoding method provided in this application, the controller determines the error information corresponding to each of the M groups of first data, including:

[0188] The controller decodes the first data from group M;

[0189] The controller determines the error information corresponding to the first data in group M based on the decoding result.

[0190] In this embodiment of the application, by decoding the M groups of first data, the error information corresponding to each of the M groups of first data can be determined, wherein the error information can be represented by syndrome weight information.

[0191] It should be noted that current decoding methods employing error correction capabilities, such as soft-decision decoding, first read data from the second page using multiple sets of read voltages. This data is then decoded to determine error information, which is used for error correction in subsequent decoding processes. Based on this, the embodiments of this application determine the error information corresponding to each of the M sets of first data by decoding them. This error information can serve as a reference for error correction during the decoding process, eliminating the need to acquire additional error information for error correction. Therefore, decoding the M sets of first data does not increase the time required to determine the optimal read voltage.

[0192] The above describes one method for determining the error messages corresponding to the first data in each of the M groups. Below, we will introduce another method for determining the error messages corresponding to the first data in each of the M groups.

[0193] In another embodiment of the decoding method provided in this application, the second page and the first page are different pages, and the controller determines the error information corresponding to each of the M groups of first data, including:

[0194] The controller determines the error information corresponding to the first data in each of the M groups based on the information preset in the first page.

[0195] It should be noted that the controller can pre-write known information into the first page. The first data of group M is the data corresponding to the first reading voltage of group M on the first page. Therefore, there is no need to decode the first data of group M. The error information corresponding to each of the first data of group M can be determined based on the known information. The error information can be represented by error bits information.

[0196] In this embodiment of the application, since it is not necessary to decode the first data of the M groups, the time for determining the optimal read voltage can be further shortened.

[0197] As can be seen from the foregoing embodiments, there are multiple methods for the controller to read the second data from the second page according to the decoding voltage range and decode the second data. Two of these methods will be described below.

[0198] In another embodiment of the decoding method provided in this application, the controller reads second data from the second page according to the decoding voltage range and decodes the second data, including:

[0199] The controller reads the second data from the second page according to the decoding voltage range and the preset voltage set, and decodes the second data. The voltage set contains multiple sets of second read voltages.

[0200] There are several ways for the controller to read the second data based on the decoding voltage range and voltage set. For example, it can select a set of second reading voltages from the voltage set each time, and then determine whether it is necessary to read the second data and decode it based on the decoding voltage range. Taking the decoding voltage range as the effective voltage range as an example, if the set of second reading voltages is within the effective voltage range, then it is necessary to read the second data and decode it based on the set of second reading voltages. Then, select another set of second reading voltages for judgment, and repeat the above operation until the decoding is successful or all sets of second reading voltages in the voltage set are traversed.

[0201] For example, the second read voltages in the voltage set can be filtered according to the decoding voltage range to determine all the second read voltages used for decoding. Then, the second data is read from the second page sequentially according to the second read voltages used for decoding and decoded. Taking the decoding voltage range as the effective voltage range as an example, the voltage set contains 16 sets of second read voltages, but the number of second read voltages determined for decoding may only be 10 sets. Finally, the second data is read from the second page sequentially according to these 10 sets of second read voltages and decoded until the decoding is successful or all 10 sets of second read voltages are determined.

[0202] In another embodiment of the decoding method provided in this application, the decoding method further includes:

[0203] The controller determines the read recovery time based on the decoding voltage range. There are various methods for determining the read recovery time, and this application embodiment does not limit this method. For example, the read recovery time can be determined based on the decoding time of the historical decoding process.

[0204] Once the read recovery time is determined, the controller reads the second data from the second page according to the decoding voltage range, and decodes the second data including:

[0205] The controller reads the second data from the second page based on the read recovery time and the decoding voltage range, and then decodes the second data.

[0206] It should be noted that when reading and decoding the second data from the second page according to the decoding voltage range, in order to prevent the entire decoding process from taking too long, the controller can first determine the read recovery time based on the decoding voltage range. When the time for reading and decoding the second data from the second page exceeds the read recovery time, the reading and decoding of the data on the second page will be stopped, thereby preventing the time for determining the optimal read voltage from taking too long.

[0207] It is understandable that the second data can also be read from the second page simultaneously based on the read recovery time, the decoding voltage range, and the preset voltage set, and the second data can be decoded. That is, the read recovery time is first determined based on the decoding voltage range, and the second read voltage is selected from the voltage set based on the decoding voltage range. Then, the data is read and decoded based on the second read voltage, and the optimal read voltage time is determined by controlling the read recovery time.

[0208] The decoding apparatus in the embodiments of this application will be described below. Please refer to... Figure 10 The following is a schematic diagram of an embodiment of the decoding apparatus in this application. Figure 10 As shown, this application provides an embodiment of a decoding apparatus applied to a solid-state drive controller, comprising:

[0209] The acquisition unit 601 is used to acquire the error information corresponding to each of the N sets of first data. The N sets of first data are the data corresponding to the first page under the N sets of first read voltages. The first page belongs to a data block in the solid-state drive, where N is a positive integer.

[0210] The determining unit 602 is used to determine the decoding voltage range of the second page based on the error information corresponding to each of the N groups of first data and the N groups of first read voltages. The second page belongs to the data block.

[0211] The decoding unit 603 is used to read the second data from the second page according to the decoding voltage range and decode the second data.

[0212] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is used for:

[0213] Retrieve the first data of group M corresponding to the first reading voltage of group M on the first page;

[0214] Determine the error message corresponding to the first data in group M;

[0215] Based on the error information corresponding to the first data in group M and the first reading voltage of group M, determine the error information corresponding to the first data in group NM. The first data in group NM is the data corresponding to the first page under the first reading voltage of group NM.

[0216] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is used for:

[0217] Determine the first reading voltage of group NM based on the error information corresponding to the first data of group M and the first reading voltage of group M.

[0218] Read the first data of group NM from the first page based on the first read voltage of group NM;

[0219] Determine the error message corresponding to the first data in group NM.

[0220] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is used for:

[0221] The first reading voltage of group K is determined based on the error information corresponding to the first data of group M and the first reading voltage of group M, where K is less than NM;

[0222] Read the first data of group K from the first page based on the first reading voltage of group K;

[0223] Determine the error message corresponding to the first data in each of the K groups;

[0224] The first reading voltage of group L is determined based on the error information corresponding to the first data of group K, the error information corresponding to the first data of group M, the first reading voltage of group K, and the first reading voltage of group M, where L is less than or equal to NMK;

[0225] Read the first data of group L from the first page based on the first reading voltage of group L;

[0226] Determine the error message corresponding to the first data in group L.

[0227] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is configured to: read M groups of first data from the first page according to the M groups of first read voltages.

[0228] This application provides another embodiment of a decoding apparatus, wherein each of the M groups of first read voltages includes a plurality of paired read voltages;

[0229] Acquisition unit 601: is also used to read third data in at least one paired page according to a preset third read voltage, wherein the paired page and the first page belong to the same data block;

[0230] The acquisition unit is used for 601:

[0231] The first data of group H is read from the first page based on the first reading voltage of group H, where H is less than M;

[0232] The first reading voltage of group MH is determined based on the first reading voltage of group H. Each first reading voltage in group MH contains multiple paired reading voltages. Each paired reading voltage in group MH is contained in multiple paired reading voltages in group M.

[0233] Based on the third data and the first data of group H, determine the first data of group MH at the first read voltage of group MH on the first page.

[0234] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is used for:

[0235] Read N sets of first data from the first page based on N sets of first read voltages;

[0236] Determine the error message corresponding to each of the N groups of first data.

[0237] This application provides another embodiment of a decoding apparatus, wherein the acquisition unit 601 is used for:

[0238] Decode the first data in group M;

[0239] Determine the error information corresponding to the first data in group M based on the decoding results;

[0240] This application provides another embodiment of a decoding apparatus, wherein the second page and the first page are different pages;

[0241] The acquisition unit 601 is used to: determine the error information corresponding to each of the first data in the M groups based on the information in the preset first page.

[0242] This application provides another embodiment of a decoding device, a decoding unit 603, for reading second data from a second page according to a decoding voltage range and a preset voltage set, and decoding the second data, wherein the voltage set includes multiple sets of second read voltages.

[0243] This application provides another embodiment of a decoding apparatus, wherein the determining unit 602 is further configured to determine the read recovery time based on the decoding voltage range;

[0244] The decoding unit 603 is used to read the second data from the second page according to the read recovery time and the decoding voltage range, and to decode the second data.

[0245] Please see Figure 11 In one embodiment of the control device in this application, one or more processors 701, memory 702, and communication interfaces 703 may be included.

[0246] The memory 702 can be temporary or persistent storage. Furthermore, the processor 701 can be configured to communicate with the memory 702 and execute a series of instructions stored in the memory 702 on a control device.

[0247] In this embodiment, the processor 701 can execute the aforementioned... Figure 10 The specific operations performed by the decoding device in the illustrated embodiment will not be described here.

[0248] In this embodiment, the specific functional module division in the processor 701 can be the same as described above. Figure 10 The functional module division of units such as the acquisition unit, determination unit, and decoding unit described in the text is similar, and will not be repeated here.

[0249] This application also provides a chip or chip system, which includes at least one processor and a communication interface. The communication interface and the at least one processor are interconnected via a circuit. The at least one processor is used to run computer programs or instructions to perform the aforementioned... Figures 5 to 9 The specific operations performed by the controller in the illustrated embodiment will not be described in detail here.

[0250] The communication interface in the chip can be an input / output interface, pins, or circuits.

[0251] This application also provides a first implementation of a chip or chip system. The chip or chip system described above in this application further includes at least one memory, which stores instructions. The memory can be an internal storage unit of the chip, such as a register or cache, or it can be a storage unit of the chip itself (such as a read-only memory or random access memory).

[0252] This application also provides a computer storage medium for storing computer software instructions for use with the control device described above, including a program designed for executing a decoding apparatus.

[0253] The control device can be as described above. Figure 10 The decoding device described.

[0254] This application also provides a computer program product, which includes computer software instructions that can be loaded by a processor to implement the above-described functionality. Figures 5 to 9 The process of the Chinese method.

[0255] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product.

[0256] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)).

[0257] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

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

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

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

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

[0262] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.

Claims

1. A decoding method, characterized in that, include: The controller acquires error information corresponding to each of the N sets of first data. The N sets of first data are the data corresponding to the first page under the N sets of first read voltages. The first page belongs to a data block in the solid-state drive, where N is a positive integer. The controller determines the decoding voltage range of the second page based on the error information corresponding to each of the N sets of first data and the N sets of first read voltages. The second page belongs to the data block, and the second page and the first page are different pages in the data block. The error information includes the number of bits of the erroneous data in the first data. The controller filters the known second read voltages according to the decoding voltage range, then reads the second data from the second page according to the filtered second read voltages, and decodes the second data.

2. The method according to claim 1, characterized in that, N is an integer greater than 1, and the controller obtains the error information corresponding to each of the N sets of first data, including: The controller acquires the first data of the first page corresponding to the first reading voltage of the M group; The controller determines the error information corresponding to each of the M groups of first data; The controller determines the error information corresponding to each of the first data in the NM groups based on the error information corresponding to each of the first data in the M groups and the first reading voltage of the M groups. The first data in the NM groups are the data corresponding to the first page under the first reading voltage of the NM groups.

3. The method according to claim 2, characterized in that, The controller determines the error information corresponding to each of the NM groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages, including: The controller determines the first reading voltage of group NM based on the error information corresponding to each of the first data in group M and the first reading voltage of group M. The controller reads the first data of the NM group from the first page according to the first read voltage of the NM group; The controller determines the error information corresponding to each of the first data in the NM group.

4. The method according to claim 2, characterized in that, The controller determines the error information corresponding to each of the NM groups of first data based on the error information corresponding to each of the M groups of first data and the M groups of first read voltages, including: The controller determines the first reading voltage of group K based on the error information corresponding to each of the first data of group M and the first reading voltage of group M, where K is less than NM; The controller reads the first data from the first page based on the first reading voltage of the K groups; The controller determines the error information corresponding to each of the K groups of first data; The controller determines the first reading voltage of group L based on the error information corresponding to each of the first data of group K, the error information corresponding to each of the first data of group M, the first reading voltage of group K, and the first reading voltage of group M, wherein L is less than or equal to NMK; The controller reads the first data of group L from the first page according to the first reading voltage of group L; The controller determines the error information corresponding to each of the first data in group L.

5. The method according to any one of claims 2 to 4, characterized in that, The controller acquires the first data of the first page corresponding to the first reading voltage of the M group, including: The controller reads the first data of group M from the first page based on the first reading voltage of group M.

6. The method according to any one of claims 2 to 4, characterized in that, Each of the M groups of first read voltages contains multiple paired read voltages; The method further includes: the controller reading third data from at least one paired page according to a preset third read voltage, wherein the paired page and the first page belong to the same data block; The controller acquires the first data of the first page corresponding to the first reading voltage of the M group, including: The controller reads the first data of group H from the first page based on the first read voltage of group H, where H is less than M; The controller determines the first reading voltage of the MH group based on the first reading voltage of the H group. Each first reading voltage in the first reading voltage of the MH group contains multiple paired reading voltages, and each paired reading voltage in the first reading voltage of the MH group is included in multiple paired reading voltages in the first reading voltage of the M group. The controller determines the first data of the MH group of the first page under the first read voltage of the MH group based on the third data and the first data of the H group.

7. The method according to any one of claims 2 to 4, characterized in that, The controller determines the error information corresponding to each of the M groups of first data, including: The controller decodes the first data in the M groups; The controller determines the error information corresponding to each of the M groups of first data based on the decoding result.

8. The method according to any one of claims 2 to 4, characterized in that, The controller determines the error information corresponding to each of the M groups of first data, including: The controller determines the error information corresponding to each of the M groups of first data based on the information preset in the first page.

9. The method according to claim 1, characterized in that, The controller acquires error information corresponding to each of the N sets of first data, including: The controller reads N sets of first data from the first page based on N sets of first read voltages; The controller determines the error information corresponding to each of the N groups of first data.

10. The method according to claim 1, characterized in that, The controller reads second data from the second page according to the decoding voltage range, and decodes the second data including: The controller reads second data from the second page according to the decoding voltage range and a preset voltage set, and decodes the second data. The voltage set contains multiple sets of second read voltages.

11. The method according to claim 1, characterized in that, The method further includes: The controller determines the read recovery time based on the decoding voltage range; The controller reads second data from the second page according to the decoding voltage range, and decodes the second data including: The controller reads the second data from the second page according to the read recovery time and the decoding voltage range, and decodes the second data.

12. A decoding apparatus, characterized in that, include: The acquisition unit is used to acquire the error information corresponding to each of the N sets of first data, wherein the N sets of first data are the data corresponding to the first page under the N sets of first read voltages, and the first page belongs to a data block in the solid-state drive, where N is a positive integer; The determining unit is used to determine the decoding voltage range of the second page based on the error information corresponding to each of the N groups of first data and the N groups of first read voltages. The second page belongs to the data block, and the second page and the first page are different pages in the data block. The error information includes the number of bits of the erroneous data in the first data. The decoding unit is used to filter the known second read voltage according to the decoding voltage range, then read the second data from the second page according to the filtered second read voltage, and decode the second data.

13. The apparatus according to claim 12, characterized in that, N is an integer greater than 1, and the acquisition unit is used for: Retrieve the first data of group M corresponding to the first reading voltage of group M on the first page; Determine the error information corresponding to each of the M groups of first data; Based on the error information corresponding to each of the M groups of first data and the M groups of first reading voltage, the error information corresponding to each of the NM groups of first data is determined. The NM groups of first data are the data corresponding to the first page under the NM group of first reading voltage.

14. The apparatus according to claim 13, characterized in that, The acquisition unit is used for: The first reading voltage of group NM is determined based on the error information corresponding to each of the first data in group M and the first reading voltage of group M. The first data of the NM group is read from the first page according to the first read voltage of the NM group; Determine the error information corresponding to each of the first data in the NM group.

15. The apparatus according to claim 13, characterized in that, The acquisition unit is used for: The first reading voltage of group K is determined based on the error information corresponding to each of the first data in group M and the first reading voltage in group M, where K is less than NM; Read the first data from the first page according to the first reading voltage of the K groups; Determine the error information corresponding to each of the K groups of first data; The first reading voltage of group L is determined based on the error information corresponding to each of the first data of group K, the error information corresponding to each of the first data of group M, the first reading voltage of group K, and the first reading voltage of group M, wherein L is less than or equal to NMK; Read the first data of group L from the first page according to the first reading voltage of group L; Determine the error information corresponding to each of the first data in the L groups.

16. The apparatus according to any one of claims 13 to 15, characterized in that, The acquisition unit is used to: read the first data of the M groups from the first page according to the first reading voltage of the M groups.

17. The apparatus according to any one of claims 13 to 15, characterized in that, Each of the M groups of first read voltages contains multiple paired read voltages; The acquisition unit is further configured to read third data from at least one paired page according to a preset third read voltage, wherein the paired page and the first page belong to the same data block; The acquisition unit is used for: The first data of group H is read from the first page based on the first reading voltage of group H, where H is less than M; The first reading voltage of group MH is determined based on the first reading voltage of group H. Each first reading voltage in group MH contains multiple paired reading voltages, and each paired reading voltage in group MH is included in multiple paired reading voltages in group M. The first page is determined based on the third data and the first data of group H under the first reading voltage of group MH.

18. The apparatus according to any one of claims 13 to 15, characterized in that, The acquisition unit is used for: Decode the first data in the M groups; The error information corresponding to each of the first data in the M groups is determined based on the decoding results.

19. The apparatus according to any one of claims 13 to 15, characterized in that, The acquisition unit is used to: determine the error information corresponding to each of the M groups of first data based on the information preset in the first page.

20. The apparatus according to claim 12, characterized in that, The acquisition unit is used for: Read N sets of first data from the first page based on N sets of first read voltages; Determine the error information corresponding to each of the N groups of first data.

21. The apparatus according to claim 12, characterized in that, The decoding unit is used to read second data from the second page according to the decoding voltage range and a preset voltage set, and to decode the second data, wherein the voltage set contains multiple sets of second read voltages.

22. The apparatus according to claim 12, characterized in that, The determining unit is further configured to determine the read recovery time based on the decoding voltage range; The decoding unit is used to read second data from the second page according to the read recovery time and the decoding voltage range, and to decode the second data.

23. A control device, characterized in that, At least one processor and a memory, the memory storing computer-executable instructions that can run on the processor, wherein when the computer-executable instructions are executed by the processor, the control device performs the method as described in any one of claims 1-11.

24. A chip or chip system, characterized in that, The chip or chip system includes at least one processor and a communication interface, the communication interface and at least one processor being interconnected via a line, and the at least one processor being used to run a computer program or instructions to perform the method as described in any one of claims 1-11 above.

25. A computer-readable storage medium storing one or more computer-executable instructions, characterized in that, When the computer execution instructions are executed by the processor, the processor performs the method as described in any one of claims 1-11.

26. A computer program product storing one or more computer-executable instructions, characterized in that, When the computer execution instructions are executed by the processor, the processor performs the method as described in any one of claims 1-11.

Citation Information

Patent Citations

  • Flash memory data processing method and device

    CN108777156A

  • Flash memory reading voltage determination method and device, computer device and storage medium

    CN110189788A

  • Memory system and method of operating memory system using soft read voltages

    US20140153338A1