CN105390162B - 包括纠错解码器的存储装置和纠错解码器的操作方法 - Google Patents

包括纠错解码器的存储装置和纠错解码器的操作方法 Download PDF

Info

Publication number
CN105390162B
CN105390162B CN201510524223.2A CN201510524223A CN105390162B CN 105390162 B CN105390162 B CN 105390162B CN 201510524223 A CN201510524223 A CN 201510524223A CN 105390162 B CN105390162 B CN 105390162B
Authority
CN
China
Prior art keywords
value
minimum
node
log
likelihood
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
CN201510524223.2A
Other languages
English (en)
Other versions
CN105390162A (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 CN105390162A publication Critical patent/CN105390162A/zh
Application granted granted Critical
Publication of CN105390162B publication Critical patent/CN105390162B/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/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
    • 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
    • H03M13/1122Soft-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 storing only the first and second minimum values per check node
    • 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
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • 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
    • G11C2029/0411Online error correction

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

Abstract

本发明提供了一种纠错解码器的操作方法、一种存储装置和一种纠错解码器的低密度奇偶校验方法。所述纠错解码器的操作方法包括步骤:接收数据;设置各可变节点的初始对数似然值;以及通过利用与选择的可变节点关联的最小值和最小候选值更新选择的可变节点的对数似然值来解码接收到的数据。最小值指示与选择的可变节点共享校验节点并包括选择的可变节点的各第一可变节点的对数似然值的绝对值的最小的值。最小候选值指示从第一可变节点中比对应于所述最小值的那一个节点更晚选择的各第二可变节点的对数似然值的绝对值中的大于所述最小值且最小的值。

Description

包括纠错解码器的存储装置和纠错解码器的操作方法
相关申请的交叉引用
本申请要求于2014年8月25日在韩国知识产权局提交的韩国专利申请No.10-2014-0110848的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本文描述的技术涉及一种半导体电路,更具体地说,涉及包括纠错解码器的存储装置和纠错解码器的操作方法。
背景技术
存储装置是一种根据诸如计算机、智能电话和智能平板之类的主机装置的控制来存储数据的装置。存储装置可包含在磁盘或者诸如固态驱动器或存储卡之类的半导体存储器上存储数据的装置(例如,硬盘驱动器),具体地说,在非易失性存储器上存储数据的装置。
非易失性存储器可为ROM(只读存储器)、PROM(可编程ROM)、EPROM(电可编程ROM)、EEPROM(电可擦除可编程ROM)、闪速存储器、PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻式RAM)或FRAM(铁电RAM)。
随着半导体制造技术的发展,存储装置的集成度和容量持续增大。存储装置的高度集成使得存储装置的生产成本降低。然而,随着存储装置由于存储装置的高度集成而缩小,检测到了常规未检测到的各种问题。例如,由于存储装置的高度集成的发展,存储在存储装置的数据的差错率增大。
可使用多种纠错解码器来校正存储在存储装置的数据的差错。纠错解码器的关键因素可包括以下因素:纠错能力、纠错速度、复杂性和尺寸。根据常规,如果纠错能力提高,则复杂性或尺寸也会增大,从而导致纠错速度降低。
会需要用于实现改进的纠错能力、改进的纠错速度、降低的复杂性和减小的尺寸的新方法和装置,以提高纠错解码器和包括该纠错解码器的存储装置的操作性能。
发明内容
本申请的实施例的一方面涉及提供一种基于低密度奇偶校验的纠错解码器的操作方法。该方法包括步骤:接收数据;根据接收到的数据设置各可变节点的初始对数似然值;以及通过利用与选择的可变节点关联的最小值和最小候选值更新该选择的可变节点的对数似然值来解码接收到的数据。最小值指示与选择的可变节点共享校验节点并包括该选择的可变节点的各第一可变节点的对数似然值的绝对值的最小的值。最小候选值指示从各第一可变节点中比对应于所述最小值的那一个可变节点更晚选择的各第二可变节点的对数似然值的绝对值中的大于所述最小值且最小的值。
在示例性实施例中,额外地利用最小值位置和最小候选值位置来更新选择的可变节点的对数似然值。最小值位置指示各第一可变节点中的对应于所述最小值并且最后一个被选择的节点的位置。最小候选值位置指示各第二可变节点中的对应于所述最小候选值并且最后一个被选择的节点的位置。
在示例性实施例中,解码接收到的数据的步骤包括:当选择的可变节点是各第一可变节点中第一个更新的节点时,从各第一可变节点的初始对数似然值中检测所述最小值和所述最小候选值。
在示例性实施例中,解码接收到的数据的步骤还包括:检测第二最小候选值,所述第二最小候选值是从各第二可变节点中比对应于所述最小候选值的那一个可变节点更晚选择的各第三可变节点的对数似然值的绝对值中的大于所述最小候选值且最小的值。另外,解码的步骤还包括:检测第K最小候选值,所述第K最小候选值是从各第K可变节点(K是3或更大的正整数)中比对应于第K-1最小候选值的那一个可变节点更晚选择的各第K+1可变节点的对数似然值中的大于第K-1最小候选值且最小的值。重复检测第K最小候选值的步骤,直至各最小候选值和所述最小值的数量达到每个可变节点的对数似然值的不同绝对值的数量为止。
在示例性实施例中,解码接收到的数据的步骤包括:利用最小值、最小值位置、最小候选值和最小候选值位置来计算对应于选择的可变节点的第一消息;根据第一消息更新选择的可变节点的对数似然值;以及根据选择的可变节点的对数似然值的更新结果更新最小值、最小值位置、最小候选值和最小候选值位置。
在示例性实施例中,计算第一消息的步骤包括:当选择的可变节点的位置与所述最小值位置一致时,将所述最小候选值计算作为第一消息;以及当选择的可变节点的位置与所述最小值位置不同时,将所述最小值计算作为第一消息。
在示例性实施例中,更新选择的可变节点的对数似然值的步骤包括:计算与选择的可变节点所属的另一校验节点关联的第二消息;以及用通过计算选择的可变节点的初始对数似然值、第一消息和第二消息获得的值来更新选择的可变节点的对数似然值。
在示例性实施例中,利用与选择的可变节点共享所述另一校验节点并包括选择的可变节点的各可变节点的对数似然值,按照与第一消息相同的方式来计算第二消息。
在示例性实施例中,在更新最小值、最小值位置、最小候选值和最小候选值位置的步骤中,当选择的可变节点的位置与所述最小值位置一致时,将所述最小值和所述最小值位置设为具有所述最小候选值的内容和所述最小候选值位置的内容。
在示例性实施例中,在更新最小值、最小值位置、最小候选值和最小候选值位置的步骤中,当选择的可变节点的位置与所述最小值位置一致时,将所述最小候选值和所述最小候选值位置设为具有第二最小候选值的内容和第二最小候选值位置的内容。将第K最小候选值和第K最小候选值位置设为具有第K+1最小候选值的内容和第K+1最小候选值位置的内容。将最后一个最小候选值和最后一个最小候选值位置重置(K是2或更大的正整数)。第K最小候选值是各第一可变节点中的比对应于第K-1最小候选值的可变节点更晚选择的各可变节点的对数似然值的绝对值中的大于第K-1最小候选值且最小的值。第K最小候选值位置指示各第一可变节点中的具有第K最小候选值且最近更新的节点的位置。
在示例性实施例中,在更新最小值、最小值位置、最小候选值和最小候选值位置的步骤中,当选择的可变节点的位置与所述最小候选值位置一致时,将所述最小候选值和所述最小候选值位置设为具有第二最小候选值的内容和第二最小候选值位置的内容。第二最小候选值是各第一可变节点中的比最小候选值更晚选择的各可变节点的对数似然值中的大于所述最小候选值且最小的值。第二最小候选值位置指示各第一可变节点中的具有第二最小候选值且最近更新的节点的位置。
在示例性实施例中,在更新最小值、最小值位置、最小候选值和最小候选值位置的步骤中,当选择的可变节点的更新后的对数似然值小于或等于所述最小值时,用更新后的对数似然值来更新所述最小值,用选择的可变节点的位置来更新所述最小值位置,并且将所述最小候选值和所述最小候选值位置重置。
在示例性实施例中,在更新最小值、最小值位置、最小候选值和最小候选值位置的步骤中,当选择的可变节点的更新后的对数似然值大于所述最小值且小于或等于所述最小候选值时,用更新后的对数似然值来更新所述最小候选值,用选择的可变节点的位置来更新所述最小候选值位置,并且将第K最小候选值至最后一个最小候选值以及第K最小候选值位置至最后一个最小候选值位置重置(K是2或更大的整数)。第K最小候选值是各第一可变节点中的比对应于第K-1最小候选值的可变节点更晚选择的各可变节点的对数似然值的绝对值中的大于第K-1最小候选值且最小的值。第K最小候选值位置指示各第一可变节点中的具有第K最小候选值且最近更新的节点的位置。
在示例性实施例中,在按次序选择可变节点的同时重复解码的步骤。当与各可变节点的更新后的对数似然值对应的数据是经纠错的数据时,输出经纠错的数据。当与各可变节点的更新后的对数似然值对应的数据不是经纠错的数据时,在按次序选择各可变节点的同时再次重复解码的步骤。
本申请的实施例的另一方面涉及提供一种存储装置,该存储装置包括:非易失性存储器;以及纠错解码器,其适配为校正从非易失性存储器读取的数据的差错。纠错解码器包括:对数似然值产生器,其适配为根据读取的数据设置各可变节点的初始对数似然值;第一消息产生器,其适配为根据来自对数似然值产生器的各初始对数似然值和第二消息来更新各可变节点的对数似然值,并且将更新后的各对数似然值输出作为第一消息;校验节点更新器,其适配为存储第一消息的各对数似然值中的对应于每个校验节点的最小值和最小候选值,并且根据第一消息更新对应于每个校验节点的最小值和最小候选值;以及第二消息产生器,其适配为利用对应于每个校验节点的最小值和最小候选值产生第二消息。最小值指示共享校验节点的各第一可变节点的对数似然值的绝对值的最小值,并且最小候选值指示各第一可变节点中的比对应于最小值的节点更晚选择的各第二可变节点的对数似然值的绝对值中的大于所述最小值且最小的值。
在示例性实施例中,当首先从对数似然值产生器接收到初始对数似然值时,第一消息产生器将初始对数似然值输出作为第一消息。第一消息产生器计算初始对数似然值和第二消息,以再次输出第一消息。
在示例性实施例中,纠错解码器根据第一可变节点和与第一可变节点关联的两个或更多个校验节点来更新第一可变节点的对数似然值,并随后根据第二可变节点和与第二可变节点关联的两个或更多个校验节点来更新第二可变节点的对数似然值。在更新第二可变节点的对数似然值时,使用第一可变节点的更新后的对数似然值。
在示例性实施例中,校验节点更新器存储对应于每个校验节点的最小值、最小候选值、最小值位置和最小候选值位置。最小值位置指示各第一可变节点中的对应于所述最小值并且最后一个被选择的节点的位置。最小候选值位置指示各第二可变节点中的对应于所述最小候选值并且最后一个被选择的节点的位置。
在示例性实施例中,第二消息产生器将选择的可变节点的位置和与该选择的可变节点关联的各校验节点的最小值位置进行比较。当与选择的可变节点关联的校验节点的最小值位置与该选择的可变节点的位置一致时,第二消息产生器将校验节点的最小候选值输出作为校验节点的第二消息。当与选择的可变节点关联的校验节点的最小值位置与该选择的可变节点的位置不同时,第二消息产生器将校验节点的最小值输出作为校验节点的第二消息。
在示例性实施例中,校验节点更新器将选择的可变节点的更新后的对数似然值和与该选择的可变节点关联的各校验节点的最小候选值和最小值进行比较。当更新后的对数似然值小于或等于校验节点的最小值时,校验节点更新器用更新后的对数似然值来更新校验节点的最小值。当更新后的对数似然值大于校验节点的最小值并且小于或等于校验节点的最小候选值时,校验节点更新器用更新后的对数似然值来更新校验节点的最小候选值。
本申请的实施例的另一方面涉及提供一种纠错解码器的低密度奇偶校验方法。该方法包括步骤:根据奇偶校验矩阵的比特值,将k个校验节点中的每一个与n个可变节点中的多个可变节点关联,以使得:(1)可变节点中的每一个表示所述矩阵的不同列,并且校验节点中的每一个表示所述矩阵的不同行,(2)对于所述矩阵的每一行,该行中的每个真比特值指示代表其中存在有该真比特值的列的可变节点与代表该行的校验节点关联,(3)对于所述矩阵的每一行,该行中的每个假比特值指示代表其中存在有该假比特值的列的可变节点不与代表该行的校验节点关联,(4)每个可变节点与至少两个校验节点关联,并且(5)n和k是整数,n>k。所述方法还包括步骤:存储各可变节点中的一个不同的可变节点中的比特串的n个比特中的每一个的对数似然值。另外,所述方法包括步骤:(a)基于通过与可变节点关联的每个校验节点提供的更新值,在从第1可变节点开始并且在第n可变节点结束的循环中按次序更新存储在每个可变节点中的对数似然值;以及(b)确定这n个更新后的对数似然值是否表示未检测到比特差错的n比特码字。在确定存在未检测到比特差错的n比特码字或者已发生预定数量的循环之前,重复操作(a)和(b)。通过每个校验节点提供的更新值的绝对值不小于先前存储在与该校验节点关联的任一个可变节点中的最小对数似然值的绝对值。
在示例性实施例中,在一个循环中,用通过对由可变节点所关联的各校验节点提供的各更新值进行求和而获得的值来更新存储在可变节点中的每个对数似然值。
附图说明
通过以下参照附图的描述,以上和其它目的和特征将变得清楚,其中,除非另有说明,否则相同的附图标记在不同的附图中始终指代相同的部件,并且其中:
图1是示意性地示出根据本申请的实施例的纠错解码器的框图;
图2是示出根据本申请的实施例的纠错解码器的操作方法的流程图;
图3是示出根据LLR产生器接收的数据的样本样式在各可变节点设置的对数似然值的实施例的表;
图4和图5示出了形成纠错解码器的可变节点和校验节点的实施例;
图6是示出纠错解码器更新选择的可变节点的对数似然值的方法的流程图;
图7是示出更新选择的可变节点的对数似然值的方法的流程图;
图8是示出计算针对选择的可变节点的第二消息的方法的流程图;
图9是示出更新了最小值、最小值位置、最小候选值和最小候选值位置的第一实施例的流程图;
图10是示出更新了最小值、最小值位置、最小候选值和最小候选值位置的第二实施例的流程图;
图11至图22示出了纠错解码器基于图5所示的可变节点和校验节点执行纠错解码的过程;
图23是示意性地示出根据本申请的实施例的存储装置的框图;
图24是示意性地示出根据本申请的另一实施例的存储装置的框图;以及
图25是示意性地示出根据本申请的实施例的计算装置的框图。
具体实施方式
将参照附图详细描述实施例。然而,本申请可按照各种不同形式实现,并且不应理解为仅限于示出的实施例。相反,提供这些实施例作为示例是为了使得本公开将是彻底和完整的,并且将把本申请的构思完全传递给本领域技术人员。因此,对于本申请的一些实施例,将不描述已知工艺、元件和技术。除非另有说明,否则相同的附图标记在附图和书面说明书中始终指代相同的元件,因此将不重复描述。在附图中,为了清楚起见,可夸大层和区的尺寸和相对尺寸。
应该理解,虽然本文中可使用术语“第一”、“第二”、“第三”等来描述多个元件、组件、区、层和/或部分,但是这些元件、组件、区、层和/或部分不应被这些术语限制。这些术语仅用于将一个元件、组件、区、层或部分与另一区、层或部分区分开。因此,下面讨论的第一元件、第一组件、第一区、第一层或第一部分可被称作第二元件、第二组件、第二区、第二层或第二部分,而不脱离本申请的教导。
为了方便描述,本文中可使用诸如“在……下方”、“在……之下”、“下”、“下方”、“在……之上”、“上”等的空间相对术语,以描述附图中所示的一个元件或特征与另一个(一些)元件或特征的关系。应该理解,空间相对术语旨在涵盖使用或操作中的装置的除图中所示的取向之外的不同取向。例如,如果图中的装置颠倒,则被描述为“在其它元件或特征之下”或“在其它元件或特征下方”或“其它元件或特征下方”的元件将因此被取向为“在其它元件或特征之上”。这样,示例性术语“在……之下”和“下方”可涵盖“在……之上”和“在……之下”这两个取向。装置可按照其它方式取向(旋转90度或位于其它取向),并且本文所用的空间相对描述语将相应地解释。另外,还应该理解,当一层被称作在两层“之间”时,其可为所述两层之间的唯一层,或者也可存在一个或更多个中间层。
本文所用的术语仅是为了描述特定实施例,并且不旨在限制本申请。如本文所用,除非上下文清楚地指明不是这样,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。还应该理解,术语“包括”和/或“包括……的”当用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如本文所用,术语“和/或”包括相关所列项之一或多个的任何和所有组合。另外,术语“示例性”旨在涉及示例或示图。
应该理解,当一个元件或层被称作“位于”另一元件或层“上”、“连接至”、“结合至”或“邻近于”另一元件或层时,所述一个元件可直接位于另一元件或层上、连接至、结合至或邻近于另一元件或层,或者可存在中间元件或层。相反,当一个元件被称作“直接位于”另一元件或层“上”、“直接连接至”、“直接结合至”或“紧挨着”另一元件或层时,则不存在中间元件或层。
除非另外限定,否则本文中使用的所有术语(包括技术和科学术语)具有与本申请所属领域的普通技术人员之一通常理解的含义相同的含义。还应该理解,除非本文中明确这样定义,否则诸如在通用词典中定义的那些术语应该被解释为具有与它们在相关技术和/或本说明书的上下文中的含义一致的含义,而不应该按照理想化地或过于正式的含义来解释它们。
图1是示意性地示出根据本申请的实施例的纠错解码器100的框图。参照图1,纠错解码器100包括对数似然值(下文中称作“LLR”)产生器110、第一消息(例如,V2CM)计算器120、校验节点(例如,CN)更新器130、存储器140、第二消息(例如,C2VM)计算器150和决策单元160。
LLR产生器110从外部装置接收数据DATA。LLR产生器110基于接收到的数据DATA设置纠错解码器100的各可变节点的初始对数似然值LLR_I。对数似然值LLR可指示对数似然比的值。例如,LLR产生器110预先存储关于对接收到的数据DATA的样式分配的对数似然值的信息。LLR产生器110利用预先存储的信息根据接收到的数据DATA的样式设置各初始对数似然值LLR_I。各可变节点的初始对数似然值LLR_I存储在缓冲器111中。将存储在缓冲器111中的各初始对数似然值LLR_I转移至第一消息计算器120。
第一消息计算器120从LLR产生器110接收各初始对数似然值LLR_I。例如,第一消息计算器120接收对应于各可变节点的初始对数似然值LLR_I。第一消息计算器120从第二消息计算器150接收第二消息C2VM。例如,第一消息计算器120接收包括从各校验节点转移至一个选择的可变节点的各对数似然值的第二消息C2VM,所述各校验节点与所述一个选择的可变节点连接。第一消息计算器120从各初始对数似然值LLR_I和第二消息C2VM的各对数似然值中计算对应于选择的可变节点的值,以更新选择的可变节点的对数似然值LLR。第一消息计算器120将选择的可变节点的更新后的对数似然值输出作为第一消息V2CM。例如,第一消息V2CM可为将从选择的可变节点转移至至少一个校验节点的可变节点至校验节点消息。第一消息V2CM被转移至校验节点更新器130和决策单元160。
校验节点更新器130存储和管理各可变节点的对数似然值的符号SIGN以及与存储器140的每个校验节点关联的最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。校验节点更新器130基于第一消息V2CM更新存储在存储器140的值SIGN、MV、MVP、MCV和MCVP。校验节点更新器130将存储在存储器140的值MV、MVP、MCV和MCVP中的至少一个发送至第二消息计算器150。
例如,最小值MV可为共享一个校验节点的各可变节点(例如,各共享可变节点)的对数似然值的绝对值中的最小的一个。最小值位置MVP可指示具有各共享可变节点的最后一个节点的位置,例如,最近更新的可变节点的位置(或者将被最后更新的可变节点的位置)。
最小候选值MCV可为在各共享可变节点中的比对应于最小值位置MVP的可变节点更晚更新的各可变节点的对数似然值的绝对值中的大于最小值MV且最小的值。最小候选值位置MCVP可指示具有最小候选值MCV且比各共享可变节点中的对应于最小值位置MVP的可变节点更晚更新的最后一个可变节点的位置,也就是说,最近更新的可变节点的位置(或者将被最后更新的可变节点的位置)。
例如,最小候选值MCV包括第一最小候选值MCV_1、第二最小候选值MCV_2、第K最小候选值MCV_K等。第K最小候选值MCV_K可为在各共享可变节点中的比对应于第K-1最小候选值位置MCVP_K-1的可变节点更晚更新的各可变节点的对数似然值的绝对值中的大于第K-1最小候选值MCV_K-1且最小的值。
最小候选值位置MCVP包括第一最小候选值位置MCVP_1、第二最小候选值位置MCVP_2、第K最小候选值位置MCVP_K等。第K最小候选值位置MCVP_K可指示各共享可变节点中的具有第K最小候选值MCV_K且比第K-1最小候选值位置MCVP_K-1更晚更新的最后一个可变节点的位置,也就是说,最近更新的可变节点的位置(或者将被最后更新的可变节点的位置)。
第二消息计算器150将与每个校验节点关联的最小值MV和最小候选值MCV之一输出至第一消息计算器120,作为与每个校验节点关联的第二消息C2VM。例如,第二消息C2VM可为从与选择的可变节点关联的每个校验节点转移至选择的可变节点的校验节点至可变节点消息。
决策单元160从第一消息计算器120接收第一消息V2CM。决策单元160将各可变节点的对数似然值存储在缓冲器161。决策单元160利用接收到的第一消息V2CM更新存储在缓冲器161的对数似然值中的对应于接收到的第一消息V2CM的值。决策单元160确定对应于存储在缓冲器161的对数似然值的数据是否存在差错。作为确定对应于存储在缓冲器161的对数似然值的数据不存在差错的结果,决策单元160输出对应于存储在缓冲器161的对数似然值的数据,作为经纠错的数据DATA_C。
纠错解码器100基于低密度奇偶校验(下文中,称作“LDPC”)执行纠错。纠错解码器100以可变节点为单位更新对数似然值。例如,第二消息计算器150输出对应于连接至选择的可变节点的各校验节点的第二消息C2VM。第一消息计算器120根据初始对数似然值LLR_I和第二消息C2VM更新选择的可变节点的对数似然值LLR。更新后的对数似然值输出作为第一消息V2CM。第二消息计算器150根据更新后的对数似然值输出对应于与下一个可变节点连接的各校验节点的第二消息C2VM。
根据常规扩散(flooding)方式的纠错解码没有应用可变节点的更新后的对数似然值来更新下一个可变节点。相反,纠错解码器100通过可变节点更新对数似然值,并且应用更新后的对数似然值来实时地更新下一个可变节点的对数似然值LLR,从而可更快地校正数据DATA1的差错。也就是说,提高了纠错解码器100的纠错速度。
根据常规混洗(shuffle)方式的纠错解码通过利用各可变节点的全部对数似然值来更新每个可变节点的对数似然值LLR。详细地说,根据常规混洗方式的纠错解码利用各可变节点的全部对数似然值来计算将被发送至每个可变节点的第二消息C2VM。相反,纠错解码器100利用最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP而非各可变节点的全部对数似然值来更新每个可变节点的对数似然值LLR。因为不用管理或计算各可变节点的全部对数似然值,所以纠错解码器100的复杂性和尺寸可降低。
根据常规混洗方式和逼近方式的纠错解码丢弃了各可变节点的全部对数似然值的一部分,并且利用剩余的对数似然值来更新每个可变节点的对数似然值LLR。也就是说,如果通过逼近丢弃全部对数似然值的一部分,则纠错能力和纠错速度二者均降低。相反,纠错解码器100利用最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP而非各可变节点的全部对数似然值来更新每个可变节点的对数似然值LLR,但是实际上不发生对数似然值的省略或逼近。因此,纠错解码器100的纠错能力和纠错速度二者均提高。
以下,将参照附图更完全地描述纠错解码器100的纠错解码方法。
图2是示出根据本申请的实施例的纠错解码器100的操作方法的流程图。参照图1和图2,在步骤S110中,纠错解码器100接收数据DATA。例如,LLR产生器110接收数据DATA。
在步骤S120中,根据接收到的数据DATA设置各可变节点的初始对数似然值LLR_I。例如,LLR产生器110利用接收到的数据DATA和预先存储的信息为各可变节点设置初始对数似然值LLR_I。
在步骤S130中,纠错解码器100通过利用与选择的可变节点关联的最小值MV和最小候选值MCV更新选择的可变节点的对数似然值LLR来解码接收到的数据DATA。
图3是示出根据LLR产生器110接收到的数据DATA的样本样式在各可变节点设置的对数似然值的实施例的表。在示例性实施例中,接收到的数据DATA的样本可为用于确定最终比特的源样式。例如,接收到的数据DATA的样本可为用于确定最终比特是“1”还是“0”的源样式。接收到的数据DATA的样本可对应于从存储器读取的一个比特。纠错解码器100可从接收到的数据的样本中提取最终比特。
参照图1和图3,当接收到的数据的样本的样式为“111”时,LLR产生器110为对应于样本的可变节点设置“-M4”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“110”时,LLR产生器110为对应于样本的可变节点设置“-M3”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“101”时,LLR产生器110为对应于样本的可变节点设置“-M2”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“100”时,LLR产生器110为对应于样本的可变节点设置“-M1”为初始对数似然值LLR_I。
当接收到的数据的样本的样式为“011”时,LLR产生器110为对应于样本的可变节点设置“+M1”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“010”时,LLR产生器110为对应于样本的可变节点设置“+M2”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“001”时,LLR产生器110为对应于样本的可变节点设置“+M3”为初始对数似然值LLR_I。当接收到的数据的样本的样式为“000”时,LLR产生器110为对应于样本的可变节点设置“+M4”为初始对数似然值LLR_I。也就是说,LLR产生器110将具有不同符号和相同值的一对值设为初始对数似然值LLR_I。
为了简单地描述本申请的精神和范围,假设初始对数似然值LLR_I为“-4”、“-3”、“-2”、“-1”、“1”、“2”、“3”和“4”。然而,本申请的精神和范围可不限于此。初始对数似然值LLR_I中的每一个可为实数。
图4和图5示出了形成纠错解码器100的可变节点和校验节点的实施例。基于LDPC码的奇偶校验矩阵H形成纠错解码器100的可变节点和校验节点。在图4中,示出了奇偶校验矩阵H的示例。参照图1和图4,奇偶校验矩阵H包括第1行R1至第4行R4以及第1列C1至第8列C8。
纠错解码器100的校验节点的数量与奇偶校验矩阵H的行数一致。可通过纠错解码器100计算对应于奇偶校验矩阵H的第1行R1至第4行R4的第1校验节点CN1至第4校验节点CN4。纠错解码器100的可变节点的数量与奇偶校验矩阵H的列数一致。例如,可通过纠错解码器100计算对应于奇偶校验矩阵H的第1列C1至第8列C8的第1可变节点VN1至第8可变节点VN8。
奇偶校验矩阵H的每个元素标记为“h(i,j)”。“i”指示奇偶校验矩阵H的行,“j”指示奇偶校验矩阵H的列。当奇偶校验矩阵H的每个元素的变量为“1”时,第i校验节点和第j可变节点彼此关联。当奇偶校验矩阵H的每个元素的变量为“0”时,第i校验节点和第j可变节点彼此不关联。图5中示出了基于图4所示的奇偶校验矩阵H的可变节点VN1至VN8和校验节点CN1至CN4。
参照图4和图5,在第二行R2和第四行R4以及对应于第一可变节点VN1的第一列C1的值为“1”。因此,第一可变节点VN1与第二校验节点CN2和第四校验节点CN4关联。在第一行R1和第二行R2以及对应于第二可变节点VN2的第二列C2的值为“1”。因此,第二可变节点VN2与第一校验节点CN1和第二校验节点CN2关联。
在第二行R2和第三行R3以及对应于第三可变节点VN3的第三列C3的值为“1”。因此,第三可变节点VN3与第二校验节点CN2和第三校验节点CN3关联。在第一行R1和第四行R4以及对应于第四可变节点VN4的第四列C4的值为“1”。因此,第四可变节点VN4与第一校验节点CN1和第四校验节点CN4关联。
在第一行R1和第四行R4以及对应于第五可变节点VN5的第五列C5的值为“1”。因此,第五可变节点VN5与第一校验节点CN1和第四校验节点CN4关联。在第二行R2和第三行R3以及对应于第六可变节点VN6的第六列C6的值为“1”。因此,第六可变节点VN6与第二校验节点CN2和第三校验节点CN3关联。
在第三行R3和第四行R4以及对应于第七可变节点VN7的第七列C7的值为“1”。因此,第七可变节点VN7与第三校验节点CN3和第四校验节点CN4关联。在第一行R1和第三行R3以及对应于第八可变节点VN8的第八列C8的值为“1”。因此,第八可变节点VN8与第一校验节点CN1和第三校验节点CN3关联。
图4所示的奇偶校验矩阵H以及图5所示的可变节点VN1至VN8和校验节点CN1至CN4是示例性的。然而,本申请的精神和范围可不限于此。
纠错解码器100的可变节点VN1至VN8的数量可为纠错解码器100的纠错解码的基本单位。如图4和图5所示,当可变节点VN1至VN8的数量为“8”时,纠错解码器100以八个样本为单位执行纠错解码。接收到的数据的样本对应于可变节点VN1至VN8。
当纠错解码器100开始纠错解码时,LLR产生器110根据接收到的数据的样本的样式为各可变节点VN1至VN8设置初始对数似然值LLR_I。
图6是示出纠错解码器100更新选择的可变节点的对数似然值LLR的方法(图2中的步骤S130)的流程图。参照图1、图5和图6,在步骤S210中,选择第一可变节点。例如,选择的是各可变节点VN1至VN8中的第一可变节点VN1。
在步骤S220中,纠错解码器100利用最小值MV和最小候选值MCV更新选择的可变节点的对数似然值LLR。
在步骤S230中,确定选择的可变节点是否是最后一个可变节点。如果否,则方法前进至步骤S240,在步骤S240,选择下一个可变节点。然后,该方法前进至步骤S220。当选择的可变节点是最后一个可变节点时,例如,如果更新了第八可变节点VN8的对数似然值LLR,则方法前进至步骤S250。
也就是说,在步骤S210至S240中,按次序选择各可变节点VN1至VN8,并且更新选择的可变节点的对数似然值LLR。按次序选择各可变节点VN1至VN8并更新对数似然值的操作可构成一个更新循环。
如果一个更新循环结束,则在步骤S250中,纠错解码器100确定差错是否被校正。例如,决策单元160确定对应于存储在缓冲器161的对数似然值的数据是否具有差错。如果校正了差错,则在步骤S260中,纠错解码器100输出经纠错的数据DATA_C。例如,决策单元160输出对应于存储在缓冲器161的对数似然值的数据,作为经纠错的数据DATA_C。如果差错未被校正,则方法前进至步骤S270。
在步骤S270中,纠错解码器100确定当前循环是否达到最大循环。例如,可预定纠错解码器100的最大更新循环值。纠错解码器100可确定已执行的更新循环的值是否达到最大循环值。如果已执行的更新循环的值未达到最大循环值,则方法可前进至步骤S210。如果已执行的更新循环的值达到最大循环值,则在步骤S280中,纠错解码器100提供接收到的数据为不可校正的差错的通知。
也就是说,纠错解码器100在当前循环达到最大循环之前将重复更新循环。在每个更新循环中,纠错解码器100按次序更新每个可变节点的对数似然值LLR。
图7是示出更新选择的可变节点的对数似然值LLR的方法(图6中的步骤S220)的流程图。参照图1、图5和图7,在步骤S310中,确定是否第一次发生更新。例如,确定选择的可变节点的更新是否是共享校验节点的各可变节点的第一次更新。例如,确定选择的可变节点是否被与选择的可变节点连接的校验节点最初更新。例如,确定在与选择的可变节点关联的各校验节点中是否存在最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
选择的可变节点的更新不是第一次更新则意味着在与选择的可变节点关联的校验节点中先前存在有最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。因此,直接执行步骤S370。
选择的可变节点的更新是第一次更新则意味着在与选择的可变节点关联的校验节点中不存在最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。因此,执行步骤S320以检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
在步骤S320中,将最小值MV、最小值位置MVP、最小候选值MCV、最小候选值位置MCVP和变量K重置。例如,用最大值重置最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP,并且用“1”重置变量K。
在步骤S330中,校验节点更新器130检测最小值MV和最小值位置MVP。例如,校验节点更新器130可检测对应于与选择的可变节点连接的校验节点的最小值MV和最小值位置MVP。例如,校验节点更新器130从第一消息计算器120接收各共享可变节点的初始对数似然值LLR_I。校验节点更新器130识别各共享可变节点的初始对数似然值LLR_I的最小绝对值以作为最小值MV。校验节点更新器130从各共享可变节点中检测具有最小值MV的最后一个可变节点的位置以作为最小值位置MVP,例如,检测最近更新的可变节点的位置(或者将被最后更新的可变节点的位置)。
在步骤S340中,校验节点更新器130检测第K最小候选值MCV_K和第K最小候选值位置MCVP_K。例如,校验节点更新器130检测对应于与选择的可变节点连接的校验节点的第K最小候选值MCV_K和第K最小候选值位置MCVP_K。
例如,校验节点更新器130从各可变节点的对数似然值的绝对值中检测大于最小值MV(例如,当变量K为“1”时)或大于第K-1最小候选值MCV_K-1(例如,当变量K大于“2”时)且为最小,并且比各共享可变节点的对应于最小值位置MVP的可变节点更晚更新的值,作为第K最小候选值MCV_K。
例如,校验节点更新器130检测具有第K最小候选值MCV_K,并且比各共享可变节点的对应于最小值位置MVP的可变节点更晚更新的最后一个可变节点的位置,作为第K最小候选值位置MCVP_K。
在步骤S340、S350和S360中,在变量K达到“2(Q-1)–1”之前,检测第K最小候选值MCV_K和第K最小候选值位置MCVP_K。
变量Q指示接收到的数据的样本的比特数。样本的多个比特之一用于识别符号。因此,“2(Q-1)–1”指示样本可具有的对数似然值的绝对值的类型的数量。也就是说,在步骤S310至S360中,校验节点更新器130根据以下顺序按次序检测各可变节点VN1至VN8的对数似然值的绝对值的最小值MV和最小候选值MCV:从小值至大值的顺序,以及从较早更新的可变节点至较晚更新的可变节点的顺序。此时,最小值MV和最小候选值MCV具有不同的值。
如图4所示,当“Q”为3时,校验节点更新器130检测最小值MV、最小值位置MVP、第一最小候选值MCV_1至第三最小候选值MCV_3以及第一最小候选值位置MCVP_1至第三最小候选值位置MCVP_3。
在与选择的可变节点关联的各校验节点中的执行了第一次更新的各校验节点共同地执行步骤S320至S360。
在步骤S310至S360中,如果检测了最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP,或者如果选择的可变节点的更新不是第一次更新,则执行步骤S370。
在步骤S370中,利用最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP计算针对选择的可变节点的第二消息C2VM。
在步骤S380中,利用这样计算的第二消息C2VM更新选择的可变节点的对数似然值LLR。
在步骤S390中,根据选择的可变节点的更新结果来更新与选择的可变节点关联的各校验节点的最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
图8是示出计算针对选择的可变节点的第二消息C2VM的方法(S370)的流程图。参照图1和图8,在步骤S410中,确定选择的可变节点的位置是否对应于最小值位置MVP。例如,在与选择的可变节点连接的各校验节点中的每一个处,将选择的可变节点的位置与最小值位置MVP进行比较。
当选择的可变节点的位置与最小值位置MVP不同时,将从具有对应的最小值位置MVP的校验节点发送至选择的可变节点的第二消息C2VM可为最小值MV(步骤S420)。
当选择的可变节点的位置与最小值位置MVP相同时,将从具有最小值位置MVP的校验节点发送至选择的可变节点的第二消息C2VM可为第一最小候选值MCV_1。第一最小候选值MCV_1可为各共享可变节点的对数似然值的绝对值中的大于最小值MV且为最小的值(步骤S430)。
图9是示出更新最小值MV、最小值位置MVP、最小候选值MCV、最小候选值位置MCVP的第一实施例的流程图。参照图1和图9,在步骤S510中,重置变量K。
在步骤S520中,确定选择的可变节点的位置是否与最小值位置MVP相同。如果是,则在步骤S530,重置最小值MV和最小值位置MVP。将最小值MV设为具有第一最小候选值MCV_1的值,并且将最小值位置MVP设为具有第一最小候选值位置MCVP_1。其余最小候选值MCV和最小候选值位置MCVP移位一个等级,也就是说,具有大于最小值MV的值的最小候选值MCV以及与其关联的最小候选值位置MCVP移位一个等级。例如,第二最小候选值MCV_2和第二最小候选值位置MCVP_2移位至第一最小候选值MCV_1和第一最小候选值位置MCVP_1。第n最小候选值MCV_n和第n最小候选值位置MCVP_n移位至第n-1最小候选值MCV_n-1和第n-1最小候选值位置MCVP_n-1。
当选择的可变节点的位置不是最小值位置MVP时,该方法前进至步骤S540,其中,确定选择的可变节点的位置是否对应于第K最小候选值位置MCVP_K。当选择的可变节点的位置对应于第K最小候选值位置MCVP_K时,在步骤S550中,重置第K最小候选值MCV_K和第K最小候选值位置MCVP_K。将第K最小候选值MCV_K和第K最小候选值位置MCVP_K设为具有第K+1最小候选值MCV_K+1和第K+1最小候选值位置MCVP_K+1。将第K+1最小候选值MCV_K+1之后的最小候选值MCV和第K+1最小候选值位置MCVP_K+1之后的最小候选值位置MCVP,也就是说,值大于第K最小候选值MCV_K的最小候选值MCV和与其关联的最小候选值位置MCVP移位一个等级。例如,第n+1最小候选值MCV_n+1和第n+1最小候选值位置MCVP_n+1移位至第n最小候选值MCV_n和第n最小候选值位置MCVP_n。
当选择的可变节点的位置不是第K最小候选值位置MCVP_K时,在步骤S560中,确定变量K是否达到“2(Q-1)–1”。例如,确定是否将所有最小候选值位置MCVP都进行了比较。作为确定没有将所有最小候选值位置MCVP都进行比较的结果,该方法前进至步骤S570,其中变量K增加。然后,该方法前进至步骤S540。
在示例性实施例中,校验节点更新器130可管理具有最小值MV或最小候选值MCV的选择的可变节点的对数似然值LLR。当在步骤S380中更新时,选择的可变节点的对数似然值LLR不再有效。因此,当通过最小值MV或最小候选值MCV管理选择的可变节点的对数似然值LLR时,例如,当选择的可变节点的位置对应于最小值位置MVP或最小候选值位置MCVP时,校验节点更新器130从存储器140中删除最小值MV或最小候选值MCV以及关联的最小值位置MVP或最小候选值位置MCVP。然后,为了保持最小值MV和最小候选值MCV的连续性,校验节点更新器130将被删除的最小值MV或最小候选值MCV之后的最小候选值MCV以及关联的最小候选值位置MCVP移位一个等级。
图10是示出更新最小值MV、最小值位置MVP、最小候选值MCV、最小候选值位置MCVP的第二实施例的流程图。参照图1和图10,在步骤S610中,重置变量K。
在步骤S620中,确定选择的可变节点的更新后的对数似然值LLR_U的绝对值是否小于或等于最小值MV。当选择的可变节点的更新后的对数似然值LLR_U的绝对值小于或等于最小值MV时,在步骤S630中,以更新后的对数似然值LLR_U的绝对值设置最小值MV。以选择的可变节点的位置设置最小值位置MVP。然后,重置其值大于最小值MV的最小候选值MCV和与其关联的最小候选值位置MCVP。
当更新后的对数似然值LLR_U的绝对值大于最小值MV时,在步骤S640中,确定更新后的对数似然值LLR_U的绝对值是否小于或等于第K最小候选值MCV_K。当更新后的对数似然值LLR_U的绝对值小于或等于第K最小候选值MCV_K时,在步骤S650中,以更新后的对数似然值LLR_U的绝对值设置第K最小候选值MCV_K,并且以选择的可变节点的位置设置第K最小候选值位置MCVP_K。然后,重置其值大于第K最小候选值MCV_K的最小候选值MCV以及最小候选值位置MCVP。
当更新后的对数似然值LLR_U的绝对值大于第K最小候选值MCV_K时,在步骤S660中,确定变量K是否达到“2(Q-1)–1”。也就是说,将更新后的对数似然值LLR_U的绝对值与所有最小候选值MCV进行比较。当没有将所有最小候选值MCV都进行比较时,该方法前进至步骤S670,其中变量K增大。然后,该方法前进至步骤S640。
在示例性实施例中,当更新时,在其它各共享可变节点分别更新之后再次更新选择的可变节点的对数似然值LLR。也就是说,在当选择的可变节点的对数似然值LLR更新时的时间点,选择的可变节点的更新后的对数似然值LLR_U可为各共享可变节点的对数似然值中的最近更新的(或最后更新的)对数似然值。校验节点更新器130管理与最小值MV或最小候选值MCV具有相同绝对值的各对数似然值中的最近更新的(或最后更新的)对数似然值的绝对值。现在,选择的可变节点的更新后的对数似然值LLR_U是最近更新的(或最后更新的)对数似然值,校验节点更新器130根据更新后的对数似然值LLR_U是否小于最小值MV或最小候选值MCV来更新最小值MV或最小候选值MCV。
当登记为最小值MV或最小候选值MCV时,更新后的对数似然值LLR_U的绝对值在至少一个循环中保持最小值或最小候选值MCV。因此,不使用大于更新后的对数似然值LLR_U的绝对值的最小候选值MCV。现在,不使用大于更新后的对数似然值LLR_U的绝对值的最小候选值MCV,校验节点更新器130重置其值大于通过更新后的对数似然值LLR_U更新的最小值MV或最小候选值MCV的最小候选值MCV以及与其关联的最小候选值位置MCVP。
如参照图6至图10的描述,纠错解码器100根据各可变节点VN1至VN8和各校验节点CN1至CN4执行多个更新循环。在每个更新循环中,纠错解码器100按次序选择各可变节点VN1至VN8,利用最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP更新选择的可变节点的对数似然值LLR,并且根据更新结果来更新最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
图11至图22示出了纠错解码器100基于图5所示的可变节点VN1至VN8和校验节点CN1至CN4执行纠错解码的过程。参照图1和图11,第一可变节点VN1至第八可变节点VN8设有初始对数似然值LLR_I“1”、“4”、“3”、“1”、“2”、“2”、“4”和“3”。在示例性实施例中,第一可变节点VN1至第八可变节点VN8可按照从第一可变节点至第八可变节点的顺序按次序更新。
选择第一可变节点VN1用于纠错解码。第一可变节点VN1与第二校验节点CN2和第四校验节点CN4连接。与第二校验节点CN2关联的第一可变节点VN1的各共享可变节点是第一可变节点VN1、第二可变节点VN2、第三可变节点VN3和第六可变节点VN6。与第四校验节点CN4关联的第一可变节点VN1的各共享可变节点是第一可变节点VN1、第四可变节点VN4、第五可变节点VN5和第七可变节点VN7。
需要来自第二校验节点CN2的第二消息C2VM和来自第四校验节点CN4的第二消息C2VM来更新第一可变节点VN1的对数似然值LLR。因此,计算来自第二校验节点CN2和第四校验节点CN4的各个第二消息C2VM。
第一次在第二校验节点CN2的各共享可变节点VN1、VN2、VN3和VN6执行可变节点的更新。校验节点更新器130从各共享可变节点VN1、VN2、VN3和VN6的初始对数似然值LLR_I中检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
在示例性实施例中,根据初始对数似然值LLR_I检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP的方法与参照图10描述的方法基本相同,不同的是,用初始对数似然值LLR_I的绝对值替代了更新后的对数似然值LLR_U的绝对值。
例如,选择的是第二校验节点CN2的各共享可变节点VN1、VN2、VN3和VN6的第一可变节点VN1。现在,第一可变节点VN1的初始对数似然值LLR_I为“1”,在步骤S630中,将最小值MV和最小值位置MVP分别设为“1”。
选择的是各共享可变节点VN1、VN2、VN3和VN6的第二可变节点VN2。现在,第二可变节点VN2的初始对数似然值LLR_I为“4”,在步骤S650中,最小值MV和最小值位置MVP分别保持为“1”,并且第一最小候选值MCV_1和第一最小候选值位置MCVP_1设为“4”和“2”。
选择各共享可变节点VN1、VN2、VN3和VN6的第三可变节点VN3。由于第三可变节点VN3的初始对数似然值LLR_I是“3”,在步骤S650中,最小值MV和最小值位置MVP分别保持为“1”,并且将第一最小候选值MCV_1和第一最小候选值位置MCVP_1更新为“3”和“3”。
选择的是各共享可变节点VN1、VN2、VN3和VN6的第六可变节点VN6。现在,第六可变节点VN6的初始对数似然值LLR_I为“2”,在步骤S650中,最小值MV和最小值位置MVP分别保持为“1”,并且第一最小候选值MCV_1和第一最小候选值位置MCVP_1设为“2”和“6”。
因此,如图11所示,在第二校验节点CN2,最小值MV检测为“1”,最小值位置MVP为“1”,第一最小候选值MCV_1为“2”,并且第一最小候选值位置MCVP_1为“6”。
第一次在第四校验节点CN4的各共享可变节点VN1、VN4、VN5和VN7执行可变节点的更新。校验节点更新器130从各共享可变节点VN1、VN4、VN5和VN7的初始对数似然值LLR_I中检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
在示例性实施例中,根据初始对数似然值LLR_I检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP的方法与参照图10描述的方法基本相同,不同的是,用初始对数似然值LLR_I的绝对值替代了更新后的对数似然值LLR_U的绝对值。
如图11所示,在第四校验节点CN4,最小值MV检测为“1”,最小值位置MVP为“4”,第一最小候选值MCV_1为“2”,并且第一最小候选值位置MCVP_1为“5”。此外,第二最小候选值MCV_2检测为“4”,并且第二最小候选值位置MCVP_2为“7”。
在计算与选择的第一可变节点VN1连接的第二校验节点CN2和第四校验节点CN4的最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP之后,计算将要从第二校验节点CN2和第四校验节点CN4转移至第一可变节点VN1的各第二消息C2VM。下面,本申请的实施例的例示情况为:计算来自第二校验节点CN2的第二消息C2VM,并随后计算来自第四校验节点CN4的第二消息C2VM。然而,本申请的精神和范围可不限于此。例如,可按次序或同时计算来自第二校验节点CN2和第四校验节点CN4的第二消息C2VM。
参照图12,选择的第一可变节点VN1的位置与第二校验节点CN2的最小值位置MVP一致。因此,如参照图8所示的步骤S430的描述,第二消息计算器150输出第一最小候选值MCV_1的“2”作为来自第二校验节点CN2的第二消息C2VM。
如参照图9所示的步骤S530的描述,因为选择的第一可变节点VN1的位置与第二校验节点CN2的最小值位置MVP一致,所以重置第二校验节点CN2的最小值MV和最小值位置MVP。
将第二校验节点CN2的最小值MV设为具有第一最小候选值MCV_1。将第二校验节点CN2的最小值位置MVP设为具有第一最小候选值位置MCVP_1。将第二校验节点CN2的其余最小候选值MCV_2和MCV_3以及其余最小候选值位置MCVP_2和MCVP_3移位一个等级。图13中示出了第二校验节点CN2的最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP的更新结果。
参照图13,选择的第一可变节点VN1的位置与第四校验节点CN4的最小值位置MVP不同。因此,如参照图8所示的步骤S420的描述,第二消息计算器150输出最小值MV的“1”作为来自第四校验节点CN4的第二消息C2VM。
因为选择的第一可变节点VN1的位置与第四校验节点CN4的最小值位置MVP和最小候选值位置MCVP不同,所以校验节点更新器130不执行关于第四校验节点(参照图9的描述)的更新。
参照图14,第一消息计算器120将选择的第一可变节点VN1的初始对数似然值LLR_I、来自第二校验节点CN2的第二消息C2VM以及来自第四校验节点CN4的第二消息C2VM相加,以计算选择的第一可变节点VN1的更新后的对数似然值LLR_U。在计算更新后的对数似然值LLR_U时,使用存储在存储器140的对数似然值的符号SIGN。例如,假设第一可变节点VN1的更新后的对数似然值LLR_U的绝对值为“3”。第一可变节点VN1的更新后的对数似然值LLR_U或更新后的对数似然值LLR_U的绝对值存储在决策单元160的缓冲器161。当第一可变节点VN1的更新后的对数似然值LLR_U的符号与更新之前的对数似然值的符号(例如,初始对数似然值LLR_I的符号)不同时,更新存储在存储器140的第一可变节点VN1的对数似然值LLR的符号SIGN。
在第二校验节点CN2处,更新后的对数似然值LLR_U的绝对值大于最小值MV,同时第一最小候选值MCV_1不存在。如对变量K为“1”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第一最小候选值MCV_1。用选择的第一可变节点VN1的位置来更新第一最小候选值位置MCVP_1。重置第二最小候选值MCV_2和第三最小候选值MCV_3,设为具有大于第一最小候选值MCV_1的值,并且重置第二最小候选值位置MCVP_2和第三最小候选值位置MCVP_3。
在第四校验节点CN4处,更新后的对数似然值LLR_U的绝对值大于第一最小候选值MCV_1并且小于第二最小候选值MCV_2。如对变量K为“2”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第二最小候选值MCV_2。用选择的第一可变节点VN1的位置来更新第二最小候选值位置MCVP_2。重置第三最小候选值MCV_3,设为具有大于第二最小候选值MCV_2的值,并且重置与其关联的第三最小候选值位置MCVP_3。
参照图15,针对纠错解码选择第二可变节点VN2。第二可变节点VN2与第一校验节点CN1和第二校验节点CN2连接。与第一校验节点CN1关联的第二可变节点VN2的各共享可变节点是第二可变节点VN2、第四可变节点VN4、第五可变节点VN5和第八可变节点VN8。与第二校验节点CN2关联的第二可变节点VN2的各共享可变节点是第一可变节点VN1、第二可变节点VN2、第三可变节点VN3和第六可变节点VN6。
需要来自第一校验节点CN1的第二消息C2VM和来自第二校验节点CN2的第二消息C2VM来更新第二可变节点CN2的对数似然值LLR。因此,计算来自第一校验节点CN1和第二校验节点CN2的各个第二消息C2VM。
第一次在第一校验节点CN1的各共享可变节点VN2、VN4、VN5和VN8执行可变节点的更新。校验节点更新器130从各共享可变节点VN2、VN4、VN5和VN8的初始对数似然值LLR_I中检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
在示例性实施例中,根据初始对数似然值LLR_I检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP的方法与参照图10描述的方法基本相同,不同的是,用初始对数似然值LLR_I的绝对值替代了更新后的对数似然值LLR_U的绝对值。
如图15所示,在第一校验节点CN1处,最小值MV检测为“1”,最小值位置MVP为“4”,第一最小候选值MCV_1为“2”,并且第一最小候选值位置MCVP_1为“5”。此外,第二最小候选值MCV_2检测为“3”,并且第二最小候选值位置MCVP_2为“8”。
由于之前已经存在,因此不单独计算第二校验节点CN2的最小值MV,最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
参照图16,选择的第二可变节点VN2的位置与第一校验节点CN1的最小值位置MVP不同。因此,如参照图8所示的步骤S420的描述,第二消息计算器150输出最小值MV的“1”作为来自第一校验节点CN1的第二消息C2VM。
选择的第二可变节点VN2的位置与第一校验节点CN1的最小值位置MVP、第一最小候选值位置MCVP_1和第二最小候选值位置MCVP_2不同。因此,校验节点更新器130不执行关于第一校验节点的更新(参照图9的描述)。
参照图17,选择的第二可变节点VN2的位置与第二校验节点CN2的最小值位置MVP不同。因此,如参照图8所示的步骤S420的描述,第二消息计算器150输出最小值MV的“2”作为来自第二校验节点CN2的第二消息C2VM。
选择的第二可变节点VN2的位置与第二校验节点CN2的最小值位置MVP和第一最小候选值位置MCVP_1不同。因此,校验节点更新器130不执行关于第二校验节点CN2的更新(参照图9的描述)。
参照图18,第一消息计算器120将选择的第二可变节点VN1的初始对数似然值LLR_I、来自第一校验节点CN1的第二消息C2VM以及来自第二校验节点CN2的第二消息C2VM相加,以计算选择的第二可变节点VN2的更新后的对数似然值LLR_U。在计算更新后的对数似然值LLR_U时,使用存储在存储器140的对数似然值的符号SIGN。例如,假设第二可变节点VN2的更新后的对数似然值LLR_U的绝对值为“3”。第二可变节点VN2的更新后的对数似然值LLR_U或更新后的对数似然值LLR_U的绝对值存储在决策单元160的缓冲器161中。当第二可变节点VN2的更新后的对数似然值LLR_U的符号与更新之前的对数似然值的符号(例如,初始对数似然值LLR_I的符号)不同时,更新存储在存储器140的第二可变节点VN2的对数似然值LLR的符号SIGN。
在第一校验节点CN1处,更新后的对数似然值LLR_U的绝对值等于第二最小候选值MCV_2。如对变量K为“2”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第一校验节点CN1的第二最小候选值MCV_2。用选择的第二可变节点VN2的位置来更新第一校验节点CN1的第二最小候选值位置MCVP_2。重置第一校验节点CN1的第三最小候选值MCV_3和第三最小候选值位置MCVP_3。
在第二校验节点CN2处,更新后的对数似然值LLR_U的绝对值等于第一最小候选值MCV_1。如对变量K为“1”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第二校验节点CN2的第一最小候选值MCV_1。用选择的第二可变节点VN2的位置来更新第二校验节点CN2的第一最小候选值位置MCVP_1。重置第二校验节点CN2的第二最小候选值和第三最小候选值MCV以及与其关联的第二最小候选值位置MCVP_2和第三最小候选值位置MCVP_3。
参照图19,针对纠错解码选择第三可变节点VN3。第三可变节点VN3与第二校验节点CN2和第三校验节点CN3连接。第二校验节点CN2的各共享可变节点为第一可变节点VN1、第二可变节点VN2、第三可变节点VN3和第六可变节点VN6。第三校验节点CN3的各共享可变节点为第三可变节点VN2、第六可变节点VN6、第七可变节点VN7和第八可变节点VN8。
需要来自第二校验节点CN2的第二消息C2VM和来自第三校验节点CN3的第二消息C2VM来更新第三可变节点VN3的对数似然值LLR。
第二校验节点CN2的最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP是先前存在的。
第一次在第三校验节点CN3的各共享可变节点VN3、VN6、VN7和VN8执行可变节点的更新。校验节点更新器130从各共享可变节点VN3、VN6、VN7和VN8的初始对数似然值LLR_I中检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP。
在示例性实施例中,根据初始对数似然值LLR_I检测最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP的方法与参照图10描述的方法基本相同,不同的是,用初始对数似然值LLR_I的绝对值替代了更新后的对数似然值LLR_U的绝对值。
如图19所示,在第三校验节点CN3处,最小值MV检测为“2”,最小值位置MVP为“6”,第一最小候选值MCV_1为“3”,并且第一最小候选值位置MCVP_1为“8”。
参照图20,选择的第三可变节点VN3的位置与第二校验节点CN2的最小值位置MVP不同。因此,如参照图8所示的步骤S420的描述,第二消息计算器150输出最小值MV的“2”作为来自第二校验节点CN2的第二消息C2VM。
因为选择的第三可变节点VN3的位置与第二校验节点CN2的最小值位置MVP和最小候选值位置MCVP不同,所以校验节点更新器130不执行关于第二校验节点CN2的更新(参照图9的描述)。
参照图21,选择的第三可变节点VN3的位置与第三校验节点CN3的最小值位置MVP不同。因此,如参照图8所示的步骤S420的描述,第二消息计算器150输出最小值MV的“2”作为来自第三校验节点CN3的第二消息C2VM。
因为选择的第三可变节点VN3的位置与第三校验节点CN3的最小值位置MVP和最小候选值位置MCVP不同,所以校验节点更新器130不执行关于第三校验节点CN3的更新(参照图9的描述)。
参照图22,第一消息计算器120将选择的第三可变节点VN3的初始对数似然值LLR_I、来自第二校验节点CN2的第二消息C2VM和来自第三校验节点CN3的第二消息C2VM相加,以计算选择的第三可变节点VN3的更新后的对数似然值LLR_U。在计算更新后的对数似然值LLR_U时,使用存储在存储器140的对数似然值的符号SIGN。例如,假设第三可变节点VN3的更新后的对数似然值LLR_U的绝对值为“4”。第三可变节点VN3的更新后的对数似然值LLR_U或更新后的对数似然值LLR_U的绝对值存储在决策单元160的缓冲器161中。当第三可变节点VN3的更新后的对数似然值LLR_U的符号与更新之前的对数似然值LLR的符号(例如,初始对数似然值LLR_I的符号)不同时,更新存储在存储器140的第三可变节点VN3的对数似然值LLR的符号SIGN。
在第二校验节点CN2处,更新后的对数似然值LLR_U的绝对值大于第一最小候选值MCV_1,同时第二最小候选值MCV_2不存在。如对变量K为“2”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第二校验节点CN2的第二最小候选值MCV_2。用选择的第三可变节点VN3的位置来更新第二校验节点CN2的第二最小候选值位置MCVP_2。重置第二校验节点CN2的第三最小候选值MCV_3和与其关联的第三最小候选值位置MCVP_3。
在第三校验节点CN3处,更新后的对数似然值LLR_U的绝对值大于第一最小候选值MCV_1,同时第二最小候选值MCV_2不存在。如对变量K为“2”的情况(参照图10所示的步骤S650)的描述,用更新后的对数似然值LLR_U的绝对值来更新第三校验节点CN3的第二最小候选值MCV_2。用选择的第三可变节点VN3的位置来更新第三校验节点CN3的第二最小候选值位置MCVP_2。重置第三校验节点CN3的第三最小候选值MCV_3和与其关联的第三最小候选值位置MCVP_3。
如上所述,纠错解码器100利用最小值MV、最小值位置MVP、最小候选值MCV和最小候选值位置MCVP而非各可变节点的全部对数似然值来计算第二消息C2VM。纠错解码器100的复杂性基于最小候选值MCV的数量和最小候选值位置MCVP的数量,而非校验节点CN的数量、可变节点VN的数量以及校验节点CN与可变节点VN之间的连接关系。因此,根据本申请的实施例的纠错解码器100可为每数据样本的比特数量小的存储环境而被优化。
在本申请的实施例中,本申请的实施例的例示情况为:当每个数据样本由Q比特形成时,使用的最小候选值MCV的数量为“2(Q–1)–1”。也就是说,本申请的实施例的例示情况为使用的最小值和最小候选值MCV的数量最多为“2(Q–1)–1”。然而,纠错解码器使用的最小候选值MCV的数量可减少。例如,纠错解码器100可使用其数量比最小候选值MCV的最大数量“2(Q –1)–1”小M的最小候选值MCV。在这种情况下,可进一步减小纠错解码器100的复杂性和大小。
可将减少最小候选值MCV的数量看作是一种逼近类型。然而,常规基于逼近的纠错解码器通过使用预定数量的对数似然值而不管对数似然值的类型来执行纠错。然而,如果将逼近应用于根据本申请的实施例的纠错解码器100,则纠错解码器100利用预定数量的对数似然值校正差错。使用的对数似然值(即,最小值MV和最小候选值MCV)没有重复。因此,可使得由于逼近而省略的信息最小化,并且优化纠错解码器100的纠错效率。
图23是示意性地示出根据本申请的实施例的存储装置200的框图。参照图23,存储装置200包含非易失性存储器210和存储器控制器220。
非易失性存储器210根据存储器控制器220的控制执行读、写和擦除操作。非易失性存储器210与存储器控制器220交换第一数据DATA1。例如,非易失性存储器210从存储器控制器220接收写数据并且存储写数据。非易失性存储器210执行读操作并且将读数据输出至存储器控制器220。
非易失性存储器210从存储器控制器220接收第一命令CMD1和第一地址ADDR1。非易失性存储器210与存储器控制器120交换控制信号CTRL。例如,非易失性存储器210从存储器控制器220接收芯片选择信号/CE、命令锁存使能信号CLE、地址锁存使能信号ALE、读使能信号/RE、写使能信号/WE、写保护信号/WP和数据选通信号DQS中的至少一个,其中,芯片选择信号/CE用于选择构成非易失性存储器210的多个半导体装置中的至少一个;命令锁存使能信号CLE指示从存储器控制器220接收的信号是第一命令CMD1;地址锁存使能信号ALE指示从存储器控制器220接收的信号是第一地址ADDR1;读使能信号/RE在读操作中从存储器控制器220接收,周期性地切换,并且用于调节定时;当发送第一命令CMD1或第一地址ADDR1时由存储器控制器220激活写使能信号/WE;由存储器控制器220激活写保护信号/WP以防止电源改变时的不期望的写操作或擦除操作;并且数据选通信号DQS用于调整第一数据DATA1的输入同步,并且其在写操作时从存储器控制器220产生,以周期性地触发。例如,非易失性存储器210将就绪/忙信号R/nB和数据选通信号DQS中的至少一个输出至存储器控制器220,其中,就绪/忙信号R/nB指示非易失性存储器210是在执行编程操作、擦除操作还是在执行读操作;数据选通信号DQS用于调整第一数据DATA1的输出同步,并且通过非易失性存储器210从读使能信号/RE产生,以周期性地触发。
非易失性存储器210可包括闪速存储器。然而,本申请的精神和范围可不限于此。例如,非易失性存储器210可包含诸如PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻式RAM)、FeRAM(铁电RAM)等的非易失性存储器中的至少一个。
在本申请的实施例中,提供了三维(3D)存储器阵列。3D存储器阵列整体地(monolithically)形成在存储器单元阵列的一个或多个物理水平中,所述存储器单元具有设置在硅衬底上方的有源区域和与这些存储器单元的操作关联的电路,这些关联的电路位于所述衬底上方或位于衬底中。术语“整体”意指阵列的每个水平的各层直接设置在阵列的每个下一水平的各层之上。
在本申请的实施例中,3D存储器阵列包括竖直取向的竖直NAND串,以使得至少一个存储器单元位于另一存储器单元上方。所述至少一个存储器单元可包括电荷俘获层。每个竖直NAND串还包括位于存储器单元上方的至少一个选择晶体管,所述至少一个选择晶体管与各存储器单元具有相同结构并且与各存储器单元整体地一起形成。
全文以引用方式并入本文的以下专利文献描述了适用于三维存储器阵列的配置,其中三维存储器阵列配置为多个水平,在各水平之间共享各条字线和/或各条位线:美国专利第7,679,133号、第8,553,466号、第8,654,587号、第8,559,235号和美国专利公布第2011/0233648号。
存储器控制器220控制非易失性存储器210。例如,非易失性存储器210根据存储器控制器220的控制执行写操作、读操作或擦除操作。存储器控制器220与非易失性存储器210交换第一数据DATA1和控制信号CTRL,并将第一命令CMD1和第一地址ADDR1输出至非易失性存储器210。
存储器控制器220根据外部主机装置(未示出)的控制来控制非易失性存储器210。存储器控制器220与主机装置交换第二数据DATA2,并从主机接收第二命令CMD2和第二地址ADDR2。
存储器控制器220从主机装置接收第二数据DATA2,并且将第二数据DATA2写在非易失性存储器210作为第一数据DATA1。存储器控制器220从非易失性存储器210接收第一数据DATA1,并且将第一数据DATA1输出至主机装置,作为第二数据DATA2。在示例性实施例中,存储器控制器220通过第一单位与非易失性存储器210交换第一数据DATA1,并且通过与第一单位不同的第二单位与主机装置交换第二数据DATA2。
存储器控制器220按照第一格式与非易失性存储器210交换第一数据DATA1,并将第一命令CMD1和第一地址ADDR1发送至非易失性存储器210。存储器控制器220按照与第一格式不同的第二格式与主机装置交换第二数据DATA2,并从主机装置接收第二命令CMD2和第二地址ADDR2。
存储器控制器220包括纠错解码器100。纠错解码器100校正从非易失性存储器210读取的第一数据DATA1的差错。纠错解码器100可包括根据参照图1至图22描述的本申请的实施例的纠错解码器100。在示例性实施例中,纠错解码器100接收的样本可为利用与非易失性存储器210的存储器单元的阈电压分布中的正好彼此相邻的两个阈电压分布之间的电平邻近的电平的不同读电压所执行的读操作的结果。
在示例性实施例中,纠错解码器100可包括在非易失性存储器210中,而非存储器控制器220中。非易失性存储器210可将利用纠错解码器100校正了其差错的数据输出至存储器控制器220,作为第一数据DATA1。
存储装置200根据主机装置的请求执行写数据、读数据或擦除数据的操作。存储装置200可包括固态驱动器(SSD)或硬盘驱动器(HDD)。存储装置200可包括存储卡,诸如PC卡(PCMCIA、个人计算机存储卡国际协会)、紧凑式闪存卡、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、USB(通用串行总线)存储卡和通用闪存(UFS)。存储装置200可包括嵌入式存储器,诸如eMMC(嵌入式多媒体卡)、UFS和PPN(完美新页面)。
图24是示意性地示出根据本申请的另一实施例的存储装置300的框图。参照图24,存储装置300包含非易失性存储器310、存储器控制器320和RAM 330。
RAM 330可包括诸如(但不限于)静态RAM、动态RAM、同步DRAM(SRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)的多种随机存取存储器中的至少一种。
存储器控制器320使用RAM 330作为缓冲器存储器、高速缓冲存储器或工作存储器。例如,存储器控制器320从主机装置接收第二数据DATA2,将第二数据DATA2存储在RAM330,并且将存储在RAM 330的第二数据DATA2写在非易失性存储器310作为第一数据DATA1。存储器控制器320从非易失性存储器310中读第一数据DATA1,将接收到的第一数据DATA1存储在RAM 330,并且将存储在RAM 330的第一数据DATA1输出至主机装置作为第二数据DATA2。存储器控制器330将从非易失性存储器310读取的数据存储在RAM 330,并且将存储在RAM 330的数据写回到非易失性存储器310。
存储器控制器320包含根据本申请的实施例的纠错解码器100。在其它示例性实施例中,纠错解码器100可包括在非易失性存储器310中。
图25是示意性地示出根据本申请的实施例的计算装置1000的框图。参照图25,计算装置1000包括处理器1100、存储器1200、存储装置1300、调制解调器1400和用户接口1500。
处理器1100控制计算装置1000的整体操作并执行逻辑操作。处理器1100由系统芯片(SoC)形成。处理器1100可为通用处理器、专用处理器或应用处理器。
作为存储器1200,RAM 1200与处理器1100通信。RAM 1200可为处理器1100或计算装置1000的主存储器。处理器1100将代码或数据暂时存储在RAM 1200中。处理器1100利用RAM 1200执行代码,以处理数据。处理器1100利用RAM 1200执行诸如(但不限于)操作系统和应用的多种软件。处理器1100利用RAM 1200控制计算装置1000的整体操作。RAM 1200可包括诸如(但不限于)静态RAM、动态RAM和同步DRAM的易失性存储器或诸如(但不限于)相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)的非易失性存储器。
存储装置1300与处理器1100通信。存储装置1300用于长时间存储数据。也就是说,处理器1110把将被长时间存储的数据存储在存储装置1300中。存储装置1300存储用于驱动计算装置1000的启动镜像。存储装置1300存储诸如操作系统和应用的多种软件的源代码。存储装置1300存储由诸如操作系统和应用的多种软件处理的数据。
在示例性实施例中,处理器1100将存储在存储装置1300中的源代码加载到RAM1200上。执行加载到RAM 1200上的代码来使诸如操作系统和应用的多种软件运行。处理器1100将存储在存储装置1300中的数据加载到RAM 1200上,并且处理加载到RAM 1200上的数据。处理器1100将存储在RAM 1200中的数据中的长期数据存储在存储装置1300中。
存储装置1300包括诸如(但不限于)闪速存储器、PRAM(相变RAM)、MRAM(磁RAM)、RRAM(电阻式RAM)或FRAM(铁电RAM)的非易失性存储器。
调制解调器1400根据处理器1100的控制与外部装置通信。例如,调制解调器1400以有线或无线方式与外部装置通信。调制解调器1400可基于无线通信方式或有线通信方式中的至少一种与外部装置通信,所述无线通信方式诸如LTE(长期演进)、WiMax、GSM(全球移动通信系统)、CDMA(码分多址)、蓝牙、NFC(近场通信)、WiFi和RFID(射频识别),所述有线通信方式诸如USB(通用串行总线)、SATA(串行AT附件)、HSIC(高速芯片互连)、SCSI(小计算机系统接口)、火线、PCI(外围组件互连)、PCIe(快速PCI)、NVMe(快速非易失性存储器)、UFS(通用闪存)、SD(安全数位)、SDIO、UART(通用异步收发传输器)、SPI(串行外设接口)、HS-SPI(高速SPI)、RS232、I2C(内置集成电路)、HS-I2C、I2S、(集成音频接口芯片)、S/PDIF(索尼/飞利浦数字接口)、MMC(多媒体卡)和eMMC(内置MMC)。
用户接口1500在处理器1100的控制下与用户通信。例如,用户接口1500可包括诸如键盘、键区、按钮、触摸面板、触摸屏、触摸垫、触摸球、相机、麦克风、回转仪传感器和振动传感器的用户输入接口。用户接口1500还可包括诸如LCD、OLED(有机发光二极管)显示装置、AMOLED(有源矩阵OLED)显示装置、LED、扬声器和电机的用户输出接口。
存储装置1300可包括根据本申请的实施例的存储装置200和300中的至少一个。处理器1100、RAM 1200、调制解调器1400和用户接口1500可构成与存储装置1300通信的主机装置。
根据本申请的实施例,纠错解码器利用最小值、最小值位置、最小候选值和最小候选值位置执行解码。然而,根据本申请的实施例的纠错解码器与使用所有对数似然值的纠错解码器具有相同的纠错能力。
虽然已经参照示例性实施例描述了本申请,但是本领域技术人员应该理解,在不脱离本申请的精神和范围的情况下,可作出各种改变和修改。因此,应该理解,以上实施例并非限制性的,而是说明性的。

Claims (22)

1.一种基于低密度奇偶校验的纠错解码器的操作方法,该方法包括步骤:
接收数据;
根据接收到的数据设置各可变节点的初始对数似然值;以及
通过利用与选择的可变节点关联的最小值和最小候选值更新该选择的可变节点的对数似然值来解码接收到的数据,其中:
所述最小值指示与选择的可变节点共享校验节点并包括该选择的可变节点的各第一可变节点的对数似然值的绝对值的最小的值,并且
所述最小候选值指示从各第一可变节点中比对应于所述最小值的那一个可变节点更晚选择的各第二可变节点的对数似然值的绝对值中的大于所述最小值且最小的值。
2.根据权利要求1所述的操作方法,其中:
额外地利用最小值位置和最小候选值位置来更新选择的可变节点的对数似然值,
所述最小值位置指示各第一可变节点中的对应于所述最小值并且最后一个被选择的节点的位置,并且
所述最小候选值位置指示各第二可变节点中的对应于所述最小候选值并且最后一个被选择的节点的位置。
3.根据权利要求2所述的操作方法,其中,解码接收到的数据的步骤包括:当选择的可变节点是各第一可变节点中第一个更新的节点时,从各第一可变节点的初始对数似然值中检测所述最小值和所述最小候选值。
4.根据权利要求3所述的操作方法,其中:
解码接收到的数据的步骤还包括:
检测第二最小候选值,所述第二最小候选值是从各第二可变节点中比对应于所述最小候选值的那一个可变节点更晚选择的各第三可变节点的对数似然值的绝对值中的大于所述最小候选值且最小的值,以及
检测第K最小候选值,所述第K最小候选值是从各第K可变节点中比对应于第K-1最小候选值的那一个可变节点更晚选择的各第K+1可变节点的对数似然值中的大于第K-1最小候选值且最小的值,
K是3或更大的正整数,并且
重复检测第K最小候选值的步骤,直至各最小候选值以及所述最小值的数量达到每个可变节点的对数似然值的不同绝对值的数量为止。
5.根据权利要求2所述的操作方法,其中,解码接收到的数据的步骤包括:
利用所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置来计算对应于选择的可变节点的第一消息;
根据所述第一消息更新选择的可变节点的对数似然值;以及
根据选择的可变节点的对数似然值的更新结果更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置。
6.根据权利要求5所述的操作方法,其中,计算第一消息的步骤包括:
当选择的可变节点的位置与所述最小值位置一致时,将所述最小候选值计算作为所述第一消息;以及
当选择的可变节点的位置与所述最小值位置不同时,将所述最小值计算作为所述第一消息。
7.根据权利要求5所述的操作方法,其中,更新选择的可变节点的对数似然值的步骤包括:
计算与选择的可变节点所属的另一校验节点关联的第二消息;以及
用通过计算选择的可变节点的初始对数似然值、所述第一消息和所述第二消息获得的值来更新选择的可变节点的对数似然值。
8.根据权利要求7所述的操作方法,其中,利用与选择的可变节点共享所述另一校验节点并包括所述选择的可变节点的各可变节点的对数似然值,按照与所述第一消息相同的方式来计算所述第二消息。
9.根据权利要求5所述的操作方法,其中,在更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置的步骤中,当选择的可变节点的位置与所述最小值位置一致时,将所述最小值和所述最小值位置设为具有所述最小候选值的内容和所述最小候选值位置的内容。
10.根据权利要求9所述的操作方法,其中:
在更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置的步骤中,当选择的可变节点的位置与所述最小值位置一致时,将所述最小候选值和所述最小候选值位置设为具有第二最小候选值的内容和第二最小候选值位置的内容,将第K最小候选值和第K最小候选值位置设为具有第K+1最小候选值的内容和第K+1最小候选值位置的内容,将最后一个最小候选值和最后一个最小候选值位置重置,
K是2或更大的正整数,
所述第K最小候选值是各第一可变节点中的比对应于第K-1最小候选值的可变节点更晚选择的各可变节点的对数似然值的绝对值中的大于第K-1最小候选值且最小的值,并且
所述第K最小候选值位置指示各第一可变节点中的具有所述第K最小候选值且最近更新的节点的位置。
11.根据权利要求5所述的操作方法,其中:
在更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置的步骤中,当选择的可变节点的位置与所述最小候选值位置一致时,将所述最小候选值和所述最小候选值位置设为具有第二最小候选值的内容和第二最小候选值位置的内容,并且
所述第二最小候选值是各第一可变节点中的比所述最小候选值更晚选择的各可变节点的对数似然值中的大于所述最小候选值且最小的值,并且
所述第二最小候选值位置指示各第一可变节点中的具有第二最小候选值且最近更新的节点的位置。
12.根据权利要求5所述的操作方法,其中,在更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置的步骤中,当选择的可变节点的更新后的对数似然值小于或等于所述最小值时,用更新后的对数似然值来更新所述最小值,用选择的可变节点的位置来更新所述最小值位置,并且将所述最小候选值和所述最小候选值位置重置。
13.根据权利要求5所述的操作方法,其中:
在更新所述最小值、所述最小值位置、所述最小候选值和所述最小候选值位置的步骤中,当选择的可变节点的更新后的对数似然值大于所述最小值且小于或等于所述最小候选值时,用更新后的对数似然值来更新所述最小候选值,用选择的可变节点的位置来更新所述最小候选值位置,并且将第K最小候选值至最后一个最小候选值以及第K最小候选值位置至最后一个最小候选值位置重置,
K是2或更大的整数,
所述第K最小候选值是各第一可变节点中的比对应于第K-1最小候选值的可变节点更晚选择的各可变节点的对数似然值的绝对值中的大于第K-1最小候选值且最小的值,并且
所述第K最小候选值位置指示各第一可变节点中的具有所述第K最小候选值且最近更新的节点的位置。
14.根据权利要求1所述的操作方法,其中:
在按次序选择各可变节点的同时重复解码的步骤,
当与各可变节点的更新后的对数似然值对应的数据是经纠错的数据时,输出经纠错的数据,并且
当与各可变节点的更新后的对数似然值对应的数据不是经纠错的数据时,在按次序选择各可变节点的同时再次重复解码的步骤。
15.一种存储装置,包括:
非易失性存储器;以及
纠错解码器,其适配为校正从所述非易失性存储器读取的数据的差错,其中:
纠错解码器包括:
对数似然值产生器,其适配为根据读取的数据设置各可变节点的初始对数似然值;
第一消息产生器,其适配为根据来自对数似然值产生器的各初始对数似然值和第二消息来更新各可变节点的对数似然值,并且将更新后的各对数似然值输出作为第一消息;
校验节点更新器,其适配为存储所述第一消息的各对数似然值中的对应于每个校验节点的最小值和最小候选值,并且根据第一消息更新对应于每个校验节点的最小值和最小候选值;以及
第二消息产生器,其适配为利用对应于每个校验节点的最小值和最小候选值产生所述第二消息,
所述最小值指示共享校验节点的各第一可变节点的对数似然值的绝对值的最小值,并且
所述最小候选值指示各第一可变节点中的比对应于所述最小值的节点更晚选择的各第二可变节点的对数似然值的绝对值中的大于所述最小值且最小的值。
16.根据权利要求15所述的存储装置,其中:
当首先从所述对数似然值产生器接收到初始对数似然值时,所述第一消息产生器将初始对数似然值输出作为第一消息,并且
所述第一消息产生器计算初始对数似然值和第二消息,以再次输出第一消息。
17.根据权利要求15所述的存储装置,其中:
所述纠错解码器根据第一可变节点和与所述第一可变节点关联的两个或更多个校验节点来更新所述第一可变节点的对数似然值,并随后根据第二可变节点和与所述第二可变节点关联的两个或更多个校验节点来更新所述第二可变节点的对数似然值,并且
在更新所述第二可变节点的对数似然值时,使用所述第一可变节点的更新后的对数似然值。
18.根据权利要求15所述的存储装置,其中:
所述校验节点更新器存储对应于每个校验节点的最小值、最小候选值、最小值位置和最小候选值位置,
所述最小值位置指示各第一可变节点中的对应于所述最小值并且最后一个被选择的节点的位置,并且
所述最小候选值位置指示各第二可变节点中的对应于所述最小候选值并且最后一个被选择的节点的位置。
19.根据权利要求15所述的存储装置,其中:
所述第二消息产生器将选择的可变节点的位置和与该选择的可变节点关联的各校验节点的最小值位置进行比较,
当与选择的可变节点关联的校验节点的最小值位置与该选择的可变节点的位置一致时,所述第二消息产生器将校验节点的最小候选值输出作为校验节点的第二消息,并且
当与选择的可变节点关联的校验节点的最小值位置与该选择的可变节点的位置不同时,所述第二消息产生器将校验节点的最小值输出作为校验节点的第二消息。
20.根据权利要求18所述的存储装置,其中:
所述校验节点更新器将选择的可变节点的更新后的对数似然值和与该选择的可变节点关联的各校验节点的最小候选值和最小值进行比较,
当更新后的对数似然值小于或等于校验节点的最小值时,所述校验节点更新器用更新后的对数似然值来更新校验节点的最小值,并且
当更新后的对数似然值大于校验节点的最小值并且小于或等于校验节点的最小候选值时,所述校验节点更新器用更新后的对数似然值来更新校验节点的最小候选值。
21.一种纠错解码器的低密度奇偶校验方法,该方法包括步骤:
a)根据奇偶校验矩阵的比特值,将k个校验节点中的每一个与n个可变节点中的多个可变节点关联,以使得:
所述可变节点中的每一个表示所述矩阵的不同列,并且所述校验节点中的每一个表示所述矩阵的不同行,
对于所述矩阵的每一行,该行中的每个真比特值指示代表其中存在有该真比特值的列的可变节点与代表该行的校验节点关联,
对于所述矩阵的每一行,该行中的每个假比特值指示代表其中存在有该假比特值的列的可变节点不与代表该行的校验节点关联,
每个可变节点与至少两个校验节点关联,并且
n和k是整数,n>k;
b)存储各可变节点中的一个不同的可变节点中的比特串的n个比特中的每一个的对数似然值;
c)基于通过与可变节点关联的每个校验节点提供的更新值,在从第1可变节点开始并且在第n可变节点结束的循环中按次序更新存储在每个可变节点中的对数似然值;
d)确定这n个更新后的对数似然值是否表示未检测到比特差错的n比特码字;以及
e)在确定存在未检测到比特差错的n比特码字或者已发生预定数量的循环之前,重复操作(c)和(d),其中
通过每个校验节点提供的更新值的绝对值不小于先前存储在与该校验节点关联的任一个可变节点中的最小对数似然值的绝对值。
22.根据权利要求21所述的方法,其中,在一个循环中,用通过对由可变节点所关联的各校验节点提供的各更新值进行求和而获得的值来更新存储在可变节点中的每个对数似然值。
CN201510524223.2A 2014-08-25 2015-08-24 包括纠错解码器的存储装置和纠错解码器的操作方法 Active CN105390162B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2014-0110848 2014-08-25
KR1020140110848A KR102189440B1 (ko) 2014-08-25 2014-08-25 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법

Publications (2)

Publication Number Publication Date
CN105390162A CN105390162A (zh) 2016-03-09
CN105390162B true CN105390162B (zh) 2021-02-19

Family

ID=55348412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510524223.2A Active CN105390162B (zh) 2014-08-25 2015-08-24 包括纠错解码器的存储装置和纠错解码器的操作方法

Country Status (3)

Country Link
US (1) US9778979B2 (zh)
KR (1) KR102189440B1 (zh)
CN (1) CN105390162B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102626162B1 (ko) * 2016-06-14 2024-01-18 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
US10289348B2 (en) * 2016-12-30 2019-05-14 Western Digital Technologies, Inc. Tapered variable node memory
EP3595203B1 (en) * 2017-03-09 2021-11-10 LG Electronics Inc. Layered decoding method for ldpc code and device therefor
KR102231278B1 (ko) * 2017-06-07 2021-03-23 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
US10484012B1 (en) * 2017-08-28 2019-11-19 Xilinx, Inc. Systems and methods for decoding quasi-cyclic (QC) low-density parity-check (LDPC) codes
US10680647B2 (en) * 2017-09-25 2020-06-09 SK Hynix Inc. Min-sum decoding for LDPC codes
US10727869B1 (en) 2018-03-28 2020-07-28 Xilinx, Inc. Efficient method for packing low-density parity-check (LDPC) decode operations
CN108494410A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 译码方法、装置、设备及介质
US11108410B1 (en) 2018-08-24 2021-08-31 Xilinx, Inc. User-programmable LDPC decoder
CN112599176B (zh) * 2020-12-15 2022-08-05 联芸科技(杭州)股份有限公司 存储器的最佳检测电压获取方法、读取控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205506A1 (en) * 2009-02-10 2010-08-12 Sony Corporation Data modulating device and method thereof
CN102394661A (zh) * 2011-11-08 2012-03-28 北京邮电大学 基于层译码处理的ldpc译码器及译码方法
CN102412846A (zh) * 2011-11-29 2012-04-11 西安空间无线电技术研究所 一种适用于低密度奇偶校验码的多值修正最小和解码方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127659B2 (en) 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
US7373585B2 (en) 2005-01-14 2008-05-13 Mitsubishi Electric Research Laboratories, Inc. Combined-replica group-shuffled iterative decoding for error-correcting codes
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
WO2009004572A1 (en) 2007-07-04 2009-01-08 Nxp B.V. Shuffled ldpc decoding
US20090070659A1 (en) 2007-09-11 2009-03-12 Legend Silicon Corp. Ldpc decoder with an improved llr update method using a set of relative values free from a shifting action
US8234320B1 (en) * 2007-10-25 2012-07-31 Marvell International Ltd. Bitwise comparator for selecting two smallest numbers from a set of numbers
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101065480B1 (ko) * 2007-12-19 2011-09-19 한국전자통신연구원 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법
US8291292B1 (en) 2008-01-09 2012-10-16 Marvell International Ltd. Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes
US8266493B1 (en) 2008-01-09 2012-09-11 L-3 Communications, Corp. Low-density parity check decoding using combined check node and variable node
US8601352B1 (en) 2009-07-30 2013-12-03 Apple Inc. Efficient LDPC codes
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
JP5719998B2 (ja) * 2010-02-10 2015-05-20 パナソニックIpマネジメント株式会社 送信装置、受信装置、送信方法及び受信方法
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
US8867673B2 (en) 2010-07-23 2014-10-21 Qualcomm Incorporated Selective quantization of decision metrics in wireless communication
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8767889B2 (en) 2011-08-23 2014-07-01 Texas Instruments Incorporated Normalization of soft bit information for FEC decoding
US8775896B2 (en) 2012-02-09 2014-07-08 Lsi Corporation Non-binary LDPC decoder with low latency scheduling
US9015547B2 (en) 2012-08-17 2015-04-21 Lsi Corporation Multi-level LDPC layered decoder with out-of-order processing
US8862961B2 (en) 2012-09-18 2014-10-14 Lsi Corporation LDPC decoder with dynamic graph modification
US9325347B1 (en) * 2014-02-21 2016-04-26 Microsemi Storage Solutions (U.S.), Inc. Forward error correction decoder and method therefor
KR101599336B1 (ko) * 2014-04-22 2016-03-04 아주대학교 산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205506A1 (en) * 2009-02-10 2010-08-12 Sony Corporation Data modulating device and method thereof
CN102394661A (zh) * 2011-11-08 2012-03-28 北京邮电大学 基于层译码处理的ldpc译码器及译码方法
CN102412846A (zh) * 2011-11-29 2012-04-11 西安空间无线电技术研究所 一种适用于低密度奇偶校验码的多值修正最小和解码方法

Also Published As

Publication number Publication date
KR102189440B1 (ko) 2020-12-14
US20160055057A1 (en) 2016-02-25
US9778979B2 (en) 2017-10-03
KR20160024247A (ko) 2016-03-04
CN105390162A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN105390162B (zh) 包括纠错解码器的存储装置和纠错解码器的操作方法
CN108121669B (zh) 存储器系统及其操作方法
US11152954B2 (en) Decoding method and storage controller
US10901656B2 (en) Memory system with soft-read suspend scheme and method of operating such memory system
CN106257594B (zh) 读取干扰收回策略
TW201837724A (zh) 記憶體系統及其操作方法
KR20170070921A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN108257637B (zh) 存储器系统及其操作方法
US11031952B2 (en) Error correction decoder and memory system having the same
US10522234B2 (en) Bit tagging method, memory control circuit unit and memory storage device
CN106920575B (zh) 数据存储装置及其操作方法
US20200065187A1 (en) Data access method, memory control circuit unit and memory storage device
KR101618313B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
CN110415753B (zh) 错误校正电路及操作该错误校正电路的方法
CN110597648B (zh) 存储器控制器和包括该存储器控制器的存储器系统
KR20220008058A (ko) 컨트롤러 및 컨트롤러의 동작방법
CN110968521B (zh) 存储器系统及其操作方法
KR20180010447A (ko) 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법
US20200186171A1 (en) Data writing method, memory controlling circuit unit and memory storage device
US9996415B2 (en) Data correcting method, memory control circuit unit, and memory storage device
KR20100109223A (ko) 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그리고 그것의 동작 방법
US8448048B2 (en) Flash memory device and related programming method
CN107025935B (zh) 译码方法、内存储存装置及内存控制电路单元
CN112216328B (zh) 具有低复杂度解码的存储器系统及其操作方法
CN110444245B (zh) 具有混合迭代解码能力的存储器系统及其操作方法

Legal Events

Date Code Title Description
C06 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