CN114667570A - Decoding method, device and control equipment - Google Patents

Decoding method, device and control equipment Download PDF

Info

Publication number
CN114667570A
CN114667570A CN201980102172.0A CN201980102172A CN114667570A CN 114667570 A CN114667570 A CN 114667570A CN 201980102172 A CN201980102172 A CN 201980102172A CN 114667570 A CN114667570 A CN 114667570A
Authority
CN
China
Prior art keywords
data
groups
reading
voltages
error information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980102172.0A
Other languages
Chinese (zh)
Inventor
江冬
张杨
李君伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN114667570A publication Critical patent/CN114667570A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The embodiment of the application provides a decoding method, a decoding device and control equipment, which are used for reading and decoding data from a solid state disk. The method comprises the following steps: firstly, the controller acquires error information corresponding to N groups of first data; then, the controller determines the decoding voltage range of the second page according to the error information corresponding to the N groups of first data and the N groups of first reading voltages; finally, the controller reads the second data from the second page according to the decoding voltage range and decodes the second data. The known second reading voltage can be screened through the decoding voltage range, so that the number of the second reading voltages needing decoding is reduced, and the time for determining the optimal reading voltage is shortened.

Description

Decoding method and device and control equipment Technical Field
The embodiment of the application relates to the technical field of solid state disk control, in particular to a decoding method, a decoding device and control equipment.
Background
A Solid State Drive (SSD), also called Solid State disk, is a hard disk made of an array of Solid State electronic memory chips. The storage medium of the solid state disk includes a plurality of types, one of the storage media is a flash memory, and an optimal Read voltage of the flash memory may deviate along with other factors such as Data storage time (Data Retention), Read Disturb (Read Disturb), Program/Erase (PE) times, and temperature, so that when Data is Read from the flash memory according to an original Read voltage, a Read error may occur. When a read error occurs, data needs to be re-read from the flash memory after the read voltage is adjusted.
Usually, a flash memory manufacturer provides a voltage for re-reading data, however, the voltage is often multiple, and it is impossible to determine which voltage is the optimal read voltage before decoding. Therefore, currently, when data is read from the flash memory again, all voltages provided by a flash memory manufacturer are traversed, the data is read from the flash memory and decoded, and once the decoding is successful, the traversal is finished. Although this method is feasible, the process of traversal is time consuming.
Disclosure of Invention
The embodiment of the application provides a decoding method, a decoding device and a decoding control device, which can reduce the number of second reading voltages needing decoding, so that the time for determining the optimal reading voltage is shortened.
A first aspect of the embodiments of the present application provides a decoding method, which is applied to a controller of a solid state disk, and includes:
the controller obtains error information corresponding to N groups of first data, wherein the N groups of first data are data corresponding to a first page under N groups of first reading voltages, the first page belongs to a data block in the solid state disk, and N is a positive integer.
The controller determines a decoding voltage range of a second page according to error information corresponding to the N groups of first data and the N groups of first reading voltages, wherein the second page belongs to the data block, the second page may be the same page as the first page, and the second page may be different pages from the first page.
The controller reads the second data from the second page according to the decoding voltage range and decodes the second data.
According to the embodiment of the application, the decoding voltage range is determined through N groups of first reading voltages and error information of first data corresponding to the N groups of first reading voltages, then the known second reading voltages are screened through the decoding voltage range, the number of the second reading voltages needing decoding is reduced, and therefore the time for determining the optimal reading voltage is shortened.
Based on the first aspect, an embodiment of the present application further provides a first implementation manner of the first aspect, where in this implementation manner, N is an integer greater than 1, and the obtaining, by the controller, error information corresponding to each of the N groups of first data includes:
the controller acquires M groups of first data corresponding to the first page under M groups of first reading voltages;
the controller determines error information corresponding to the M groups of first data;
the controller determines error information corresponding to the N-M groups of first data according to error information corresponding to the M groups of first data and M groups of first reading voltages, wherein the N-M groups of first data are data corresponding to the first page under the N-M groups of first reading voltages.
There are various methods for obtaining the error information corresponding to each of the N groups of first data, and this embodiment provides a feasible solution that determines the error information corresponding to each of the N-M groups of first data according to the error information corresponding to each of the M groups of first data.
Based on the first implementation manner of the first aspect, an embodiment of the present application further provides a second implementation manner of the first aspect, in which the determining, by the controller, error information corresponding to each of the N-M groups of first data according to error information corresponding to each of the M groups of first data and the M groups of first read voltages includes:
the controller determines N-M groups of first reading voltages according to error information corresponding to M groups of first data and M groups of first reading voltages;
the controller reads N-M groups of first data from the first page according to the N-M groups of first reading voltages, namely, one group of first reading voltages corresponds to one group of first data;
the controller determines error information corresponding to each of the N-M sets of first data.
The embodiment provides a feasible scheme, namely determining N-M groups of first reading voltages according to the error information corresponding to M groups of first data respectively, enabling the N-M groups of first reading voltages to be closer to the optimal reading voltage, and then determining the error information corresponding to N-M groups of first data respectively according to the N-M groups of first reading voltages.
Based on the first implementation manner of the first aspect, an embodiment of the present application further provides a third implementation manner of the first aspect, in which the determining, by the controller, error information corresponding to each of the N-M groups of first data according to error information corresponding to each of the M groups of first data and the M groups of first read voltages includes:
the controller determines K groups of first reading voltages according to error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein K is smaller than N-M;
the controller reads K groups of first data from the first page according to K groups of first reading voltages;
the controller determines error information corresponding to each of the K groups of first data;
the controller determines L groups of first reading voltages according to error information corresponding to the K groups of first data, error information corresponding to the M groups of first data, the K groups of first reading voltages and the M groups of first reading voltages, wherein L is smaller than or equal to N-M-K;
the controller reads the L groups of first data from the first page according to the L groups of first reading voltages;
the controller determines error information corresponding to each of the L sets of first data.
The embodiment provides another feasible scheme, namely determining K groups of first reading voltages according to the error information corresponding to the M groups of first data to enable the K groups of first reading voltages to be closer to the optimal reading voltage, then determining the error information corresponding to the K groups of first data, then determining L groups of first reading voltages according to the error information corresponding to the K groups of first data and the error information corresponding to the M groups of first data to enable the L groups of first reading voltages to be further connected with the optimal reading voltage, and finally determining the error information corresponding to the L groups of first data according to the L groups of first reading voltages.
Based on the first implementation manner of the first aspect, or the second implementation manner of the first aspect, or the third implementation manner of the first aspect, an embodiment of the present application further provides a fourth implementation manner of the first aspect, where the acquiring, by the controller, M groups of first data corresponding to the first page under M groups of first read voltages includes:
the controller reads M sets of first data from the first page according to the M sets of first read voltages.
There are various methods of acquiring the M sets of first data, and in this embodiment, the M sets of first data are read directly according to the M sets of first read voltages.
Based on the first implementation manner of the first aspect, the second implementation manner of the first aspect, or the third implementation manner of the first aspect, an example of the present application further provides a fifth implementation manner of the first aspect, in which each of the M sets of first read voltages includes a plurality of paired read voltages, that is, a plurality of paired read voltages are required to read data in the first page;
the controller also needs to read third data in at least one pairing page according to a preset third reading voltage, wherein the pairing page and the first page belong to the same data block;
the controller acquiring M groups of first data corresponding to the first page under M groups of first reading voltages comprises:
the controller reads H groups of first data from the first page according to H groups of first reading voltages, wherein H is smaller than M;
the controller then determines M-H group first reading voltages according to the H group first reading voltages, wherein each group of first reading voltages in the M-H group first reading voltages comprises a plurality of paired reading voltages, and each paired reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages in the M group first reading voltages;
the controller finally determines M-H group first data of the first page under the M-H group first reading voltage according to the third data and the H group first data.
Therefore, the data reading for H times is carried out according to the first reading voltage for H groups, the first reading voltage for M groups can be finally obtained, the times of reading the first data are reduced, and the time for determining the optimal reading voltage can be further shortened.
Based on the first implementation manner of the first aspect, or the second implementation manner of the first aspect, or the third implementation manner of the first aspect, or the fourth implementation manner of the first aspect, or the fifth implementation manner of the first aspect, an embodiment of the present application further provides a sixth implementation manner of the first aspect, where the determining, by the controller, error information corresponding to each of the M groups of first data includes:
the controller decodes the M groups of first data first, and then determines error information corresponding to the M groups of first data according to a decoding result.
This embodiment provides a feasible scheme for determining error information corresponding to each of the M groups of first data, in which the error information corresponding to each of the M groups of first data is determined according to a decoding result of the M groups of first data.
Based on the first implementation manner of the first aspect, or the second implementation manner of the first aspect, or the third implementation manner of the first aspect, or the fourth implementation manner of the first aspect, or the fifth implementation manner of the first aspect, an example of the present application further provides a seventh implementation manner of the first aspect, and in this implementation manner, the second page and the first page are different pages.
The controller determining error information corresponding to each of the M groups of first data includes: the controller determines error information corresponding to the M groups of first data according to the information in the preset first page.
This embodiment provides another possible scheme for determining error information corresponding to each of the M sets of first data, in which since the information in the first page is known to the controller, the error information corresponding to each can be determined based on only the M sets of first data, without decoding the M sets of first data, and thus the time for determining the optimal read voltage can be shortened.
Based on the first aspect, an embodiment of the present application further provides an eighth implementation manner of the first aspect, where the acquiring, by the controller, error information corresponding to each of the N groups of first data includes:
the controller reads the N groups of first data from the first page according to the N groups of first reading voltages, and then determines error information corresponding to the N groups of first data.
There are various methods for acquiring the error information corresponding to the N sets of first data, and this embodiment provides another feasible solution, that is, the N sets of first data are directly read according to the N sets of first read voltages, and then the error information corresponding to the N sets of first data are determined.
Based on the first aspect, or the first implementation manner of the first aspect, or the second implementation manner of the first aspect, or the third implementation manner of the first aspect, or the fourth implementation manner of the first aspect, or the fifth implementation manner of the first aspect, or the sixth implementation manner of the first aspect, or the seventh implementation manner of the first aspect, or the eighth implementation manner of the first aspect, an embodiment of the present application further provides a ninth implementation manner of the first aspect, in which the controller reads the second data from the second page according to the decoding voltage range, and decodes the second data includes:
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, wherein the voltage set comprises a plurality of groups of second reading voltages.
In this embodiment, the voltage set includes a plurality of sets of second reading voltages, and the plurality of sets of second reading voltages in the voltage set are screened through the decoding voltage range, so that the number of second reading voltages to be decoded can be reduced, and the time for determining the optimal reading voltage is shortened.
Based on the first aspect, or the first implementation manner of the first aspect, or the second implementation manner of the first aspect, or the third implementation manner of the first aspect, or the fourth implementation manner of the first aspect, or the fifth implementation manner of the first aspect, or the sixth implementation manner of the first aspect, or the seventh implementation manner of the first aspect, or the eighth implementation manner of the first aspect, or the ninth implementation manner of the first aspect, the present application also provides a tenth implementation manner of the first aspect, in which the decoding method further includes:
the controller determines the read recovery time according to the decoding voltage range;
after the read recovery time is determined, the controller reads the second data from the second page according to the decoding voltage range, and decoding the second data includes:
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.
In this embodiment, the time of the entire decoding process is controlled by the read recovery time, thereby preventing the time for determining the optimum read voltage from being excessively long.
A second aspect of the embodiments of the present application provides a decoding apparatus, which is applied to a controller of a solid state disk, and includes:
the acquisition unit is used for acquiring error information corresponding to N groups of first data, wherein the N groups of first data are data corresponding to a first page under N groups of first reading voltages, the first page belongs to a data block in the solid state disk, and N is a positive integer;
the determining unit is used for determining a decoding voltage range of a second page according to error information corresponding to the N groups of first data and the N groups of first reading voltages, and the second page belongs to the data block;
and the decoding unit is used for reading the second data from the second page according to the decoding voltage range and decoding the second data.
Based on the second aspect, an embodiment of the present application further provides a first implementation manner of the second aspect, where the obtaining unit is configured to:
acquiring M groups of first data corresponding to the first page under M groups of first reading voltages;
determining error information corresponding to the M groups of first data;
and determining the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein the N-M groups of first data are the data corresponding to the first page under the N-M groups of first reading voltages.
Based on the first implementation manner of the second aspect, the present application provides a second implementation manner of the second aspect, and the obtaining unit is configured to:
determining N-M groups of first reading voltages according to error information corresponding to M groups of first data and M groups of first reading voltages;
reading N-M groups of first data from a first page according to N-M groups of first read voltages;
and determining error information corresponding to the N-M groups of first data respectively.
Based on the first implementation manner of the second aspect, an embodiment of the present application further provides a third implementation manner of the second aspect, where the obtaining unit is configured to:
determining K groups of first reading voltages according to error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein K is smaller than N-M;
reading K groups of first data from the first page according to K groups of first reading voltages;
determining error information corresponding to the K groups of first data;
determining L groups of first reading voltages according to error information corresponding to the K groups of first data, error information corresponding to the M groups of first data, the K groups of first reading voltages and the M groups of first reading voltages, wherein L is less than or equal to N-M-K;
reading L groups of first data from the first page according to the L groups of first reading voltages;
and determining error information corresponding to the L groups of first data respectively.
Based on the first implementation manner of the second aspect, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, the present application example further provides a fourth implementation manner of the second aspect, and the obtaining unit is configured to: m groups of first data are read from the first page according to the M groups of first read voltages.
Based on the first implementation manner of the second side, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, this application example further provides a fifth implementation manner of the second aspect, where each of the M sets of first read voltages includes a plurality of paired read voltages;
an acquisition unit: the reading circuit is also used for reading third data in at least one pairing page according to a preset third reading voltage, and the pairing page and the first page belong to the same data block;
the acquisition unit is used for:
reading H groups of first data from the first page according to H groups of first reading voltages, wherein H is smaller than M;
determining M-H group first reading voltages according to the H group first reading voltages, wherein each group of first reading voltages in the M-H group first reading voltages comprises a plurality of paired reading voltages, and each paired reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages in the M group first reading voltages;
and determining M-H group first data of the first page under the M-H group first read voltage according to the third data and the H group first data.
Based on the first implementation manner of the second aspect, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, or the fourth implementation manner of the second aspect, or the fifth implementation manner of the second aspect, the present application provides an example of a sixth implementation manner of the second aspect, where the obtaining unit is configured to:
decoding the M sets of first data;
and determining error information corresponding to the M groups of first data according to the decoding result.
Based on the first implementation manner of the second aspect, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, or the fourth implementation manner of the second aspect, or the fifth implementation manner of the second aspect, the present application also provides a seventh implementation manner of the second aspect, and the second page and the first page are different pages;
the acquisition unit is used for: and determining error information corresponding to the M groups of first data according to the information in the preset first page.
Based on the second aspect, an embodiment of the present application further provides an eighth implementation manner of the second aspect, where the obtaining unit is configured to:
reading N groups of first data from the first page according to the N groups of first reading voltages;
and determining error information corresponding to the N groups of first data respectively.
Based on the second aspect, or the first implementation manner of the second aspect, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, or the fourth implementation manner of the second aspect, or the fifth implementation manner of the second aspect, or the sixth implementation manner of the second aspect, or the seventh implementation manner of the second aspect, or the eighth implementation manner of the second aspect, the embodiments of the present application further provide a ninth implementation manner of the second aspect, in which the decoding unit is configured to read the second data from the second page according to the decoding voltage range and the preset voltage set, and decode the second data, where the voltage set includes multiple sets of second reading voltages.
Based on the second aspect, or the first implementation manner of the second aspect, or the second implementation manner of the second aspect, or the third implementation manner of the second aspect, or the fourth implementation manner of the second aspect, or the fifth implementation manner of the second aspect, or the sixth implementation manner of the second aspect, or the seventh implementation manner of the second aspect, or the eighth implementation manner of the second aspect, or the ninth implementation manner of the second aspect, the present application embodiment further provides a tenth implementation manner of the second aspect, in which the determining unit is further configured to determine the read recovery time according to the decoding voltage range;
and the decoding unit is used for reading the second data from the second page according to the reading recovery time and the decoding voltage range and decoding the second data.
A third aspect of the embodiments of the present application provides a control apparatus, including: at least one processor and a memory, the memory storing computer-executable instructions executable on the processor, the control device performing the method of decoding as described in the first aspect or any one of the possible implementations of the first aspect when the computer-executable instructions are executed by the processor.
A fourth aspect of the embodiments of the present application provides a chip or a chip system, where the chip or the chip system includes at least one processor and a communication interface, where the communication interface and the at least one processor are interconnected by a line, and the at least one processor is configured to execute a computer program or instructions to perform a method for decoding as described in the first aspect or any one of the possible implementation manners of the first aspect.
The communication interface in the chip may be an input/output interface, a pin, a circuit, or the like.
Based on the fourth aspect, an embodiment of the present application further provides a first implementation manner of the fourth aspect, where the chip or the chip system described above in the embodiment of the present application further includes at least one memory, and the at least one memory stores instructions therein. The memory may be a storage unit inside the chip, such as a register, a cache, etc., or may be a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).
A fifth aspect of embodiments of the present application provides a computer storage medium for storing computer software instructions for the control device described above, which includes a program for executing the program designed for the control device.
The control device may be a means for decoding as described in the second aspect above.
A sixth aspect of embodiments of the present application provides a computer program product, where the computer program product includes computer software instructions, and the computer software instructions may be loaded by a processor to implement the method for decoding as described in the first aspect or any one of the possible implementation manners of the first aspect.
In the technical scheme provided by the embodiment of the application, firstly, the controller acquires error information corresponding to N groups of first data, wherein the N groups of first data are data corresponding to a first page under N groups of first reading voltages; then the controller determines the decoding voltage range of the second page according to the error information corresponding to the N groups of first data and the N groups of first reading voltages; finally, the controller reads second data from the second page according to the decoding voltage range and decodes the second data; therefore, in the embodiment of the application, the decoding voltage range is determined by the N groups of first reading voltages and the error information of the N groups of first reading voltages corresponding to the first data, and then the known second reading voltages can be screened through the decoding voltage range, so that the number of the second reading voltages needing to be decoded is reduced, and the time for determining the optimal reading voltage is shortened.
Drawings
FIG. 1 is a schematic diagram of an architecture of a memory system according to an embodiment of the present application;
FIG. 2 is a schematic diagram illustrating voltage distributions when data writing is completed according to an embodiment of the present invention;
FIG. 3 is a schematic diagram illustrating voltage distributions after data writing is completed for a period of time in an embodiment of the present application;
FIG. 4 is a schematic flow chart illustrating an embodiment of reading data from a flash memory array;
FIG. 5 is a schematic diagram of an embodiment of a decoding method in the embodiment of the present application;
fig. 6 is a schematic diagram of an embodiment of obtaining error information corresponding to each of N groups of first data in the embodiment of the present application;
FIG. 7 is a diagram of an embodiment of determining error information corresponding to N-M groups of first data according to an embodiment of the present application;
FIG. 8 is a diagram of another embodiment of determining error information corresponding to N-M groups of first data according to an embodiment of the present application;
FIG. 9 is a schematic diagram of an embodiment of obtaining M sets of first data in an embodiment of the present application;
FIG. 10 is a schematic diagram of an embodiment of an apparatus for decoding in an embodiment of the present application;
fig. 11 is a schematic diagram of an embodiment of a control device in the embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described in detail below with reference to the drawings in the embodiments of the present application.
The embodiment of the present application may be applied to a storage system in which a solid state disk is located, please refer to fig. 1, which is a schematic diagram of an architecture of the storage system in the embodiment of the present application. The storage system includes a host, an SSD controller, and a flash memory array. The host can be connected with the front end of the SSD controller through multiple interfaces such as NVMe, SAS and PCIe, and the rear end of the SSD controller can be connected with the flash memory array through the NFI interface. The host can read or erase the data in the flash memory array through the SSD controller, and the data can be written into the flash memory array through the SSD controller.
After receiving a data output request of a host, the SSD controller reads data in the flash memory array, and needs to use an optimal read voltage to read the data in order to ensure accurate data reading. However, the optimal read voltage may shift with other factors such as data storage time, read disturb, program/erase times (and temperature), for example, please refer to fig. 2 and 3, wherein fig. 2 is a schematic diagram of a voltage distribution when data writing is completed in the embodiment of the present application, and fig. 3 is a schematic diagram of a voltage distribution after data writing is completed for a period of time in the embodiment of the present application, comparing fig. 2 and 3, it can be seen that a voltage distribution of a portion of data shifts, for example, data A, B, C, assuming that a voltage distribution diagram of data a does not shift, that is, an optimal read voltage of data a does not change, it can be seen that, compared with fig. 2, in fig. 3, a distance between the voltage distribution diagram of data a and the voltage distribution diagram of data B becomes smaller, a voltage difference between the optimal read voltage of data B and the optimal read voltage of data a becomes smaller, that is, the optimal read voltage of the data B is shifted toward the optimal read voltage of the data a; similarly, in fig. 3 and 2, since the voltage profile of the data B overlaps the voltage profile of the data C, the optimum read voltage of the data C is shifted in the direction of the optimum read voltage of the data a.
When the optimal read voltage of the flash memory array is shifted, if data is still read according to the preset read voltage, data read errors will be caused. For this reason, the read voltage needs to be adjusted to re-read the data in the flash memory array. As shown in fig. 4, a flow chart of reading data from a flash memory array according to an embodiment of the present application is shown. After receiving the data output request, the SSD controller firstly reads data for the first time according to the set reading voltage, and after the data reading fails, the SSD controller enters a reading recovery process, namely the SSD controller continuously adjusts the reading voltage to read the data again. In the read recovery process, data reading and decoding are generally performed again in sequence according to the read voltage in the voltage set provided by the flash memory manufacturer until decoding is successful, and the read voltage which is decoded successfully is the optimal read voltage. Since the number of read voltages in the voltage set is large, in order to save the time for determining the optimal read voltage, the embodiment of the present application provides a decoding method, which screens the read voltages in the voltage set to reduce the number of read voltages used for decoding.
The decoding method is described in detail below. Referring to fig. 5, a schematic diagram of an embodiment of a decoding method in an embodiment of the present application is shown. As shown in fig. 5, an embodiment of the present application provides a decoding method, which is applied to a controller of a solid state disk, and includes:
101, the controller obtains error information corresponding to each of the N groups of first data.
It can be understood that different reading voltages are used for reading data in the same page, the reading results are different, N groups of first data are data corresponding to a first page under the N groups of first reading voltages, the first page belongs to a data block in the solid state disk, and N is a positive integer; the fixed hard disk may have a plurality of data blocks, and one data block may have a plurality of pages.
The types of the flash memories are different, and the number of the corresponding groups of reading voltages is also different; a set of first read voltages may include a read voltage, for example, the first read voltage may be represented as 5V, and may be represented as 5.2V; the set of first read voltages may also include a plurality of paired read voltages, for example, the set of first read voltages may be represented as (5V, 5.2V) and the set of first read voltages may be represented as (4.8V, 5V, 5.2V).
The content of the error information is not limited in the embodiment of the present application, for example, the error information may include a range of error data in the first data, and the error information may also include a bit number of the error data in the first data.
There are various methods for obtaining the error information corresponding to each of the N groups of first data, which are not limited in this embodiment of the present application.
102, the controller determines a decoding voltage range of the second page according to 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 where the first page is located, and the second page can be the same page as the first page, that is, the controller can determine the decoding voltage range of the first page according to the error information corresponding to each of the N groups of first data corresponding to the first page; the read voltages of all pages in the same data block are distributed regularly, for example, the read voltages can be distributed linearly, in a piecewise linear manner, or in a gradient manner, so that the second page and the first page can be different pages, and the controller can also determine the decoding voltage range of the first page according to the error information corresponding to each of the N groups of first data corresponding to the first page, and then determine the decoding voltage ranges of other pages in the same data block according to the distribution rules of all pages in the same data block.
It should be noted that there are various methods for determining the decoding voltage range of the second page, and the embodiment of the present application does not limit this. Taking the case that the first page and the second page are the same page as an example, assuming that the error information is the bit number of the erroneous data in the first data, there are 5 sets of first read voltages, and the 5 sets of first read voltages are 4.8V, 4.9V, 5.0V, 5.1V and 5.2V, respectively, and the bit numbers of the erroneous data in the respective corresponding first data are 300 bits, 260 bits, 180 bits, 240 bits and 350 bits in sequence, so it can be seen that the bit number of the erroneous data in the first data corresponding to 5V is the minimum, and from 5V, the bit number of the erroneous data in the first data increases with the increase or decrease of the first read voltage, 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.
The process of determining the decoding voltage range of the second page is described above by way of an example only, and the process of determining the decoding voltage range of the second page is different according to the specific situation of the error information corresponding to each set of the first data, and the embodiment of the present application is not described in detail herein.
In addition, the decoding voltage range can be an effective voltage range, and the effective voltage range can be understood as having a high possibility of including the optimal reading voltage; the decoding voltage range may be an invalid voltage range, which may be understood as less likely to include an optimal read voltage.
103, the controller reads the second data from the second page according to the decoding voltage range and decodes the second data.
There are various methods for reading the second data by the controller according to the decoding voltage range, which are not limited in the embodiments of the present application. For example, the known second reading voltage may be screened according to the decoding voltage range, and then the second data is read according to the screened second reading voltage, or values may be taken within the decoding voltage range, so as to obtain the second reading voltage for decoding. According to the embodiment of the application, the decoding voltage range is determined through N groups of first reading voltages and error information of first data corresponding to the N groups of first reading voltages, then known second reading voltages can be screened through the decoding voltage range, the number of the second reading voltages needing decoding is reduced, and therefore the time for determining the optimal reading voltage is shortened.
According to the above embodiments, there are a plurality of types of error information corresponding to the N groups of first data, and the following description specifically describes the error information corresponding to the N groups of first data.
Referring to fig. 6, an embodiment of obtaining error information corresponding to N groups of first data in the embodiment of the present application is shown. In this embodiment, N is an integer greater than 1, and the obtaining, by the controller, error information corresponding to each of the N sets of first data includes:
the controller obtains M groups of first data corresponding to the first page under M groups of first reading voltages 201.
There are various methods for acquiring the M groups of first data, which are not limited in this embodiment of the present application.
202, the controller determines error information corresponding to each of the M sets of first data.
There are various methods for determining the error information corresponding to each of the M groups of first data, which are not limited in this embodiment of the present application.
And 203, the controller determines the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein the N-M groups of first data are the data corresponding to the first page under the N-M groups of first reading voltages.
In the embodiment of the present application, an objective of obtaining error information corresponding to each of the N sets of first data is to more accurately determine a decoding voltage range of the second page, so that the decoding voltage range is as small as possible on the premise that the decoding voltage range includes an optimal reading voltage, and thus the number of second reading voltages that need to read and decode data is small finally; therefore, in the embodiment of the present application, by combining the error information corresponding to the M sets of first data and the M sets of first read voltages, it is possible to determine the N-M sets of first read voltages closer to the optimal read voltage and the error information corresponding to the N-M sets of first data, so that it is possible to ensure a smaller and accurate decoding voltage range.
There are various methods for determining the error information corresponding to the N-M groups of first read voltages and the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first read voltages, which are not limited in this embodiment of the present application. The process is described in detail below.
Referring to fig. 7, a schematic diagram of an embodiment of determining error information corresponding to N-M groups of first data is shown in the present application. As shown in fig. 7, in this embodiment, the determining, by the controller, the error information corresponding to each of the N-M groups of first data according to the error information corresponding to each of the M groups of first data and the M groups of first read voltages includes:
301, the controller determines N-M sets of first read voltages according to the error information corresponding to the M sets of first data and the M sets of first read voltages.
It should be noted that there are various methods for determining the N-M groups of first read voltages, which are not limited in the embodiment of the present application; specifically, a change rule of the error information along with the change of the first reading voltage can be determined according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, and the N-M groups of first reading voltages closer to the optimal reading voltage can be determined according to the change rule.
For example, still assuming that the error information is the bit number of the erroneous data in the first data, N is 8, M is 5, the M sets of first read voltages include 4.8V, 4.9V, 5.0V, 5.1V and 5.2V, the bit numbers of the erroneous data in the respective first data are 300 bits, 260 bits, 180 bits, 240 bits and 350 bits in sequence, it can be seen that the number of bits of the erroneous data in the first data corresponding to 5V is the least, and starting from 5V, as the first read voltage increases or decreases, the number of bits of the erroneous data in the first data increases, it can be considered that the optimum read voltage of the first page is close to 5V, the optimum read voltage has a large possibility of existing between 4.9V and 5.1V, the N-M set of first read voltages can be re-determined between 4.9V and 5.1V, the N-M group first read voltages may be determined to be 4.95V, 5.05V, and 5.02V, for example.
In the above example, the set of first read voltages includes one read voltage, and the set of first read voltages may include a plurality of read voltages, and when the plurality of read voltages are included, the plurality of sets of first read voltages in which only one read voltage changes may be compared to determine a variation rule of the error information with respect to a variation of the first read voltage, so that the N-M sets of first read voltages closer to the optimal read voltage may be determined according to the variation rule. The process of determining the N-M sets of first read voltages is described below using an example where a set of read voltages includes two read voltages.
In this example, still assuming that the error information is the number of bits of the erroneous data in the first data, N is 8, M is 5, M sets of the first read voltages are (4.8V, 3V), (4.9V, 3V), (5.0V, 3.1V) and (4.9V, 3.1V), respectively, the number of bits of the erroneous data in the respective first data is 300 bits, 260 bits, 180 bits, 240 bits and 350 bits in this order, and thus it can be seen that the first read voltages of the first three sets are compared, when one of the paired read voltages is 3V, the other paired read voltage is different, and the other paired read voltage is increased, the number of bits of erroneous data in the corresponding first data is reduced, so that if (x, y) is used to represent the N-M sets of first read voltages, then x takes a value in a range of 4.9V or more, for example, (4.95V, 3V) or (5.05V, 3V) may be used as one of the N-M sets of first read voltages; comparing (4.9V, 3V) and (4.9V, 3.1V), and (5.0V, 3V) and (5.0V, 3.1V), it can be seen that when a paired read voltage is changed from 3V to 3.1V, the number of bits of error data in the corresponding first data increases, so if (x, y) represents the N-M group first read voltage, y can take a value within a range of 3.1V, for example, (4.9V, 3.05V) or (5.0V, 3.05V) can be taken as a group first read voltage in the N-M group first read voltage.
The controller reads N-M sets of first data from the first page according to the N-M sets of first read voltages 302.
Reading the first data from the first page according to the first read voltage is a well-established technology, and the embodiments of the present application are not described in detail herein.
303, the controller determines error information corresponding to each of the N-M sets of first data.
The controller determines that there are multiple kinds of error information corresponding to the N-M groups of first data, which is the same as the error information corresponding to the M groups of first data, and this is not limited in this embodiment of the present application.
In the embodiment of the application, the N-M groups of first reading voltages are determined at one time according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, so that the finally determined decoding voltage range is smaller and accurate. In addition, according to the error information corresponding to the M groups of first data and the M groups of first read voltages, a group of first read voltages and error information corresponding to a group of first data are determined, then the error information corresponding to the M groups of first data is combined with the error information corresponding to the newly determined group of first data, and then another group of first read voltages and error information corresponding to another group of first data are determined until the error information corresponding to each of the N-M groups of first data is determined, which will be described in detail below.
Referring to fig. 8, another embodiment of determining error information corresponding to N-M groups of first data according to the embodiment of the present application is shown. As shown in fig. 8, in this embodiment, the determining, by the controller, the error information corresponding to each of the N-M groups of first data according to the error information corresponding to each of the M groups of first data and the M groups of first read voltages includes:
401, the controller determines K sets of first read voltages according to the error information corresponding to the M sets of first data and the M sets of first read voltages, where K is less than N-M.
It should be noted that the process of determining the K groups of first read voltages in operation 401 is the same as the process of determining the N-M groups of first read voltages in operation 301, and may be understood by referring to the related description of determining the N-M groups of first read voltages in operation 301.
402, the controller reads K sets of first data from the first page according to the K sets of first read voltages.
It should be noted that the process of reading K sets of first data in operation 402 is the same as the process of reading N-M sets of first data in operation 302, and can be understood by referring to the related description of determining N-M sets of first data in operation 302.
The controller determines error information corresponding to each of the K sets of first data 403.
It should be noted that the process of determining the error information corresponding to each of the K groups of first data in operation 403 is the same as the process of determining the error information corresponding to each of the N-M groups of first data in operation 303, and may be specifically understood by referring to the description of determining the error information corresponding to each of the N-M groups of first data in operation 303.
404, the controller determines L sets of first read voltages according to error information corresponding to the K sets of first data, error information corresponding to the M sets of first data, the K sets of first read voltages, and the M sets of first read voltages, where L is less than or equal to N-M-K.
In the embodiment of the application, the error information corresponding to the K groups of first data is combined with the error information corresponding to the M groups of first data to determine the L groups of first read voltages, and the L groups of first read voltages refer to the error information corresponding to the K groups of first data, so that the L groups of first read voltages may be closer to the optimal read voltages than the K groups of first read voltages. The process of determining the L groups of first read voltages is the same as the process of determining the K groups of first read voltages in operation 401, and may be understood by referring to the related description of operation 401.
The controller reads the L sets of first data from the first page according to the L sets of first read voltages 405.
The process of reading the L groups of first data is the same as the process of reading the K groups of first data in operation 402, and can be understood by referring to the related description of operation 402.
406, the controller determines error information corresponding to each of the L sets of first data.
The process of determining the error information corresponding to each of the L groups of first data is the same as the process of determining the error information corresponding to each of the K groups of first data in operation 403, and may be understood with reference to the related description of operation 403.
When L is equal to N-M-K, performing operation 406 has completed determining the error information corresponding to each of the N sets of first data; when L is less than N-M-K, after operation 406 is performed, error information corresponding to L groups of first data, error information corresponding to K groups of first data, and error information corresponding to M groups of first data may be combined to determine T groups of first read voltages, where T is a positive integer and less than or equal to N-M-K-L, and then error information corresponding to T groups of first data is determined according to T groups of first read voltages; because the T groups of first reading voltages refer to the error information corresponding to the L groups of first data respectively, the T groups of first reading voltages are probably closer to the optimal reading voltage compared with the L groups of first reading voltages, so that the finally determined decoding voltage range is smaller and accurate.
In addition, it should be noted that, in order to ensure that the N sets of first read voltages are closer to the optimal read voltage, K, L and T may both be set to 1, that is, only one set of first read voltage is determined each time, and finally, the nth set of first data is determined according to error information corresponding to each of the N-1 sets of first data, so that the finally determined decoding voltage range is smaller and accurate.
According to the foregoing embodiments, the method for acquiring M sets of first data includes multiple types, and in another embodiment of the decoding method provided in this embodiment of the application, the acquiring, by the controller, M sets of first data corresponding to the first page at M sets of first read voltages includes:
the controller reads M sets of first data from the first page according to the M sets of first read voltages.
It can be understood that the controller directly issues the M sets of first read voltages and then reads the M sets of first data according to the M sets of first read voltages.
In addition, the controller can issue H groups of first reading voltages, then read H groups of first data according to the H groups of first reading voltages, then determine M-H groups of first reading voltages and M-H groups of first data, and finally determine error information corresponding to the M-H groups of first data. This process is described in detail below.
In another embodiment of the decoding method, each of the M sets of first read voltages includes a plurality of paired read voltages, for example, the M sets of first read voltages may be represented as (a, b), (c, d), or (q, w, e).
The decoding method includes the following operations in the foregoing embodiments: the controller reads third data in at least one of the paired pages according to a preset third read voltage.
The paired pages refer to other pages belonging to the same data block as the first page.
In this embodiment, please refer to fig. 9, a schematic diagram of an embodiment of obtaining M sets of first data in the embodiment of the present application; as shown in fig. 9, the acquiring, by the controller, M groups of first data corresponding to the first page at M groups of first read voltages includes:
501, the controller reads H sets of first data from the first page according to H sets of first read voltages, where H is less than M.
The process of reading the H groups of first data is the same as the process of reading the K groups of first data in operation 402, and can be understood by referring to the related description in operation 402.
502, the controller determines the M-H set first read voltages based on the H set first read voltages.
Each of the M-H sets of first read voltages includes a plurality of paired read voltages, and each of the M-H sets of first read voltages includes a plurality of paired read voltages among the M sets of first read voltages. Thus, the H sets of first read voltages are associated with the number of paired read voltages that the M sets of first read voltages contain.
Specifically, assuming that the M groups of first read voltages include two groups of first read voltages (a, b) and (c, d), two other groups of first read voltages (a, c) and (b, d) can be determined according to the M groups of first read voltages; if the M sets of first read voltages include two sets of first read voltages (a, a) and (c, c), only one set of first read voltages (a, c) can be determined according to the M sets of first read voltages.
Assuming that the M sets of first read voltages include (a, b, c) and (q, w, e), another 6 sets of first read voltages may be determined in combination, and assuming that (x, y, z) represents the 6 sets of first read voltages, x may have a value of a or q, y may have a value of b or w, and z may have a value of c or e.
The controller determines M-H group first data of the first page at the M-H group first read voltage according to the third data and the H group first data 503.
It should be noted that a certain corresponding relationship exists between the M-H group first data, the H group data, and the third data, and the M-H group first data and the third data can be converted into the H group data through a certain logical operation, where the group number of the third data is related to the number of paired read voltages included in the group of first read voltages, and specifically, the log may be paired with the paired read voltages included in the group of first read voltages2 pRounding up determines the number of sets of third data, where p represents the number of paired read voltages included in a set of first read voltages.
In the embodiment of the application, M groups of first data can be obtained only by reading the first page for H times, so that the data reading times are reduced, and the time for determining the optimal reading voltage is shortened.
In addition, in the process of determining the L groups of first data in the previous embodiment, in addition to the method for determining the L groups of first data mentioned in the previous embodiment, the combination method in the embodiment of the present application may also be used to determine at least one group of first data, and use the first group of first data as a part of the L groups of first data, specifically, at least one group of first data may be obtained according to the combination of the K groups of first data, the M groups of first data, and the third data, and use the at least one group of first data as a part of the L groups of first data; accordingly, at least one group of first read voltages in the L groups of first read voltages can be obtained by combining the K groups of first read voltages and the M groups of first read voltages, and the at least one group of first read voltages corresponds to at least one group of first data.
In the above embodiments, the error information corresponding to the M groups of first data is first obtained, and then the error information corresponding to the N-M groups of first data is determined according to the error information corresponding to the M groups of first data.
In another embodiment of the decoding method provided in the embodiment of the present application, the acquiring, by the controller, error information corresponding to each of the N groups of first data includes:
the controller reads N groups of first data from the first page according to the N groups of first reading voltages;
the controller determines error information corresponding to each of the N sets of first data.
It can be understood that the controller directly issues N sets of first read voltages, then reads N sets of first data according to the N sets of first read voltages, and finally determines error information corresponding to the N sets of first data, where a process of reading the N sets of first data according to the N sets of first read voltages is the same as a process of reading N-M sets of first data in operation 302, and may be understood by referring to the related description of reading the N-M sets of first data in operation 302.
According to the foregoing embodiments, there are a plurality of methods for determining the error information corresponding to each of the M groups of first data, and two methods are described below.
In another embodiment of the decoding method provided in this embodiment of the application, the determining, by the controller, error information corresponding to each of the M groups of first data includes:
the controller decodes the M groups of first data;
the controller determines error information corresponding to the M groups of first data according to the decoding result.
In the embodiment of the application, by decoding the M groups of first data, error information corresponding to each of the M groups of first data can be determined, where the error information can be represented by syndrome weight information.
It should be noted that, at present, by using a decoding method with an error correction function, such as soft-decision decoding, the decoding method with an error correction function reads data from the second page by using a plurality of sets of read voltages, so as to decode the read data to determine error information, and then corrects errors in a subsequent decoding process by using the error information. Based on this, the embodiment of the application determines the error information corresponding to each of the M groups of first data by decoding the M groups of first data, and the error information can be used as a reference for error correction in the decoding process, so that it is not necessary to additionally obtain the error information for error correction, and therefore, the time for determining the optimal read voltage is not increased by decoding the M groups of first data.
One method of determining error information corresponding to each of the M groups of first data is described above, and another method of determining error information corresponding to each of the M groups of first data is described below.
In another embodiment of the decoding method provided in the embodiment of the present application, the second page and the first page are different pages, and the determining, by the controller, the error information corresponding to each of the M groups of the first data includes:
the controller determines error information corresponding to the M groups of first data according to the information in the preset first page.
It should be noted that the controller may write known information in the first page in advance, and the M groups of first data are data corresponding to the first page under the M groups of first read voltages, so that decoding of the M groups of first data is not required, and error information corresponding to the M groups of first data may be determined according to the known information, where the error information may be represented by error bits information.
In the embodiment of the present application, since it is not necessary to decode the M sets of first data, the time for determining the optimum read voltage can be further shortened.
As can be seen from the foregoing embodiments, there are various 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 which are described below.
In another embodiment of the method for decoding provided by the embodiment of the present application, the reading, by the controller, the second data from the second page according to the decoding voltage range, and the decoding the second data includes:
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, wherein the voltage set comprises a plurality of groups of second reading voltages.
The controller may read the second data according to the decoding voltage range and the voltage set, for example, a group of second reading voltages may be selected from the voltage set each time, and then it is determined whether the second data needs to be read according to the group of second reading voltages and decoded according to the decoding voltage range, taking the decoding voltage range as an effective voltage range as an example, if the group of second reading voltages is within the effective voltage range, the second data needs to be read according to the group of second reading voltages and decoded; then, a group of second reading voltages is selected for judgment, and the operations are repeated until the decoding is successful or all groups of second reading voltages in the voltage set are traversed.
For another example, the second reading voltages in the voltage set may be screened according to the decoding voltage range, all the second reading voltages used for decoding are determined, and then the second data is sequentially read from the second page according to the second reading voltages used for decoding and is decoded. Taking the decoding voltage range as the effective voltage range as an example, the voltage set includes 16 sets of second reading voltages, the number of the determined second reading voltages for decoding may be only 10 sets, and finally, according to the 10 sets of second reading voltages, the second data is sequentially read from the second page and decoded until the decoding is successful or the 10 sets of second reading voltages are obtained.
In another embodiment of the method for decoding provided by the embodiment of the present application, the method for decoding further includes:
the controller determines the read recovery time according to the decoding voltage range, wherein there are various methods for determining the read recovery time, which are not limited in the embodiments of the present application, and for example, the read recovery time may be determined according to the decoding time of the historical decoding process.
After determining the read recovery time, the controller reads the second data from the second page according to the decoding voltage range, and decoding the second data includes:
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.
It should be noted that, when the second data is read from the second page and decoded according to the decoding voltage range, in order to prevent the entire decoding process time from being too long, the controller may determine the read recovery time according to the decoding voltage range first, and when the time for reading the second data from the second page and decoding exceeds the read recovery time, stop reading and decoding the data of the second page, so as to prevent the time for determining the optimal reading voltage from being too long.
It can be understood that the second data may also be read from the second page and decoded according to the read recovery time, the decoding voltage range and the preset voltage set, that is, the read recovery time is determined according to the decoding voltage range, the second read voltage is screened from the voltage set according to the decoding voltage range, then the data is read and decoded according to the second read voltage, and the time of the optimal read voltage is determined by the read recovery time control.
The following describes a decoding apparatus in the embodiment of the present application. Referring to fig. 10, a schematic diagram of an embodiment of an apparatus for decoding in an embodiment of the present application is shown. As shown in fig. 10, an embodiment of the present application provides an embodiment of a decoding apparatus, which is applied to a controller of a solid state disk, and includes:
an obtaining unit 601, configured to obtain error information corresponding to N groups of first data, where the N groups of first data are data corresponding to a first page under N groups of first read voltages, and the first page belongs to a data block in a solid state disk, and N is a positive integer;
a determining unit 602, configured to determine a decoding voltage range of a second page according to error information corresponding to N sets of first data and N sets of first read voltages, where the second page belongs to a data block;
the decoding unit 603 is configured to read second data from the second page according to the decoding voltage range and decode the second data.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to:
acquiring M groups of first data corresponding to the first page under M groups of first reading voltages;
determining error information corresponding to the M groups of first data;
and determining the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein the N-M groups of first data are the data corresponding to the first page under the N-M groups of first reading voltages.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to:
determining N-M groups of first reading voltages according to error information corresponding to M groups of first data and M groups of first reading voltages;
reading N-M groups of first data from a first page according to N-M groups of first read voltages;
and determining error information corresponding to the N-M groups of first data respectively.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to:
determining K groups of first reading voltages according to error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein K is smaller than N-M;
reading K groups of first data from the first page according to K groups of first reading voltages;
determining error information corresponding to the K groups of first data;
determining L groups of first reading voltages according to error information corresponding to the K groups of first data, error information corresponding to the M groups of first data, the K groups of first reading voltages and the M groups of first reading voltages, wherein L is less than or equal to N-M-K;
reading L groups of first data from the first page according to the L groups of first reading voltages;
and determining error information corresponding to the L groups of first data.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to: m groups of first data are read from the first page according to the M groups of first read voltages.
In another embodiment of an apparatus for decoding, each of the M sets of first read voltages includes a plurality of paired read voltages;
the acquisition unit 601: the reading circuit is also used for reading third data in at least one pairing page according to a preset third reading voltage, and the pairing page and the first page belong to the same data block;
the acquisition unit is used for 601:
reading H groups of first data from the first page according to H groups of first reading voltages, wherein H is smaller than M;
determining M-H group first reading voltages according to the H group first reading voltages, wherein each group first reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages, and each paired reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages in the M group first reading voltages;
and determining M-H group first data of the first page under the M-H group first read voltage according to the third data and the H group first data.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to:
reading N groups of first data from the first page according to the N groups of first reading voltages;
and determining error information corresponding to the N groups of first data respectively.
In another embodiment of the present application, providing another embodiment of an apparatus for decoding, where the obtaining unit 601 is configured to:
decoding the M sets of first data;
determining error information corresponding to the M groups of first data according to the decoding result;
in another embodiment of the apparatus for decoding, the second page and the first page are different pages;
the acquisition unit 601 is configured to: and determining error information corresponding to the M groups of first data according to the information in the preset first page.
In another embodiment of the apparatus for decoding, the decoding unit 603 is configured to read second data from a second page according to a decoding voltage range and a preset voltage set, and decode the second data, where the voltage set includes a plurality of sets of second reading voltages.
In another embodiment of the apparatus for decoding provided by the embodiment of the present application, the determining unit 602 is further configured to determine a read recovery time according to a decoding voltage range;
the decoding unit 603 is configured to read the second data from the second page according to the read recovery time and the decoding voltage range, and decode the second data.
Referring to fig. 11, an embodiment of a control apparatus in the embodiment of the present application may include one or more processors 701, a memory 702, and a communication interface 703.
The memory 702 may be transient storage or persistent storage. Still further, the processor 701 may be configured to communicate with the memory 702 to execute a series of instruction operations in the memory 702 on the control device.
In this embodiment, the processor 701 may perform the operations performed by the decoding apparatus in the embodiment shown in fig. 10, which is not described herein again.
In this embodiment, the specific functional block division in the processor 701 may be similar to the functional block division manner of the units such as the obtaining unit, the determining unit, and the decoding unit described in fig. 10, and is not described herein again.
An embodiment of the present application further provides a chip or a chip system, where the chip or the chip system includes at least one processor and a communication interface, the communication interface and the at least one processor are interconnected by a line, and the at least one processor is configured to run a computer program or an instruction to perform the operations performed by the controller in the embodiments shown in fig. 5 to fig. 9, which are not described herein again in detail.
The communication interface in the chip may be an input/output interface, a pin, a circuit, or the like.
The embodiments of the present application further provide a first implementation manner of a chip or a chip system, where the chip or the chip system described above in the present application further includes at least one memory, and the at least one memory stores instructions therein. The memory may be a storage unit inside the chip, such as a register, a cache, etc., or may be a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).
Embodiments of the present application also provide a computer storage medium for storing computer software instructions for the control device, which includes a program designed for executing the means for decoding.
The control device may be a means of decoding as described in the foregoing description of fig. 10.
Embodiments of the present application also provide a computer program product, which includes computer software instructions that can be loaded by a processor to implement the flow of the method in fig. 5 to 9.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product.
The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the procedures or functions described in accordance with the present application are generated, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website, computer, server, or data center to another website, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that a computer can store or a data storage device, such as a server, a data center, etc., that is integrated with one or more available media. The usable 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., Solid State Disk (SSD)), among others.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above embodiments are only used for illustrating the technical solutions of the present application, and not for limiting the same; although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions in the embodiments of the present application.

Claims (26)

  1. A method of decoding, comprising:
    the method comprises the steps that a controller obtains error information corresponding to N groups of first data, wherein the N groups of first data are data corresponding to a first page under N groups of first reading voltages, the first page belongs to a data block in a solid state disk, and N is a positive integer;
    the controller determines a decoding voltage range of a second page according to error information corresponding to N groups of first data and the N groups of first reading voltages, wherein the second page belongs to the data block;
    the controller reads second data from the second page according to the decoding voltage range and decodes the second data.
  2. The method of claim 1, wherein N is an integer greater than 1, and the obtaining, by the controller, error information corresponding to each of the N sets of first data comprises:
    the controller acquires M groups of first data corresponding to the first page under M groups of first reading voltages;
    the controller determines error information corresponding to the M groups of first data respectively;
    and the controller determines the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein the N-M groups of first data are the data corresponding to the first page under the N-M groups of first reading voltages.
  3. The method of claim 2, wherein the determining, by the controller, the error information corresponding to each of the N-M groups of first data according to the error information corresponding to each of the M groups of first data and the M groups of first read voltages comprises:
    the controller determines N-M groups of first reading voltages according to error information corresponding to the M groups of first data and the M groups of first reading voltages;
    the controller reads N-M groups of first data from the first page according to the N-M groups of first read voltages;
    the controller determines error information corresponding to each of the N-M groups of first data.
  4. The method of claim 2, wherein the determining, by the controller, the error information corresponding to each of the N-M groups of first data according to the error information corresponding to each of the M groups of first data and the M groups of first read voltages comprises:
    the controller determines K groups of first reading voltages according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein K is smaller than N-M;
    the controller reads K groups of first data from the first page according to the K groups of first reading voltages;
    the controller determines error information corresponding to the K groups of first data respectively;
    the controller determines L groups of first reading voltages according to the error information corresponding to the K groups of first data, the error information corresponding to the M groups of first data, the K groups of first reading voltages and the M groups of first reading voltages, wherein L is smaller than or equal to N-M-K;
    the controller reads L groups of first data from the first page according to the L groups of first read voltages;
    the controller determines error information corresponding to each of the L groups of first data.
  5. The method of any one of claims 2 to 4, wherein the controller acquiring M sets of first data corresponding to the first page at M sets of first read voltages comprises:
    the controller reads M sets of first data from the first page according to the M sets of first read voltages.
  6. The method of any of claims 2-4, wherein each of the M sets of first read voltages comprises a plurality of paired read voltages;
    the method further comprises the following steps: the controller reads third data in at least one pairing page according to a preset third reading voltage, and the pairing page and the first page belong to the same data block;
    the controller acquiring M groups of first data corresponding to the first page under M groups of first reading voltages comprises:
    the controller reads H groups of first data from the first page according to H groups of first reading voltages, wherein H is smaller than M;
    the controller determines M-H group first reading voltages according to H group first reading voltages, wherein each group of first reading voltages in the M-H group first reading voltages comprises a plurality of paired reading voltages, and each paired reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages in the M group first reading voltages;
    the controller determines M-H group first data of the first page at the M-H group first read voltage according to the third data and the H group first data.
  7. The method according to any one of claims 2 to 6, wherein the controller determining the error information corresponding to each of the M groups of first data comprises:
    the controller codes the M sets of first data;
    and the controller determines error information corresponding to the M groups of first data according to the decoding result.
  8. The method according to any one of claims 2 to 6, wherein the second page and the first page are different pages;
    the controller determines that the error information corresponding to each of the M groups of first data includes:
    and the controller determines error information corresponding to the M groups of first data according to preset information in the first page.
  9. The method of claim 1, wherein the controller obtaining error information corresponding to each of the N sets of first data comprises:
    the controller reads N groups of first data from the first page according to N groups of first reading voltages;
    the controller determines error information corresponding to each of the N groups of first data.
  10. The method of any one of claims 1 to 9, wherein the controller reads second data from the second page according to the decoding voltage range, and decoding the second data comprises:
    and 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, wherein the voltage set comprises a plurality of groups of second reading voltages.
  11. The method according to any one of claims 1-9, further comprising:
    the controller determines read recovery time according to the decoding voltage range;
    the controller reads second data from the second page according to the coding voltage range, and coding the second data comprises:
    and the controller reads second data from the second page according to the read recovery time and the decoding voltage range, and decodes the second data.
  12. An apparatus for decoding, comprising:
    the device comprises an acquisition unit, a storage unit and a control unit, wherein the acquisition unit is used for acquiring error information corresponding to N groups of first data respectively, the N groups of first data are data corresponding to a first page under N groups of first reading voltages, the first page belongs to a data block in the solid state disk, and N is a positive integer;
    a determining unit, configured to determine a decoding voltage range of a second page according to error information corresponding to N sets of first data and the N sets of first read voltages, where the second page belongs to the data block;
    and the decoding unit is used for reading second data from the second page according to the decoding voltage range and decoding the second data.
  13. The apparatus of claim 12, wherein N is an integer greater than 1, and wherein the obtaining unit is configured to:
    acquiring M groups of first data corresponding to the first page under M groups of first reading voltages;
    determining error information corresponding to the M groups of first data;
    and determining the error information corresponding to the N-M groups of first data according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein the N-M groups of first data are the data corresponding to the first page under the N-M groups of first reading voltages.
  14. The apparatus of claim 13, wherein the obtaining unit is configured to:
    determining N-M groups of first reading voltages according to error information corresponding to the M groups of first data and the M groups of first reading voltages;
    reading N-M groups of first data from the first page according to the N-M groups of first read voltages;
    and determining error information corresponding to the N-M groups of first data respectively.
  15. The apparatus of claim 13, wherein the obtaining unit is configured to:
    determining K groups of first reading voltages according to the error information corresponding to the M groups of first data and the M groups of first reading voltages, wherein K is smaller than N-M;
    reading K groups of first data from the first page according to the K groups of first reading voltages;
    determining error information corresponding to the K groups of first data;
    determining L groups of first reading voltages according to the error information corresponding to the K groups of first data, the error information corresponding to the M groups of first data, the K groups of first reading voltages and the M groups of first reading voltages, wherein L is less than or equal to N-M-K;
    reading L groups of first data from the first page according to the L groups of first reading voltages;
    and determining error information corresponding to the L groups of first data respectively.
  16. The apparatus according to any one of claims 13 to 15, wherein the obtaining unit is configured to: m groups of first data are read from the first page according to the M groups of first read voltages.
  17. The apparatus of any of claims 13-15, wherein each of the M sets of first read voltages comprises a plurality of paired read voltages;
    the acquisition unit: the reading circuit is also used for reading third data in at least one paired page according to a preset third reading voltage, and the paired page and the first page belong to the same data block;
    the acquisition unit is configured to:
    reading H groups of first data from the first page according to H groups of first reading voltages, wherein H is smaller than M;
    determining M-H group first reading voltages according to H group first reading voltages, wherein each group of first reading voltages in the M-H group first reading voltages comprises a plurality of paired reading voltages, and each paired reading voltage in the M-H group first reading voltages comprises a plurality of paired reading voltages in the M group first reading voltages;
    and determining M-H group first data of the first page under the M-H group first reading voltage according to the third data and the H group first data.
  18. The apparatus according to any one of claims 13 to 17, wherein the obtaining unit is configured to:
    coding the M sets of first data;
    and determining error information corresponding to the M groups of first data according to the decoding result.
  19. The apparatus according to any one of claims 13 to 17, wherein the second page and the first page are different pages;
    the acquisition unit is configured to: and determining error information corresponding to the M groups of first data according to preset information in the first page.
  20. The apparatus of claim 12, wherein the obtaining unit is configured to:
    reading N groups of first data from the first page according to the N groups of first reading voltages;
    and determining error information corresponding to the N groups of first data respectively.
  21. The apparatus of any one of claims 12 to 20, wherein the decoding unit is configured to read second data from the second page according to the decoding voltage range and a preset voltage set, and decode the second data, and the voltage set includes a plurality of sets of second reading voltages.
  22. The apparatus according to any one of claims 12 to 21, wherein the determining unit is further configured to determine a read recovery time according to the decoding voltage range;
    the decoding unit is used for reading second data from the second page according to the reading recovery time and the decoding voltage range and decoding the second data.
  23. A control device, characterized by at least one processor and a memory storing computer-executable instructions executable on the processor, the control device performing the method of any one of claims 1-11 when the computer-executable instructions are executed by the processor.
  24. A chip or system of chips comprising at least one processor and a communication interface, the communication interface and the at least one processor being interconnected by a line, the at least one processor being configured to execute a computer program or instructions to perform the method according to any one of claims 1 to 11.
  25. A computer-readable storage medium storing one or more computer-executable instructions, wherein when the computer-executable instructions are executed by a processor, the processor performs the method of any one of claims 1-11.
  26. A computer program product storing one or more computer executable instructions, wherein when the computer executable instructions are executed by the processor, the processor performs the method of any one of claims 1 to 11.
CN201980102172.0A 2019-11-29 2019-11-29 Decoding method, device and control equipment Pending CN114667570A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/122113 WO2021102962A1 (en) 2019-11-29 2019-11-29 Decoding method and apparatus, and control device

Publications (1)

Publication Number Publication Date
CN114667570A true CN114667570A (en) 2022-06-24

Family

ID=76129877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980102172.0A Pending CN114667570A (en) 2019-11-29 2019-11-29 Decoding method, device and control equipment

Country Status (2)

Country Link
CN (1) CN114667570A (en)
WO (1) WO2021102962A1 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100120991A (en) * 2009-05-07 2010-11-17 삼성전자주식회사 Memory system performing erasure manipulation and reading method thereof
US9576671B2 (en) * 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
KR102459077B1 (en) * 2016-01-12 2022-10-27 삼성전자주식회사 Memory system using non-linear filtering shceme and read method thereof
CN106981314A (en) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 A kind of method of the quick error correction of solid state hard disc
CN108154902B (en) * 2017-12-22 2020-11-13 联芸科技(杭州)有限公司 High-reliability error detection method, reading control method and device for memory
CN108777156A (en) * 2018-05-31 2018-11-09 郑州云海信息技术有限公司 A kind of flash memory data processing method and device

Also Published As

Publication number Publication date
WO2021102962A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US9916906B2 (en) Periodically updating a log likelihood ratio (LLR) table in a flash memory controller
US11557352B2 (en) Adjustable read retry order based on decoding success trend
US9146691B2 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
US10068650B1 (en) Characterizing and operating a non-volatile memory device
US20150006983A1 (en) Read voltage setting method, and control circuit, and memory storage apparatus using the same
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US10489246B2 (en) Data storage device and data maintenance method thereof
CN109933455B (en) Dynamic multi-level decoding
US10083754B1 (en) Dynamic selection of soft decoding information
CN111954863A (en) Providing data for a memory system based on an adjustable error rate
US20200293441A1 (en) Data storage devices and data processing methods
CN109213703B (en) Data detection method and data detection device
TW201526014A (en) Data storage device and error correction method thereof
JP2018163707A (en) Semiconductor storage device and read control method of the same
CN111488120B (en) Data storage system and method for adaptive chip enable set time
US11880277B2 (en) Selecting an error correction code type for a memory device
US8276033B2 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
US20170287569A1 (en) Electronic apparatus and data verification method using the same
CN114667570A (en) Decoding method, device and control equipment
CN114078560B (en) Error correction decoding method of NAND flash memory chip, storage medium and SSD device
KR20230165580A (en) Memory system for controlling operating speed and data processing system including the same
US11106531B2 (en) Flash memory controller, storage device and reading method thereof
US9690652B2 (en) Search device and search method searching data based on key
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
CN112988449A (en) Device and method for writing data of page group into flash memory module

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination