CN113227959A - 具有读取错误处理的存储器控制器 - Google Patents
具有读取错误处理的存储器控制器 Download PDFInfo
- Publication number
- CN113227959A CN113227959A CN202180001161.0A CN202180001161A CN113227959A CN 113227959 A CN113227959 A CN 113227959A CN 202180001161 A CN202180001161 A CN 202180001161A CN 113227959 A CN113227959 A CN 113227959A
- Authority
- CN
- China
- Prior art keywords
- block
- read
- data stored
- data
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在某些方面,一种用于控制存储设备的控制器包括存储器和处理器。存储器被配置为存储指令。处理器耦合到存储器并且被配置为执行指令以执行处理,该处理包括:接收描述一组错误处理机制的读取失败的数据,其中,所述读取失败指示所述一组错误处理机制处理所述存储设备的块上的读取错误并且无法读取存储在所述块中的数据;以及响应于所述一组错误处理机制的读取失败,对所述块执行存储器测试以确定所述块是否发生故障。
Description
背景技术
本公开涉及存储器控制器及其方法。
闪存存储器是可以被电擦除并重新编程的低成本、高密度、非易失性固态存储介质。闪存存储器包括存储单元阵列,其可以被组织成块,并且可以按块进行擦除、写入和读取。在闪存存储器的寿命期间,块中的存储单元的阈值电压可能由于各种因素而偏移。例如,阈值电压可能由于增加的使用时间、外部环境的改变(例如,温度改变)以及制造缺陷的存在等而改变。存储单元的阈值电压的偏移可能导致在块上发生读取错误,并且如果不能解决读取错误,则存储在块中的数据可能丢失。
发明内容
在一方面,一种用于控制存储设备的控制器包括存储器和处理器。存储器被配置为存储指令。处理器耦合到存储器并且被配置为执行指令以执行处理,该处理包括:接收描述一组错误处理机制的读取失败的数据,其中该读取失败指示该组错误处理机制处理存储设备的块上的读取错误并且无法读取存储在该块中的数据;以及响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
在另一方面,一种***包括存储设备和控制器。存储设备被配置为存储数据并且包括存储单元阵列。存储单元阵列被组织成多个块。控制器耦合到存储设备并且被配置为控制存储设备。控制器包括存储器和处理器。存储器被配置为存储指令。处理器耦合到存储器并且被配置为执行指令以执行处理,该处理包括:接收描述一组错误处理机制的读取失败的数据,其中该读取失败指示该组错误处理机制处理存储设备的块上的读取错误并且无法读取存储在该块中的数据;以及响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
在另一方面,包括一种用于处理存储设备的块上的读取错误的方法。
接收描述一组错误处理机制的读取失败的数据。该读取失败指示该组错误处理机制处理块上的读取错误并且无法读取存储在该块中的数据。响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
根据另一方面,包括一种用于处理存储设备的块上的读取错误的方法。接收描述一组错误处理机制的读取失败的数据。该读取失败指示该组错误处理机制处理块上的读取错误并且无法读取存储在该块中的数据。响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否未通过存储器测试。响应于该块未通过存储器测试,将该块标识为坏块。
附图说明
并入本文中并构成说明书的一部分的附图示出了本公开的各方面,并且与说明书一起进一步用于解释本公开的原理,并使相关领域的技术人员能够做出和使用本公开。
图1示出了根据本公开的一些方面的具有存储器控制器和存储设备的示例性***的框图。
图2A示出了根据本公开的一些方面的具有存储器控制器和存储设备的示例性存储卡的示图。
图2B示出了根据本公开的一些方面的具有存储器控制器和存储设备的示例性固态驱动器(SSD)的示图。
图3示出了根据本公开的一些方面的与主机和存储设备交互的示例性存储器控制器的框图。
图4示出了根据本公开的一些方面的用于处理存储设备的块上的读取错误的方法的流程图。
图5A-5B示出了根据本公开的一些方面的用于处理存储设备的块上的读取错误的另一种方法的流程图。
将参考附图描述本公开。
具体实施方式
尽管讨论了具体的构造和布置,但是应当理解,这样做仅是出于说明的目的。这样,在不脱离本公开的范围的情况下,可以使用其他构造和布置。而且,本公开还可以用于多种其他应用中。如在本公开中描述的功能和结构特征可以以未在附图中具体描绘的方式彼此组合、调整和修改,使得这些组合、调整和修改在本公开的范围内。
通常,可以至少部分地根据上下文中的使用来理解术语。例如,至少部分地取决于上下文,本文所使用的术语“一个或多个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,至少部分地取决于上下文,诸如“一”或“所述”的术语可以同样被理解为传达单数用法或传达复数用法。另外,同样至少部分地取决于上下文,术语“基于”可以被理解为不一定旨在传达一组排他的因素,并且可以代替地允许存在不一定明确描述的附加因素。
由于存储设备(例如闪存存储器)的块内的存储单元中的电流泄漏问题(或电荷泄漏问题),块可能发生读取错误。电流泄漏问题可能是由存储单元中的缺陷引起的。例如,缺陷可能引起从第一字线到第二字线的电流泄漏,或者从字线到沟道孔的电流泄漏。通过在块上重复擦除和写入,可能在有缺陷的存储单元上产生应力,这可能导致电流泄漏问题变得越来越严重。在某些情况下,电流泄漏问题可能在耦合到有缺陷的存储单元的字线中引起不可纠正的读取错误,使得存储在耦合到该字线的存储单元中的数据不能被恢复。而且,由于电流泄漏问题,可能增加在相同的独立磁盘冗余阵列(RAID)条带的其他字线上的数据丢失的可能性。结果,存储设备中的数据存储的完整性和可靠性受到影响。
此外,电流泄漏问题可能在存储设备上引起大量的读取错误,从而导致生成大量的错误代码。每个错误代码可能触发一系列要执行的错误处理机制。例如,出于纠错目的,使用低密度奇偶校验(LDPC)码来处理存储在存储设备中的数据。当生成错误代码以指示块上的读取错误时,可以实施第一机制来处理读取错误。第一机制可以使用默认的读取电压来读取存储在块中的数据,并将LDPC硬解码策略应用于数据解码。如果第一机制无法读取存储在块中的数据,则可以实施第二机制来处理块上的读取错误。第二机制可以使用读取重试表中的一组读取电压来读取存储在块中的数据,并将LDPC硬解码策略应用于数据解码。如果第二机制也无法读取存储在块中的数据,则可以实施第三机制来处理读取错误。第三机制可以使用一组偏移的读取电压来读取存储在块中的数据,并将LDPC软解码策略应用于数据解码。如果第三机制也无法读取存储在块中的数据,则可以实施第四机制以使用RAID数据恢复策略来处理读取错误。如果第四机制也无法读取存储在块中的数据,则将块上的数据丢失报告给主机。
在错误处理机制的实施期间,第二机制的读取延迟高于页面读取延迟,其中页面读取延迟表示通过仅读取存储在块所位于的页面中的数据所带来的延迟。这是因为第二机制必须在读取重试表中的所有读取电压组合(例如23个读取电压组合)上迭代读取操作,然后相应地应用LDPC硬解码策略。由于实施了LDPC软解码策略,第三机制的读取延迟也高于页面读取延迟。特别地,由于需要读取同一RAID条带内的所有字线(例如,需要读取同一RAID条带内的整个存储单元阵列),因此第四机制的读取延迟比页面读取延迟高得多。结果,错误处理机制的频繁触发可能增加存储设备的总读取延迟。
此外,即使不能成功读取存储在块中的数据,上述错误处理机制也无法将该块标识为坏块,无论块上的失败是暂时的(例如,由写入时间和读取时间之间发生的剧烈温度改变引起)还是不可恢复的(例如,由于物理缺陷导致的越来越严重的电流泄漏)。如果该块上的失败是不可恢复的,则在该块上重复擦除和写入可能不仅重复地导致该块上的数据丢失,还会导致存储设备的读取速度明显下降。
为了解决上述问题,本公开引入了一种解决方案,其中可以对具有读取错误的块执行存储器测试,以确定该块是否发生故障。例如,当一种或多种错误处理机制无法处理该块上的读取错误(例如,无法读取该块中存储的数据)时,可以对该块执行存储器测试以确定该块是否为坏块。如果该块具有无法克服的缺陷,则该块上的失败可能是永久性的或不可恢复的,并且该块可以标记为坏块。通过将具有无法克服的缺陷的块标识为坏块,可以不再将该块用于任何未来的数据存储,从而可以避免块上潜在的数据丢失。而且,可以防止由于该块上的读取错误而引起的错误处理机制的潜在触发。可以避免由于在块上重复进行擦除和写入而导致的存储设备的读取延迟和存储设备的读取速度的潜在下降。结果,可以增大存储设备的读取速度,并且可以提高存储设备中的数据存储的完整性和可靠性。
图1示出了根据本公开的一些方面的具有存储设备和存储器控制器的示例性***100的框图。***100可以是移动电话、台式计算机、膝上型计算机、平板电脑、车辆计算机、游戏机、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(VR)设备、增强现实(AR)设备、或其中具有存储装置的任何其他合适的电子设备。如图1所示,***100可以包括主机108和具有一个或多个存储设备104和存储器控制器106的存储器***102。主机108可以是电子设备的处理器(例如中央处理单元(CPU))或片上***(SoC)(例如应用处理器(AP))。主机108可以被配置为向存储设备104发送数据或从存储设备104接收数据。
存储设备104可以是本公开中公开的任何存储设备。例如,存储设备104可以是NAND闪存设备或NOR闪存设备。在一些实施方式中,可以在存储设备104中实施RAID结构。例如,在存储设备104中使用RAID 5。RAID 5在块中采用条带化以将块中的数据划分成多个数据部分,从而在条带中的数据部分之间执行异或(XOR)运算以生成相应的奇偶校验数据,并且RAID 5将奇偶校验数据存储在存储单元中。一个数据部分可以表示一页中的数据。一个条带通常包括二维分布的数据部分,例如,横向上位于跨不同管芯和不同平面的不同块中,并且垂直上位于同一块中的不同层级中。例如,对于在4个平面和4个管芯中的块,条带可以包括128个数据部分,这些数据部分横向地(例如,在所有平面和管芯中)和垂直地(例如,在一个以上的层级中)分布。横向地,条带可以在不同平面中的相同位置处包括数据部分。垂直地,条带可以在不同层级的相同位置处包括数据部分。最后的数据部分通常包括条带的奇偶校验数据。在条带的一个数据部分中编程失败的情况下,可以例如通过使用条带的奇偶校验数据和条带中的其余数据部分执行XOR运算来恢复受损的数据部分。例如,对于具有128个数据部分的条带,使用127个数据部分存储存储器数据,并使用一个数据部分存储条带的奇偶校验数据。因此,可以将使用这种条带化配置的RAID 5的纠错能力描述为(127+1)。
根据一些实施方式,存储器控制器106耦合到存储设备104和主机108,并且被配置为控制存储设备104。存储器控制器106可以管理存储在存储设备104中的数据并与主机108通信。在一些实施方式中,存储器控制器106被设计用于在低占空比环境中操作,所述低占空比环境例如是安全数字(SD)卡、紧凑型闪存(CF)卡、通用串行总线(USB)闪存驱动器、或用于电子设备(例如个人计算机、数码相机、移动电话等)中的其他介质。在一些实施方式中,存储器控制器106被设计用于在高占空比环境中操作,所述高占空比环境例如是用作诸如智能手机、平板电脑、膝上型计算机等的移动设备的数据存储装置的SSD或嵌入式多媒体卡(eMMC)、以及企业存储阵列。存储器控制器106可以被配置为控制存储器件104的操作,例如读取、擦除和编程操作。存储器控制器106还可以被配置为管理与存储或将要存储在存储器件104中的数据有关的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、损耗均衡,在一些实施方式中,存储器控制器106还被配置为处理关于从存储器件104读取或写入到存储器件104的数据的纠错码(ECC)。存储器控制器106也可以执行任何其他合适的功能,例如,对存储器件104进行格式化。存储器控制器106可以根据特定的通信协议与外部设备(例如,主机108)通信。例如,存储器控制器106可以通过各种接口协议中的至少一种与外部设备通信,所述接口协议例如USB协议、MMC协议、***部件互连(PCI)协议、PCI快速(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、集成驱动电子(IDE)协议、Firewire协议等。
在一些实施方式中,存储器控制器106可以包括处理器109和存储器110。处理器109可以是任何合适类型的处理器,例如,CPU、微处理器、微控制器单元(MCU)、SoC或AP等。处理器109可以包括各种计算架构,包括复杂指令集计算机(CISC)架构、精简指令集计算机(RISC)架构或实施指令集组合的架构。尽管在图1中仅示出了单个处理器,但是可以包括多个处理器。处理器109可以被配置为向存储器110发送数据或从存储器110接收数据。例如,处理器109可以被配置为从存储器110接收指令并执行该指令以提供本文所述的功能。
存储器110存储数据(例如,指令或任何其他合适的数据),该数据可以包括用于执行本文所描述的技术的一部分或全部的代码或例程。存储器110可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、硬盘驱动器、闪存设备(例如,NAND闪存设备或NOR闪存设备)、或其他一些合适的存储设备。
存储器控制器106和一个或多个存储设备104可以集成到各种类型的存储设备中,例如,包括在同一封装中,例如包括在通用闪存存储(UFS)封装或eMMC封装中。即,可以实施存储器***102并将其封装到不同类型的最终电子产品中。在如图2A所示的一个示例中,存储器控制器106和单个存储设备104可以集成到存储卡202中。存储卡202可以包括PC卡(PCMCIA,个人计算机存储卡国际协会)、CF卡、智能媒体(SM)卡、存储棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、UFS等。存储卡202还可以包括将存储卡202与主机(例如,图1中的主机108)耦合的存储卡连接器204。在如图2B所示的另一示例中,存储器控制器106和多个存储设备104可以集成到SSD 206中。SSD 206可以还包括将SSD206与主机(例如,图1中的主机108)耦合的SSD连接器208。在一些实施方式中,SSD 206的存储容量和/或操作速度大于存储卡202的存储容量和/或操作速度。
图3示出了根据本公开的一些方面的与主机108和存储设备104交互的示例性存储器控制器(例如,存储器控制器106)的框图300。存储设备104可以包括用于存储从主机108或任何其他外部设备接收的数据的多个块。存储器控制器106可以耦合到主机108和存储设备104。存储器控制器106可以包括后端307、过渡层308和前端310。
前端310可以被配置为处理主机108和存储器控制器106之间的通信。前端310可以包括存储在存储器110中的代码或例程,该代码或例程在由处理器109执行时,使处理器109提供本文所述的功能。在一些实施方式中,前端310可以根据特定的通信协议与主机108通信。例如,前端310可以通过各种接口协议中的至少一种与主机108通信,所述各种接口协议例如USB协议、MMC协议、PCI协议、PCI-E协议、ATA协议、串行ATA协议、并行ATA协议、SCSI协议、ESDI协议、IDE协议、Firewire协议等。
在一些实施方式中,前端310可以从主机108接收请求,并且经由过渡层308将请求转发到后端307,使得后端307可以满足该请求。请求的示例可以包括但不限于:读取请求,其用于读取存储在存储设备104的块中的数据;写入请求,其用于擦除存储在存储设备104的块中的数据并将新数据写入该块中;重新格式化请求,其用于重新格式化存储设备104;或任何其他合适的请求。在一些实施方式中,前端310可以经由过渡层308从后端307接收数据,并且将数据发送到主机108。
过渡层308可以被配置为处理前端310和后端307之间的通信。过渡层308可以充当前端310和后端307之间的中间层。过渡层308可以包括存储在存储器110中的代码或例程,该代码或例程在由处理器109执行时,使处理器109提供本文所述的功能。
后端307可以包括存储在存储器110中的代码或例程,该代码或例程在由处理器109执行时,使处理器109提供本文所述的功能。后端307可以被配置为满足来自主机108的请求。在一些实施方式中,后端307可以经由前端310和过渡层308从主机108接收请求,并且执行一个或多个操作来实现该请求。例如,后端307可以被配置为响应于从主机108接收到请求(例如,读取请求、擦除请求或编程请求)而控制存储设备104的操作(例如,读取、擦除或编程操作)。后端307还可以被配置为管理关于存储或将要存储在存储设备104中的数据的各种功能,包括但不限于坏块管理或垃圾收集等。
在一些实施方式中,后端307还被配置为关于从存储设备104读取或写入到存储设备104的数据来处理纠错码。示例性纠错码可以包括但不限于汉明码、里德-所罗门码、LDPC码等。例如,后端307可以响应于读取请求从存储设备104的块中读取数据,并且处理纠错码以确定是否成功读取了存储在该块中的数据(例如,没有错误)。如果成功读取了存储在该块中的数据,则后端307可以经由过渡层308将该数据转发到前端310,使得前端310可以将该数据返回给主机108。然而,如果没有成功读取存储在该块中的数据,则后端307可以生成描述块上的读取错误的数据。
在一些实施方式中,后端307可以进一步被配置为处理块上的读取错误。例如,后端307可以包括被配置为处理块上的读取错误的错误处理模块306。错误处理模块306可以包括存储在存储器110中的代码或例程,该代码或例程在由处理器109执行时,使处理器109提供本文所述的功能。如下面更详细地描述的,错误处理模块306可以被配置为实施一组错误处理机制以处理块上的读取错误。响应于该组错误处理机制能够成功读取存储在该块中的数据,错误处理模块306可以将数据返回给主机108。但是,响应于该组错误处理机制也无法读取存储在该块中的数据,错误处理模块306可以对该块执行存储器测试以确定该块是否发生故障(例如,该块是否是坏块)。错误处理模块306可以通过向映射表添加新发现的坏块来更新存储设备104的映射表。映射表可以用于记录存储设备104的任何坏块,并且可以存储在存储设备104或存储器控制器106的存储器110中。
例如,关于从存储设备104读取或写入到存储设备104的数据,可以将LDPC码用于纠错目的。结果,可以在解码过程期间将LDPC硬解码策略或LDPC软解码策略用于从存储设备104读取的数据。该组错误处理机制可以包括但不限于以下一个或多个:(1)第一机制,其使用默认读取电压来读取存储在块中的数据并将LDPC硬解码策略应用于数据解码;(2)
第二机制,其使用读取重试表中的一组读取电压来读取存储在块中的数据,并将LDPC硬解码策略应用于数据解码;(3)第三机制,其使用一个或多个偏移的读取电压来读取存储在块中的数据,并将LDPC软解码策略应用于数据解码;以及(4)第四机制,其使用RAID数据恢复策略来处理块上的读取错误。
在第二机制中,读取重试表可以包括可以应用于读取数据的各种读取电压组合。例如,读取重试表可以包括23种读取电压组合。可以在存储器控制器106的制造期间配置读取重试表。第二机制可以使用读取重试表中的所有读取电压组合在块上迭代进行读取操作,并在解码过程期间将LDPC硬解码策略应用于从块中检索的数据。
第三机制可以使用一组偏移的读取电压来读取存储在块中的数据。可以确定每个数据位的错误概率。第三机制可以在解码过程期间将LDPC软解码策略应用于从块中检索的数据。
在第四机制中,RAID数据恢复策略可以在该块所位于的同一RAID条带内的所有字线上进行读取。例如,RAID数据恢复策略从存储设备104的同一RAID条带内的整个存储单元阵列中读取数据。在RAID结构的纠错能力内,第四机制可以基于RAID条带的奇偶校验数据来纠正数据中的读取错误(如果有的话)。例如,对于RAID 5中的具有128个数据部分的条带,使用127个数据部分存储数据,并使用1个数据部分存储条带的奇偶校验数据。在条带的一个数据部分受损的情况下,可以例如通过使用该条带的奇偶校验数据和该条带中的其余数据部分执行XOR运算来恢复受损的数据部分。但是,如果RAID 5的条带中有两个或更多个数据部分受损,则可能无法使用该条带的奇偶校验数据来恢复这两个或更多个受损的数据部分,因为这超出了RAID 5结构的纠错能力。
在一些实施方式中,当接收到存储设备104的块上的读取错误时,错误处理模块306可以应用第一机制来处理该块上的读取错误,并确定第一机制是否成功读取了存储在块中的数据。响应于第一机制成功读取了存储在块中的数据,错误处理模块306可以将数据经由过渡层308和前端310返回给主机108。或者,响应于第一机制无法读取存储在块中的数据,错误处理模块306可以生成描述第一机制的读取失败的数据,然后应用第二机制来处理块上的读取错误,以确定第二机制是否可以成功读取存储在块中的数据。
响应于第二机制成功读取了存储在块中的数据,错误处理模块306可以经由过渡层308和前端310将数据返回给主机108。或者,响应于第二机制也无法读取存储在块中的数据,错误处理模块306可以生成描述第二机制的读取失败的数据,然后应用第三机制来处理块上的读取错误,以确定第三机制是否可以成功读取存储在块中的数据。
响应于第三机制成功读取了存储在块中的数据,错误处理模块306可以经由过渡层308和前端310将数据返回给主机108。或者,响应于第三机制也无法读取存储在块中的数据,错误处理模块306可以生成描述第三机制的读取失败的数据,然后应用第四机制来处理块上的读取错误,以确定第四机制是否可以成功读取存储在块中的数据。
响应于第四机制成功读取了存储在块中的数据,错误处理模块306可以经由过渡层308和前端310将数据返回给主机108。或者,响应于第四机制也无法读取存储在块中的数据,错误处理模块306可以生成描述第四机制的读取失败的数据,然后将该块上的数据丢失报告给主机108。
在一些实施方式中,如果一个或多个错误处理机制无法读取存储在块中的数据,则错误处理模块306可以被配置为对块执行存储器测试以确定该块是否发生故障。例如,如果第一、第二、第三和第四机制中的一个或多个无法成功读取存储在块中的数据,则错误处理模块306可以对该块执行存储器测试。可以在后台执行存储器测试以最小化对***102的性能的任何影响。
在一些实施方式中,在对块执行存储器测试之前,错误处理模块306可以将该块包括在测试队列304中。例如,错误处理模块306可以将该块推入测试队列304(例如,包括测试队列304中的块的标识符)。错误处理模块306还可以将该块标记为临时坏块,使得在对该块执行存储器测试之前不可以访问该块。测试队列304可以被配置为包括等待由存储器测试进行测试的一组块。例如,测试队列304可以包括等待由存储器测试进行测试的块的标识符的列表。
在一些实施方式中,错误处理模块306可以确定是否存在比存储器测试具有更高优先级的任何要完成的任务。如果存在比存储器测试具有更高优先级的要完成的任务,则错误处理模块306可以等待直到后端307完成了具有更高优先级的任务,然后执行存储器测试。例如,比存储器测试具有更高优先级的要完成的任务可以是比存储器测试具有更高优先级的要完成的请求。如果没有比存储器测试具有更高优先级的要完成的任务,则错误处理模块306可以基于测试队列304执行存储器测试。
替代地或另外,错误处理模块306可以确定是否有足够的资源可用于执行存储器测试(例如,用于执行存储器测试的足够的计算能力、存储器空间、带宽等)。如果有足够的资源可用于执行存储器测试,则错误处理模块306可以对测试队列304中的一个或多个块执行存储器测试。否则,错误处理模块306可以等待直到足够的资源可用于存储器测试。
在一些实施方式中,错误处理模块306可以按顺序对测试队列304中的每个块执行存储器测试。例如,首先处理测试队列304中的第一块,最后处理测试队列304中的最后块(例如,先进先出)。或者,最后处理测试队列304中的第一块,并且首先处理测试队列304中的最后块(例如,后进先出)。在一些其他实施方式中,错误处理模块306可以基于对每个块的访问的总数来对测试队列304中的块执行存储器测试。例如,可以在主机108不频繁地访问的块之前处理主机108频繁访问的块。
这里,如果不引起歧义,则可以将要由存储器测试进行测试的块称为被测块。存储器测试可以包括一组测试例程或测试程序,其被配置为确定被测块是否发生故障。例如,存储器测试可以用于确定被测块是否是坏块(例如,具有物理缺陷并且不再能用于存储数据的块)。在一些实施方式中,可以在存储器控制器106的制造期间配置存储器测试中包括的测试例程或测试程序。
错误处理模块306可以确定被测块是否通过了存储器测试。如果该块未通过存储器测试,则错误处理模块306可以将该块标记为坏块。可以将块添加到存储设备104的映射表中。在这种情况下,块上的读取错误可能是由物理缺陷引起的,并且块上的读取失败是不可恢复的或永久的。例如,在存储器测试期间,错误处理模块306可以将具有不同持续时间的不同读取电压施加到耦合到该块的字线,并且检测该块中每个存储器单元的输出电流以确定输出电流是否发生任何异常。如果该块中的特定存储单元的输出电流发生异常(例如,该存储单元具有严重的电流泄漏问题),则错误处理模块306可以确定该存储单元已损坏,并且将该块标记为坏块。
另一方面,如果该块通过了存储器测试,则错误处理模块306可以将该块标识为候选块,以在存储设备104的垃圾收集期间进行回收。在这种情况下,该块上的读取失败是暂时的。例如,该块上的读取失败可能是由在块的写入时间和读取时间之间的剧烈温度改变引起的(例如,在温度非常低的环境中写入块,而在温度非常高的环境中读取块)。可以擦除该块,然后重新使用该块来存储新数据。例如,错误处理模块306可以从临时坏块列表中释放该块,并将该块推入垃圾收集的目标块列表,使得可以在垃圾收集期间将该块回收并再次重新用于数据存储。
根据以上对图3的描述,当存储设备104的块发生读取错误并且一组错误处理机制也无法处理该块上的读取错误(例如,也无法成功读取存储在该块中的数据)时,可以在该块上执行存储器测试以确定该块是否是坏块。如果该块是坏块,则该块上的失败可能是永久性的或不可恢复的(例如,由于物理缺陷所导致的严重电流泄漏)。通过将具有不可恢复故障的块标识为坏块,可以不再将该块用于未来的数据存储,使得可以避免该块上潜在的数据丢失。另外,还可以避免由该块上的重复擦除和写入所引起的存储设备104的读取速度的潜在下降。结果,可以增大存储设备104的读取速度,并且可以提高存储设备104中的数据存储的完整性和可靠性。
图4示出了根据本公开的一些方面的用于处理存储设备104的块上的读取错误的方法400的流程图。方法400可以由存储器控制器106的处理器109实施。应当理解,方法400中所示的操作可能不是穷举的,并且也可以在任何所示操作之前、之后或之间执行其他操作。此外,一些操作可以同时执行,或者以与图4所示的顺序不同的顺序执行。
参考图4,方法400开始于操作402,其中,接收描述一组错误处理机制的读取失败的数据。读取失败指示该组错误处理机制处理了存储设备104的块上的读取错误,并且无法读取存储在该块中的数据。例如,响应于接收到描述该块上的读取错误的数据,处理器109可以实施一组错误处理机制来处理读取错误。如果该组错误处理机制也无法读取存储在块中的数据,则处理器109生成描述该组错误处理机制的读取失败的数据。
方法400进行到操作404,如图4所示,其中响应于该组错误处理机制的读取失败,在该块上执行存储器测试以确定该块是否发生故障。例如,处理器109将存储设备104的块包括在测试队列304中。测试队列304被配置为包括存储设备104的等待由存储器测试进行测试的一组块。处理器109将该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。接下来,处理器109确定是否存在比存储器测试具有更高优先级的要完成的任务。如果没有比存储器测试具有更高优先级的要完成的任务,则处理器109继续对该块执行存储器测试。如果该块未通过存储器测试,则处理器109将该块标记为坏块。另一方面,如果该块通过了存储器测试,则处理器109将该块标识为候选块,以在存储设备104的垃圾收集期间进行回收。在一些实施方式中,处理器109可以对包括在测试队列304中的每个块执行存储器测试。
图5A-5B示出了根据本公开的一些方面的用于处理存储设备104的块上的读取错误的另一种方法500的流程图。方法500可以由存储器控制器106的处理器109来实施。应当理解,方法500中所示的操作可能不是穷举的,并且也可以在任何所示的操作之前、之后或之间执行其他操作。此外,一些操作可以同时执行,或者以与图5A-5B所示的顺序不同的顺序执行。
参考图5A,方法500开始于操作502,其中主机108向存储器控制器106发送用于读取存储在存储设备104的块中的数据的读取请求。响应于接收到该读取请求,处理器109可以执行读取操作以读取存储在块中的数据。
方法500进行到操作504,如图5A所示,其中处理器109确定该块是否发生读取错误。如果该块上没有读取错误(例如,成功读取了存储在该块中的数据且没有错误),则方法500进行到操作506。否则,方法500进行到操作508。
在操作506,将存储在块中的数据返回到主机108。例如,处理器109将数据返回到主机108。
在操作508,应用第一机制来处理读取错误。第一机制使用默认读取电压和LDPC硬解码策略。例如,处理器109被配置为应用第一机制来处理读取错误。
方法500进行到操作510,如图5A所示,其中处理器109确定第一机制是否发生读取失败。如果第一机制发生读取失败,则方法500进行到操作512。否则,方法500进行到操作506。
在操作512,应用第二机制来处理读取错误。第二机制使用读取重试表中的一组读取电压和LDPC硬解码策略。例如,处理器109被配置为应用第二机制来处理读取错误。
方法500进行到操作514,如图5A所示,其中处理器109确定第二机制是否发生读取失败。如果第二机制发生读取失败,则方法500进行到操作516。否则,方法500进行到操作506。
在操作516,应用第三机制来处理读取错误。第三机制使用偏移的读取电压和LDPC软解码策略。例如,处理器109被配置为应用第三机制来处理读取错误。
方法500进行到操作518,如图5A所示,其中处理器109确定第三机制是否发生读取失败。如果第三机制发生读取失败,则方法500进行到操作520。否则,方法500进行到操作506。
在操作520,应用第四机制来处理读取错误。第四机制使用RAID数据恢复策略来恢复存储在块中的数据。例如,处理器109被配置为应用第四机制来处理读取错误。
方法500进行到操作522,如图5A所示,其中处理器109确定第四机制是否发生读取失败。如果第四机制发生读取失败,则方法500进行到操作524。否则,方法500进行到操作506。
在操作524,将块上的数据丢失报告给主机108。例如,处理器109将块上的数据丢失报告给主机108。
参考图5A,如果第一机制发生读取失败,则可以在操作512之前执行图5B中所示的操作。替代地,如果第二机制也发生读取失败,则可以在操作516之前执行图5B中所示的操作。替代地,如果第三机制也发生读取失败,则可以在操作520之前执行图5B中所示的操作。替代地,如果第四机制也发生读取失败,则可以在操作522之后(在操作524之前或之后)执行图5B中所示的操作。
参考图5B,方法500进行到操作526,其中将该块包括在测试队列中。测试队列被配置为包括等待由存储器测试进行测试的一组块。例如,处理器109将该块推入测试队列。
方法500进行到操作528,如图5B所示,其中将该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。例如,处理器109将该块标记为临时坏块。
方法500进行到操作530,如图5B所示,其中处理器109确定是否存在比存储器测试具有更高优先级的要完成的任务。如果存在比存储器测试具有更高优先级的任务,则方法500进行到操作532。否则,方法500进行到操作534。
在操作532,执行比存储器测试具有更高优先级的任务。例如,处理器109执行任务,然后返回到操作530。
在操作534,对块执行存储器测试以确定该块是否发生故障。例如,处理器109对该块执行存储器测试以确定该块是否是坏块。在一些实施方式中,处理器109可以对测试队列中的每个块执行存储器测试,使得可以确定测试队列中的每个块是否发生故障(例如,可以对测试队列中的每个块执行操作534、536、538和540)。
方法500进行到操作536,如图5B所示,其中处理器109确定该块是否未通过存储器测试。如果该块未通过存储器测试,则方法500进行到操作538。否则,方法500进行到操作540。
在操作538,将该块标记为具有物理缺陷的坏块。例如,处理器109将该块标识为坏块,并更新映射表以包括该块。
在操作540,将该块标识为候选块以在存储设备104的垃圾收集期间进行回收。例如,处理器109从临时坏块列表中释放该块,并将该块推入垃圾收集的目标块列表,使得可以在垃圾收集期间将该块回收并再次重新用于数据存储。
根据本公开的一个方面,一种用于控制存储设备的控制器包括存储器和耦合到该存储器的处理器。存储器被配置为存储指令。处理器被配置为执行指令以执行处理,该处理包括:接收描述一组错误处理机制的读取失败的数据,其中该读取失败指示该组错误处理机制处理存储设备的块上的读取错误并且无法读取存储在该块中的数据;以及响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:将存储设备的块包括在测试队列中,其中,测试队列被配置为包括存储设备的等待由存储器测试进行测试的一组块;以及将存储设备的该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:确定是否存在比存储器测试具有更高优先级的要完成的任务,其中响应于不存在比存储器测试具有更高优先级的要完成的任务,对块执行存储器测试。
在一些实施方式中,为了对块执行存储器测试以确定该块是否发生故障,处理器被配置为执行指令以执行处理,该处理还包括:响应于确定该块未通过存储器测试,将该块标记为具有物理缺陷的坏块;或响应于确定该块通过了存储器测试,将该块标识为候选块,以在存储设备的垃圾收集期间进行回收。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:接收描述块上的读取错误的数据;应用该组错误处理机制来处理块上的读取错误,以确定该组错误处理机制是否成功读取了存储在该块中的数据;以及响应于该组错误处理机制无法读取存储在该块中的数据,生成描述该组错误处理机制的读取失败的数据。
在一些实施方式中,为了应用一组错误处理机制来处理块上的读取错误,处理器被配置为执行指令以执行处理,该处理还包括:应用第一机制来处理块上的读取错误以确定第一机制是否成功读取了存储在块中的数据,其中第一机制使用默认读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;响应于第一机制无法读取存储在块中的数据,应用第二机制来处理块上的读取错误以确定第二机制是否成功读取了存储在块中的数据,其中第二机制使用读取重试表中的一组读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;并且响应于第二机制无法读取存储在块中的数据,应用第三机制来处理块上的读取错误以确定第三机制是否成功读取了存储在块中的数据,其中第三机制使用偏移的读取电压来读取存储在块中的数据,并且应用LDPC软解码策略进行数据解码。
在一些实施方式中,为了生成描述该组错误处理机制的读取失败的数据,处理器被配置为执行指令以执行处理,该处理还包括:响应于第三机制无法读取存储在块中的数据,生成描述读取失败的数据,以指示第一机制、第二机制和第三机制均无法读取存储在块中的数据。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:响应于第三机制无法读取存储在块中的数据,应用第四机制来处理块上的读取错误以确定第四机制是否成功读取了存储在块中的数据,其中第四机制使用RAID数据恢复策略来处理块上的读取错误。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:响应于第四机制无法读取存储在块中的数据,将块上的数据丢失报告给主机;或者响应于第四机制成功读取了存储在块中的数据,将存储在块中的数据返回给主机。
根据本公开的另一方面,一种***包括存储设备和控制器。该存储设备被配置为存储数据并且包括存储单元阵列。存储单元阵列被组织成多个块。控制器耦合到存储设备并且被配置为控制存储设备。控制器包括存储器和处理器。存储器被配置为存储指令。处理器耦合到存储器并且被配置为执行指令以执行处理,该处理包括:接收描述一组错误处理机制的读取失败的数据,其中该读取失败指示该组错误处理机制处理存储设备的块上的读取错误并且无法读取存储在该块中的数据;以及响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
在一些实施方式中,该***还包括主机,主机耦合到存储器控制器并且被配置为发送或接收存储在存储设备中的数据。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:将存储设备的块包括在测试队列中,其中,测试队列被配置为包括存储设备的等待由存储器测试进行测试的一组块;以及将存储设备的该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:确定是否存在比存储器测试具有更高优先级的要完成的任务,其中响应于不存在比存储器测试具有更高优先级的要完成的任务,对块执行存储器测试。
在一些实施方式中,为了对块执行存储器测试以确定该块是否发生故障,处理器被配置为执行指令以执行处理,该处理还包括:响应于确定该块未通过存储器测试,将该块标记为具有物理缺陷的坏块;或响应于确定该块通过了存储器测试,将该块标识为候选块,以在存储设备的垃圾收集期间进行回收。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:接收描述块上的读取错误的数据;应用该组错误处理机制来处理块上的读取错误,以确定该组错误处理机制是否成功读取了存储在该块中的数据;以及响应于该组错误处理机制无法读取存储在该块中的数据,生成描述该组错误处理机制的读取失败的数据。
在一些实施方式中,为了应用一组错误处理机制来处理块上的读取错误,处理器被配置为执行指令以执行处理,该处理还包括:应用第一机制来处理块上的读取错误以确定第一机制是否成功读取了存储在块中的数据,其中第一机制使用默认读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;响应于第一机制无法读取存储在块中的数据,应用第二机制来处理块上的读取错误以确定第二机制是否成功读取了存储在块中的数据,其中第二机制使用读取重试表中的一组读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;并且响应于第二机制无法读取存储在块中的数据,应用第三机制来处理块上的读取错误以确定第三机制是否成功读取了存储在块中的数据,其中第三机制使用偏移的读取电压来读取存储在块中的数据,并且应用LDPC软解码策略进行数据解码。
在一些实施方式中,为了生成描述该组错误处理机制的读取失败的数据,处理器被配置为执行指令以执行处理,该处理还包括:响应于第三机制无法读取存储在块中的数据,生成描述读取失败的数据,以指示第一机制、第二机制和第三机制均无法读取存储在块中的数据。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:响应于第三机制无法读取存储在块中的数据,应用第四机制来处理块上的读取错误以确定第四机制是否成功读取了存储在块中的数据,其中第四机制使用RAID数据恢复策略来处理块上的读取错误。
在一些实施方式中,处理器被配置为执行指令以执行处理,该处理还包括:响应于第四机制无法读取存储在块中的数据,将块上的数据丢失报告给主机;或者响应于第四机制成功读取了存储在块中的数据,将存储在块中的数据返回给主机。
根据本公开的又一方面,包括一种用于处理存储设备的块上的读取错误的方法。接收描述一组错误处理机制的读取失败的数据。读取失败指示该组错误处理机制处理块上的读取错误并且无法读取存储在该块中的数据。响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否发生故障。
在一些实施方式中,将存储设备的块包括在测试队列中。测试队列被配置为包括存储设备的等待由存储器测试进行测试的一组块。将存储设备的该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。
在一些实施方式中,确定是否存在比存储器测试具有更高优先级的要完成的任务。响应于不存在比存储器测试具有更高优先级的要完成的任务,对块执行存储器测试。
在一些实施方式中,对块执行存储器测试以确定该块是否发生故障包括:响应于确定该块未通过存储器测试,将该块标记为具有物理缺陷的坏块;或响应于确定该块通过了存储器测试,将该块标识为候选块,以在存储设备的垃圾收集期间进行回收。
在一些实施方式中,接收描述块上的读取错误的数据。应用该组错误处理机制来处理块上的读取错误,以确定该组错误处理机制是否成功读取了存储在该块中的数据。响应于该组错误处理机制无法读取存储在该块中的数据,生成描述该组错误处理机制的读取失败的数据。
在一些实施方式中,应用一组错误处理机制来处理块上的读取错误以确定该组错误处理机制是否成功读取了存储在该块中的数据,包括:应用第一机制来处理块上的读取错误以确定第一机制是否成功读取了存储在块中的数据,其中第一机制使用默认读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;响应于第一机制无法读取存储在块中的数据,应用第二机制来处理块上的读取错误以确定第二机制是否成功读取了存储在块中的数据,其中第二机制使用读取重试表中的一组读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;并且响应于第二机制无法读取存储在块中的数据,应用第三机制来处理块上的读取错误以确定第三机制是否成功读取了存储在块中的数据,其中第三机制使用偏移的读取电压来读取存储在块中的数据,并且应用LDPC软解码策略进行数据解码。
在一些实施方式中,生成描述该组错误处理机制的读取失败的数据包括:响应于第三机制无法读取存储在块中的数据,生成描述读取失败的数据,以指示第一机制、第二机制和第三机制均无法读取存储在块中的数据。
在一些实施方式中,响应于第三机制无法读取存储在块中的数据,应用第四机制来处理块上的读取错误以确定第四机制是否成功读取了存储在块中的数据,其中第四机制使用RAID数据恢复策略来处理块上的读取错误。
在一些实施方式中,响应于第四机制无法读取存储在块中的数据,将块上的数据丢失报告给主机;或者响应于第四机制成功读取了存储在块中的数据,将存储在块中的数据返回给主机。
根据本公开的又一方面,包括一种用于处理存储设备的块上的读取错误的方法。接收描述一组错误处理机制的读取失败的数据。读取失败指示该组错误处理机制处理块上的读取错误并且无法读取存储在该块中的数据。响应于该组错误处理机制的读取失败,对该块执行存储器测试以确定该块是否未通过存储器测试。响应于该块未通过存储器测试,将该块标识为坏块。
在一些实施方式中,将存储设备的块包括在测试队列中。测试队列被配置为包括存储设备的等待由存储器测试进行测试的一组块。将存储设备的该块标记为临时坏块,使得在对该块执行存储器测试之前不访问该块。
在一些实施方式中,确定是否存在比存储器测试具有更高优先级的要完成的任务。响应于不存在比存储器测试具有更高优先级的要完成的任务,对块执行存储器测试。
在一些实施方式中,接收描述块上的读取错误的数据。应用该组错误处理机制来处理块上的读取错误,以确定该组错误处理机制是否成功读取了存储在该块中的数据。响应于该组错误处理机制无法读取存储在该块中的数据,生成描述该组错误处理机制的读取失败的数据。
在一些实施方式中,应用一组错误处理机制来处理块上的读取错误以确定该组错误处理机制是否成功读取了存储在该块中的数据,包括:应用第一机制来处理块上的读取错误以确定第一机制是否成功读取了存储在块中的数据,其中第一机制使用默认读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;响应于第一机制无法读取存储在块中的数据,应用第二机制来处理块上的读取错误以确定第二机制是否成功读取了存储在块中的数据,其中第二机制使用读取重试表中的一组读取电压来读取存储在块中的数据,并且应用LDPC硬解码策略进行数据解码;并且响应于第二机制无法读取存储在块中的数据,应用第三机制来处理块上的读取错误以确定第三机制是否成功读取了存储在块中的数据,其中第三机制使用偏移的读取电压来读取存储在块中的数据,并且应用LDPC软解码策略进行数据解码。
在一些实施方式中,生成描述该组错误处理机制的读取失败的数据包括:响应于第三机制无法读取存储在块中的数据,生成描述读取失败的数据,以指示第一机制、第二机制和第三机制均无法读取存储在块中的数据。
在一些实施方式中,响应于第三机制无法读取存储在块中的数据,应用第四机制来处理块上的读取错误以确定第四机制是否成功读取了存储在块中的数据。第四机制使用RAID数据恢复策略来处理块上的读取错误。
在一些实施方式中,响应于第四机制无法读取存储在块中的数据,将块上的数据丢失报告给主机。
特定实施方式的前述描述可以容易地被修改和/或改编以用于各种应用。因此,基于本文提出的教导和指导,这样的改编和修改旨在处于所公开的实施方式的等同物的含义和范围内。
本公开的广度和范围不应由任何上述示例性实施方式来限制,而应仅根据所附权利要求及其等同物来限定。
Claims (36)
1.一种用于控制存储设备的控制器,包括:
存储器,被配置为存储指令;以及
处理器,耦合到所述存储器并且被配置为执行所述指令以执行处理,所述处理包括:
接收描述一组错误处理机制的读取失败的数据,其中,所述读取失败指示所述一组错误处理机制处理所述存储设备的块上的读取错误并且无法读取存储在所述块中的数据;以及
响应于所述一组错误处理机制的所述读取失败,对所述块执行存储器测试以确定所述块是否发生故障。
2.根据权利要求1所述的控制器,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
将所述存储设备的所述块包括在测试队列中,其中,所述测试队列被配置为包括所述存储设备的等待由所述存储器测试进行测试的一组块;以及
将所述存储设备的所述块标记为临时坏块,使得在对所述块执行所述存储器测试之前不访问所述块。
3.根据权利要求1-2中任一项所述的控制器,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
确定是否存在比所述存储器测试具有更高优先级的要完成的任务,其中,响应于不存在比所述存储器测试具有更高优先级的要完成的任务,对所述块执行所述存储器测试。
4.根据权利要求1-3中任一项所述的控制器,其中,为了对所述块执行所述存储器测试以确定所述块是否发生故障,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于确定所述块未通过所述存储器测试,将所述块标记为具有物理缺陷的坏块;或者
响应于确定所述块通过了所述存储器测试,将所述块标识为候选块,以在所述存储设备的垃圾收集期间进行回收。
5.根据权利要求1-4中任一项所述的控制器,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
接收描述所述块上的所述读取错误的数据;
应用所述一组错误处理机制来处理所述块上的所述读取错误,以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据;以及
响应于所述一组错误处理机制无法读取存储在所述块中的所述数据,生成描述所述一组错误处理机制的所述读取失败的所述数据。
6.根据权利要求5所述的控制器,其中,为了应用所述一组错误处理机制来处理所述块上的所述读取错误,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
应用第一机制来处理所述块上的所述读取错误以确定所述第一机制是否成功读取了存储在所述块中的所述数据,其中,所述第一机制使用默认读取电压来读取存储在所述块中的所述数据,并且应用低密度奇偶校验(LDPC)硬解码策略进行数据解码;
响应于所述第一机制无法读取存储在所述块中的所述数据,应用第二机制来处理所述块上的所述读取错误以确定所述第二机制是否成功读取了存储在所述块中的所述数据,其中,所述第二机制使用读取重试表中的一组读取电压来读取存储在所述块中的所述数据,并且应用所述LDPC硬解码策略进行数据解码;以及
响应于所述第二机制无法读取存储在所述块中的所述数据,应用第三机制来处理所述块上的所述读取错误以确定所述第三机制是否成功读取了存储在所述块中的所述数据,其中,所述第三机制使用偏移的读取电压来读取存储在所述块中的所述数据,并且应用LDPC软解码策略进行数据解码。
7.根据权利要求6所述的控制器,其中,为了生成描述所述一组错误处理机制的所述读取失败的所述数据,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,生成描述所述读取失败的所述数据,以指示所述第一机制、所述第二机制和所述第三机制均无法读取存储在所述块中的所述数据。
8.根据权利要求6-7中任一项所述的控制器,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,应用第四机制来处理所述块上的所述读取错误以确定所述第四机制是否成功读取了存储在所述块中的所述数据,其中,所述第四机制使用独立磁盘的冗余阵列(RAID)数据恢复策略来处理所述块上的所述读取错误。
9.根据权利要求8所述的控制器,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第四机制无法读取存储在所述块中的所述数据,将所述块上的数据丢失报告给主机;或者
响应于所述第四机制成功读取了存储在所述块中的所述数据,将存储在所述块中的所述数据返回给所述主机。
10.一种***,包括:
存储设备,被配置为存储数据并且包括存储单元阵列,其中,所述存储单元阵列被组织成多个块;以及
控制器,耦合到所述存储设备并且被配置为控制所述存储设备,所述控制器包括:
存储器,被配置为存储指令;以及
处理器,耦合到所述存储器并且被配置为执行所述指令以执行处理,所述处理包括:
接收描述一组错误处理机制的读取失败的数据,其中,所述读取失败指示所述一组错误处理机制处理所述存储设备的块上的读取错误并且无法读取存储在所述块中的数据;以及
响应于所述一组错误处理机制的所述读取失败,对所述块执行存储器测试以确定所述块是否发生故障。
11.根据权利要求10所述的***,还包括主机,所述主机耦合到所述存储器控制器并且被配置为发送或接收存储在所述存储设备中的所述数据。
12.根据权利要求10-11中任一项所述的***,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
将所述存储设备的所述块包括在测试队列中,其中,所述测试队列被配置为包括所述存储设备的等待由所述存储器测试进行测试的一组块;以及
将所述存储设备的所述块标记为临时坏块,使得在对所述块执行所述存储器测试之前不访问所述块。
13.根据权利要求10-12中任一项所述的***,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
确定是否存在比所述存储器测试具有更高优先级的要完成的任务,其中,响应于不存在比所述存储器测试具有更高优先级的要完成的任务,对所述块执行所述存储器测试。
14.根据权利要求10-13中任一项所述的***,其中,为了对所述块执行所述存储器测试以确定所述块是否发生故障,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于确定所述块未通过所述存储器测试,将所述块标记为具有物理缺陷的坏块;或者
响应于确定所述块通过了所述存储器测试,将所述块标识为候选块,以在所述存储设备的垃圾收集期间进行回收。
15.根据权利要求10-14中任一项所述的***,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
接收描述所述块上的所述读取错误的数据;
应用所述一组错误处理机制来处理所述块上的所述读取错误,以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据;以及
响应于所述一组错误处理机制无法读取存储在所述块中的所述数据,生成描述所述一组错误处理机制的所述读取失败的所述数据。
16.根据权利要求15所述的***,其中,为了应用所述一组错误处理机制来处理所述块上的所述读取错误,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
应用第一机制来处理所述块上的所述读取错误以确定所述第一机制是否成功读取了存储在所述块中的所述数据,其中,所述第一机制使用默认读取电压来读取存储在所述块中的所述数据,并且应用低密度奇偶校验(LDPC)硬解码策略进行数据解码;
响应于所述第一机制无法读取存储在所述块中的所述数据,应用第二机制来处理所述块上的所述读取错误以确定所述第二机制是否成功读取了存储在所述块中的所述数据,其中,所述第二机制使用读取重试表中的一组读取电压来读取存储在所述块中的所述数据,并且应用所述LDPC硬解码策略进行数据解码;以及
响应于所述第二机制无法读取存储在所述块中的所述数据,应用第三机制来处理所述块上的所述读取错误以确定所述第三机制是否成功读取了存储在所述块中的所述数据,其中,所述第三机制使用偏移的读取电压来读取存储在所述块中的所述数据,并且应用LDPC软解码策略进行数据解码。
17.根据权利要求16所述的***,其中,为了生成描述所述一组错误处理机制的所述读取失败的所述数据,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,生成描述所述读取失败的所述数据,以指示所述第一机制、所述第二机制和所述第三机制均无法读取存储在所述块中的所述数据。
18.根据权利要求16-17中任一项所述的***,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,应用第四机制来处理所述块上的所述读取错误以确定所述第四机制是否成功读取了存储在所述块中的所述数据,其中,所述第四机制使用独立磁盘的冗余阵列(RAID)数据恢复策略来处理所述块上的所述读取错误。
19.根据权利要求18所述的***,其中,所述处理器被配置为执行所述指令以执行所述处理,所述处理还包括:
响应于所述第四机制无法读取存储在所述块中的所述数据,将所述块上的数据丢失报告给主机;或者
响应于所述第四机制成功读取了存储在所述块中的所述数据,将存储在所述块中的所述数据返回给所述主机。
20.一种用于处理存储设备的块上的读取错误的方法,包括:
接收描述一组错误处理机制的读取失败的数据,其中,所述读取失败指示所述一组错误处理机制处理所述块上的所述读取错误并且无法读取存储在所述块中的数据;以及
响应于所述一组错误处理机制的所述读取失败,对所述块执行存储器测试以确定所述块是否发生故障。
21.根据权利要求20所述的方法,还包括:
将所述存储设备的所述块包括在测试队列中,其中,所述测试队列被配置为包括所述存储设备的等待由所述存储器测试进行测试的一组块;以及
将所述存储设备的所述块标记为临时坏块,使得在对所述块执行所述存储器测试之前不访问所述块。
22.根据权利要求20-21中任一项所述的方法,还包括:
确定是否存在比所述存储器测试具有更高优先级的要完成的任务,其中,响应于不存在比所述存储器测试具有更高优先级的要完成的任务,对所述块执行所述存储器测试。
23.根据权利要求20-22中任一项所述的方法,其中,对所述块执行所述存储器测试以确定所述块是否发生故障包括:
响应于确定所述块未通过所述存储器测试,将所述块标记为具有物理缺陷的坏块;或者
响应于确定所述块通过了所述存储器测试,将所述块标识为候选块,以在所述存储设备的垃圾收集期间进行回收。
24.根据权利要求20-23中任一项所述的方法,还包括:
接收描述所述块上的所述读取错误的数据;
应用所述一组错误处理机制来处理所述块上的所述读取错误,以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据;以及
响应于所述一组错误处理机制无法读取存储在所述块中的所述数据,生成描述所述一组错误处理机制的所述读取失败的所述数据。
25.根据权利要求24所述的方法,其中,应用所述一组错误处理机制来处理所述块上的所述读取错误以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据,包括:
应用第一机制来处理所述块上的所述读取错误以确定所述第一机制是否成功读取了存储在所述块中的所述数据,其中,所述第一机制使用默认读取电压来读取存储在所述块中的所述数据,并且应用低密度奇偶校验(LDPC)硬解码策略进行数据解码;
响应于所述第一机制无法读取存储在所述块中的所述数据,应用第二机制来处理所述块上的所述读取错误以确定所述第二机制是否成功读取了存储在所述块中的所述数据,其中,所述第二机制使用读取重试表中的一组读取电压来读取存储在所述块中的所述数据,并且应用所述LDPC硬解码策略进行数据解码;以及
响应于所述第二机制无法读取存储在所述块中的所述数据,应用第三机制来处理所述块上的所述读取错误以确定所述第三机制是否成功读取了存储在所述块中的所述数据,其中,所述第三机制使用偏移的读取电压来读取存储在所述块中的所述数据,并且应用LDPC软解码策略进行数据解码。
26.根据权利要求25所述的方法,其中,生成描述所述一组错误处理机制的所述读取失败的所述数据包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,生成描述所述读取失败的所述数据,以指示所述第一机制、所述第二机制和所述第三机制均无法读取存储在所述块中的所述数据。
27.根据权利要求25-26中任一项所述的方法,还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,应用第四机制来处理所述块上的所述读取错误以确定所述第四机制是否成功读取了存储在所述块中的所述数据,其中,所述第四机制使用独立磁盘的冗余阵列(RAID)数据恢复策略来处理所述块上的所述读取错误。
28.根据权利要求27所述的方法,还包括:
响应于所述第四机制无法读取存储在所述块中的所述数据,将所述块上的数据丢失报告给主机;或者
响应于所述第四机制成功读取了存储在所述块中的所述数据,将存储在所述块中的所述数据返回给所述主机。
29.一种用于处理存储设备的块上的读取错误的方法,包括:
接收描述一组错误处理机制的读取失败的数据,其中,所述读取失败指示所述一组错误处理机制处理所述块上的所述读取错误并且无法读取存储在所述块中的数据;
响应于所述一组错误处理机制的所述读取失败,对所述块执行存储器测试以确定所述块是否未通过所述存储器测试;以及
响应于所述块未通过所述存储器测试,将所述块标识为坏块。
30.根据权利要求29所述的方法,还包括:
将所述存储设备的所述块包括在测试队列中,其中,所述测试队列被配置为包括所述存储设备的等待由所述存储器测试进行测试的一组块;以及
将所述存储设备的所述块标记为临时坏块,使得在对所述块执行所述存储器测试之前不访问所述块。
31.根据权利要求29-30中任一项所述的方法,还包括:
确定是否存在比所述存储器测试具有更高优先级的要完成的任务,其中,响应于不存在比所述存储器测试具有更高优先级的要完成的任务,对所述块执行所述存储器测试。
32.根据权利要求29-31中任一项所述的方法,还包括:
接收描述所述块上的所述读取错误的数据;
应用所述一组错误处理机制来处理所述块上的所述读取错误,以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据;以及
响应于所述一组错误处理机制无法读取存储在所述块中的所述数据,生成描述所述一组错误处理机制的所述读取失败的所述数据。
33.根据权利要求32所述的方法,其中,应用所述一组错误处理机制来处理所述块上的所述读取错误以确定所述一组错误处理机制是否成功读取了存储在所述块中的所述数据,包括:
应用第一机制来处理所述块上的所述读取错误以确定所述第一机制是否成功读取了存储在所述块中的所述数据,其中,所述第一机制使用默认读取电压来读取存储在所述块中的所述数据,并且应用低密度奇偶校验(LDPC)硬解码策略进行数据解码;
响应于所述第一机制无法读取存储在所述块中的所述数据,应用第二机制来处理所述块上的所述读取错误以确定所述第二机制是否成功读取了存储在所述块中的所述数据,其中,所述第二机制使用读取重试表中的一组读取电压来读取存储在所述块中的所述数据,并且应用所述LDPC硬解码策略进行数据解码;以及
响应于所述第二机制无法读取存储在所述块中的所述数据,应用第三机制来处理所述块上的所述读取错误以确定所述第三机制是否成功读取了存储在所述块中的所述数据,其中,所述第三机制使用偏移的读取电压来读取存储在所述块中的所述数据,并且应用LDPC软解码策略进行数据解码。
34.根据权利要求33所述的方法,其中,生成描述所述一组错误处理机制的所述读取失败的所述数据包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,生成描述所述读取失败的所述数据,以指示所述第一机制、所述第二机制和所述第三机制均无法读取存储在所述块中的所述数据。
35.根据权利要求33-34中任一项所述的方法,还包括:
响应于所述第三机制无法读取存储在所述块中的所述数据,应用第四机制来处理所述块上的所述读取错误以确定所述第四机制是否成功读取了存储在所述块中的所述数据,其中,所述第四机制使用独立磁盘的冗余阵列(RAID)数据恢复策略来处理所述块上的所述读取错误。
36.根据权利要求35所述的方法,还包括:
响应于所述第四机制无法读取存储在所述块中的所述数据,将所述块上的数据丢失报告给主机。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/083886 WO2022204928A1 (en) | 2021-03-30 | 2021-03-30 | Memory controller with read error handling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113227959A true CN113227959A (zh) | 2021-08-06 |
Family
ID=77081254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180001161.0A Pending CN113227959A (zh) | 2021-03-30 | 2021-03-30 | 具有读取错误处理的存储器控制器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11521701B2 (zh) |
CN (1) | CN113227959A (zh) |
WO (1) | WO2022204928A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672422A (zh) * | 2021-08-18 | 2021-11-19 | 济南浪潮数据技术有限公司 | 一种磁盘故障探测方法、装置、设备及可读存储介质 |
EP4184331A1 (en) * | 2021-11-21 | 2023-05-24 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
CN116880781A (zh) * | 2023-09-08 | 2023-10-13 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113227959A (zh) * | 2021-03-30 | 2021-08-06 | 长江存储科技有限责任公司 | 具有读取错误处理的存储器控制器 |
US11782778B2 (en) * | 2021-07-28 | 2023-10-10 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
CN116340191B (zh) * | 2023-05-31 | 2023-08-08 | 合肥康芯威存储技术有限公司 | 一种存储器固件的测试方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673226A (zh) * | 2008-06-30 | 2010-03-17 | 英特尔公司 | Nand错误管理 |
US20170125127A1 (en) * | 2015-11-03 | 2017-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
CN108399108A (zh) * | 2017-02-07 | 2018-08-14 | 西部数据技术公司 | 读取操作和软解码时序 |
CN109753375A (zh) * | 2017-11-07 | 2019-05-14 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN110879759A (zh) * | 2018-09-06 | 2020-03-13 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042776B2 (en) * | 2004-02-18 | 2006-05-09 | International Business Machines Corporation | Method and circuit for dynamic read margin control of a memory array |
US7818625B2 (en) * | 2005-08-17 | 2010-10-19 | Microsoft Corporation | Techniques for performing memory diagnostics |
US10469103B1 (en) * | 2017-04-19 | 2019-11-05 | Seagate Technology Llc | Adaptive read retry optimization |
US10811091B2 (en) * | 2018-10-12 | 2020-10-20 | Western Digital Technologies, Inc. | Adaptive processing for read threshold voltage calibration |
CN111104044B (zh) * | 2018-10-25 | 2024-04-30 | 上海宝存信息科技有限公司 | 数据储存装置及其适应性数据读取方法 |
KR20220001222A (ko) * | 2020-06-29 | 2022-01-05 | 에스케이하이닉스 주식회사 | 베드 블록을 처리하는 메모리 시스템 및 동작 방법 |
CN113227959A (zh) * | 2021-03-30 | 2021-08-06 | 长江存储科技有限责任公司 | 具有读取错误处理的存储器控制器 |
-
2021
- 2021-03-30 CN CN202180001161.0A patent/CN113227959A/zh active Pending
- 2021-03-30 WO PCT/CN2021/083886 patent/WO2022204928A1/en active Application Filing
- 2021-06-18 US US17/352,246 patent/US11521701B2/en active Active
-
2022
- 2022-11-04 US US17/981,298 patent/US20230055737A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673226A (zh) * | 2008-06-30 | 2010-03-17 | 英特尔公司 | Nand错误管理 |
US20170125127A1 (en) * | 2015-11-03 | 2017-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
CN108399108A (zh) * | 2017-02-07 | 2018-08-14 | 西部数据技术公司 | 读取操作和软解码时序 |
CN109753375A (zh) * | 2017-11-07 | 2019-05-14 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN110879759A (zh) * | 2018-09-06 | 2020-03-13 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672422A (zh) * | 2021-08-18 | 2021-11-19 | 济南浪潮数据技术有限公司 | 一种磁盘故障探测方法、装置、设备及可读存储介质 |
CN113672422B (zh) * | 2021-08-18 | 2024-02-13 | 济南浪潮数据技术有限公司 | 一种磁盘故障探测方法、装置、设备及可读存储介质 |
EP4184331A1 (en) * | 2021-11-21 | 2023-05-24 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
US11809314B2 (en) | 2021-11-21 | 2023-11-07 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
CN116880781A (zh) * | 2023-09-08 | 2023-10-13 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN116880781B (zh) * | 2023-09-08 | 2023-12-26 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230055737A1 (en) | 2023-02-23 |
US11521701B2 (en) | 2022-12-06 |
US20220319624A1 (en) | 2022-10-06 |
WO2022204928A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11521701B2 (en) | Memory controller with read error handling | |
KR101623119B1 (ko) | 솔리드 스테이트 드라이브의 에러 제어 방법 | |
US8448018B2 (en) | Stripe-based memory operation | |
US9569306B1 (en) | Recovery of multi-page failures in non-volatile memory system | |
US9170898B2 (en) | Apparatus and methods for providing data integrity | |
US8589761B2 (en) | Apparatus and methods for providing data integrity | |
EP2732373B1 (en) | Method and apparatus for flexible raid in ssd | |
US9195541B2 (en) | Controlling nonvolatile memory device and nonvolatile memory system | |
KR101491943B1 (ko) | 트랜잭션 로그 복구 | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
KR20110036816A (ko) | 고체 상태 메모리의 소거 횟수에 따라 에러를 정정하기 위한 방법과 장치 | |
CN113867995A (zh) | 处理坏块的存储器***及其操作方法 | |
KR20160074025A (ko) | 데이터 저장 장치의 동작 방법 | |
CN112612639A (zh) | 操作存储器***的方法、操作主机的方法和计算*** | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
US11455118B1 (en) | Method for redundant array of independent disks striping against programming failures and apparatus thereof | |
CN107808686B (zh) | 读出错测试方法与装置 | |
JP5908106B2 (ja) | 妥当性マスクを記憶する装置および方法ならびに操作装置 | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
CN112084118A (zh) | 数据存储装置及其操作方法 | |
CN107632902B (zh) | 用于程序化失败时回复数据的方法、控制器及存储*** | |
CN118382893A (zh) | 存储***和存储***的操作方法 |
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 |