CN110806947B - 预测错误校正装置、其操作方法和用该装置的存储器系统 - Google Patents
预测错误校正装置、其操作方法和用该装置的存储器系统 Download PDFInfo
- Publication number
- CN110806947B CN110806947B CN201910506044.4A CN201910506044A CN110806947B CN 110806947 B CN110806947 B CN 110806947B CN 201910506044 A CN201910506044 A CN 201910506044A CN 110806947 B CN110806947 B CN 110806947B
- Authority
- CN
- China
- Prior art keywords
- data
- parity
- prediction error
- memory device
- memory
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 140
- 238000012937 correction Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002123 temporal effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开的实施例涉及预测错误校正装置、其操作方法和用该装置的存储器系统。一种存储器系统可以包括:存储器设备,其被配置为执行数据写入、读取和擦除操作中的一个或多个;以及控制器,其被配置为执行错误管理命令并控制存储器设备的操作,其中错误管理命令被配置为确定存储在存储器设备中的数据中很可能导致读取失败的第一数据,确定用于生成预测错误奇偶校验的一个或多个第二数据,并基于所确定的第一和第二数据生成预测错误奇偶校验,并且其中存储器设备在控制器的控制下执行写入操作以存储第一和第二数据的索引以及预测错误奇偶校验。
Description
相关申请的交叉引用
本申请要求2018年08月06日在韩国知识产权局提交的韩国申请第10-2018-0091148号的优先权,该申请通过引用整体并入本文。
技术领域
各种实施例一般地涉及预测错误校正装置,其操作方法和使用该装置的存储器系统,并且更具体地涉及用于校正在针对存储在存储器系统中的数据的读取操作期间发生的错误的技术。
背景技术
通常,存储器设备可以是易失性存储器或非易失性存储器,易失性存储器在断电时丢失存储在其中的数据,非易失性存储器即使在断电时也保留存储在其中的数据。包括这种存储器设备的数据处理系统需要控制器,以用于根据诸如来自外部主机设备的写入、读取或擦除请求的请求来控制存储器设备。另外,控制器可以校正在从存储器设备读取所存储的数据的过程期间可能发生的错误。然而,控制器的这种错误校正能力可能受到限制,因为错误校正能力与数据处理系统的性能具有折衷关系。
发明内容
各种实施例涉及用于提高数据可靠性和错误校正效率的错误校正技术。
在一个实施例中,一种存储器系统可以包括:存储器设备,存储器设备被配置为执行数据写入、读取和擦除操作中的一个或多个操作;以及控制器,控制器被配置为执行错误管理命令并控制存储器设备的操作,其中错误管理命令被配置为确定存储在存储器设备中的数据中很可能导致读取失败的第一数据,确定用于生成预测错误奇偶校验的一个或多个第二数据,并基于所确定的第一和第二数据生成预测错误奇偶校验,并且其中存储器设备在控制器的控制下执行写入操作以存储第一和第二数据的索引以及预测错误奇偶校验。
在一个实施例中,提供了一种存储器系统的操作方法,该存储器系统包括:被配置为存储数据的存储器设备以及被配置为控制存储器设备的操作的控制器。操作方法可以包括以下步骤:由控制器确定存储在存储器设备中的数据中的很可能导致读取失败的第一数据;由控制器确定用于生成作为与第一数据对应的奇偶校验的预测错误奇偶校验的一个或多个第二数据;由控制器基于第一和第二数据生成预测错误奇偶校验;在控制器的控制下,由存储器设备执行写入操作以存储第一和第二数据的索引以及预测错误奇偶校验。
在一个实施例中,一种预测错误校正装置可以包括:第一数据判决部件,第一数据判决部件被配置为确定存储器设备中存储的数据中很可能导致读取失败的第一数据;第二判决部件,第二判决部件被配置为确定用于生成作为与第一数据对应的奇偶校验的预测错误奇偶校验的一个或多个第二数据;预测错误奇偶校验生成器,预测错误奇偶校验生成器被配置为基于第一和第二数据生成预测错误奇偶校验。
在一个实施例中,一种存储器系统包括:适于存储多个数据的存储器设备;以及适于执行以下操作的控制器:确定第一数据和第二数据,第一数据包括失败位的数量大于阈值的数据,第二数据包括多个数据中除第一数据外的至少一个数据;基于第一数据和第二数据生成奇偶校验数据;控制存储器设备执行读操作;以及当确定由于读取操作导致在第一数据上发生错误时,基于奇偶校验数据校正第一数据。
可以基于失败位和是否已经执行软判决中的一个或多个来确定第一数据。
可以基于数据的稳定性和局部性中的一个或多个来确定第二数据。
可以根据稳定性来判决第二数据。稳定性是基于擦除次数、是否已经执行软判决和失败位中的一个或多个来确定的。
可以基于第一数据的时间局部性和空间局部性中的一个或多个来确定第二数据。
可以基于预测错误奇偶校验来校正在读取操作期间在第一和第二数据中的任何一个中发生的失败位。
当通过ECC解码过程没有校正数据时,可以基于预测错误奇偶校验来校正包含失败位的数据。
可以在存储器设备中存储的数据中确定第二数据的全部或一部分。
可以基于构成数据组的数据的大小来确定第二数据的数量。
可以在包括第一数据的数据组中确定第二数据的全部或一部分。
附图说明
图1是图示根据一个实施例的数据处理系统的图。
图2是图示根据本实施例的控制器的框图。
图3是图示根据一个实施例的预测错误校正装置的框图。
图4是图示根据一个实施例的预测错误生成方法的流程图。
图5是图示根据一个实施例的预测错误校正方法的流程图。
图6是图示根据另一实施例的预测错误校正方法的流程图。
图7示意性地图示了根据一个实施例的存储器设备。
图8示意性地图示了根据本实施例的存储器设备的单元阵列电路。
图9是图示根据本实施例的存储器设备的三维(3D)堆叠结构的示例的图。
具体实施方式
本公开包括具体实施例;然而,它们可以以各种方式进行修改。因此,本公开不限于本文描述和图示的具体实施例,而是可以包括不脱离本公开的精神和范围的所有修改、等同和替换。另外,省略了对公知功能和配置的详细描述,以免不必要地模糊本公开的主题。另外,除非另有相反的说明,否则本说明书和权利要求书中使用的单数形式应当解释为包括“一个或多个”部件。
将参考附图详细描述各种实施例。当参考附图描述实施例时,相同或对应的部件由相同的附图标记表示。另外,在整个说明书中,对“一个实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定是相同的(一个或多个)实施例。
图1是图示根据一个实施例的数据处理系统100的图。
参考图1,数据处理系统100可以包括主机110和存储器系统120。
主机110可以请求存储器系统120执行用于处理数据的整体操作,并从存储器系统120接收结果。数据的处理可以包括写入、读取和擦除数据。
主机110的示例可以包括有线和/或无线电子设备,诸如便携式电子设备(例如,移动电话、MP3播放器、膝上型计算机等)、台式计算机、游戏机、电视(TV)、投影仪等。主机110可以包括一个或多个操作系统(OS),诸如Windows、Chrome和Linux,以便提供与使用数据处理系统的用户的目的和数据处理系统的用途相对应的功能和操作。由于上述配置仅是用于促进对数据处理系统的理解的主机110的示例,因此主机110不限于该配置。
存储器系统120可以执行与主机110的请求相对应的操作以及维护存储器系统120所需的其他整体操作。对于该操作,存储器系统120可以包括用于控制存储器系统120的整体操作的控制器121和存储器设备122。存储器设备122可以执行基于控制器121的控制命令的操作以及维护存储器系统120所需的其他整体操作。控制器121和存储器设备122可以通过通道CH耦合。下面将参考图2至图9详细描述控制器121和存储器设备122。
存储器系统120可以预测在读取存储在存储器设备122中的数据的操作期间可能发生的错误,并且当发生预测错误时,基于预测错误奇偶校验来校正预测错误。具体地,存储器系统120可以监控读取操作,并基于监控结果确定或标识很可能导致读取失败的数据(第一数据)。存储器系统120可以确定或标识用于生成与第一数据相对应的预测错误奇偶校验的数据(第二数据)。当确定了第一和第二数据时,存储器系统120可以基于所确定的第一和第二数据生成并管理预测错误奇偶校验。然后,当在第一数据的读取操作期间发生错误(即预测错误)时,存储器系统120可以基于预测错误奇偶校验来校正第一数据的错误。
存储器系统120可以被配置作为个人计算机存储器卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能介质卡、存储器棒、各种多媒体卡(例如,MMC、eMMC、RS-MMC和MMC-micro)、安全数字(SD)卡(例如,SD、Mini-SD或Micro-SD)、通用闪存(UFS)、固态驱动器(SSD)等。
由于上述配置仅是存储器系统120的示例,因此存储器系统120不限于该配置。
图2是图示根据本实施例的控制器121的框图。
参考图2,控制器121可以包括处理器210、存储器220、错误校正码(ECC)部件230、主机接口(I/F)240、存储器I/F 250、电源管理器(PMU)260和预测错误校正(P-ECC)装置270。
处理器210可以控制存储器系统120的整体操作。具体地,当从主机110接收到诸如写入、读取或擦除请求的请求时,处理器210可以控制控制器121的部件和存储器设备122的操作等,以便执行与所接收的请求相对应的操作。
在一个实施例中,处理器210可以执行被称为闪存转换层(FTL)的固件,以便控制存储器系统120的整体操作。可以将FTL加载到存储器220,并且处理器210可以执行所加载的FTL。
在一个实施例中,FTL可以包括错误管理命令,其被配置为预测在读取存储在存储器设备122中的数据的操作期间可能发生的错误,并且当发生预测错误时,基于预测错误奇偶校验来校正预测错误。具体地,错误管理命令可以被配置为监控读取操作,并基于监控结果确定很可能导致读取失败的数据(第一数据)。错误管理命令可以被配置为确定用于生成与第一数据相对应的预测错误奇偶校验的数据(第二数据)。错误管理命令可以被配置为当确定了这些数据时,基于所确定的第一和第二数据来生成和管理预测错误奇偶校验。然后,当在第一数据的读取操作期间发生错误(即预测错误)时,错误管理命令可以基于预测错误奇偶校验来校正第一数据的错误。
在一个实施例中,处理器210可以用微处理器或中央处理单元(CPU)实施。
存储器220可以用作控制器121和存储器设备122的工作存储器。存储器220可以存储诸如驱动控制器121和存储器设备122所需的固件的数据。即,存储器220可以用作存储驱动存储器系统120和控制器121所需的数据的工作存储器。具体地,存储器220可以将从存储器设备122接收的数据存储到主机110中,以便执行主机110所请求的操作,诸如写入、读取或擦除操作。对于该操作,存储器220可以包括程序存储器、数据存储器、写缓冲器(或高速缓存)、读缓冲器(或高速缓存)、数据缓冲器(或高速缓存)或映射缓冲器(或高速缓存)。
在一个实施例中,存储器220可以被配置作为易失性存储器。例如,存储器220可以被实施成静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
ECC 230可以校正由存储器系统120处理的数据的错误。
在一个实施例中,ECC 230可以包括ECC编码器和ECC解码器(未图示)。ECC编码器可以在写入操作期间对要存储在存储器设备122中的数据执行错误校正编码。ECC解码器可以在读取操作期间对从存储器设备122接收的数据执行错误校正解码。ECC编码器可以通过对要存储在存储器设备122中的数据执行错误校正编码来生成奇偶校验位,并且将所生成的奇偶校验位添加到要存储在存储器设备122中的数据。存储器设备122可以存储添加了奇偶校验位的数据。ECC解码器可以通过基于奇偶校验位对从存储器设备122接收的数据执行错误校正解码来检测错误,并校正检测到的错误。当检测到的错误中包含的错误位的数量超过ECC解码器的错误校正能力的限制时,ECC解码器不能校正检测到的错误,并且因此可以输出错误校正失败信号。
在一个实施例中,ECC 230可以对从存储器设备122接收的数据执行硬判决和软判决。硬判决可以指示用于校正从存储器设备122接收的数据的错误的方法,其仅使用错误校正码和当施加设定的基准读取电压时,根据存储器单元的导通和断开(开/关)特性读取的数据(硬判决数据)。软判决可以指示用于校正从存储器设备122接收的数据的错误的方法,其除了使用硬判决数据和错误校正码之外,还使用关于硬判决数据的可靠性的附加信息(以下称为可靠性数据)。ECC 230可以对从存储器设备122接收的数据执行硬判决和软判决中的两个或任何一个。当通过对从存储器设备122接收的数据执行的硬判决没有校正错误时,ECC 230可以执行软判决。
在一个实施例中,ECC 230可以使用编码调制(诸如低密度奇偶校验(LDPC)码、Bose、Chaudhri、Hocquenghem(BCH)码、turbo码、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或块编码调制(BCM))来校正从存储器设备122接收的数据的错误。
ECC 230可以基于组奇偶校验来校正从存储器设备122接收的数据的错误。具体地,ECC 230可以根据标准或准则来设置数据组,并且在写入操作期间基于在所设置的数据组中包括的数据生成用于错误校正的组奇偶校验。组奇偶校验可以与数据组一起存储在存储器设备122中。另外,对组奇偶校验的读取操作可以与对对应于组奇偶校验的数据组的读取操作同时执行。备选地,可以在对对应于组奇偶校验的数据组的读取操作之前和/或之后,执行对组奇偶校验的读取操作。当在对数据组的读取操作期间,在属于数据组的数据中发生错误时,ECC 230可以基于组奇偶校验来校正数据组的错误。可以基于诸如块、页面或字线的多个区域中的一个来设置标准或准则。例如,可以将标准或准则设置为包括多个块的超级块,在超级块中同时执行读取操作。备选地,可以将标准或准则设置为耦合到一个或多个字线的页面。
在一个实施例中,ECC 230可以通过对属于相同数据组的数据执行逻辑运算(例如,XOR运算)来生成组奇偶校验。
在一个实施例中,ECC 230可以与另一种错误校正方法(例如,ECC解码或预测错误奇偶校验)同时,基于组奇偶校验执行错误校正。备选地,ECC 230可以在另一错误校正方法(例如,ECC解码或预测错误奇偶校验)之前和/或之后,基于组奇偶校验执行错误校正。另外,当不可能通过另一种错误校正方法进行错误校正时,ECC 230可以基于组奇偶校验来执行错误校正。
主机I/F 240可以使得存储器系统120和主机110之间能够进行数据通信。具体地,主机I/F 240可以从主机110接收诸如写入、读取或擦除请求的请求,并且将对应于所接收的请求的数据传送到主机110。对于该操作,可以基于被称为主机接口层(HIL)的固件来驱动主机110。
在一个实施例中,根据定义与主机110交换数据的通信协议,主机I/F 240可以用通用串行总线(USB)、多媒体卡(MMC)、快速外围部件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)或移动行业处理器接口(MIPI)来实施。
存储器I/F 250可以使得控制器121和存储器设备122之间能够进行数据通信。具体地,存储器I/F 250可以将数据传输到存储器设备122。数据可以包括处理请求(诸如从主机110接收的写入、读取或擦除请求)所需的数据,以及维护存储器系统120所需的其他数据。然后,存储器I/F 250可以从存储器设备122接收对应的数据。对于该操作,可以通过被称为闪存接口层(FIL)的固件来驱动存储器I/F250。
PMU 260可以管理驱动存储器系统120所需的电力。具体地,PMU 260可以从电池或诸如主机110的外部设备接收电力,并且分配所接收的电力以操作存储器系统120的各个单元。另外,PMU 260可以包括电容器或电池,以用于存储电力以即使在突然断电的情况下也能正常操作存储器系统120。
P-ECC 270可以预测在读取操作期间很可能导致读取失败的数据,并校正该预测数据。下面将参考图3详细描述P-ECC 270。
由P-ECC 270执行的功能可以以固件的形式实施为FTL的一部分。
图3是图示根据一个实施例的预测错误校正(P-ECC)装置270的框图。
参考图3,P-ECC 270可以预测错误的发生并校正预测错误。对于该操作,P-ECC270可以包括读取操作监控器310、第一数据判决部件320、第二数据判决部件330、预测错误奇偶校验生成器340、预测错误奇偶校验管理器350和预测错误校正器360。
读取操作监控器310可以监控存储器系统120的读取操作。具体地,读取操作监控器310可以在对存储在存储器设备122中的数据的读取操作期间,监控失败位(即,未被正确读取的位)、是否执行软判决以及是否执行错误校正。另外,读取操作监控器310可以在读取操作期间检测错误的发生,或者从图2的ECC 230接收错误检测结果。
在一个实施例中,读取操作监控器310可以监控访问存储在存储器设备122中的数据的次数,即擦除、读取和写入操作的次数。
第一数据判决部件320可以判决具有低稳定性的数据。具体地,第一数据判决部件320可以基于读取操作监控器310的监控结果确定或标识具有低稳定性的数据,即第一数据,其很可能在后续读取操作期间导致读取失败。
在一个实施例中,第一数据判决部件320可以基于失败位来确定第一数据。例如,当失败位的数量大于或等于第一阈值(例如,2)时,第一数据判决部件320可以选择对应的数据作为第一数据。可以根据ECC 230的错误校正能力来确定第一阈值。可以在存储器系统120的制造或使用步骤中任意设置第一阈值。
在一个实施例中,第一数据判决部件320可以基于是否已经执行软判决来确定第一数据。例如,在对存储在存储器设备122中的数据的读取操作期间,第一数据判决部件320可以选择已经在其上执行了软判决的数据作为第一数据。
在一个实施例中,第一数据判决部件320可以基于失败位以及是否已经执行软判决来确定第一数据。例如,第一数据判决部件320可以从已经对其执行了软判决的数据中选择失败位的数量大于或等于失败位的设定数量的数据作为第一数据。
第二数据判决部件330可以确定用于生成预测错误奇偶校验的第二数据。具体地,第二数据判决部件330可以确定用于生成预测错误奇偶校验的一个或多个第二数据,该预测错误奇偶校验用于在对存储器设备122中存储的数据的读取操作期间,当发生预测错误时,校正预测错误(即,第一数据的错误)。
第二数据判决部件330可以基于稳定性确定第二数据。具体地,第二数据判决部件330可以基于读取操作监控器310的监控结果,选择具有高稳定性的数据作为第二数据。这是为了通过基于具有相对高稳定性的数据生成预测错误奇偶校验,来改善预测错误校正的性能。
在一个实施例中,第二数据判决部件330可以通过基于失败位确定稳定性来确定第二数据。例如,第二数据判决部件330可以选择数据作为第二数据。在读操作期间,该数据可以不包含失败位或者失败位的数量小于或等于第二阈值(例如,1)。
在一个实施例中,第二数据判决部件330可以通过基于是否已经执行软判决确定稳定性,来确定第二数据。例如,第二数据判决部件330可以选择在读取操作期间未在其上执行软判决的数据作为第二数据。
在一个实施例中,第二数据判决部件330可以通过基于访问次数确定稳定性,来确定第二数据。例如,第二数据判决部件330可以选择数据作为第二数据。该数据可以存储在读取、写入或擦除数量大于或等于第三阈值(例如,100)的块、页面或单元中。
在一个实施例中,第二数据判决部件330可以通过基于失败位、是否已经执行软判决以及访问次数中的两项或多项确定稳定性,来确定第二数据。
第二数据判决部件330可以基于局部性来确定第二数据。这是为了减少在读取存储在存储器设备122中的数据的过程期间发生的时间延迟,以便校正第一数据的错误。
在一个实施例中,第二数据判决部件330可以基于空间局部性来确定第二数据。例如,第二数据判决部件330可以选择数据作为第二数据。该数据可以具有与第一数据的逻辑地址或物理地址相邻的地址。即,第二数据判决部件330可以选择在读取操作期间与第一数据的同时,或之前,和/或之后读取的数据作为第二数据。
在一个实施例中,第二数据判决部件330可以基于时间局部性确定第二数据。例如,第二数据判决部件330可以选择存储在存储器设备122中的数据中具有高频率读取操作的数据作为第二数据。
在一个实施例中,第二数据判决部件330可以基于空间局部性和时间局部性来确定第二数据。
另外,第二数据判决部件330可以基于稳定性和局部性来确定第二数据。
第二数据判决部件330可以基于预测错误校正的效率来确定第二数据。例如,当存在用于校正第一数据的错误的单独的手段(例如,组奇偶校验)时,第二数据判决部件330可以确定第二数据的数量,使得第二数据的大小小于构成数据组的数据的大小。即,当包括第一数据的数据组由四个页面组成时,第二数据判决部件330可以确定第二数据的数量,使得包括第二数据的数据组由三个或更少的页面组成。即,第二数据判决部件330可以确定第二数据的数量,使得基于预测错误奇偶校验来校正数据的错误所需的计算量小于另一种错误校正方法所需的计算量。
第二数据判决部件330可以在存储在存储器设备122中的数据中确定第二数据的一部分或全部。当只有一部分第二数据是在存储器设备122中存储的数据中确定时,第二数据判决部件330可以选择存储在存储器220中的数据或者用于生成预测错误奇偶校验的设置数据作为第二数据。
考虑到单独的错误校正器,第二数据判决部件330可以确定第二数据的一部分或全部。例如,当存在用于第一数据的组奇偶校验时,第二数据判决部件330可以在第一数据所属的数据组中确定第二数据的一部分或全部。
预测错误奇偶校验生成器340可以生成用于校正预测错误的预测错误奇偶校验。具体地,当确定第一和第二数据时,预测错误奇偶校验生成器340可以基于所确定的第一和第二数据生成预测错误奇偶校验。预测错误奇偶校验可以用于校正不仅在第一数据中而且在第二数据中发生的错误。
在一个实施例中,预测错误奇偶校验生成器340可以通过对第一和第二数据执行逻辑运算(例如,XOR运算)来生成预测错误奇偶校验。
预测错误奇偶校验管理器350可以管理预测错误奇偶校验。具体地,预测错误奇偶校验管理器350可以将第一数据的索引、第二数据的索引和预测错误奇偶校验中的一个或多个存储在存储器设备122中或者存储在诸如存储器的单独的存储空间中。第一或第二数据的索引可以包括逻辑地址、物理地址和页面号码。
预测错误校正器360可以校正预测错误。具体地,当在对存储在存储器设备122中的数据的读取操作期间出现失败位时,预测错误校正器360可以基于由预测错误奇偶校验管理器350管理的第一或第二数据的索引,来检查是否存在与包含失败位的数据相对应的预测错误奇偶校验。当存在对应于在包含失败位的数据的预测错误奇偶校验时,预测错误校正器360可以基于第一或第二数据和预测错误奇偶校验来校正包含失败位的数据的错误。
在一个实施例中,预测错误校正器360可以优先于其他错误校正部件操作。而且,当图2的ECC 230没有校正错误时,预测错误校正器360可以基于预测错误奇偶校验来校正错误。另外,预测错误校正器360可以优先于ECC 230,基于预测的错误奇偶校验来校正错误。
另外,P-ECC装置270的描述可以扩展到控制器121、FTL、错误管理命令、存储器系统120等。
图4是图示根据一个实施例的预测错误生成方法的流程图。
可以由P-ECC装置270、控制器121、FTL和/或存储器系统120执行图4的方法。然而,在由控制器121执行该方法的上下文中提供以下描述。
参考图4,可以在步骤S410监控读取操作。具体地,在对存储在存储器设备122中的数据的读取操作期间,控制器121可以监控失败位、是否执行软判决以及是否执行错误校正。
在一个实施例中,控制器121可以监控对存储在存储器设备122中的数据的访问次数,即擦除、读取或写入操作的次数。
在步骤S420,控制器121可以确定是否可能发生读取失败。具体地,控制器121可以基于失败位和是否已经执行软判决来确定在后续读取操作期间是否可能发生读取失败。当确定不太可能发生读取失败时(S420,否),控制器121可以再次执行步骤S410。当确定可能发生读取失败时(S420,是),控制器121可以执行步骤S430。
在步骤S430,控制器121可以确定第一数据。具体地,控制器121可以选择很可能导致读取失败的数据作为第一数据。
在一个实施例中,控制器121可以基于失败位确定第一数据。例如,当出现数量大于或等于第一阈值(例如,2)的失败位时,控制器121可以选择对应的数据作为第一数据。可以根据ECC 230的校正能力来确定第一阈值。另外,可以在存储器系统120的制造或使用步骤中任意设置第一阈值。
在一个实施例中,控制器121可以基于是否已经执行软判决来确定第一数据。例如,在对存储在存储器设备122中的数据的读取操作期间,控制器121可以选择已经在其上执行软判决的数据作为第一数据。
在一个实施例中,控制器121可以基于失败位和是否已经执行软判决来确定第一数据。例如,控制器121可以选择已经执行了软判决的数据中的所包含的失败位的数量大于或等于失败位的设定数量的数据作为第一数据。
在步骤S440,控制器121可以确定第二数据。具体地,控制器121可以确定用于生成预测错误奇偶校验的一个或多个第二数据,该预测错误奇偶校验用于在对存储在存储器设备122中的数据的读取操作期间校正预测错误,即第一数据的错误。
控制器121可以基于稳定性确定第二数据。具体地,控制器121可以基于读取操作监控器310的监控结果来选择具有高稳定性的数据作为第二数据。这样做是为了通过基于具有较高的稳定性数据生成预测错误奇偶校验,来改善预测错误校正的性能。
在一个实施例中,控制器121可以通过基于失败位确定稳定性,来确定第二数据。例如,控制器121可以选择在读取操作期间,不包含失败位或失败位的数量小于或等于第二阈值(例如,1)的数据作为第二数据。
在一个实施例中,控制器121可以通过基于是否已经执行软判决确定稳定性,来确定第二数据。例如,控制器121可以选择在读取操作期间没有在其上执行软判决的数据作为第二数据。
在一个实施例中,控制器121可以通过基于访问次数确定稳定性,来确定第二数据。例如,控制器121可以选择存储在块、页面或单元中的读取、写入或擦除数量大于或等于第三阈值(例如,100)的数据作为第二数据。
在一个实施例中,控制器121可以通过基于两个或多个失败位、是否已经执行软判决,以及访问次数,确定稳定性,来确定第二数据。
控制器121可以基于局部性确定第二数据。这样做是为了减少在读取存储在存储器设备122中的数据的过程期间发生的时间延迟,以便校正第一数据的错误。
在一个实施例中,控制器121可以基于空间局部性来确定第二数据。例如,控制器121可以选择具有与第一数据的逻辑地址或物理地址相邻的地址的数据作为第二数据。即,控制器121可以选择在读取操作期间,与第一数据同时,或之前,和/或之后读取的数据作为第二数据。
在一个实施例中,控制器121可以基于时间局部性来确定第二数据。例如,控制器121可以选择存储在存储器设备122中的数据中具有高频率读取操作的数据作为第二数据。
在一个实施例中,控制器121可以基于空间局部性和时间局部性来确定第二数据。
在一个实施例中,控制器121可以基于稳定性和/或局部性来确定第二数据。
控制器121可以基于预测错误校正的效率来确定第二数据的数量。例如,当存在用于校正第一数据的错误的单独的手段(例如,组奇偶校验)时,控制器121可以确定第二数据的数量,使得第二数据的大小小于构成数据组的数据的大小。即,当包括第一数据的数据组由四个页面组成时,控制器121可以确定第二数据的数量,使得包括第二数据的数据组由三个或更少的页面组成。
控制器121可以在存储在存储器设备122中的数据中确定第二数据的一部分或全部。当只有一部分第二数据是在存储器设备122中存储的数据中确定时,控制器121可以选择存储在存储器中的数据或者选择用于生成预测错误奇偶校验的设置数据作为第二数据。
考虑到单独的错误校正器,控制器121可以确定第二数据的一部分或全部。例如,当存在用于第一数据的组奇偶校验时,控制器121可以在第一数据所属的数据组中确定第二数据的一部分或全部。
在步骤S450,控制器121可以生成预测错误奇偶校验。具体地,当确定第一和第二数据时,控制器121可以基于所确定的第一和第二数据来生成预测错误奇偶校验。预测错误奇偶校验可以用于校正不仅在第一数据中而且在第二数据中出现的错误。
在一个实施例中,控制器121可以通过对第一和第二数据执行逻辑运算(例如,XOR运算)来生成预测错误奇偶校验。
在步骤S460,控制器121可以管理预测错误奇偶校验。具体地,控制器121可以将第一数据的索引、第二数据的索引和预测错误奇偶校验中的一个或多个存储在存储器设备122中或者存储在诸如存储器的单独的存储空间中。第一或第二数据的索引可以包括地址和页面号码。
图5是图示根据一个实施例的预测错误校正方法的流程图。
可以由P-ECC装置270和/或控制器121执行图5的方法。然而,在由控制器121执行该方法的上下文中提供以下描述。
在步骤S510,控制器121可以监控读取操作。具体地,控制器121可以通过监控对存储在存储器设备122中的数据的读取操作来检查是否发生诸如失败位的错误。
在步骤S520,控制器121可以检查是否发生了预测错误。具体地,控制器121可以在读取操作期间,基于第一数据的索引来检查包含错误的数据是否是第一数据。当检查结果指示包含错误的数据是第一数据时,控制器121可以确定发生了预测错误。当确定没有发生错误时(S520,否),控制器121可以再次执行步骤S510。当确定发生错误时(S520,是),控制器121可以执行步骤S530。
在步骤S530,控制器121可以校正预测错误。具体地,控制器121可以基于第二数据和预测错误奇偶校验来校正包含错误的第一数据。
图6是图示根据另一实施例的预测错误校正方法的流程图。
可以由P-ECC装置270和/或控制器121执行图6的方法。然而,在由控制器121执行该方法的上下文中提供以下描述。
在步骤S610,控制器121可以监控读取操作。具体地,控制器121可以监控对存储在存储器设备中的数据的读取操作,并检查是否发生诸如失败位的错误。
在步骤S620,控制器121可以检查是否发生了错误。具体地,控制器121可以通过ECC解码检查在对存储在存储器设备122中的数据的读取操作期间是否发生错误。当检查指示没有发生错误时(S620,否),控制器121可以再次执行步骤S610。当确定发生错误时(S620,是),控制器121可以执行步骤S630。
在步骤S630,控制器121可以执行ECC校正。例如,当确定已经发生数据的错误时,控制器121可以通过执行ECC解码来校正错误。
在步骤S640,控制器121可以基于组奇偶校验来执行错误校正。具体地,当通过ECC解码没有校正在读取操作期间标识的错误时,控制器121可以检查是否存在与包含错误的数据相对应的组奇偶校验。当确定存在这种组奇偶校验时(S640,是),控制器121可以基于组奇偶校验和构成对应数据组的数据来校正包含错误的数据。当确定不存在组奇偶校验时(S640,否),控制器121可以执行步骤S650。
在步骤S650,控制器121可以基于预测错误奇偶校验执行错误校正。具体地,当不能通过ECC解码和组奇偶校验校正在读取操作期间标识的错误时,控制器121可以检查包含错误的数据是否对应于第一数据。当检查结果指示包含错误的数据对应于第一数据时,控制器121可以基于第二数据和预测错误奇偶校验来校正包含错误的数据。
返回参考图1,存储器设备122可以包括多个存储器块,例如,存储器块120a、120b和120c,每个存储器块可以包括多个页面。每个页面可以包括多个存储器单元,多个字线耦合到这些存储器单元。另外,存储器设备122可以包括多个平面,每个平面具有多个存储器块。另外,存储器设备122可以包括多个存储器裸片,每个存储器裸片具有多个平面。在一个实施例中,可以用诸如闪存存储器的非易失性存储器设备来实施存储器设备122。闪存存储器可以具有三维堆叠结构。将参考图7-图9详细描述存储器设备122的示例性配置。
图7示意性地图示了根据一个实施例的存储器设备122。
参考图7,存储器设备122可以包括多个存储器块,例如块BLOCK0 710、块BLOCK1720、块BLOCK2 730和块BLOCKN-1 740。块710至740中的每一个可以包括多个页面,例如,2M个页面。作为示例,在本实施例中,每个存储器块包括2M个页面。然而,每个存储器块可以包括不同数量的页面,例如M个页面。每个页面可以包括多个存储器单元,多个字线WL耦合到这些存储器单元。
存储器设备122可以包括多个存储器块,其可以是单层单元(SLC)存储器块和/或多层单元(MLC)存储器块,这取决于在一个存储器单元中可以表达或存储的位的数量。SLC存储器块可以包括由存储器单元实施的多个页面,每个存储器单元被配置为在其中存储1位数据,并且具有快速数据操作性能和高耐久性。MLC存储器块可以包括由存储器单元实施的多个页面,每个存储器单元被配置为在其中存储多位数据(例如,2位或更多位数据),并且具有更大的数据存储空间,即,比SLC存储器块更高的集成密度。具体地,MLC存储器块还可以包括三层单元(TLC)存储器块、四层单元(QLC)存储器块和多层单元存储器块。TLC存储器块可以包括由存储器单元实施的多个页面,每个存储器单元被配置为在其中存储3位数据。QLC存储器块可以包括由存储器单元实施的多个页面,每个存储器单元被配置为在其中存储4位数据。多层单元存储器块还可以包括由存储器单元实施的多个页面,每个存储器单元被配置为在其中存储5位或更多位数据。
块710至块740中的每一个可以通过写入操作来存储从图1的主机110提供的数据,并且通过读操作,将存储在其中的数据提供给主机110。
图8示意性地图示了根据本实施例的存储器设备122的单元阵列电路。
参见图8,包括在存储器系统120的存储器设备122中的多个存储器块120a、120b和120c中的每个存储器块830可以包括被实施为存储器单元阵列并分别耦合到位线BL0至BLm-1的多个单元串840。每列中的单元串840可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在选择晶体管DST和SST之间,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联耦合。存储器单元MC0至MCn-1中的每一个可以被配置作为用于在其中存储多位数据信息的多层单元(MLC)。单元串840可以分别电耦合到对应的位线BL0到BLm-1。
图8图示了由NAND闪存存储器单元构成的存储器块830。然而,包括在存储器设备122中的多个存储器块120a、120b和120c可以不仅限于NAND闪存存储器,而是可以被实施成NOR型闪存存储器,组合了两种或更多种类型存储器单元的混合闪存存储器,或者具有嵌入在存储器芯片中的控制器的单NAND闪存存储器。另外,存储器设备122可以被实施作为具有被配置作为导电浮动栅极的电荷存储层的闪存存储器设备,或者具有由绝缘膜形成的电荷存储层的电荷陷阱闪存(CTF)存储器设备。
存储器设备122可以包括电压源810,根据操作模式,电压源810被配置为提供将被提供给相应的字线的字线电压(例如,写入电压、读取电压和传输电压),以及将被提供给在其中形成存储器单元的主体(例如,阱区)的电压。可以在控制电路(未图示)的控制下执行电压源810的电压生成操作。电压源810可以生成多个可变读取电压以生成多个读取数据,响应于控制电路的控制选择存储器单元阵列的存储器块(或扇区)中的一个,选择所选择的存储器块的字线中的一个字线,以及将字线电压提供给所选择的字线和未选择的字线。
存储器设备122可以包括读取和写入(读/写)电路820,其由控制电路控制并且根据操作模式,作为读出放大器或写入驱动器操作。例如,在验证和/或正常读取操作的情况下,读/写电路820可以作为读出放大器操作,以用于从存储器单元阵列读取数据。另外,在写入操作的情况下,读/写电路820可以作为写入驱动器操作,以根据要存储在存储器单元阵列中的数据来驱动位线。在写入操作期间,读/写电路820可以从缓冲器(未图示)接收要存储在存储器单元阵列中的数据,并根据所接收的数据驱动位线。对于该操作,读/写电路820可以包括分别对应于列(或位线)或列对(位线对)的多个页面缓冲器(PB)822、824和826。页面缓冲器822、824和826中的每一个可以包括多个锁存器(未图示)。
图9是图示根据一个实施例的具有三维(3D)堆叠结构的存储器设备122的图。
存储器设备122可以被实施成二维(2D)或3D存储器设备,在图9中图示后者的示例。特别地,如图9中所示,存储器设备122可以被实施成具有3D堆叠结构的非易失性存储器设备。存储器设备122可以包括具有3D堆叠结构的多个存储器块BLK0至BLKN-1。图9是示出图1中所示的存储器设备122的存储器块120a、120b和120c的框图,并且存储器块120a、120b和120c中的每一个可以具有3D结构或垂直结构。例如,存储器块120a、120b和120c中的每一个可以是3D结构,其具有在相互正交的方向(例如,图9中所示的x轴、y轴和z轴方向)上延伸的维度。
返回参考图8,包括在存储器设备122中的存储器块830中的每一个可以包括在第二方向上延伸的多个NAND串NS,并且还可以在第一方向和第三方向上提供多个NAND串NS。每一个NAND串NS可以耦合到位线BL、一个或多个串选择线SSL、一个或多个地选择线GSL、多个字线WL、一个或多个虚设字线DWL和公共源极线CSL,并包括多个晶体管结构TS。
即,存储器设备122的多个存储器块120a、120b和120c中的每个存储器块830可以耦合到多个位线BL、多个串选择线SSL、多个地选择线GSL、多个字线WL、多个虚设字线DWL和多个公共源极线CSL,并且因此包括多个NAND串NS。在每个存储器块830中,多个NAND串NS可以耦合到一个位线BL,并且可以在一个NAND串NS中实施多个晶体管。另外,每个NAND串NS的串选择晶体管SST可以耦合到对应的位线BL,并且每个NAND串NS的地选择晶体管GST可以耦合到公共源极线CSL。这里,存储器单元MC可以设置在每个NAND串NS的漏极选择晶体管DST和源极选择晶体管SST之间。即,可以在存储器设备122的多个存储器块120a、120b和120c的每个存储器块830中实施多个存储器单元。
根据多个实施例,可以提高数据的可靠性和错误校正的效率。
尽管已经说明和描述了各种实施例,但是根据本公开内容,本领域技术人员将理解,所公开的实施例仅是示例。因此,本发明不限于所描述的实施例。相反,本发明涵盖落入权利要求的范围内的所有变化和修改。
Claims (16)
1.一种存储器系统,包括:
存储器设备,被配置为执行数据写入、读取和擦除操作中的一个或多个;和
控制器,被配置为执行错误管理命令并控制所述存储器设备的操作,
其中所述错误管理命令被配置为确定存储在所述存储器设备中的数据中的很可能导致读取失败的第一数据,确定用于生成预测错误奇偶校验的一个或多个第二数据,并基于确定的第一数据和第二数据生成所述预测错误奇偶校验,
其中所述第一数据是失败位的数量大于阈值的数据,
其中所述存储器设备在所述控制器的控制下执行写入操作,以存储所述第一数据和所述第二数据的索引以及所述预测错误奇偶校验,
其中所述错误管理命令基于数据的稳定性和局部性中的一个或多个来确定所述第二数据,并且
其中所述错误管理命令通过基于擦除次数、是否已经执行软判决和所述失败位中的一个或多个来确定所述稳定性,来确定所述第二数据。
2.根据权利要求1所述的存储器系统,其中所述错误管理命令通过基于所述失败位以及是否已经执行软判决中的一个或多个确定是否可能发生所述读取失败,来确定所述第一数据。
3.根据权利要求1所述的存储器系统,其中所述错误管理命令通过基于所述第一数据的时间局部性和空间局部性中的一个或多个确定所述局部性,来确定所述第二数据。
4.根据权利要求1所述的存储器系统,其中当在所述第一数据和所述第二数据中的任何一个中出现所述失败位时,所述错误管理命令基于所述预测错误奇偶校验来校正包含所述失败位的数据。
5.根据权利要求4所述的存储器系统,其中当通过错误校正码(ECC)解码过程没有校正包含所述失败位的所述数据时,所述错误管理命令基于所述预测错误奇偶校验来校正包含所述失败位的所述数据。
6.根据权利要求1所述的存储器系统,其中所述错误管理命令在存储在所述存储器设备中的所述数据中确定所述第二数据的全部或一部分。
7.根据权利要求1所述的存储器系统,其中当存在指示数据组的奇偶校验的组奇偶校验并且所述数据组中包括所述第一数据时,所述错误管理命令确定所述第二数据的数量,使得所述第二数据的大小小于构成所述数据组的数据的大小,其中所述数据组根据标准包括存储在所述存储器设备中的所述数据的全部或一部分。
8.一种预测错误校正装置,包括:
第一数据判决部件,被配置为确定存储在存储器设备中的数据中的很可能导致读取失败的第一数据;
第二数据判决部件,被配置为确定一个或多个第二数据,所述一个或多个第二数据用于生成作为与所述第一数据对应的奇偶校验的预测错误奇偶校验;
预测错误奇偶校验生成器,被配置为基于所述第一数据和所述第二数据生成所述预测错误奇偶校验,
其中所述第一数据是失败位的数量大于阈值的数据,
其中所述第二数据判决部件基于数据的稳定性和局部性中的一个或多个来确定所述第二数据,并且
其中所述第二数据判决部件通过基于擦除次数、是否已经执行软判决和所述失败位中的一个或多个确定所述稳定性,来确定所述第二数据。
9.根据权利要求8所述的预测错误校正装置,其中所述第一数据判决部件通过基于所述失败位和是否已经执行软判决中的一个或多个确定是否可能发生所述读取失败,来确定所述第一数据。
10.根据权利要求8所述的预测错误校正装置,其中所述第二数据判决部件通过基于所述第一数据的时间局部性和空间局部性中的一个或多个确定所述局部性,来确定所述第二数据。
11.根据权利要求8所述的预测错误校正装置,还包括预测错误奇偶校验管理器,所述预测错误奇偶校验管理器被配置为管理所述第一数据和所述第二数据的索引以及所述预测错误奇偶校验。
12.根据权利要求8所述的预测错误校正装置,还包括预测错误校正器,所述预测错误校正器被配置为当在读取操作期间在所述第一数据和所述第二数据中的任何一个中出现所述失败位时,基于所述预测错误奇偶校验来校正包含所述失败位的数据。
13.根据权利要求12所述的预测错误校正装置,其中当通过错误校正码(ECC)解码过程没有校正包含所述失败位的所述数据时,所述预测错误校正器基于所述预测错误奇偶校验来校正包含所述失败位的所述数据。
14.根据权利要求8所述的预测错误校正装置,其中所述第二数据判决部件在存储在所述存储器设备中的所述数据中确定所述第二数据的全部或一部分。
15.根据权利要求8所述的预测错误校正装置,其中当存在指示数据组的奇偶校验的组奇偶校验并且在所述数据组中包括所述第一数据时,所述第二数据判决部件确定所述第二数据的数量,使得所述第二数据的大小小于构成所述数据组的数据的大小,其中所述数据组根据标准包括存储在所述存储器设备中的数据的全部或一部分。
16.一种存储器系统,包括:
存储器设备,适于存储多个数据;和
控制器,适于:
确定第一数据和第二数据,所述第一数据包括失败位的数量大于阈值的数据,所述第二数据包括所述多个数据中的除所述第一数据之外的至少一个数据;
基于所述第一数据和所述第二数据生成奇偶校验数据;
控制所述存储器设备以执行读取操作;以及
当确定由于所述读取操作导致所述第一数据上发生错误时,基于所述奇偶校验数据校正所述第一数据,
其中所述控制器基于数据的稳定性和局部性中的一个或多个来确定所述第二数据,并且
其中所述控制器通过基于擦除次数、是否已经执行软判决和所述失败位中的一个或多个确定所述稳定性,来确定所述第二数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0091148 | 2018-08-06 | ||
KR1020180091148A KR20200015999A (ko) | 2018-08-06 | 2018-08-06 | 예측 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806947A CN110806947A (zh) | 2020-02-18 |
CN110806947B true CN110806947B (zh) | 2023-10-31 |
Family
ID=69228699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910506044.4A Active CN110806947B (zh) | 2018-08-06 | 2019-06-12 | 预测错误校正装置、其操作方法和用该装置的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11119853B2 (zh) |
KR (1) | KR20200015999A (zh) |
CN (1) | CN110806947B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1774756A (zh) * | 2003-05-30 | 2006-05-17 | 国际商业机器公司 | 数据存储系统 |
CN102541756A (zh) * | 2010-11-09 | 2012-07-04 | 富士通株式会社 | 高速缓冲存储器系统 |
US8694855B1 (en) * | 2011-11-02 | 2014-04-08 | Pmc-Sierra Us, Inc. | Error correction code technique for improving read stress endurance |
CN103890732A (zh) * | 2011-08-26 | 2014-06-25 | 牛津布鲁克斯大学 | 数字错误校正 |
CN104575617A (zh) * | 2015-01-06 | 2015-04-29 | 北京大学 | 赛道存储位置错误纠正码的编码方法和纠错方法 |
CN106205671A (zh) * | 2015-05-26 | 2016-12-07 | 华邦电子股份有限公司 | 存储器系统及其管理方法 |
CN107408017A (zh) * | 2015-04-09 | 2017-11-28 | 株式会社日立制作所 | 存储系统和数据控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409594B2 (en) * | 2004-07-06 | 2008-08-05 | Intel Corporation | System and method to detect errors and predict potential failures |
US7496796B2 (en) * | 2006-01-23 | 2009-02-24 | International Business Machines Corporation | Apparatus, system, and method for predicting storage device failure |
KR101623119B1 (ko) | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
US8499116B2 (en) * | 2010-06-11 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Managing wear on independent storage devices |
US9195536B2 (en) * | 2013-07-05 | 2015-11-24 | Kabushiki Kaisha Toshiba | Error correction decoder and error correction decoding method |
US20170171176A1 (en) * | 2015-12-11 | 2017-06-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Maintenance credential permitting performance of just maintenance-related actions when computing device requires repair and/or maintenance |
KR102572357B1 (ko) * | 2016-02-03 | 2023-08-29 | 삼성전자주식회사 | Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
KR20190038049A (ko) * | 2017-09-29 | 2019-04-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2018
- 2018-08-06 KR KR1020180091148A patent/KR20200015999A/ko not_active Application Discontinuation
-
2019
- 2019-04-15 US US16/384,193 patent/US11119853B2/en active Active
- 2019-06-12 CN CN201910506044.4A patent/CN110806947B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1774756A (zh) * | 2003-05-30 | 2006-05-17 | 国际商业机器公司 | 数据存储系统 |
CN102541756A (zh) * | 2010-11-09 | 2012-07-04 | 富士通株式会社 | 高速缓冲存储器系统 |
CN103890732A (zh) * | 2011-08-26 | 2014-06-25 | 牛津布鲁克斯大学 | 数字错误校正 |
US8694855B1 (en) * | 2011-11-02 | 2014-04-08 | Pmc-Sierra Us, Inc. | Error correction code technique for improving read stress endurance |
CN104575617A (zh) * | 2015-01-06 | 2015-04-29 | 北京大学 | 赛道存储位置错误纠正码的编码方法和纠错方法 |
CN107408017A (zh) * | 2015-04-09 | 2017-11-28 | 株式会社日立制作所 | 存储系统和数据控制方法 |
CN106205671A (zh) * | 2015-05-26 | 2016-12-07 | 华邦电子股份有限公司 | 存储器系统及其管理方法 |
Non-Patent Citations (1)
Title |
---|
一种对奇偶校验比特按组删余的速率兼容编码;郭凯等;《西安电子科技大学学报》;20091020;第36卷(第05期);782-787 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200015999A (ko) | 2020-02-14 |
CN110806947A (zh) | 2020-02-18 |
US20200042383A1 (en) | 2020-02-06 |
US11119853B2 (en) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766257B (zh) | 存储器系统及其操作方法 | |
KR102224564B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200084201A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US11204846B2 (en) | Memory system and method for operating the same | |
CN109390003B (zh) | 存储器系统及其操作方法 | |
KR102553170B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20180005858A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20190118030A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102340094B1 (ko) | 메모리 시스템 및 그의 동작 방법 | |
KR20190133483A (ko) | 메모리 시스템, 컨트롤러 및 그 동작방법 | |
KR20200001310A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102593552B1 (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
KR20200012494A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
KR20180111157A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
KR20180076425A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
KR20180017608A (ko) | 메모리 시스템 및 그의 동작 방법 | |
KR20190108788A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20190069806A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200079811A (ko) | 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 | |
KR20190102837A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20190069803A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20190068197A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20190099590A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11157210B2 (en) | Memory system performing dummy program operation during normal program operation |
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 |