CN109285582B - 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法 - Google Patents

存储器系统、非暂时性计算机可读介质及错误校验与校正的方法 Download PDF

Info

Publication number
CN109285582B
CN109285582B CN201810691199.5A CN201810691199A CN109285582B CN 109285582 B CN109285582 B CN 109285582B CN 201810691199 A CN201810691199 A CN 201810691199A CN 109285582 B CN109285582 B CN 109285582B
Authority
CN
China
Prior art keywords
data
error checking
correction
read
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.)
Active
Application number
CN201810691199.5A
Other languages
English (en)
Other versions
CN109285582A (zh
Inventor
金志锡
朴商仁
朴一汉
尹翔镛
林奎善
崔晟云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109285582A publication Critical patent/CN109285582A/zh
Application granted granted Critical
Publication of CN109285582B publication Critical patent/CN109285582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储器系统、非暂时性计算机可读介质及错误校验与校正的方法,可提高非易失性存储器装置的良率、可靠性及寿命。用于控制非易失性存储器装置的错误校验与校正的方法包括将写入数据存储在多个存储区中。所述写入数据可通过执行错误校验与校正编码而产生。可基于从所述存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码。当所述单独式错误校验与校正解码关于所有所述读取数据来说均失败时,可通过对所述读取数据执行逻辑运算来提供逻辑运算数据。可基于所述逻辑运算数据来执行组合式错误校验与校正解码。

Description

存储器系统、非暂时性计算机可读介质及错误校验与校正的 方法
[相关申请的交叉参考]
在2017年7月19日提出申请且名称为“控制对非易失性存储器装置的错误校验与校正的方法及执行所述方法的存储器系统(Method of Controlling Error Check andCorrection(ECC)of Non-Volatile Memory Device and Memory System Performing theSame)”的韩国专利申请第10-2017-0091656号的全文并入本文供参考。
技术领域
本文所述的一个或多个实施例涉及一种存储器系统、非暂时性计算机可读介质及错误校验与校正的方法。
背景技术
半导体存储器装置可被分类为易失性存储器装置或非易失性存储器装置。易失性存储器装置(例如,动态随机存取存储器(dynamic random access memory,DRAM)装置)可通过将存储器单元中的电容器充电或放电来存储数据。当电源被关断时,所存储数据会丢失。当电源被关断时,非易失性存储器装置(例如,闪存存储器装置)会保留所存储数据。由于这些差异,易失性存储器装置被广泛用作各种设备的主存储器。非易失性存储器装置在计算机、移动装置及其他电子产品中广泛用于存储程序代码及/或数据。
人们正在不断地尝试通过提高集成度来增加半导体存储器装置的存储容量。随着集成度提高,存在更多有缺陷存储器单元的可能性增大,且相反地,良率可能会降低。可使用冗余存储器单元或可执行错误校验与校正(Error Check and Correction,ECC)操作来修复有缺陷的存储器单元,但目前所建立的这些方法已被发现具有缺点。
发明内容
根据一个或多个实施例,一种用于控制对非易失性存储器装置的错误校验与校正(ECC)的方法包括:将写入数据存储在所述非易失性存储器装置的多个存储区中,所述写入数据是通过执行错误校验与校正编码而产生;基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码(individual ECC decoding);当所述单独式错误校验与校正解码关于所有所述多个读取数据来说均失败时,通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据;以及基于所述逻辑运算数据来执行组合式错误校验与校正解码(combined ECC decoding)。
根据一个或多个其他实施例,一种存储器系统包括:错误校验与校正(ECC)编码器,用以执行错误校验与校正编码以产生写入数据;非易失性存储器装置,用以将所述写入数据存储在所述非易失性存储器装置的多个存储区中;以及错误校验与校正解码器,用以:基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码;当所述单独式错误校验与校正解码失败时,通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据;以及基于所述逻辑运算数据来执行组合式错误校验与校正解码。
根据一个或多个其他实施例,一种用于控制对非易失性存储器装置的错误校验与校正(ECC)的方法包括:将写入数据存储在所述非易失性存储器装置的多个存储区中,所述写入数据是通过执行错误校验与校正编码而产生;通过执行以下中的至少一者来提供或数据(OR data)及与数据(AND data)中的至少一者:对多个读取数据的逐位或运算(bit-by-bit OR operation)及对多个读取数据的逐位与运算(bit-by-bit AND operation);以及基于逻辑运算数据来执行组合式错误校验与校正解码。
根据一个或多个其他实施例,一种非暂时性计算机可读介质包括代码,所述代码在由处理器执行时使所述处理器控制对非易失性存储器装置的错误校验与校正(ECC)。所述介质包括:用以将写入数据存储在所述非易失性存储器装置的多个存储区中的代码,所述写入数据是通过执行错误校验与校正编码而产生;用以基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码的代码;用以当所述单独式错误校验与校正解码关于所有所述多个读取数据来说均失败时,通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据的代码;以及用以基于所述逻辑运算数据来执行组合式错误校验与校正解码的代码。
附图说明
通过参照附图详细地阐述示例性实施例,对于所属领域中的技术人员来说,各特征将变得显而易见,在附图中:
图1示出用于控制对非易失性存储器装置的错误校验与校正的方法的实施例;
图2A至图2D示出组合式错误校验与校正解码的实施例;
图3A至图3D示出组合式错误校验与校正解码的额外实施例;
图4示出存储器系统的实施例;
图5示出存储器装置的实施例;
图6示出存储器系统的另一实施例;
图7示出存储器装置的另一实施例;
图8示出错误校验与校正解码器的实施例;
图9A及图9B示出逻辑运算单元的实施例;
图10示出存储器单元阵列的实施例;
图11示出存储器块的实施例;
图12A及图12B示出用于存储写入数据的实施例;
图13示出用于控制对非易失性存储器装置的错误校验与校正的方法的另一实施例;
图14至图16示出示例性读取序列的实施例;
图17示出组合式错误校验与校正解码的另一实施例;
图18示出阐述0错误率及1错误率的实施例;
图19A、图19B、图20A及图20B示出用于执行读取条件改变及组合式错误校验与校正操作的实施例;
图21A、图21B、图22A及图22B示出用于执行读取条件改变及组合式错误校验与校正操作的额外实施例;
图23示出读取条件改变及组合式错误校验与校正操作的另一实施例;
图24示出读取条件改变及组合式错误校验与校正操作的另一实施例;
图25A及图25B示出组合式错误校验与校正解码的比率的实施例;
图26示出固态盘或固态驱动器(solid state drive,SSD)的实施例。
[符号的说明]
10、330:错误校验与校正解码器
100、101:存储器系统
300、301:存储器控制器
310:错误校验与校正引擎
320:错误校验与校正编码器
500、501:存储器装置
510:存储器单元阵列
520:地址解码器
530:读写电路
540:数据输入/输出电路
550:电压产生电路
560:控制逻辑
580:片上错误校验与校正电路
600:存储单元(或区域)
700:逻辑运算单元(LOU)(或逻辑算子)
720、740:逻辑运算单元
722、742:或逻辑门
724、744:与逻辑门
726、746:选择器(MUX)
800:选择单元(MUX)
900:错误校验与校正解码单元
1000:固态驱动器
1100:非易失性存储器装置
1200:固态驱动器控制器
1210:处理器
1220:缓冲存储器
1230:错误校验与校正块
1250:主机接口
1260:非易失性存储器接口
ADDR:地址
BL、BL1、BL2、BL3:位线
BF1、BF2:缓冲器
BLK1~BLKz:存储器块
BT1:第一位
BT2:第二位
BT3:第三位
CH1~CHi:通道
CL1~CL15:列
CMD:命令
CSL:共同源极线
CTRL:控制信号
D1、D2、D3:方向
DATA:写入数据/读取数据/数据
DCA:经解码列地址
DL:数据线
DTAND:与数据
DTC:经校正数据
DTL:逻辑运算数据
DTOR:或数据
DTR1:第一读取数据/读取数据
DTR2、:第二读取数据/读取数据
DTR、DTR11、DTR12、DTR21、DTR22:读取数据
ER01、ER02、ER03、ER04、ER05:0错误率
ER1、ER2、ER3:总错误率
ER11、ER12、ER13、ER14、ER15:1错误率
ERS:退化的已擦除状态
ERS0:原始的已擦除状态
FBD1、FBD2、FBDAND、FBDOR:失败位
GSL、GSL1、GSL2、GSL3:接地选择线
GST:接地选择晶体管
LSEL:选择信号
MC1~MC8:存储器单元
NS11~NS33:存储器单元串
PF:合格-失败信号
PG、PG1、PG2:页
PGM:已编程状态/退化的已编程状态
PGM0:原始的已编程状态
RCON1:第一读取条件
RCON2:第二读取条件
S1~S8:状态
S11、S12、S13、S14、S15、S16、S17、S18、S19、S20、S31、S32、S33、S34、S35、S36、S37、S38、S39、S40、S51、S52、S53、S54、S55、S56、S57、S58、S59、S60、S70、S100、S200、S300、S400:步骤
Sa、Sb:状态
SSL、SSL1、SSL2、SSL3:串选择线
SST:串选择晶体管
Vcc:电源电压
Vss:接地电压
VPP:高电压
VR:读取电压/默认读取电压
VR1~VR7:读取电压
VR1’、VR5’:第二校正电压
VR1”、VR5”:第一校正电压
VRa:第一校正读取电压
VRb:第二校正读取电压
VTH:阈值电压
WL~WL8:字线
具体实施方式
图1示出用于控制对非易失性存储器装置的错误校验与校正(ECC)的方法的实施例。参照图1,将写入数据存储在非易失性存储器装置的多个存储区中。所述写入数据可通过执行错误校验与校正编码而产生(S100)。基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码(S200)。
在一些数据存储环境中,可执行数据镜射(data mirroring)以提高所存储数据的可靠性。举例来说,可将相同数据存储在多个存储区中,以在主数据受损时使用后备数据来防止信息丢失。然而,如果所述多个存储区中的所有数据均有缺陷,则不可能进行数据恢复。
数据镜射可基于以下事实而提高存储器装置的可靠性:多个存储区同时出现缺陷的概率低于单个存储区出现缺陷的概率。在一些情景中,可能难以预测所存储数据的可能缺陷,且在许多情形(例如在编程/擦除(Program/Erase,P/E)循环末尾时进行数据编程、对所存储数据的意外的长期忽略等)中,真实情况可能与预测结果有偏差。
根据示例性实施例,当单独式错误校验与校正解码关于所有所述多个读取数据来说均失败时,可通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据(S300)。可基于逻辑运算数据而执行组合式错误校验与校正解码(S400)。
在一些示例性实施例中,如图1中所示,可首先执行单独式错误校验与校正解码,并且接着,只有在单独式错误校验与校正解码失败时,才可执行组合式错误校验与校正解码。在其他示例性实施例中,可省略单独式错误校验与校正解码,且可直接执行组合式错误校验与校正解码。举例来说,如果编程/擦除循环接近极限值,则失败位数目可显著增加,且单独式错误校验与校正解码失败的概率是非常高的。在此种情形中,可省略单独式错误校验与校正解码,且可基于逻辑运算数据来执行组合式错误校验与校正解码。
因此,即使所述多个读取数据中的每一者是不可校正的,根据示例性实施例的控制对非易失性存储器装置的错误校验与校正的方法也可通过基于逻辑运算数据进行组合式错误校验与校正解码来校正错误。因此,非易失性存储器装置的良率、可靠性及寿命可得以提高。
图2A至图2D示出用于基于或数据来执行组合式错误校验与校正解码的实施例。在图2A中,水平轴表示存储器单元的阈值电压VTH,且垂直轴表示与阈值电压VTH对应的存储器单元的数目。通过读取操作,分布在读取电压VR的左侧处的存储器单元可输出值1。分布在读取电压VR的右侧处的存储器单元可输出值0。存储器单元的阈值电压分布在宽范围中是因为各存储器单元具有不同的特性。即使1存储器单元及0存储器单元的阈值电压VTH可通过擦除操作及编程操作而聚集在左侧及右侧中,阈值电压的分布也因单元特性的不同而未能集中在窄区中。
图2A示出与非(NAND)单元的退化(degeneration)的实例,其中原始的已擦除状态ERS0改变成退化的已擦除状态ERS。随着编程/擦除循环增加,已擦除状态ERS的分布朝右侧方向(例如,增大阈值电压VTH的方向)移动。如果使用读取电压VR来重复读取操作以确定已编程状态PGM或已擦除状态ERS,则已擦除状态ERS的分布也可朝右侧方向移动,此可被称为“读取干扰(read disturbance)”。
图2B对应于其中1被错误地读出为0的情形。在此种情形中,可利用对多个读取数据的或运算来减少失败位数目。参照图2B,即使将相同写入数据存储在多个存储区中,各读取数据也可因退化特性等的不同而不同。举例来说,如图2B中所示,第一读取数据DTR1与第二读取数据DTR2的至少一个位可为不同的。可通过对第一读取数据DTR1与第二读取数据DTR2执行逐位或运算来提供或数据DTOR。
图2C关于与已擦除状态ERS对应的存储器单元示出第一读取数据DTR1的失败位FBD1及第二读取数据DTR2的失败位FBD2。失败位被表示为阴影线区域。处于已擦除状态的存储器单元势必被读出为1,但阈值电压VTH高于读取电压VR的存储器单元被错误地读出为0。此种读取错误可被称为0错误。
第一读取数据DTR1中与第二读取数据DTR2的0错误失败位FBD2对应的位可均匀地分布在已擦除状态ERS的阈值电压范围中。因此,第一读取数据DTR1及第二读取数据DTR2两者中与0错误对应的失败位FBDOR显著减少。因此,与第一读取数据DTR1的0错误失败位FBD1及第二读取数据DTR2的0错误失败位FBD2中的每一者相比,或数据DTOR的0错误失败位FBDOR显著减少。
图2D示出通过对第一读取数据DTR1与第二读取数据DTR2进行或运算来减少0错误失败位。作为实例,假设第一读取数据DTR1的0错误失败位的比率及第二读取数据DTR2的0错误失败位的比率各自均为0.1(例如,10%)。在此种情形中,关于或运算的读取结果,1-1情形的比率是0.81,1-0情形或0-1情形的比率是0.09,且0-0情形的比率是0.01。因此,或数据DTOR中99%的位正常地是1,且或数据DTOR中仅1%的位对应于0错误失败位。
举例来说,假设或数据DTOR的错误率是1%,则第一读取数据DTR1及第二读取数据DTR2中的每一者可容许有10%的错误率。因此,在图2A所示退化特性的情形中,利用基于或数据DTOR进行的组合式错误校验与校正解码,错误校正的合格或成功概率可增大。
图3A至图3D示出用于基于与数据来执行组合式错误校验与校正解码的另一实施例。图3A示出与非单元的退化的实例,其中原始的已编程状态PGM0改变成退化的已编程状态PGM。存储在存储器单元中的电荷因随着时间流逝出现泄漏电流而减少。此引起其中已编程状态PGM朝左侧(例如,减小阈值电压VTH的方向)移动的退化特性。
图3B对应于0被错误地读出为1的情形。在此种情形中,可利用对多个读取数据的与运算来减少失败位数目。如图3A中所示,可通过对第一读取数据DTR1与第二读取数据DTR2执行逐位与运算来提供与数据DTAND。
图3C关于与已编程状态PGM对应的存储器单元示出第一读取数据DTR1的失败位FBD1及第二读取数据DTR2的失败位FBD2。这些失败位被表示为阴影线区域。处于已编程状态的存储器单元势必被读出为0,但阈值电压VTH低于读取电压VR的存储器单元被错误地读出为1。此种读取错误可被称为1错误。
第一读取数据DTR1中与第二读取数据DTR2的1错误失败位FBD2对应的位可均匀地分布在已编程状态PGM的阈值电压范围中。因此,第一读取数据DTR1及第二读取数据DTR2两者中与1错误对应的失败位FBDAND可显著减少。举例来说,与第一读取数据DTR1的1错误失败位FBD1及第二读取数据DTR2的1错误失败位FBD2中的每一者相比,与数据DTAND的1错误失败位FBDAND可显著减少。
图3D示出通过对第一读取数据DTR1与第二读取数据DTR2进行与运算来减少1错误失败位。作为实例,假设第一读取数据DTR1的1错误失败位的比率及第二读取数据DTR2的1错误失败位的比率各自均为0.1(例如,10%)。在此种情形中,关于与运算的结果,0-0情形的比率是0.81,0-1情形或1-0情形的比率是0.09,且1-1情形的比率是0.01。因此,与数据DTAND中99%的位正常地是0,且与数据DTAND中仅1%的位对应于1错误失败位。
举例来说,假设与数据DTAND的错误率为1%,则第一读取数据DTR1及第二读取数据DTR2中的每一者可容许有10%的错误率。因此,在图3A所示退化特性的情形中,利用基于与数据DTAND进行的组合式错误校验与校正解码,错误校正的合格或成功概率可增大。
图4示出存储器系统100的实施例,存储器系统100可包括存储器控制器300及至少一个存储器装置500。存储器装置500可在存储器控制器300的控制下执行读取操作、写入操作及擦除操作。存储器装置500可从存储器控制器300接收控制信号CTRL、命令CMD、地址ADDR及写入数据DATA,并将读取数据DATA传送到存储器控制器300。
存储器控制器300可包括错误校验与校正引擎310,错误校验与校正引擎310可包括错误校验与校正编码器320及错误校验与校正解码器330以校验并校正错误位或失败位。错误校验与校正引擎310可对由错误校验与校正扇区形成的数据单位执行错误校验与校正操作。举例来说,由页形成的数据单位可为8KB至64KB,且由错误校验与校正扇区形成的数据单位可为1KB至4KB。
错误校验与校正编码器320可对将要提供到存储器装置500的数据执行错误校正编码,以产生包括奇偶校验位(parity bit)的码字。所述码字可被传递到存储器装置500并存储在存储器装置500的多个存储区中。错误校验与校正编码器320可以错误校验与校正扇区为数据单位来执行编码。错误校验与校正解码器330可对从存储器装置500读出的数据执行错误校正解码,并判断错误校正解码是失败还是成功。错误校验与校正解码器330可使用码字中的奇偶校验位来校正数据的错误位。如果错误位数目超过阈值数目或可校正位数目,则错误校验与校正解码器330无法校正错误位,且错误校正是不可能实现的。根据示例性实施例,错误校验与校正解码器330可通过对从所述多个存储区读出的多个读取数据执行逻辑运算来提供逻辑运算数据,且可基于逻辑运算数据来执行组合式错误校验与校正解码。
作为非限制性实例,错误校验与校正编码器320及错误校验与校正解码器330可利用编码调制(例如低密度奇偶校验(low density parity check,LDPC)码、博斯-查德胡里-霍昆格母(Bose,Chaudhuri,Hocquenghem,BCH)码、涡轮码(turbo code)、里德-所罗门码(Reed-Solomon,RSC)、卷积码(convolution code)、递归系统码(recursive systematiccode)、格码调制(trellis-coded modulation,TCM)、块码调制(block coded modulation,BCM)等)来校验并校正位错误。
图5示出例如可位于图4所示存储器系统中的存储器装置500的示例性实施例。参照图5,存储器装置500包括存储器单元阵列510、地址解码器520、读写电路530、数据输入/输出(input/output,I/O)电路540、电压产生电路550及控制逻辑560。
存储器单元阵列510通过字线WL及选择线连接到地址解码器520。举例来说,选择线可包括串选择线SSL及接地选择线GSL。存储器单元阵列510通过位线BL连接到读写电路530。
存储器单元阵列510可包括多个存储器单元。举例来说,存储器单元阵列510包括在行方向及列方向上的存储器单元。举例来说,存储器单元阵列510包括多个存储器单元,其中每一单元存储一个或多个数据位。所述存储器单元阵列可例如具有如图10及图11中所示出的垂直与非闪存结构。
地址解码器520通过字线WL、串选择线SSL及接地选择线GSL连接到存储器单元阵列510。地址解码器520可基于来自控制逻辑560的一个或多个控制信号而运作。地址解码器520从外部装置(例如存储器控制器)接收地址ADDR。
地址解码器520可对所接收地址ADDR中的行地址进行解码。地址解码器520可在各字线WL中选择与经解码行地址对应的字线。地址解码器520可在包括串选择线SSL及接地选择线GSL在内的各选择线中选择与经解码行地址对应的选择线。
地址解码器520可将从电压产生电路550接收的各种电压递送到所选字线、未选字线、所选选择线及未选选择线。
地址解码器520可对所接收地址ADDR中的列地址进行解码。地址解码器520将经解码列地址DCA递送到读写电路530。在示例性实施例中,地址解码器520可包括对行地址进行解码的行解码器、对列地址进行解码的列解码器及存储所接收地址ADDR的地址缓冲器。
读写电路530通过位线BL连接到存储器单元阵列510,且通过数据线DL连接到数据输入/输出电路540。读写电路530基于来自控制逻辑560的一个或多个控制信号而运作。读写电路530从地址解码器520接收经解码列地址DCA。读写电路530基于经解码列地址DCA来选择位线BL。
读写电路530从数据输入/输出电路540接收数据,并将所接收数据写入到存储器单元阵列510。读写电路530从存储器单元阵列510读取数据,并将读取数据递送到数据输入/输出电路540。在示例性实施例中,读写电路530可包括页缓冲器(或页寄存器)及列选择电路。在示例性实施例中,读写电路530可进一步包括感测放大器、写入驱动器及列选择电路。
数据输入/输出电路540通过数据线DL连接到读写电路530。数据输入/输出电路140基于来自控制逻辑560的一个或多个控制信号而运作。数据输入/输出电路540被配置成与外部交换数据DATA。数据输入/输出电路540被配置成通过数据线DL将来自外部的数据DATA递送到读写电路530。数据输入/输出电路540可将通过数据线DL从读写电路530递送的数据DATA输出到外部。在示例性实施例中,数据输入/输出电路540可包括数据缓冲器。
电压产生电路550连接到存储器单元阵列510、地址解码器520及控制逻辑560。电压产生电路550从外部接收电力。在示例性实施例中,电压产生电路550从外部接收电源电压Vcc及接地电压Vss。基于来自控制逻辑560的一个或多个控制信号,电压产生电路550可从电源电压Vcc及接地电压Vss产生具有各种电压电平的电压。在示例性实施例中,电压产生电路550可产生各种电压,例如,高电压VPP、编程电压、通过电压、读取电压及/或擦除电压。
由电压产生电路550产生的电压在控制逻辑560的控制下被供应到地址解码器520及存储器单元阵列510。举例来说,在编程操作期间,编程电压及通过电压可被供应到地址解码器520。在读取操作期间,读取电压可被供应到地址解码器520。在擦除存储器单元阵列510期间,擦除电压可被供应到存储器单元阵列510。在其他实施例中,由电压产生电路550产生的电压可为不同的。
控制逻辑560连接到地址解码器520、读写电路530、合格/失败校验电路及数据输入/输出电路540。控制逻辑560可控制非易失性存储器装置100a的一般操作。控制逻辑560可基于来自外部装置的控制信号CTRL而运作。
图6示出存储器系统101的实施例,存储器系统101可包括存储器控制器301及至少一个存储器装置501。存储器装置501可在存储器控制器301的控制下执行读取操作、写入操作及擦除操作。存储器装置501可从存储器控制器301接收控制信号CTRL、命令CMD、地址ADDR及写入数据DATA,并将读取数据DATA传送到存储器控制器301。
存储器装置501可包括片上(on-chip)错误校验与校正电路580。当数据被写入存储器单元阵列中时,片上错误校验与校正电路580可对数据进行编码以产生奇偶校验位。举例来说,奇偶校验位可存储在存储器单元阵列中的奇偶校验数据区中。当从存储器单元阵列读出数据时,片上错误校验与校正电路580可对读取数据及奇偶校验位进行解码以校验并校正位错误。片上错误校验与校正电路580可包括用于执行此种编码及解码的编码器及解码器。根据示例性实施例,片上错误校验与校正电路580中的解码器可通过对从多个存储区读出的多个读取数据执行逻辑运算来提供逻辑运算数据,并基于逻辑运算数据来执行组合式错误校验与校正解码。
图7示出例如可包含在图6所示存储器系统中的存储器装置的示例性实施例。参照图7,存储器装置501包括存储器单元阵列510、地址解码器520、读写电路530、数据输入/输出(I/O)电路540、电压产生电路550、控制逻辑560及片上错误校验与校正电路580。
图7所示存储器装置501可与图5所示存储器装置500实质上相同。与图5所示存储器装置500相比,图7所示存储器装置501进一步包括片上错误校验与校正电路580。片上错误校验与校正电路580可位于读写电路530与数据输入/输出电路540之间,且可执行上述错误校验与校正编码及错误校验与校正解码。
图8示出错误校验与校正解码器10的实施例,错误校验与校正解码器10可包括存储单元(或区域)600、逻辑运算单元(或逻辑算子)(LOU)700、选择单元(MUX)800及错误校验与校正解码单元(EDU)900。
存储单元600可包括多个缓冲器BF1及BF2,以存储多个读取数据DTR(DTR1及DTR2)。逻辑运算单元700可对所述多个读取数据DTR1及DTR2执行逻辑运算以提供逻辑运算数据DTL。选择单元800可选择并输出所述多个读取数据DTR1及DTR2以及逻辑运算数据DTL中的一者。错误校验与校正解码单元900可基于所述多个读取数据DTR1及DTR2中的每一者来执行单独式错误校验与校正解码,或者基于逻辑运算数据DTL来执行组合式错误校验与校正解码。错误校验与校正解码单元900可产生指示错误校正是合格还是失败的合格-失败信号(pass-fail signal)PF,并在错误校正成功时提供经校正数据DTC。
如以下将参照图9A及图9B所述,逻辑运算单元700可包括或运算单元及与运算单元中的至少一者。或运算单元可通过对多个读取数据DTR1及DTR2执行逐位或运算来提供或数据DTOR。与运算单元可通过对多个读取数据DTR1及DTR2执行逐位与运算来提供与数据DTAND。
图9A及图9B示出例如可包含在图8所示错误校验与校正解码器中的逻辑运算单元的示例性实施例。参照图9A,逻辑运算单元720可包括或逻辑门722、与逻辑门724及选择器(MUX)726。图8所示存储单元600中的缓冲器BF1及BF2可以串行信号(例如,位流)的形式提供第一读取数据DTR1及第二读取数据DTR2。或逻辑门722可通过对以串行方式提供的由第一读取数据DTR1及第二读取数据DTR2形成的位对执行或运算来以串行信号的形式提供或数据DTOR。与逻辑门724可通过对以串行方式提供的由第一读取数据DTR1及第二读取数据DTR2形成的位对执行与运算来以串行信号的形式提供与数据DTAND。选择器726可基于选择信号LSEL来选择或数据DTOR及与数据DTAND中的一者,并提供所选一者作为逻辑运算数据DTL。
参照图9B,逻辑运算单元740可包括或逻辑门742、与逻辑门744及选择器(MUX)746。图8所示存储单元600中的缓冲器BF1及BF2可并行地提供第一读取数据DTR1及第二读取数据DTR2。或逻辑门742可通过对由第一读取数据DTR1及第二读取数据DTR2形成的并行位对执行或运算来以并行信号的形式提供或数据DTOR。与逻辑门744可通过对由第一读取数据DTR1及第二读取数据DTR2形成的并行位对执行与运算来以并行信号的形式提供与数据DTAND。选择器746可基于选择信号LSEL来选择或数据DTOR及与数据DTAND中的一者,并提供所选一者作为逻辑运算数据DTL。
图10示出图5所示存储器单元阵列510的实施例,且图11示出图10所示存储器块的等效电路实施例。
参照图10,存储器单元阵列510可包括多个存储器块BLK1至BLKz。在示例性实施例中,存储器块BLK1至BLKz可由图5所示地址解码器520选择。举例来说,地址解码器520可在存储器块BLK1至BLKz中选择与块地址对应的特定存储器块BLK。
图11所示存储器块BLKi可以三维结构(或垂直结构)形成在衬底上。举例来说,存储器块BLKi中的多个存储器单元串可在与衬底交叉或垂直的方向上。
参照图11,存储器块BLKi可包括耦合在位线BL1、BL2及BL3与共同源极线CSL之间的存储器单元串NS11至NS33。存储器单元串NS11至NS33中的每一者可包括串选择晶体管SST、多个存储器单元MC1至MC8及接地选择晶体管GST。在图11中,存储器单元串NS11至NS33中的每一者被示出为包括八个存储器单元MC1至MC8。在一些示例性实施例中,存储器单元串NS11至NS33中的每一者可包括不同数目的存储器单元。
串选择晶体管SST可连接到对应的串选择线SSL1至SSL3。所述多个存储器单元MC1至MC8可分别连接到对应的字线WL1至WL8。接地选择晶体管GST可连接到对应的接地选择线GSL1至GSL3。串选择晶体管SST可连接到对应的位线BL1、BL2及BL3,且接地选择晶体管GST可连接到共同源极线CSL。
具有相同高度的字线(例如,WL1)可被共同地连接,且接地选择线GSL1至GSL3与串选择线SSL1至SSL3可被分隔开。在图11中,存储器块BLKi被示出为耦合到八个字线WL1至WL8及三个位线BL1至BL3。在一些示例性实施例中,存储器单元阵列510可耦合到不同数目的字线及/或位线。
图12A及图12B示出用于存储写入数据的示例性实施例。
参照图12A,可将相同写入数据存储在非易失性存储器装置的不同页PG1及PG2中。因此,可分别从所述多个页PG1及PG2读出多个读取数据DTR1及DTR2。一页可表示由可同时进行编程或读出的存储器单元形成的单位。页PG1及PG2可位于同一存储器块中或不同的存储器块中。另外,页PG1及PG2可位于同一半导体裸片中或分别位于不同的半导体裸片中。
参照图12B,可将相同写入数据存储在非易失性存储器装置的同一页PG的不同位置中。在此种情形中,由于多个读取数据DTR1及DTR2位于同一页PG中,因此可通过同一读取操作由锁存电路(例如页缓冲器)锁存所述多个读取数据。因此,错误校验与校正解码时间可减少。
图13示出用于控制对非易失性存储器装置的错误校验与校正的方法的另一实施例。参照图13,在多个读取数据中读出第一读取数据DTR1(S11),且基于第一读取数据DTR1来执行解码(S12)。如果错误是可校正的(S13:是),则解码合格(S20)且解码结束。
如果不可基于第一读取数据DTR1来校正错误(S13:否),则在多个读取数据中读出第二读取数据DTR2(S14),且基于第二读取数据DTR2来执行解码(S15)。如果错误是可校正的(S16:是),则解码合格(S20)且解码结束。
如果不可基于第二读取数据DTR2来校正错误(S16:否),则通过对第一读取数据DTR1及第二读取数据DTR2执行逐位逻辑运算来提供逻辑运算数据DTL(S17)。如上所述,逻辑运算数据DTL可包括或数据DTOR及与数据DTAND中的至少一者。基于逻辑运算数据DTL来执行组合式错误校验与校正解码(S18)。如果可通过组合式错误校验与校正解码来校正错误(S19:是),则解码合格(S20)且解码结束。
如果不可基于第二读取数据DTR2通过组合式错误校验与校正解码来校正错误(S19:否),则解码最终失败(S21)且解码结束。
因此,可依次使用所述多个读取数据DTR1及DTR2中的每一者来执行单独式错误校验与校正解码(S12、S15),直到错误校正成功为止。如果单独式错误校验与校正解码关于所有所述多个读取数据DTR1及DTR2来说均失败,则可执行组合式错误校验与校正解码。即使图13为便于说明及阐述而示出第一读取数据DTR1及第二读取数据DTR2,也可在进行组合式错误校验与校正解码之前关于三个或更多个读取数据来执行单独式错误校验与校正解码。
图14至图16示出错误校验与校正控制方法的读取序列的实例。图14示出三层单元(triple level cell,TLC)的第一状态至第八状态S1至S8,其中每一个三层单元存储三个数据位。在图14中,水平轴对应于存储器单元的阈值电压VTH,且垂直轴对应于与阈值电压VTH对应的存储器单元的数目。可通过施加第一读取电压至第七读取电压VR1至VR7来区分开第一状态至第八状态S1至S8。
图15示出与第一状态至第八状态S1至S8对应的位值的实例。第一状态至第八状态S1至S8可由“BT3BT2BT1”(例如,第一位BT1、第二位BT2及第三位BT3的不同值)表示。举例来说,如图15中所示,第一状态对应于“111”,第二状态对应于“110”,第三状态对应于“100”,第四状态对应于“000”,第五状态对应于“010”,第六状态对应于“011”,第七状态对应于“001”,且第八状态对应于“101”。
可使用第一读取电压VR1及第五读取电压VR5来确定第一位BT1。可使用第二读取电压VR2、第四读取电压VR4及第六读取电压VR6来确定第二位BT2。可使用第三读取电压VR3及第七读取电压VR7来确定第三位BT3。
图16示出与图15所示实例对应的高至低读取序列(high-to-low read sequence)的实施例。在读取第一位BT1的情形中,可对所选字线依次施加第五读取电压VR5及第一读取电压VR1。在读取第二位BT2的情形中,可对所选字线依次施加第六读取电压VR6、第四读取电压VR4及第二读取电压VR2。在读取第三位BT3的情形中,可对所选字线依次施加第七读取电压VR7及第三读取电压VR3。
在下文中,阐述用于控制对三层单元的错误校验与校正的方法的示例性实施例。在一个实施例中,所述方法可应用于存储两个位及四个或更多个位的多层单元(multiplelevel cell,MLC)。
在三层单元的情形中,每一存储器单元存储三个位,且可通过状态S1至S8来区分开各数据位。因与非单元的退化特性,与已擦除状态对应的第一状态S1可朝右侧方向(例如,增大阈值电压的方向)移动,且其他状态S2至S8朝左侧方向移动。此外,可将相同写入数据存储在不同区的三层单元中。如果对多个读取数据的第一位BT1执行或运算,则状态S1朝左侧方向移动且状态S6至S8朝右侧方向移动。如此一来,如果对多个读取数据的第三位BT3执行或运算,则状态S1至S3朝左侧方向移动且状态S8朝右侧方向移动。在第二位BT2的情形中,值1及0并非是连续的,但由于状态S7的退化可能比状态S2的退化更严重,因此与运算可为更有利的。因此,可使用与运算来使与0对应的状态S7及S8朝右侧方向移动。
如以下将参照图8所述,可确定读取数据的错误类型,且可执行以下中的仅一者:基于或数据DTOR进行组合式错误校验与校正解码及基于与数据DTAND进行组合式错误校验与校正解码。
图17示出用于基于错误类型来执行组合式错误校验与校正解码的实施例。可在第一错误类型及第二错误类型中确定多个读取数据的错误类型,且可基于所确定错误类型来执行组合式错误校验与校正解码。第一错误类型指示0错误的比率大于1错误的比率。第二错误类型指示1错误的比率大于0错误的比率。0错误指示位值1被错误地读出为位值0的情形,且1错误指示位值0被错误地读出为位值1的情形。
参照图17,当读取数据的错误类型是第一错误类型时(S31:TYPE1),通过对读取数据执行逐位或运算来提供或数据DTOR(S32),且基于或数据DTOR来执行组合式错误校验与校正解码(S33)。
当可通过基于或数据DTOR进行的组合式错误校验与校正解码来校正错误时(S34:是),解码合格(S38)且解码结束。当不可基于或数据DTOR来校正错误时(S34:否),解码最终失败(S39)且解码结束。
当读取数据的错误类型是第二错误类型时(S31:TYPE2),通过对读取数据执行逐位与运算来提供与数据DTAND(S35),且基于与数据DTAND来执行组合式错误校验与校正解码(S36)。
当可通过基于与数据DTAND进行的组合式错误校验与校正解码来校正错误时(S37:是),解码合格(S40)且解码结束。当不可基于与数据DTAND来校正错误时(S37:否),解码最终失败(S39)且解码结束。
图18示出阐述0错误率及1错误率的实施例。参照图18,当退化严重(例如,对应于预定条件)或难以确保多层单元的许多状态之间的裕度(margin)时,两个相邻状态Sa及Sb可叠加。在这些情形中,可通过软决策、硬决策或另一方法来搜索与两个状态Sa及Sb之间的谷对应的电压。可将所搜索到的电压确定为默认读取电压VR。
参照图18,当读取数据是基于默认读取电压VR时,0错误率ER01及1错误率ER11可分别由阴影线区域表示。假设0错误率ER01等于1错误率ER11。
图19A、图19B、图20A及图20B示出读取条件改变及组合式错误校验与校正操作的示例性实施例。图19A及图19B示出当基于默认读取电压VR读出两个读取数据并对所述两个读取数据执行或运算时的错误率。如参照图2A至图3D所述,图19A所示阴影线区域对应于或数据的0错误率ER02,且图19B所示阴影线区域对应于或数据的1错误率ER12。
图20A及图20B示出当基于相对于默认读取电压VR朝左侧方向移动的第一校正读取电压VRa读出两个读取数据并对所述两个读取数据执行或运算时的错误率。如参照图2A至图3D所述,图20A所示阴影线区域对应于或数据的0错误率ER03,且图20B所示阴影线区域对应于或数据的1错误率ER13。
当读取电压从默认读取电压VR改变成第一校正读取电压VRa时,0错误率从图19A所示ER02增加至图20A所示ER03,但1错误率从图19B所示ER12进一步减小至图20B所示ER13。因此,与对应于默认读取电压VR的总错误率ER02+ER12相比,与第一校正读取电压VRa对应的总错误率ER03+ER13可减小。因此,当组合式错误校验与校正解码是基于或数据时,将读取电压朝增加0错误率的方向改变可为有利的。
图21A、图21B、图22A及图22B示出读取条件改变及组合式错误校验与校正操作的其他示例性实施例。图21A及图21B示出当基于默认读取电压VR读出两个读取数据并对所述两个读取数据执行与运算时的错误率。如参照图2A至图3D所述,图21A所示阴影线区域对应于与数据的0错误率ER04,且图21B所示阴影线区域对应于与数据的1错误率ER14。
图22A及图22B示出当基于相对于默认读取电压VR朝右侧方向移动的第二校正读取电压VRb读出两个读取数据并对所述两个读取数据执行与运算时的错误率。如参照图2A至图3D所述,图22A所示阴影线区域对应于与数据的0错误率ER05,且图22B所示阴影线区域对应于与数据的1错误率ER15。
当读取电压从默认读取电压VR改变成第二校正读取电压VRb时,1错误率从图21B所示ER14增加至图22B所示ER15,但0错误率从图21A所示ER04进一步减小至图22A所示ER05。因此,与对应于默认读取电压VR的总错误率ER04+ER14相比,与第二校正读取电压VRb对应的总错误率ER05+ER15可减小。因此,当组合式错误校验与校正解码是基于与数据时,将读取电压朝增加1错误率的方向改变可为有利的。
图23示出读取条件改变及组合式错误校验与校正操作的示例性实施例。图23示出用于如参照图15所述读出第一位BT1的读取电压。如果基于多个读取数据、通过默认电压VR1及VR5进行的单独式错误校验与校正解码及组合式错误校验与校正解码均失败,则可改变默认读取电压VR1及VR5并接着执行读取操作及组合式错误校验与校正解码。可基于改变后的读取电压或校正读取电压从多个存储区读出多个校正读取数据。可通过对所述多个校正读取数据执行逻辑运算来提供校正逻辑运算数据,且可基于所述校正逻辑运算数据来执行组合式错误校验与校正解码。
在一些示例性实施例中,如参照图19A、图19B、图20A及图20B所述,当使用或数据执行组合式错误校验与校正解码时,可将读取电压改变成增加0错误率。举例来说,可基于为增加0错误率而依据默认读取电压VR1及VR5得到的第一校正电压VR1”及VR5”从所述多个存储区读出多个第一校正读取数据。可通过对所述多个第一校正读取数据执行或运算来提供第一校正逻辑运算数据。接着,可基于第一校正逻辑运算数据来执行组合式错误校验与校正解码。
在一些示例性实施例中,如参照图21A、图21B、图22A及图22B所述,当使用与数据执行组合式错误校验与校正解码时,可将读取电压改变成增加1错误率。举例来说,可基于为增加1错误率而依据默认读取电压VR1及VR5得到的第二校正电压VR1’及VR5’从所述多个存储区读出多个第二校正读取数据。可通过对所述多个第二校正读取数据执行与运算来提供第二校正逻辑运算数据,且可基于第二校正逻辑运算数据来执行组合式错误校验与校正解码。
图24示出读取条件改变及组合式错误校验与校正操作的实施例。参照图24,设定第一读取条件RCON1(S51),且基于第一读取条件RCON1来读出多个读取数据DTR11及DTR12(S52)。如参照图19A、图19B、图20A及图20B所述,第一读取条件RCON1可包括朝增加0错误率的方向改变的至少一个读取电压。
通过对多个读取数据DTR11及DTR12执行逐位或运算来提供或数据DTOR,且基于或数据来执行组合式错误校验与校正解码(S53)。
当可通过基于或数据DTOR进行的组合式错误校验与校正解码来校正错误时(S54:是),解码合格(S59)且结束。当不可基于或数据DTOR来校正错误时(S54:否),解码最终失败(S60)且结束。
此外,设定第二读取条件RCON2(S55),且基于第二读取条件RCON2来读出多个读取数据DTR21及DTR22(S56)。如参照图21A、图21B、图22A及图22B所述,第二读取条件RCON2可包括朝增加1错误率的方向改变的至少一个读取电压。
通过对所述多个读取数据DTR21及DTR22执行逐位与运算来提供与数据DTAND,且基于与数据来执行组合式错误校验与校正解码(S57)。
当可通过基于与数据DTAND进行的组合式错误校验与校正解码来校正错误时(S58:是),解码合格(S70)且结束。当不可基于与数据DTAND来校正错误时(S58:否),解码最终失败(S60)且结束。
图25A及图25B示出依据错误类型进行的组合式错误校验与校正解码的错误率的实例。图25A对应于当第一读取数据DTR1的退化度等于第二读取数据DTR2的退化度时的情形。图25B对应于当第一读取数据DTR1的退化度不同于第二读取数据DTR2的退化度时的情形。
在图25A及图25B中,列CL1至CL15中的每一者表示与各自情形对应的比率。“1→1”表示当1被正常地读出为1时的情形。“1→0”表示当1被错误地读出为0时的情形。“0→1”表示当0被错误地读出为1时的情形。“0→0”表示当0被正常地读出为0时的情形。列CL5表示当不执行逻辑运算时的总错误率ER1。列CL14表示当执行或运算时的总错误率ER2。列CL15表示当执行与运算时的总错误率ER3。
参照图25A,当第一读取数据DTR1的退化度等于第二读取数据DTR2的退化度时,在1错误率等于0错误率时并不存在优势(情形3)。当1错误率增加时,或运算为有利的(情形1及情形2)。当0错误率增加时,与运算为有利的(情形4及情形5)。
参照图25B,当1错误率及0错误率中的每一者是100%时,可能不存在优势(情形4)。错误的改进度可按情形3、情形2及情形1依次增加。
图26示出固态盘或固态驱动器的实施例。参照图26,固态驱动器1000包括多个非易失性存储器(NVM)装置1100及固态驱动器控制器1200。固态驱动器控制器1200通过多个通道CH1至CHi连接到非易失性存储器装置1100。固态驱动器控制器1200包括一个或多个处理器1210、缓冲存储器1220、错误校验与校正块1230、主机接口1250及非易失性存储器(NVM)接口1260。
缓冲存储器1220存储用于驱动固态驱动器控制器1200的数据。缓冲存储器1220包括各自存储数据或命令的多个存储器行(memory line)。错误校验与校正块1230计算将要在写入操作时编程的数据的错误校正码值,并在读取操作时使用错误校正码值来校正读取数据的错误。在数据恢复操作中,错误校验与校正块1230校正从非易失性存储器装置1100恢复的数据的错误。
如上所述,非易失性存储器装置1100可将相同写入数据存储在多个存储区中,且错误校验与校正块1230可基于多个读取数据的逻辑运算数据来执行组合式错误校验与校正解码以增大错误校正成功的概率。因此,根据示例性实施例的控制对非易失性存储器装置的错误校验与校正的方法及执行所述方法的存储器系统可通过基于逻辑运算数据进行组合式错误校验与校正解码来校正错误,即使所述多个读取数据中的每一者均为不可校正的也如此。因此,非易失性存储器装置的良率、可靠性及寿命可得以提高。
即使基于两个读取数据DTR1及DTR2阐述了示例性实施例,示例性实施例也可被修改成使相同写入数据处于三个或更多个存储区中,且因此,可对三个或更多个读取数据执行逻辑运算以进行组合式错误校验与校正解码。在一些示例性实施例中,可对所有三个或更多个读取数据执行或运算及/或与运算以提供逻辑运算数据。在其他示例性实施例中,关于四个或更多个读取数据,可使用一些读取数据来提供或数据且可使用其他读取数据来提供与数据。
本文中所公开的实施例可应用于包括(但不限于)需要进行错误校验与校正的存储器装置在内的各种装置及系统。举例来说,各实施例可应用于例如移动电话、智能电话、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portablemultimedia player,PMP)、数字照相机、摄录像机、个人计算机(personal computer,PC)、服务器计算机、工作站、膝上型计算机、数字电视机(TV)、机顶盒、便携式游戏机、导航系统、以及其他电子产品及系统等的系统。
本文中所述的方法、过程及/或操作可通过将要由计算机、处理器、控制器、或其他信号处理装置执行的代码或指令来执行。所述计算机、处理器、控制器、或其他信号处理装置可为本文中所述的那些元件或为除本文所述元件以外的元件。由于详细阐述了形成所述方法(或计算机、处理器、控制器、或其他信号处理装置的操作)的基础的算法,因此用于实现方法实施例的操作的代码或指令可将计算机、处理器、控制器、或其他信号处理装置转变成用于执行本文方法的专用处理器。
可以例如可包括硬件、软件或此两者的逻辑来实现本文所公开实施例的控制器、处理器及其他信号产生与信号处理特征。当至少部分地以硬件来实现时,控制器、处理器及其他信号产生与信号处理特征可例如是包括(但不限于)专用集成电路、现场可编程门阵列、逻辑门的组合、片上系统(system-on-chip)、微处理器、或另一类型的处理电路或控制电路在内的各种集成电路中的任一者。
当至少部分地以软件来实现时,控制器、处理器及其他信号产生与信号处理特征可例如包括用于存储将要例如由计算机、处理器、微处理器、控制器、或其他信号处理装置执行的代码或指令的存储器或其他存储装置。所述计算机、处理器、微处理器、控制器、或其他信号处理装置可为本文中所述的那些元件或为除本文所述元件以外的元件。由于详细阐述了形成方法(或计算机、处理器、微处理器、控制器、或其他信号处理装置的操作)的基础的算法,因此用于实现方法实施例的操作的代码或指令可将计算机、处理器、控制器、或其他信号处理装置转变成用于执行本文所述方法的专用处理器。
以上所述方法的各种操作可通过能够执行所述操作的任何适合的构件(例如各种硬件及/或软件组件、电路及/或模块)来执行。
软件可包括用于实现逻辑函数的一系列有序的可执行指令,且可被实施为由指令执行系统、设备或装置(例如单核心或多核心处理器或者含有处理器的系统)使用或结合所述指令执行系统、设备或装置使用的任何“处理器可读介质”。
结合本文所公开实施例所述的方法或算法及功能的方块或步骤可直接以硬件、以由处理器执行的软件模块、或以此两者的组合来实施。如果以软件来实现,则功能可作为一个或多个指令或代码存储在有形非暂时性计算机可读介质上或者通过有形非暂时性计算机可读介质来传送。软件模块可驻存在随机存取存储器(Random Access Memory,RAM)、闪存存储器、只读存储器(Read Only Memory,ROM)、电可编程只读存储器(ElectricallyProgrammable ROM,EPROM)、电可擦除可编程只读存储器(Electrically ErasableProgrammable ROM,EEPROM)、寄存器、硬盘、可装卸盘、光盘-只读存储器(CD ROM)、或此项技术中已知的任何其他形式的存储介质。
本文中已公开了示例性实施例,且虽然采用了特定用语,然而所述用语应仅以一般性及说明性意义而非出于限制目的来加以使用及解释。在一些情况中,如所属领域中的技术人员自本申请提交时起即明了的,除非另外指明,否则结合特定实施例所述的特征、特性及/或元件可单独使用,或者可与结合其他实施例所述的特征、特性及/或元件组合使用。因此,在不背离权利要求书中所述的实施例的精神及范围的条件下,可在形式及细节上作出各种改变。

Claims (19)

1.一种错误校验与校正的方法,用于控制非易失性存储器装置的错误校验与校正,其特征在于,所述错误校验与校正的方法包括:
将写入数据存储在所述非易失性存储器装置的多个存储区中,所述写入数据是通过执行错误校验与校正编码而产生;
基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码;
当所述单独式错误校验与校正解码关于所有所述多个读取数据来说均失败时,通过对所述多个读取数据执行第一逻辑运算来提供逻辑运算数据;以及
基于所述逻辑运算数据来执行组合式错误校验与校正解码,
其中,提供所述逻辑运算数据包括以下中的至少一者:
通过对所述多个读取数据执行逐位或运算来提供或数据;以及
通过对所述多个读取数据执行逐位与运算来提供与数据。
2.根据权利要求1所述的错误校验与校正的方法,其特征在于,不管所述多个读取数据的错误类型如何,均执行以下:基于所述或数据进行的所述组合式错误校验与校正解码及基于所述与数据进行的所述组合式错误校验与校正解码。
3.根据权利要求1所述的错误校验与校正的方法,其特征在于,进一步包括:
判断所述多个读取数据的错误类型是第一错误类型还是第二错误类型,所述第一错误类型指示0错误的比率大于1错误的比率,所述第二错误类型指示所述1错误的所述比率大于所述0错误的所述比率,所述0错误指示位值1被错误地读出为位值0的情形,所述1错误指示所述位值0被错误地读出为所述位值1的情形。
4.根据权利要求3所述的错误校验与校正的方法,其特征在于,基于对所述错误类型的确定来执行以下中的仅一者:基于所述或数据进行的所述组合式错误校验与校正解码及基于所述与数据进行的所述组合式错误校验与校正解码。
5.根据权利要求4所述的错误校验与校正的方法,其特征在于:
当所述错误类型被确定为所述第一错误类型时,仅执行基于所述或数据进行的所述组合式错误校验与校正解码。
6.根据权利要求4所述的错误校验与校正的方法,其特征在于:
当所述错误类型被确定为所述第二错误类型时,仅执行基于所述与数据进行的所述组合式错误校验与校正解码。
7.根据权利要求1所述的错误校验与校正的方法,其特征在于,进一步包括:
当确定通过所述组合式错误校验与校正解码进行的错误校正为失败时,将读取电压改变成校正读取电压;
基于所述校正读取电压从所述多个存储区读出多个校正读取数据;
通过对所述多个校正读取数据执行第二逻辑运算来提供校正逻辑运算数据;以及
基于所述校正逻辑运算数据来执行所述组合式错误校验与校正解码。
8.根据权利要求7所述的错误校验与校正的方法,其特征在于:
所述读取电压被改变成使得0错误的比率增加,
所述0错误指示位值1被错误地读出为位值0,且
1错误指示所述位值0被错误地读出为所述位值1。
9.根据权利要求8所述的错误校验与校正的方法,其特征在于,通过对所述多个校正读取数据执行逐位或运算来提供校正或数据,且所述组合式错误校验与校正解码是基于所述校正或数据而执行。
10.根据权利要求7所述的错误校验与校正的方法,其特征在于:
所述读取电压被改变成使得1错误的比率增加,且
所述1错误指示位值0被错误地读出为位值1。
11.根据权利要求10所述的错误校验与校正的方法,其特征在于,通过对所述多个校正读取数据执行逐位与运算来提供校正与数据,且所述组合式错误校验与校正解码是基于所述校正与数据而执行。
12.根据权利要求1所述的错误校验与校正的方法,其特征在于,将所述写入数据存储在所述多个存储区中包括将所述写入数据存储在所述非易失性存储器装置的不同页中。
13.根据权利要求1所述的错误校验与校正的方法,其特征在于,将所述写入数据存储在所述多个存储区中包括将所述写入数据存储在所述非易失性存储器装置的页的不同部分中。
14.根据权利要求1所述的错误校验与校正的方法,其特征在于,执行所述单独式错误校验与校正解码包括依次使用所述多个读取数据中的每一者来执行所述单独式错误校验与校正解码,直到错误校正成功为止。
15.一种存储器系统,其特征在于,包括:
错误校验与校正编码器,用以执行错误校验与校正编码以产生写入数据;
非易失性存储器装置,用以将所述写入数据存储在所述非易失性存储器装置的多个存储区中;以及
错误校验与校正解码器,用以:基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码;当所述单独式错误校验与校正解码失败时,通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据;以及基于所述逻辑运算数据来执行组合式错误校验与校正解码,
其中,提供所述逻辑运算数据包括以下中的至少一者:
通过对所述多个读取数据执行逐位或运算来提供或数据;以及
通过对所述多个读取数据执行逐位与运算来提供与数据。
16.根据权利要求15所述的存储器系统,其特征在于,所述错误校验与校正解码器包括:
存储区域,包括用以存储所述多个读取数据的多个缓冲器;
逻辑算子,用以对所述多个读取数据执行所述逻辑运算以提供所述逻辑运算数据;
选择器,用以选择并输出所述多个读取数据及所述逻辑运算数据中的一者;以及
错误校验与校正解码器,用以执行所述单独式错误校验与校正解码或所述组合式错误校验与校正解码。
17.根据权利要求16所述的存储器系统,其特征在于,所述逻辑算子包括以下中的至少一者:
或算子,用以通过对所述多个读取数据执行逐位或运算来提供或数据;以及
与算子,用以通过对所述多个读取数据执行逐位与运算来提供与数据。
18.根据权利要求17所述的存储器系统,其特征在于,所述错误校验与校正解码器判断所述多个读取数据的错误类型是第一错误类型还是第二错误类型,所述第一错误类型指示0错误的比率大于1错误的比率,所述第二错误类型指示所述1错误的所述比率大于所述0错误的所述比率,所述0错误指示位值1被错误地读出为位值0的情形,所述1错误指示所述位值0被错误地读出为所述位值1的情形,且所述错误校验与校正解码器基于对所述错误类型的确定来执行以下中的仅一者:基于所述或数据进行的所述组合式错误校验与校正解码及基于所述与数据进行的所述组合式错误校验与校正解码。
19.一种包括代码的非暂时性计算机可读介质,所述代码在由处理器执行时使所述处理器控制对非易失性存储器装置的错误校验与校正,其特征在于,所述非暂时性计算机可读介质包括:
用以将写入数据存储在所述非易失性存储器装置的多个存储区中的代码,所述写入数据是通过执行错误校验与校正编码而产生;
用以基于从所述多个存储区读出的多个读取数据中的每一者来执行单独式错误校验与校正解码的代码;
用以当所述单独式错误校验与校正解码关于所有所述多个读取数据来说均失败时通过对所述多个读取数据执行逻辑运算来提供逻辑运算数据的代码;以及
用以基于所述逻辑运算数据来执行组合式错误校验与校正解码的代码其中,提供所述逻辑运算数据包括以下中的至少一者:
通过对所述多个读取数据执行逐位或运算来提供或数据;以及
通过对所述多个读取数据执行逐位与运算来提供与数据。
CN201810691199.5A 2017-07-19 2018-06-28 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法 Active CN109285582B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0091656 2017-07-19
KR1020170091656A KR102326659B1 (ko) 2017-07-19 2017-07-19 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템

Publications (2)

Publication Number Publication Date
CN109285582A CN109285582A (zh) 2019-01-29
CN109285582B true CN109285582B (zh) 2023-11-07

Family

ID=65019048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810691199.5A Active CN109285582B (zh) 2017-07-19 2018-06-28 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法

Country Status (3)

Country Link
US (1) US10635532B2 (zh)
KR (1) KR102326659B1 (zh)
CN (1) CN109285582B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747614B2 (en) 2018-07-23 2020-08-18 Micron Technology, Inc. Hybrid iterative error correcting and redundancy decoding operations for memory sub-systems
CN110136769B (zh) * 2019-04-16 2020-11-24 珠海市杰理科技股份有限公司 Otp寄存器数据修正方法、装置、计算机设备和存储介质
CN111984458B (zh) * 2019-05-23 2023-07-07 建兴储存科技(广州)有限公司 使用预测方程式的固态储存装置
CN110277131B (zh) * 2019-05-30 2021-03-23 百富计算机技术(深圳)有限公司 基于nand flash存储器的校验方法、终端设备及存储介质
KR20210092986A (ko) * 2020-01-17 2021-07-27 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 스토리지 시스템 및 스토리지 컨트롤러의 동작 방법
JP7018089B2 (ja) * 2020-04-02 2022-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
CN113517018B (zh) * 2020-04-10 2024-04-12 华邦电子股份有限公司 存储器装置的测试方法
CN111755052A (zh) * 2020-07-30 2020-10-09 西安紫光国芯半导体有限公司 非易失性存储器、非易失性存储器系统及读取和写入方法
KR102404257B1 (ko) 2020-12-23 2022-06-02 청주대학교 산학협력단 에러보정코드를 이용한 오류보정 기능을 가지는 비동기용 대용량 메모리 모듈 및 에러보정코드를 이용한 비동기용 대용량 메모리 모듈의 오류보정방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972824B1 (en) * 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9563502B1 (en) * 2013-12-20 2017-02-07 Seagate Technology Llc Read retry operations with read reference voltages ranked for different page populations of a memory
CN106910527A (zh) * 2015-12-22 2017-06-30 爱思开海力士有限公司 存储器系统的操作方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4457019B2 (ja) 2005-01-05 2010-04-28 富士通株式会社 情報処理システム及び一次ストレージ装置
KR100609540B1 (ko) 2005-03-18 2006-08-08 주식회사 하이닉스반도체 불량 셀 처리 회로를 포함하는 불휘발성 강유전체 메모리장치 및 제어 방법
KR100935889B1 (ko) 2007-05-29 2010-01-07 삼성전자주식회사 플래시 메모리 장치에서의 e - fuse 데이터 저장 방법
US20090055906A1 (en) * 2007-08-20 2009-02-26 Infineon Technologies Ag Method and apparatus for embedded memory security
US8291181B2 (en) 2008-10-28 2012-10-16 Micron Technology, Inc. Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8560931B2 (en) * 2011-06-17 2013-10-15 Texas Instruments Incorporated Low power retention random access memory with error correction on wake-up
JP5644795B2 (ja) 2012-03-12 2014-12-24 日本電気株式会社 ストレージ装置、データ復旧方法およびプログラム
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US9280431B2 (en) 2013-04-17 2016-03-08 Globalfoundries Inc. Prioritizing backups on a disk level within enterprise storage
KR20150084244A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9396068B2 (en) 2014-04-17 2016-07-19 International Business Machines Corporation Adaptive rebuild scheduling scheme
KR102177421B1 (ko) * 2014-10-15 2020-11-11 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러
US10067825B2 (en) * 2015-09-14 2018-09-04 Samsung Electronics Co., Ltd. Memory device and method of controlling ECC operation in the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972824B1 (en) * 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9563502B1 (en) * 2013-12-20 2017-02-07 Seagate Technology Llc Read retry operations with read reference voltages ranked for different page populations of a memory
CN106910527A (zh) * 2015-12-22 2017-06-30 爱思开海力士有限公司 存储器系统的操作方法

Also Published As

Publication number Publication date
KR20190009630A (ko) 2019-01-29
US20190026181A1 (en) 2019-01-24
US10635532B2 (en) 2020-04-28
KR102326659B1 (ko) 2021-11-16
CN109285582A (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN109285582B (zh) 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法
US9401214B2 (en) Three-dimensional memory device and operating method of a storage device including the same
US8830743B2 (en) Method of operating memory controller, memory controller, memory device and memory system
US10496474B2 (en) Semiconductor storage device and memory system having the same
US9093154B2 (en) Method, memory controller and system for reading data stored in flash memory
US20080137415A1 (en) Multi-Bit Flash Memory Device and Program Method Thereof
US20130215678A1 (en) Method, Memory Controller and System for Reading Data Stored in Flash Memory
US20120151301A1 (en) Semiconductor memory device
KR101731576B1 (ko) 반도체 기억장치 및 nand 플래시 메모리의 프로그램 방법
KR102507342B1 (ko) 페이지 버퍼를 포함하는 메모리 장치 및 페이지 버퍼 배치 방법
CN107871515B (zh) 半导体存储器装置及其操作方法
US10725863B2 (en) Memory system and method for operating the same
US20140129903A1 (en) Method of operating memory device
US10395753B2 (en) Semiconductor memory device and programming method thereof
KR20100055906A (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
JP2008108297A (ja) 不揮発性半導体記憶装置
CN109215713B (zh) 存储器系统和操作半导体存储器装置的方法
US20170228299A1 (en) Data Recovery in Three Dimensional Non-Volatile Memory Array After Word Line Short
JP6115740B1 (ja) 半導体記憶装置
CN109559777B (zh) 非易失性存储装置及其操作方法
US9098391B2 (en) Memory system and method of operating memory system using reconstructed data
US11797381B2 (en) Storage controller, storage system and method of operating the same
CN112037827A (zh) 半导体存储器装置、其操作方法及存储器系统
US20240103968A1 (en) Memory system and control method
US20210223990A1 (en) Semiconductor memory device, controller, and storage device having semiconductor memory device and controller

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