CN112216328A - 具有低复杂度解码的存储器系统及其操作方法 - Google Patents

具有低复杂度解码的存储器系统及其操作方法 Download PDF

Info

Publication number
CN112216328A
CN112216328A CN202010452007.2A CN202010452007A CN112216328A CN 112216328 A CN112216328 A CN 112216328A CN 202010452007 A CN202010452007 A CN 202010452007A CN 112216328 A CN112216328 A CN 112216328A
Authority
CN
China
Prior art keywords
decoding
decoder
variable nodes
column weight
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010452007.2A
Other languages
English (en)
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 CN112216328A publication Critical patent/CN112216328A/zh
Pending legal-status Critical Current

Links

Images

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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/1131Scheduling of bit node or check node processing
    • 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

Landscapes

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

Abstract

本公开涉及一种对不规则低密度奇偶校验(LDPC)码的码字选择性地执行位翻转(BF)解码和最小和(MS)解码的存储器控制器、解码器以及方法。针对具有相对高的列权重的变量节点执行位翻转(BF)解码。针对具有相对低的列权重的变量节点执行MS解码。列权重阈值用于将变量节点分组为较高列权重组和较低列权重组。两种解码技术在整个解码过程中交换结果。

Description

具有低复杂度解码的存储器系统及其操作方法
技术领域
本公开的实施例涉及一种存储器系统及其组件以及操作这种存储器系统的方法,该存储器系统及其组件能够执行低复杂度解码,特别是对不规则低密度奇偶校验(LDPC)码执行低复杂度解码。
背景技术
计算机环境范例已经转变成可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增长。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于用作存储器装置的数据存储装置不具有移动部件,因此它们提供优异的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接到SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行诸如固件的功能组件的嵌入式处理器。SSD功能组件通常是特定于装置的,并且在大多数情况下可以更新。
闪速存储器的两种主要类型以NAND和NOR逻辑门命名。单个闪速存储器单元表现出与其相应门相似的内部特性。NAND型闪速存储器可以以块(或页面)来进行写入和读取,这些块(或页面)通常比整个存储器空间小得多。NOR型闪速存储器允许将单个机器字(字节)写入已擦除的位置或独立地读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、固态驱动器(SSD)和类似产品中操作,用于一般数据的存储和传送。
例如NAND型的闪速存储器可以应用各种错误校正码中的任意一种来校正数据中的错误。一种这样的错误校正码是低密度奇偶校验码(LDPC),其是一种用于恢复数据中相对大量的错误的高级错误码。LDPC码是一类线性分组码,其特征在于奇偶校验矩阵与数量0相比仅包含几个1。
一种类型的LDPC码是不规则LDPC码,其列权重分布不均匀。例如,不规则LDPC码的列权重可以小至3,也可以大至20。与规则LDPC码相比,不规则LDPC码的优点是具有更好的最小和(MS)解码性能。
位翻转(BF)解码算法对于SSD应用(尤其是移动和客户端SSD应用)非常重要,因为这类应用对功耗有严格的要求。通常在SSD控制器中,使用BF和MS解码器两者。BF解码器可以对大多数接收到的具有少量错误的码字进行解码,以减少SSD控制器的功耗,MS解码器可以用于对接收到的具有大量错误的码字进行解码,以提供良好的错误校正性能。通常,由于列权重较低,与规则LDPC码相比,BF解码器对不规则LDPC码性能较差。因此,BF解码器算法不适用于不规则LDPC码。
在这种背景下,提出了本发明的实施例。
发明内容
本发明的实施例提供了一种改进的解码器和与不同子算法相关联的解码算法,其与应用于不规则LDPC码的常规BF解码器相比表现出更好的错误校正性能。此外,与MS解码器相比,这种新的BF解码器仍具有更低的复杂度和更低的功耗。
本发明的一方面包括一种存储器控制器。该存储器控制器包括:存储装置;以及解码器,可操作地联接到该存储装置,并且被配置成对接收到的至少可由变量节点表示的代码的码字执行解码。解码器进一步被配置成:针对第一组变量节点执行位翻转(BF)解码,该第一组中的每个变量节点的列权重都大于或等于列权重阈值;并且针对第二组变量节点执行最小和(MS)解码,该第二组中的每个变量节点的列权重都小于列权重阈值。
在另一方面,提供了一种解码器,用于对接收到的至少可由变量节点表示的代码的码字进行解码。该解码器包括:位翻转(BF)解码模块,被配置成针对第一组变量节点执行BF解码,该第一组中的每个变量节点的列权重都大于或等于列权重阈值;以及最小和(MS)解码模块,被配置成针对第二组变量节点执行MS解码,该第二组中的每个变量节点的列权重都小于列权重阈值。
本发明的进一步的方面包括解码方法,其可以由存储器控制器及其组件(诸如解码器)执行。在这方面,本发明的另一方面涉及一种用于对接收到的可由变量节点和校验节点表示的代码的码字进行解码的方法。该方法包括以下步骤:使用位翻转(BF)算法来更新第一组变量节点的判决,以获得第一组的变量节点的更新的判决,每个变量节点在第一组中;使用第一组的变量节点的更新的判决来更新码字的校正子向量;使用最小和(MS)算法来更新校验节点与第二组变量节点之间的消息,以获得第二组的变量节点的更新的判决;以及使用第一组的变量节点的更新的判决来更新校正子向量。第一组的变量节点和第二组的变量节点是互斥的组。
从以下描述中,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是根据本发明的实施例的存储器系统的示意图。
图5示出了根据本发明的实施例的解码方案的Tanner图表示。
图6是示出根据本发明的实施例的解码方案的流程图。
图7是示出根据本发明实施例的对规则码进行解码的进程中的步骤的流程图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实现,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使得本公开是彻底和完全的,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个本公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以多种方式实施,包括作为进程;设备;系统;物质的组成;实现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适用于运行存储在联接到处理器的存储器上和/或由其提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式都可以被称为技术。通常,在本发明的范围内可以改变所公开的过程的步骤的顺序。除非另有说明,否则被描述为适用于执行任务的诸如处理器或存储器的组件可以被实施为临时被配置成在给定时间执行任务的通用组件或者为执行任务而制造的特定组件。如本文所使用的,术语“处理器”等指代适用于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供本发明的实施例的详细描述以及说明本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅受权利要求的限制。本发明包含在权利要求范围内的许多替代、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是出于示例的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求实践。为了简洁,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示意性示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,该半导体存储器装置200可以表示多于一个这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。为了简洁,半导体存储器装置200有时被简称为存储器装置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)、便携式计算机、网络平板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、可以被实施为例如中央处理单元(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和MS解码器145,或者在单个解码器中实现每个解码器的功能。如下面将更详细地说明,这种单个解码器被配置成执行具有关于不规则LDPC码的BF和MS子算法的解码方案。
主机接口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以及存储器系统40的这些组件通信所通过的总线408。易失性存储器400可以包括用于将位的物理到逻辑地址进行映射的逻辑位地址(LBA)表410。NVM 402可以包括多个存储块,以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。为了某些功能,可以将多个存储块一起分组为超级块。
ECC模块406可以包括BF解码器406A和MS解码器406B,它们可以分别对应于图2中的BF解码器135和MS解码器145。包括BF解码器406A和MS解码器406B的ECC模块406可以用于执行本发明的各方面。在另一实施例中,ECC模块406可以包括被实现为或集成为单个单元的这些类型的解码器的功能。根据本公开,本领域技术人员将理解可以与存储器系统一起利用附加/可选组件以实现本发明。
如前所述,本发明的实施例提供了一种新的解码器以及与用于BF和MS解码的子算法相关联的解码方案,其与应用于不规则LDPC码的常规BF解码器相比具有更好的校正性能,同时比典型的MS解码器具有更低的复杂度和更低的功耗。
给定不规则LDPC码,根据其列权重将其变量节点划分为两组。一组(SL)包含变量节点,变量节点中的每个变量节点的列权重都较低。每个具有较高列权重的其他变量节点都属于其他组(SH)。列权重阈值将两组变量节点分开。在实施例中,列权重阈值为4,在这种情况下,SH组包括列权重大于或等于4的变量节点中的每一个,SL组包括列权重小于4的变量节点中的每一个。可以使用其他合适的列权重阈值,这些阈值可以在考虑系统约束和期望的性能标准的情况下确定。
SH中的变量节点采用BF解码算法,SL中的变量节点采用MS算法。在解码进程中,这两种算法交换解码结果,直到校正了接收到的码字或达到最大迭代次数。
图5示出了在不规则LDPC码的Tanner图50的情况下的解码算法及其规则的实施例。参照图5,Tanner图50示出最小和(MS)解码方面51和位翻转(BF)解码方面52。MS解码方面51包括i个变量节点的SL组53,BF解码方面52包括j个变量节点的SH组54,其中i+j=n,n为变量节点的总数。不规则LDPC码具有m个校验节点C1、C2、C3、……、Cm,这对于MS和BF解码两者都是相同的。
列权重阈值表示为T-CW。SH组54包括其每个的列权重不小于(或大于或等于)T-CW的所有变量节点,SL组53包括所有其他变量节点,即每个的列权重均小于T-CW的所有变量节点。如上所述,T-CW可以为4。
具有BF解码器135/406A和MS解码器145/406B的功能的解码器可以用于执行根据本发明实施例的解码方案或算法。也就是说,这种解码器被配置成执行BF算法和MS算法两者。图6示出示例性处理的流程图60。
参照图6的流程图60,其次参照其他附图,在步骤601中,计算校正子向量。在步骤602中,BF算法更新SH组54中的变量节点的判决。然后,在步骤603中,使用来自步骤602的SH组54中变量节点的新的硬判决来更新校正子向量。在步骤604采用MS算法以更新SL组53中的校验节点和变量节点之间的消息,并获得针对该变量节点的更新的硬判决。在步骤605中,使用SL组53中变量节点的新的硬判决,更新校正子向量。
然后在步骤606中确定是否所有校正子位都为零。如果是,则解码成功(步骤607),在这种情况下,返回针对所有变量的硬判决。如果在步骤606处为否,则进程继续至步骤608,在步骤608中,确定当前迭代次数是否等于或已经达到最大迭代次数。如果是,则说明解码失败。如果尚未达到最大迭代次数(在步骤608处为“否”),则进程返回步骤602并从该处重复。
图7是根据本发明的实施例的描述对接收到的例如不规则LDPC码的由变量节点和校验节点表示的代码的码字进行解码的过程中的步骤。流程图70中所示的步骤是示例性的。本领域技术人员将理解的是,可以执行附加和/或可选的步骤,或者可以改变步骤的顺序,以实现本发明的各方面,而不背离本文公开的发明构思。参照其他附图,特别是图2、图4和图5来描述图7。
如前所述,在各个实施例中,基于变量节点的各自列权重将其分组为高列权重组和低列权重组。这种分组或分类可以在解码开始之前的任何适当的时间进行。
参照图7,在步骤701,ECC组件130、406或具有BF和MS解码能力的解码器接收利用不规则LDPC码编码的码字。在步骤702,使用BF解码来更新高列权重变量节点的解码判决。然后,在步骤703,基于步骤702的结果来更新校正子向量。在步骤704,使用MS解码来更新低列权重变量节点的解码判决。然后,在步骤705,此次基于步骤704的结果再次更新校正子向量。然后在步骤706评估校正子向量以确定解码是否成功。
如前所述,本发明的实施例通过根据变量节点的列权重选择性地对它们采用BF解码和MS解码来提供改进的LDPC码的解码,特别是不规则LDPC码的解码。解码方案提高了诸如基于闪存和企业级SSD的存储器系统的性能。
尽管为了清楚和理解,前述实施例已经进行了一些细节上的描述,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在实施本发明的许多替代方式。因此所公开的实施例是说明性的而非限制性的。

Claims (16)

1.一种存储器控制器,包括:
存储装置;以及
解码器,可操作地联接到所述存储装置,并且对接收到的至少可由变量节点表示的代码的码字执行解码;
其中所述解码器进一步:
针对第一组变量节点执行位翻转解码即BF解码,所述第一组中的每个变量节点的列权重都大于或等于列权重阈值,并且
针对第二组变量节点执行最小和解码即MS解码,所述第二组中的每个变量节点的列权重都小于所述列权重阈值。
2.根据权利要求1所述的存储器控制器,其中所述代码是不规则低密度奇偶校验码即不规则LDPC码。
3.根据权利要求1所述的存储器控制器,其中在解码期间,交换所述BF解码和所述MS解码的结果。
4.根据权利要求1所述的存储器控制器,其中所述解码器执行BF解码以更新所述第一组中的变量节点的判决。
5.根据权利要求1所述的存储器控制器,其中所述解码器执行MS解码以更新所述第二组中的变量节点的判决。
6.一种解码器,所述解码器对接收到的至少可由变量节点表示的代码的码字进行解码,所述解码器包括:
位翻转解码模块即BF解码模块,针对第一组变量节点执行BF解码,所述第一组中的每个变量节点的列权重都大于或等于列权重阈值;以及
最小和解码模块即MS解码模块,针对第二组变量节点执行MS解码,所述第二组中的每个变量节点的列权重都小于所述列权重阈值。
7.根据权利要求6所述的解码器,其中所述BF解码模块被集成在作为所述解码器的一部分的BF解码器中。
8.根据权利要求7所述的解码器,其中所述MS解码模块被集成在作为所述解码器的一部分的MS解码器中。
9.根据权利要求6所述的解码器,其中所述BF解码模块和所述MS解码模块各包括在所述解码器中实现的子算法。
10.根据权利要求6所述的解码器,其中所述BF解码模块和所述MS解码模块在解码期间交换结果。
11.一种方法,所述方法对接收到的可由变量节点和校验节点表示的代码的码字进行解码,所述方法包括以下步骤:
使用位翻转算法即BF算法来更新第一组述变量节点的判决,以获得所述第一组的变量节点的更新的判决,每个变量节点在所述第一组中;
使用所述第一组的变量节点的更新的判决来更新所述码字的校正子向量;
使用最小和算法即MS算法来更新所述校验节点与第二组变量节点之间的消息,以获得所述第二组的变量节点的更新的判决;以及
使用所述第一组的变量节点的更新的判决来更新所述校正子向量,
其中所述第一组变量节点和所述第二组变量节点是互斥的组。
12.根据权利要求11所述的方法,其中所述代码是不规则低密度奇偶校验码即不规则LDPC码。
13.根据权利要求11所述的方法,其中所述BF算法和所述MS算法交换解码结果。
14.根据权利要求11所述的方法,进一步包括:
确定所述校正子向量的所有校正子位是否都为零,并且当确定不是所有校正子位都为零时,执行解码的另一迭代,直到最大迭代次数。
15.根据权利要求11所述的方法,进一步包括:
在更新所述第一组变量节点的判决之前计算所述校正子向量。
16.根据权利要求11所述的方法,其中所述第一组中的每个变量节点的列权重都大于或等于列权重阈值,并且所述第二组中的每个变量节点的列权重都小于所述列权重阈值。
CN202010452007.2A 2019-07-12 2020-05-26 具有低复杂度解码的存储器系统及其操作方法 Pending CN112216328A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/510,318 2019-07-12
US16/510,318 US11356123B2 (en) 2019-07-12 2019-07-12 Memory system with low-complexity decoding and method of operating such memory system

Publications (1)

Publication Number Publication Date
CN112216328A true CN112216328A (zh) 2021-01-12

Family

ID=74058756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010452007.2A Pending CN112216328A (zh) 2019-07-12 2020-05-26 具有低复杂度解码的存储器系统及其操作方法

Country Status (2)

Country Link
US (1) US11356123B2 (zh)
CN (1) CN112216328A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11929762B2 (en) 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087933A1 (en) * 2009-10-12 2011-04-14 Nedeljko Varnica Power consumption in ldpc decoder for low-power applications
US9294132B1 (en) * 2011-11-21 2016-03-22 Proton Digital Systems, Inc. Dual-stage data decoding for non-volatile memories
US20190068219A1 (en) * 2017-08-31 2019-02-28 SK Hynix Inc. Bit-flipping decoder for g-ldpc codes with syndrome-decoding for component codes
US20190097652A1 (en) * 2017-09-25 2019-03-28 SK Hynix Inc. Memory system decoding design and operating method thereof
US20190097653A1 (en) * 2017-09-22 2019-03-28 SK Hynix Memory Solutions America Inc. Memory system with decoders and method of operating such memory system and decoders

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594818B1 (ko) 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
KR101021465B1 (ko) 2005-10-26 2011-03-15 삼성전자주식회사 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서 신호수신 장치 및 방법
US10230396B1 (en) * 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US10291261B2 (en) * 2016-04-25 2019-05-14 SK Hynix Inc. Early selection decoding and automatic tuning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087933A1 (en) * 2009-10-12 2011-04-14 Nedeljko Varnica Power consumption in ldpc decoder for low-power applications
US9294132B1 (en) * 2011-11-21 2016-03-22 Proton Digital Systems, Inc. Dual-stage data decoding for non-volatile memories
US20190068219A1 (en) * 2017-08-31 2019-02-28 SK Hynix Inc. Bit-flipping decoder for g-ldpc codes with syndrome-decoding for component codes
US20190097653A1 (en) * 2017-09-22 2019-03-28 SK Hynix Memory Solutions America Inc. Memory system with decoders and method of operating such memory system and decoders
US20190097652A1 (en) * 2017-09-25 2019-03-28 SK Hynix Inc. Memory system decoding design and operating method thereof

Also Published As

Publication number Publication date
US20210013905A1 (en) 2021-01-14
US11356123B2 (en) 2022-06-07

Similar Documents

Publication Publication Date Title
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
CN110444246B (zh) 用于存储器系统的相邻辅助校正错误恢复及其方法
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN109671465B (zh) 具有自适应读取阈值方案的存储器系统及其操作方法
CN110275796B (zh) 具有混合解码方案的存储器系统及其操作方法
CN110750380B (zh) 具有奇偶校验高速缓存方案的存储器系统以及操作方法
US11182243B2 (en) Memory system with adaptive information propagation and method of operating such memory
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
US11538547B2 (en) Systems and methods for read error recovery
CN112687323B (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
US11907571B2 (en) Read threshold optimization systems and methods using domain transformation
US11036579B2 (en) Decoder for memory system and method thereof
CN112416298A (zh) 闪速存储器的基于原始读取的物理不可克隆功能
US11356123B2 (en) Memory system with low-complexity decoding and method of operating such memory system
US11210008B2 (en) Memory system for multi-clustering read thresholds and method thereof
CN110444245B (zh) 具有混合迭代解码能力的存储器系统及其操作方法
CN110275844B (zh) 利用自适应阈值解码的存储器系统及其操作方法
CN110941567B (zh) 存储器控制器及其操作方法
US20200090731A1 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
CN110047554B (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