[go: up one dir, main page]

CN114121127B - Dynamically adjust the read redo sequence to optimize read command processing - Google Patents

Dynamically adjust the read redo sequence to optimize read command processing Download PDF

Info

Publication number
CN114121127B
CN114121127B CN202010877753.6A CN202010877753A CN114121127B CN 114121127 B CN114121127 B CN 114121127B CN 202010877753 A CN202010877753 A CN 202010877753A CN 114121127 B CN114121127 B CN 114121127B
Authority
CN
China
Prior art keywords
read
command
redo
media interface
sequence table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010877753.6A
Other languages
Chinese (zh)
Other versions
CN114121127A (en
Inventor
景博利
王祎磊
孟亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/CN114121127B/en
Publication of CN114121127A publication Critical patent/CN114121127A/en
Application granted granted Critical
Publication of CN114121127B publication Critical patent/CN114121127B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

提供了动态调整读重做序列以优化读命令处理的方法与设备。所提供的读命令处理方法,包括:响应于读命令处理失败,从读重做序列表中按读重做序列表的条目顺序获取一个或多个读阈值参数,并根据所获取的一个或多个读阈值参数生成一个或多个读重做命令,所述一个或多个读重做命令访问同所述读命令相同的地址;响应于所述一个或多个读重做命令中的第一读重做命令处理成功,在记录所述第一读重做命令所使用的读阈值参数的读重做序列表的第一条目中记录所述第一读重做命令读出数据的错误比特数;以及根据所述错误比特数调整所述读重做序列表中的条目的顺序。

A method and device for dynamically adjusting a read redo sequence to optimize read command processing are provided. The provided read command processing method includes: in response to a read command processing failure, obtaining one or more read threshold parameters from a read redo sequence table in the order of 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, wherein the one or more read redo commands access the same address as the read command; in response to a first read redo command of the one or more read redo commands being processed successfully, recording the number of error bits of data read out by the first read redo command in the first entry of the read redo sequence table that records the read threshold parameter used by the first read redo command; and adjusting the order of entries in the read redo sequence table according to the number of error bits.

Description

Dynamically adjusting read redo sequences to optimize read command processing
Technical Field
The present application relates to storage device technology, and in particular, to a method for intelligently implementing read and redo operations on NVM in a storage device and a media interface controller 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 capability for the host. The host and storage device 102 may be coupled by a variety of means including, but not limited to, connecting the host to the storage device 102 via, 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, 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 capable of communicating with the storage device in the manner described above, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, or the like. The memory device 102 includes an interface 103, a control unit 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory ) 110.
NAND flash memory, phase change memory, feRAM (Ferroelectric RAM, ferroelectric memory), MRAM (Magnetic Random Access Memory, magnetoresistive memory), RRAM (RESISTIVE RANDOM ACCESS MEMORY, resistive memory), XPoint memory, and the like are common NVM. To overcome such problems, the data stored in the NVM is typically protected by an error correction code (Error Correction Code, ECC) when accessing the NVM. Common error correction codes include BCH codes, LDPC, RS codes, and the like.
The interface 103 may be adapted to exchange data with a host by means of, for example SATA, IDE, USB, PCIE, NVMe, SAS, ethernet, fibre channel, etc.
The control unit 104 is used to control data transfer among the interface 103, NVM chip 105, and DRAM 110, and also for memory management, host logical address to flash physical address mapping, erase balancing, bad block management, etc. The control component 104 can be implemented in a variety of ways, such as 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. Control unit 104 may also be coupled to DRAM 110 and may access data of DRAM 110. FTL tables and/or cached data of IO commands may be stored in the DRAM.
The control section 104 includes a flash interface controller (or referred to as a media interface controller, a flash channel controller) that is coupled to the NVM chip 105 and issues commands to the NVM chip 105 in a manner conforming to an interface protocol of the NVM chip 105 to operate the NVM chip 105 and receive a command execution result output from the NVM chip 105. Known NVM chip interface protocols include "Toggle", "ONFI", and the like.
The NVM chip includes one or more Logic Units (LUNs). One or more dies (Die) may be included within the NVM chip package. Typically, the logic unit corresponds to a single die. The logic cell may include multiple 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 position of being available from
In "Open NAND FLASH INTERFACE Specification (Revision 3.0)" obtained by http:// www.micron.com// media/Documents/Products/Other%20Documents/ONFI3_0gold. As hx, meanings concerning target, logical element, plane are provided, which are part of the prior art.
NVM chips typically store and read data on a page basis. While 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 pages have a fixed size, such as 17664 bytes. The physical pages may also have other sizes.
Fig. 2 shows a detailed block diagram of the control components of the memory device.
The host accesses the storage device in IO commands that follow the storage protocol. The control component generates one or more storage commands based on 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 follow the interface protocol of the NVM chip from the storage commands. The control unit also keeps track of all storage commands generated from one IO command being executed and indicates to the host the result of processing the IO command.
Referring to fig. 2, the control part 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 an IO command provided by the host and generates a storage command to be provided to the storage command processing unit. The storage commands, for example, access the same size of storage space, e.g., 4KB. The data unit of the data accessed by the corresponding one of the storage commands recorded in the NVM chip is referred to as a data frame. The physical page records one or more frames of data. For example, if the physical page size is 17664 bytes and the data frame size is 4KB, then one physical page can store 4 data frames.
The smallest data unit protected by a 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 called the code rate of the ECC. The code rate of the ECC reflects the error correction capability of the ECC. In general, 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 data frame can accommodate multiple ECC blocks.
The storage medium management unit maintains a logical address to physical address translation for each storage command. For example, the storage medium management unit includes FTL tables. 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 relationship between the logical address accessed by the storage medium management unit and the allocated physical address. The storage medium management unit also maintains functions required to manage the NVM chip, such as garbage collection, wear leveling, etc.
The storage command processing unit operates the medium interface controller to issue a storage medium access command to the NVM chip according to the physical address provided by the storage medium management unit. For the sake of clarity, the commands sent by the storage command processing unit to the media interface controller are referred to as media interface commands, while the commands sent by the media interface controller to the NVM chip are referred to as storage media access commands. The storage medium access command follows the interface protocol of the NVM chip. Taking the storage medium access read command as an example, the read commands supported by the NVM chip are classified into various types according to the size of the data read, such as a read command to read a complete physical page, a read command to read one, two or more data frames, a read command to read multiple planes, a read command to read multiple physical pages of a word line, etc.
The media interface command corresponds to a storage media access command such that the media interface controller determines a 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 medium interface controller of the control part comprises a medium interface, an ECC encoding unit and an ECC decoding unit. The media interface is coupled to the NVM chip, provides storage media access commands to the NVM chip, and retrieves data from the NVM chip according to the storage media access read commands. The medium interface is coupled with the ECC encoding unit and the ECC decoding unit. The media interface controller generates and provides the memory media access commands to the NVM chip based on the media interface commands obtained from the memory 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 data is read 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 the data to be written, the ECC decoding unit performs ECC decoding on the data read from the NVM chip, and the decoding result is written into the memory.
The memory is, for example, a DRAM coupled to the control unit or an SRAM integrated with the control unit.
Referring to fig. 3, taking read data as an example, the media interface controller operates, and 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 be provided 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). As an example, the ECC decoding unit fails to decode, 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 begins the error handling process, such as error correction by read redo (READ RETRY), providing a media interface command to the media interface controller indicating read redo, the media interface generating a storage media access (read) command to the NVM chip indicating read redo (indicated by (5) in fig. 3). Read redo is a type of read command that the NVM chip can process, 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 parameters, there is an opportunity to adapt the characteristics of the storage medium of the NVM chip (random noise, wear, electronic escape, etc.) so that the probability of reading out the correct data is improved.
In response to a storage medium access (read) command indicating read redo, the NVM chip outputs read data, and the medium interface supplies the read data to an ECC decoding unit for ECC decoding again (indicated by (6) in fig. 3). For example, if the present ECC decoding is successful, the decoded data is carried 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 processes of "(4)" to "(7)".
In still other examples, the media interface controller autonomously performs read redo. In response to a decoding failure of the ECC decoding unit, the media interface controller attempts other read threshold parameter(s) directly by indicating a read redo media interface command.
Disclosure of Invention
The storage command processing unit has the ability to implement complex error recovery procedures, but the error handling process that reciprocates between the storage command processing unit and the media interface controller lengthens the error handling time and also loads the storage command processing unit. This increase in load becomes particularly serious in the case where the storage command processing unit is implemented by running software, both making the read command processing time longer and limiting the processing capacity of the storage command processing unit due to the increase in load. However, in the case where the media interface controller autonomously performs read redo, the type of read redo that the media interface controller attempts is limited by complexity and the strategy of searching for read threshold parameters is less or not implemented.
Alternatively or in addition, in some cases, the vendor of the control component of the storage device delivers the programmable control component to the storage device manufacturer. The storage device manufacturer programs to implement the storage command processing unit and the control component provider implements the media interface controller. The vendor of the media interface controller typically has a more complete understanding of the characteristics of the NVM chip so that the error recovery process for the read command can be better implemented, including using a more optimal read redo command to complete the processing of the read command 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 to intelligently select or prompt read threshold parameters for use in read rework to reduce error handling time, reduce error rate of the storage device, and extend the life of the storage device.
In order to solve the 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, which includes receiving a media interface command, adjusting a read command or a read redo command to be generated according to the media interface command, and providing the adjusted read command or read redo command to a nonvolatile memory chip.
According to a first read command processing method of the first aspect of the present application, there is provided a second read command processing method according to the first aspect of the present application, wherein a first read threshold parameter for a physical address is identified from the physical address accessed by a read command or a read redo command to be generated.
According to a second read command processing method of the first aspect of the present application, there is provided a third read command processing method according to the first aspect of the present application, wherein the generated read command or read redo command is updated in accordance with the identified first read threshold parameter, and the read command or read redo command is updated to be a read redo command indicating use of the first read threshold parameter.
According to a second or third read command processing method of the first aspect of the present application, there is provided a fourth read command processing method according to the first aspect of the present application, wherein if a first read threshold parameter for a physical address of a read command or a read redo command is not found, the read command or the read redo command is not updated, and a nonvolatile memory chip is directly provided.
According to a fifth read command processing method according to the first aspect of the present application, if a physical address to be accessed by a read-redo command to be generated is invalid or does not have a better effect than the read command, the read-redo command is updated to be the read command to access the physical address.
According to a first to fourth read command processing method of the first aspect of the present application, there is provided a sixth read command processing method according to the first aspect of the present application, wherein, according to a 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 than the read command, the read redo command is directly provided to the nonvolatile memory chip without updating the read redo command.
According to a first to sixth read command processing method of the first aspect of the present application, there is provided a seventh read command processing method according to the first aspect of the present application, wherein, according to a read redo command to be generated, if a first read threshold parameter is identified for a physical address to be accessed by the read redo command to be generated, the read redo command is updated to a read redo command indicating the use of the first read threshold parameter.
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 a read command or a read redo command to be generated, a read threshold table is queried with a physical address or a part of the physical address to be accessed by the read command or the read redo command to acquire a read threshold corresponding to the physical address to be accessed, and 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 recording a physical address to be accessed and a read threshold exists in the read threshold table, a 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 instructs to access a physical address using a second read threshold, a read threshold table is queried with the physical address, if there is no entry in the read threshold table in which the physical address is recorded, the read redo command is provided to a nonvolatile memory chip without modification, and an entry in the read threshold table in which the physical address and the second read threshold are recorded is also added.
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, in accordance with a read redo command to be generated, the read redo command instructs to access a physical address using a third read threshold, a read threshold table is queried with the physical address, if there is an entry in the read threshold table in which the physical address is recorded, but the fourth read threshold recorded in the entry is different from the third read threshold, the read redo command is provided 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 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, further comprising identifying an uncorrectable flag in the read threshold table entry, the uncorrectable flag indicating that data previously obtained by accessing a corresponding physical address with a read threshold recorded by 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 there is an uncorrectable flag in a read threshold entry corresponding to a physical address indicated by a 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 according to the first aspect of the present application, wherein, according to a read redo command to be generated, if an entry of a physical address indicated by the read redo command exists in the read threshold table, but there is an uncorrectable flag 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 a twelfth to fourteenth read command processing method of the first aspect of the present application, there is provided the fifteenth read command processing method according to the first aspect of the present application, wherein an uncorrectable flag is set in an entry of the read threshold table corresponding to the first physical address in response to decoding failure of the error correction code decoding unit for data read out from the nonvolatile memory chip in accordance with a read command or a read redo command accessing the first physical address.
According to a 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 in decoding the data read out from the nonvolatile memory chip in accordance with the read command or the read redo command accessing the first physical address, 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 according to 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 according to 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 according to the first aspect of the present application, wherein the number of entries of the read threshold table can only accommodate a partial possible value of a physical block number, a layer number of the 3D nonvolatile memory chip, or a combination of the physical block number and the layer number.
According to a first to nineteenth read command processing methods of the first aspect of the present application, there is provided a twentieth read command processing method according to the first aspect of the present application, wherein the medium interface command further includes receiving a read command adjustment unit enable flag.
According to a twentieth read command processing method of the first aspect of the present application, there is provided the twentieth read command processing method according to 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 twentieth read command processing method of the first aspect of the present application, there is provided the twentieth read command processing method according to the first aspect of the present application, wherein if the read command adjusting unit enables the flag to be invalid, a read command or a read redo command to be generated according to the media interface command is directly provided to the nonvolatile memory chip.
According to a first to a twenty-third read command processing method of the first aspect of the present application, there is provided a twenty-third read command processing method according to the first aspect of the present application, further comprising providing a predicted read threshold for a physical address to be 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 a twenty-fourth read command processing method according to the first aspect of the present application, wherein the predicted read threshold value is given according to a read threshold value 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 according to the first aspect of the present application, wherein an average value or a weighted average value is calculated for the read threshold values of all or part of the entries in the read threshold value table as the predicted read threshold value.
According to a twenty-fourth or twenty-fifth read command processing method of the first aspect of the present application, there is provided a twenty-sixth read command processing method according to the first aspect of the present application, wherein an average or weighted average is calculated as a predicted read threshold for read thresholds of all or part of entries in the read threshold table having a physical address close to a physical address to be accessed by a 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 two physical addresses being in proximity in value, a spatial location of a memory cell represented by the two physical addresses on the nonvolatile memory chip being in proximity, and/or a usage state of the memory cell represented by the two physical addresses being in proximity.
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 according to the first aspect of the present application, wherein further comprising predicting the read threshold according to the temperature, the number of erasures and/or the number of reads of the memory cell.
According to a twenty-fourth to twenty-eighth read command processing method of the first aspect of the present application, there is provided a twenty-ninth read command processing method according to the first aspect of the present application, wherein further comprising generating a read redo command using the predicted read threshold value and providing the read redo command to the nonvolatile memory chip.
According to a twenty-fourth to twenty-ninth read command processing method of the first aspect of the present application, there is provided a thirty-first read command processing method according to the first aspect of the present application, wherein further comprising updating the read threshold table with the predicted read threshold.
According to twenty-fourth to thirty-first read command processing methods of the first aspect of the present application, there is provided the thirty-first read command processing method according to the first aspect of the present application, further comprising generating a predicted read threshold value from the uncorrectable indicia of the read threshold value table.
According to a thirty-first read command processing method of the first aspect of the present application, there is provided a thirty-second read command processing method according to the first aspect of the present application, wherein in response to the presence of an uncorrectable tag, a predicted read threshold value is generated that is different from the read threshold value indicated by the entry in which the uncorrectable tag is located.
According to a twenty-fourth to thirty-third read command processing method of the first aspect of the present application, there is provided the thirty-third read command processing method according to 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 as the predicted read threshold value in a direction in which the read threshold value is incremented.
According to a twenty-fourth to thirty-third read command processing method of the first aspect of the present application, there is provided a thirty-fourth read command processing method according to 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 according to 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 according to the first aspect of the present application, wherein the predicted read threshold is not provided if the read threshold prediction enable flag is invalid.
According to twenty-fourth to thirty-seventh read command processing methods of the first aspect of the present application, there is provided the thirty-seventh read command processing method according to the first aspect of the present application, wherein a first media interface command is provided to a media interface;
In response to the media interface indicating that an uncorrectable error occurred in processing 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 further having a valid read threshold prediction enable flag.
According to a first to thirty-seventh read command processing methods of the first aspect of the present application, there is provided the thirty-eighth read command processing method of the first aspect of the present application, wherein a corresponding micro instruction sequence is acquired according to a media interface command to be generated, and a specified signal is generated on a lead coupled to a nonvolatile memory chip according to a signal indicated by the micro instruction sequence;
the microinstructions of the microinstruction sequence include fetch read threshold microinstructions and/or update read threshold microinstructions.
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 according to the first aspect of the present application, wherein the operand of the fetch 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 a fortieth read command processing method according to the first aspect of the present application, wherein the operand of the fetch 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 a thirty-eighth to fortieth read command processing method of the first aspect of the present application, there is provided the fortieth read command processing method of the first aspect of the present application, wherein the fetch read threshold microinstruction further comprises a result register which is filled with a read threshold corresponding to a physical address indicated by the fetch read threshold microinstruction in response to the fetch read threshold microinstruction being executed.
According to a forty-first read command processing method 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 when the fetch read threshold microinstruction is executed, an entry corresponding to the physical address is fetched from the read threshold table by using the physical address indicated by the fetch read threshold microinstruction, and a read threshold of the entry is fetched to fill the result register.
According to a forty-third read command processing method of the first aspect of the present application, there is provided a forty-third read command processing method according to the first aspect of the present application, wherein the result register is filled with a predicted read threshold when the fetch 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 obtained by obtaining the read threshold microinstruction is used to configure a microinstruction sequence that processes the read redo command so that, when the microinstruction sequence is executed, the read redo command indicating the obtained read threshold is provided to the nonvolatile memory chip.
According to thirty-eighth to forty-fifth read command processing methods of the first aspect of the present application, there is provided a forty-fifth read command processing method according to the first aspect of the present application, wherein the processing of the micro instruction sequence of the read-redo command includes generating a micro instruction sequence of a set feature command and a micro instruction sequence of a read-redo command, the micro instruction sequence of the set feature command being used to set a read threshold of the read-redo command to a fifth read threshold, and the read threshold of the read instruction corresponding to the read-redo command being a fourth read threshold.
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 according to the first aspect of the present application, wherein the micro instruction sequence for processing the read redo command further includes an additional micro instruction sequence for generating a set feature command for setting the read threshold to a fourth read threshold used by the read command after the read redo command processing is ended.
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 according to the first aspect of the present application, wherein updating the operand of the 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 according to 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 a first to forty-eighth read command processing methods of the first aspect of the present application, there is provided a forty-ninth read command processing method according to the first aspect of the present application, wherein a read pause signal is generated to instruct the nonvolatile memory chip to pause outputting data to be acquired by the read command or the read redo command in response to an available space in the local cache being smaller than a threshold value.
According to a forty-ninth read command processing method of the first aspect of the present application, there is provided a fifty-read command processing method according to the first aspect of the present application, wherein the read pause signal is deactivated in response to the available space in the local cache being not less than a threshold.
According to a nineteenth or fifty-first read command processing method of the first aspect of the present application, there is provided the fifty-first read command processing method according to the first aspect of the present application, wherein the read enable signal or the clock signal provided to the nonvolatile memory chip is suspended or canceled in response to the read suspend signal.
According to a nineteenth or fifty-first read command processing method of the first aspect of the present application, there is provided the fifty-first read command processing method according to the first aspect of the present application, wherein the nonvolatile memory chip is instructed to suspend outputting data to be acquired by the read command or the read redo command by generating a signal to put the nonvolatile memory chip in a suspend state.
According to a fifty-third 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 in which the nonvolatile memory chip is instructed to suspend outputting data, the read enable signal or the clock signal provided to the nonvolatile memory chip is resumed in response to the read suspension signal being canceled or the read suspension signal being no longer generated to instruct the nonvolatile memory chip to continue outputting the read command or the data to be acquired by the read redo command.
According to forty-ninth to fifty-third read command processing methods of the first aspect of the present application, there is provided a fifty-fourth read command processing method according to the first aspect of the present application, wherein the local cache is managed according to the size of the error correction code block.
According to a thirty-eighth to fifty-fourth read command processing method of the first aspect of the present application, there is provided the fifty-fifth read command processing method according to 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 fetch read threshold microinstruction, if the read threshold to be used is obtained, the microinstruction sequence generating the read redo command is invoked to continue processing, and the microinstruction sequence processing the read redo command is configured with the obtained read threshold to issue the read redo command to the nonvolatile memory chip.
According to a fifth or fifty-sixth read command processing method of the first aspect of the present application, there is provided the fifty-seventh read command processing method according to the first aspect of the present application, wherein, for generating the read redo command, a fetch read threshold or a predicted read threshold is first invoked, and the micro instruction sequence for generating the read redo command is configured with the obtained read threshold or the predicted read threshold 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 according to 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 a first to fifty-eighth read command processing method of the first aspect of the present application, there is provided a fifty-ninth read command processing method according to the first aspect of the present application, wherein the signal driver is driven in accordance with a signal indicated by a 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 a sixtieth read command processing method according to the first aspect of the present application, wherein the micro instruction sequence further includes a count value indicating that the specified signal is repeatedly driven a plurality of times.
According to a sixteenth read command processing method 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 the counting is stopped in response to the read pause signal being valid.
According to a sixtieth or sixtieth read command processing method of the first aspect of the present application, there is provided a sixtieth read command processing method according to the first aspect of the present application, wherein the count is restored in response to the read pause signal being invalidated or revoked.
According to a sixtieth to sixtieth read command processing method of the first aspect of the present application, there is provided the sixtieth read command processing method of the first aspect of the present application, wherein in the case of stopping the count, the driving lead is stopped to instruct the nonvolatile memory chip to suspend the data transfer.
According to a fifty-ninth to sixty-third read command processing method of the first aspect of the present application, there is provided a sixty-fourth read command processing method according to the first aspect of the present application, wherein the read suspend signal further instructs the signal driver to generate a read enable signal on a lead coupled to the nonvolatile memory chip indicating an invalidation or deassertion 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 a sixty-fifth read command processing method according to 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 to the nonvolatile memory chip indicating that the nonvolatile memory chip enters a suspend state.
According to a fifty-ninth to sixty-fifth read command processing method of the first aspect of the present application, there is provided a sixty-sixth read command processing method according to the first aspect of the present application, wherein the read pause signal is valid only for execution of a sequence of micro instructions that generates a read command or a read redo command.
According to a fifty-ninth to sixty-sixth read command processing method of the first aspect of the present application, there is provided a sixty-seventh read command processing method according to the first aspect of the present application, wherein a yield process is performed in response to the 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-eighth read command processing method according to the first aspect of the present application, wherein in response to a read suspension signal, execution of a current micro instruction sequence that generates a read command or a read redo command is suspended, and a partial or full execution state of the current micro instruction sequence that 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 according to the first aspect of the present application, wherein after execution of a current micro instruction sequence that generates a read command or a read redo command is suspended, other micro instruction sequences are executed to send the read command or the read redo command to other logic units of other nonvolatile memory chips or nonvolatile memory chips.
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 according to the first aspect of the present application, wherein after the read suspension signal is deactivated and the execution yield of the other micro instruction sequence or other micro instruction sequence is completed, part or all of the execution state of the micro instruction sequence that generated the read command or the read redo command stored before is restored, and the micro instruction sequence that generated the read command or the read redo command stored before is continued to be processed.
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 adjustment unit, a media interface and an error correction code decoding unit, the media interface being coupled to the read command adjustment unit and the error correction code decoding unit;
The read command adjusting unit adjusts only the medium interface command corresponding to the read command or the read redo command according to the medium interface command, and provides the adjusted medium interface command to the medium interface.
According to a first medium interface controller of a second aspect of the present application, there is provided a second medium interface controller of the second aspect of the present application, wherein the read command adjustment unit includes a command parsing unit and a read threshold table, the read command adjustment 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 a read command or a read redo command, the command parsing unit queries a read threshold table with a physical address or a portion of the physical address to be accessed by the read command or the read redo command to obtain 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 obtained read threshold, and provides the updated command to the media interface.
According to a first or second media interface controller of the second aspect of the present application, there is provided a third 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 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 sequence number on a lead wire of the medium interface coupled with the nonvolatile memory chip, and generates a signal sequence conforming to the interface protocol of the nonvolatile memory chip by executing the micro instruction sequence.
According to a third media interface controller of the second aspect of the present application, there is provided a fourth media interface controller of the second aspect of the present application, wherein the sequence of micro-instructions corresponding to the media interface command corresponding to the read command or the read redo command includes a fetch read threshold micro-instruction and/or an update read threshold micro-instruction.
A fourth media interface controller according to the second aspect of the present application provides the fifth media interface controller according to the second aspect of the present application, wherein, in response to the get read threshold microinstruction being executed, the read threshold table is queried with the physical address or part thereof indicated by the get read threshold microinstruction, and the read threshold value obtained from the read threshold table is obtained.
According to a fourth or fifth media interface controller of the second aspect of the present application, there is provided a sixth media interface controller according to the second aspect of the present application, wherein in response to the update read threshold microinstruction being executed, the read threshold indicated by the update read threshold microinstruction is recorded in an entry of the read threshold table associated with the physical address or part thereof indicated by the update read threshold microinstruction.
According to a fourth to sixth media interface controller of the second aspect of the present application, there is provided a seventh media interface controller of the second aspect of the present application, wherein in response to execution of the get read threshold microinstruction, the get read threshold is obtained, the sequence of microinstructions generating the read redo command is invoked for continued processing, and the sequence of microinstructions generating 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-described 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, characterized by comprising sequentially acquiring one or more read threshold parameters from a read-redo sequence table in response to a read command processing failure, and generating one or more read-redo commands according to the acquired one or more read threshold parameters, the one or more read-redo commands accessing the same address as the read command, in response to a first read-redo command processing success of the one or more read-redo commands, recording the number of error bits of read data of the first read-redo command in a first entry of the read-redo sequence table in which the read threshold parameters used by the first read-redo command are recorded, and adjusting the order of entries in the read-redo sequence table according to the number of error bits.
According to a first read command processing method of a fourth aspect of the present application, there is provided a second read command processing method according to the fourth aspect of the present application, characterized in that, in response to a successful processing of the first read redo command, data read out by the first read command is used as data read out in accordance with the read command.
According to a first or second read command processing method of a fourth aspect of the present application, there is provided a third read command processing method of the fourth aspect of the present application, wherein the step of acquiring one or more read threshold parameters from the read redo sequence table in the order of entries in the read redo sequence table and generating one or more read redo commands according to the acquired one or more read threshold parameters includes acquiring one read threshold parameter in the order of entries in the read redo sequence table and generating one read redo command according to the acquired read threshold parameter, and in response to a processing failure of the acquired one read redo command, acquiring a next read threshold parameter in the order of entries in the read redo sequence table and generating a next read redo command according to the acquired next read threshold parameter until the processing of the acquired next read redo command is successful.
According to one of the first to third read command processing methods of the fourth aspect of the present application, there is provided a fourth read command processing method according to the fourth aspect of the present application, characterized in that the read command processing failure is indicated in response to a read redo command processing failure generated with all read threshold parameters in the read redo sequence table.
According to one of the first to fourth read command processing methods of the fourth aspect of the present application, there is provided a fifth read command processing method according to the fourth aspect of the present application, characterized in that 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 first ordered 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 taken as the first ordered entry of 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 the sixth read command processing method according to the fourth aspect of the present application, characterized in that the order of the entries in the read redo sequence table is not changed 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-ordered entry of 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 seventh read command processing method according to the fourth aspect of the present application, characterized in that the ordering of the first entry in the read redo sequence table is advanced 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 first ordered entry in the read redo sequence table.
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, characterized in that, in response to a failure of the read command processing, one or more read threshold parameters are acquired from the read-redo sequence table in the order of entries in the read-redo sequence table, one or more media interface commands respectively indicating the acquired one or more read threshold parameters are generated and provided to the media interface controller, and 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 a 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 the read threshold parameters 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 a processing of a first media interface command corresponding to the first read redo command is completed, the first message including a number of error bits of the first read redo command read data, and the storage command processing unit records the number of error bits of the first read redo command read data in the first entry of a read redo sequence table in response to the first message.
According to a tenth read command processing method of the fourth aspect of the present application, there is provided an eleventh read command processing method according to the fourth aspect of the present application, wherein the first message further 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 according to the twelfth aspect of the present application, characterized in that the media interface controller generates or predicts a read threshold parameter from all or part of the address of the access of the received media interface command in response to receiving the 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 according to the fourth aspect of the present application, characterized in that the read threshold table is queried according to all or part of the address of the access of the received media interface command to acquire the read threshold 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 according to the fourth aspect of the present application, characterized in that an average value or a weighted average value is calculated for the read threshold values of all or part of the entries in the read threshold value table as the predicted read threshold value parameter.
According to one of the first to fourteenth read command processing methods of the fourth aspect of the present application, there is provided the fifteenth read command processing method according to the fifteenth aspect of the present application, characterized in that the number of error bits of the first read-and-replay command read data is the number of bits of data obtained by error correction decoding the data read from the NVM chip according to the first read-and-replay command compared with the data read from the NVM chip according to the first read-and-replay 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, characterized in that the one or more read threshold parameters are acquired from the read-redo sequence table in order of entries of the read-redo sequence table or are acquired from the read-redo sequence table in order of decreasing number of erroneous bits recorded in the read-redo sequence table in response to a read command processing failure.
According to one of the first to sixteenth read command processing methods of the fourth aspect of the present application, there is provided the seventeenth read command processing method according to the fifteenth aspect of the present application, characterized in that the method further comprises adjusting the order of entries in the read-redo sequence table according to the number of error bits 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, characterized in that 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 used in the embodiments or the description of the prior art will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings may be obtained according to these drawings for a person having ordinary skill in the art.
FIG. 1 illustrates a block diagram of a prior art memory device;
FIG. 2 illustrates a detailed block diagram of the control components 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 application;
FIG. 5 illustrates a block diagram of a read command adjustment unit according to an embodiment of the application;
FIG. 6 illustrates a block diagram of a media interface according to yet another embodiment of the application;
FIG. 7 illustrates a block diagram of a media interface controller according to an embodiment of the application;
FIG. 8 illustrates a detailed block diagram of a media interface according to an embodiment of the application;
FIG. 9 illustrates a block diagram of a media interface controller according to yet another embodiment of the 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 chart for using a read redo sequence table in accordance with still another embodiment of the present application;
FIG. 12 illustrates a flow chart for processing a read command according to yet another embodiment of the application.
Detailed Description
The following description of the embodiments of the present application will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are some, but not all embodiments of the application. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
FIG. 4 illustrates a block diagram of a media interface controller according to an embodiment of the application.
The medium interface controller of the control part comprises a medium 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 medium interface command provided to the medium interface controller by the storage command processing unit is provided to the read command adjustment unit. The read command adjusting unit adjusts only the media interface command to be generated 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 them, but provides them directly to the media interface.
According to an embodiment of the present application, the read command adjustment unit identifies a read threshold parameter for accessing a physical address accessed by a read command or a read redo command to be generated, based on the physical address accessed by the read command or the read redo command. For example, for physical address P1, the read command adjustment unit recognizes that the read threshold parameter V1 is preferred for 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 the use of read threshold parameter V1. For another example, for physical address P1, the read command adjustment unit does not find the preferred read threshold parameter for physical address P1, and instead provides it directly to the media interface without updating the media interface command.
As yet another example, the media interface command provided by the storage command processing unit indicates that the physical address P2 is accessed with a read redo command, and the read command adjustment unit recognizes that the read redo command is invalid or does not have a better effect than the read command for the physical address P2. The read command adjusting 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. For another example, for physical address P2, the read command adjust 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 the use of the read threshold parameter V2'.
As another example, the media interface command provided by the storage command processing unit indicates that the physical address P2 is accessed with a read command or a read redo command. For the physical address P2, if the read command adjusting unit identifies that the voltage value carried by the read command or the read redo command is already the optimal read threshold parameter, the read command adjusting unit does not adjust the media interface command, and directly provides the media interface command to the media interface.
FIG. 5 illustrates a block diagram of a read command adjustment unit according to an embodiment of the application.
The read command adjusting unit comprises a command analyzing unit and a read threshold value table. Optionally, the read command adjustment unit further comprises 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 physical addresses, read thresholds, and/or UECC (uncorrectable) flags. The UECC flag indicates that data previously obtained from accessing the corresponding physical address with the read threshold recorded by the read threshold entry cannot be properly ECC decoded. In response to receiving a media interface command indicating a read command or a read redo command, querying a read threshold table with the indicated physical address or a portion of the physical address to be accessed by the read command or the read redo command to obtain a read threshold corresponding to the physical address to be accessed, updating the media interface command with the obtained read threshold, and providing the updated media interface command to the media interface.
The storage command processing unit (see also fig. 4) provides the medium 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 directly provides the media interface with the media interface command except the read command and the read redo command without processing the media interface command. And inquiring a read threshold value table for a medium interface command indicating the read command or the read redo command, obtaining a read threshold value from the read threshold value table, updating the medium interface command into the medium interface command indicating the read redo command and providing the medium interface with the medium interface command.
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 in which the physical address P1 and the read threshold V1 are recorded, the received media interface command is updated to indicate that the read-redo command using the read threshold V1 is provided to the media interface. In yet another example, the command parsing unit receives a media interface command indicating a read redo command to access physical address P2 (indicating a read threshold V2), queries the read threshold table with physical address P2, provides the media interface command unmodified to the media interface if there is no entry in the read threshold table that records physical address P2, and also adds an entry in the read threshold table that records physical address P2 and 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 physical address P3, queries a read threshold table with physical address P3, if there is an entry in the read threshold table where physical address P3 is recorded, but the read threshold recorded in the entry is different from V3, provides the media interface command unmodified to the media interface, and also updates the read threshold of the entry where physical address P3 is recorded to read threshold V3 in the read threshold table.
Still optionally, the command parsing unit further identifies a UECC flag in the read threshold table entry. For example, for a media interface command that indicates a read command to access physical address P4, there is an entry in the read threshold table for physical address P4, but the entry is marked with UECC, which means that the data previously accessed to 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 accessing physical address P5, an entry having physical address P5 exists in the read threshold table, but the entry has a UECC flag, and the command parsing unit clears the UECC flag in the entry to provide the media interface command to the media interface. Optionally, the command parsing unit further checks a read threshold indicated by the read redo command and a read threshold recorded in the entry, and if the read threshold and the read threshold are different, replaces the read threshold in the entry with the read threshold in the read redo command.
It will be appreciated that in response to an ECC decoding failure by the ECC decoding unit for data read from the NVM chip in accordance with a read command or a read redo command accessing the physical address, the UECC flag is set in the corresponding entry of the read threshold table. Or in response to the ECC decoding unit failing to decode the data read from the NVM chip according to the read command or the read redo command accessing the physical address, if there is no entry corresponding to the physical address failing to decode in the read threshold table, adding an entry corresponding to the physical address in the read threshold table, and setting the UECC flag.
Optionally, the read threshold table has limited entries. The physical address in the entry is, for example, the physical block number of the NVM chip, the layer number of the 3D NVM chip, or a combination of physical block number and 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 alternatively, 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, the command parsing unit also maintains a replacement of the read threshold table entries by a policy such as least recently used, first in first out, etc.
In still another embodiment, the media interface command provided by the storage command processing unit further includes a read command adjustment unit enable flag. If the read command adjust unit enables the flag to be active, the read command adjust unit processes the media interface command according to the manner illustrated in fig. 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 for the media interface.
In still alternative embodiments, the read threshold prediction unit provides a predicted read threshold for the accessed physical address. The physical addresses that are accessed may not be recorded in the read threshold table, or the physical addresses that are accessed may be recorded in the read threshold table, but also accompanied by a UECC tag, limited by the number of read threshold table entries, and in some cases the memory command processing unit lacks knowledge of the NVM chip's characteristics, and it is desirable for the read command adjustment unit to proactively give a proposed read threshold. In one example, the read threshold prediction unit gives a predicted read threshold from a read threshold table. For example, the read threshold prediction unit calculates an average or weighted average of the read thresholds for 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 or weighted average of read thresholds for all or part of entries in the read threshold table having a physical address that is close to the physical address to be accessed by the generated read command or read redo command as a predicted read threshold. Address proximity includes the two physical addresses being in numerical proximity (e.g., being adjacent integers, or having a difference less than, for example, 10), or the memory cells represented by the two physical addresses being in spatial proximity (e.g., being spatially adjacent, or being located less than, for example, 16 physical pages, 3 physical blocks, and/or layers apart), and/or the usage status of the memory cells represented by the two physical addresses being in proximity. In yet another example, the read threshold prediction unit further predicts the read threshold based on factors such as temperature, number of erasures and/or number of reads of the memory cell. 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 value generated by the read threshold value prediction unit is also used to update the read threshold value table. For example, a read threshold is predicted for a read command accessing physical address P6, the predicted read threshold and physical address P6 being recorded in an entry of a read threshold table.
Still alternatively, the read threshold prediction unit further generates a predicted read threshold from the 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 an entry in the read threshold table is present in which physical address P7 is recorded, with the UECC flag in the entry. The read threshold prediction unit generates a predicted read threshold that is different from the read threshold indicated in the entry based on the UECC flag. For example, the entry has recorded therein 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 a certain regularity, for example, the read threshold change tends to occur over time. As yet 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 as the predicted read threshold in the direction in which the read threshold is incremented.
In yet another embodiment, the media interface command provided by the storage command processing unit further includes 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 inactive, the read threshold prediction unit does not operate and does not provide a predicted read threshold.
Thus, according to one embodiment of the present application, the storage command processing unit cooperates with the read command adjusting unit. The storage command processing unit need not be aware of the characteristics of the NVM chip, but rather, for example, in normal circumstances, the media interface command provided to the media interface controller does not carry a read threshold prediction enable flag. And after, for example, the ECC decoding failure of the read data occurs, 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 with the predicted read threshold and supplies the media interface command indicating the (normal) read command instead of the media interface command indicating the (normal) read command to the media interface, at the time of supplying the media interface command indicating the (normal) read command with the read threshold prediction enable flag to the media interface controller. Next, 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 issues the media interface command indicating the read command to the physical address again to the media interface controller, and carries a read threshold prediction enable flag. And the read threshold prediction unit generates a new predicted read threshold in response, the command parsing unit generates a media interface command indicating a new read redo command with the predicted read threshold and provides the media interface command. In this way, the storage command processing unit repeatedly issues a media interface command to the media interface controller indicating a read command to the physical address in response to an ECC decoding failure, with a read threshold prediction enable flag, and the media interface controller completes an error handling process for the read data ECC decoding failure by the read threshold prediction unit attempting one or more read thresholds. Optionally, in each prediction, the read threshold prediction unit generates a predicted read threshold in a direction in which the read threshold increases.
FIG. 6 illustrates a block diagram of a media interface according to yet another embodiment of the 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 for the NVM chip and obtains the processing result of the storage medium access command. The media interface is further coupled to a micro instruction memory storing a sequence of micro instructions, and generates a storage media access command based on the micro instructions retrieved from the micro instruction memory.
The micro instruction sequence corresponds to the media interface command, and the media interface acquires the corresponding micro instruction sequence according to the received media 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 a signal indicated by the micro instruction sequence, and generates a specified signal on a lead of the medium interface coupled with the NVM chip. And generating a signal sequence conforming to the NVM chip interface protocol by executing the sequence of micro instructions.
Some microinstructions also include a count value that indicates that the specified signal is repeatedly driven multiple times. For example, if 1 byte of data is acquired from the DQ lead each time, the data acquisition from the DQ lead is repeated 1K times to acquire, for example, 4KB of data read out of the NVM chip. The micro instruction execution unit sets a counter according to the count value, and the counter driving signal driver repeatedly drives the lead wire for designated times. The signal drivers also collect signals from the leads, such as 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 fetch read threshold micro instruction and an update read threshold micro instruction. The operand of the fetch read threshold microinstruction includes a physical address. Optionally, the operand of the fetch read threshold microinstruction further comprises a register storing a read threshold table or a register storing an index of the read threshold table. The fetch read threshold microinstruction also includes a result register that is filled with a read threshold corresponding to a register value of the physical address indicated by the fetch read threshold microinstruction in response to the fetch 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 get the entry corresponding to the address from the read threshold table, and the read threshold of the get entry is used to populate 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 command signal driver provides the read redo command to the NVM chip indicating the obtained read threshold. Alternatively, some NVM chips require setting the read threshold used using, for example, a "Set Feature" command. For this purpose, 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 micro instruction sequence for processing the read redo command further includes an additional micro instruction sequence for generating a "Set Feature" command for setting the read threshold to be used when processing (normal) read commands (read commands before executing the read redo command) after the read redo command processing is completed.
The operand of the update read threshold microinstruction includes the physical address and the value of the read threshold to be updated. And responding to the execution of the read threshold updating micro-instruction, acquiring a corresponding entry of the read threshold table according to the address indicated by the read threshold updating micro-instruction, and writing the read threshold indicated by the micro-instruction in the entry.
The media interface controller uses the storage media access command to read out a data frame or full physical page data from the NVM chip. The read data needs to be buffered by the media interface controller and ECC decoding is performed. To increase the data read speed, the media interface controller provides a local buffer integrated inside the chip to buffer the data read from the NVM chip and to be ECC decoded. When a frame of data or whole physical page data read from an NVM chip includes N (N is a positive integer) ECC blocks, the bandwidth of the ECC decoding unit may have difficulty processing 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 residence time of the ECC block in the local buffer is increased, so that the utilization rate of the local buffer is reduced, and the capacity of the local buffer needs to be increased to ensure the read data bandwidth, which leads to an increase in the cost and power consumption of the control unit and the storage device. It is desirable to reduce the residence time of the ECC block in the local cache to increase the utilization of the local cache. It is also desirable to manage operations related to the use of local caches in a manner that is independent of the microinstructions.
FIG. 7 illustrates a block diagram of a media interface controller according to an embodiment of the application.
The medium interface controller of the control part comprises a medium 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 media interface executes the micro instructions to output a storage medium access command to the NVM chip and to store data obtained from the NVM chip according to the storage medium access read command 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 comprises a cache management unit coupled with the local cache and the media interface. The buffer management unit provides a signal indicating suspension of reading data (read suspension signal for short) to the media interface according to the available space size 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 data to be retrieved by the read command or the read redo command. And responsive to the available space in the local cache not being less than the threshold, the cache management unit deasserts the read pause signal provided to the media interface.
In normal operation of the media interface, data is read from the NVM chip in a conventional manner in response to not receiving the read pause signal, e.g., the media interface provides a succession of read enable signals to the NVM chip for reading data from the NVM chip.
In accordance with an embodiment of the present application, the media interface pauses or deasserts the read enable signal or CLK signal provided to the NVM chip in response to receiving the read pause signal to instruct the NVM chip to pause outputting data to be retrieved by the read command or the read redo command. It will be appreciated that the media interface instructs the NVM chip to suspend outputting data in other ways, depending on the various NVM chip interface protocols followed by the storage media access commands, or the various modes of operation defined by the interface protocols. For example, the media interface instructs the NVM chip to suspend outputting data to be retrieved by a read command or a read redo command by generating a signal to place the NVM chip in a suspend state. Then, in a state that the medium interface instructs the NVM chip to suspend outputting data, in response to receiving the revoked read suspension signal, or no longer receiving the read suspension signal, the medium interface resumes the read enable signal or the CLK signal provided to the NVM chip, or no longer generates the read suspension signal, to instruct the NVM chip to continue outputting the data to be acquired by the read command or the read redo command.
The monitoring of the local cache capacity and the subsequent generation of the read pause signal by the cache management unit is independent of the microinstructions executed by the media interface, so that the microinstructions, their execution units, and the sequence of microinstructions used to generate the media interface commands need not be modified. By instructing the NVM chip to suspend outputting data to be retrieved for a media interface (read) command when the available local buffer space is insufficient, a smaller capacity local buffer may be used in the media interface controller and/or the ability of the media interface controller to handle media interface (read) commands may be increased, e.g., a greater number of media interface (read) commands may be processed concurrently without reducing the capacity of the local buffer.
In an alternative embodiment, the local cache is managed according to the ECC block size. The local cache accommodates several ECC blocks. When the buffer management unit recognizes that the available space of the local buffer is insufficient to accommodate a specified number (e.g., one) of ECC blocks, a read pause signal is generated and provided to the media interface. And no read pause signal is provided to the media interface when the available space of the local buffer 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 an 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 such that the storage space it occupies becomes available.
As an example, a data frame to be read from the NVM chip by a storage medium access (read) command includes 4 ECC blocks. If the available local buffer is not enough to accommodate 1 ECC block, the buffer management unit provides a read suspension signal to the media interface, so that the media interface instructs the NVM chip not to start outputting data to be acquired by the storage media access (read) command or to suspend outputting data to be acquired by the storage media access (read) command. And when the available space of the local buffer is enough to accommodate at least 1 ECC block, the buffer management unit cancels or does not provide the read pause signal to the media interface, which also instructs the NVM chip to start or continue outputting data to be acquired by the storage medium access (read) command, even if the available space of the local buffer is insufficient to accommodate the complete data frame to be read. So that the data output of the NVM chip to the storage medium access (read) command is started earlier. In the case where the media interface controller concurrently processes a plurality of storage medium access (read) commands, the number of storage medium access (read) commands that are concurrently processed is increased.
It will be appreciated that the read pause signal may be replaced with 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 by the storage media access (read) command, whereas the media interface instructs the NVM chip to suspend outputting the data to be retrieved by the storage media access (read) command.
The micro instruction sequence corresponds to a media interface command. The micro instruction sequence that processes a read command or a read redo command also includes, for example, a fetch read threshold micro instruction and/or an update 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 if the read threshold to be used is obtained by executing the micro instruction for obtaining the read threshold, calling the micro instruction sequence for processing the read-redo command to continue processing, 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, the micro instruction sequence that processes the read redo command includes an update read threshold micro instruction. And updating the read threshold value recorded in the entry corresponding to the physical address to be accessed in the read threshold value table by executing the read threshold updating micro instruction. 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, firstly, a micro instruction for acquiring the read threshold value is called to acquire the read threshold value or the read threshold value is predicted, and the micro instruction sequence for processing the read-redo command is configured by the acquired read threshold value so as to send the read-redo command to the NVM chip, and the micro instruction for updating the read threshold value is also executed so as to update the read threshold value recorded in an entry corresponding to the physical address to be accessed in the read threshold value table.
FIG. 8 illustrates a detailed block diagram of a media interface according to an embodiment of the 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 of the medium interface coupled with the NVM chip, and generates a signal sequence conforming to the interface protocol of the NVM chip by executing the micro instruction sequence.
Some microinstructions also include a count value that indicates that the specified signal is repeatedly driven multiple times. For example, if 1 byte of data is acquired from the DQ lead each time, the data acquisition from the DQ lead is repeated 1K times to acquire, for example, 4KB of data read out of the NVM chip. The micro instruction execution unit sets a counter according to the count value, and the counter driving signal driver repeatedly drives the lead wire for designated 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, such as the ONFI protocol (e.g., SDR mode), the DQ pins transmit 8 bits of data per cycle, while in other modes (e.g., NV-DDR 2), the DQ pins transmit 16 bits of data per cycle. And the data conversion unit acquires effective data from the signals acquired by the DQ leads according to the current working mode and fills the effective data into a local cache.
According to an embodiment of the application, the 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 either deactivated or withdrawn, the counter resumes counting. In the event that the counter stops counting, the signal driver also stops driving, e.g., the DQ pins, to instruct the NVM chip to suspend data transfer. Alternatively or in addition, the read suspend signal also instructs the signal driver to generate a read enable signal on a lead coupled to the NVM chip indicating an disable or disable to instruct the NVM chip to suspend data transfer. Still alternatively, the read suspend signal also 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, execution of the microinstruction is suspended by the read suspend signal, and execution of the microinstruction is continued after the read suspend signal is deasserted. Alternatively, the read suspend signal is valid only for execution of micro-instructions that direct the acquisition of NVM chip read data from DQ pins, without affecting the execution of other micro-instructions.
According to a further embodiment of the application, the medium interface generates a yield (yield), for example, in response to receiving the read pause signal. For example, in response to a read pause signal, the media interface pauses execution of a current sequence of micro-instructions that generates a read command or a read redo command and saves a partial or full execution state of the current sequence of micro-instructions that generates a read command or a read redo command. Next, after suspending execution of the current micro instruction sequence that generated the read command or the read redo command, the media interface may execute other micro instruction sequences to send storage media access (read) commands to other NVM chips or other LUNs (logical units) of the NVM chips. And after the read pause signal is withdrawn, and after the medium interface processing completes the execution yield of other micro instruction sequences or other micro instruction sequences, restoring the partial or all execution state of the micro instruction which is stored before and generates the read command or the read redo command, and continuing to process the micro instruction sequence which is stored before and generates the read command or the read redo command.
The application adjusts the read threshold parameters used by the read command or the read redo command to be generated through the read command adjusting unit of the medium interface controller, so that complex search read threshold parameters can be implemented, more guidance is provided for the error recovery process, and the read threshold parameters used in the read redo are intelligently selected or prompted, thereby shortening the error processing time, reducing the error rate of the storage equipment and prolonging the service life of the storage equipment.
FIG. 9 illustrates a block diagram of a media interface controller according to yet another embodiment of the application.
NVM chips typically provide tens, and hundreds of read threshold parameters. The read redo command instructs the data to be read from the NVM chip using a 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 records in order a plurality (e.g., n being a positive integer) of read threshold parameters (shown in fig. 9 as read threshold parameter 1, read threshold parameter 2, read threshold parameter..and read threshold parameter n) that are available to the NVM chip. In order to generate the read-redo command, the storage command processing unit accesses the read-redo sequence table according to the arrangement sequence of the items, sequentially generates a medium interface command by using the read threshold parameters recorded in the read-redo sequence table, and sends the medium interface command to the medium interface controller. The media interface controller generates a read redo command to access the NVM chip with the read threshold parameter indicated by the media interface command.
There are a plurality of read threshold parameters recorded in the read redo sequence table. 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 supplies a media interface command indicating a read command (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 be provided to the NVM chip (indicated by (2) in fig. 9). The media interface also provides the read data output by the NVM chip to an ECC decoding unit (indicated by (3) in fig. 9). As an example, the ECC decoding unit decodes the failure, 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 obtains a read threshold parameter (indicated by (6) in fig. 9) from the read redo sequence table in the order of its entries. By way of example, in response to a media interface command processing failure, the first read threshold parameter obtained by the storage command processing unit from the read redo sequence table is "read threshold parameter 1". The storage command processing unit generates a media interface command (denoted as RCMD 1) indicating a read redo command based on the acquired read threshold parameter and supplies 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 processing result of the media interface command (RCMD 1) to the storage command processing unit. If the media interface command (RCMD 1) still fails to process, the storage command processing unit again acquires the next read operation parameter of the ordering from the read redo sequence table through the operations indicated by (5) and (6) in fig. 9. For example, the previous media interface command (RCMD 1) indicates "read threshold parameter 1", and the next read operation parameter currently acquired is "read threshold parameter 2". And the storage command processing unit regenerates a media interface command (denoted as RCMD 2) indicating a read redo command according to the acquired read threshold parameter and supplies the media interface command to the media interface controller. If the processing result of the media interface command (denoted as RCMD 2) still fails, the storage command processing unit acquires the next read threshold parameter again until all the read threshold parameters in the read threshold sequence table 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 of the read threshold parameters in the read threshold sequence table are used, the storage command processing unit indicates to, for example, the host command processing unit that the processing failed, if none of the read threshold parameters were to read the correct data from the NVM chip. The order of entry ordering in the read redo sequence table is provided or suggested by the NVM chip or experimentally found to enable in most cases earlier finding of the ordering of read threshold parameters that are valid for reading data from the NVM chip.
It can be seen that, for performing error correction by the 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 there is an uncorrectable error in the read data, and also occupies the transmission bandwidth between the storage command processing unit and the media interface controller, thereby limiting the processing capacities of the storage command processing unit and the media interface controller.
FIG. 10 illustrates a block diagram of a media interface controller according to still another embodiment of the present application.
In the example of fig. 10, each entry of 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 (the number of bits flipped) between the data read from the NVM chip provided by the media interface controller and the data obtained after the ECC decoding unit correctly decodes the data read from the NVM chip. In fig. 10, for example, "number of error bits 1" corresponds to "read threshold parameter 1", "number of error bits 2" corresponds to "read threshold parameter 2", and "number of error bits n" corresponds to "read threshold parameter n". Optionally, in the 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 that were successfully read out by the read redo command after an uncorrectable error occurred. Still alternatively, the read redo sequence table has only one instance, and thus the use of the read redo sequence table is independent of the physical address of the data to be read. Still alternatively, the storage command processing unit maintains multiple 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 one or more layers of pages located on the upper or lower surface of the 3D flash memory, pages 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 a media interface (read) command failure, the storage command processing unit sequentially obtains read threshold parameters according to the read redo sequence table, and generates one or more media interface commands indicating read redo to be provided to the media interface controller. In response to the media interface command indicating the read-redo being successfully processed, according to the embodiment of the present application, the media interface command processing result indicating the read-redo provided by the media interface controller further carries an error bit number, which represents the number of bits of the data read from the NVM chip by using the read-redo command, which is flipped before and after ECC decoding. And the storage command processing unit updates the number of error bits corresponding to the read threshold parameter in the read and reorder sequence table according to the obtained number of error bits and the read threshold parameter used for obtaining the number of error bits. For 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 that the read and redo is successful, the number of error bits in the read data is en, and the storage command processing unit records the number of error bits en in the read and redo sequence table in association with the read threshold parameter n. Further, the number of error bits en is also compared with the number of error bits of the entry in the head (position of the first entry) of the read-redo sequence table (denoted as e 1), and if en < e1, the entry in the read-redo sequence table in which the read threshold parameter n and the number of error bits en are recorded is moved to the head (position of the first entry) of the read-redo sequence table, so that the storage command processing unit will first acquire the entry in the head of the read-redo sequence table in which the read threshold parameter n and the number of error bits en are recorded the next time the storage command processing unit accesses the read-redo sequence table in response to the media interface controller indicating a media interface (read) command failure. After the entry recorded with the read 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 is sequentially moved to the position of the kth-1 entry by one entry, that is, the original kth-1 entry becomes the kth entry after the movement.
Alternatively, the entries are ordered with the number of erroneous bits of the entries without moving the position of the entries in the read redo sequence table. When the read-redo sequence table is accessed, the entry with the smallest error bit number is accessed first, and when the read-redo sequence table is accessed next time, the next entry is accessed in the order from small to large in the error bit number of the entry.
Thus, in the embodiment according to fig. 10, during operation of the storage device, the read redo sequence table is dynamically adjusted so that the entry corresponding to the read threshold parameter that is more appropriate for the current operating state of the NVM chip is set at the head of the read redo sequence table, so that the storage command processing unit can earliest acquire such read threshold parameter and generate the media interface command using the acquired read threshold parameter to shorten the process of traversing the read redo sequence table, and reduce the number of read redo commands generated in response to the media interface controller indicating a failure of the media interface (read) command, so as to more quickly acquire the data to be read.
Optionally, the plurality of entries in the read redo sequence table are ordered. For example, the location of an entry in the read redo sequence table determines the ordering order. The top-located entry in the read redo sequence table will be more preferentially accessed and used by the storage command processing unit to record read threshold parameters therein, and in response to the media interface controller indicating a media interface (read) command failure, the storage command processing unit first accesses the entry in the head of the read redo sequence table to obtain the read threshold parameters. As yet another example, the number of error bits recorded in an entry determines the ordering order, and entries with smaller numbers of error bits will be accessed more preferentially, thereby eliminating the need to move the position of the entry in the read-redo sequence table in response to a change in the number of error bits of the entry.
With continued reference to fig. 10, the media interface controller optionally further includes a read command adjustment unit. The read command adjustment unit is, for example, a read command adjustment unit according to the embodiment of fig. 4 or 5. Still alternatively, 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 new read threshold parameters (either 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 parameters obtained by the read command processing unit from the read redo sequence table. If the read threshold adjustment unit enables the flag and the read threshold prediction enable flag are not valid, the media interface controller uses the read threshold parameter indicated by the media interface command. In some cases, the read threshold adjustment unit enables the flag and/or the read threshold prediction enable flag to be active, and after evaluation by the media interface controller, the read threshold parameter indicated by the media interface command is still used. Thus, the storage command processing unit cooperates with the media interface controller to process transactions after uncorrectable errors occur in reading data from the NVM. Optionally, the media interface controller further includes a suggestion for a read threshold parameter to be used next in the processing result (indicating a processing failure) of the media interface command provided to the storage command processing unit, 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 chart for using a read redo sequence table in accordance with yet another embodiment of the present application. For example, the storage command processing unit implements the process flow illustrated in fig. 11.
In response to the media interface controller indicating that the data read from the NVM chip cannot be properly decoded, the storage command processing unit accesses a read reorder sequence table from which entries are accessed in a tandem order to obtain a fetch read threshold parameter (1110). The storage command processing unit generates a media interface command using the read threshold parameters obtained from the read redo sequence table and provides 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 again accesses the read reorder sequence table, accessing (next) entries in tandem from the read reorder sequence table to obtain the fetch read threshold parameter (1110). In response to the read data being free of Uncorrectable Errors (UECCs) (1130), the storage command processing unit also obtains error bit information for the read data, updates a corresponding entry of the read reorder sequence table with the error bit information for the read data (1140). For example, the error bit information of the read data includes the number of bits of the data obtained by performing error correction decoding (ECC) on the read data, which is inverted compared with the data read from the NVM chip. As an example, the storage command processing unit obtains the "read threshold parameter 2" from the read redo sequence table (see also fig. 10), and generates the media interface command RCMD2. The media interface controller indicates that the media interface command RCMD2 is successfully processed, and correctly reads 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 an entry associated with the "read threshold parameter 2" in the read redo sequence table.
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., "number of error bits 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 reorder sequence table (e.g., "number of error bits 1" of fig. 10), the storage command processing unit does not move the entry in the read reorder sequence table.
It will be appreciated that the number of erroneous bits of the read reorder sequence table is updated only after data read from the NVM chip according to some read threshold parameter has been 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 purposes) from a host command or an IO read command. In response to a failure of processing a normal media interface command (read data present UECC), the storage command processing unit generates one or more media interface commands indicating read redo (for clarity purposes, referred to as media interface commands indicating read redo), and updates the read redo sequence table based on only the read threshold parameter and error information used by the one or more media interface commands indicating read redo that were successfully processed (read data was correctly ECC decoded). If all the generated media interface commands indicating the read-redo are failed to be processed, the storage command processing unit does not update the read-redo sequence table.
The storage command processing unit provides concurrent multiple generic media interface commands to the media interface controller. For example, two common media interface commands are denoted CMD1 and CMD2, respectively. For example, when CMD1 processing fails, the storage command processing unit generates a media interface command indicating a read redo using the read threshold parameter (denoted as RP 1) of the first entry obtained from the read redo sequence table, that is, the processing is successful, and the storage command processing unit also updates the error bit number (denoted as E1) of the first entry. The CMD2 process fails and the storage command processing unit generates a media interface command (denoted as RCMD1 and RCMD2, respectively) indicating a read redo using the read threshold parameter (denoted as RP 1) of one entry and the read threshold parameter (denoted as RP 2) of the second entry, respectively, acquired from the read redo sequence table. Wherein the RCMD2 process is successful, the storage command processing unit also updates the number of error bits of the second entry (denoted as E2).
It will be appreciated that RCMD1 fails to process and the number of erroneous bits of the read data is significantly greater than E2, but the number of erroneous bits is not recorded in the read reorder sequence table. The number of erroneous bits of the first entry in the read redo sequence table is still E1. So that E2 may be greater than E1 or less than E1. According to an embodiment of the present application, only when E2 is less than E1, the entry in which E2 is recorded is moved to the head of the read-redo sequence table, while optionally the other entries of the read-redo sequence table are moved backwards in sequence. If E2 is not less than E1, then the entry in which E2 was recorded is not moved to the header of the read redo sequence table. E2 is less than E1, which represents that the read threshold parameter (RP 2) corresponding to E2 has a better effect than the read threshold parameter (RP 2) corresponding to E1 in reading data from the NVM chip. It is also noted that E2 and E1 each result from a different normal media interface command (CMD 1 and CMD 2), although the entry in which E2 is recorded obtains a good read result for CMD2, it does not necessarily obtain a good read result for CMD 1. Thus, according to embodiments of the present application, care is taken in moving the reading of the entries of the redo sequence table. Only if E2 is less than the number of erroneous bits (E1) of the current head entry of the read redo sequence table, the entry corresponding to E2 is moved to the head of the read redo sequence table. Optionally, if E2 is not less than the number of error bits (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 position of the entry corresponding to E2 in the read redo sequence table is moved forward, for example, one entry position is moved forward, so that the storage command processing unit can acquire the read threshold parameter corresponding to E2 earlier when the read threshold parameter is acquired later.
According to the embodiment of the application, along with the processing of a large number of medium interface commands, the sequence of the read threshold parameters in the read-redo sequence table is adjusted accordingly, and the read threshold of the current NVM chip (the probability that read data can be correctly error-corrected and decoded is high) is more suitable to be moved to the position in front of the read-redo sequence table, so that the storage command processing unit can acquire correct read data from the NVM chip through fewer times of medium interface commands for indicating read-redo, and the processing efficiency when uncorrectable errors occur is improved.
FIG. 12 illustrates a flow chart for processing a read command according to yet another embodiment of the 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 communicates a media interface command indicating a read command to the media interface controller for processing (1210), and identifies whether the processing of the read command was successful based on whether the read data from the NVM chip can be correctly error correction decoded (1220). If the read command is processed successfully (1220), the processing result of the read command is returned, and the processing flow of the read command is ended. If the processing of the read command fails (1220), the storage command processing unit accesses the read redo sequence table, acquires a read threshold parameter from the header of the read redo sequence table (1225), generates a media interface command indicating read redo using the acquired read threshold parameter, and transmits the media interface command to the media interface controller for processing. 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 is successful is identified based on whether the read data from the NVM chip with the read redo command can be correctly error correction decoded (1235). If the read redo command is processed successfully (1235), the processing result of the read redo command is returned, and the processing flow of the previous read command is ended. If the processing of the read redo command fails (1235), the store command processing unit again accesses the read redo sequence table, from which the next read threshold parameter is obtained (1240). If there is no such next read threshold parameter available for retrieval in the read redo sequence table (1245), meaning that all possibilities for the read threshold parameter have been tried but still the correct data has not been read out of the NVM chip, then the 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 table (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 is successful is identified based on whether the read data from the NVM chip with the read redo command can be correctly error correction decoded (1255).
If the read redo command is processed successfully (1255), the result of the processing of the read redo command is taken as the result of the processing of the previous read command. And also comparing the number of bits that are flipped between the data read from the NVM chip according to the read redo command and the data obtained by error correction decoding of the read data, as a number of error bits corresponding to a read threshold parameter used by the read redo command, updating a read redo sequence table with the number of error bits, recording the number of error bits in association with an entry of the read redo sequence table that records the read threshold parameter used by the read redo command, and comparing the number of error bits with a number of error bits recorded by a header 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 with the header entry of the read redo sequence table (1265), the process flow for the previous read command ends. 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 with the head entry of the read redo sequence table (1265), then 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 head of the read redo sequence table (1270), and optionally other entries of the read redo sequence table are moved backward in sequence.
Optionally, the read-redo sequence table is stored with a linked list, such that after an entry is moved to the head of the read-redo sequence table, no further entries of the read-redo sequence table need to be moved.
While 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. It is therefore intended that the following claims be interpreted as including the preferred embodiments and all such alterations and modifications as fall within the scope of the application. It will be apparent to those skilled in the art that various modifications and variations can be made to the present application without departing from the spirit or scope of the application. Thus, it is intended that the present application also include such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.

Claims (8)

1.一种读命令处理方法,其特征在于,包括:1. A read command processing method, characterized in that it includes: 获取主机提供的IO命令,生成存储命令提供给存储命令处理单元;Obtaining the IO command provided by the host, generating a storage command and providing it to the storage command processing unit; 存储命令处理单元操作介质接口控制器向NVM芯片发出读命令,所述读命令是存储介质访问读命令;The storage command processing unit operates the medium interface controller to issue a read command to the NVM chip, wherein the read command is a storage medium access read command; 响应于所述读命令处理失败,存储命令处理单元从读重做序列表中按条目顺序获取一个或多个读阈值参数,生成一个或多个分别指示了所获取的一个或多个读阈值参数的介质接口命令,并将所生成的一个或多个介质接口命令提供给介质接口控制器;In response to the read command processing failure, the storage command processing unit obtains one or more read threshold parameters from the read redo sequence table in order of entries, generates one or more media interface commands respectively indicating the obtained one or more read threshold parameters, and provides the generated one or more media interface commands to the media interface controller; 介质接口控制器根据接收的一个或多个介质接口命令,生成一个或多个读重做命令,所述一个或多个读重做命令访问同所述读命令相同的地址;其中,所述读重做序列表包括多个条目,所述读重做序列表的各条目按顺序记录了可用于NVM芯片的读阈值参数以及同读阈值参数对应的错误比特数,所述读重做序列表中的多个条目是排序的,读重做序列表中位置靠前的条目将被存储命令处理单元更优先的访问并使用其中记录的读阈值参数;The media interface controller generates one or more read redo commands according to the received one or more media interface commands, wherein the one or more read redo commands access the same address as the read command; wherein the read redo sequence table includes a plurality of entries, each entry of the read redo sequence table records in order a read threshold parameter applicable to the NVM chip and a number of error bits corresponding to the read threshold parameter, and the plurality of entries in the read redo sequence table are sorted, and the entries at the front positions in the read redo sequence table will be accessed with higher priority by the storage command processing unit and use the read threshold parameter recorded therein; 响应于所述一个或多个读重做命令中的第一读重做命令处理成功,在记录所述第一读重做命令所使用的读阈值参数的读重做序列表的第一条目中记录所述第一读重做命令读出数据的错误比特数;In response to a first read redo command of the one or more read redo commands being successfully processed, recording a number of error bits of data read by the first read redo command in a first entry of a read redo sequence table that records a read threshold parameter used by the first read redo command; 若所述第一读重做命令读出数据的错误比特数小于所述读重做序列表的排序最前的条目的错误比特数,则调整所述读重做序列表中的条目的顺序,将所述第一条目作为读重做序列表中排序最前的条目,从而在存储设备工作期间,动态地调整所述读重做序列表,以使更适合当前NVM芯片的工作状态的读阈值参数所对应的条目被设置在读重做序列表的头部。If the number of error bits of the data read out by the first read-redo command is less than the number of error bits of the front-ordered entry in 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 front-ordered entry in the read-redo sequence table, thereby dynamically adjusting the read-redo sequence table during the operation of the storage device so that the entry corresponding to the read threshold parameter that is more suitable for the current working state of the NVM chip is set at the head of the read-redo sequence table. 2.如权利要求1所述的读命令处理方法,其特征在于,响应于所述第一读重做命令处理成功,用所述第一读命令读出的数据作为根据所述读命令读出的数据。2. The read command processing method according to claim 1, characterized in that, in response to the first read redo command being successfully processed, the data read out by the first read command is used as the data read out according to the read command. 3.根据权利要求1或2所述的读命令处理方法,其特征在于,所述从读重做序列表中按读重做序列表的条目顺序获取一个或多个读阈值参数,并根据所获取的一个或多个读阈值参数生成一个或多个读重做命令,包括:3. The read command processing method according to claim 1 or 2, characterized in that the step of acquiring one or more read threshold parameters from the read redo sequence table according to the order of entries in the read redo sequence table, and generating one or more read redo commands according to the acquired one or more read threshold parameters comprises: 按读重做序列表的条目顺序获取一个读阈值参数,并根据所获取的读阈值参数生成一个读重做命令;Obtaining a read threshold parameter according to the order of entries in the read redo sequence table, and generating a read redo command according to the obtained read threshold parameter; 响应于所获取的一个读重做命令的处理失败,再按读重做序列表的条目顺序获取下一个读阈值参数,并根据所获取的该下一个读阈值参数生成下一个读重做命令,直到所获取的下一个读重做命令的处理成功。In response to a failure in processing a read redo command obtained, the next read threshold parameter is obtained in the order of entries in the read redo sequence table, and the next read redo command is generated according to the obtained next read threshold parameter until the processing of the next read redo command obtained is successful. 4.根据权利要求1或2所述的读命令处理方法,其特征在于,4. The read command processing method according to claim 1 or 2, characterized in that: 若所述第一读重做命令读出数据的错误比特数大于所述读重做序列表的排序最前的条目的错误比特数,则不改变所述读重做序列表中的条目的顺序。If the number of error bits of the data read out by the first read-redo command is greater than the number of error bits of the first entry in the read-redo sequence table, the order of the entries in the read-redo sequence table is not changed. 5.根据权利要求1或2所述的读命令处理方法,其特征在于,5. The read command processing method according to claim 1 or 2, characterized in that: 若所述第一读重做命令读出数据的错误比特数大于所述读重做序列表的排序最前的条目的错误比特数,则将所述第一条目在所述读重做序列表中的排序前移。If the number of error bits of the data read out by the first read-redo command is greater than the number of error bits of the first entry in the read-redo sequence table, the first entry is moved forward in the read-redo sequence table. 6.根据权利要求1或2所述的读命令处理方法,其特征在于,6. The read command processing method according to claim 1 or 2, characterized in that: 响应于所述一个或多个读重做命令中的第一读重做命令处理成功,所述介质接口控制器生成第一消息,所述第一消息第一介质接口命令处理完成,所述第一介质接口命令与所述第一读重做命令对应,所述第一消息包括所述第一读重做命令读出数据的错误比特数;In response to a first read redo command of the one or more read redo commands being processed successfully, the media interface controller generates a first message, wherein the first message includes a first media interface command that has been processed successfully, the first media interface command corresponding to the first read redo command, and the first message includes a number of error bits of data read out by the first read redo command; 存储命令处理单元响应于所述第一消息,在读重做序列表的所述第一条目中记录所述第一读重做命令读出数据的错误比特数。The storage command processing unit records the number of error bits of data read out by the first read redo command in the first entry of the read redo sequence table in response to the first message. 7.根据权利要求6所述的读命令处理方法,其特征在于,7. The read command processing method according to claim 6, characterized in that: 介质接口控制器响应于接收了介质接口命令,根据接收的介质接口命令的访问的地址的全部或部分生成或预测读阈值参数,并在生成的读重做命令中指示所生成或预测的读阈值参数。In response to receiving a media interface command, the media interface controller generates or predicts a read threshold parameter according to all or part of an address accessed by the received media interface command, and indicates the generated or predicted read threshold parameter in a generated read redo command. 8.一种信息处理设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现根据权利要求1-7之一所述的方法。8. An information processing device, comprising a memory, a processor, and a program stored in the memory and executable on the processor, wherein the processor implements the method according to any one of claims 1 to 7 when executing the program.
CN202010877753.6A 2020-08-27 2020-08-27 Dynamically adjust the read redo sequence to optimize read command processing Active CN114121127B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010877753.6A CN114121127B (en) 2020-08-27 2020-08-27 Dynamically adjust the read redo sequence to optimize read command processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010877753.6A CN114121127B (en) 2020-08-27 2020-08-27 Dynamically adjust the read redo sequence to optimize read command processing

Publications (2)

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

Family

ID=80374595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010877753.6A Active CN114121127B (en) 2020-08-27 2020-08-27 Dynamically adjust the read redo sequence to optimize read command processing

Country Status (1)

Country Link
CN (1) CN114121127B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104282339A (en) * 2013-07-08 2015-01-14 群联电子股份有限公司 Read voltage setting method, control circuit and memory storage device
CN106169308A (en) * 2015-03-16 2016-11-30 爱思开海力士有限公司 Memory Controller and operational approach thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333364B2 (en) * 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
TWI541819B (en) * 2013-12-30 2016-07-11 慧榮科技股份有限公司 Method for performing error correction, and associated memory apparatus thereof and associated controller thereof
TWI537966B (en) * 2014-10-03 2016-06-11 群聯電子股份有限公司 Error processing method, memory storage device and memory controlling circuit unit
KR20160143371A (en) * 2015-06-05 2016-12-14 에스케이하이닉스 주식회사 Memory system and operating method thereof
CN106448737B (en) * 2016-09-30 2020-12-01 厦门旌存半导体技术有限公司 Method and device for reading flash memory data and solid state drive
CN107423160B (en) * 2017-07-24 2020-04-17 山东华芯半导体有限公司 Method and device for improving NAND flash reading speed
CN109901944B (en) * 2017-12-07 2024-04-12 北京忆恒创源科技股份有限公司 Read data error processing method and system based on machine learning
CN110120234B (en) * 2018-02-07 2022-04-15 北京忆芯科技有限公司 Solid-state memory device and method for searching for optimum read threshold voltage thereof
KR20200076519A (en) * 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 Controller, memory system including the controller and operating method of the memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104282339A (en) * 2013-07-08 2015-01-14 群联电子股份有限公司 Read voltage setting method, control circuit and memory storage device
CN106169308A (en) * 2015-03-16 2016-11-30 爱思开海力士有限公司 Memory Controller and operational approach thereof

Also Published As

Publication number Publication date
CN114121127A (en) 2022-03-01

Similar Documents

Publication Publication Date Title
US9552290B2 (en) Partial R-block recycling
US9135112B2 (en) Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US10175892B1 (en) Adaptive read algorithm for a nonvolatile medium
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US9753653B2 (en) High-priority NAND operations management
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US8898370B2 (en) Data storage method for flash memory, and flash memory controller and flash memory storage system using the same
TWI601060B (en) Data transmitting method, memory storage device and memory control circuit unit
TWI595412B (en) Data transmitting method, memory storage device and memory control circuit unit
US20200409860A1 (en) Enabling faster and regulated device initialization times
US20150012687A1 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
WO2020248798A1 (en) Method and device for intelligently identifying unreliable block in non-volatile storage medium
US12079123B2 (en) Adjustable garbage collection suspension interval
TWI766764B (en) Method for managing memory buffer, memory control circuit unit and memory storage apparatus
CN113076218B (en) Method for rapidly processing data reading errors of NVM (non-volatile memory) chip and controller thereof
US9372741B2 (en) Data storage device and operating method thereof
CN106775436B (en) Data access method, memory control circuit unit and memory
TWI656531B (en) Average wear method, memory control circuit unit and memory storage device
US20100232048A1 (en) Disk storage device
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
CN114121127B (en) Dynamically adjust the read redo sequence to optimize read command processing
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
CN113867616A (en) Intelligent reading and redoing method and medium interface controller thereof

Legal Events

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