CN107634764B - 使用低密度奇偶校验码的解码器及存储控制器 - Google Patents

使用低密度奇偶校验码的解码器及存储控制器 Download PDF

Info

Publication number
CN107634764B
CN107634764B CN201710590347.XA CN201710590347A CN107634764B CN 107634764 B CN107634764 B CN 107634764B CN 201710590347 A CN201710590347 A CN 201710590347A CN 107634764 B CN107634764 B CN 107634764B
Authority
CN
China
Prior art keywords
strong error
node
channel
value
decoder
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
CN201710590347.XA
Other languages
English (en)
Other versions
CN107634764A (zh
Inventor
金成来
孔奎烈
李起准
孔骏镇
孙弘乐
慎钒揆
郑宪华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107634764A publication Critical patent/CN107634764A/zh
Application granted granted Critical
Publication of CN107634764B publication Critical patent/CN107634764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • 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/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/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
    • 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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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

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)
  • Detection And Correction Of Errors (AREA)

Abstract

本申请提供一种解码器和包括该解码器的存储控制器。该解码器包括:通道映射器,其配置为基于硬判决信息和软判决信息生成多个通道接收值;强错误检测器,其配置为使用多个校验节点消息和通道接收值确定强错误是否发生,并且根据确定结果校正通道接收值以产生经校正的通道接收值;变量节点单元,其配置为使用校验节点消息和经校正的通道接收值产生多个变量节点消息;以及校验节点单元,其配置为使用变量节点消息产生校验节点消息。变量节点单元包括多个变量节点,并且校验节点单元包括多个校验节点。

Description

使用低密度奇偶校验码的解码器及存储控制器
相关申请的交叉引用
本申请要求于2016年7月19日提交的韩国专利申请No.10-2016-0091397的优先权,该申请的公开内容以引用方式全文并入本文中。
技术领域
本发明构思的示例性实施例涉及一种使用低密度奇偶检验(LDPC)码的解码器和/或包括该解码器的存储控制器。
背景技术
在半导体存储器领域,可以使用基于纠错码的编码和解码技术来校正由噪声引起的错误。在这些纠错码中,使用基于概率的迭代操作的LDPC码已经受到关注。
在NAND闪存器件中可能会发生强错误(strong error),其中强错误是因为在由于相邻单元的程序状态之间的干扰而发生的错误当中干扰程度高而使得较大值分配给解码器的通道对数似然比(LLR)的绝对值的错误。强错误可能会使使用LDPC码的解码器的纠错性能显著恶化。在具有较高的强错误率的NAND闪存器件中,LDPC解码器的校正性能可能会大大降低。
发明内容
根据本发明构思的一些示例性实施例,解码器可以包括:通道映射器,其配置为基于硬判决信息和软判决信息产生多个通道接收值;以及强错误检测器,其配置为使用多个校验节点消息和通道接收值确定是否存在强错误,并且如果强错误检测器检测到存在强错误,则校正通道接收值以产生经校正的通道接收值。
根据本发明构思的其他示例性实施例,存储控制器可以包括解码器,其配置为将数据编程到存储器和中央处理单元(CPU)。解码器可以包括:通道映射器,其配置为基于硬判决信息和软判决信息产生多个通道接收值;以及强错误检测器,其配置为使用多个校验节点消息和通道接收值确定是否存在强错误,并且如果存在强错误,则校正通道接收值以产生经校正的通道接收值。CPU可以配置为指示强错误检测器在第一模式和第二模式之一下工作,第一模式是强错误检测器执行校正的模式,第二模式是强错误检测器不执行校正的模式。
根据本发明构思的其他示例性实施例,解码器可以包括处理电路,其配置为:在多个变量节点当中检测强错误节点,多个变量节点中的每一个具有与其相关联的通道接收值,以及校正与强错误节点相关联的通道接收值。
附图说明
通过参照附图详细描述一些示例性实施例,本发明构思的示例性实施例的以上和其它特征和优点将变得更加清楚,其中:
图1是根据本发明构思的一些示例性实施例的存储器系统的框图;
图2是根据本发明构思的一些示例性实施例的包括多个通道的存储器系统的框图;
图3是根据本发明构思的一些示例性实施例的存储器系统中的通道和存储体的结构框图的框图;
图4是示出根据本发明构思的一些示例性实施例的存储器中包括的闪存芯片的电路结构的框图;
图5是示出根据本发明构思的一些示例性实施例的存储单元阵列的概念结构的框图;
图6是示出根据本发明构思的一些示例性实施例的存储器系统的软件结构的框图;
图7是根据本发明构思的一些示例性实施例的解码器的框图;
图8是示出根据本发明构思的一些示例性实施例的变量节点的消息交换的示图;
图9是根据本发明构思的一些示例性实施例的操作解码器的方法的流程图;
图10是根据本发明构思的一些示例性实施例的使用存储器系统的电子装置的框图;
图11是根据本发明构思的一些示例性实施例的使用存储器系统的存储卡系统的框图;以及
图12是根据本发明构思的一些示例性实施例的包括固态驱动器(SSD)的服务器系统的网络系统的框图。
具体实施方式
现在将参照示出了一些示例性实施例的附图在下文更加全面地描述本发明构思的示例性实施例。然而,这些示例性实施例可按照许多不同形式实施,并且不应理解为限于本文阐述的示例性实施例。相反,提供这些示例性实施例是为了使本公开透彻和完整,并且向本领域技术人员全面传达示例性实施例的范围。在附图中,为了清楚起见,层和区域的尺寸和相对尺寸可能被夸大。相似的标记始终指代相似的元件。
图1是根据本发明构思的一些示例性实施例的存储器系统1000的框图。
参照图1,存储器系统1000包括存储控制器100和存储器装置200。存储控制器100可以包括中央处理单元(CPU)110、纠错码(ECC)模块125、缓冲器140、主机接口150、存储器接口160以及总线170。ECC模块125可以包括编码器120和解码器130。
CPU 110可以通过总线170电连接到编码器120、解码器130、缓冲器140、主机接口150和存储器接口160。
CPU 110可以控制存储器系统1000的全部操作。例如,CPU 110可以读取从主机接收的命令,并且可以根据读取命令的结果来控制存储器系统1000的操作。CPU 110可以在读取操作期间为存储器装置200提供读取命令和地址。CPU 110还可以在写入操作期间为存储器装置200提供写入命令、地址和编码码字。
CPU 110可以向解码器130输出用于控制解码器130的操作的控制信号(例如,检测控制信号DC)。稍后将详细描述。CPU 110可以使用存储在缓冲器140中的元数据将从主机接收的逻辑地址转换成物理页地址。在存储器系统1000接通电源之后,CPU 110可以控制存储器系统1000读取来自存储器装置200的元数据,并将元数据存储在缓冲器140中。CPU 110可以控制存储器系统1000更新缓冲器140中的元数据。在存储器系统1000断电之前,CPU 110可以控制存储器系统1000将存储在缓冲器140中的元数据写入存储器装置200。
CPU 110可以包括由设置在印刷电路板上的至少一个半导体芯片实现的至少一个处理器。处理器可以是算数逻辑单元、数字信号处理器、微型计算机、现场可编程阵列、可编程逻辑单元、微处理器或能够以定义的方式响应和执行指令的任何其他设备。
在一些示例性实施例中,可以用配置CPU 110执行ECC模块125的功能的指令对CPU110进行编程。例如,在一些示例性实施例中,可以用这样的指令来对CPU 110编程,该指令将CPU 110配置为专用计算机,以在写入操作期间执行从主机接收到的信息字的低密度奇偶校验(LDPC)编码,并且在读取操作期间执行从存储器装置200读取的数据的LDPC解码。
在其他示例性实施例中,ECC模块125和其中的元件可以是分离的硬件电路,例如被设计为执行LDPC编码和LDCP解码的专用集成电路(ASIC)。
在写入操作期间,CPU 110可以控制存储器系统1000在编码器120内对已经从主机接收到的信息字执行低密度奇偶校验(LDPC)编码。在读取操作期间,CPU 110可以控制存储器系统1000在解码器130内对从存储器装置200读取的数据执行LDPC解码。
ECC模块125可以对从主机接收的数据编码并且可以对从存储器装置200读取的数据解码。
编码器120可以将由LDPC码指定的多个奇偶校验位附接到从主机接收的信息字以产生码字。当码字中的位数是N且信息字中的位数是K时,则奇偶校验位的位数是“N-K”。可以设置LDPC码字中的每个奇偶校验位来符合LDPC码的要求。
解码器130可以对从存储器装置200读取的数据中的每个码字执行LDPC解码,以恢复信息字。一个码字可以是一个页面,其可以包括i位,其中i是自然数。
解码器130可以允许在变量节点和校验节点之间的消息交换。解码器130可以基于调度信息执行LDPC解码。调度信息可以包括表示用于LDPC解码的校验节点和变量节点之间交换消息的顺序的信息。通过在LDPC二分图中操作校验节点的顺序或变量节点的顺序来确定调度信息,从而防止内存访问冲突和写入前读取冲突。解码器130的结构和操作将在后面详细描述。
缓冲器140可以临时存储从主机接收到的信息字、由CPU 110产生的信号和数据或者从存储器装置200读取的数据(例如码字)。缓冲器还可以存储从存储器装置200读取的元数据以及存储从存储器装置200读取的LDPC调度信息。
缓冲器140可以由动态随机存取存储器(DRAM)或静态RAM(SRAM)形成。
在存储器系统1000中生成元数据以管理存储器装置200。元数据是管理信息,并且可以包括用于将逻辑地址转换为存储器装置200的物理页地址(PPA)的映射表信息。元数据可以包括用于执行地址映射处理的页面映射表信息。此外,元数据可以包括用于管理存储器装置200的存储空间的信息。
主机接口150可以配置为利用关于与主机进行数据交换的协议。主机接口150可以连接到主机上。主机接口150可以实现为高级技术附件(ATA)接口、串行ATA(SATA)接口、并行ATA(PATA)接口、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、通用串行总线(USB)接口、嵌入式多媒体卡(eMMC)接口或Unix文件系统(UFS)接口。然而,本发明构思的示例性实施例不限于这些示例。详细地,主机接口150可以根据CPU 110的控制与主机交换命令、地址和数据。
存储器接口160可以连接到存储器装置200上。存储器接口160可以支持与NAND闪存芯片或NOR闪存芯片的接口。存储器接口160可以通过多个通道选择性地执行软件和硬件交错(interleaving)操作。
总线170可以是在存储控制器100的元件110、120、130、140、150和160之间传送信息的传输线。
尽管没有在图1中示出,存储控制器100还可以包括读取阈值生成器。读取阈值生成器可以生成多个可用于读取存储器装置200的读取阈值。
存储器装置200可以实现为非易失性存储器,诸如闪存器件、相变RAM(PRAM)器件、铁电RAM(FRAM)器件或磁性RAM(MRAM)器件。存储器装置200可以包括非易失性存储器和易失性存储器中的至少一个,或者可以包括至少两种不同类型的非易失性存储器。存储器装置200可以由单个闪存芯片或多个闪存芯片形成。
图2是根据本发明构思的一些示例性实施例的包括多个通道的存储器系统的框图。
参考图2,存储器装置200可以实现为固态驱动器(SSD),其也可以被称为固态盘。参考图2,存储器装置200包括多个闪存芯片201和203。
参考图1和图2,存储器系统100可以包括y个通道,其中y是自然数。尽管在图2所示的示例性实施例中,向多个通道CH1至CHy中的每一个分配了四个闪存芯片,但是本发明构思的示例性实施例不限于此。例如,可以改变分配给一个通道的闪存芯片的数量。
图2所示的存储控制器100的结构可以与图1所示的存储控制器100的结构基本相同。因此,为了避免冗余,将省略对存储控制器100的描述。
图3是根据本发明构思的一些示例性实施例的存储器系统中的通道和存储体的结构框图的框图。
参考图3,通道CH1至CHy中的每一个可以与多个闪存芯片201至203电连接。通道CH1至CHy中的每一个可以是独立的总线,其可以将命令、地址和数据发送到相应的闪存芯片201或203以及可以接收来自相应的闪存芯片201或203的命令、地址和数据。因此,连接到一个通道的闪存芯片可以独立于连接到不同通道的其他存储器芯片地工作。
闪存芯片201至203可以形成多个路径WAY1至WAYx。通道CH1至CHy之一可以连接到分别对应于x个路径WAY1至WAYx的x个闪存芯片。例如,第一通道CH1可以连接到分别对应于x个路径WAY1至WAYx的闪存芯片201-1至201-x。闪存芯片、通道和路径之间的这种关系也可以应用于多个闪存芯片201至203中的其他闪存芯片。
一个路径是用于区分彼此共享一个通道的闪存芯片的单元。多个闪存芯片201至203可以通过它们的通道数量CH和路径数量WAY来区分。将在闪存芯片上执行来自主机的请求,路径和通道由从主机发送的逻辑地址确定。
图4是示出根据本发明构思的一些示例性实施例的存储器装置200中包括的闪存芯片201-1的电路结构的框图。
参照图4,闪存芯片201-1可以包括存储单元阵列10、页面缓冲器20、控制电路30以及行解码器40。
存储单元阵列10是通过向晶体管施加期望的(或者,可替代地,预定的)电压来写入数据的区域。存储单元阵列10可以包括存储数据的多个存储单元。存储单元阵列10可以以二维结构或三维结构来实现。
存储单元阵列10可以包括三维存储单元阵列。三维存储单元阵列可以在存储单元的阵列中的一个或多个物理水平高度处单片地形成,存储单元具有设置在硅衬底上或硅衬底上方的有源区,并且三维存储单元阵列可以包括涉及存储单元的操作的电路。该电路可以形成在硅衬底内、硅衬底上或硅衬底的上方。术语“单片”表示阵列在每个水平高度的层直接形成在该阵列的下一水平高度的层之上。三维存储单元阵列可以包括垂直NAND串,其垂直取向以使得至少一个存储单元被放置在另一个存储单元上或上方。至少一个存储器单元可以包括电荷俘获层。
存储单元阵列10可以包括形成在字线WL0至WLm-1和位线BL0至BLn-1之间的交叉处的存储单元,其中m和n是自然数。尽管在图4中示出了一个存储块,存储单元阵列可以包括多个存储块。每一个存储块包括分别对应于字线WL0至WLm-1的页面。每个页面包括连接到字线WL0至WLm-1中的相应的一个的多个存储单元。
闪存芯片201-1可以对每个块执行擦除操作,并且可以在每个页面上执行编程操作或读取操作。存储单元阵列10具有单元串结构。单元串包括连接到串选择线SSL的串选择晶体管SST、分别连接到字线WL0至WLm-1的存储单元MC0至MCm-1以及连接到接地选择线GSL的接地选择晶体管GST。串选择晶体管SST连接在位线和串通道之间,接地选择晶体管GST连接在串通道和共源线CSL之间。
页面缓冲器20可以通过位线BL0至BLn-1连接到存储单元阵列10。页面缓冲器20可以临时存储要写入连接到所选字线的存储单元的数据,或者可以临时存储从连接到所选字线的存储单元读取的数据。
控制电路30可以产生编程操作、读取操作和擦除操作所需的各种电压,并且可以控制闪存芯片201-1的全部操作。
行解码器40可以通过选择线SSL和GSL以及字线WL0至WLm-1连接到存储单元阵列10。行解码器40可以在编程或读取操作期间接收地址并根据地址选择字线。选择的字线可以与将对其执行编程或读取操作的存储器单元连接。行解码器40还可以将用于编程和读取操作的电压(诸如编程电压、通过电压、读取电压、串选择电压和/或接地选择电压)施加到选择的字线、未选择的字线以及选择线SSL和GSL。
每个存储单元可存储1位数据或至少2位数据。存储一位数据的存储单元被称为单层单元(SLC),存储至少两位数据的存储单元被称为多层单元(MLC)。SLC根据阈值电压具有擦除状态或编程状态。
图5是示出根据本发明构思的一些示例性实施例的存储单元阵列10的概念结构的框图。
参照图5,存储单元阵列10可以包括块0至块q-1的多个块。块0至块q-1中的每一块可以包括页面0至页面p-1的多个页面。在闪存芯片201-1中,在每个页面上进行数据写入操作和数据读取操作,并在每个块上执行电擦除。
在写入操作之前需要执行块的电擦除,使得存储器不能执行覆写(overwrite)操作。在不能进行覆写的存储器中,用户数据会无法写入用户想要的物理区域。因此,当从主机请求写入操作或读取操作的访问时,地址转换可用于将指示与写入请求或读取请求相对应的区域的逻辑地址转换为物理页面地址,该物理页面地址指示数据已被存储或将被存储的物理区域。
将参照图6描述存储器系统1000中的将逻辑地址转换为物理页面地址的过程。
图6是示出根据本发明构思的一些示例性实施例的存储器系统1000的软件结构的框图。图6所示的软件结构出现在存储器装置200由闪存形成的情况下。
参照图6,存储器系统1000具有分层的软件结构,其中从上到下构造了应用层101、文件系统层102、闪存转换层103和闪存层104。应用层101是响应于用户从主机的输入来处理用户数据的固件,并且将用于在闪存芯片中存储处理后的用户数据的命令发送到文件系统层102。
文件系统层102响应于从应用层101接收到的命令,分配将要存储的用户数据的逻辑地址。文件分配表(FAT)文件系统和新技术文件系统(NTFS)是文件系统层102的类别。
闪存转换层103将从文件系统层102接收的逻辑地址转换为用于在闪存芯片上执行读/写操作的物理页地址。闪存转换层103可以使用包括在元数据中的映射信息将逻辑地址转换为物理页地址。参照图1和图6,可以在存储控制器100的CPU 110中执行闪存转换层103的地址转换。
闪存层104可以访问物理页地址并产生控制信号以存储或读取数据。
图7是根据本发明构思的一些示例性实施例的解码器130的框图。
参照图7,解码器130可以包括通道映射器131、强错误检测器132、变量节点单元133、校验节点单元134以及判决单元(或者可替代地,判决电路)135。假设存储器系统1000处于读取模式以描述解码器130的操作。
正如上面所讨论的,在一些示例性实施例中,可以用配置CPU 110执行ECC模块125的功能的指令对CPU 110进行编程,ECC模块125包括解码器130的各种元件。在其他示例性实施例中,包括解码器130的各种元件的ECC模块125可以实施为分离的硬件电路,例如被设计用于执行LDPC编码和LDCP解码的专用集成电路(ASIC)。
通道映射器131可以接收在初始读取操作期间产生的硬判决信息HDI和软判决信息SDI。硬判决信息HDI或软判决信息SDI可以包括页面或分段的硬判决值或软判决值,页面或分段包括i个单元,其中i是自然数。换句话说,硬判决信息HDI可以包括i个硬判决值,并且软判决信息SDI可以包括i个软判决值。
当存储器装置200包括单层单元(SLC)时,硬判决值可以是1或0。在其他示例性实施例中,存储器装置200可以包括存储至少两位的多层单元(MLC),例如存储三位的三层单元(TLC)。
通道映射器131可以基于硬判决信息HDI和软判决信息SDI生成多个通道接收值CHL1至CHLi。通道接收值CHL1至CHLi的数量可以是i个。通道接收值CHL1至CHLi中的每一个可以表示为具有大小和符号的整数。例如,通道接收值CHL可以是通道的对数似然比(LLR)。
基于硬判决信息HDI可以确定通道接收值CHL的符号。例如,当单元的硬判决值为0时,通道接收值CHL的符号可以是正号,即“+”;当单元的硬判决值为1时,通道接收值CHL的符号可以是负号,即“-”。然而,本发明构思的示例性实施例不限于此。
基于软判决信息SDI可以确定通道接收值CHL的绝对值(即,大小)。根据单元的软判决值,通道接收值CHL的绝对值可以表示硬判定结果的确定性或概率。当硬判决结果的确定性或概率增加时,通道接收值CHL的绝对值可以增加。当分配了b位来表示通道接收值CHL的绝对值时,绝对值可以是属于期望值(或者,可替代地,预定值)的集合的值之一,所述期望值的集合可以是[0,1,...,2b-1]。例如,当分配了三位来表示通道接收值CHL的绝对值时,期望值(或者,可替代地,预定值)的集合可以是[0,1,2,3,4,5,6,7]。
通道映射器131可以将通道接收值CHL1至CHLi输出到强错误检测器132。参照图1和图7,强错误检测器132可以根据检测控制信号DC进行操作。强错误检测器132可以接收来自CPU 110的检测控制信号DC。
CPU 110可以控制强错误检测器132在第一模式下或第二模式下工作,在第一模式下,强错误检测器132执行校正,在第二模式下,强错误检测器132不执行校正。
例如,CPU 110可以控制强错误检测器132在第一模式下工作期望的(或者,可替代地,预定的)时间段,然后在第二模式下工作。在另一示例中,CPU 110可以控制强错误检测器132在第一模式下工作并且在后处理期间在第二模式下工作。在又一示例中,CPU 110可以控制强错误检测器132在第一模式和第二模式之一下周期性地操作。
强错误检测器132可以接收来自校验节点单元134的多个校验节点消息Cji。校验节点消息Cji可以是从校验节点单元134中包括的多个校验节点CN1至CNj发送到变量节点单元133中包括的多个变量节点VN1至VNi的消息。稍后将详细描述。
强错误检测器132可以基于校验节点消息Cji和通道接收值CHL1至CHLi来确定强错误是否发生,并且可以根据确定结果校正通道接收值CHL1至CHLi以产生经校正的通道接收值CHL′1到CHL′i。在下文中,为了便于描述,具有强错误的变量节点被称为强错误节点。
强错误检测器132可以选择变量节点VN1至VNi中的一个,并且可以确定在所选择的变量节点VN中是否发生了强错误。详细地,强错误检测器132可以选择与通道接收值CHL1至CHLi中绝对值最高的通道接收值CHL对应的变量节点。然而,本发明构思的示例性实施例不限于此。
例如,强错误检测器132可以选择与绝对值为7的通道接收值CHL对应的变量节点VN。此时,所选择的变量节点可以具有很强的确定性或概率。换句话说,所选择的变量节点可以是发生强错误或强校正(strong correction)的节点。强校正是与强错误相反的概念,指的是强烈肯定判决值正确的状态。
此后,强错误检测器132可以确定所选择的变量节点VN是强错误节点还是强校正节点。
例如,如果输入到所选择的变量节点VN的校验节点消息Cji的符号中的多数与对应于所选择的变量节点VN的通道接收值CHL的符号不同,并且对应于所选择的变量节点VN的通道接收值CHL的绝对值小于输入到所选择的变量节点VN的校验节点消息Cji的总和,则强错误检测器132可以确定在所选择的变量节点VN中已发生强错误。
另外,如果输入到所选择的变量节点VN的校验节点消息Cji的符号中的多数与对应于所选择的变量节点VN的通道接收值CHL的符号相同,或者对应于所选择的变量节点VN的通道接收值CHL的绝对值等于或大于输入到所选择的变量节点VN的校验节点消息Cji的总和,则强错误检测器132可以确定在所选择的变量节点VN中没有发生强错误。
可替代地,强错误检测器132可以包括查找表,其存储与校验节点消息Cji和通道接收值CHL1至CHLi的组合相对应的强错误信息,并且强错误检测器132可以基于查找表确定强错误是否发生。
当强错误检测器132确定在所选择的变量节点VN中发生强错误时,强错误检测器132可以校正与所选择的变量节点VN相对应的通道接收值CHL,以产生与所选择的变量节点VN相对应的经校正的通道接收值CHL′。当强错误检测器132确定在所选择的变量节点VN中没有发生强错误时,强错误检测器132可以输出与所选择的变量节点VN相对应的通道接收值CHL作为与所选择的变量节点VN相对应的经校正的通道接收值CHL′。
强错误检测器132可以在接收到检测控制信号DC时校正强错误节点的通道接收值CHL,并且可以在未接收到检测控制信号DC时不校正强错误节点的通道接收值CHL。
强错误检测器132可以通过降低强错误节点的通道接收值CHL的绝对值来进行校正。例如,当执行校正时,强错误检测器132可以从通道接收值CHL的绝对值中减去校正值CV,并将减法结果设置为经校正的通道接收值CHL′的绝对值。此时,强错误检测器132可以接收来自CPU 110的校正值CV,并且可以预先设置校正值CV。换句话说,当确定了在所选择的变量节点VN中发生强错误时,强错误检测器132可以将与所选择的变量节点VN相对应的通道接收值CHL的绝对值减去校正值CV设置为与所选择的变量节点VN相对应的经校正的通道接收值CHL′的绝对值,并且可以将通道接收值CHL的符号设置为经校正的通道接收值CHL′的符号,从而产生经校正的通道接收值CHL′。可以将校正值CV设定为使得对应于所选择的变量节点VN的变量节点消息Vij的符号中的多数与对应于所选择的变量节点VN的通道接收值CHL的符号相同。然而,本发明构思的示例性实施例不限于此。
可替代地,当执行校正时,强错误检测器132可以将强错误节点的经校正的通道接收值CHL′设置为“0”。换句话说,当强错误检测器132确定了在所选择的变量节点VN中发生强错误时,强错误检测器132可以将与所选择的变量节点VN相对应的通道接收值CHL校正为“0”,以产生与所选择的变量节点VN相对应的经校正的通道接收值CHL′。
变量节点单元133可以接收来自强错误检测器132的经校正的通道接收值CHL′i。变量节点单元133也可以接收来自校验节点单元134的校验节点消息Cji。变量节点单元133可以包括多个变量节点VN1至VNi。变量节点VN1至VNi的数量可以是i个,其中i是自然数。类似地,校验节点单元134可以包括多个校验节点CN1至CNj。校验节点CN1至CNj的数量可以是j个。
变量节点单元133可以使用经校正的通道接收值CHL′i和校验节点消息Cji来执行针对与校验节点单元134的消息交换的逻辑运算。变量节点单元133可以通过执行逻辑运算来生成变量节点消息Vij,并且可以将变量节点消息Vij输出到校验节点单元134。
校验节点单元134可以使用变量节点消息Vij来执行针对与变量节点单元133的消息交换的逻辑运算。校验节点单元134可以通过执行逻辑运算来生成校验节点消息Cij,并且可以将校验节点消息Vij输出到变量节点单元133。
变量节点单元133可以使用等式(1)和等式(2)执行运算。
Mi=CHL′i+∑Cji,对于所有的j (1)
Vij=Q(Mi-Cji),对于每个i, (2)
其中Mi是中间参数,CHL′是经校正的通道接收值,ΣCji是由第i个变量节点接收的所有校验节点消息的和,并且Q函数可以是根据输入分配的期望值(或者,可替代地,预定值)之一的量化函数。
例如,变量节点消息Vij的绝对值可以是集合[0,1,...,LM]中的值之一,其中LM是至少为2的自然数。类似地,校验节点消息Cji的绝对值可以是集合[0,1,...,LM]中的值之一。当LM是3时,变量节点消息Vij和校验节点消息Cji的绝对值可以是集合[0,1,2,3]中的值之一。类似于通道接收值CHL,随着确定性或概率变高,变量节点消息Vij和校验节点消息Cji的绝对值可以具有更高的值。
变量节点单元133可以将变量节点消息Vij输出到判决电路135。判决电路135可以基于变量节点消息Vij最终做出关于变量节点VN1至VNi的判决。然而,本发明构思的示例性实施例不限于此。与图7所示的不同,判决电路135可以基于校验节点消息Cji最终做出关于变量节点VN1至VNi的判决。根据判决结果,判决电路135可以输出长度为i的码字CW。
图8是示出根据本发明构思的一些示例性实施例的变量节点VN1的消息交换的框图。
参照图8,第一变量节点VN1可以与第一校验节点CN1至第五校验节点CN5交换消息。假设第一变量节点VN1是强错误节点。
将首先描述在强错误节点的通道接收值未被校正的情况下的变量节点单元133的消息交换,以详细解释本发明构思的示例性实施例的特征。
(1)强错误节点的通道接收值未被校正的情况
假设由第一变量节点VN1接收的第一通道接收值CHL′1为-7。如上所述,这可以意味着相应单元的值必然是1。同样假设由第一变量节点VN1接收的校验节点消息C11至C51依次为3,3,3,-3和1。如上所述,第一至第三校验节点消息C11、C21和C31可以意味着相应单元的值必然是0。
当尽管多数校验节点消息指示相应单元的值确定为0、但是第一通道接收值CHL′1的绝对值(即,7)相对非常高时,第一变量节点VN1可以产生指示相应单元的值为1的信息。详细地,第一变量节点VN1可以使用等式1和等式2将第一变量节点消息V11至第三变量节点消息V13计算为-3,将第四变量节点消息V14计算为1,以及将第五变量节点消息V15计算为-1。换句话说,第一变量节点VN1可以向CN1至CN5发送错误消息,使得LDPC解码器的纠错无法正常地运行。结果是,当强错误节点的通道接收值未被校正时,LDPC解码器的编码性能可能劣化。
(2)强错误节点的通道接收值被校正的情况
基于上面的假设,假设由第一变量节点VN1接收的第一经校正的通道接收值CHL′1为-3。如上所述,这可以意味着相应单元的值为1。此时,可以通过强错误检测器132使用从CPU 110接收到的等于4的校正值CV来获得第一经校正的通道接收值CHL′1,如图7所示。同样假设由第一变量节点VN1接收的校验节点消息C11至C51依次为3,3,3,-3和1。如上所述,第一至第三校验节点消息C11、C21和C31可以意味着相应单元的值必然是0。
第一变量节点VN1可以使用等式1和等式2将第一变量节点消息V11至第三变量节点消息V13计算为1,将第四变量节点消息V14计算为3,以及将第五变量节点消息V15计算为-1。换句话说,尽管第一通道接收值CHL′1指示单元的值为1,但是第一变量节点VN1生成许多指示0的校验节点消息,从而LDPC解码器的纠错可以正常运行。所以,当强错误节点的通道接收值被校正时,LDPC解码器的编码性能得以提高。
图9是根据本发明构思的一些示例性实施例的操作解码器130的方法的流程图。
参照图1至图9,在操作S110中,解码器130可以基于硬判决信息HDI和软判决信息SDI生成通道接收值CHL1至CHLi。硬判决信息HDI可以包括形成页面的各个单元的硬判决值。软判决信息SDI可以包括形成所述页面的各个单元的软判决值。通道接收值CHL1至CHLi可以分别对应于形成所述页面的单元。每个通道接收值CHL1至CHLi的符号可以由硬判决值确定,并且其绝对值可以由软判决值确定。
在操作S120中,解码器130可以使用校验节点消息Cji和通道接收值CHL1至CHLi来选择变量节点之一,并且解码器130可以确定所选择的变量节点VN中是否发生了强错误。
在操作S130中,如果解码器130确定所选择的变量节点VN中发生了强错误,解码器130可以校正与所选择的变量节点VN相对应的通道接收值CHL,以产生与所选择的变量节点VN相对应的经校正的通道接收值CHL′。
在操作S140中,如果解码器130确定所选择的变量节点VN中没有发生强错误,解码器130可以不校正与所选择的变量节点VN相对应的通道接收值CHL,而是可以产生通道接收值CHL作为与所选择的变量节点VN相对应的经校正的通道接收值CHL′。
在操作S150中,解码器130可以使用校验节点消息Cji和经校正的通道接收值CHL′1至CHL′i来生成变量节点消息Vij。
图10是根据本发明构思的一些示例性实施例的使用存储器系统1000的电子装置2000的框图。
参考图10,电子装置2000可以包括处理器2100、RAM 2200、输入/输出(I/O)装置2300、电源2400和存储器系统1000。虽然在图10中未示出,但是电子装置000还可包括用于与视频卡、声卡、存储卡、USB装置或其它电子装置通信的端口。电子装置2000可以实现为个人计算机(PC)或便携式电子装置,例如笔记本电脑、移动电话、个人数字助理(PDA)或照相机。
图1和图2所示的存储器系统1000可以用作图10所示的存储器系统。因此,根据本发明构思的一些示例性实施例,存储控制器100可以使用LDPC解码方法来解码从存储设备200读取的数据。
处理器2100可执行特定计算或任务。处理器2100可以是微处理器或CPU。处理器2100可以通过诸如地址总线、控制总线或数据总线的总线2500与RAM 2200、I/O装置2300和存储器系统1000通信。处理器2100还可以连接到诸如外围组件互连(PCI)总线的扩展总线。
RAM 2200可以存储电子装置2000的操作所必需的数据。RAM 2200可作为DRAM、移动DRAM、SRAM、PRAM、FRAM、阻变RAM(RRAM)和/或MRAM实现。
I/O装置2300可包括诸如键盘、键区或鼠标的输入装置和诸如打印机或显示器的输出装置。电源2400可以提供电子装置2000的工作所需的工作电压。
图11是根据本发明构思的一些示例性实施例的使用存储器系统的存储卡系统3000的框图。
参照图11,存储卡系统3000可以包括主机3100和存储卡3200。主机3100可以包括主机控制器3110和主机连接器3120。存储卡3200可包括卡连接器3210、卡控制器3220和存储器装置3230。图1或图2所示的存储控制器100和存储器装置200可以作为图11所示的卡控制器3220和存储器装置3230使用。
主机3100可以向存储卡3200写入数据,并且可以读取来自存储卡3200的数据。主机控制器3110可以通过主机连接器3120将命令CMD、由包括在主机3100中的时钟发生器(未示出)产生的时钟信号CLK以及数据发送到存储卡3200。
响应于经由卡连接器3210接收到的命令,卡控制器3220可以使用根据本发明构思的一些示例性实施例的使用有效调度的LDPC解码方法来解码从存储器装置3230读取的数据。存储卡3200可以作为紧凑型闪存卡(CFC)、微驱动器、智能媒体卡(SMC)、多媒体卡(MMC)、安全数字卡(SDC)、记忆棒或USB闪存驱动器来实现。
图12是根据本发明构思的一些示例性实施例的网络系统4000的框图。
参照图12,网络系统4000可以包括经由网络4200彼此相连的服务器系统4100和多个终端4300、4400和4500。
服务器系统4100可以包括服务器4110和SSD 4120,服务器4110处理从连接到网络4200的终端4300、4400和4500接收的请求,SSD 4120存储与从终端4300、4400和4500接收到的请求相对应的数据。图1或图2所示的存储器系统1000可以用作SSD 4120。
可以使用各种类型的封装件安装根据本发明构思的一些实施例存储器系统,例如层叠封装(PoP)、球栅阵列(BGA)、芯片尺寸封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫包内晶片(Die in Waffle Pack)、晶圆形式晶片(Die in WaferForm)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制方形扁平封装(MQFP)、薄方形扁平封装(TQFP)、小外形集成电路(SOIC)、紧缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、薄方形扁平封装(TQFP)、系统内封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)和晶圆级处理堆叠封装(WSP)。
如上所述,根据本发明构思的一些示例性实施例,解码器和包括该解码器的存储控制器对具有强错误的变量节点的通道对数似然比(LLR)进行校正,从而提高错误校正性能和可靠性。
虽然已经参照一些示例性实施例特别地示出和描述了本发明构思的示例性实施例,但是本领域普通技术人员应该理解,在不脱离由所附权利要求限定的本发明构思的示例性实施例的精神和范围的情况下,在其中可做出形式和细节上的各种修改。

Claims (20)

1.一种解码器,包括:
通道映射器,其配置为基于硬判决信息和软判决信息生成多个通道接收值,其中,所述通道接收值是对数似然比,基于所述硬判决信息确定所述通道接收值的符号,并且基于所述软判决信息确定所述通道接收值的绝对值;以及
强错误检测器,其配置为:
使用多个校验节点消息和通道接收值确定强错误是否存在,以及
如果所述强错误检测器检测到强错误存在,则校正所述通道接收值,以产生经校正的通道接收值。
2.根据权利要求1所述的解码器,还包括:
多个变量节点,其配置为使用所述校验节点消息和所述经校正的通道接收值产生多个变量节点消息;以及
多个校验节点,其配置为使用所述变量节点消息产生所述校验节点消息。
3.根据权利要求2所述的解码器,其中所述强错误检测器配置为:
选择所述变量节点中的一个,
如果(i)输入到所选择的变量节点的校验节点消息的符号中的多数与对应于所选择的变量节点的通道接收值的符号不同,并且(ii)对应于所选择的变量节点的通道接收值的绝对值小于输入到所选择的变量节点的校验节点消息的总和,则确定在所选择的变量节点中存在强错误,以及
如果输入到所选择的变量节点的校验节点消息的符号中的大多数与对应于所选择的变量节点的通道接收值的符号相同,则确定在所选择的变量节点中不存在强错误。
4.根据权利要求3所述的解码器,其中所述强错误检测器配置为:
如果在所选择的变量节点中存在强错误,则校正对应于所选择的变量节点的通道接收值以产生对应于所选择的变量节点的经校正的通道接收值,以及
如果在所选择的变量节点中不存在强错误,则通过指定对应于所选择的变量节点的通道接收值作为对应于所选择的变量节点的经校正的通道接收值来保持所述通道接收值。
5.根据权利要求4所述的解码器,其中所述强错误检测器配置为:
如果在所选择的变量节点中存在强错误,则将通过从对应于所选择的变量节点的通道接收值的绝对值中减去校正值而获得的值设定为对应于所选择的变量节点的经校正的通道接收值的绝对值,以及
将所述通道接收值的符号设定为所述经校正的通道接收值的符号以产生所述经校正的通道接收值。
6.根据权利要求5所述的解码器,其中所述强错误检测器配置为设定所述校正值,使得对应于所选择的变量节点的所述变量节点消息的符号中的多数与对应于所选择的变量节点的通道接收值的符号相同。
7.根据权利要求4所述的解码器,其中所述强错误检测器配置为:如果在所选择的变量节点中存在强错误,则将对应于所选择的变量节点的通道接收值校正为0值,以产生对应于所选择的变量节点的经校正的通道接收值。
8.根据权利要求2所述的解码器,还包括:
存储器,其配置为存储查找表,所述查找表包含与所述校验节点消息和所述通道接收值的组合相对应的强错误信息,以及其中
所述强错误检测器配置为基于所述查找表确定是否存在强错误。
9.根据权利要求2所述的解码器,还包括:
判决电路,其配置为基于所述变量节点消息输出解码后的码字。
10.根据权利要求2所述的解码器,其中所述多个变量节点使用以下等式(1)和等式(2)计算所述变量节点消息:
Mi=CHL′i+∑Cji,对于所有j (1)
Vij=Q(Mi-Cji),对于每一个i (2)
其中Mi是中间参数,CHL′i是经校正的通道接收值,Cji是校验节点消息,Q是根据输入分配各个值的量化函数,以及Vij是变量节点消息。
11.一种存储控制器,包括:
解码器,其配置为将数据编程至存储器装置,所述解码器包括:
通道映射器,其配置为基于硬判决信息和软判决信息生成多个通道接收值,以及
强错误检测器,其配置为:
使用多个校验节点消息和通道接收值确定是否存在强错误,并且如果存在强错误,则校正通道接收值以产生经校正的通道接收值;以及
中央处理单元(CPU),其配置为指示所述强错误检测器在第一模式和第二模式之一下工作,所述第一模式是所述强错误检测器执行校正的模式,所述第二模式是所述强错误检测器不执行校正的模式。
12.根据权利要求11所述的存储控制器,其中所述解码器还包括:
多个变量节点,其配置为使用所述校验节点消息和所述经校正的通道接收值产生多个变量节点消息;以及
多个校验节点,其配置为使用所述变量节点消息产生所述校验节点消息。
13.根据权利要求11所述的存储控制器,其中所述中央处理单元配置为控制所述强错误检测器在所述第一模式下工作一段时间,然后在所述第二模式下工作。
14.根据权利要求11所述的存储控制器,其中所述中央处理单元配置为控制所述强错误检测器在所述第一模式下工作并且在后处理期间在所述第二模式下工作。
15.根据权利要求11所述的存储控制器,其中
所述中央处理单元配置为将检测控制信号输出到所述强错误检测器,并且
所述强错误检测器配置为根据所述检测控制信号执行校正,并在所述第一模式和第二模式之间周期性切换。
16.一种解码器,包括:
处理电路,其配置为:
在多个变量节点当中检测强错误节点,所述多个变量节点中的每一个具有与其相关联的通道接收值,以及
校正与所述强错误节点相关联的通道接收值,
其中,与所述强错误节点相关联的通道接收值是对数似然比(LLR),基于硬判决信息确定所述通道接收值的符号,并且基于软判决信息确定所述通道接收值的绝对值。
17.根据权利要求16所述的解码器,其中,所述处理电路配置为基于与所述强错误节点相关联的通道接收值和输入到所述强错误节点的校验节点消息来检测所述强错误节点。
18.根据权利要求17所述的解码器,其中,所述处理电路配置为基于所述多个变量节点中的哪一个变量节点具有以下特征来检测所述多个变量节点中的哪一个是所述强错误节点:(i)所述校验节点消息的符号中的多数不同于与所述多个变量节点中的相应的一个相关联的通道接收值的符号,以及(ii)与所述多个变量节点中的相应的一个相关联的通道接收值的绝对值小于输入至所述变量节点的校验节点消息的总和。
19.根据权利要求18所述的解码器,其中,所述处理电路配置为通过减小与所述强错误节点相关联的通道接收值的绝对值来校正与所述强错误节点相关联的通道接收值。
20.根据权利要求19所述的解码器,其中,所述处理电路配置为通过将与所述强错误节点相关联的通道接收值的绝对值减小一定量,使得校验节点消息的符号中的多数和与所述强错误节点相关联的通道接收值的符号相同,来校正与所述强错误节点相关联的通道接收值。
CN201710590347.XA 2016-07-19 2017-07-19 使用低密度奇偶校验码的解码器及存储控制器 Active CN107634764B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0091397 2016-07-19
KR1020160091397A KR20180009558A (ko) 2016-07-19 2016-07-19 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러

Publications (2)

Publication Number Publication Date
CN107634764A CN107634764A (zh) 2018-01-26
CN107634764B true CN107634764B (zh) 2022-05-13

Family

ID=60988544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710590347.XA Active CN107634764B (zh) 2016-07-19 2017-07-19 使用低密度奇偶校验码的解码器及存储控制器

Country Status (3)

Country Link
US (1) US10324785B2 (zh)
KR (1) KR20180009558A (zh)
CN (1) CN107634764B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10848271B2 (en) * 2016-08-01 2020-11-24 Sony Semiconductor Solutions Corporation Communication unit and communication system
US10824507B2 (en) * 2018-10-24 2020-11-03 Samsung Electronics Co., Ltd. Semiconductor memory device, controller, and memory system
KR102687096B1 (ko) 2019-03-27 2024-07-23 에스케이하이닉스 주식회사 오류 정정 디코더
CN112838872B (zh) * 2019-11-25 2024-07-05 中国科学院微电子研究所 卫星导航用ldpc码译码方法、译码器及接收机
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891782B1 (ko) 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US7237181B2 (en) 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
KR100762619B1 (ko) * 2004-05-21 2007-10-01 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
US7401283B2 (en) 2004-09-28 2008-07-15 Broadcom Corporation Amplifying magnitude metric of received signals during iterative decoding of LDPC (Low Density Parity Check) code and LDPC coded modulation
FR2904499B1 (fr) 2006-07-27 2009-01-09 Commissariat Energie Atomique Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
TW201008135A (en) 2008-06-23 2010-02-16 Univ Ramot Using damping factors to overcome LDPC trapping sets
US20090319860A1 (en) 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
EP2181504A4 (en) 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
US8175012B2 (en) * 2009-03-26 2012-05-08 Mediatek Inc. Decoding/encoding method for booting from a NAND flash and system thereof
JP2012050008A (ja) 2010-08-30 2012-03-08 Toshiba Corp 誤り検出訂正方法および半導体メモリ装置
JP5370337B2 (ja) * 2010-10-29 2013-12-18 株式会社Jvcケンウッド 復号装置および復号方法
US9009574B2 (en) 2011-06-07 2015-04-14 Marvell World Trade Ltd. Identification and mitigation of hard errors in memory systems
US8935600B1 (en) 2011-09-28 2015-01-13 Marvell International Ltd. Modification of decoder operating mode based on a probability of non-standard errors in concatenated decoding systems
TWI460733B (zh) * 2011-11-15 2014-11-11 Silicon Motion Inc 具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
JP5765281B2 (ja) 2012-03-27 2015-08-19 株式会社Jvcケンウッド 復号装置、復号方法、及び、プログラム
US8781033B2 (en) 2012-06-26 2014-07-15 Lsi Corporation Apparatus and method for breaking trapping sets
JP2014027432A (ja) 2012-07-25 2014-02-06 Toshiba Corp 復号装置、記憶装置、および復号方法
US20140082449A1 (en) 2012-09-18 2014-03-20 Fan Zhang LDPC Decoder With Variable Node Hardening
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
US9231619B2 (en) 2013-02-04 2016-01-05 SK Hynix Inc. LDPC decoder with a variable node updater which uses a scaling constant
JP6542132B2 (ja) 2013-02-13 2019-07-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高レート、高並列性、および低エラーフロアのために、疑似巡回構成を使用し、パンクチャするldpc設計
WO2014139123A1 (en) 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus of ldpc decoder with lower error floor
US9513989B2 (en) 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
US9184767B2 (en) 2013-09-19 2015-11-10 SanDisk Technologies, Inc. Scoring variable nodes for low density parity check code decoding
CN104518801A (zh) 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
KR101599336B1 (ko) 2014-04-22 2016-03-04 아주대학교 산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치
GB2525430B (en) * 2014-04-25 2016-07-13 Ibm Error-correction encoding and decoding
US9344116B2 (en) * 2014-05-29 2016-05-17 Yuan Ze University Method for determining layer stoppage in LDPC decoding
CN105304142B (zh) * 2014-06-20 2019-01-11 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元

Also Published As

Publication number Publication date
US20180024879A1 (en) 2018-01-25
US10324785B2 (en) 2019-06-18
CN107634764A (zh) 2018-01-26
KR20180009558A (ko) 2018-01-29

Similar Documents

Publication Publication Date Title
CN107634764B (zh) 使用低密度奇偶校验码的解码器及存储控制器
US10381089B2 (en) Semiconductor memory system performing read operation based on counted memory cells and operating method thereof
CN110444246B (zh) 用于存储器系统的相邻辅助校正错误恢复及其方法
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US9875035B2 (en) Memory system having a read and copy-back operation and method for the same
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
US9281839B2 (en) Hard-decision decoding method and low-density parity-check decoder using same
KR101678404B1 (ko) 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
US11243838B2 (en) Methods and apparatuses for error correction
US10599515B2 (en) Transfer of encoded data stored in non-volatile memory for decoding by a controller of a memory device
US10911068B2 (en) Error correction circuit and method of operating the same
US20230104044A1 (en) Apparatus and method for programming data in a non-volatile memory device
CN111367709A (zh) 错误校正设备及其操作方法和使用该设备的存储器系统
CN115691623A (zh) 在非易失性存储器装置中编程数据的设备、系统及方法
US11095316B2 (en) Controller and operating method for performing read operation to read data in memory device
US20130318419A1 (en) Flash memory system including read counter logic
CN105304143A (zh) 解码方法、存储器控制电路单元及存储器存储装置
CN116954984A (zh) Crc终止时的准确ber报告
CN115527596A (zh) 用于在非易失性存储器装置中编程数据的设备及系统
CN115206399A (zh) 在非易失性存储器装置中编程和验证数据的设备及方法
US9985647B2 (en) Encoder and decoder design for near-balanced codes
CN107301873B (zh) 译码方法、存储器储存装置及存储器控制电路单元
US11887669B2 (en) Apparatus and method for programming data in a non-volatile memory device
CN110806947B (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