CN112687323B - 具有用于解码的错误减少方案的存储器系统及其操作方法 - Google Patents

具有用于解码的错误减少方案的存储器系统及其操作方法 Download PDF

Info

Publication number
CN112687323B
CN112687323B CN202010451784.5A CN202010451784A CN112687323B CN 112687323 B CN112687323 B CN 112687323B CN 202010451784 A CN202010451784 A CN 202010451784A CN 112687323 B CN112687323 B CN 112687323B
Authority
CN
China
Prior art keywords
value
condition
hard decision
variable node
checksum
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
CN202010451784.5A
Other languages
English (en)
Other versions
CN112687323A (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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112687323A publication Critical patent/CN112687323A/zh
Application granted granted Critical
Publication of CN112687323B publication Critical patent/CN112687323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/095Error detection codes other than CRC and single parity bit codes
    • H03M13/096Checksums
    • 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/43Majority logic or threshold decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及一种存储器控制器、位翻转(BF)解码器和将校验和辅助错误减少(CA‑ER)方案选择性地应用于低密度奇偶校验(LDPC)码的BF解码的方法。在对码字进行解码时,当满足第一条件时,改变由对选择变量节点进行解码而产生的硬判决值以产生更新的硬判决值。而且,当满足第一条件时,使用更新的硬判决值来更新处理选择变量节点之后的当前校验和值。当更新的校验和值未减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用CA‑ER方案。

Description

具有用于解码的错误减少方案的存储器系统及其操作方法
技术领域
本公开的实施例涉及一种在位翻转(BF)解码的过程中选择性地执行校验和辅助错误减少(CA-ER)方案的存储器系统,以及操作该存储器系统的方法。
背景技术
计算机环境范例已经转变成可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于不具有移动部件,所以用作存储器装置的数据存储装置提供了优异的稳定性、耐久性、高信息访问速度和低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接到SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行例如固件的功能组件的嵌入式处理器。SSD功能组件通常是特定于装置的,并且在大多数情况下可以更新。
闪速存储器的两种主要类型以配置它们的相应NAND和NOR逻辑门命名。单独的闪速存储器单元展现出与其相应的门相似的内部特性。NAND型闪速存储器可以以块(或页面)来进行写入和读取,这些块(或页面)通常比整个存储空间小得多。NOR型闪速存储器允许将单个机器字(字节)写入已擦除的位置或独立地读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、固态驱动器(SSD)和类似产品中运行,用于常规的数据存储和传送。
例如NAND型的闪速存储器可以应用各种错误校正码中的任一种来校正数据中的错误。一种这样的错误校正码是低密度奇偶校验码(LDPC),它是一种高级错误码,用于恢复数据中相对大量的错误。LDPC码是一类线性分组前向(linear block forward)错误校正(ECC)码,其特征在于低密度奇偶校验矩阵,即与0的数量相比只包含几个1。LDPC码具有优异的错误校正性能。
通常,存在两种类型的LDPC码:规则的和不规则的。给定M×N的奇偶校验矩阵H,H的第i列的列权重是第i列中非零条目的数量,0≤i<N。如果H的所有列的列权重相同,用H表示的LDPC码为规则LDPC码。否则,LDPC码是不规则LDPC码。换言之,不规则LDPC码的奇偶校验矩阵H的列具有不同的列权重。
不规则LDPC码的解码使用已知诸如位翻转(BF)解码、和积算法(SPA)或最小和(MS)算法的LDPC码的迭代解码方法执行。通常,对于LDPC码,BF解码算法的错误校正性能比MS或SPA解码算法差。
尽管如此,位翻转(BF)解码对于SSD应用尤其是移动和客户端SSD应用非常重要,因为此类应用对功耗有严格的要求,并且BF解码通常比其它类型的解码消耗更少的电力。
在这种情况下,提出了本发明的实施例。
发明内容
本发明的实施例提供了一种改进的位翻转(BF)解码器,该位翻转(BF)解码器利用校验和辅助错误减少(CA-ER)方案被选择性地增强以提高解码性能。
本发明的一个方面涉及一种存储器控制器。该存储器控制器包括:存储装置,存储至少由变量节点表示的低密度奇偶校验(LDPC)码的码字;以及解码器,可操作地联接到该存储装置并且被配置为对该码字执行解码。在该码字之中的码字的解码迭代中,包括该解码器的存储器控制器被配置为:执行对选择变量节点的解码以产生硬判决值;当满足第一条件时改变硬判决值以产生更新的硬判决值;当满足第一条件时,使用更新的硬判决值,更新处理选择变量节点之后的当前校验和值;并且当未将更新的校验和值减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用校验和辅助错误恢复(CA-ER)方案。
在另一方面,提供了一种解码器。该解码器优选地是位翻转(BF)解码器,用于对所接收的至少由变量节点表示的LDPC码的码字进行解码。该解码器被配置为执行上述操作。在一些实施例中,解码器可以与一个或多个其它组件协作以实施操作。
本发明的进一步的方面包括可以由存储器控制器及其诸如BF解码器的组件执行的解码方法。执行该方法以对所接收的至少由变量节点表示的LDPC码的码字进行解码。该方法包括:在该码字之中的码字的解码迭代中,执行对选择变量节点的解码以产生硬判决值;当满足第一条件时改变硬判决值以产生更新的硬判决值;当满足第一条件时,使用更新的硬判决值,更新处理选择变量节点之后的当前校验和值;并且当未将更新的校验和值减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用校验和辅助错误恢复(CA-ER)方案。
从以下描述中,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是根据本发明的另一实施例的存储器系统的示意图。
图5是示出根据本发明的实施例的使用校验和辅助错误减少(CA-ER)方案进行解码的流程图。
图6是示出根据本发明的实施例的通过应用CA-ER方案进行位翻转(BF)解码的进程中的步骤的流程图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,因此不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开是彻底的和完整的,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。在整个本公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以多种方式实施,包括进程;设备;系统;物质的组成;实施在计算机可读存储介质上的计算机程序产品;和/或处理器,例如适用于执行存储在联接到处理器的存储器上和/或由其提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任何其它形式都可以称为技术。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适用于执行任务的诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行任务的通用组件或者为执行任务而制造的特定组件。如本文所使用的,术语“处理器”等指代适用于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供本发明的实施例的详细描述以及说明本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅受权利要求的限制。本发明包括许多在权利要求范围内的替代、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是出于例示的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求实施。为了简洁,没有详细描述与本发明相关的技术领域中已知的技术材料,从而避免不必要地模糊本发明。
图1是示意性示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,这可以表示多于一个这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。为了简洁,有时将存储器控制器100和半导体存储器装置200分别简称为控制器100和存储器装置200。
控制器100可控制存储器装置200的全部操作。
存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。存储器装置200可以通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。存储器装置200可以通过电源线接收电力PWR,以及通过控制线接收控制信号CTRL。控制信号CTRL可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可以集成在单个半导体器装置中,例如固态驱动器(SSD)。SSD可以包括用于在其中存储数据的存储装置。当存储器系统10用于SSD中时,联接到存储器系统10的主机(未示出)的操作速度可以显著提高。
在另一实施例中,存储器控制器100和半导体存储器装置200可以集成在单个半导体器装置中,例如存储卡。例如,存储器控制器100和半导体存储器装置200可以被集成以形成个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存卡(CF)、智能媒体卡(SM)、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型MMC(MMC微型)、安全数字卡(SD)、迷你安全数字卡(迷你SD)、微型安全数字卡(微型SD)、高容量安全数字(SDHC)和/或通用闪存(UFS)。
在又一实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件之一:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板电脑、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和发送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的各种电子装置之一或者计算系统的各种组件之一。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求进行操作,特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置来实施,或者利用诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可以控制存储器装置200中的数据的存储。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供至主机装置,并且可将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、可以被实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140以及存储器接口(I/F)150。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储由控制器100和存储器装置200针对诸如读取操作、写入操作、编程操作和擦除操作的操作所使用的数据。
存储器110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置针对读取操作和写入操作所使用的数据存储在存储器装置200中。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以响应于来自主机装置的写入请求或读取请求,控制存储器系统10的一般操作,以及对存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、耗损均衡、垃圾收集和/或坏块处理的操作。L2P映射称为逻辑块寻址(LBA)。
ECC组件130可在读取操作期间检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示错误位校正失败的错误校正失败信号。
ECC组件130可以基于诸如以下的编码调制执行错误校正操作:包括规则和不规则LDPC码两者的低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。LDPC码与本发明的实施例特别相关。
因此,根据本发明的实施例,ECC组件130可以包括用于适当的错误校正操作的任何和所有电路、系统或装置,该错误校正操作包括检测和校正LDPC码中的错误。为此,在本发明的实施例中,ECC组件130包括BF解码器135。如下面更详细说明的,BF解码器135被配置为执行基于CA-ER方案的BF解码。
主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,从而允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件或CPU 120的控制下为存储器装置200生成控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列的形式的页面缓冲器250、列解码器260以及输入/输出电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器(阵列)250、列解码器260和输入/输出电路270可以形成用于存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址RADD来选择多个存储块211中的至少一个存储块,并将从电压生成电路230供应的操作电压传输到所选择的存储块。
页面缓冲器(阵列)250可以通过位线BL(如图3所示)与存储器单元阵列210电通信。页面缓冲器(阵列)250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块传输数据以及从所选择的存储块接收数据,或者临时存储所传输的数据。
列解码器260可以向页面缓冲器(阵列)250传输数据和从页面缓冲器(阵列)250接收数据并且还可以与输入/输出电路270交换数据。
输入/输出电路270可以向控制电路220传输从外部装置(例如,存储器控制器100)接收的命令和地址,通过输入/输出电路270将数据从外部装置传输至列解码器260或者将数据从列解码器260输出至外部装置。
控制电路220可以响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列210的存储块211中的任意存储块。
参照图3,示例性存储块211可以包括联接至行解码器240的多条字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以并行布置,其中多条字线在DSL和SSL之间。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每个列的单元串可包括一个或多个漏极选择晶体管DST以及一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以被串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可以被形成为存储多位数据信息的多层单元(MLC)。
每个单元串中的SST的源极可以联接到公共源极线CSL,并且每个DST的漏极可以联接到相应的位线。单元串中的SST的栅极可以联接到SSL,并且单元串中的DST的栅极可以联接到DSL。跨越单元串的存储器单元的栅极可以联接到相应的字线。也就是说,存储器单元MC0的栅极联接到相应的字线WL0,存储器单元MC1的栅极联接到相应的字线WL1等。联接到特定字线的存储器单元的组可以称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
如前所述,页面缓冲器250可以是包括联接到位线BL0至BLm-1的多个页面缓冲器251的页面缓冲器阵列的形式。页面缓冲器251可以响应于页面缓冲器控制信号而进行操作。例如,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据或者在读取操作或验证操作期间感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型而可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为其中组合了两种或更多种类型的存储器单元的混合闪速存储器,或者其中控制器嵌入存储器芯片内的1-NAND闪速存储器。
参照图4,示意性地示出存储器系统40的一般示例。存储器系统40可以包括易失性存储器400(例如,DRAM)、非易失性存储器(NVM)402(例如,NAND)、诸如本文所述的控制组件或控制逻辑404、诸如本文所述的错误校正码(ECC)模块406以及总线408,存储器系统40的这些组件通过总线408通信。易失性存储器400可以包括用于位的物理到逻辑地址映射的逻辑位地址(LBA)表410。NVM 402可以包括多个存储块,以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。出于某些功能目的,可以将多个存储块一起分组为超级块。
ECC模块406可以包括BF解码器406A,其可以对应于图2中的BF解码器135。包括BF解码器406A的ECC模块406可以用于执行本发明的各方面。根据本公开,本领域技术人员将理解可以与存储器系统一起使用以实现本发明的附加/可选组件。
如前所述,本发明的实施例提供了一种用于位翻转(BF)解码算法的创造性的校验和辅助错误减少(CA-ER)方案,以提高BF解码的性能。CA-ER方案适用于任何类型的BF解码算法,包括但不限于加权BF算法、梯度下降位BF算法、并行加权BF算法及其变型。也就是说,本文描述的技术和方法可以被整合到任何合适的BF解码算法中以提高LDPC码的解码性能。
在描述本发明的实施例时,使用了以下术语和符号。为了描述本发明的实施例而不是限制本发明,采用了这样的术语和符号。对于第i次迭代中的第j个变量节点,BF解码算法的翻转阈值、翻转能量(flipping energy)和硬判决分别由T(i)(j)、E(i)(j)和y(i)(j)表示。然后,在实施例中,翻转规则为:当T(i)(j)<E(i)(j)时,硬判决的第j位在第i次迭代中翻转,即y(i)(j)=y(i-1)(j)⊕1;否则,y(i)(j)=y(i-1)(j)。此处的“⊕”表示二进制异或(XOR)运算。然后,可以通过使用针对第j个变量节点的新的硬判决结果来更新当前的校验和值,即由CS(i)(j)表示的在第i次迭代中处理了第j个变量节点之后的校验和值。校验和值表示未满足的校验节点(奇偶校验)的数量。第(j-1)个变量节点可以是先前处理的变量节点,例如紧挨在第j个变量节点之前处理的变量节点,或者仅仅是先前变量节点。
新的CA-ER方案的操作如下。在通过上述翻转规则对第j个变量节点进行解码之后,计算CS(i)(j)。如果CS(i)(j)>CS(i)(j-1),则意为第j个变量节点的当前硬判决导致更多不满意的校验节点,并且可能是一个坏判决,y(i)(j)翻转回y(i-1)(j)并且CS(i)(j)=CS(i)(j-1)。
CS(i)(j-1)的值确定在第i次迭代中是否将新的CA-ER方案用于第j个变量节点。给定校验和阈值TCS,如果CS(i)(j-1)<TCS并且CS(i)(j-1)<CS(i)(j),则将CA-ER方案用于第j个变量节点。如果CS(i)(j-1)≥TCS或CS(i)(j-1)≥CS(i)(j),则不使用CA-ER方案。可以基于系统的参数和/或服务质量(QoS)要求来设置TCS。这样,可以预定义TCS
在图5的流程图中示出了具有CA-ER方案的示例性BF解码流程。根据本发明的实施例,BF解码器135/406A可以单独使用或与一个或多个其它组件结合使用以执行解码。
参照图5的流程图500,其次参照其它附图,在步骤501,分别将迭代和变量节点变量i和j分别初始化,例如,初始化为0。在步骤502中,计算翻转阈值T(i)(j)和翻转能量E(i)(j)中的每一个。然后,在步骤503中确定是否为T(i)(j)<E(i)(j)。如果是,则流程进行到步骤504,在该步骤504中,在第i次迭代中将硬判决的第j个位翻转,即y(i)(j)=y(i-1)(j)⊕1。在步骤505中,更新校验和值CS(i)(j)。
然后在步骤506中确定更新的校验和值是否为0。如果是,则认为解码成功,如步骤507所示。但是,如果更新后的校验和值仍不为0,则处理先前变量节点之后的校验和值即CS(i)(j-1)用于确定是否应用根据本发明的实施例的校验和辅助错误恢复(CA-ER)方案的特征。具体地,在步骤508,确定CS(i)(j-1)是否小于校验和阈值TCS或CS(i)(j)。如果是,则应用CA-ER方案的步骤509和510。在所示的实施例中,CA-ER方案包括步骤508、509和510。然而,在另一实施例中,CA-ER方案可以包括步骤509和510,其中步骤508用于确定是否应用CA-ER方案的步骤509和510。如果CS(i)(j-1)不小于校验和阈值TCS和CS(i)(j),则在步骤509,将y(i)(j)翻转回y(i-1)(j),然后在步骤510中,将CS(i)(j)更新为CS(i)(j-1)。
在执行步骤510之后,流程进行到步骤511。如果步骤508的判决为“否”,则流程也进行到步骤511,并且如果在步骤503处T(i)(j)≥E(i)(j),则流程也进行到步骤511。
在步骤511中,确定当前位是否是当前迭代中的最后一个位。如果不是,则在步骤512中将j增加,之后流程返回到步骤502。
另一方面,如果在步骤511中确定当前位是当前迭代中的最后一个位,则接下来在步骤513中确定当前迭代是否是最后一次迭代。如果不是,则流程进行到步骤514,在该步骤514中,i递增而j保持不变。处理然后返回到步骤502,开始另一迭代。如果在步骤513中确定当前迭代是最后一次迭代,则如步骤515所示将解码视为失败。
图6是更一般地描述根据本发明的实施例的用于解码LDPC码的进程中的步骤的流程图。流程图600中所示的步骤是示例性的。本领域技术人员将理解,可以执行附加和/或可选的步骤,或者可以改变步骤的顺序,以实现本发明的各方面,而不背离本文公开的发明构思。这些步骤可以由任何适当的组件或组件的组合来执行,例如包括ECC组件130、406(或其中的BF解码器135、406A)。考虑到这一点,将参照其它附图,特别是图2、图4和图5,来描述图6。
参照图6,考虑了对所接收的码字之中的码字进行解码的迭代。在步骤601中,执行第j个变量节点的解码以产生硬判决值。当满足第一条件时,改变该硬判决值,例如,在步骤602中翻转以产生更新的硬判决值。在步骤603中,更新的硬判决值在被生成时被用于更新当前校验和值,即,在处理第j个变量节点之后的校验和值。如果更新的校验和值现在为零或减小到设定的最小值,则认为当前码字的解码成功。如果不是,则评估第二条件以确定是否应用CA-ER方案。因此,在步骤604中,当基于处理第(j-1)个变量节点之后的先前校验和值的的第二条件的两个不等式或比较中的任一个满足时,应用CA-ER方案。
第一条件可以是结合图5的步骤503描述的条件。包括比较或不等式的第二条件可以是结合图5的步骤508所描述的条件。
如前所述,本发明的实施例通过采用CA-ER方案提供了改进的LDPC码的BF解码。该解码方案提高了存储器系统的性能,尤其是提高了移动和客户端SSD应用的性能。解码性能得到提高,同时仍满足功耗要求。
尽管出于清楚和理解的目的已经在一些细节上描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在实施本发明的许多替代方式。因此所公开的实施例是说明性的而非限制性的。

Claims (14)

1.一种存储器控制器,包括:
存储装置,存储至少由变量节点表示的低密度奇偶校验码即LDPC码的码字;以及
解码器,可操作地联接到所述存储装置并且对所述码字执行解码;
其中在所述码字之中的码字的解码迭代中,包括所述解码器的存储器控制器:
执行对选择变量节点的解码以产生硬判决值;
当满足第一条件时改变所述硬判决值以产生更新的硬判决值;
当满足所述第一条件时,使用所述更新的硬判决值,更新处理所述选择变量节点之后的当前校验和值;以及
当未将更新的校验和值减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用校验和辅助错误恢复方案即CA-ER方案,
其中所述第二条件基于所述先前校验和值,并且
其中当所述先前校验和值小于校验和阈值和所述当前校验和值中的至少一个时,满足所述第二条件。
2.根据权利要求1所述的存储器控制器,其中所述第一条件基于针对所述选择变量节点的翻转阈值和翻转能量。
3.根据权利要求2所述的存储器控制器,其中当所述翻转阈值小于所述翻转能量时,满足所述第一条件。
4.根据权利要求1所述的存储器控制器,其中所述CA-ER方案包括:利用针对所述先前变量节点的硬判决值来替换针对所述选择变量节点的所述硬判决值。
5.根据权利要求4所述的存储器控制器,其中所述CA-ER方案进一步包括:使用针对所述先前变量节点的所述硬判决值来更新所述当前校验和值。
6.根据权利要求1所述的存储器控制器,其中所述LDPC码是不规则LDPC码。
7.一种解码器,所述解码器对所接收的至少由变量节点表示的低密度奇偶校验码即LDPC码的码字进行解码,所述解码器:
对所述码字执行解码;
其中,在对所述码字之中的码字的解码迭代中,所述解码器进一步:
执行对选择变量节点的解码以产生硬判决值;
当满足第一条件时改变所述硬判决值以产生更新的硬判决值;
当满足所述第一条件时,使用所述更新的硬判决值,更新处理所述选择变量节点之后的当前校验和值;以及
当未将更新的校验和值减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用校验和辅助错误恢复方案即CA-ER方案,
其中所述第二条件基于所述先前校验和值,并且
其中当所述先前校验和值小于校验和阈值和所述当前校验和值中的至少一个时,满足所述第二条件。
8.根据权利要求7所述的解码器,其中所述解码器包括位翻转解码模块即BF解码模块。
9.根据权利要求7所述的解码器,其中所述设定的最小值为零。
10.一种方法,所述方法对所接收的至少由变量节点表示的低密度奇偶校验码即LDPC码的码字进行解码,所述方法包括:
在对所述码字之中的码字的解码迭代中,
执行对选择变量节点的解码以产生硬判决值;
当满足第一条件时改变所述硬判决值以产生更新的硬判决值;
当满足所述第一条件时,使用所述更新的硬判决值,更新处理所述选择变量节点之后的当前校验和值;以及
当未将更新的校验和值减小到设定的最小值并且满足基于在处理先前变量节点之后计算的先前校验和值的第二条件时,应用校验和辅助错误恢复方案即CA-ER方案,
其中,所述第二条件基于所述先前校验和值,并且
其中当所述先前校验和值小于校验和阈值和所述当前校验和值中的至少一个时,满足所述第二条件。
11.根据权利要求10所述的方法,其中所述第一条件基于针对所述选择变量节点的翻转阈值和翻转能量。
12.根据权利要求11所述的方法,其中当所述翻转阈值小于所述翻转能量时,满足所述第一条件。
13.根据权利要求10所述的方法,其中所述CA-ER方案的应用包括:利用针对所述先前变量节点的硬判决值来替换针对所述选择变量节点的所述硬判决值。
14.根据权利要求13所述的方法,其中所述CA-ER方案的应用进一步包括:使用针对所述先前变量节点的所述硬判决值来更新所述当前校验和值。
CN202010451784.5A 2019-10-18 2020-05-25 具有用于解码的错误减少方案的存储器系统及其操作方法 Active CN112687323B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/657,590 US11271589B2 (en) 2019-10-18 2019-10-18 Memory system with error-reduction scheme for decoding and method of operating such memory system
US16/657,590 2019-10-18

Publications (2)

Publication Number Publication Date
CN112687323A CN112687323A (zh) 2021-04-20
CN112687323B true CN112687323B (zh) 2024-03-15

Family

ID=75445253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010451784.5A Active CN112687323B (zh) 2019-10-18 2020-05-25 具有用于解码的错误减少方案的存储器系统及其操作方法

Country Status (2)

Country Link
US (1) US11271589B2 (zh)
CN (1) CN112687323B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11664821B1 (en) 2022-02-08 2023-05-30 SK Hynix Inc. Error floor performance of a bit flipping decoder through identifying unreliable check nodes
WO2024102655A1 (en) * 2022-11-09 2024-05-16 Micron Technology, Inc. Bypassing iterations in a bit flipping decoder using a least reliable bit energy function

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2307960B1 (en) * 2009-04-21 2018-01-10 Avago Technologies General IP (Singapore) Pte. Ltd. Error-floor mitigation of codes using write verification
US8352827B2 (en) * 2009-06-25 2013-01-08 Nec Laboratories America, Inc. LDPC hard decision decoder for high-speed wireless data communications
US8739004B2 (en) * 2012-05-10 2014-05-27 Lsi Corporation Symbol flipping LDPC decoding system
US9459956B2 (en) 2013-07-19 2016-10-04 Seagate Technology Llc Data decoder with trapping set flip bit mapper
US10200064B1 (en) 2014-03-18 2019-02-05 Marvell International Ltd. Systems and method for bit-flipping decoders with partial-column processing, ordering and scheduling
US10135464B2 (en) 2015-01-05 2018-11-20 SK Hynix Inc. Reliability-assisted bit-flipping decoding algorithm
US10148287B2 (en) 2016-11-08 2018-12-04 SK Hynix Inc. Bit-flipping LDPC decoding algorithm with hard channel information
US10547327B2 (en) 2017-06-23 2020-01-28 Intel Corporation Self-configuring error control coding
US10447301B2 (en) * 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
US10484008B2 (en) * 2017-09-28 2019-11-19 SK Hynix Inc. Memory system with on-the-fly error detection and termination and operating method thereof

Also Published As

Publication number Publication date
US20210119643A1 (en) 2021-04-22
CN112687323A (zh) 2021-04-20
US11271589B2 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
US10997017B2 (en) Neighbor assisted correction error recovery for memory system and method thereof
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110275796B (zh) 具有混合解码方案的存储器系统及其操作方法
CN109801669B (zh) 具有软读取挂起方案的存储器系统及其操作方法
CN110444242B (zh) 有基于深度学习的干扰校正能力的存储器系统及操作方法
US11182243B2 (en) Memory system with adaptive information propagation and method of operating such memory
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
CN112687323B (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
US11538547B2 (en) Systems and methods for read error recovery
US11036579B2 (en) Decoder for memory system and method thereof
US11356123B2 (en) Memory system with low-complexity decoding and method of operating such memory system
US11204839B2 (en) Memory system with low-latency read recovery and method of operating the memory system
CN110275844B (zh) 利用自适应阈值解码的存储器系统及其操作方法
US11062758B2 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
CN110941567B (zh) 存储器控制器及其操作方法
CN110444245B (zh) 具有混合迭代解码能力的存储器系统及其操作方法
CN110047554B (zh) 具有超级芯片删除恢复的存储器系统及其操作方法
US20160364292A1 (en) Efficient encoder based on modified ru algorithm

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