CN115509462B - Re-reading method and device, medium and solid state disk - Google Patents

Re-reading method and device, medium and solid state disk Download PDF

Info

Publication number
CN115509462B
CN115509462B CN202211420182.9A CN202211420182A CN115509462B CN 115509462 B CN115509462 B CN 115509462B CN 202211420182 A CN202211420182 A CN 202211420182A CN 115509462 B CN115509462 B CN 115509462B
Authority
CN
China
Prior art keywords
sub
storage mode
reading
command sequence
rereading
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.)
Active
Application number
CN202211420182.9A
Other languages
Chinese (zh)
Other versions
CN115509462A (en
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.)
Beijing Dera Technology Co Ltd
Original Assignee
Beijing Dera Technology 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 Beijing Dera Technology Co Ltd filed Critical Beijing Dera Technology Co Ltd
Priority to CN202211420182.9A priority Critical patent/CN115509462B/en
Publication of CN115509462A publication Critical patent/CN115509462A/en
Application granted granted Critical
Publication of CN115509462B publication Critical patent/CN115509462B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention relates to a rereading method and device, a medium and a solid state disk. The method comprises the following steps: acquiring a storage mode of a page where the current reading operation is located; determining a corresponding sub-table type in the header of the re-read table according to the storage mode; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table header and at least two sub-tables, the table header comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types; acquiring a corresponding sub-table according to the offset address of the sub-table type corresponding to the storage mode in the table header, and selecting a group of re-reading values from the sub-table; and generating a corresponding command sequence according to the selected re-reading value group, and performing re-reading operation once according to the command sequence. The invention realizes the separation of codes and the rereading table in the firmware, so that the firmware does not need to be updated when the rereading table is updated.

Description

Re-reading method and device, medium and solid state disk
Technical Field
The invention relates to the technical field of solid state disks, in particular to a rereading method and device, a medium and a solid state disk.
Background
Bit overturning easily occurs in the daily use process of a storage unit of the flash memory, and random errors occur. This phenomenon becomes more serious as the manufacturing process of the flash memory becomes smaller. The factors influencing bit flipping mainly include: (1) increase of flash block erase times, i.e. life aging; (2) data retention; (3) a read disturb; and (4) large reading and writing temperature difference and the like. When the number of bits with errors during a read operation is greater than the error correction capability of the ECC, a re-read function is usually used to repair data errors caused by bit flipping. The ECC is a shorthand of Error Correcting Code, and is a technology capable of realizing Error checking and correction. Bit means Bit.
A re-reading table is maintained in firmware of the SSD, and the re-reading table is especially important for guaranteeing the safety of data. The format definitions of the command sequences corresponding to the re-reading tables used by different manufacturers are different, even the format definitions of the command sequences of the re-reading tables in the firmware of different models of flash memories in the same manufacturer are different.
In the prior art, the rereading table is stored in the firmware code area, and different flash manufacturers and even different types of flash memories have larger or smaller difference in corresponding command sequences. In order to adapt to the differences, the firmware of the flash memories of different models needs to correspond to a rereading table and a rereading module, the rereading module is used for completing a rereading function, the difference of format definition modes of command sequences corresponding to the rereading table can cause that codes of the rereading modules in the firmware of the flash memories of different models are different, and the flash memories of different models cannot use the same firmware, so that the flash memories of different models respectively correspond to one firmware. Moreover, when the reread table needs to be updated, the reread table is located in the firmware code area, and after the reread table is updated, the firmware needs to be correspondingly updated.
The host controller of the solid state disk SSD is generally adapted to various types of flash memories, even all types of flash memories on the market. Usually, in order to adapt to a new flash memory, the firmware of a flash memory which runs stably is taken as a basis, and the firmware is modified according to differences between rereading tables of different types of flash memories, so that the adaptation of the new flash memory is completed. Due to the difference of the rereading tables of the flash memories of different models, the same firmware cannot be used for completing rereading, and the independent firmware needs to be adapted. For different flash memory models, different flash memories use different firmware versions due to the difference of the adaptive weight reading table, so that the difference of the firmware, even the number of the firmware, is increased, the working complexity is increased, more labor cost of firmware personnel is consumed, and the maintenance cost is also increased. Moreover, in the prior art, the re-reading modules corresponding to the flash memories of different models in the firmware have uniqueness, which is not beneficial to the management of firmware codes. The more differentiated the code, the more complex the maintenance.
Disclosure of Invention
In order to solve the technical problems or at least partially solve the technical problems, the invention provides a rereading method and device, a medium and a solid state disk.
In a first aspect, an embodiment of the present invention provides a rereading method, including:
acquiring a storage mode of a page where the current reading operation is located;
determining a corresponding sub-table type in the header of the re-read table according to the storage mode; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table head and at least two sub-tables, the table head comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types;
acquiring a corresponding sub-table according to the offset address of the sub-table type corresponding to the storage mode in the table header, and selecting a group of re-reading values from the sub-table;
and generating a corresponding command sequence according to the selected re-reading value group, and performing re-reading operation once according to the command sequence.
In a second aspect, an embodiment of the present invention provides a rereading apparatus, including:
the mode acquisition module is used for acquiring the storage mode of the page where the current reading operation is positioned;
the type determining module is used for determining the corresponding sub-table type in the header of the re-read table according to the storage mode; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table header and at least two sub-tables, the table header comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types;
a sub-table obtaining module, configured to obtain a corresponding sub-table according to an offset address of a sub-table type corresponding to the storage mode in the table header, and select a group of re-read values from the sub-table;
and the command generation module is used for generating a corresponding command sequence according to the selected re-reading value group and carrying out re-reading operation once according to the command sequence.
In a third aspect, an embodiment of the present invention provides a computer-readable medium, on which computer instructions are stored, and when executed by a processor, the computer instructions cause the processor to execute the method provided in the first aspect.
In a fourth aspect, an embodiment of the present invention provides a solid state disk, including a storage controller, where the storage controller includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the steps of the method provided in the first aspect when executing the computer program.
The rereading method and device, the medium and the solid state disk provided by the embodiment of the invention have at least the following technical effects respectively or after being combined:
(1) The method comprises the steps of obtaining a storage mode of a page where current reading operation is located, searching a corresponding sub-table type in a re-reading table according to the storage mode, obtaining the corresponding sub-table according to a corresponding offset address, selecting a group of re-reading values in the sub-table, generating a corresponding command sequence according to the selected re-reading value group, and performing re-reading operation once according to the command sequence, so that re-reading of the page in different storage modes is achieved. The rereading table is stored in other positions outside the firmware code area of the solid state disk, so that the separation of codes in the firmware and the rereading table is realized, the firmware does not need to be updated when the rereading table is updated, and the flash memories of different solid state disks can adopt universal firmware.
(2) In one embodiment, a corresponding behavior template is determined according to the flash manufacturer, the flash model and the storage mode, the behavior template corresponding to the SLC storage mode includes an atomic operation template, and the behavior template corresponding to the TLC storage mode includes a plurality of atomic operation templates; each atomic operation template is used for representing a format definition mode of a command sequence corresponding to the flash manufacturer and the flash model. Therefore, when the command sequence is generated, the corresponding atomic operation template can be directly obtained, and the corresponding command sequence is generated according to the atomic operation template.
(3) In one embodiment, the current state of the solid state disk in the life cycle is acquired; and reordering the sequence of each group of the re-reading values in the sub-table according to the current state so as to arrange the optimal re-reading value corresponding to the current state in a first group. The solid state disk can improve the read-write performance by reordering the re-read value groups in the re-read table, and error correction can be successfully carried out without trying for many times.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and together with the description, serve to explain the principles of the invention.
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without inventive exercise.
FIG. 1 is a flow chart illustrating a rereading method according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a reread table in accordance with an embodiment of the present invention;
FIG. 3 is a flowchart illustrating an embodiment of a rereading apparatus.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be obtained by a person skilled in the art without any inventive step based on the embodiments of the present invention, are within the scope of the present invention.
In a first aspect, an embodiment of the present invention provides a rereading method, referring to fig. 1, the method includes the following steps S110 to S140:
s110, acquiring a storage mode of a page where the current reading operation is located;
wherein, the storage mode may include an SLC storage mode and a TLC storage mode; the SLC English language is a Single Level Cell, namely, each memory Cell stores 1bit, and each memory Cell in the SLC memory mode representation page stores 1bit of memory mode. And the TLC English language is Triple-Level-Cell, namely each storage unit stores 3bits, and each storage unit in the TLC storage mode characterization page stores a storage mode of 3 bits. bit means "bit".
It can be understood that, when the number of bits with errors during the read operation is greater than the ECC correction capability, the steps S110 to S140 in the embodiment of the present invention can be initiated. The method provided by the embodiment of the invention can be executed by a rereading module in firmware in the SSD.
S120, determining a corresponding sub-table type in the header of the re-read table according to the storage mode;
the re-reading table is stored in other positions except a firmware code area of the solid state disk, the re-reading table comprises a table header and at least two sub-tables, the table header comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types.
That is, the reread table is not stored in the firmware code region, e.g., the reread table and firmware are stored in different locations on the nor flash or flash block of the solid state disk. Wherein, the nor flash is a nonvolatile flash block. This eliminates the need to update the firmware when updating the re-read table.
When the solid state disk SSD is started, firmware starts to initialize, and at the moment, a re-reading table can be read from a non-volatile flash memory block nor flash memory or a flash memory block to a Random Access Memory (RAM) to complete initialization.
For example, the rereading table shown in fig. 2 has a header and N sub-tables, where N is a positive integer greater than or equal to 2. Parameter information of the rereaded table, for example, a sub-table type corresponding to each sub-table and an offset address in the rereaded table, is stored in the header.
S130, acquiring a corresponding sub-table according to the offset address of the sub-table type corresponding to the storage mode in the table header, and selecting a group of re-reading values from the sub-table;
it can be understood that each storage mode corresponds to one of the sub-table types, so that after the storage mode is obtained in step S110, the corresponding sub-table type is searched in the header, and then the corresponding sub-table can be found according to the offset address of the sub-table of the searched sub-table type, and then a set of re-read values can be selected from the sub-table.
In one embodiment, the re-reading table may include an SLC sub-table corresponding to the SLC storage mode and a TLC sub-table corresponding to the TLC storage mode; the sub table types included in the table header may include an SLC type corresponding to the SLC sub table and a TLC type corresponding to the TLC sub table.
That is, the sub table types included in the header of the reread table include an SLC type, a TLC type, and further, the sub table included in the reread table includes an SLC sub table, a TLC sub table. The offset addresses of the table header include the offset address of the SLC sub-table and the offset address of the TLC sub-table.
In one embodiment, each sub-table may include a sub-table header and a plurality of sets of readback values; each group of re-reading values in the sub-table comprises at least one re-reading value, and each re-reading value is a re-reading voltage and can also be called an offset voltage; the sub-table head stores parameter information of the sub-table, and the parameter information comprises the number of times of re-reading through the sub-table and the sub-table type corresponding to the sub-table.
The number of times of re-reading through the sub-table in which the sub-table is located in the sub-table head can be simply called as re-reading number, the number of times of obtaining the re-reading value set in the sub-table can be known through the re-reading number, and further the sorting of the re-reading value set in the sub-table in the next selection can be known, so that the re-reading value set in one sub-table is selected according to the sequence, namely, a first re-reading value set is selected in the first selection, a second re-reading value set is selected in the second selection, … … is selected, and the like.
And the sub-table type in the sub-table header corresponds to the corresponding sub-table type in the header of the re-read table.
Each of the sets of re-read values, i.e. re-read value sets, includes at least one re-read voltage and a corresponding register address in one re-read value set, for example, each of the sets of re-read values in the TLC sub-table includes 7 re-read voltages and 7 register addresses, i.e. 7 re-read values. Each set of re-read values in the SLC sub-table includes 1 re-read voltage and 1 register address, i.e., one re-read value.
Here, the reread voltage refers to an offset voltage when rereading is performed for a currently read page.
And S140, generating a corresponding command sequence according to the selected re-reading value group, and performing re-reading operation once according to the command sequence.
That is, the command sequence is generated according to the group of the unread values selected in S130, where the command sequence includes the group of the unread values, and after the command sequence is sent to the flash memory of the SSD, the flash memory may perform the unread operation according to the group of the unread values in the command sequence.
In an embodiment, performing a rereading operation according to the command sequence in S140 may specifically include:
a1, sending the command sequence to a flash memory so that the flash memory carries out rereading operation according to a rereading value in the command sequence;
a2, if the data can be read out, finishing the rereading operation;
and a3, if the data cannot be read out, selecting a next group of re-reading values in the sub-table, generating a corresponding command sequence according to the next group of re-reading values, and returning to the step a1.
That is, when a group of re-read values is selected from a sub-table, a first group of re-read values is selected first, if data cannot be read according to a command sequence corresponding to the group of re-read values, a next group of re-read values needs to be selected from the sub-table, then a command sequence is generated according to the next group of re-read values, and further, a next re-read operation is performed until data can be correctly read in a currently read page, or all re-read groups traverse, and the read data is still wrong.
In one embodiment, the header may further include a flash manufacturer and a flash model. Because different flash manufacturers or even the same flash manufacturer have different format definitions of the command sequence for different flash models, an atomic operation template is set for the format definition mode of the command sequence for each flash model in each flash manufacturer in advance, and the atomic operation template can reflect the format definition mode of the command sequence.
It can be understood that although the command sequence of the flash memory rereading of each manufacturer and each model is different, there is a certain rule in general: one is a format definition mode for setting characteristic command sequences adopted by manufacturers such as magnesian, intel, armoring, western data and the like, and the other is a format definition mode for a special command sequence used by a heirlich or other manufacturers. The configuration process of the atomic operation template is not complicated.
Further, for the same flash memory model of the same flash memory manufacturer, the atomic operation templates required to be adopted by the pages in different storage modes are different, for example, for the page in the SLC storage mode, 1 atomic operation template is required. While a page for TLC storage mode requires multiple atomic operation templates, for example, if 7 rereading voltages and 7 register addresses are included in each set of rereading values in the TLC sub-table, 7 atomic operation templates are required, and it is seen that one atomic operation template actually reflects the format definition of a command sequence of one rereading voltage and a corresponding register address.
That is, in an embodiment, the method provided in the embodiment of the present invention may further include: determining a corresponding behavior template according to the flash manufacturer, the flash model and the storage mode; the behavior template corresponding to the SLC storage mode comprises an atomic operation template, and the behavior template corresponding to the TLC storage mode comprises a plurality of atomic operation templates; each atomic operation template is used for representing a format definition mode of a command sequence corresponding to the flash manufacturer and the flash model.
That is, if the storage mode is the SLC storage mode, the behavior template includes 1 atomic operation template; if the storage mode is a TLC storage mode, a plurality of atomic operation templates, for example, 7 atomic operation templates, are included in the behavior template. And the selected atomic operation template is the atomic operation template corresponding to the flash manufacturer and the flash model in the header information, because the format definition modes of the command sequences corresponding to different flash manufacturers and different flash models are different.
It is to be understood that the selected one or more atomic operation templates form a behavioral template.
Further, the generating a corresponding command sequence according to the selected re-reading value set in S140 may specifically include: and generating a command sequence corresponding to each atomic operation template according to the format definition mode represented by each atomic operation template in the behavior template, wherein the command sequence comprises the readback values in the selected readback value group.
That is to say, after the behavior templates are obtained, the selected re-reading value group is subjected to command generation according to each atomic operation template in the behavior templates to obtain a command sequence, and then the command sequence is sent to the flash memory to perform re-reading operation.
In an embodiment, the method provided in the embodiment of the present invention may further include:
and adding or deleting sub-tables to the re-reading table in operation, or adding or deleting one or more groups of re-reading values in the sub-tables.
As can be seen, the rerun table supports adding or deleting sub-tables in the SSD operation, and the rerun table also supports adding or deleting one or more sets of rerun values in a sub-table. Even so far the rereading voltage in a certain set of rereading values is modified.
For example, some firmware has an algorithm for adaptively scanning the optimal read voltage, and then the optimal read voltage can be added to the re-read table. The self-adaptive scanning optimal reading voltage means that an optimal reading voltage is calculated by a firmware algorithm in a certain judgment standard in a mode of setting different reading voltages. Because the flash memory is in various states during its life cycle, the re-read voltage from the original factory may not cover all the conditions. The optimal voltage which is scanned in a self-adaptive mode is stored and then is adjusted to the position, closer to the front, of the re-reading table, so that the possibility of correct reading can be effectively improved, the invalid re-reading times can be greatly reduced, and the reading performance of the SSD can be greatly improved.
It can be understood that when the rereading operation according to the first group of rereaded values fails, the second group of rereaded values in the corresponding sub-table are selected for rereading operation, and if the rereading operation still fails, the third group of rereaded values are selected for rereading operation. And the process is circulated until the read error correction is successful or all the groups of re-read values are tried. In the life cycle of the solid state disk SSD, there are various complex and various states, each state has its own corresponding optimal re-reading value set, and if an unchangeable re-reading table is used, then error correction can be successful only by sequentially trying multiple re-reading values in different states, which will seriously affect the read-write performance of the solid state disk SSD. It is necessary that the runtime can modify the order of the sets of rereaded values in the rereading table. Therefore, in an embodiment, the method provided in embodiment i of the present invention may further include:
acquiring the current state of the solid state disk in the life cycle;
reordering the sequence of each group of re-read values in the sub-table according to the current state so as to arrange the optimal re-read value corresponding to the current state in a first group; different states have different sets of optimal readback values.
For example, in the state of reading and writing across temperature, the corresponding optimal re-reading value set is directly put into the first set, and then the re-reading value set is tried preferentially, so that the data can be correctly read out at the fastest speed.
Therefore, in operation, along with the change of the state of the solid state disk SSD, such as the aging of a flash memory, the change of read-write temperature and the like, the reread table needs to be correspondingly adjusted, otherwise, the read-write performance is influenced, and therefore the real-time adjustment of the reread table has important practical significance. The solid state disk can improve the read-write performance by reordering the re-read value groups in the re-read table, and error correction can be successfully carried out without trying for many times.
In a second aspect, an embodiment of the present invention provides a rereading apparatus, and referring to fig. 3, the apparatus 100 includes:
a mode obtaining module 110, configured to obtain a storage mode of a page where a current read operation is located;
a type determining module 120, configured to determine, according to the storage mode, a sub-table type corresponding to the table header of the re-read table; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table head and at least two sub-tables, the table head comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types;
a sub-table obtaining module 130, configured to obtain a corresponding sub-table according to an offset address of the sub-table type corresponding to the storage mode in the table header, and select a group of re-read values from the sub-table;
and a command generating module 140, configured to generate a corresponding command sequence according to the selected re-reading value group, and perform a re-reading operation according to the command sequence.
In one embodiment, the storage mode includes an SLC storage mode and a TLC storage mode; the SLC storage mode representation page comprises a storage mode that each storage unit in the SLC storage mode representation page stores 1bit, and a storage mode that each storage unit in the TLC storage mode representation page stores 3 bits; correspondingly, the rereading table comprises an SLC sublist corresponding to the SLC storage mode and a TLC sublist corresponding to the TLC storage mode; the sub-table types included in the table header include an SLC type corresponding to the SLC sub-table and a TLC type corresponding to the TLC sub-table.
In one embodiment, the header further comprises a flash manufacturer and a flash model; the device further comprises:
the template determining module is used for determining a corresponding behavior template according to the flash manufacturer, the flash model and the storage mode; the behavior template corresponding to the SLC storage mode comprises an atomic operation template, and the behavior template corresponding to the TLC storage mode comprises a plurality of atomic operation templates; each atomic operation template is used for representing a format definition mode of a command sequence corresponding to the flash manufacturer and the flash model;
correspondingly, the command generating module 140 is specifically configured to: and generating a command sequence corresponding to each atomic operation template according to the format definition mode represented by each atomic operation template in the behavior template, wherein the command sequence comprises the readback values in the selected readback value group.
In one embodiment, the command generation module 140 includes:
the command sending unit is used for executing the command a1 and sending the command sequence to the flash memory so that the flash memory carries out re-reading operation according to the re-reading value in the command sequence;
a flow ending unit used for executing a2, if the data can be read out, the rereading operation is ended;
and a flow circulation unit, configured to execute step a3, and if the data cannot be read out, select a next set of re-read values from the sub-table, generate a corresponding command sequence according to the next set of re-read values, and return to the command sending unit to execute step a1.
In one embodiment, the rerun table supports adding or deleting sub-tables in the SSD operation, the rerun table also supporting adding or deleting one or more sets of rerun values in a sub-table.
In one embodiment, the apparatus provided in the embodiment of the present invention may further include:
the state acquisition module is used for acquiring the current state of the solid state disk in the life cycle;
the sequence adjusting module is used for reordering the sequence of the re-reading values in the sub-table according to the current state so as to arrange the optimal re-reading value corresponding to the current state in a first group; different states have different sets of optimal readback values.
In one embodiment, each sub-table comprises a sub-table header and a plurality of sets of rereaded values; each group of re-reading values in the sub-table comprises at least one re-reading value, and each re-reading value is a re-reading voltage; the sub-table head stores parameter information of the sub-table, and the parameter information comprises the number of times of re-reading through the sub-table and the sub-table type corresponding to the sub-table.
It is to be understood that for the explanation, the detailed description, the beneficial effects, the examples and the like of the related contents in the apparatus provided in the embodiment of the present invention, reference may be made to the corresponding parts in the method provided in the first aspect, and details are not described herein again.
In a third aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements the steps of the method provided in the first aspect.
Specifically, a system or an apparatus equipped with a storage medium on which software program codes that realize the functions of any of the embodiments described above are stored may be provided, and a computer (or a CPU or MPU) of the system or the apparatus is caused to read out and execute the program codes stored in the storage medium.
In this case, the program code itself read from the storage medium can realize the functions of any of the above-described embodiments, and thus the program code and the storage medium storing the program code constitute a part of the present invention.
Further, it should be clear that the functions of any one of the above-described embodiments may be implemented not only by executing the program code read out by the computer, but also by causing an operating system or the like operating on the computer to perform a part or all of the actual operations based on instructions of the program code.
Further, it is to be understood that the program code read out from the storage medium is written to a memory provided in an expansion board inserted into the computer or to a memory provided in an expansion module connected to the computer, and then causes a CPU or the like mounted on the expansion board or the expansion module to perform part or all of the actual operations based on instructions of the program code, thereby realizing the functions of any of the above-described embodiments.
It is to be understood that for the explanation, the detailed description, the beneficial effects, the examples and the like of the contents in the computer-readable medium provided in the embodiment of the present invention, reference may be made to the corresponding parts in the method provided in the first aspect, and details are not described here.
In a fourth aspect, an embodiment of the present invention provides a solid state disk, where the solid state disk includes a storage controller, where the storage controller includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the steps of the method provided in the first aspect are implemented.
It can be understood that for the explanation, the specific implementation, the beneficial effects, the examples and the like of the related contents in the solid state disk provided in the embodiment of the present invention, reference may be made to corresponding parts in the method provided in the first aspect, and details are not described here.
All the embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, as for the apparatus embodiment, since it is substantially similar to the method embodiment, the description is relatively simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
Those skilled in the art will recognize that, in one or more of the examples described above, the functions described in this disclosure may be implemented in hardware, software, hardware, or any combination thereof. When implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
The above-mentioned embodiments, objects, technical solutions and advantages of the present invention are further described in detail, it should be understood that the above-mentioned embodiments are only exemplary embodiments of the present invention, and are not intended to limit the scope of the present invention, and any modifications, equivalent substitutions, improvements and the like made on the basis of the technical solutions of the present invention should be included in the scope of the present invention.

Claims (7)

1. A method of rereading, comprising:
acquiring a storage mode of a page where the current reading operation is located;
determining a corresponding sub-table type in the header of the re-read table according to the storage mode; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table head and at least two sub-tables, the table head comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types;
acquiring a corresponding sub-table according to the offset address of the sub-table type corresponding to the storage mode in the table header, and selecting a group of re-reading values from the sub-table;
generating a corresponding command sequence according to the selected re-reading value group, and performing re-reading operation once according to the command sequence, wherein the re-reading operation once according to the command sequence comprises the following steps: a1, sending the command sequence to a flash memory so that the flash memory carries out rereading operation according to a rereading value in the command sequence; a2, if the data can be read out correctly, the rereading operation is finished; a3, if the data cannot be read out correctly, selecting a next group of re-reading values from the sub-table, generating a corresponding command sequence according to the next group of re-reading values, and returning to the step a1;
the storage mode comprises an SLC storage mode and a TLC storage mode; the SLC storage mode representation page comprises a storage mode that each storage unit in the SLC storage mode representation page stores 1bit, and a storage mode that each storage unit in the TLC storage mode representation page stores 3 bits; correspondingly, the rereading table comprises an SLC sublist corresponding to the SLC storage mode and a TLC sublist corresponding to the TLC storage mode; the sub-table types included in the table header include an SLC type corresponding to the SLC sub-table and a TLC type corresponding to the TLC sub-table.
2. The method of claim 1, wherein the header further comprises a flash vendor and a flash model; the method further comprises the following steps:
determining a corresponding behavior template according to the flash manufacturer, the flash model and the storage mode; the behavior template corresponding to the SLC storage mode comprises an atomic operation template, and the behavior template corresponding to the TLC storage mode comprises a plurality of atomic operation templates; each atomic operation template is used for representing a format definition mode of a command sequence corresponding to the flash manufacturer and the flash model;
correspondingly, the generating a corresponding command sequence according to the selected re-reading value group includes:
and generating a command sequence corresponding to each atomic operation template according to the format definition mode represented by each atomic operation template in the behavior template, wherein the command sequence comprises the readback values in the selected readback value group.
3. The method of claim 1, further comprising:
acquiring the current state of the solid state disk in the life cycle;
reordering the sequence of each group of re-read values in the sub-table according to the current state so as to arrange the optimal re-read value corresponding to the current state in a first group; different states have different sets of optimal readback values.
4. The method of claim 1, wherein each sub-table comprises a sub-table header and a plurality of sets of readback values; each group of re-reading values in the sub-table comprises at least one re-reading value, and each re-reading value is a re-reading voltage; the sub-table head stores parameter information of the sub-table, and the parameter information comprises the number of times of re-reading through the sub-table and the sub-table type corresponding to the sub-table.
5. A rereading apparatus, comprising:
the mode acquisition module is used for acquiring the storage mode of the page where the current reading operation is located;
the type determining module is used for determining the corresponding sub-table type in the header of the re-read table according to the storage mode; the method comprises the steps that a re-reading table is stored in other positions except a firmware code area of a solid state disk, the re-reading table comprises a table header and at least two sub-tables, the table header comprises sub-table types and offset addresses corresponding to the sub-tables, and each storage mode corresponds to one of the sub-table types;
a sub-table obtaining module, configured to obtain a corresponding sub-table according to an offset address of a sub-table type corresponding to the storage mode in the table header, and select a group of re-read values from the sub-table;
a command generating module, configured to generate a corresponding command sequence according to the selected re-reading value set, and perform a re-reading operation according to the command sequence, where performing a re-reading operation according to the command sequence includes: a1, sending the command sequence to a flash memory so that the flash memory carries out rereading operation according to a rereading value in the command sequence; a2, if the data can be read out correctly, the rereading operation is finished; a3, if the data cannot be read out correctly, selecting a next group of re-reading values from the sub-table, generating a corresponding command sequence according to the next group of re-reading values, and returning to the step a1;
the storage mode comprises an SLC storage mode and a TLC storage mode; the SLC storage mode representation page comprises a storage mode that each storage unit in the SLC storage mode representation page stores 1bit, and a storage mode that each storage unit in the TLC storage mode representation page stores 3 bits; correspondingly, the rereading table comprises an SLC sublist corresponding to the SLC storage mode and a TLC sublist corresponding to the TLC storage mode; the sub-table types included in the table header include an SLC type corresponding to the SLC sub-table and a TLC type corresponding to the TLC sub-table.
6. A computer readable medium having stored thereon computer instructions which, when executed by a processor, cause the processor to perform the method of any of claims 1 to 4.
7. A solid state disk comprising a storage controller, the storage controller comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the steps of the method according to any one of claims 1 to 4 when executing the computer program.
CN202211420182.9A 2022-11-15 2022-11-15 Re-reading method and device, medium and solid state disk Active CN115509462B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211420182.9A CN115509462B (en) 2022-11-15 2022-11-15 Re-reading method and device, medium and solid state disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211420182.9A CN115509462B (en) 2022-11-15 2022-11-15 Re-reading method and device, medium and solid state disk

Publications (2)

Publication Number Publication Date
CN115509462A CN115509462A (en) 2022-12-23
CN115509462B true CN115509462B (en) 2023-02-24

Family

ID=84514433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211420182.9A Active CN115509462B (en) 2022-11-15 2022-11-15 Re-reading method and device, medium and solid state disk

Country Status (1)

Country Link
CN (1) CN115509462B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582490A (en) * 2017-09-28 2019-04-05 北京忆芯科技有限公司 Intelligence is read order again and is generated
CN112596681A (en) * 2020-12-25 2021-04-02 深圳大普微电子科技有限公司 Re-reading command processing method, flash memory controller and solid state disk
CN112631515A (en) * 2020-12-17 2021-04-09 珠海妙存科技有限公司 Self-adaptive flash memory data re-reading method, device and medium
CN114138190A (en) * 2021-11-19 2022-03-04 北京得瑞领新科技有限公司 Data reading method and device of flash memory device, storage medium and flash memory device
CN114296645A (en) * 2021-12-17 2022-04-08 合肥大唐存储科技有限公司 Rereading method in Nand flash memory and solid state disk

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210118510A1 (en) * 2020-12-04 2021-04-22 Intel Corporation Read latency reduction for partially-programmed block of non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582490A (en) * 2017-09-28 2019-04-05 北京忆芯科技有限公司 Intelligence is read order again and is generated
CN112631515A (en) * 2020-12-17 2021-04-09 珠海妙存科技有限公司 Self-adaptive flash memory data re-reading method, device and medium
CN112596681A (en) * 2020-12-25 2021-04-02 深圳大普微电子科技有限公司 Re-reading command processing method, flash memory controller and solid state disk
CN114138190A (en) * 2021-11-19 2022-03-04 北京得瑞领新科技有限公司 Data reading method and device of flash memory device, storage medium and flash memory device
CN114296645A (en) * 2021-12-17 2022-04-08 合肥大唐存储科技有限公司 Rereading method in Nand flash memory and solid state disk

Also Published As

Publication number Publication date
CN115509462A (en) 2022-12-23

Similar Documents

Publication Publication Date Title
US7849382B2 (en) Memory control circuit, nonvolatile storage apparatus, and memory control method
US7921339B2 (en) Flash storage device with data correction function
JP5162763B2 (en) Memory access system
US8051339B2 (en) Data preserving method and data accessing method for non-volatile memory
TWI396202B (en) Error correcting controller and flash memory chip system and error correcting method thereof
US20120254511A1 (en) Memory storage device, memory controller, and data writing method
US20130138871A1 (en) Flash Memory Device and Data Access Method for Same
CN109582216B (en) Data storage device and data processing method of memory device
US20100287433A1 (en) Data access apparatus and data access method
JP2005242797A (en) Error correction circuit
CN116880782B (en) Embedded memory and testing method thereof
JP4158526B2 (en) Memory card and data writing method to memory
CN115509462B (en) Re-reading method and device, medium and solid state disk
CN116880781B (en) Storage device and control method thereof
CN106250193B (en) A kind of system start method and system based on nand memory
US8151150B2 (en) Data storage device and method for writing test data to a memory
CN112835601A (en) Firmware updating method, device, equipment and storage medium
CN113220221A (en) Memory controller and data processing method
CN109324929B (en) Snapshot creating method, device and equipment and readable storage medium
US20070174736A1 (en) Storage medium management apparatus, storage medium management program, and storage medium management method
CN111124742B (en) Flash data verification method, flash controller, storage medium and device
JP6423282B2 (en) Memory control device and memory control method
JP2021111427A (en) Storage device and control method thereof
CN117420965B (en) Memory and control method thereof
CN113946469B (en) Data error correction processing method and device for solid state disk

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
GR01 Patent grant
GR01 Patent grant