[0002] 本申请要求于2018年8月20日提交的申请号为10-2018-0096779的韩国
专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
[0003] 本
发明的各种
实施例涉及一种解码器、解码器的操作方法以及包括该解码器的存储器系统。
背景技术
[0004] 通常,将存储器装置分成诸如动态
随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,以及诸如以下的
非易失性存储器装置:
只读存储器(ROM)、掩膜式ROM
(MROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、
铁电RAM(FRAM)、
相变RAM(PRAM)、
磁性RAM(MRAM)、
电阻式RAM(RRAM)和闪速存储器。
[0005] 易失性存储器装置在供电中断时,丢失所存储的数据,而非易失性存储器装置即使在供电中断时也保留所存储的数据。非易失性闪速存储器装置由于其高编程速度、低功
耗和
大数据存储容量而被广泛用作
计算机系统中的存储介质。
[0006] 在非易失性存储器装置,特别是在闪速存储器装置中,每个存储器单元的数据状态取决于存储器单元可以编程的位的数量。每个存储1位数据的存储器单元称为单个位单
元或
单层单元(SLC)。每个存储2位数据的存储器单元称为多个位单元、多层单元(MLC)或多状态单元。每个存储3位数据的存储器单元称为三层单元(TLC)。与使用SLC相比,采用MLC和TLC有利于实现更高的集成度。然而,随着编程在每个存储器单元中的位的数量增加,可靠性降低且读取失败率增加。
[0007] 例如,当待在存储器单元中编程k个位时,在任意给定时间在存储器单元中形成2k个
阈值电压中的一个。由于存储器单元的电特性之间的微小差异,针对相同数据编程的存
储器单元的阈值电压形成阈值电压分布。阈值电压分布分别对应于与k位信息相对应的2k
个数据值。
[0008] 然而,适用于各种阈值电压分布的电压窗口是有限的。因此,随着k的值增加,连续阈值电压分布之间的距离减小且相邻阈值电压分布可能重叠的可能性也增加。当两个相邻的阈值电压分布重叠时,读取数据可包括错误位。
[0009] 图1是示出三层单元(TLC)非易失性存储器装置的编程状态和擦除状态的阈值电压分布。
[0010] 图2是示出三层单元(TLC)非易失性存储器装置的由于特性劣化而导致的编程状态和擦除状态的阈值电压分布。
[0011] 在能够在单个存储器单元中存储3位数据的TLC非易失性存储器装置,例如TLC闪3
速存储器装置中,存储器单元可具有2个阈值电压分布中的一个。
[0012] 由于存储器单元之间的特性差异,针对相同数据编程的存储器单元的阈值电压形成阈值电压分布。如图1所示,在TLC非易失性存储器装置中,对应与包括7个编程状态“P1”至“P7”和擦除状态“E”的数据状态来形成阈值电压分布。图1示出了阈值电压分布未重叠并且在阈值电压分布之间具有足够的读取电压余量的理想情况。
[0013] 参照图2的闪速存储器示例,存储器单元可能经历在浮置栅极或隧道
氧化膜处捕获的
电子随时间放电的电荷损失。当隧道氧化膜由于
迭代编程和擦除操作而劣化时,这种
电荷损失可能
加速。电荷损失可导致存储器单元的阈值电压的降低。例如,如图2中所示,阈值电压分布可由于电荷损失而向左移动。
[0014] 此外,编程干扰、擦除干扰和/或反向模式依赖(back pattern dependency)可能导致阈值电压的增加。如图2中所示,当存储器单元的特性恶化时,相邻的阈值电压分布可能重叠。
[0015] 一旦相邻的阈值电压分布重叠,当将特定的读取电压施加到所选择的字线时,读取数据可包括大量的错误。例如,当根据施加到所选择的字线的读取电压Vread3,存储器单元的感测状态是接通时,存储器单元被确定成具有第二编程状态“P2”。当根据施加到所选择的字线的读取电压Vread3,存储器单元的感测状态是断开时,存储器单元被确定成具有
第三编程状态“P3”。然而,当相邻的阈值电压分布重叠时,具有第三编程状态“P3”的存储器单元可能被错误地确定成具有第二编程状态“P2”。简而言之,当如图2中所示,相邻的阈值电压分布重叠时,读取数据可能包括大量错误。
[0016] 因此,需要一种可靠且快速地读取存储在存储器装置的存储器单元中,特别是存储在高度集成的存储器装置的多层存储器单元中的数据的方案。
发明内容
[0017] 本发明的各种实施例涉及一种
控制器、存储器系统以及其操作方法,该方法能够可靠并迅速地读取存储在诸如高度集成的存储器装置的多层存储器单元的存储器装置的
存储器单元中的数据。
[0018] 根据本发明的实施例,一种基于预定的数据
块来执行解码操作的解码器的操作方法,操作可包括:对目标数据块执行第一子解码操作;当第一子解码操作失败时,对与目标数据块相对应的候选数据块和芯片猎杀块执行第二子解码操作;当存在第二子解码操作失
败的一个或多个数据块时,基于第二子解码操作成功的数据块,即成功数据块的局部变量
节点来执行第三子解码操作,以确定全局校验节点;根据全局校验节点执行第四子解码操
作,以推断并更新目标数据块的局部变量节点和第二子解码操作失败的数据块,即失败数
据块的局部变量节点;并且基于更新的局部变量节点的分量,来以设置的次数执行重复操
作,重复操作将第一子解码操作至第四子解码操作重复一次。
[0019] 根据本发明的实施例,一种基于预定的数据块执行解码操作的解码器,可包括:第一解码器,适用于对目标数据块执行第一子解码操作,并且当第一子解码操作失败时,对与目标数据块相对应的候选数据块和芯片猎杀块执行第二子解码操作;全局校验节点组件,适用于当存在第二子解码操作失败的一个或多个数据块时,基于第二子解码操作成功的数
据块,即成功数据块的局部变量节点来执行第三子解码操作,以确定全局校验节点;以及数据组合器,适用于根据全局校验节点执行第四子解码操作,以推断并更新目标数据块的局
部变量节点和第二子解码失败的数据块,即失败数据块的局部变量节点,其中,解码器基于更新的局部变量节点的分量,来以设置的次数执行重复操作,重复操作将第一子解码操作
至第四子解码操作重复一次。
[0020] 根据本发明的实施例,一种存储器系统可包括:存储器装置,适用于存储数据;以及控制器,适用于从存储器装置读取数据并对读取的数据解码,其中,控制器包括:第一解码器,适用于对目标数据块执行第一子解码操作,并且当第一子解码操作失败时,对与目标数据块相对应的候选数据块和芯片猎杀块执行第二子解码操作;全局校验节点组件,适用于当存在第二子解码操作失败的一个或多个数据块时,基于第二子解码操作成功的数据
块,即成功数据块的局部变量节点来执行第三子解码操作,以确定全局校验节点;数据组合器,适用于根据全局校验节点执行第四子解码操作,以推断并更新目标数据块的局部变量
节点和第二子解码操作失败的数据块,即失败数据块的局部变量节点,其中,控制器基于更新的局部变量节点的分量,来以设置的次数执行重复操作,重复操作将第一子解码操作至
第四子解码操作重复一次。
[0021] 根据本公开的实施例,一种解码器可包括:第一解码器,适用于:对目标数据块执行第一子解码操作,并且当第一子解码操作失败时,对与目标数据块相对应的候选数据块和芯片猎杀块执行第二子解码操作;以及第二解码器,适用于:当在候选数据块和芯片猎杀块之中存在第二子解码操作失败的至少一个数据块,即失败数据块时,基于包括第二子解
码操作成功的数据块的数据块来执行第三子解码操作,以生成全局校验节点,并且基于全
局校验节点的信息对目标数据块和失败数据块执行第四子解码操作,以更新目标数据块的
局部变量节点以用于第一子解码操作。
附图说明
[0022] 通过以下参照下文标识的附图的详细描述,本发明的以上和其他特征和优点对于本发明所属领域的技术人员将变得更加显而易见。
[0023] 图1是示出了说明三层单元(TLC)非易失性存储器装置的编程状态和擦除状态的阈值电压分布的示图。
[0024] 图2是示出了说明三层单元(TLC)非易失性存储器装置的由于特性恶化而导致的编程状态和擦除状态的阈值电压分布的示图。
[0025] 图3是示出了根据本发明的实施例的存储器系统的
框图。
[0026] 图4A是示出了图3的存储器系统的详细框图。
[0027] 图4B是示出了图4A的存储器系统中采用的存储块的示例性配置的
电路图。
[0028] 图5是示出根据本发明的实施例的诸如图4A的存储器系统中所采用的控制器的控制器的操作的
流程图。
[0029] 图6A是示出低
密度奇偶校验(LDPC)解码操作的Tanner图。
[0030] 图6B是示出LDPC码的示意图。
[0031] 图6C是示出根据LDPC解码操作的校正子(syndrome)检查过程的示意图。
[0032] 图7A是示出根据本公开的实施例的2位
软判决读取操作的示图。
[0033] 图7B是示出根据本公开的实施例的3位软判决读取操作的示图。
[0034] 图8A是示出根据本公开的实施例的
编码器的结构的框图。
[0035] 图8B是示出根据本公开的实施例的编码方法的示图。
[0036] 图8C是示出根据本公开的实施例的编码器的操作的流程图。
[0037] 图9A至图9C是示出根据本公开的实施例的用于存储第二码字的方法的示图。
[0038] 图10是示意性示出根据本公开的实施例的解码器的结构的示图。
[0039] 图11是示出根据本公开的实施例的第二解码器的结构的示图。
[0040] 图12是示出根据实施例的全局解码的结构的示图。
[0041] 图13A是示出根据本公开的实施例的解码处理的流程图。
[0042] 图13B至图13E是示出根据本公开的实施例的解码处理的示例的示图。
具体实施方式
[0043] 下面将参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实现,并且不应当被解释为限制于本文中阐述的实施例。相反,提供这些实施例是为了使本公开彻底且完整,并将本发明充分传达给本领域的技术人员。通过本发明的
权利要求将理解本发
明的范围。
[0044] 应当注意到的是,附图不一定按比例绘制,并且在部分情况下,可以夸大比例以更清楚地示出实施例的各种元件。
[0045] 而且,在下面的描述中,阐述了许多具体细节以便提供对本发明的透彻理解。可以在没有这些具体细节的部分或全部的情况下实践本发明。在其它情况下,没有详细描述公知的
进程结构和/或进程,以免不必要地模糊本发明。
[0046] 还应当注意到的是,在一些情况下,对于相关领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的元件(也称为特征)可以单独地使用或与另一个实施例的其他元件组合使用。此外,在整个
说明书中,对“实施例”、“另一实施例”等的引用不一定仅涉及一个实施例,并且对任意这样的短语的不同引用不一定涉及相同的实施
例。
[0047] 现在将参照附图详细描述本发明的各种实施例。
[0048] 图3是示出根据本发明的实施例的存储器系统10的框图。
[0049] 图4A是示出图3的存储器系统10的详细框图。
[0050] 图4B是示出存储块211的示例性实施例的电路图。
[0051] 图5是示出根据本发明的实施例的例如在存储器系统10中采用的控制器100的控制器的操作的流程图。
[0052] 参照图3至图5,存储器系统10可包括控制器100和存储器装置200。控制器100可以可操作地联接到存储器装置200。
[0053] 存储器装置200可在控制器100的控制下执行擦除、编程和读取操作中的一个或多个。存储器装置200可通过一个或多个输入/输出线从控制器100接收命令CMD、地址ADDR和
数据DATA。存储器装置200可通过电源线被提供有电
力PWR并且通过控制线从控制器100接
收控制
信号CTRL。
控制信号可包括命令
锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号和读取使能(RE)信号。
[0054] 控制器100可控制存储器装置200的全部操作。控制器100可包括用于校正错误位的错误校正码(ECC)组件130。ECC组件(下文中,ECC)130可包括编码器131和解码器133。ECC
130可被配置为
硬件、
软件和
固件的组合。
[0055] 编码器131可对待编程到存储器装置200中的数据执行错误校正编码操作,以输出被添加奇偶校验位的编码数据。具有奇偶校验位的编码数据可以存储在存储器装置200中。
[0056] 解码器133可对从存储器装置200读取的数据执行错误校正解码操作。解码器133可确定错误校正解码操作是否成功,并且可基于确定结果输出指令信号。解码器133可使用通过编码操作(例如,低密度奇偶校验(LDPC)编码操作)生成的奇偶校验位来校正数据的错
误位。
[0057] 当错误位的数量超出ECC 130的错误校正能力时,ECC 130可不校正错误位。在这种情况下,ECC 130可生成错误校正失败信号。
[0058] ECC 130可通过诸如以下的编码调制来校正错误:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem(BCH))码、turbo码、里德-所罗
门(Reed-Solomon,(RS))码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和分组编码调制(BCM)。ECC 130可包括用于错误校正的任意和所有电路、系统或装置。
[0059] 控制器100和存储器装置200可集成在单个
半导体装置中。例如,控制器100和存储器装置200可集成在诸如固态
驱动器(SSD)的单个半导体装置中。SSD可将数据存储在存储
器装置200中。当在SSD中使用存储器系统10时,可以显著提高可联接到存储器系统10的主
机(未示出)的操作速度。
[0060] 控制器100和存储器装置200可集成在单个半导体装置中,以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微尺寸版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)
和/或通用闪存(UFS)。
[0061] 又例如,存储器系统10可设置为在诸如以下电子装置中包括的各个元件中的一个:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机,个人数字助手(PDA)、便携式计算机、网络平板PC、无线电话、
移动电话、智能电话、电子书阅读器,便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、
数码相机、
数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录机、数字图片播放器、数字视频记录器、数字视频播放器、
数据中心的存储装置、能够在无线环境中接收和发送信息的装置、
家庭网络的电子装置中的一个、
计算机网络的电子装置中的一个、远程信息处理网络的电子装置中的一个、
频率识别(RFID)装置或计算系统的元件装置。
[0062] 参照图4A,除ECC 130之外,控制器100可包括存储装置110、中央处理单元(CPU)120、主机
接口(I/F)140、存储器接口150和
系统总线160。存储装置110可操作为CPU 120的工作存储器。
[0063] 主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机通信:通用
串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
[0064] ECC 130可检测并校正包括在从存储器装置200读取的数据中的错误位。
[0065] 存储器接口150可与存储器装置200接口连接。CPU120可执行各种控制操作。
[0066] 根据实施例,ECC 130可针对待编程到存储器装置200的原始数据执行LDPC编码。ECC 130可结合读取操作执行对编程到存储器装置200的编码数据(例如,码字)的LDPC解
码。ECC 130可恢复码字以重新创造原始数据。
[0067] 存储器装置200可包括存储器单元阵列210、控制电路220、电压供应电路230、电压传输电路240、读取和写入(读取/写入)电路250以及列选择电路260。
[0068] 存储器单元阵列210可包括多个存储块211。包括用户数据的数据可存储在存储块211中。
[0069] 参照图4B,存储块211中的每一个可包括分别电联接到多个相应位线BL0至BLm-1的多个单元串221。单元串221中的每一个可包括一个或多个漏极选择晶体管DST和一个或
多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可
串联联接在漏极选择晶
体管DST和源极选择晶体管SST之间。优选地,存储器单元MC0至MCn-1中的每一个可由在每
个单元中存储多个位的数据(或信息)的多层单元(MLC)形成。
[0070] 图4B示例性示出了包括多个NAND型闪速存储器单元的存储块211。然而,存储器装置200的存储块211不限于这种方式。例如,存储块211可包括多个NOR型闪速存储器单元,或者多个组合了两种或更多种类型的存储器单元的混合型闪速存储器单元。在采用NAND型闪
速存储器的实施例中,控制器可被嵌入在存储器芯片内部。可将存储器装置的操作特性应
用于其中电荷存储层由绝缘层形成的电荷捕获闪存(CTF),以及其中电荷存储层由导电浮
栅形成的闪速存储器装置。
[0071] 返回参照图4A,控制电路220可控制存储器装置200的与编程、擦除和读取操作有关的全部操作。
[0072] 电压供应电路230可根据操作模式的需要来将例如编程电压、读取电压和通过电压的字线电压提供至各个字线。此外,电压供应电路230可提供待供给到例如形成在存储器单元中的阱区的主体(bulk)的电压。可在控制电路220的控制下执行电压供应电路230的电
压生成操作。
[0073] 电压供应电路230可生成与存储器单元的各种阈值电压分布对应的多个可变的读取电压,用于生成多个读取数据。
[0074] 电压传输电路240可在控制电路220的控制下选择存储块211中的一个或存储器单元阵列210的扇区,并且可选择被选择存储块的字线中的一个。电压传输电路240可在控制
电路220的控制下将从电压供应电路230生成的字线电压提供至被选择字线或未选择字线。
例如,电压传输电路240可将多个读取电压中的一个传输至被选择存储块中的被选择字线,并且将通过电压传输至被选择存储块中的未选择字线。
[0075] 读取/写入电路250可由控制电路220控制并可根据操作模式作为读出
放大器或写入驱动器操作。例如,在验证/正常读取操作期间,读取/写入电路250可作为读出放大器操作,以用于从存储器单元阵列210读取数据。在正常读取操作期间,列选择电路260可基于列地址信息将从读取/写入电路250中读取的数据输出到外部,例如输出到控制器100。在另一方面,在验证读取操作期间,读取数据可被提供至包括在存储器装置200中的通过/失败验
证电路(未示出),并且可被用于确定存储器单元的编程操作是否成功。
[0076] 在编程操作期间,读取/写入电路250可作为写入驱动器操作,以用于根据待被存储在存储器单元阵列210中的数据来驱动位线。在编程操作期间,读取/写入电路250可从
缓冲器(未示出)接收待被写入在存储器单元阵列210的数据,并且可根据输入数据驱动位线。
因此,读取/写入电路250可包括分别与列(或位线)或列对(或位线对)对应的多个页面缓冲
器(PB)251。在页面缓冲器251的每一个中可包括多个锁存器。
[0077] 参照图4A和图5,控制器100的操作可包括第一LDPC解码步骤S510和第二LDPC解码步骤S530。
[0078] 第一LDPC解码步骤S510可包括:对根据
硬判决读取电压VHD从存储器装置200的存储器单元读取的数据执行硬判决LDPC解码操作。第一LDPC解码步骤S510可包括步骤S511、
S513和S515。来自存储器单元的读取数据可以是存储在存储器单元中的n位数据之中的第i
数据。变量“n”和“i”可以是大于1的整数。
[0079] 第二LDPC解码步骤S530可包括:当在第一LDPC解码步骤S510中对第i数据的硬判决LDPC解码最终失败时,对第i数据执行软判决LDPC解码操作。第二LDPC解码步骤S530可包括步骤S531、S533和S535。
[0080] 在硬判决读取步骤的步骤S511,控制器100可根据硬判决读取电压VHD从存储器装置200读取硬判决读取数据或码字,该硬判决读取电压VHD是可以预定的电压。控制器100可将读取命令和地址提供至存储器装置200。存储器装置200可响应于读取命令和地址,根据
硬判决读取电压VHD从存储器装置200中读取硬判决读取数据,并且将硬判决读取数据提供
至控制器100。
[0081] 在步骤S513,ECC 130可执行作为第一LDPC解码操作的硬判决LDPC解码操作。ECC 130可通过使用错误校正码来对从存储器装置200读取的硬判决读取数据执行硬判决LDPC
解码操作。
[0082] 在步骤S515,ECC 130可确定硬判决LDPC解码操作成功还是失败。也就是说,在步骤S515,可确定是否校正了硬判决读取数据的错误。例如,ECC 130可以通过使用在步骤
S513中被执行硬判决LDPC解码的硬判决读取数据和奇偶校验矩阵,来确定是否校正了硬判
决读取数据的错误。例如,当奇偶校验矩阵和硬判决读取数据的乘积结果是零向量(‘0’)时,可以确定硬判决读取数据被校正。另一方面,当奇偶校验矩阵和硬判决读取数据的乘积结果不是零向量(‘0’)时,可以确定硬判决读取数据未被校正。
[0083] 当根据步骤S515的确定结果,确定步骤S513的硬判决LDPC解码操作成功(S515,是)时,获得读取成功(步骤S520)且ECC 130可结束错误校正解码操作。在步骤S513中被执
行硬判决LDPC解码操作的硬判决读取数据现在可以是错误校正后的数据,并且可提供至外
部或在控制器100中使用。
[0084] 当根据步骤S515的确定结果,确定步骤S513的硬判决LDPC解码操作失败(S515,否)时,ECC 130可执行第二LDPC解码步骤S530。
[0085] 在软判决读取步骤的步骤S531,ECC 130可根据软判决读取电压VSD从存储器装置200的存储器单元读取数据。此外,ECC 130可通过确定存储器单元的状态来计算在步骤
S511读取的硬判决读取数据的软判决读取数据。
[0086] 在步骤S533,可执行软判决LDPC解码操作来作为第二LDPC解码操作。可以基于软判决读取数据来执行软判决LDPC解码操作。
[0087] 在步骤S535,可以确定软判决LDPC解码操作是成功还是失败。也就是说,在步骤S535,可确定在步骤S533中被执行软判决LDPC解码操作的软判决读取数据的错误是否被校
正。例如,控制器100可通过使用软判决读取数据和奇偶校验矩阵来确定软判决读取数据的错误是否被校正。例如,当奇偶校验矩阵和软判决读取数据的乘积结果是零向量(‘0’)时,可以确定软判决读取数据被校正。另一方面,当奇偶校验矩阵和软判决读取数据的乘积结
果不是零向量(‘0’)时,可以确定被执行软判决LDPC解码操作的软判决读取数据未被校正。
[0088] 在第一LDPC解码步骤S510期间的奇偶校验矩阵和硬判决读取数据的乘积过程可以与在第二LDPC解码步骤S530期间的奇偶校验矩阵和软判决读取数据的乘积过程相同。
[0089] 当根据步骤S535的确定结果,确定步骤S533的软判决LDPC解码成功(S535,是)时,在步骤S520可确定在步骤S531的根据软判决读取电压VSD的读取操作成功,并且可结束错误校正解码操作。在步骤S533中的被执行软判决LDPC解码操作的软判决读取数据现在可以是错误校正后的数据,并且可提供至外部或在控制器100中使用。
[0090] 当根据步骤S535的确定结果,确定步骤S533的软判决LDPC解码操作失败(S535,否)时,在步骤S540可确定步骤S531的进程最终失败并且可结束错误校正解码操作。
[0091] 图6A是示出了低密度奇偶校验(LDPC)解码操作的Tanner图。
[0092] 图6B是示出LDPC码的示意图。
[0093] 图6C是示出根据LDPC解码操作的校正子检查过程的示意图。
[0094] 错误校正码(ECC)通常用于存储系统中。存储装置中发生的各种物理现象导致了破坏所存储信息的噪声效应。错误校正编码方案可用于保护所存储的信息免于所产生的错
误。这是通过在将信息存储在存储器装置之前对信息进行编码来完成。编码处理通过向信
息添加冗余来将信息位序列变换成码字。然后,可以使用该冗余以便通过解码处理来恢复
来自可能被破坏的码字的信息。
[0095] 在迭代编码方案中,代码被构造为几个简单组成代码的串联,并且基于迭代解码
算法且通过在接收简单组成代码的解码器之间交换信息来对代码进行解码。通常,可使用
描述了组成代码之间的互连的二分图或Tanner图来定义代码。在这种情况下,解码操作可
被视为遍及(passing over)整个图形边缘的迭代消息。
[0096] 迭代码可包括低密度奇偶校验(LDPC)码。LDPC码是由稀疏奇偶校验矩阵H定义的线性二进制块码。
[0097] 参照图6A,LDPC码具有每行和每列中的逻辑高电平(即,“1”)的数量非常小的奇偶校验矩阵。LDPC码的结构可以由Tanner图限定,该Tanner图包括校验节点610、变量节点620和将校验节点610连接到变量节点620的边缘615。在校验节点处理之后,从校验节点610中的一个输送到变量节点620中的一个的值变为校验节点消息615A。在变量节点处理之后,从变量节点620中的一个输送到校验节点610中的一个的值变为变量节点消息615B。
[0098] 变量节点620中的每一个的初始值可以是硬判决读取数据和软判决读取数据中的一个。
[0099] 可通过基于“和积”算法的迭代解码来执行LDPC码的解码处理。可基于诸如“最小和”算法的次优的消息传递算法来提供解码方法,该“最小和”算法为和积算法的简化版本。
[0100] 参照图6B,LDPC码的Tanner图可包括:表示LDPC码的奇偶校验方程的5个校验节点610(C1至C5)、表示代码符号的10个变量节点620(V1至V10)、以及表示校验节点610和变量
节点620之间的关系的边缘615。边缘615将校验节点610中的每一个连接到与由校验节点
610表示的奇偶校验方程中所包括的代码符号对应的变量节点620中的每一个。图6B示例性
地示出了联接到校验节点610中的每一个的变量节点620的数量固定为4,并且联接到变量
节点620中的每一个的校验节点610的数量固定为2的规则LDPC码。
[0101] 图6C示出了与Tanner图对应的奇偶校验矩阵H。奇偶校验矩阵H类似于奇偶校验方程的图形表达。奇偶校验矩阵H在每列中具有相同数量的逻辑高值(即,1)。也就是说,奇偶校验矩阵H的每列具有与变量节点620和校验节点610中的每一个之间的连接对应的两个1。
奇偶校验矩阵H在每行中具有相同数量的1,也就是说,每行具有与校验节点610和变量节点
620中的每一个之间的连接对应的四个1。
[0102] 通过对Tanner图中的变量节点620和校验节点610之间交换在每个节点中生成和更新的消息的过程进行迭代,来执行对LDPC码解码的进程。在这种情况下,每个节点基于和积算法或类似的次优算法更新消息。
[0103] 例如,对码字的LDPC解码操作可包括多个迭代,初始变量节点更新之后,每个迭代包括校验节点更新、变量节点更新和校正子校查。在第一次迭代之后,当校正子检查的结果满足预定或设置条件时,LDPC解码操作可结束。当校正子检查的结果不满足条件时,可以执行另外的迭代。另外的迭代也可包括变量节点更新、校验节点更新和校正子检查。迭代的次数可限于可被预定的最大迭代计数。当直到迭代的次数达到最大迭代次数时,校正子检查的结果也不满足条件时,可确定对码字的LDPC解码操作已经失败。
[0104] 参照图6C,校正子检查是识别奇偶校验矩阵H和通过变量节点620的更新获得的矢量“v”的乘积结果“Hvt”是否满足条件的过程。当乘积结果“Hvt”变为零向量时,可评估乘积结果“Hvt”满足条件。
[0105] 图6C示出了校正子检查过程。图6C示例性地示出了作为乘积结果“Hvt”的非零向量“01100”,并且因此,图6C示出了校正子检查不满足条件并且应当执行另一次迭代。
[0106] 图7A是示出根据本公开的实施例的2位软判决读取操作的示图。图7B是示出根据本公开的实施例的3位软判决读取操作的示图。图7A和图7B的软判决读取操作可以通过图5
的操作来执行。
[0107] 参照图7A,在图5的硬判决LDPC解码步骤S510,当硬判决读取电压VHD被施加到存储器装置200的存储器单元时,根据存储器单元的接通-断开状态,硬判决数据2-1可具有1或0的值。
[0108] 在软判决LDPC解码步骤S530,ECC 130可通过软判决读取操作来计算硬判决读取数据的可靠性信息(例如,对数似然比(LLR)),该软判决读取操作对存储器单元施加多个软判决读取电压VSD1、VSD2,该多个软判决读取电压VSD1、VSD2具有基于硬判决读取电压VHD的恒定电压差。
[0109] 如图7A中所示出的,在2位软判决读取操作中,当第一判决读取电压VSD1施加到存储器单元时,根据存储器单元的接通-断开状态,软判决读取数据值2-2为“1000”。类似地,根据第二软判决读取电压VSD2,第二软判决读取数据2-3是“1110”。
[0110] 并且,ECC 130可通过对第一软判决数据值2-2和第二软判决数据值2-3执行XNOR运算来计算软判决数据2-4(例如,LLR)。软判决数据2-4可以为硬判决数据2-1增加可靠性。
[0111] 例如,当软判决数据2-4为“1”时,硬判决数据2-1可以是具有强可能性的第一状态(例如,“1”)或第二状态(例如,“0”)。另一方面,当软判决数据2-4为“0”时,硬判决数据2-1可以是具有弱可能性的第一状态(例如,“1”)或第二状态(例如,“0”)。
[0112] 参照图7B,在图5的硬判决LDPC解码步骤S510,当硬判决读取电压VHD被施加到存储器装置200的存储器单元,根据存储器单元的接通-断开状态,硬判决数据3-1可具有1或0的值。
[0113] 在软判决LDPC解码步骤S530,ECC 130可通过软判决读取操作来计算硬判决读取数据的可靠性信息(例如,LLR),该软判决读取操作对存储器单元施加多个软判决读取电压VSD1至VSD6,该多个软判决读取电压VSD1至VSD6具有基于硬判决读取电压VHD的恒定电压差。
[0114] 如图7B中所示出的,在3位软判决读取操作中,当第一软判决读取电压VSD1和第二软判决读取电压VSD2被施加到存储器单元时,可计算第一软判决读取数据值和第二软判决
读取数据值。通过对第一软判决读取数据值和第二软判决读取数据值执行异或NOR(XNOR)
运算,可将第一软判决数据3-2计算为“1001”。
[0115] 当第三软判决读取电压VSD3至第六软判决读取电压VSD6被施加到存储器单元时,可以计算第三软判决读取数据值至第六软判决读取数据值。通过对第三软判决读取数据值VSD3至第六软判决读取数据值VSD6执行异或NOR(XNOR)运算,可将第二软判决数据3-3(例如,LLR)计算为“10101”。第二软判决数据3-3可为第一软判决数据3-2分配权重(weight)。
[0116] 例如,当第二软判决数据3-3为“1”时,第一软判决数据3-2可以是具有非常强可能性的第一状态(例如,“1”)。另一方面,当第二软判决数据3-3为“0”时,第一软判决数据3-2可以是具有强可能性的第一状态(例如,“1”)。
[0117] 类似地,当第二软判决数据3-3为“1”时,第一软判决数据3-2可以是具有非常弱可能性的第二状态(例如,“0”)。另一方面,当第二软判决数据3-3为“0”时,第一软判决数据3-2可以是具有弱可能性的第二状态(例如,“1”)。也就是说,类似于图7A中所描述的,第二软判决数据3-3可以为硬判决数据3-1增加更多的可靠性。
[0118] 如图6A至6C中所示出的,控制器100可以使用解码器133而从存储器装置200读取可靠的数据。参照图6A至图6C所描述的LDPC解码方法是用于存储器装置200中包括的多个
页面中的每一个的解码技术。参照图6A至图6C所描述的LDPC解码方法可感测并校正构成大
多数存储器错误的单个位错误。然而,存储器容量和存储器密度的增加以及存储器子系统
的速度的增加显著地提高了发生多位错误的
风险。因此,需求能够处理每个页面的解码失
败的技术。下文中,该技术将被称为全局解码。由于全局解码具有校正多位错误的功能,因此可以显著地提高存储器系统的可用性。
[0119] 可以基于单位数据,例如每个块具有设置或预定大小的数据块(data chunk),来执行编码/解码。在另一实施例中,被执行编码/解码的单位数据可以是页面,在这种情况
下,基于页面来执行编码/解码。然而,这些仅是示例;本发明不限于此。
[0120] 图8A示出了根据本公开的实施例的编码器131的结构。
[0121] 参照图8A,编码器131可包括第一编码器810和第二编码器830。如参照图3所述的,编码器131可根据CPU 120的控制接收原始数据。编码器131可使用LDPC码对所接收的原始数据执行编码操作。
[0122] 第一编码器810可接收原始数据。第一编码器810可以对原始数据执行第一编码操作。如上所述,第一编码器810可基于设置的数据块对原始数据执行第一编码操作。数据块的大小可以由设计者设置。例如,数据块的大小可对应于一个物理页面的大小或一个物理
页面的部分的大小。将参照图8B详细描述第一编码操作。
[0123] 图8B是示出根据本公开的实施例的编码方法,并且更具体地,第一编码操作的示图。在实施例中,第一编码器810基于设置或预定的数据块来编码数据。此外,第一编码器
810可使用LDPC码来执行第一编码操作。
[0124] 第一编码器810可将多个数据块分组为第一编码组。数据块中的每一个可以指示从主机提供的原始数据。例如,如图8B中所示出的,第一编码器810可以将第一数据块至第三数据块分组为第一编码组。然后,第一编码器810可以对第一数据块至第三数据块执行
XOR运算。由此,第一编码器810可通过XOR运算而生成与第一编码组对应的芯片猎杀(chip-kill)块。芯片猎杀块可以指示与第一数据块至第三数据块中的每一个相对应的奇偶校验
数据块。
[0125] 返回参照图8A,第一编码器810可通过与参照图8B所描述的相同方法对原始数据执行第一编码操作。由此,第一编码器810可输出与原始数据相对应的第一码字。第一码字可包括第一编码组和与第一编码组相对应的芯片猎杀块。如图8B中所示,第一码字可包括
第一数据块至第三数据块和芯片猎杀块。第一编码器810可将第一码字提供给第二编码器
830。
[0126] 第二编码器830可使用LDPC码来执行第二编码操作,以将奇偶校验数据添加到包括在第一编码组中的数据块和芯片猎杀块中的每一个。如图8B中所示出的,第二编码器830可执行第二编码操作,以将奇偶校验数据添加到第一数据块至第三数据块和芯片猎杀块中
的每一个。由此,第二编码器830可基于第一码字生成第二码字。第二码字可包括第一码字和与包括在第一码字中的各个数据块相对应的奇偶校验数据。第二编码器830可输出第二
码字。
[0127] 图8C是示出根据本公开的实施例的编码器,例如图8A的编码器131的操作的流程图。
[0128] 参照图8C,在步骤S801,编码器131可根据CPU 120的控制接收从主机提供的原始数据。可以将所接收的原始数据输入到第一编码器810。
[0129] 在步骤S803,第一编码器810可以对原始数据执行第一编码操作。第一编码器810可以通过第一编码操作、基于设置的数据块来对原始数据进行编码。由此,第一编码器810可生成包括第一编码组和与第一编码组相对应的芯片猎杀块的第一码字。第一编码器810
可以将第一码字提供给第二编码器830。
[0130] 在步骤S805,第二编码器830可以对第一码字执行第二编码操作。与第一编码器810相似,第二编码器830也可基于设置的数据块而执行第二编码操作。此外,第二编码器
830可通过将奇偶校验数据添加到第一码字来生成第二码字。奇偶校验数据可与包括在第
一码字中的第一编码组和芯片猎杀块相对应。
[0131] 在步骤S807,第二编码器830可输出第二码字。此外,尽管未示出,但是可根据CPU 120的控制将输出的第二码字存储在存储器装置200中。然而,第二码字可根据数据块的大
小而以不同的方式存储在存储器装置200中。具体地,将参照图9A至图9C来描述用于存储第二码字的方法。
[0132] 图9A至图9C是示出根据本公开的实施例的用于存储第二码字的方法的示图。具体地,将描述根据数据块的大小来存储第二码字的方法。参照图8B,将描述用于存储第一数据块至第三数据块以及芯片猎杀块的方法。
[0133] 在图9A中,数据块中的每一个可与ECC块单位相对应。此外,在该实施例中,ECC块单位等于一个物理页面的“1/4”。然而,这仅是示例;本发明不限于此。
[0134] 在这种情况下,由于第一数据块至第三数据块以及芯片猎杀块中的每一个的大小等于一个物理页面的“1/4”,所以数据块可以分别存储在多个页面的部分中。例如,第一数据块可以存储在第一页面的部分中,第二数据块可以存储在第二页面的部分中,第三数据
块可以存储在第三页面的部分中,并且芯片猎杀块可存储在芯片猎杀页面的部分中。芯片
猎杀页面可以指仅存储芯片猎杀块的页面。第一页面至第三页面以及芯片猎杀页面是存在
于同一超级块中的不同页面。如图9A中所示出的,对第一数据块至第三数据块的XOR运算的结果等于芯片猎杀块。此外,尽管未在图中示出,但是数据块中的每一个可包括通过第二编码操作而生成的奇偶校验数据。
[0135] 图9B是基于以下假设:数据块中的每一个等于一个物理页面的大小。然而,这仅是示例;本发明不限于此。
[0136] 在这种情况下,由于第一数据块至第三数据块以及芯片猎杀块中的每一个的大小对应于一个物理页面的大小,因此,数据块可以被存储在各个页面中。例如,第一数据块可以存储在第一页面中,第二数据块可以存储在第二页面中,第三数据块可以存储在第三页
面中,并且芯片猎杀块可以存储在芯片猎杀页面中。第一页面至第三页面以及芯片猎杀页
面是存在于同一超级块中的不同页面。如图9B中所示出的,对第一数据块至第三数据块的
XOR运算的结果等于芯片猎杀块。此外,尽管未在图中示出,但是数据块中的每一个可以包括通过第二编码操作而生成的奇偶校验数据。
[0137] 图9C是基于以下假设:数据块中的每一个对应于ECC块单位,并且ECC块单位等于一个物理页面的“1/4”,类似于图9A。
[0138] 然而,可以根据与参照图9A描述的方法不同的方式,将图9C的多个数据块存储在一个页面中。例如,如图9C中所示出的,第一数据块至第三数据块以及芯片猎杀块可存储在一个物理页面中。对第一数据块至第三数据块的XOR运算的结果等于芯片猎杀块。此外,尽管未在图中示出,但是数据块中的每一个可包括通过第二编码操作而生成的奇偶校验数
据。
[0139] 将描述根据本公开的实施例的解码器133对由编码器131编码的数据(即,第二码字)进行解码的操作。
[0140] 尽管未在图中示出,但是图4A的CPU 120可基于设置的读取单位从存储器装置200加载与主机的读取
请求相对应的数据。下文中,该数据将被称为目标数据块。例如,当读取单位对应于页面的单位时,CPU 120可以基于页面来读取目标数据块。又例如,当读取单位对应于一个页面的“1/4”时,CPU 120可以基于“1/4”页面来读取目标数据块。然而,这仅是示例;本发明不限于此。CPU 120可以将加载的目标数据块输入到解码器133,以便确定目标数据块是否具有错误。
[0141] 图10是示意性示出根据本公开的实施例的解码器,例如图3的解码器133的结构。
[0142] 参照图10,解码器133可根据图4A的CPU 120的控制而接收目标数据块。如参照图8A至图9C所述,存储在存储器装置200中的数据是参照图8A所述的第二码字。
[0143] 解码器133可以使用LDPC码来执行解码操作。解码器133可以基于在图3的编码器131中使用的设置的数据块来执行解码操作。因此,当编码器131对具有与一个物理页面相
同的大小的数据块执行编码操作时,解码器133也可以对具有与一个物理页面相同的大小
的数据块执行解码操作。
[0144] 具体地,解码器133可包括第一解码器1010和第二解码器1030。第一解码器1010可以对目标数据块执行第一子解码操作。第一解码器1010可基于通过第二编码操作而生成的
奇偶校验数据来解码目标数据块。也就是说,如参照图6A至图6C所述,第一解码器1010可基于与目标数据块相对应的奇偶校验数据来执行第一子解码操作。
[0145] 当在第一子解码操作中成功时,第一解码器1010可根据CPU 120的控制而立即输出目标数据块。
[0146] 另一方面,当在第一子解码操作中失败时,第一解码器1010可根据CPU 120的控制接收存储在存储器装置150中的候选数据块和芯片猎杀块。候选数据块可以指示当执行第
一编码操作时与目标数据块构成第一编码组的多个数据块。芯片猎杀块可指示当执行第一
编码操作时从第一编码组生成的芯片猎杀块。
[0147] 第一解码器1010可以对候选数据块和芯片猎杀块执行第二子解码操作。也就是说,如参照图6A至图6C所述,第一解码器1010可基于与各个数据块相对应的奇偶校验数据
来执行第二子解码操作。
[0148] 当对候选数据块和芯片猎杀块的第二子解码操作都成功时,第一解码器1010可基于XOR运算从候选数据块和芯片猎杀块推断目标数据块。
[0149] 当对候选数据块和芯片猎杀块的第二子解码操作都失败时,第二解码器1010可以将全局校验节点的所有分量设置为“0”,如以下将描述的。
[0150] 另一方面,当对一个或多个数据块的第二子解码操作都失败时,第一解码器1010可以将目标数据块、候选数据块和芯片猎杀块提供至第二解码器1030。
[0151] 第二解码器1030可基于目标数据块、候选数据块和芯片猎杀块来执行第三子解码操作和第四子解码操作。
[0152] 将参照图11至图13E详细描述第二解码器1030的结构和操作过程。
[0153] 图11示出了根据本公开的实施例的第二解码器,例如图10的第二解码器1030的结构。
[0154] 参照图11,第二解码器1030可包括全局校验节点组件1101、数据组合器1111和解码器输入缓冲器1113。在对目标数据块的第一子解码操作失败的背景下给出下面的描述。
[0155] 全局校验节点组件1101可包括失败数据缓冲器1103、通过数据缓冲器1105、异或OR(XOR)单元1107和校验节点单元(CNU)1109。全局校验节点组件1101可基于第二子解码操
作成功的数据块(以下称为成功数据块)和第二子解码操作失败的数据块(以下称为失败数
据块)来执行第三子解码操作。
[0156] 具体地,成功数据块的信息(例如,与成功数据块相对应的局部变量节点的分量)可以被存储在通过数据缓冲器1105中,并且失败数据块的信息(例如,与失败数据块相对应的局部变量节点的分量)可以存储在失败数据缓冲器1103中。此外,由于对目标数据块的信息的第一子解码操作也失败,因此,目标数据块的信息也可与失败数据块的信息一起存储
在失败数据缓冲器1103中。此外,目标数据块的信息、成功数据块的信息以及失败数据块的信息可以被存储在解码器输入缓冲器1113中。
[0157] XOR单元1107可以对成功数据块的局部变量节点执行XOR运算。由XOR单元1107执行的XOR运算的结果可被传送到CNU 1109。CNU1109可基于XOR运算的结果生成全局校验节
点。
[0158] 数据组合器1111可执行第四子解码操作。第四子解码操作可包括根据所生成的全局校验节点来推断并更新目标数据块和失败数据块的局部变量节点的操作。
[0159] 具体地,数据组合器1111可通过利用从CNU 1109接收的全局校验节点以及从失败数据缓冲器1103接收的目标数据块信息和失败数据块信息来推断目标数据块和失败数据
块的局部变量节点。此外,数据组合器1111可将推断的局部变量节点的分量传送到解码器
输入缓冲器1113。
[0160] 解码器输入缓冲器1113可基于从数据组合器1111接收的目标数据块和失败数据块的局部变量节点的分量,来更新所存储的目标数据块和失败数据块的局部变量节点的分
量。然后,解码器输入缓冲器1113可以将更新的分量传送到第一解码器1010。
[0161] 图10的解码器133可基于更新的分量再次执行第一子解码操作。解码器133可以按设置次数执行将第一子解码操作至第四子解码操作重复一次的重复操作。
[0162] 当对目标数据块的第一子解码操作成功时,解码器133可以将目标数据块输出到外部。
[0163] 将参照图12至图13E更详细地描述根据本公开的实施例的第二解码器1030的操作。
[0164] 图12是示出根据实施例的全局解码的结构的示图。
[0165] 当对目标数据块chunk1的第一子解码操作失败时,图10中的解码器133的第一解码器1010可以对候选数据块chunk2和chunk3以及芯片猎杀块执行第二子解码操作。
[0166] 基于第一子解码操作和第二子解码操作的结果,可生成与各个数据块相对应的局部变量节点。例如,如图12中所示,第一数据块chunk1至第三数据块chunk3以及芯片猎杀块中的每一个可包括三个局部校验节点、六个局部变量节点、以及将局部校验节点连接到局
部变量节点的边缘。第一解码器1010可通过对各个节点使用和积算法或等效于和积算法的
优选方法来更新各个节点的逻辑值。各个节点的逻辑值将被称为分量。
[0167] 第一解码器1010可执行多次重复,每次重复包括更新局部校验节点、更新局部变量节点、并且执行校正子检查。此外,第一解码器1010可确定对第一数据块至第三数据块以及芯片猎杀块中的每一个的第一子解码操作和第二子解码操作是成功还是失败。
[0168] 当对一个或多个数据块的第二子解码操作失败时,第一解码器1010可以将目标数据块、候选数据块和芯片猎杀块提供至第二解码器1030。
[0169] 第二解码器1030可以对第二数据块和第三数据块以及芯片猎杀块之中的、第二子解码操作成功的数据块执行第三子解码操作。
[0170] 具体地,第二解码器1030可以对成功数据块的局部变量节点的更新分量执行XOR运算。例如,当存在多个成功数据块时,解码器133可以对与各个成功数据块相对应的第一局部变量节点的分量执行XOR运算。根据相同的原理,第二解码器1030可以对第二局部变量节点至第六局部变量节点的分量执行XOR运算。作为XOR运算的结果,可以生成具有两种分
量,即值0和1的全局校验节点。也就是说,可以生成包括第一全局校验节点至第六全局校验节点的全局校验节点,来作为通过分别对与成功数据块对应的第一局部变量节点至第六局
部变量节点的分量执行XOR运算而获得的结果。根据全局校验节点的分量,可以不同的方式更新局部变量节点。
[0171] 然而,当对所有数据块的第二子解码操作失败时,全局校验节点的所有分量可以被设置为“0”。另一方面,当对所有数据块的第二子解码操作成功时,可以不执行全局解码。
[0172] 然后,第二解码器1030可基于全局校验节点执行第四子解码操作,以推断目标数据块和失败数据块的局部变量节点。
[0173] 此外,当现有的目标数据块和现有的失败数据块的局部变量节点的分量不同于通过第四子解码操作推断的目标数据块和失败数据块的局部变量节点的消息时,第二解码器
1030可以重新更新目标数据块和失败数据块的局部变量节点的分量。
[0174] 在执行第四子解码操作之后,解码器133可以按设置次数执行将第一子解码操作至第四子解码操作重复一次的重复操作。
[0175] 例如,当存在第二子解码操作失败的两个或更多个失败数据块时,解码器133可以基于通过第三子解码操作生成的全局校验节点来执行第四子解码操作,并且每当通过第四
子解码操作推断的目标数据块和失败数据块的局部变量节点的分量被另外地更新时,重复
第一子解码操作至第四子解码操作。每当执行重复操作时,可以另外地生成成功数据块,并且可以重新改变全局校验节点的分量。因此,可以逐渐减小全局解码的规模。
[0176] 当通过设定数量的重复操作,对目标数据块的第一子解码操作成功时,解码器133可以输出目标数据块。
[0177] 图13A至图13E是示出根据实施例的解码器,例如图10的解码器133的操作进程的流程图和示图。
[0178] 图13A是示出根据本公开的实施例的解码进程的流程图,图13B至图13E是示出根据本公开的实施例的解码进程的具体示例的示图。
[0179] 参照图13A,在步骤S1301,图10的解码器133可以重设参照图12描述的重复操作的次数i。
[0180] 在步骤S1303,解码器133可以对目标数据块执行第一子解码操作。
[0181] 在步骤S1305,解码器133可以确定第一子解码操作是否失败。当第一子解码操作成功(在步骤S1305为“否”)时,解码器133可以立即输出目标数据块。
[0182] 当第一子解码操作失败(在步骤S1305为“是”)时,在步骤S1307,解码器133可以对候选数据块和芯片猎杀块中的每一个执行第二子解码操作。
[0183] 例如,如图13B中所示出的,解码器133可以对第一数据块至第三数据块和芯片猎杀块中的每一个执行第一子解码操作和第二子解码操作。解码器133可以确认第一数据块
和第三数据块是失败数据块,并且第二数据块和芯片猎杀块是成功数据块。此外,作为第二子解码操作的结果,解码器133可以将第二数据块的局部变量节点的分量更新成“1”、“1”、“0”、“1”、“1”以及“1”,并且将芯片猎杀块的局部变量节点的分量更新成“0”、“1”、“1”、“0”、“1”以及“0”。
[0184] 返回参照图13A,当存在第二子解码操作失败的一个或多个数据块(在步骤S1309为“是”)时,在步骤S1311,解码器133可以执行第三子解码操作,以通过XOR运算从成功数据块的局部变量节点生成全局校验节点。
[0185] 例如,如图13C中所示出的,解码器133可以通过XOR运算从作为成功数据块的第二数据块和芯片猎杀块的局部变量节点生成全局校验节点。
[0186] 具体地,解码器133可通过对作为第二数据块和芯片猎杀块的第一局部变量节点的分量的“1”和“0”执行XOR运算来生成第一全局校验节点的分量“1”。根据相同的原理,解码器133可以通过分别对第二数据块和芯片猎杀块的第二局部变量节点至第六局部变量节
点的分量执行XOR运算来生成第二全局校验节点至第六全局校验节点的分量“1”、“0”、“1”、“1”、“0”和“1”。
[0187] 返回参照图13A,在步骤S1313,解码器133可以执行第四子解码操作,该第四子解码操作根据所生成的全局校验节点来推断并更新目标数据块和失败数据块的局部变量节
点的分量。
[0188] 解码器133可以使用最小和算法来推断目标数据块和失败数据块的局部变量节点的分量。解码器133可以更新目标数据块和失败数据块的局部变量节点以反映推断的分量。
[0189] 也就是说,如图13D中所示出的,解码器133可根据所生成的全局校验节点来推断在第一子解码操作中失败的第一数据块的局部变量节点的分量以及在第二子解码操作中
失败的第三数据块的局部变量节点的分量。可以排除第二子解码操作成功的第二数据块和
芯片猎杀块。当由于推断的分量与现有的分量不同而改变推断的分量时,解码器133可以更新第一数据块和/或第三数据块的局部变量节点以反映改变的分量。
[0190] 然而,根据全局校验节点的分量的类型,第二解码器1030可以不同方式推断与目标数据块和失败数据块相对应的局部变量节点的分量。
[0191] 例如,当全局校验节点的分量为“0”时,第二解码器1030可以使用等式1分别推断与目标数据块和失败数据块相对应的局部变量节点的分量:
[0192] [等式1]
[0193]
[0194] 在等式1中,“Li→j”表示根据第i全局校验节点而传送到与失败数据块相对应的第j局部变量节点的对数似然比(LLR)。此外,i和j是相同的数字。
[0195] “Catten”表示用于使解码器133能够平稳地执行诸如等式1的最小和算法的缩放因子。
[0196] “N(i)”表示连接到第i全局校验节点的一组失败数据块的局部变量节点。也就是说,参照图13D,“N(i)”表示连接到第i全局校验节点的两个局部变量节点。
[0197] “j'∈N(i)-{j}”表示第j'局部变量节点,该第j'局部变量节点排除了该组失败数据块的局部变量节点之中的连接到第i全局校验节点的、与失败数据块相对应的第j局部变量节点。也就是说,“j'”表示与成功数据块相对应的第j局部变量节点。
[0198] “αj'i”表示从对应于成功数据块的第j局部变量节点传送到第i全局校验节点的LLR的符号。例如,当相应的分量为“0”时,LLR可以呈现对应于“+”的符号。当分量为“1”时,LLR可以呈现对应于“-”的符号。然而,这仅是示例;本发明不限于此。
[0199] “βj'i”表示根据对应于成功数据块的第j局部变量节点而传送到第i全局校验节点的LLR的量值,即可靠性。
[0200] 参照图13B至图13E,解码器133可以使用等式1根据全局校验节点中的分量为“0”的第二全局校验节点来推断第一数据块和/或第三数据块的第二局部变量节点的分量。
[0201] 具体地,解码器133可以根据“L2→2”,即第二全局校验节点来推断传送到与第一数据块和/或第三数据块相对应的第二局部变量节点的LLR。首先,基于“Π2′∈N(2)-{2}α2′2”,解码器133可根据与第二数据块和芯片猎杀块相对应的第二局部变量节点来计算传送到第二全局校验节点的LLR的符号。此外,基于 解码器133可根据第二数据块和芯
片猎杀块的第二局部变量节点来计算传送到第二全局校验节点的LLR的量值的最小总和。
通过将计算出的值乘以“Catten”,解码器133可根据第二全局校验节点推断待传送到第一数据块和第三数据块的第二局部变量节点的消息信息。
[0202] 另一方面,当全局校验节点的分量为“1”时,解码器133可以使用等式2推断局部变量节点的分量。
[0203] [等式2]
[0204]
[0205] 等式2仅在符号方面不同于等式1。
[0206] 返回参照图13A,在步骤S1315,解码器133可以检查全局解码操作的执行次数是否已达到设置的重复次数。当全局解码操作的执行次数已经达到设置的重复次数(在步骤
S1315为“是”)时,解码器133可以确定相应的全局解码操作失败。
[0207] 当全局解码操作的执行次数尚未达到设置的重复次数(在步骤S1315为“否”)时,在步骤S1317,可以全局解码操作的执行次数增加1,并且在步骤S1303到S1313,解码器133可基于更新的局部变量节点来重复第一子解码操作至第四子解码操作。
[0208] 当不存在第二子解码失败的数据块(在步骤S1309为“否”)时,在步骤S1319,解码器133可通过对成功数据块,即候选数据块和芯片猎杀块的分量执行XOR运算来推断目标数据块的分量。
[0209] 例如,当如图13E中所示出的,不存在失败数据块时,解码器133可以通过对第二数据块和第三数据块以及芯片猎杀块的分量执行XOR运算来推断第一数据块的分量。
[0210] 再例如,如图13E中所示出的,当假设第三数据块的局部变量节点的分量被更新时,解码器133可基于更新的分量成功进行对第三数据块的第二子解码操作。然后,在步骤S1311,解码器133可通过对第二数据块和第三数据块以及芯片猎杀块的分量执行XOR运算
来执行第三子解码操作,以更新全局校验节点的分量。此外,在步骤S1313,解码器133可以基于重新更新的全局校验节点执行第四子解码操作,以推断第一数据块的局部变量节点的
分量。
[0211] 通过上述方法,根据本公开的实施例的解码器133可降低全局解码的解码成本,并且以高可靠性读取数据。由此,图10的解码器133可以提高存储器系统的整体性能。
[0212] 尽管已经说明并描述了各种实施例,但是本领域技术人员将清楚的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和
修改。
[0213] 例如,已经描述了解码器133可使用最小和算法来推断失败数据块的局部变量节点的分量。然而,解码器133可以可替代地利
用例如以下的其他算法:位翻转算法、加权位翻转算法以及和积解码算法,还有最小和算法。根据全局校验节点的值,可以稍微修改解码器
133的操作。
[0214] 此外,生成全局校验节点的方式不限于已经例示的二进制XOR运算。可替代地,可通过具有非二进制LDPC码的校验节点来配置全局校验节点。在这种情况下,可以根据限定
相应全局校验节点的GF(q)的大小来确定校验节点的类型的数量。例如,当利用具有二进制LDPC码的校验节点时,由于校验节点基于GF(2)限定的校验节点,所以可以用两个二进制值
0和1对全局校验节点进行解码。
[0215] 因此,本公开的范围不限于上述实施例,而是可由所附权利要求和权利要求的等同方案限定。