CN108073467A - 具有硬信道信息的位翻转ldpc解码算法 - Google Patents

具有硬信道信息的位翻转ldpc解码算法 Download PDF

Info

Publication number
CN108073467A
CN108073467A CN201710818453.9A CN201710818453A CN108073467A CN 108073467 A CN108073467 A CN 108073467A CN 201710818453 A CN201710818453 A CN 201710818453A CN 108073467 A CN108073467 A CN 108073467A
Authority
CN
China
Prior art keywords
variable node
node
overturning
indicator
decoding process
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.)
Granted
Application number
CN201710818453.9A
Other languages
English (en)
Other versions
CN108073467B (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
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN108073467A publication Critical patent/CN108073467A/zh
Application granted granted Critical
Publication of CN108073467B publication Critical patent/CN108073467B/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/1012Adding 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
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种存储器系统,其可包括存储装置和错误校正码(ECC)单元,其中错误校正码单元适于:确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;更新变量节点的翻转指示符;将变量节点的翻转指示符同与解码进程相关的翻转阈值进行比较;当翻转指示符大于翻转阈值时,翻转变量节点的位;并且当确定解码成功或达到最大的迭代次数时,结束解码进程。

Description

具有硬信道信息的位翻转LDPC解码算法
技术领域
本公开的示例性实施例涉及一种存储器系统及其操作方法。
背景技术
计算机环境范例已经转变为普适计算系统,其能够在任何时间和任何地点使用。由于这个事实,诸如移动电话、数码相机和笔记本计算机的便携式电子设备的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的数据存储装置因其不具有移动部件而提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
写入闪速存储器(例如,NAND)中的数据常遭受读取错误,数据通常由错误校正码保护。在一些情况下,错误校正码依然会失败。因此,存在对用于克服读取错误的改善的错误校正码和进程的需求。
发明内容
本发明的方面包括存储器系统。该存储器系统可包括存储装置(memory storage)和错误校正码(ECC)单元,其中错误校正码单元适于:确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;更新变量节点的翻转指示符;将变量节点的翻转指示符同与解码进程相关的翻转阈值进行比较;当翻转指示符大于翻转阈值时,翻转变量节点的位;并且当确定解码成功或达到最大的迭代次数时,结束解码进程。
本发明的其它方面包括方法。该方法可包括:确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;更新变量节点的翻转指示符;将变量节点的翻转指示符同与解码进程相关的翻转阈值进行比较;当翻转指示符大于翻转阈值时,翻转变量节点的位;并且当确定解码成功或达到最大的迭代次数时,结束解码进程。
本发明的另外的方面包括存储器装置。该存储器装置可包括存储装置和错误校正码(ECC)单元,其中错误校正码单元被配置成:确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;更新变量节点的翻转指示符;将变量节点的翻转指示符同与解码进程相关的翻转阈值进行比较;当翻转指示符大于翻转阈值时,翻转变量节点的位,并且当确定解码成功或达到最大的迭代次数时;结束解码进程。
附图说明
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是根据本发明的方面的示例性存储器系统的图。
图5是根据本发明的方面的用于解码的方法中的步骤的流程图。
具体实施方式
下面将参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施,并不应被解释为限于本文所阐述的实施例。相反地,提供这些实施例以便使得本公开彻底且完整,并且将本发明的范围全部传达给本领域的技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
本发明可以多种方式实施,包括如进程;设备;系统;物质的组成;嵌入在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上的指令和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可能采取的任何其他形式可被称为技术。通常,所公开的进程的步骤的顺序可在本发明的范围内进行改变。除非另有说明,否则诸如被描述为适于执行任务的处理器或者存储器的部件可被实施为暂时适于在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文所使用的,术语“处理器”指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理核心。
下文提供了本发明的一个或多个实施例的详细描述以及说明本发明的原理的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括许多替代方案、修改和等同物。为了提供对本发明的全面理解,在下面的描述中阐述了许多具体细节。为了示例的目的提供这些细节,并且可在没有一些或所有这些具体细节的情况下根据权利要求实现本发明。为了清楚的目的,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号可包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可被集成到单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。固态驱动器可包括用于在其中存储数据的存储装置。当半导体存储器系统10被用在SSD中时,联接到存储器系统10的主机(未示出)的操作速度可显著提升。
存储器控制器100和半导体存储器装置200可被集成到诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中以配置诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(MMCmicro)、安全数字(SD)卡、小型安全数字(miniSD)卡、微型安全数字(microSD)卡、高容量安全数字卡(SDHC)和通用闪存(UFS)。
对于另一示例,存储器系统可被提供为包括诸如以下电子装置的多种元件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(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、控制单元120、错误校正码(ECC)单元130、主机接口140和存储器接口150。
存储单元110可用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储单元110可利用易失性存储器来实施。存储单元110可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。如上所述,存储单元110可将主机装置使用的数据存储在存储器装置200中,以用于读取操作和写入操作。为了存储数据,存储单元110可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
响应于来自主机装置的写入请求或读取请求,控制单元120可控制存储器系统10的一般操作,以及用于存储器装置200的写入操作或读取操作。控制单元120可驱动被称为闪存转换层(FTL)的固件来控制存储器系统10的一般操作。例如,FTL可执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC单元130可在读取操作期间检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元130可不校正错误位,并且可输出指示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC单元130可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、Turbo码、Turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)等。ECC单元130可包括用于错误校正操作的所有电路、系统或装置。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(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供应的操作电压传输到多个存储块211之中选择的存储块。
页面缓冲器250通过位线BL(未示出)连接到存储器单元阵列210。响应于由控制电路220产生的页面缓冲器控制信号,页面缓冲器250可利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块传输数据/从所选择的存储块接收数据,或者临时存储被发送的数据。
列解码器260可向页面缓冲器250传输数据/从页面缓冲器250接收数据,或者向输入/输出电路270发送数据/从输入/输出电路270接收数据。
输入/输出电路270可将从外部装置(例如,存储器控制器100)传输的命令和地址传输到控制电路220,通过输入/输出电路270,将数据从外部设备传输到列解码器260,或将数据从列解码器260输出到外部设备。
控制电路220可响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列200的存储块211。
参照图3,存储块211可包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可串联联接在选择晶体管DST和SST之间。存储器单元MC0至MCn-1的每一个可由每个单元中存储多位的数据信息的多层单元(MLC)形成。单元串221可分别电联接到相应的位线BL0至BLm-1。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于NAND闪速存储器,而是可包括NOR型闪速存储器、其中组合两种或更多种类型的存储器单元的混合闪速存储器以及其中将控制器嵌入到存储器芯片内的1-NAND闪速存储器。
在图4中示出了存储器系统40的一般性示例。存储器系统40可包括易失性存储器400(例如,DRAM)以及与易失性存储器400通信的非易失性存储器(NVM)402(例如,NAND)。易失性存储器400可包括诸如本文所述的控制器的控制器404、错误校正码模块406以及用于将位的物理地址映射到逻辑地址的逻辑位地址LBA表410。NVM402可包括多个存储块(和/或多个超级存储块),也包括用于主机写入430的开放块和用于垃圾收集(GC)440的开放块。存储器系统40示出了通用存储器系统,并且本领域技术人员将理解可以与存储器系统一起使用以实现本文公开的发明的附加/替代部件。
如本文所提及的,诸如“NAND”或“NVM”的术语可指非易失性存储器,例如可实施错误校正码进程的闪速存储器。此外,“DRAM”可指可包括诸如控制器和ECC模块的部件的易失性存储器。
低密度奇偶校验(LDPC)码是一系列线性块前向错误校正(FEC)码,其奇偶校验矩阵可以由低密度奇偶校验矩阵表示。存在许多LDPC码的迭代解码算法,诸如位翻转(BF)解码算法、置信传播(BP)解码算法、和积(SP)解码算法、最小和解码算法、Min-Max解码算法等。
通常在BF算法中,存在用于确定变量节点是否需要翻转和需要翻转的位置的两个因素。第一因素可被称为每个变量节点的翻转指示符。u(j)在本文中用于表示变量节点j的翻转指示符。第二因素可被称为翻转阈值,本文称为T。在每次迭代中,u(j)和T基于一些规则进行计算。在计算/确定u(j)和T之后,变量节点j是否将被翻转基于u(j)和T之间的关系。例如,如果u(j)大于T,则变量节点j将被翻转。否则,变量节点j仍然与前一迭代的判决相同。
如果仅提供了硬信道信息,则u(j)仅考虑连接到变量节点j的不满足的校验节点的数量,但并未利用变量节点j的信道信息。在本文公开的BF算法中,使用了邻近于变量节点j的不满足的校验节点的数量和变量节点j的硬信道信息。除了u(j)的计算方法以外,还公开了自适应翻转阈值T计算流程。通过应用这两个改进,可显著提高BF算法的错误校正性能。
图5是根据本发明的方面的用于解码的示例性进程中的步骤的流程图50。流程图50中所示的步骤是示例性而非排他的,使得本领域技术人员将理解,在不脱离本文公开的发明性概念的情况下,为了实现本发明可执行附加步骤、替代步骤、步骤的替代顺序等。步骤500至512可通过本文所述的诸如控制器、DRAM、ECC单元的存储器部件,和/或通过本公开将了解的其它合适的部件(例如,参照图1至图4所述的部件)来执行。
在步骤500中,解码进程被初始化。例如,假设x=[x0,x1,…,xN-1]为位向量,并且H=[hi,j]为在行i和列j的交叉处具有二进制值hi,j的M×N低密度奇偶校验矩阵。然后,H的每一行为x提供奇偶校验。如果x为H的码字,则xHT=0。在示例中,x通过有扰信道传输,并且损坏的信道输出为y=[y0,y1,...,yN-1]。y的校正子为通过s=[s0,s1,...,sM-1]=yHT计算的二进制向量,权重为||s||,其表示不满足的校验节点的数量。因此,可通过确定x、s、y、H等来初始化解码进程。
在步骤502中,确定了在解码迭代中信道输出的不满足的校验节点的数量。如本文所使用的,||sj||表示与变量节点j连接的不满足的校验节点的数量。如本文所述,变量节点j可表示解码迭代正在处理的当前变量节点。因此,用于解码的迭代处理变量节点j的不满足的校验节点的数量为||sj||,信道输出为yj
在步骤504中,更新变量节点的翻转指示符。翻转指示符u(j)可针对变量节点j进行更新。例如,假设t(0≤t≤tmax)表示迭代次数,表示第t次迭代的变量节点j的判决(例如,硬判决、硬信道信息等),并且假设 则s(-1)=yHT。如果则翻转指示符可在第t迭代中被更新,否则u(j)=‖sj‖+α。α可以为各种不同的值。例如,当不等于yj时,如果α被设置为1,则u(j)=‖sj‖+1。可选地,如果来自变量节点j的硬判决(例如,硬信道信息)等于信道输出(例如,损坏的信道输出),则在变量节点j的解码迭代期间,翻转指示符可被更新以被设置成与变量节点j连接的不满足的校验节点的数量的值。否则,翻转指示符可设置成被因子α改变的值。
在步骤506中,通过将翻转指示符与翻转阈值进行比较来确定是否对变量节点执行位翻转操作。例如,如果翻转指示符大于翻转阈值,则可翻转该位。如果翻转指示符小于或等于翻转阈值,则该位可不被翻转,或可选地,可被设置成前一迭代中的变量节点的值。可选地在变量的情况下,对于0≤j≤N-1,比较u(j)和T。如果u(j)>T,否则其中N为LDPC矩阵中的列的数量(例如,码字的数量)。
在步骤508中,可更新与解码进程相关的翻转阈值。翻转阈值可以是自适应翻转阈值,其被配置成在解码进程期间按需适应(例如,改变)以便提升成功的可能性(和精确解码)。
为了生成自适应翻转阈值T,迭代次数、前一迭代的不满足的校验节点的数量以及在前一迭代中翻转的变量节点的数量都要进行考虑。假设p为在前一迭代中翻转的变量节点的数量,虽然本领域技术人员将理解在不脱离本文公开的本发明的情况下可利用可选的适当的算法,但可使用下面公开的以下算法:
如果(t==0)并且(||s||<β1),T=δ1;
否则如果(t==0),T=δ1-1;
否则如果(t==1),T=δ1;
否则如果(p==0),T=T-1;
否则如果(t>ε)且(||s||≤β2),T=δ2;
否则如果(||s||<β3)且(p>θ1)且(T+1)<δ3,T=T+1;
否则如果(||s||<β3)且(p>θ1),T=δ3;
否则如果(p≤θ2)且(||s||>β3),T=max(δ4,T-1).
否则T=T
变量(β1,β2,β3,δ1,δ2,δ3,δ4,θ1,θ2,ε)是可以自适应配置的一组参数。例如:(β1,β2,β3,δ1,δ2,δ3,δ4,θ1,θ2,ε)=(50,20,9999,5,4,5,3,10,10,10)。这些参数可能与代码参数相关,并且可以通过针对不同的最优目标的模拟来确定,例如实现最佳错误校正性能或获得最快的收敛速度。
在步骤510中,如果解码未成功,可对后续解码迭代和后续变量节点重复步骤502、504、506和508。在步骤512中,如果解码成功或者如果达到最大的迭代次数,则解码进程结束。例如,如果可通过不满足的校验节点的数量是否等于零而确定的解码是成功的,或者如果解码进程达到解码迭代的最大次数,其中解码迭代的最大次数可被设置成待解码的码字的数量,或者如本领域技术人员从本公开中将理解的其它因素,则解码进程结束。
尽管为了清楚理解已经对前述实施例进行了一些细节的描述,但是本发明不限于所提供的细节。存在许多可选的方法来实施本发明。所公开的实施例是说明性的而非限制性的。

Claims (18)

1.一种存储器系统,其包括:
存储装置;以及
错误校正码单元,即ECC单元,其适于:
确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;
更新变量节点的翻转指示符;
将所述变量节点的翻转指示符同与所述解码进程相关的翻转阈值进行比较;
当所述翻转指示符大于所述翻转阈值时,翻转所述变量节点的位;并且
当确定解码成功或达到最大的迭代次数时,结束所述解码进程。
2.根据权利要求1所述的存储器系统,其中所述变量节点的所述翻转指示符以邻近于所述变量节点的不满足的校验节点的数量和所述变量节点的硬信道信息为基础。
3.根据权利要求1所述的存储器系统,其中所述ECC单元进一步适于:当所述变量节点的硬判决等于所述变量节点的解码迭代的信道输出时,通过将所述变量节点的翻转指示符设置成所述解码迭代中确定的不满足的校验节点的数量来更新所述变量节点的所述翻转指示符。
4.根据权利要求1所述的存储器系统,其中所述ECC单元进一步适于更新与所述解码进程相关的所述翻转阈值。
5.根据权利要求4所述的存储器系统,其中所述翻转阈值基于所述解码进程的迭代次数、前一解码迭代的不满足的校验节点的数量或在所述前一解码进程中翻转的变量节点的数量来更新。
6.根据权利要求1所述的存储器系统,其中所述ECC单元进一步适于:当确定的不满足的校验的数量为零时,确定所述解码进程成功。
7.一种方法,其包括:
确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;
更新变量节点的翻转指示符;
将所述变量节点的翻转指示符同与所述解码进程相关的翻转阈值进行比较;
当所述翻转指示符大于所述翻转阈值时,翻转所述变量节点的位;并且
当确定解码成功或达到最大的迭代次数时,结束所述解码进程。
8.根据权利要求7所述的方法,其中所述变量节点的所述翻转指示符以邻近于所述变量节点的不满足的校验节点的数量和所述变量节点的硬信道信息为基础。
9.根据权利要求7所述的方法,其进一步包括:当所述变量节点的硬判决等于所述变量节点的解码迭代的信道输出时,通过将所述变量节点的所述翻转指示符设置成所述解码迭代中确定的不满足的校验节点的数量来更新所述变量节点的所述翻转指示符。
10.根据权利要求7所述的方法,其进一步包括更新与所述解码进程相关的所述翻转阈值。
11.根据权利要求10所述的方法,其中所述翻转阈值基于所述解码进程的迭代次数、前一解码迭代的不满足的校验节点的数量或在前一解码进程中翻转的变量节点的数量来更新。
12.根据权利要求7所述的方法,其进一步包括:当确定的不满足的校验的数量为零时,确定所述解码进程成功。
13.一种存储器装置,其包括:
存储装置;以及
错误校正码单元,即ECC单元,其被配置成:
确定在解码进程的解码迭代中的信道输出的不满足的校验节点的数量;
更新变量节点的翻转指示符;
将所述变量节点的翻转指示符同与所述解码进程相关的翻转阈值进行比较;
当所述翻转指示符大于所述翻转阈值时,翻转所述变量节点的位;并且
当确定解码成功或达到最大的迭代次数时,结束所述解码进程。
14.根据权利要求13所述的存储器装置,其中所述变量节点的所述翻转指示符以邻近于所述变量节点的不满足的校验节点的数量和所述变量节点的硬信道信息为基础。
15.根据权利要求13所述的存储器装置,其中所述ECC单元被进一步配置成:当所述变量节点的硬判决等于所述变量节点的解码迭代的信道输出时,通过将所述变量节点的所述翻转指示符设置成所述解码迭代中确定的不满足的校验节点的数量来更新所述变量节点的所述翻转指示符。
16.根据权利要求13所述的存储器装置,其中所述ECC单元被进一步配置成更新与所述解码进程相关的所述翻转阈值。
17.根据权利要求16所述的存储器装置,其中所述翻转阈值基于所述解码进程的迭代次数、前一解码迭代的不满足的校验节点的数量或在前一解码进程中翻转的变量节点的数量来更新。
18.根据权利要求13所述的存储器装置,其中所述ECC单元被进一步配置成:当确定的不满足的校验的数量为零时,确定所述解码进程成功。
CN201710818453.9A 2016-11-08 2017-09-12 具有硬信道信息的位翻转ldpc解码算法 Active CN108073467B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/346,158 US10148287B2 (en) 2016-11-08 2016-11-08 Bit-flipping LDPC decoding algorithm with hard channel information
US15/346,158 2016-11-08

Publications (2)

Publication Number Publication Date
CN108073467A true CN108073467A (zh) 2018-05-25
CN108073467B CN108073467B (zh) 2021-06-15

Family

ID=62064863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710818453.9A Active CN108073467B (zh) 2016-11-08 2017-09-12 具有硬信道信息的位翻转ldpc解码算法

Country Status (3)

Country Link
US (1) US10148287B2 (zh)
CN (1) CN108073467B (zh)
TW (1) TWI705452B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381998A (zh) * 2018-12-28 2020-07-07 爱思开海力士有限公司 数据处理装置
CN111726121A (zh) * 2019-03-19 2020-09-29 爱思开海力士有限公司 错误校正解码器和具有该错误校正解码器的存储器系统
CN112783685A (zh) * 2019-11-11 2021-05-11 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的位翻转解码器
CN112860474A (zh) * 2019-11-12 2021-05-28 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的软位翻转解码器

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965319B2 (en) * 2018-10-25 2021-03-30 PetaIO Inc. Bit flipping algorithm for decoding LDPC-encoded data
US10951232B2 (en) 2018-11-26 2021-03-16 Micron Technology, Inc. Error correction bit flipping scheme
CN111435838B (zh) * 2019-01-14 2022-06-14 华为技术有限公司 译码方法、装置及设备
US11271589B2 (en) 2019-10-18 2022-03-08 SK Hynix Inc. Memory system with error-reduction scheme for decoding and method of operating such memory system
US11184024B2 (en) 2019-12-02 2021-11-23 SK Hynix Inc. Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
US11108407B1 (en) * 2020-03-09 2021-08-31 SK Hynix Inc. Performance of a bit flipping (BF) decoder of an error correction system
US11967970B2 (en) * 2022-09-14 2024-04-23 SK Hynix Inc. Bit-flipping decoder and decoding method for irregular codes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312354B1 (en) * 2007-12-27 2012-11-13 Marvell International Ltd. Method and apparatus for improved performance of iterative decoders on channels with memory
CN104995844A (zh) * 2013-02-14 2015-10-21 马维尔国际贸易有限公司 具有对于ldpc码可靠性输入的比特翻转解码
US20160179620A1 (en) * 2014-06-30 2016-06-23 Sandisk Technologies Inc. Multi-stage decoder

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614548B1 (en) * 2013-07-08 2017-04-04 Marvell International Ltd. Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
US9614547B2 (en) * 2014-06-30 2017-04-04 Sandisk Technologies Llc Multi-stage decoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312354B1 (en) * 2007-12-27 2012-11-13 Marvell International Ltd. Method and apparatus for improved performance of iterative decoders on channels with memory
CN104995844A (zh) * 2013-02-14 2015-10-21 马维尔国际贸易有限公司 具有对于ldpc码可靠性输入的比特翻转解码
US20160179620A1 (en) * 2014-06-30 2016-06-23 Sandisk Technologies Inc. Multi-stage decoder

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381998A (zh) * 2018-12-28 2020-07-07 爱思开海力士有限公司 数据处理装置
CN111381998B (zh) * 2018-12-28 2023-09-01 爱思开海力士有限公司 数据处理装置
CN111726121A (zh) * 2019-03-19 2020-09-29 爱思开海力士有限公司 错误校正解码器和具有该错误校正解码器的存储器系统
CN111726121B (zh) * 2019-03-19 2024-04-09 爱思开海力士有限公司 错误校正解码器和具有该错误校正解码器的存储器系统
CN112783685A (zh) * 2019-11-11 2021-05-11 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的位翻转解码器
CN112783685B (zh) * 2019-11-11 2024-04-09 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的位翻转解码器
CN112860474A (zh) * 2019-11-12 2021-05-28 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的软位翻转解码器
CN112860474B (zh) * 2019-11-12 2024-03-15 爱思开海力士有限公司 快速收敛的低密度奇偶校验码的软位翻转解码器

Also Published As

Publication number Publication date
US20180131389A1 (en) 2018-05-10
TW201818420A (zh) 2018-05-16
US10148287B2 (en) 2018-12-04
TWI705452B (zh) 2020-09-21
CN108073467B (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN108073467A (zh) 具有硬信道信息的位翻转ldpc解码算法
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
CN107731259B (zh) 最佳读取参考电压的存储器系统及其操作方法
US10296452B2 (en) Data separation by delaying hot block garbage collection
US10148293B2 (en) Incremental LLR generation for flash memories
CN107957959A (zh) 具有文件级安全擦除的存储器系统及其操作方法
CN109428606A (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110275796A (zh) 具有混合解码方案的存储器系统及其操作方法
CN110444242A (zh) 有基于深度学习的干扰校正能力的存储器系统及操作方法
US11182243B2 (en) Memory system with adaptive information propagation and method of operating such memory
CN107977283A (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110277124A (zh) 具有混合解码方案的存储器系统及其操作方法
CN112687323B (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
US10055168B2 (en) Delaying hot block garbage collection with adaptation
US11036579B2 (en) Decoder for memory system and method thereof
CN110277999A (zh) Ldpc解码装置、包括其的存储器系统及其方法
US11356123B2 (en) Memory system with low-complexity decoding and method of operating such memory system
US20220165336A1 (en) Systems for adaptively determining read threshold voltage using meta information
US11062758B2 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
US11074128B2 (en) Memory system with hybrid iterative decoding capability and method of operating such memory system
US11115062B2 (en) Memory system with adaptive threshold decoding and method of operating such memory system
CN110047554B (zh) 具有超级芯片删除恢复的存储器系统及其操作方法
CN112216328B (zh) 具有低复杂度解码的存储器系统及其操作方法
CN108073469A (zh) 用于通用产品代码的数据映射方案

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant