CN114121127A - Dynamically adjusting read redo sequences to optimize read command processing - Google Patents

Dynamically adjusting read redo sequences to optimize read command processing Download PDF

Info

Publication number
CN114121127A
CN114121127A CN202010877753.6A CN202010877753A CN114121127A CN 114121127 A CN114121127 A CN 114121127A CN 202010877753 A CN202010877753 A CN 202010877753A CN 114121127 A CN114121127 A CN 114121127A
Authority
CN
China
Prior art keywords
read
command
redo
media interface
present application
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
CN202010877753.6A
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.)
Chengdu Starblaze Technology Co ltd
Original Assignee
Chengdu Starblaze 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 Chengdu Starblaze Technology Co ltd filed Critical Chengdu Starblaze Technology Co ltd
Priority to CN202010877753.6A priority Critical patent/CN114121127A/en
Publication of CN114121127A publication Critical patent/CN114121127A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Methods and apparatus are provided for dynamically adjusting read redo sequences to optimize read command processing. The provided read command processing method comprises the following steps: responding to the processing failure of the read command, acquiring one or more read threshold parameters from the read redo sequence table according to the entry sequence of the read redo sequence table, and generating one or more read redo commands according to the acquired one or more read threshold parameters, wherein the one or more read redo commands access the same address as the read command; in response to the successful processing of a first read redo command in the one or more read redo commands, recording the number of error bits of the data read by the first read redo command in a first entry of a read redo sequence table in which a read threshold parameter used by the first read redo command is recorded; and adjusting the sequence of the entries in the read redo sequence list according to the error bit number.

Description

Dynamically adjusting read redo sequences to optimize read command processing
Technical Field
The present application relates to a storage device technology, and in particular, to a method for intelligently performing read redo on an NVM in a storage device and a media interface controller for implementing the method.
Background
FIG. 1 illustrates a block diagram of a storage device. The storage device 102 is coupled to a host for providing storage capabilities to the host. The host and the storage device 102 may be coupled by various methods, including but not limited to, connecting the host and the storage device 102 by, for example, SATA (Serial Advanced Technology Attachment), SCSI (Small Computer System Interface), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), USB (Universal Serial Bus), PCIE (Peripheral Component Interconnect Express, PCIE, high speed Peripheral Component Interconnect), NVMe (NVM Express, high speed nonvolatile storage), ethernet, fibre channel, wireless communication network, etc. The host may be an information processing device, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, etc., capable of communicating with the storage device in the manner described above. The Memory device 102 includes an interface 103, a control section 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory) 110.
NAND flash Memory, phase change Memory, FeRAM (Ferroelectric RAM), MRAM (magnetoresistive Memory), RRAM (Resistive Random Access Memory), XPoint Memory, and the like are common NVM. To overcome the problem that data stored in the NVM is damaged to some extent, the data stored on the NVM is usually protected by an Error Correction Code (ECC) when the NVM is accessed. Commonly used error correction codes include BCH codes, LDPC codes, RS codes, and the like.
The interface 103 may be adapted to exchange data with a host by means such as SATA, IDE, USB, PCIE, NVMe, SAS, ethernet, fibre channel, etc.
The control unit 104 is used to control data transfer between the interface 103, the NVM chip 105, and the DRAM 110, and also used for memory management, host logical address to flash physical address mapping, erase leveling, bad block management, and the like. The control component 104 can be implemented in various manners of software, hardware, firmware, or a combination thereof, for example, the control component 104 can be in the form of an FPGA (Field-programmable gate array), an ASIC (Application-Specific Integrated Circuit), or a combination thereof. The control component 104 may also include a processor or controller in which software is executed to manipulate the hardware of the control component 104 to process IO (Input/Output) commands. The control component 104 may also be coupled to the DRAM 110 and may access data of the DRAM 110. FTL tables and/or cached IO command data may be stored in the DRAM.
Control section 104 includes a flash interface controller (or referred to as a media interface controller, a flash channel controller) that is coupled to NVM chip 105 and issues commands to NVM chip 105 in a manner that conforms to an interface protocol of NVM chip 105 to operate NVM chip 105 and receive command execution results output from NVM chip 105. Known NVM chip interface protocols include "Toggle", "ONFI", etc.
An NVM chip includes one or more Logical Units (LUNs). One or more dies (Die) may be included within the NVM chip package. Typically, a logic cell corresponds to a single die. The logical unit may include a plurality of planes (planes). Multiple planes within a logic unit may be accessed in parallel, while multiple logic units within an NVM chip may execute commands and report status independently of each other. At the time of being available from
The meaning of target, logical unit, Plane (Plane) is provided in "Open NAND Flash Interface Specification (resolution 3.0)" obtained from http:// www.micron.com// media/Documents/Products/Other% 20Documents/ONFI3_0gold. as hx, which is part of the prior art.
NVM chips typically store and read data on a page basis. And data is erased in blocks. A block (also referred to as a physical block) contains a plurality of pages (also referred to as physical pages). The physical page has a fixed size, e.g., 17664 bytes. Physical pages may also have other sizes.
Fig. 2 shows a detailed block diagram of the control part of the storage device.
Hosts access storage devices with IO commands that follow a storage protocol. The control component generates one or more storage commands according to the IO commands from the host and provides the storage commands to the media interface controller. The media interface controller generates storage media access commands (e.g., program commands, read commands, erase commands) that conform to the interface protocol of the NVM chip from the storage commands. The control unit also tracks that all storage commands generated from one IO command are executed and indicates the processing result of the IO command to the host.
Referring to fig. 2, the control means includes, for example, a host interface, a host command processing unit, a storage command processing unit, a media interface controller, and a storage media management unit. The host interface acquires the IO command provided by the host, generates a storage command and provides the storage command to the storage command processing unit. The storage command accesses, for example, a storage space of the same size, for example, 4 KB. A data unit recorded in the NVM chip corresponding to data accessed by one storage command is referred to as a data frame. A physical page records one or more frames of data. For example, a physical page is 17664 bytes in size, and a data frame is 4KB in size, then one physical page can store 4 data frames.
The smallest data unit protected by the data correction code is called an ECC block. The ECC block includes user data and check data and has different sizes. The ratio of the user data unit size to the ECC block size is referred to as the code rate of the ECC. The code rate of the ECC embodies the error correction capability of the ECC. Generally, the lower the code rate, the stronger the error correction capability. In one example, the user data size within an ECC block is one data frame size and the check data size is 15 bytes. In yet another example, the user data size within an ECC block is 512 bytes and the check data size is 8 bytes, so that one frame of data can accommodate multiple ECC blocks.
The storage medium management unit maintains a logical to physical address translation for each storage command. For example, the storage medium management unit includes an FTL table. For a read command, the storage medium management unit outputs a physical address corresponding to a logical address accessed by the storage command, for a write command, the storage medium management unit allocates an available physical address to the storage medium management unit, and records a mapping relation between the accessed logical address and the allocated physical address. The storage medium management unit also maintains functions such as garbage collection, wear leveling, etc. required to manage the NVM chips.
The storage command processing unit operates the media interface controller to send a storage media access command to the NVM chip according to the physical address provided by the storage media management unit. For clarity, commands sent by the storage command processing unit to the media interface controller are referred to as media interface commands, while commands sent by the media interface controller to the NVM chip are referred to as storage media access commands. The storage medium access commands follow the interface protocol of the NVM chip. Taking a storage medium access read command as an example, the read commands supported by the NVM chip are divided into multiple types according to the size of the data to be read, such as a read command to read a complete physical page, a read command to read, for example, one, two or more data frames, a read command to read multiple planes, a read command to read multiple physical pages of a wordline, etc.
The media interface command corresponds to a storage media access command such that the media interface controller determines the type of storage media access command generated based on the type of media interface command.
Fig. 3 shows a block diagram of a prior art media interface controller.
The media interface controller of the control unit comprises a media interface, an ECC encoding unit and an ECC decoding unit. The media interface is coupled to the NVM chip, provides a storage media access command to the NVM chip, and obtains data from the NVM chip according to the storage media access read command. The media interface couples the ECC encoding unit and the ECC decoding unit. The media interface controller generates and provides storage media access commands to the NVM chip based on the media interface commands obtained from the storage command processing unit (see also fig. 2). When writing data to the NVM chip, the media interface controller moves the data to be written from the memory to the NVM chip. When reading data from the NVM chip, the media interface controller moves the data read from the NVM chip to the memory. The ECC encoding unit performs ECC encoding on data to be written, the ECC decoding unit performs ECC decoding on data read out from the NVM chip, and the decoded result is written into the memory.
The memory is, for example, a DRAM or an SRAM integrated with the control unit coupled to the control unit.
Referring to fig. 3, taking read data as an example, when the media interface controller operates, the storage command processing unit supplies a media interface command to the media interface controller (indicated by (1) in fig. 3). The media interface generates a storage media access (read) command to the NVM chip (indicated by (2) in fig. 3). The media interface also provides the read data output by the NVM chip to an ECC decoding unit (indicated by (3) in fig. 3). By way of example, the ECC decoding unit fails decoding, and the media interface controller notifies the storage command processing unit of the decoding failure (indicated by (4) in fig. 3). The storage command processing unit starts an error handling process, such as error correction by Read redo (Read Retry), provides a media interface command indicating Read redo to the media interface controller, and the media interface generates a storage media access (Read) command indicating Read redo to the NVM chip (indicated by (5) in fig. 3). Read redo is a type of read command that the NVM chip can handle with specified read threshold parameters. The read redo command carries, for example, a read threshold parameter to indicate the read threshold to be used. By adjusting the read threshold parameter, there is an opportunity to adapt to the characteristics (random noise, wear, electron escape, etc.) of the storage medium of the NVM chip, so that the probability of reading correct data is improved.
In response to a storage medium access (read) command instructing read redo, the NVM chip outputs read data, and the media interface supplies the read data to the ECC decoding unit for ECC decoding again (indicated by (6) in fig. 3). For example, if the current ECC decoding is successful, the decoded data is loaded into the memory (indicated by (7) in fig. 3). If the ECC decoding fails again at "(6)", error handling is also performed by repeating the process of "(4)" to "(7)".
In still other examples, the media interface controller autonomously performs read redo. In response to the ECC decoding unit failing to decode, the media interface controller attempts other read threshold parameter or parameters directly through the media interface command instructing read redo.
Disclosure of Invention
The storage command processing unit is capable of performing complex error recovery procedures, but the error handling procedures that are repeated between the storage command processing unit and the media interface controller extend the error handling time and load the storage command processing unit. Such an increase in load becomes particularly serious in the case where the storage command processing unit is realized by running software, and even if the read command processing time becomes long, the processing capacity of the storage command processing unit is limited due to the increase in load. And for the case that the media interface controller autonomously performs read redo, the complexity is limited, and the types of read redo attempted by the media interface controller are few or the complicated strategy of searching for the read threshold parameter cannot be implemented.
Alternatively or additionally, in some cases, a supplier of control components of a storage device delivers programmable control components to a storage device manufacturer. The storage device manufacturer is programmed to implement the storage command processing unit, while the control component supplier implements the media interface controller. Suppliers of media interface controllers generally have a more complete understanding of the nature of NVM chips and thus can better implement the error recovery process for read commands, including using a more optimal read redo command to complete the processing of read commands faster or more efficiently. While the memory device manufacturer may have a relatively low level of understanding of the features of the NVM chip. It is therefore desirable for the media interface controller to provide more guidance for the error recovery process and intelligently select or prompt the read threshold parameters used in read redo to reduce error handling time, reduce the error rate of the storage device, and extend the life of the storage device.
In order to solve the above technical problem, according to a first aspect of the present application, there is provided a first read command processing method according to the first aspect of the present application, including: receiving a media interface command; and adjusting the read command or the read redo command to be generated according to the media interface command, and providing the adjusted read command or the read redo command to the nonvolatile memory chip.
According to a first read command processing method of a first aspect of the present application, there is provided a second read command processing method of the first aspect of the present application, wherein a first read threshold parameter for a physical address accessed by a read command or a read redo command to be generated is identified according to the physical address.
According to the second read command processing method of the first aspect of the present application, there is provided the third read command processing method of the first aspect of the present application, wherein the generated read command or read redo command is updated according to the identified first read threshold parameter, and the read command or read redo command is updated to a read redo command indicating use of the first read threshold parameter.
According to the second or third read command processing method of the first aspect of the present application, there is provided the fourth read command processing method of the first aspect of the present application, wherein if the first read threshold parameter for the physical address of the read command or the read redo command is not found, the read command or the read redo command is not updated, and the nonvolatile memory chip is directly provided.
According to the first to fourth read command processing methods of the first aspect of the present application, there is provided the fifth read command processing method of the first aspect of the present application, wherein according to the read redo command to be generated, if the read redo command to be generated is invalid for the physical address to be accessed by the read redo command to be generated, or does not have a better effect with respect to the read command, the read redo command is updated to the read command to access the physical address.
According to the first to fourth read command processing methods of the first aspect of the present application, there is provided the sixth read command processing method of the first aspect of the present application, wherein, according to the read redo command to be generated, if the read redo command to be generated is invalid for a physical address to be accessed by the read redo command to be generated or does not have a better effect with respect to the read command, the read redo command is directly provided to the nonvolatile memory chip without updating the read redo command.
According to the first to sixth read command processing methods of the first aspect of the present application, there is provided the seventh read command processing method of the first aspect of the present application, wherein according to the read redo command to be generated, if the first read threshold parameter is identified for the physical address to be accessed by the read redo command to be generated, the read redo command is updated to the read redo command indicating that the first read threshold parameter is used.
According to the first to seventh read command processing methods of the first aspect of the present application, there is provided the eighth read command processing method according to the first aspect of the present application, wherein, according to the read command or the read redo command to be generated, the read threshold table is queried with the physical address to be accessed by the read command or the read redo command or a part of the physical address to acquire the read threshold corresponding to the physical address to be accessed, the read command or the read redo command is updated with the acquired read threshold, and the updated command is provided to the nonvolatile memory chip.
According to an eighth read command processing method of the first aspect of the present application, there is provided the ninth read command processing method of the first aspect of the present application, wherein if an entry in which a physical address to be accessed and a read threshold are recorded exists in the read threshold table, the read command to be generated is updated to a read redo command using the read threshold in the entry, and the read redo command is provided to the media interface.
According to an eighth or ninth read command processing method of the first aspect of the present application, there is provided the tenth read command processing method of the first aspect of the present application, wherein, according to a read redo command to be generated that indicates that a physical address is accessed using a second read threshold, the read threshold table is queried with the physical address, if an entry recording the physical address does not exist in the read threshold table, the read redo command is supplied to the nonvolatile memory chip without modification, and an entry recording the physical address and the second read threshold is also added in the read threshold table.
According to eighth to tenth read command processing methods of the first aspect of the present application, there is provided the eleventh read command processing method of the first aspect of the present application, wherein, according to the read redo command to be generated, the read redo command instructs to access the physical address using the third read threshold, the read threshold table is queried with the physical address, if an entry in which the physical address is recorded exists in the read threshold table but the fourth read threshold recorded in the entry is different from the third read threshold, the read redo command is supplied to the nonvolatile memory chip without modification, and the read threshold of the entry in which the physical address is recorded is also updated to the third read threshold in the read threshold table.
According to the eighth to eleventh read command processing methods of the first aspect of the present application, there is provided the twelfth read command processing method of the first aspect of the present application, wherein the method further includes identifying an uncorrectable flag in the read threshold table entry, where the uncorrectable flag indicates that data obtained by accessing the corresponding physical address with the read threshold recorded in the read threshold entry cannot be decoded by a correct error correction code.
According to a twelfth read command processing method of the first aspect of the present application, there is provided the thirteenth read command processing method of the first aspect of the present application, wherein if an uncorrectable flag exists in a read threshold entry corresponding to a physical address indicated by the read command to be generated, the read command is directly provided to the nonvolatile memory chip.
According to a twelfth or thirteenth read command processing method of the first aspect of the present application, there is provided the fourteenth read command processing method of the first aspect of the present application, wherein, according to the read redo command to be generated, if an entry of the physical address indicated by the read redo command exists in the read threshold table, but an uncorrectable flag exists in the entry, the uncorrectable flag in the entry is cleared, and the read redo command is provided to the nonvolatile memory chip.
According to twelfth to fourteenth read command processing methods of the first aspect of the present application, there is provided the fifteenth read command processing method of the first aspect of the present application, wherein in response to a failure of decoding by the error correction code decoding unit of data read out from the nonvolatile memory chip in accordance with the read command accessing the first physical address or the read redo command, an uncorrectable flag is set in an entry of the read threshold table corresponding to the first physical address.
According to twelfth to fifteenth read command processing methods of the first aspect of the present application, there is provided the sixteenth read command processing method according to the first aspect of the present application, wherein in response to a failure of decoding by the error correction code decoding unit of data read out from the nonvolatile memory chip in accordance with the read command accessing the first physical address or the read redo command, if there is no entry corresponding to the first physical address in the read threshold table, an entry corresponding to the first physical address is added in the read threshold table, and an uncorrectable flag is set for the entry.
According to eighth to sixteenth read command processing methods of the first aspect of the present application, there is provided the seventeenth read command processing method of the first aspect of the present application, wherein the physical address in the entry of the read threshold table is a physical block number of the nonvolatile memory chip, a layer number of the 3D nonvolatile memory chip, or a combination of the physical block number and the layer number.
According to a seventeenth read command processing method of the first aspect of the present application, there is provided the eighteenth read command processing method of the first aspect of the present application, wherein the number of entries of the read threshold table is sufficient to accommodate all possible values of the physical block number, the layer number of the 3D nonvolatile memory chip, or a combination of the physical block number and the layer number.
According to a seventeenth read command processing method of the first aspect of the present application, there is provided the nineteenth read command processing method of the first aspect of the present application, wherein the number of entries of the read threshold table can accommodate only part of possible values of the physical block number, the layer number of the 3D nonvolatile memory chip, or a combination of the physical block number and the layer number.
According to the first to nineteenth read command processing methods of the first aspect of the present application, there is provided the twentieth read command processing method of the first aspect of the present application, wherein the media interface command further includes receiving a read command adjustment unit enable flag.
According to a twenty-first read command processing method of the first aspect of the present application, there is provided the twenty-first read command processing method of the first aspect of the present application, wherein if the read command adjustment unit enables the flag to be valid, the read command or the read redo command to be generated according to the media interface command is adjusted.
According to a twentieth or twenty-first read command processing method of the first aspect of the present application, there is provided the twenty-second read command processing method of the first aspect of the present application, wherein if the read command adjustment unit enable flag is invalid, the read command or the read redo command to be generated according to the media interface command is directly supplied to the nonvolatile memory chip.
According to the first to twenty-second read command processing methods of the first aspect of the present application, there is provided the twenty-third read command processing method of the first aspect of the present application, wherein the method further comprises providing a predicted read threshold for a physical address accessed by a read command or a read redo command to be generated.
According to a twenty-third read command processing method of the first aspect of the present application, there is provided the twenty-fourth read command processing method of the first aspect of the present application, wherein the predicted read threshold is given according to a read threshold table.
According to a twenty-fourth read command processing method of the first aspect of the present application, there is provided the twenty-fifth read command processing method of the first aspect of the present application, wherein an average value or a weighted average value is calculated for the read thresholds of all or part of the entries in the read threshold table as the predicted read threshold.
According to a twenty-fourth or twenty-fifth read command processing method of the first aspect of the present application, there is provided the twenty-sixth read command processing method of the first aspect of the present application, wherein an average value or a weighted average value is calculated as the predicted read threshold value for the read threshold values of all or part of entries in the read threshold value table having physical addresses close to the physical address to be accessed by the generated read command or read redo command.
According to a twenty-sixth read command processing method of the first aspect of the present application, there is provided the twenty-seventh read command processing method of the first aspect of the present application, wherein the physical address proximity includes that two physical addresses are numerically proximate, that memory cells represented by the two physical addresses are spatially located close on the nonvolatile memory chip, and/or that usage states of the memory cells represented by the two physical addresses are proximate.
According to a twenty-fourth read command processing method of the first aspect of the present application, there is provided the twenty-eighth read command processing method of the first aspect of the present application, wherein the predicting the read threshold value according to the temperature, the erase count and/or the read count of the memory cell is further included.
According to twenty-fourth to twenty-eighth read command processing methods of the first aspect of the present application, there is provided a twenty-ninth read command processing method of the first aspect of the present application, wherein the method further includes generating a read redo command using the predicted read threshold and providing the read redo command to the nonvolatile memory chip.
According to twenty-fourth to twenty-ninth read command processing methods of the first aspect of the present application, there is provided the thirty-fourth read command processing method of the first aspect of the present application, wherein updating the read threshold table with the predicted read threshold is further included.
According to twenty-fourth to thirty-fourth read command processing methods of the first aspect of the present application, there is provided the thirty-first read command processing method of the first aspect of the present application, wherein generating the predicted read threshold according to the uncorrectable flag of the read threshold table is further included.
According to a thirty-first read command processing method of the first aspect of the present application, there is provided the thirty-first read command processing method of the first aspect of the present application, wherein in response to the presence of the uncorrectable flag, a predicted read threshold different from the read threshold indicated by the entry in which the uncorrectable flag is located is generated.
According to twenty-fourth to thirty-third read command processing methods of the first aspect of the present application, there is provided the thirty-third read command processing method of the first aspect of the present application, wherein the read threshold value recorded in the entry of the read threshold value table is incremented by a specified number of units in a direction in which the read threshold value is incremented as the predicted read threshold value.
According to twenty-fourth to thirty-third read command processing methods of the first aspect of the present application, there is provided the thirty-fourth read command processing method of the first aspect of the present application, wherein the media interface command further includes a read threshold prediction enable flag.
According to a thirty-fourth read command processing method of the first aspect of the present application, there is provided the thirty-fifth read command processing method of the first aspect of the present application, wherein if the read threshold prediction enable flag is valid, a predicted read threshold is generated for the accessed physical address.
According to thirty-fourth to thirty-fifth read command processing methods of the first aspect of the present application, there is provided the thirty-sixth read command processing method of the first aspect of the present application, wherein if the read threshold prediction enable flag is invalid, the predicted read threshold is not provided.
According to twenty-fourth to thirty-fourth read command processing methods of the first aspect of the present application, there is provided a thirty-seventh read command processing method of the first aspect of the present application, wherein the first media interface command is provided to the media interface;
in response to the media interface indicating that an uncorrectable error occurred to process the first media interface command, providing a second media interface command to the media interface, wherein the second media interface command accesses the same physical address as the first media command, the second media interface command also bearing a valid read threshold prediction enable flag.
According to the thirty-eighth read command processing method of the first aspect of the present application, there is provided the thirty-seventh read command processing method of the first aspect of the present application, wherein a corresponding micro instruction sequence is obtained according to a media interface command to be generated, and a specified signal is generated on a lead coupled to the nonvolatile memory chip according to a signal indicated by the micro instruction sequence;
the microinstructions of the microinstruction sequence include a fetch threshold microinstruction and/or an update threshold microinstruction.
According to a thirty-eighth read command processing method of the first aspect of the present application, there is provided the thirty-ninth read command processing method of the first aspect of the present application, wherein the operand to the get read threshold microinstruction includes a physical address.
According to thirty-eighth to thirty-ninth read command processing methods of the first aspect of the present application, there is provided the forty-fourth read command processing method of the first aspect of the present application, wherein the operand to the acquire read threshold microinstruction further includes a register storing a read threshold table or a register storing an index of the read threshold table.
According to thirty-eighth to forty-fourth read command processing methods of the first aspect of the present application, there is provided the forty-first read command processing method of the first aspect of the present application, wherein the get read threshold microinstruction further comprises a result register, and in response to the get read threshold microinstruction being executed, the result register is filled with a read threshold corresponding to the physical address indicated by the get read threshold microinstruction.
According to a forty-first read command processing method of the first aspect of the present application, there is provided the forty-second read command processing method of the first aspect of the present application, wherein when the obtaining of the read threshold microinstruction is executed, an entry corresponding to a physical address indicated by the obtaining of the read threshold microinstruction is obtained from the read threshold table by using the physical address, and a read threshold of the entry is obtained to fill the result register.
According to a forty-first read command processing method of the first aspect of the present application, there is provided the forty-third read command processing method of the first aspect of the present application, wherein the result register is filled with a predicted read threshold when the get read threshold microinstruction is executed.
According to thirty-eighth to forty-third read command processing methods of the first aspect of the present application, there is provided the forty-fourth read command processing method of the first aspect of the present application, wherein the read threshold value obtained by obtaining the read threshold value microinstruction is used to configure a microinstruction sequence that processes a read redo command, so that when the microinstruction sequence is executed, the read redo command indicating the obtained read threshold value is provided to the nonvolatile memory chip.
According to thirty-eighth to forty-fourth read command processing methods of the first aspect of the present application, there is provided the forty-fifth read command processing method of the first aspect of the present application, wherein the micro instruction sequence for processing the read redo command includes a micro instruction sequence for generating a set feature command and a micro instruction sequence for generating the read redo command, and the micro instruction sequence for setting the feature command is used to set the read threshold of the read redo command to the fifth read threshold; and the reading threshold value of the reading instruction corresponding to the reading redo command is a fourth reading threshold value.
According to a forty-fifth read command processing method of the first aspect of the present application, there is provided the forty-sixth read command processing method of the first aspect of the present application, wherein the microinstruction sequence for processing the read redo command further includes an additional microinstruction sequence for generating a set characteristic command, which is used to set the read threshold as a fourth read threshold used by the read command after the read redo command processing is finished.
According to thirty-eighth to forty-sixth read command processing methods of the first aspect of the present application, there is provided a forty-seventh read command processing method of the first aspect of the present application, wherein the operand of the update read threshold microinstruction includes a physical address and a value of a read threshold to be updated.
According to a forty-seventh read command processing method of the first aspect of the present application, there is provided the forty-eighth read command processing method of the first aspect of the present application, wherein in response to the update read threshold microinstruction being executed, a corresponding entry of the read threshold table is obtained according to the physical address indicated by the update read threshold microinstruction, and the read threshold indicated by the microinstruction is written in the entry.
According to the first to forty-eighth read command processing methods of the first aspect of the present application, there is provided the forty-ninth read command processing method of the first aspect of the present application, wherein, in response to an available space in the local cache being smaller than a threshold, a read pause signal is generated to instruct the nonvolatile memory chip to pause outputting of data to be acquired by the read command or the read redo command.
According to a forty-ninth read command processing method of the first aspect of the present application, there is provided the fifty-fifth read command processing method of the first aspect of the present application, wherein the read pause signal is deactivated in response to an available space in the local cache being not less than a threshold.
According to a forty-ninth or fifty-fifth read command processing method of the first aspect of the present application, there is provided the fifty-first read command processing method of the first aspect of the present application, wherein the read enable signal or the clock signal supplied to the nonvolatile memory chip is suspended or canceled in response to the read suspend signal.
According to a forty-ninth or fifty-fifth read command processing method of the first aspect of the present application, there is provided the fifty-fifth read command processing method of the first aspect of the present application, wherein the nonvolatile memory chip is instructed to suspend outputting of data to be acquired by the read command or the read redo command by generating a signal to place the nonvolatile memory chip in a suspended state.
According to a fifty-first read command processing method of the first aspect of the present application, there is provided the fifty-third read command processing method of the first aspect of the present application, wherein in a state where the nonvolatile memory chip is instructed to suspend outputting data, in response to the read suspend signal being inactivated or no longer being generated, the read enable signal or the clock signal supplied to the nonvolatile memory chip is resumed to instruct the nonvolatile memory chip to continue outputting data to be acquired by the read command or the read redo command.
According to the forty-ninth to fifty-third read command processing methods of the first aspect of the present application, there is provided the fifty-fourth read command processing method of the first aspect of the present application, wherein the local cache is managed according to a size of an error correction code block.
According to thirty-eighth to fifty-fourth read command processing methods of the first aspect of the present application, there is provided a fifty-fifth read command processing method of the first aspect of the present application, wherein generating the micro instruction sequence of the read command or the read redo command further comprises fetching the read threshold micro instruction and/or updating the read threshold micro instruction.
According to a fifty-fifth read command processing method of the first aspect of the present application, there is provided the fifty-sixth read command processing method of the first aspect of the present application, wherein by executing the obtain read threshold microinstruction, if a read threshold to be used is obtained, a microinstruction sequence that generates a read redo command is called to continue processing, and the microinstruction sequence that processes the read redo command is configured with the obtained read threshold, so as to issue the read redo command to the nonvolatile memory chip.
According to a fifteenth or fifty-sixth read command processing method of the first aspect of the present application, there is provided a fifty-seventh read command processing method of the first aspect of the present application, wherein, to generate the read redo command, the get read threshold micro-instruction is first invoked to get a read threshold or a predicted read threshold, and the micro-instruction sequence generating the read redo command is configured with the obtained read threshold or the predicted read threshold, so as to issue the read redo command to the nonvolatile memory chip.
According to a fifty-seventh read command processing method of the first aspect of the present application, there is provided the fifty-eighth read command processing method of the first aspect of the present application, wherein the update read threshold microinstruction is further executed to update the read threshold recorded in the entry corresponding to the physical address to be accessed in the read threshold table.
According to the first to fifty-eighth read command processing methods of the first aspect of the present application, there is provided a fifty-ninth read command processing method of the first aspect of the present application, wherein the signal driver is driven in accordance with a signal indicated by the micro instruction sequence to generate a specified signal on a lead coupled to the nonvolatile memory chip.
According to a fifty-ninth read command processing method of the first aspect of the present application, there is provided the sixteenth read command processing method of the first aspect of the present application, wherein the microinstruction sequence further comprises a count value indicating that the specified signal is repeatedly driven a plurality of times.
According to a sixty read command processing method of the first aspect of the present application, there is provided the sixty read command processing method of the first aspect of the present application, wherein the counting is stopped in response to the read pause signal being active.
According to a sixty or sixty-first read command processing method of the first aspect of the present application, there is provided the sixty read command processing method of the first aspect of the present application, wherein the count is resumed in response to the read pause signal being invalid or being revoked.
According to sixty-sixth to sixty-fourth read command processing methods of the first aspect of the present application, there is provided the sixty-third read command processing method of the first aspect of the present application, wherein in a case where the counting is stopped, the driving wire is stopped to instruct the nonvolatile memory chip to suspend the data transfer.
According to fifty-ninth to sixty-third read command processing methods of the first aspect of the present application, there is provided the sixty-fourth read command processing method of the first aspect of the present application, wherein the read suspend signal further instructs the signal driver to generate a read enable signal indicating invalidation or revocation on a lead coupled with the nonvolatile memory chip to instruct the nonvolatile memory chip to suspend data transfer.
According to a fifty-ninth to sixty-fourth read command processing method of the first aspect of the present application, there is provided the sixty-fifth read command processing method of the first aspect of the present application, wherein the read suspend signal further instructs the signal driver to generate a signal on a lead coupled with the nonvolatile memory chip, the signal instructing the nonvolatile memory chip to enter a suspend state.
According to fifty ninth to sixty-fifth read command processing methods of the first aspect of the present application, there is provided the sixty-sixth read command processing method of the first aspect of the present application, wherein the read pause signal is effective only for execution of a microinstruction sequence that generates a read command or a read redo command.
According to fifty ninth to sixty-sixth read command processing methods of the first aspect of the present application, there is provided the sixty-seventh read command processing method of the first aspect of the present application, wherein the yielding process is performed in response to a read pause signal.
According to a sixty-seventh read command processing method of the first aspect of the present application, there is provided the sixty-eight read command processing method of the first aspect of the present application, wherein, in response to the read pause signal, execution of a microinstruction sequence that currently generates the read command or the read redo command is paused, and a partial or full execution state of the microinstruction sequence that currently generates the read command or the read redo command is saved.
According to a sixteenth or sixty-eighth read command processing method of the first aspect of the present application, there is provided the sixty-ninth read command processing method of the first aspect of the present application, wherein after suspending execution of a current micro instruction sequence for generating a read command or a read redo command, the other micro instruction sequence is executed to send the read command or the read redo command to the other nonvolatile memory chip or the other logic unit of the nonvolatile memory chip.
According to a sixty-ninth read command processing method of the first aspect of the present application, there is provided the seventy read command processing method of the first aspect of the present application, wherein after the read pause signal is deactivated and the processing completes the execution yield of the other microinstruction sequence or the other microinstruction sequence, the partial or full execution state of the previously saved microinstruction sequence generating the read command or the read redo command is restored, and the processing of the previously saved microinstruction sequence generating the read command or the read redo command is continued.
According to a second aspect of the present application, there is provided a first media interface controller according to the second aspect of the present application, comprising a read command adjusting unit, a media interface, and an error correction code decoding unit, the media interface being coupled with the read command adjusting unit and the error correction code decoding unit;
the read command adjusting unit only adjusts the media interface command corresponding to the read command or the read redo command according to the media interface command; and provides the adjusted media interface command to the media interface.
According to a first media interface controller of a second aspect of the present application, there is provided a second media interface controller of the second aspect of the present application, wherein the read command adjusting unit includes a command parsing unit and a read threshold table, the read command adjusting unit maintains the read threshold table, the read threshold table includes a plurality of entries, and the entries of the read threshold table include a physical address and a read threshold;
in response to receiving a media interface command corresponding to the read command or the read redo command, the command parsing unit queries the read threshold table with a physical address to be accessed by the read command or the read redo command or a part of the physical address to acquire a read threshold corresponding to the physical address to be accessed, updates the media interface command corresponding to the read command or the read redo command with the acquired read threshold, and provides the updated command to the media interface.
A third media interface controller according to the second aspect of the present application is provided according to the first or second media interface controller according to the second aspect of the present application, wherein the media interface includes a microinstruction execution unit and a signal driver;
the medium interface acquires a corresponding micro instruction sequence according to the received medium interface command and provides the micro instruction sequence to the micro instruction execution unit; the micro-instruction execution unit executes the micro-instruction sequence, drives the signal driver according to the signal indicated by the micro-instruction sequence, generates a designated serial number on a lead wire coupled with the nonvolatile memory chip by the medium interface, and generates a signal sequence conforming to the interface protocol of the nonvolatile memory chip by executing the micro-instruction sequence.
The third media interface controller according to the second aspect of the present application provides the fourth media interface controller according to the second aspect of the present application, wherein the sequence of microinstructions corresponding to the media interface command of the read command or the read redo command includes an acquire read threshold microinstruction and/or an update read threshold microinstruction.
According to a fourth media interface controller of the second aspect of the present application, there is provided the fifth media interface controller of the second aspect of the present application, wherein in response to the fetch read threshold microinstruction being executed, the read threshold table is queried with a physical address or a portion thereof indicated by the fetch read threshold microinstruction, and a read threshold derived from the read threshold table is derived.
According to a fourth or fifth media interface controller of the second aspect of the present application, there is provided the sixth media interface controller of the second aspect of the present application, wherein in response to the update read threshold micro-instruction being executed, the read threshold indicated by the update read threshold micro-instruction is recorded in an entry of the read threshold table associated with the physical address or part thereof indicated by the update read threshold micro-instruction.
According to the fourth to sixth media interface controllers of the second aspect of the present application, there is provided the seventh media interface controller of the second aspect of the present application, wherein in response to a read threshold being obtained by executing the get read threshold microinstruction, the microinstruction sequence that generates the read redo command is called to continue processing, and the microinstruction sequence that generates the read redo command is configured with the obtained read threshold.
According to a third aspect of the present application, there is provided a first storage device according to the third aspect of the present application, comprising the above-mentioned media interface controller.
According to a fourth aspect of the present application, there is provided a first read command processing method according to the fourth aspect of the present application, comprising: responding to the processing failure of the read command, sequentially acquiring one or more read threshold parameters from a read redo sequence list, and generating one or more read redo commands according to the acquired one or more read threshold parameters, wherein the one or more read redo commands access the same address as the read command; in response to the successful processing of a first read redo command in the one or more read redo commands, recording the number of error bits of the data read by the first read redo command in a first entry of a read redo sequence table in which a read threshold parameter used by the first read redo command is recorded; and adjusting the sequence of the entries in the read redo sequence list according to the error bit number.
According to a fourth aspect of the present invention, there is provided a second read command processing method according to the fourth aspect of the present invention, wherein in response to a successful processing of the first read redo command, data read out in accordance with the first read command is used as data read out in accordance with the read command.
According to the first or second read command processing method of the fourth aspect of the present application, there is provided a third read command processing method of the fourth aspect of the present application, in which the obtaining one or more read threshold parameters from the read redo sequence table according to the entry order of the read redo sequence table, and generating one or more read redo commands according to the obtained one or more read threshold parameters includes: and acquiring a read threshold parameter according to the entry sequence of the read-redo sequence table, generating a read-redo command according to the acquired read threshold parameter, responding to the failure of the acquired read-redo command, acquiring the next read threshold parameter according to the entry sequence of the read-redo sequence table, and generating the next read-redo command according to the acquired next read threshold parameter until the acquired next read-redo command is successfully processed.
According to one of the first to third read command processing methods of the fourth aspect of the present application, there is provided the fourth read command processing method of the fourth aspect of the present application, wherein in response to a processing failure of a read redo command generated using all read threshold parameters in the read redo sequence table, the processing failure of the read command is indicated.
According to one of the first to fourth read command processing methods of the fourth aspect of the present application, a fifth read command processing method according to the fourth aspect of the present application is provided, where if the number of error bits of the read data of the first read redo command is smaller than the number of error bits of the top-ranked entry of the read redo sequence table, the order of the entries in the read redo sequence table is adjusted, and the first entry is used as the top-ranked entry in the read redo sequence table.
According to one of the first to fifth read command processing methods of the fourth aspect of the present application, there is provided a sixth read command processing method of the fourth aspect of the present application, wherein if the number of error bits of the read data of the first read redo command is greater than the number of error bits of the top-ranked entry of the read redo sequence table, the order of the entries in the read redo sequence table is not changed.
According to one of the first to fifth read command processing methods of the fourth aspect of the present application, there is provided the seventh read command processing method of the fourth aspect of the present application, wherein if the number of error bits of the read data of the first read redo command is greater than the number of error bits of the top-ranked entry of the read redo sequence table, the ranking of the first entry in the read redo sequence table is shifted forward.
According to one of the first to seventh read command processing methods of the fourth aspect of the present application, there is provided an eighth read command processing method according to the fourth aspect of the present application, wherein in response to a failure in processing a read command, one or more read threshold parameters are obtained from the read redo sequence table in an entry order of the read redo sequence table, and one or more media interface commands respectively indicating the obtained one or more read threshold parameters are generated and provided to the media interface controller; the media interface controller generates the one or more read redo commands based on the received one or more media interface commands.
According to an eighth read command processing method of the fourth aspect of the present application, there is provided the ninth read command processing method of the fourth aspect of the present application, wherein the one or more read redo commands use the read threshold parameters indicated by the one or more media interface commands, respectively; or the one or more read redo commands use a read threshold parameter generated by the media interface controller.
According to an eighth or ninth read command processing method of the fourth aspect of the present application, there is provided the tenth read command processing method of the fourth aspect of the present application, wherein in response to a successful processing of a first read redo command of the one or more read redo commands, the media interface controller generates a first message indicating that processing of a first media interface command corresponding to the first read redo command is completed, the first message including an error bit number of read data of the first read redo command; and the storage command processing unit is used for responding to the first message and recording the error bit number of the read data of the first read redo command in the first entry of the read redo sequence table.
According to a tenth read command processing method of the fourth aspect of the present application, there is provided the eleventh read command processing method of the fourth aspect of the present application, characterized in that: the first message also records an identification of the first media interface command.
According to one of the eighth to eleventh read command processing methods of the fourth aspect of the present application, there is provided the twelfth read command processing method of the twelfth aspect of the present application, characterized in that: the media interface controller, in response to receiving the media interface command, generates or predicts a read threshold parameter from all or a portion of an accessed address of the received media interface command and indicates the generated or predicted read threshold parameter in the generated read redo command.
According to a twelfth read command processing method of the fourth aspect of the present application, there is provided the thirteenth read command processing method of the fourth aspect of the present application, characterized in that the read threshold value table is queried according to all or part of an address of access of the received media interface command to acquire the read threshold value parameter to be generated.
According to a thirteenth read command processing method of the fourth aspect of the present application, there is provided the fourteenth read command processing method of the fourth aspect of the present application, characterized in that an average value or a weighted average value is calculated for the read thresholds of all or part of the entries in the read threshold table as the predicted read threshold parameter.
According to one of the first to fourteenth read command processing methods of the fourth aspect of the present application, there is provided a fifteenth read command processing method according to the fifteenth aspect of the present application, characterized in that: the number of error bits of the data read by the first read redo command is the number of bits that are inverted between the data obtained by error correction decoding of the data read from the NVM chip according to the first read redo command and the data read from the NVM chip according to the first read redo command.
According to one of the first to fifteenth read command processing methods of the fourth aspect of the present application, there is provided the sixteenth read command processing method according to the fifteenth aspect of the present application, wherein in response to a failure of the read command processing, the one or more read threshold parameters are obtained from the read redo sequence table in an order of entries of the read redo sequence table, or the one or more read threshold parameters are obtained from the read redo sequence table in an order of a smaller number of error bits to a larger number of error bits recorded in the read redo sequence table.
According to one of the first to sixteenth read command processing methods of the fourth aspect of the present application, there is provided a seventeenth read command processing method according to the fifteenth aspect of the present application, characterized in that; the method further comprises the following steps: and adjusting the sequence of the entries in the read-redo sequence table according to the error bit number recorded in the read-redo sequence table.
According to a fifth aspect of the present application, there is provided an information processing apparatus according to the fifth aspect of the present application, comprising a memory, a processor, and a program stored on the memory and executable on the processor, wherein the processor implements one of the first to seventeenth read command processing methods according to the fourth aspect of the present application when executing the program.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings can be obtained by those skilled in the art according to the drawings.
FIG. 1 illustrates a block diagram of a prior art storage device;
FIG. 2 illustrates a detailed block diagram of a control component of the storage device;
FIG. 3 illustrates a block diagram of a prior art media interface controller;
FIG. 4 illustrates a block diagram of a media interface controller according to an embodiment of the present application;
FIG. 5 illustrates a block diagram of a read command adjustment unit according to an embodiment of the present application;
FIG. 6 illustrates a block diagram of a media interface according to yet another embodiment of the present application;
FIG. 7 illustrates a block diagram of a media interface controller according to an embodiment of the present application;
FIG. 8 illustrates a detailed block diagram of a media interface according to an embodiment of the present application;
FIG. 9 illustrates a block diagram of a media interface controller according to yet another embodiment of the present application;
FIG. 10 illustrates a block diagram of a media interface controller according to yet another embodiment of the present application;
FIG. 11 illustrates a flow diagram for using a read redo sequence table in accordance with still yet another embodiment of the present application;
FIG. 12 illustrates a flow diagram for processing a read command according to yet another embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application are clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are some, but not all, embodiments of the present application. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
FIG. 4 illustrates a block diagram of a media interface controller according to an embodiment of the present application.
The media interface controller of the control unit includes a media interface, an ECC encoding unit, an ECC decoding unit, and a read command adjusting unit. The medium interface is coupled with the read command adjusting unit, the NVM chip, the ECC encoding unit and the ECC decoding unit.
The media interface command provided to the media interface controller by the storage command processing unit is provided to the read command adjustment unit. The read command adjusting unit only adjusts the media interface command which is to generate the read command or the read redo command, and provides the adjusted media interface command to the media interface. For other types of media interface commands (e.g., write commands, erase commands, etc.), the read command adjustment unit does not process it, but provides it directly to the media interface.
According to the embodiment of the application, the read command adjusting unit identifies the read threshold parameter preferred by the access to the physical address according to the physical address accessed by the read command or the read redo command to be generated. For example, for physical address P1, the read command adjustment unit recognizes that the read threshold parameter V1 is preferable to physical address P1, updates the media interface command it receives to access physical address P1, and updates the media interface command to a read redo command indicating use of the read threshold parameter V1. As another example, for physical address P1, if the read command adjustment unit cannot find the preferred read threshold parameter for physical address P1, the media interface command is provided to the media interface directly without updating the media interface command.
As yet another example, the storage command processing unit provides a media interface command instructing that the physical address P2 is accessed with a read redo command, whereas for the physical address P2, the read command adjustment unit recognizes that the read redo command is invalid or does not have a better effect with respect to the read command. The read command adjustment unit thus updates the media interface command indicating the read redo command to a media interface command indicating a normal read command to access the physical address P2, or directly supplies the media interface command indicating the read redo command to the media interface without updating the media interface command. As another example, for physical address P2, the read command adjustment unit recognizes that the read threshold parameter V2 'is preferred for physical address P2, and updates the media interface command to a read redo command indicating use of the read threshold parameter V2'.
As another example, the storage command processing unit provides a media interface command instructing that physical address P2 be accessed with a read command or a read redo command. For the physical address P2, the read command adjustment unit recognizes that the voltage value carried by the read command or the read redo command itself is already the optimal read threshold parameter, and the read command adjustment unit does not adjust the media interface command and directly provides the media interface command to the media interface.
FIG. 5 shows a block diagram of a read command adjustment unit according to an embodiment of the present application.
The read command adjusting unit comprises a command analyzing unit and a read threshold value table. Optionally, the read command adjusting unit further includes a read threshold prediction unit.
The read command adjustment unit maintains a read threshold table. The read threshold table includes a plurality of entries, the entries of the read threshold table including a physical address, a read threshold, and/or a UECC (uncorrectable) flag. The UECC flag indicates that data previously accessed from the corresponding physical address with the read threshold recorded in the read threshold entry cannot be decoded by the correct ECC. In response to receiving a media interface command indicating a read command or a read redo command, a physical address or a portion thereof to be accessed by the indicated read command or read redo command is used to query a read threshold table to obtain a read threshold corresponding to the physical address to be accessed, the media interface command is updated with the obtained read threshold, and the updated media interface command is provided to the media interface.
The storage command processing unit (see also fig. 4) provides the media interface command to the command parsing unit of the read command adjustment unit. The command parsing unit recognizes the type of the received media interface command, and provides the media interface command, except for the read command and the read redo command, to the media interface without processing. And inquiring the read threshold value table for the media interface command indicating the read command or the read redo command, obtaining the read threshold value from the read threshold value table, updating the media interface command into the media interface command indicating the read redo command, and providing the media interface command to the media interface.
For example, the command parsing unit receives a media interface command indicating a read command to access the physical address P1, and queries the read threshold table with the physical address P1. If there is an entry in the read threshold table recording the physical address P1 and the read threshold V1, the received media interface command is updated to a read redo command indicating the use of the read threshold V1 and then provided to the media interface. In yet another example, the command parsing unit receives a media interface command indicating a read redo command (indicating a read threshold V2) to access the physical address P2, queries the read threshold table with the physical address P2, provides the media interface command to the media interface without modification if there is no entry in the read threshold table that records the physical address P2, and also adds an entry in the read threshold table that records the physical address P2 and the read threshold V2. In another example, the command parsing unit receives a media interface command indicating a read redo command (indicating a read threshold V3) to access the physical address P3, queries the read threshold table with the physical address P3, provides the media interface command to the media interface without modification if an entry in the read threshold table recording the physical address P3 exists but the read threshold recorded in the entry is different from V3, and also updates the read threshold of the entry in the read threshold table recording the physical address P3 to the read threshold V3.
Still optionally, the command resolution unit further identifies a UECC flag in the read threshold table entry. For example, for a media interface command indicating a read command to access physical address P4, there is an entry in the read threshold table with physical address P4, but the entry has a UECC flag, which means that data previously accessed physical address P4 with the recorded read threshold cannot be decoded by the correct ECC. Thus, the command parsing unit provides the media interface command directly to the media interface without updating it to indicate a read redo command. For another example, for a media interface command indicating a read redo command to access physical address P5, an entry with physical address P5 exists in the read threshold table, but the entry has a UECC flag, the command parsing unit clears the UECC flag in the entry, and the media interface command is provided to the media interface. Optionally, the command parsing unit further checks that the read threshold indicated by the read redo command is different from the read threshold recorded in the entry, and if the read threshold indicated by the read redo command is different from the read threshold recorded in the entry, the read threshold in the read redo command is further used to replace the read threshold in the entry.
It is to be understood that the UECC flag is set in the corresponding entry of the read threshold table in response to the ECC decoding unit failing to ECC decode the data read from the NVM chip according to the read command or the read redo command accessing the physical address. Or responding to the failure of ECC decoding of the data read from the NVM chip by the ECC decoding unit according to the read command or the read redo command of the access physical address, if the read threshold value table has no entry corresponding to the physical address with the failure of decoding, adding the entry corresponding to the physical address in the read threshold value table, and setting a UECC flag.
Optionally, the read threshold table has limited entries. The physical address in the entry is, for example, a physical block number of the NVM chip, a layer number of the 3D NVM chip, or a combination of a physical block number and a layer number. Still alternatively, the number of entries of the read threshold table is sufficient to accommodate all possible values of the physical block number, the layer number of the 3D NVM chip, or a combination of the physical block number and the layer number. Still optionally, the number of entries of the read threshold table cannot accommodate all possible values of the physical block number, the layer number of the 3D NVM chip, or a combination of the physical block number and the layer number, and the command parsing unit further maintains replacement of the entries of the read threshold table by replacing the entries of the read threshold table by a policy such as least recently used, first in first out, or the like.
In a still further alternative embodiment, the media interface command provided by the storage command processing unit further comprises a read command adjustment unit enable flag. If the read command adjustment unit enable flag is valid, the read command adjustment unit processes the media interface command according to the manner shown in FIGS. 4 and 5. If the read command adjusting unit enables the mark to be invalid, the read command adjusting unit does not work, and all received media interface commands are directly provided to the media interface.
In still alternative embodiments, the read threshold prediction unit provides a predicted read threshold for the accessed physical address. Limited by the number of entries in the read threshold value table, the physical address to be accessed may not be recorded in the read threshold value table; or the physical address to be accessed is recorded in the read threshold value table, but is also accompanied by a UECC mark; in some cases, the storage command processing unit lacks knowledge of the characteristics of the NVM chip and it is desirable that the read command adjustment unit actively give the suggested read threshold. In one example, the read threshold prediction unit gives the predicted read threshold from a read threshold table. For example, the read threshold prediction unit calculates an average value or a weighted average value of the read thresholds of all or part of the entries in the read threshold table as the predicted read threshold. For another example, the read threshold prediction unit calculates an average value or a weighted average value of the read thresholds of all or part of the entries having a physical address close to the physical address to be accessed by the generated read command or read redo command in the read threshold table as the predicted read threshold. Address proximity includes proximity of two physical addresses in value (e.g., adjacent integers, or a difference less than, for example, 10), or proximity of spatial locations of memory cells represented by two physical addresses on the NVM chip (e.g., adjacent spatial locations, or less than, for example, 16 physical pages, 3 physical blocks, and/or layers apart), and/or proximity of usage states of memory cells represented by two physical addresses. In yet another example, the read threshold prediction unit may also predict the read threshold based on temperature, the number of times the memory cell is erased and/or read, and the like. The read threshold predicted by the read threshold prediction unit is used to generate a read redo command and provided to the media interface.
Further, the read threshold generated by the read threshold prediction unit is also used to update the read threshold table. For example, a read threshold is predicted for a read command accessing physical address P6, and the predicted read threshold is recorded in an entry of the read threshold table with physical address P6.
Still optionally, the read threshold prediction unit further generates the predicted read threshold based on a UECC flag of the read threshold table. For example, a media interface command is received indicating a read command to access physical address P7, and there is an entry in the read threshold table that records physical address P7 with a UECC flag. The read threshold prediction unit generates a predicted read threshold different from the read threshold indicated in the entry according to the UECC flag. For example, the entry records a read threshold V7 and a UECC flag, and the read threshold prediction unit generates a predicted read threshold V7' in a direction in which the read threshold increases. It will be appreciated that the change in the read threshold has some regularity, for example the read threshold changes exhibit a trend over time. As still another example, the read threshold prediction unit increments the read threshold recorded in the entry by, for example, one or a specified number of units in the direction in which the read threshold is incremented as the predicted read threshold.
In yet another embodiment, the storage command processing unit provides the media interface command further including a read threshold prediction enable flag. If the read threshold prediction enable flag is valid, the read threshold prediction unit generates a predicted read threshold for the accessed physical address. If the read threshold prediction enable flag is not valid, the read threshold prediction unit does not operate and does not provide the predicted read threshold.
Thus, according to one embodiment of the present application, the storage command processing unit works in cooperation with the read command adjustment unit. The storage command processing unit need not have knowledge of the characteristics of the NVM chip, but rather the media interface command provided to the media interface controller does not carry a read threshold prediction enable flag, for example, under normal circumstances. And after the read data has failed ECC decoding, for example, a media interface command indicating a (normal) read command with a read threshold prediction enabling flag is provided to the media interface controller, the read threshold prediction unit generates a predicted read threshold, and the command parsing unit generates a media interface command indicating a read redo command using the predicted read threshold instead of the media interface command indicating the (normal) read command and provides the media interface command to the media interface. Then, if the ECC decoding of the data read by the generated media interface command indicating the read redo command fails again, the storage command processing unit does not need to maintain a complex error processing flow, but sends the media interface command indicating the read command for the physical address to the media interface controller again, and the media interface command is provided with a read threshold prediction enable flag. And the read threshold prediction unit generates a new predicted read threshold in response, the command parsing unit generating a media interface command indicative of the new read redo command using the predicted read threshold for provision to the media interface. In this way, the storage command processing unit repeatedly issues a media interface command indicating a read command for the physical address to the media interface controller in response to the ECC decoding failure, with a read threshold prediction enable flag, and the media interface controller completes an error handling process for the ECC decoding failure of the read data by the read threshold prediction unit attempting one or more read thresholds. Alternatively, in each prediction, the read threshold prediction unit generates the predicted read threshold in a direction in which the read threshold increases.
FIG. 6 illustrates a block diagram of a media interface in accordance with yet another embodiment of the present application.
The medium interface comprises a micro instruction execution unit and a signal driver. The medium interface is coupled with the NVM chip and the micro instruction memory, provides the storage medium access command to the NVM chip and obtains the processing result of the storage medium access command. The medium interface is also coupled to a micro instruction memory storing a sequence of micro instructions for generating a storage medium access command based on the micro instructions retrieved from the micro instruction memory.
The micro instruction sequence corresponds to the medium interface command, and the medium interface acquires the corresponding micro instruction sequence according to the received medium interface command and provides the micro instruction sequence to the micro instruction execution unit. The micro-instruction execution unit executes the micro-instruction sequence, drives the signal driver according to the signals indicated by the micro-instruction sequence, and generates specified signals on the leads coupled with the NVM chip by the medium interface. And generating a signal sequence conforming to an interface protocol of the NVM chip by executing the micro instruction sequence.
Some microinstructions also include a count value indicating that the specified signal is repeatedly driven multiple times. For example, if 1 byte of data is being fetched from the DQ leads each time, the fetching of data from the DQ leads is repeated 1K times in order to fetch, for example, 4KB of data read by the NVM chip. The microinstruction execution unit sets a counter according to the count value, and the counter drives the signal driver to repeatedly drive the lead for a specified number of times. The signal driver also collects signals from the leads, e.g., data read from the NVM chip from the DQ leads.
According to the embodiment of FIG. 6, the micro instructions of the micro instruction sequence include, for example, a get read threshold micro instruction and an update read threshold micro instruction. The operand of the get read threshold microinstruction includes a physical address. Optionally, the operand of the fetch threshold microinstruction further includes a register storing a read threshold table or a register storing an index of the read threshold table. The get read threshold microinstruction also includes a result register that is filled with a read threshold corresponding to the register value of the physical address indicated by the get read threshold microinstruction in response to the get read threshold microinstruction being executed. For example, to execute the get read threshold microinstruction, the physical address indicated by the get read threshold microinstruction is used to obtain an entry corresponding to the address from the read threshold table, and the read threshold of the entry is obtained to fill the result register. Optionally, the result register is populated with the generated predicted read threshold. The read threshold obtained by the obtain read threshold microinstruction is used to configure a microinstruction sequence that processes the read redo command such that, when the microinstruction sequence is executed, the instruction signal driver provides the read redo command to the NVM chip indicating the obtained read threshold. Alternatively, some NVM chips need to Set the read threshold used using, for example, a "Set Feature" command. To this end, the micro instruction sequence for processing the read redo command includes a micro instruction sequence for generating a "Set Feature" command and a micro instruction sequence for generating a read redo command. The micro-instruction sequence of the "Set Feature" command is used to Set the read threshold of the read redo command to, for example, the read threshold obtained by the get read threshold micro-instruction.
Optionally, the microinstruction sequence for processing the read redo command further includes an additional microinstruction sequence for generating a "Set Feature" command, which is used to Set the read threshold to the read threshold used when processing the (normal) read command (the read command before the read redo command is executed) after the read redo command processing is finished.
The operands of the update read threshold microinstruction include a physical address and a value of the read threshold to be updated. And responding to the execution of the update read threshold micro-instruction, acquiring a corresponding entry of the read threshold table according to the address indicated by the update read threshold micro-instruction, and writing the read threshold indicated by the micro-instruction into the entry.
The media interface controller reads out a data frame or an entire physical page of data from the NVM chip using a storage media access command. The read data needs to be buffered by the media interface controller and ECC decoding is performed. To improve data read speed, the media interface controller provides a local cache integrated inside the chip to cache data read from the NVM chip and to be ECC decoded. When a data frame or an entire physical page of data read from the NVM chip includes N (N is a positive integer) ECC blocks, the bandwidth of the ECC decoding unit may be difficult to process the N ECC blocks simultaneously, resulting in 1 or more ECC blocks waiting to be ECC decoded in the local cache of the media interface controller. Furthermore, the retention time of the ECC block in the local cache is increased, which reduces the utilization rate of the local cache, and the capacity of the local cache needs to be increased to ensure the read data bandwidth, resulting in an increase in the cost and power consumption of the control unit and thus the storage device. It is desirable to reduce the time that ECC blocks remain in the local cache to improve the utilization of the local cache. It is also desirable to manage operations related to the use of local caches in a way that is independent of microinstructions.
FIG. 7 illustrates a block diagram of a media interface controller according to an embodiment of the present application.
The media interface controller of the control unit comprises a media interface, a micro instruction memory, a local cache and an ECC decoding unit. The medium interface is coupled with the NVM chip, the micro instruction memory and the local cache. The micro-instruction memory stores micro-instructions, and the medium interface executes the micro-instructions to output storage medium access commands to the NVM chip and stores data acquired from the NVM chip according to the storage medium access read commands in a local cache. The ECC decoding unit is coupled with the local cache, performs ECC decoding on the ECC block provided by the local cache, and records the decoding result in the read data cache. The read data cache is, for example, a DRAM coupled to the control unit or an SRAM integrated with the control unit.
The media interface controller according to an embodiment of the present application further includes a cache management unit coupled with the local cache and the media interface. The buffer management unit provides a signal (read pause signal for short) indicating that the reading of data is paused to the media interface according to the size of the available space in the local buffer. For example, in response to the available space in the local cache being less than the threshold, the cache management unit outputs a read pause signal to the media interface to instruct the NVM chip to pause outputting the read command or reading the data to be retrieved by the redo command. And in response to the available space in the local cache being not less than the threshold, the cache management unit overrides the read pause signal provided to the media interface.
The media interface is normally operative to read data from the NVM chip in response to not receiving the read suspend signal in a conventional manner, e.g., the media interface provides a plurality of read enable signals in succession to the NVM chip for reading data from the NVM chip.
According to an embodiment of the application, the media interface suspends or deactivates the read enable signal or the CLK signal provided to the NVM chip in response to receiving the read suspend signal to instruct the NVM chip to suspend outputting data to be retrieved by the read command or the read redo command. It will be appreciated that the media interface may otherwise instruct the NVM chip to suspend outputting data according to the various NVM chip interface protocols to which the storage media access command is to follow, or the various operating modes defined by the interface protocols. For example, by generating a signal to place the NVM chip in a suspend state, the media interface instructs the NVM chip to suspend outputting data to be retrieved for a read command or a read redo command. Then, in a state that the medium interface indicates the NVM chip to suspend outputting data, in response to receiving the read suspend signal being revoked or no longer receiving the read suspend signal, the medium interface resumes providing the read enable signal or the CLK signal to the NVM chip or no longer generating the read suspend signal to indicate the NVM chip to continue outputting the read command or the read redo command to acquire the data.
The monitoring of the local cache capacity by the cache management unit and the subsequent generation of the read pause signal is independent of the execution of the microinstructions by the media interface, so that no modification of the microinstructions, their execution units and the sequence of microinstructions used for generating the media interface commands is necessary. By instructing the NVM chip to suspend outputting data to be retrieved for a media interface (read) command when the available space of the local cache is insufficient, a smaller capacity local cache may be used in the media interface controller and/or the media interface controller's ability to process media interface (read) commands is improved, e.g., a greater number of media interface (read) commands may be processed concurrently without reducing the capacity of the local cache.
In an alternative embodiment, the local cache is managed according to ECC block size. The local cache holds several ECC blocks. The cache management unit generates and provides a read pause signal to the media interface upon identifying that the available space of the local cache is insufficient to accommodate a specified number (e.g., one) of ECC blocks. And the read pause signal is not provided to the media interface when the available space of the local cache is sufficient to accommodate a specified number (e.g., at least one) of ECC blocks. Further, in response to the local cache being filled with a complete ECC block, the complete ECC block is provided to the ECC decoding unit for ECC decoding. And in response to providing the ECC block to the ECC decoding unit, removing the ECC block from the local cache to make the storage space occupied by the ECC block available.
By way of example, a data frame to be read out of the NVM chip by a storage medium access (read) command includes 4 ECC blocks. If the available space of the local cache is not enough to accommodate 1 ECC block, the cache management unit provides a read pause signal to the media interface, so that the media interface instructs the NVM chip not to start outputting the data to be acquired by the storage medium access (read) command or to pause outputting the data to be acquired by the storage medium access (read) command. When the available space of the local cache is enough to accommodate at least 1 ECC block, the cache management unit deactivates or does not provide a read pause signal to the media interface even if the available space of the local cache is not enough to accommodate a complete data frame to be read out, and the media interface instructs the NVM chip to start or continue outputting data to be acquired by the storage media access (read) command. So that the data output of the NVM chip for storage medium access (read) commands is started earlier. In the case where multiple storage media access (read) commands are concurrently processed by the media interface controller, the number of storage media access (read) commands that are concurrently processed is increased.
It will be appreciated that the read pause signal may be replaced by a read enable signal having similar semantics. In response to receiving the read enable signal, the media interface instructs the NVM chip to output data to be retrieved for a storage media access (read) command, whereas the media interface instructs the NVM chip to suspend outputting data to be retrieved for a storage media access (read) command.
The sequence of micro instructions corresponds to media interface commands. The sequence of micro-instructions to process a read command or a read redo command may also include, for example, fetching a read threshold micro-instruction and/or updating a read threshold micro-instruction. By way of example, processing a micro instruction sequence of a read command includes fetching a read threshold micro instruction. And calling a micro instruction sequence for processing the read redo command to continue processing if the read threshold to be used is obtained by executing the read threshold micro instruction, and configuring the micro instruction sequence for processing the read redo command by using the obtained read threshold so as to send the read redo command to the NVM chip. Still by way of example, processing the micro instruction sequence of the read redo command includes updating a read threshold micro instruction. And updating the read threshold recorded in the entry corresponding to the physical address to be accessed in the read threshold table by executing the update read threshold microinstruction. Further, processing the micro instruction sequence of the read redo command also includes fetching a read threshold micro instruction. In order to process the read redo command, the read threshold acquisition micro-instruction is called to acquire a read threshold or a predicted read threshold, the micro-instruction sequence for processing the read redo command is configured by using the acquired read threshold so as to send the read redo command to the NVM chip, and the read threshold updating micro-instruction is executed so as to update the read threshold recorded in an entry corresponding to the physical address to be accessed in the read threshold table.
FIG. 8 illustrates a detailed block diagram of a media interface according to an embodiment of the present application.
The medium interface comprises a micro-instruction execution unit, a signal driver, a counter and a data conversion unit. The micro-instruction execution unit executes the micro-instruction sequence, drives the signal driver according to the signal indicated by the micro-instruction sequence, generates a specified signal on a lead wire coupled with the NVM chip by the medium interface, and generates a signal sequence conforming to an NVM chip interface protocol by executing the micro-instruction sequence.
Some microinstructions also include a count value indicating that the specified signal is repeatedly driven multiple times. For example, if 1 byte of data is being fetched from the DQ leads each time, the fetching of data from the DQ leads is repeated 1K times in order to fetch, for example, 4KB of data read by the NVM chip. The microinstruction execution unit sets a counter according to the count value, and the counter drives the signal driver to repeatedly drive the lead for a specified number of times.
The signal driver also collects signals from the DQ leads, and supplies the signals collected from the DQ leads to the data conversion unit. In some modes of operation (e.g., SDR mode) such as the ONFI protocol, the DQ pins transfer 8 bits of data per cycle, while in other modes (e.g., NV-DDR2), the DQ pins transfer 16 bits of data per cycle. And the data conversion unit acquires effective data from the signal acquired by the DQ lead wire according to the current working mode and fills the effective data into a local cache.
According to an embodiment of the application, a read pause signal provided by the cache management unit is coupled to the counter. In response to the read pause signal being active, the counter stops counting. In response to the read pause signal being invalid or deasserted, the counter resumes counting. In the event the counter stops counting, the signal driver also stops driving, for example, the DQ leads to instruct the NVM chip to suspend data transfer. Alternatively or additionally, the read suspend signal also instructs the signal driver to generate a read enable signal on a lead coupled to the NVM chip indicating invalid or deactivated to instruct the NVM chip to suspend data transmission. Still optionally, the read suspend signal further instructs the signal driver to generate a signal on a lead coupled to the NVM chip that instructs the NVM chip to enter a suspend state.
Thus, according to embodiments of the present application, the read pause signal causes execution of the microinstructions to be paused, and execution of the microinstructions is resumed after the read pause signal is deasserted. Alternatively, the read pause signal is only effective for execution of micro instructions that direct the fetching of data from the NVM chip from the DQ leads, without affecting the execution of other micro instructions.
According to yet another embodiment of the present application, the media interface, for example, yields (yield) in response to receiving the read pause signal. By way of example, in response to a read pause signal, the media interface pauses the execution of a current sequence of microinstructions that generates a read command or a read redo command and saves a state of partial or full execution of the current sequence of microinstructions that generates a read command or a read redo command. Next, after suspending the execution of the current micro instruction sequence for generating the read command or the read redo command, the media interface may execute the other micro instruction sequence to send a storage medium access (read) command to the other NVM chip or the other LUN (logical unit) of the NVM chip. And after the read pause signal is cancelled and the medium interface processing completes the execution yield of other micro-instruction sequences or other micro-instruction sequences, restoring the partial or whole execution state of the previously saved micro-instructions for generating the read command or the read redo command, and continuing to process the previously saved micro-instruction sequences for generating the read command or the read redo command.
According to the method and the device, the read threshold parameter used by the read command or the read redo command to be generated is adjusted through the read command adjusting unit of the media interface controller, so that the complex search read threshold parameter can be implemented, more guidance is provided for the error recovery process, and the read threshold parameter used in the read redo is intelligently selected or prompted, so that the error processing time is shortened, the error rate of the storage device is reduced, and the service life of the storage device is prolonged.
FIG. 9 illustrates a block diagram of a media interface controller according to yet another embodiment of the present application.
NVM chips typically provide tens, or even hundreds of read threshold parameters. The read redo command instructs that data be read from the NVM chip using one read threshold parameter. In the embodiment of FIG. 9, the storage command processing unit maintains a read redo sequence table. Each entry of the read redo sequence table sequentially records a plurality of (e.g., n being a positive integer) read threshold parameters (shown as read threshold parameter 1, read threshold parameter 2, read threshold parameter …, and read threshold parameter n in fig. 9) that can be used for the NVM chip. In order to generate a read redo command, the storage command processing unit accesses the read redo sequence table according to the arrangement sequence of the entries, sequentially generates a media interface command by using the read threshold parameters recorded in the read redo sequence table, and sends the media interface command to the media interface controller. The media interface controller generates a read redo command to access the NVM chip using the read threshold parameters indicated by the media interface command.
There are a plurality of read threshold parameters recorded in the read redo sequence list. The storage command processing unit instructs the media interface controller to use each read threshold parameter to attempt to read data from the NVM chip until the correct data is read (i.e., the read data can be correctly decoded by the ECC decoding unit). Referring also to fig. 9, to process the read IO command, the storage command processing unit provides a media interface command indicating a read command (a non-read redo command) to the media interface controller (indicated by (1) in fig. 9). The media interface generates a storage media access (read) command to the NVM chip (indicated by (2) in fig. 9). The media interface also supplies the read data output by the NVM chip to an ECC decoding unit (indicated by (3) in fig. 9). By way of example, the ECC decoding unit fails in decoding, and the media interface controller notifies the storage command processing unit of the media interface command processing failure (indicated by (4) in fig. 9). The storage command processing unit starts an error handling process.
The storage command processing unit accesses the read redo sequence table (indicated by (5) in fig. 9), and acquires a read threshold parameter (indicated by (6) in fig. 9) from the read redo sequence table in the order in which the entries are arranged. As an example, in response to a media interface command processing failure, the read threshold parameter that the storage command processing unit first obtained from the read redo sequence table is "read threshold parameter 1". The storage command processing unit generates a media interface command (denoted as RCMD1) indicating a read redo command according to the acquired read threshold parameter and provides the media interface command to the media interface controller. Through the operations indicated by (1) to (4) in fig. 9, the media interface controller gives the storage command processing unit the processing result of the media interface command (RCMD 1). If the media interface command (RCMD1) still fails to process, the storage command processing unit again retrieves the ordered next read operation parameter from the read redo sequence table by the operations indicated by (5) and (6) in fig. 9. For example, if the previous media interface command (RCMD1) indicated "read threshold parameter 1", then the next read operation parameter currently acquired is "read threshold parameter 2". And the storage command processing unit generates a media interface command (marked as RCMD2) indicating a read redo command again according to the acquired read threshold parameter and provides the media interface command to the media interface controller. If the processing result of the media interface command (marked as RCMD2) still fails, the storage command processing unit acquires the next read threshold parameter until all read threshold parameters in the read threshold sequence list are used. If the media interface command processing indicating a certain read threshold parameter is successful, the storage command processing unit provides the read data to, for example, a host command processing unit (see also FIG. 3). If all read threshold parameters in the read threshold sequence list are used and correct data cannot be read from the NVM chip, the storage command processing unit indicates a processing failure to, for example, the host command processing unit. In the read redo sequence table, the order of the entry arrangement is provided or suggested by the NVM chip, or by experiment, the order of the read threshold parameters effective for reading data from the NVM chip can be found earlier in most cases.
It can be seen that, in order to perform error correction by Read redo (Read Retry), the storage command processing unit operates the media interface controller to issue a plurality of Read redo commands to the NVM chip, which significantly increases the processing time of the Read commands when uncorrectable errors exist in the Read data, and also occupies the transmission bandwidth between the storage command processing unit and the media interface controller, limiting the processing capabilities of the storage command processing unit and the media interface controller.
Fig. 10 illustrates a block diagram of a media interface controller according to yet another embodiment of the present application.
In the example of fig. 10, each entry in the read redo sequence table records, in addition to the read threshold parameter, the number of error bits corresponding to the read threshold parameter. The number of error bits is, for example, the difference between the data read from the NVM chip provided by the media interface controller and the data obtained by correctly decoding the data read from the NVM chip by the ECC decoding unit (the number of bits that are flipped). In fig. 10, for example, "error bit number 1" corresponds to "read threshold parameter 1", "error bit number 2" corresponds to "read threshold parameter 2", and "error bit number n" corresponds to "read threshold parameter n". Optionally, in an initial state, the number of error bits of each entry in the read redo sequence table is initialized to 0. Still alternatively, the number of error bits recorded in the read redo sequence table represents only the number of error bits of data successfully read by the read redo command after the occurrence of the uncorrectable error. Still alternatively, the read redo sequence list has only one instance, and thus the use of the read redo sequence list is independent of the physical address from which the data is to be read. Still alternatively, the storage command processing unit maintains a plurality of instances of the read redo sequence table, each corresponding to, for example, a different scenario. For example, a corresponding read redo sequence table is provided for the type of physical page to be read (e.g., MSB page, CSB page, and LSB page, or page located in one or more layers of the upper or lower surface of the 3D flash memory, page located in the middle layer of the 3D flash memory), or a corresponding read redo sequence table is provided for different operating temperature ranges.
In response to the media interface controller indicating that the media interface (read) command failed, the storage command processing unit sequentially obtains the read threshold parameters according to the read redo sequence list, and generates one or more media interface commands indicating read redo to provide to the media interface controller. In response to the media interface command indicating read redo being successfully processed, according to the embodiment of the present application, the media interface command processing result indicating read redo provided by the media interface controller also carries the number of error bits, which represents the number of bits that the data read from the NVM chip by using the read redo command is flipped before and after ECC decoding. And the storage command processing unit updates the error bit number corresponding to the read threshold parameter in the read redo sequence list according to the obtained error bit number and the read threshold parameter used for obtaining the error bit number. As an example, in response to the media interface controller indicating that the media interface (read) command fails, the storage command processing unit carries a read threshold parameter n in the nth generated media interface command indicating read redo, the media interface command is processed successfully, the number of error bits existing in the read data is en, and the storage command processing unit records the number of error bits en in the read redo sequence table in association with the read threshold parameter n. Further, the error bit number en and the error bit number (denoted as e1) of the entry at the head (the position of the first entry) of the read-redo sequence table are compared, and if en < e1, the entry in the read-redo sequence table, in which the read threshold parameter n and the error bit number en are recorded, is moved to the head (the position of the first entry) of the read-redo sequence table, so that the entry at the head of the read-redo sequence table, in which the read threshold parameter n and the error bit number en are recorded, is first acquired when the storage command processing unit accesses the read-redo sequence table next time in response to the media interface controller indicating that the media interface (read) command fails. After the entry recorded with the reading threshold parameter n and the error bit number en is moved to the head of the read redo sequence table, the first entry before the movement to the (k-1) th entry are sequentially moved backward by the position of one entry, that is, the original (k-1) th entry is changed into the (k) th entry after the movement.
Alternatively, the entries are sorted by the number of error bits of the entries without moving the position of the entries in the read redo sequence table. When accessing the read redo sequence table, the entry with the smallest error bit number is accessed first, and when accessing the read redo sequence table next time, the next entry is accessed according to the sequence of the error bit numbers of the entries from small to large.
Thus, according to the embodiment of fig. 10, during the operation of the storage device, the read redo sequence table is dynamically adjusted, so that the entry corresponding to the read threshold parameter more suitable for the operating state of the current NVM chip is set at the head of the read redo sequence table, and thus the storage command processing unit can obtain such read threshold parameter at the earliest and generate the media interface command using the obtained read threshold parameter, thereby shortening the process of traversing the read redo sequence table, and reducing the number of read redo commands generated after the media interface (read) command is failed in response to the indication of the media interface controller, so as to obtain the data to be read more quickly.
Optionally, the plurality of entries in the read redo sequence table are ordered. For example, the position of the entry in the read redo sequence table determines the ordering precedence. The entry in the read redo sequence list that is located at the top will be accessed by the storage command processing unit more preferentially and using the read threshold parameter recorded therein, and in response to the media interface controller indicating that the media interface (read) command failed, the storage command processing unit first accesses the entry in the head of the read redo sequence list to obtain the read threshold parameter. As a further example, the number of error bits recorded in the entries determines the order in which the entries are ordered, and entries with smaller numbers of error bits will be accessed more preferentially, so that the entries in the read redo sequence list need not be moved in response to changes in the number of error bits of the entries.
With continued reference to FIG. 10, optionally, the media interface controller further includes a read command adjustment unit. The read command adjusting unit is for example a read command adjusting unit according to the embodiment of fig. 4 or fig. 5. Still optionally, the media interface of fig. 10 is a media interface according to the embodiments of fig. 6-8. Thus, the read threshold parameter indicated by the received media interface command may be adjusted in the media interface controller. For example, the media interface command provided by the storage command processing unit further includes a read threshold adjustment unit enable flag and/or a read threshold prediction enable flag. If the read threshold adjustment unit enable flag and/or the read threshold prediction enable flag are valid, the media interface controller generates a new read threshold parameter (obtained from the read threshold table or generated by the read threshold prediction unit) for the physical address to be accessed by the media interface command even if the media interface command indicates the read threshold parameter obtained from the read redo sequence table by the read command processing unit. If the read threshold adjustment unit enable flag is not valid with the read threshold prediction enable flag, the media interface controller uses the read threshold parameter indicated by the media interface command. In some cases, the read threshold adjustment unit enable flag and/or the read threshold prediction enable flag are valid, and the media interface controller still uses the read threshold parameter indicated by the media interface command after evaluation. Thus, the storage command processing unit cooperates with the media interface controller to process transactions following uncorrectable errors in reading data from the NVM. Optionally, the processing result (indicating that the processing fails) of the media interface command provided by the media interface controller to the storage command processing unit further includes a suggestion of a read threshold parameter to be used next, and the storage command processing unit generates the read threshold parameter indicated in the next media interface command according to the suggestion.
FIG. 11 illustrates a flow diagram for using a read redo sequence table in accordance with still another embodiment of the present application. For example, the storage command processing unit implements the process flow shown in fig. 11.
In response to the media interface controller indicating that the data read from the NVM chip cannot be decoded correctly, the storage command processing unit accesses the read redo sequence list, accessing entries from the read redo sequence list in a sequential order to obtain a get read threshold parameter (1110). The storage command processing unit generates a media interface command with the read threshold parameter obtained from the read redo sequence table and provides it to the media interface controller to instruct the media interface controller to issue a read redo command to the NVM chip to read data from the NVM chip (1120). The media interface controller processes the media interface command and indicates to the storage command processing unit whether there is an Uncorrectable Error (UECC) in the data read from the NVM chip according to the media interface command.
In response to the read data having an Uncorrectable Error (UECC) (1130), the storage command processing unit accesses the read redo sequence table again, accessing (next) entries from the read redo sequence table in a sequential order to obtain a get read threshold parameter (1110). In response to the read data not having an Uncorrectable Error (UECC) (1130), the memory command processing unit also obtains error bit information of the read data, and updates a corresponding entry of the read redo sequence table with the error bit information of the read data (1140). For example, the error bit information of the read data includes the number of bits in which data obtained by error correction decoding (ECC) of the read data is inverted compared with data read from the NVM chip. As an example, the storage command processing unit retrieves "read threshold parameter 2" from the read redo sequence table (see also fig. 10) and generates media interface command RCMD 2. The media interface controller instructs the media interface command RCMD2 that the processing was successful, correctly reads out data from the NVM chip with error bit information E2, and in response, the storage command processing unit records the error bit information E2 in the entry in the read redo sequence table associated with "read threshold parameter 2".
With continued reference to fig. 11, if the number of error bits represented by the error bit information E2 is less than the number of error bits of the header entry of the read redo sequence table (e.g., "error bit number 1" of fig. 10), the storage command processing unit also moves the entry in which the "read threshold parameter 2" and the "error information E2" are recorded to the entry of the read redo sequence table, and optionally, the other entries in the read redo sequence table are sequentially moved backward. If the number of error bits represented by the error bit information E2 is not less than the number of error bits of the header entry of the read redo sequence table (e.g., "error bit number 1" in fig. 10), the storage command processing unit does not move the entry in the read redo sequence table.
It will be appreciated that the number of error bits in the read redo sequence table is updated only after the data read from the NVM chip according to certain read threshold parameters is correctly error correction decoded.
According to the embodiments illustrated in fig. 9-11 of the present application, the storage command processing unit generates a media interface command (referred to as a normal media interface command for clarity) according to a host command or an IO read command. In response to a normal media interface command processing failure (read data present UECC), the storage command processing unit generates one or more media interface commands indicating read redo (for clarity, referred to as media interface commands indicating read redo), and updates the read redo sequence table only based on the read threshold parameter and error information used by the one of the one or more media interface commands indicating read redo that was successfully processed (read data was ECC decoded correctly). And if all the generated media interface commands indicating the read redo fail to be processed, the storage command processing unit does not update the read redo sequence table.
The storage command processing unit provides a plurality of common media interface commands to the media interface controller concurrently. By way of example, two common media interface commands are denoted as CMD1 and CMD2, respectively. For example, the CMD1 process fails, the storage command processing unit generates a media interface command indicating read redo by using the read threshold parameter (denoted as RP1) of the first entry obtained from the read redo sequence list, i.e., the process is successful, and the storage command processing unit further updates the error bit number (denoted as E1) of the first entry. When the CMD2 fails, the storage command processing unit generates media interface commands (denoted as RCMD1 and RCMD2, respectively) indicating read redo by using the read threshold parameter (denoted as RP1) of one entry and the read threshold parameter (denoted as RP2) of the second entry obtained from the read redo sequence table. The RCMD2 is successfully processed, and the storage command processing unit further updates the number of error bits (denoted as E2) of the second entry.
It will be appreciated that the processing of RCMD1 failed, and the number of error bits for the read data was significantly greater than E2, but this number of error bits was not recorded in the read redo sequence table. The number of bits in error for reading the first entry in the redo sequence table is still E1. Thus E2 may be larger than E1 and smaller than E1. According to an embodiment of the application, an entry recording E2 is moved to the head of the read redo sequence table only if E2 is smaller than E1, and optionally the other entries of the read redo sequence table are moved back in sequence. If E2 is not less than E1, then the entry that recorded E2 is not moved to the head of the read redo sequence list. E2 is smaller than E1, representing that the read threshold parameter (RP2) for E2 has a better effect in reading data from the NVM chip than the read threshold parameter (RP2) for E1. Note also that E2 and E1 each generated from different normal media interface commands (CMD1 and CMD2), and that while the entry recording E2 obtained good read results for CMD2, it did not necessarily obtain good read results for CMD 1. Therefore, according to embodiments of the present application, it is prudent to move the entries of the read redo sequence table. Only if E2 is less than the number of error bits (E1) of the current header entry of the read redo sequence list, the entry corresponding to E2 is moved to the header of the read redo sequence list. Optionally, if E2 is not less than the error bit number (E1) of the current header entry of the read-redo sequence table, the entry corresponding to E2 is not moved to the header of the read-redo sequence table, but the location of the entry corresponding to E2 in the read-redo sequence table is moved forward, for example, by one entry location, so that the storage command processing unit can obtain the read threshold parameter corresponding to E2 earlier when obtaining the read threshold parameter subsequently.
According to the embodiment of the application, along with the processing of a large number of media interface commands, the sequence of the read threshold parameters in the read redo sequence table is adjusted, and the read threshold more suitable for the current NVM chip (the read data has a high probability of being correctly decoded by error correction) is moved to the front position of the read redo sequence table, so that the storage command processing unit can acquire correct read data from the NVM chip by indicating the read redo media interface commands for fewer times, and the processing efficiency when uncorrectable errors occur is improved.
FIG. 12 illustrates a flow diagram for processing a read command according to yet another embodiment of the present application. The process flow of fig. 12 is implemented by the storage command processing unit in conjunction with the media interface controller.
The storage command processing unit passes a media interface command indicating a read command to the media interface controller (1210), and identifies whether the read command was successfully processed (1220) based on whether the read data from the NVM chip was correctly error correction decoded. If the read command is successfully processed (1220), the processing result of the read command is returned, and the processing flow of the read command is ended. If the read command fails to be processed (1220), the storage command processing unit accesses the read redo sequence table, obtains a read threshold parameter from the head of the read redo sequence table (1225), and generates a media interface command indicating read redo by using the obtained read threshold parameter to be processed by the media interface controller. In response, the media interface controller reads data from the NVM chip with a read redo command (1230). Whether the processing of the read redo command was successful is identified based on whether the data read from the NVM chip with the read redo command was correctly error correction decoded (1235). If the read redo command is successfully processed (1235), the processing result of the read redo command is returned, and the processing flow of the previous read command is finished. If the processing of the read redo command fails (1235), the storage command processing unit accesses the read redo sequence table again, and acquires the next read threshold parameter from the read redo sequence table (1240). If there is not this next read threshold parameter available for retrieval in the read redo sequence list (1245), meaning that all possibilities for the read threshold parameter have been tried but correct data still cannot be read from the NVM chip, then a processing failure is reported for the previous read command (1248) and the process flow ends. If the next read threshold parameter is obtained from the read redo sequence list (1245), a media interface command indicating read redo is generated by using the obtained read threshold parameter and is processed by the media interface controller. In response, the media interface controller reads data from the NVM chip with a read redo command (1250). Whether the processing of the read redo command was successful is identified based on whether the data read from the NVM chip with the read redo command can be correctly error correction decoded (1255).
If the read redo command is successfully processed (1255), the result of the read redo command is treated as the result of the previous read command. And comparing and acquiring the bit number of the data read from the NVM chip according to the read redo command and the bit number of the data obtained by error correction decoding of the read data, wherein the bit number is used as the error bit number corresponding to the read threshold parameter used by the read redo command, updating the read redo sequence table by using the error bit number, recording the error bit number in the entry of the read redo sequence table, which records the read threshold parameter used by the read redo command, in a correlated manner, and comparing the error bit number with the error bit number recorded by the head entry of the read redo sequence table (1260). If the number of error bits corresponding to the read threshold parameter used by the read redo command is not less than the number of error bits recorded in the header entry of the read redo sequence table (1265), the processing flow of the previous read command is ended. If the number of error bits corresponding to the read threshold parameter used by the read redo command is less than the number of error bits recorded in the header entry of the read redo sequence table (1265), the entry of the read redo sequence table that records the read threshold parameter used by the read redo command is also moved to the header of the read redo sequence table (1270), and optionally, other entries of the read redo sequence table are sequentially moved backward.
Optionally, the read redo sequence table is stored by a chain table, so that after a certain entry is moved to the head of the read redo sequence table, other entries in the read redo sequence table do not need to be moved.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application. It will be apparent to those skilled in the art that various changes and modifications may be made in the present application without departing from the spirit and scope of the application. Thus, if such modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include such modifications and variations as well.

Claims (10)

1. A method for processing a read command, comprising:
responding to the processing failure of the read command, acquiring one or more read threshold parameters from the read redo sequence list according to the order of the entries, and generating one or more read redo commands according to the acquired one or more read threshold parameters, wherein the one or more read redo commands access the same address as the read command;
and in response to the successful processing of a first read redo command in the one or more read redo commands, recording the number of error bits of the data read by the first read redo command in a first entry of a read redo sequence table in which the read threshold parameter used by the first read redo command is recorded.
2. The read command processing method of claim 1, wherein in response to the first read redo command processing being successful, data read by the first read command is used as data read according to the read command.
3. The method according to claim 1 or 2, wherein the obtaining one or more read threshold parameters from the read redo sequence table according to the order of the entries in the read redo sequence table, and generating one or more read redo commands according to the obtained one or more read threshold parameters includes:
acquiring a reading threshold parameter according to the entry sequence of the reading redo sequence table, and generating a reading redo command according to the acquired reading threshold parameter;
and responding to the failure of the processing of the obtained read redo command, then obtaining the next read threshold parameter according to the entry sequence of the read redo sequence table, and generating the next read redo command according to the obtained next read threshold parameter until the processing of the obtained next read redo command is successful.
4. The read command processing method according to one of claims 1 to 3,
if the error bit number of the data read by the first read redo command is smaller than the error bit number of the item in the read redo sequence table which is sorted at the top, adjusting the order of the items in the read redo sequence table, and taking the first item as the item in the read redo sequence table which is sorted at the top.
5. The read command processing method according to one of claims 1 to 4,
and if the error bit number of the data read by the first read redo command is greater than the error bit number of the item at the top of the sequence in the read redo sequence table, not changing the sequence of the items in the read redo sequence table.
6. The read command processing method according to one of claims 1 to 4,
and if the error bit number of the data read by the first read redo command is larger than the error bit number of the item at the top of the sequence in the read redo sequence table, moving the sequence of the first item in the read redo sequence table forward.
7. The read command processing method according to one of claims 1 to 6,
in response to a processing failure of the read command, acquiring one or more read threshold parameters from the read redo sequence table according to an entry sequence of the read redo sequence table, generating one or more media interface commands respectively indicating the acquired one or more read threshold parameters, and providing the generated one or more media interface commands to a media interface controller;
the media interface controller generates the one or more read redo commands based on the received one or more media interface commands.
8. The read command processing method of claim 7,
in response to a successful processing of a first read redo command of the one or more read redo commands, the media interface controller generates a first message, the first message completes the processing of the first media interface command, the first media interface command corresponds to the first read redo command, and the first message includes the number of error bits of the data read by the first read redo command;
and the storage command processing unit is used for responding to the first message and recording the error bit number of the read data of the first read redo command in the first entry of the read redo sequence table.
9. The read command processing method according to claim 7 or 8,
the media interface controller, in response to receiving the media interface command, generates or predicts a read threshold parameter from all or a portion of an accessed address of the received media interface command and indicates the generated or predicted read threshold parameter in the generated read redo command.
10. An information processing apparatus comprising a memory, a processor and a program stored on the memory and executable on the processor, characterized in that the processor implements the method according to one of claims 1 to 9 when executing the program.
CN202010877753.6A 2020-08-27 2020-08-27 Dynamically adjusting read redo sequences to optimize read command processing Pending CN114121127A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010877753.6A CN114121127A (en) 2020-08-27 2020-08-27 Dynamically adjusting read redo sequences to optimize read command processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010877753.6A CN114121127A (en) 2020-08-27 2020-08-27 Dynamically adjusting read redo sequences to optimize read command processing

Publications (1)

Publication Number Publication Date
CN114121127A true CN114121127A (en) 2022-03-01

Family

ID=80374595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010877753.6A Pending CN114121127A (en) 2020-08-27 2020-08-27 Dynamically adjusting read redo sequences to optimize read command processing

Country Status (1)

Country Link
CN (1) CN114121127A (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070201274A1 (en) * 2000-01-06 2007-08-30 Super Talent Electronics Inc. Cell-Downgrading and Reference-Voltage Adjustment for a Multi-Bit-Cell Flash Memory
CN104282339A (en) * 2013-07-08 2015-01-14 群联电子股份有限公司 Read voltage setting method, control circuit and memory storage device
US20150186210A1 (en) * 2013-12-30 2015-07-02 Silicon Motion Inc. Method for performing error correction, associated memory apparatus and associated controller thereof
CN106169308A (en) * 2015-03-16 2016-11-30 爱思开海力士有限公司 Memory Controller and operational approach thereof
CN106251903A (en) * 2015-06-05 2016-12-21 爱思开海力士有限公司 Storage system and operational approach thereof
CN106448737A (en) * 2016-09-30 2017-02-22 北京忆芯科技有限公司 Flash memory data reading method and device and solid disk drive
CN109901944A (en) * 2017-12-07 2019-06-18 北京忆恒创源科技有限公司 Reading data error handling method and system based on machine learning
CN110120234A (en) * 2018-02-07 2019-08-13 北京忆芯科技有限公司 Solid storage device and its optimal searching method for reading threshold voltage
CN111341373A (en) * 2018-12-19 2020-06-26 爱思开海力士有限公司 Controller, memory system including the same, and method of operating the memory system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070201274A1 (en) * 2000-01-06 2007-08-30 Super Talent Electronics Inc. Cell-Downgrading and Reference-Voltage Adjustment for a Multi-Bit-Cell Flash Memory
CN104282339A (en) * 2013-07-08 2015-01-14 群联电子股份有限公司 Read voltage setting method, control circuit and memory storage device
US20150186210A1 (en) * 2013-12-30 2015-07-02 Silicon Motion Inc. Method for performing error correction, associated memory apparatus and associated controller thereof
CN106169308A (en) * 2015-03-16 2016-11-30 爱思开海力士有限公司 Memory Controller and operational approach thereof
CN106251903A (en) * 2015-06-05 2016-12-21 爱思开海力士有限公司 Storage system and operational approach thereof
CN106448737A (en) * 2016-09-30 2017-02-22 北京忆芯科技有限公司 Flash memory data reading method and device and solid disk drive
CN109901944A (en) * 2017-12-07 2019-06-18 北京忆恒创源科技有限公司 Reading data error handling method and system based on machine learning
CN110120234A (en) * 2018-02-07 2019-08-13 北京忆芯科技有限公司 Solid storage device and its optimal searching method for reading threshold voltage
CN111341373A (en) * 2018-12-19 2020-06-26 爱思开海力士有限公司 Controller, memory system including the same, and method of operating the memory system

Similar Documents

Publication Publication Date Title
US9552290B2 (en) Partial R-block recycling
US10175892B1 (en) Adaptive read algorithm for a nonvolatile medium
US9753653B2 (en) High-priority NAND operations management
US11385984B2 (en) Variable read scan for solid-state storage device quality of service
US9135112B2 (en) Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US10877900B1 (en) Enabling faster and regulated device initialization times
US9146691B2 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
US9898215B2 (en) Efficient management of page retirement in non-volatile memory utilizing page retirement classes
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
WO2020248798A1 (en) Method and device for intelligently identifying unreliable block in non-volatile storage medium
CN113076218B (en) Method for rapidly processing data reading errors of NVM (non-volatile memory) chip and controller thereof
US20230161697A1 (en) Adjustable garbage collection suspension interval
TW202040370A (en) Data writing method, memory controlling circuit unit and memory storage device
JP6342013B2 (en) Method, system and computer program for operating a data storage system including a non-volatile memory array
TWI766764B (en) Method for managing memory buffer, memory control circuit unit and memory storage apparatus
CN110825310B (en) Memory management method and memory controller
CN113504880B (en) Memory buffer management method, memory control circuit unit and memory device
CN114121127A (en) Dynamically adjusting read redo sequences to optimize read command processing
US10817435B1 (en) Queue-based wear leveling of memory components
CN113867616A (en) Intelligent reading and redoing method and medium interface controller thereof
CN105573662B (en) Data writing method, memory control circuit unit and memory storage device
US11669394B2 (en) Crossing frames encoding management method, memory storage apparatus and memory control circuit unit
TWI712052B (en) Memory management method, storage controller and storage device

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