CN108268338B - 逐渐缩减大小的可变节点存储器 - Google Patents

逐渐缩减大小的可变节点存储器 Download PDF

Info

Publication number
CN108268338B
CN108268338B CN201710831073.9A CN201710831073A CN108268338B CN 108268338 B CN108268338 B CN 108268338B CN 201710831073 A CN201710831073 A CN 201710831073A CN 108268338 B CN108268338 B CN 108268338B
Authority
CN
China
Prior art keywords
variable node
code rate
memories
memory
subset
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
CN201710831073.9A
Other languages
English (en)
Other versions
CN108268338A (zh
Inventor
J.贝尔
D.K.达什
M.内马蒂阿纳拉基
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies 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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108268338A publication Critical patent/CN108268338A/zh
Application granted granted Critical
Publication of CN108268338B publication Critical patent/CN108268338B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)

Abstract

本主题技术提供了一种在支持多种码率的同时选择低密度奇偶校验解码操作中节省可变节点存储器的解码解决方案。一种解码器包括多个变量存储器,可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量;码率决定了使用多少个可变节点存储器,以及在每个存储器中所存储的数据的大小。存储器的容量是预定的,使得随着解码器使用的码率和存储器数量的增加或者减少,最大化每个可变节点存储器的存储器容量的利用。

Description

逐渐缩减大小的可变节点存储器
技术领域
本主题技术主要涉及利用用于错误校正编码(error correction coding,ECC)的低密度奇偶校验(Low Density Parity Check,LDPC)的数据存储解决方案。
背景技术
数据存储应用(例如,固态驱动器、硬盘驱动器等)可以使用LDPC来校正在存储和读取或者发送和接收信息时发生的错误。在规划LDPC编码系统中的一种设计选择是满足产品规格所使用的一定量的冗余(ECC奇偶校验位)。这个冗余由LDPC码的码率表示,其等于额外冗余长度除以所存储的总位数。总体趋势是码率越低(添加越多的冗余),用户数据的保护越好,并且错误校正性能越好。如果选择的码率过高,则在目标程序/擦除寿命之前设备可能会失败。另一方面,如果选择的码率过低,则可能浪费额外的存储空间。针对不同的码率和不同的芯片/技术(2X或者1X)或者应用实现了不同的LDPC编码器/解码器设计。来自不同制造商的设备可以利用不同的码率,并且在这方面,码率可以跨越广泛的范围。
发明内容
公开了一种用于在可变速率解码器中执行奇偶校验操作的系统和方法。根据一些实施例,一种解码器包括多个可变节点存储器,可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量。该解码器也包括用于存储用于基于校验-可变节点计算来更新在多个可变节点存储器中所存储的可变节点数据的消息的消息缓冲器;以及处理器。该处理器可操作来基于与将使用所述校验-可变节点计算来解码的码字相关联的码率,来确定循环行列式大小和循环行列式数量,基于所确定的循环行列式数量并与所确定的循环行列式数量成正比的,确定将在校验-可变节点计算中使用的可变节点存储器的数量,将基于所确定的循环行列式大小的一定量的可变节点数据存储在该数量的可变节点存储器中的每个可变节点存储器中,其中在每个可变节点存储器中所存储的所述可变节点数据的量与所确定的循环行列式数量成反比。
根据一些实现,一种非暂态机器实现的方法,包括:基于与将使用校验-可变节点计算来解码的码字相关联的码率,来确定循环行列式大小和循环行列式数量,基于所确定的循环行列式数量并与所确定的循环行列式数量成正比的,确定将在校验-可变节点计算中使用的可变节点存储器的数量,可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量,并且将基于所确定的循环行列式大小的一定量的可变节点数据存储在该数量的可变节点存储器中的每个可变节点存储器中,其中在每个可变节点存储器中所存储的所述可变节点数据的量与所确定的循环行列式数量成反比。
在一些实现中,一种数据存储系统包括用于基于与将使用校验-可变节点计算来解码的码字相关联的码率,来确定循环行列式大小和循环行列式数量的装置,用于提供多个可变节点存储器的装置,可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量,用于基于所确定的循环行列式数量并与所确定的循环行列式数量成正比的,从多个可变节点存储器中确定将在校验-可变节点计算中使用的可变节点存储器的数量的装置;将基于所确定的循环行列式大小的一定量的可变节点数据存储在该数量的可变节点存储器中的每个可变节点存储器中,其中在每个可变节点存储器中所存储的可变节点数据的量与所确定的循环行列式数量成反比。
数据存储系统的多个可变节点存储器可以被划分成可变节点存储器的多个子集,存储可变节点数据的子集的数量可以由确定的循环行列式的数量确定,其中所确定的循环行列式的数量是从多个预定数量中选择的。在这方面,该子集的第一子集包括具有比第二子集中的可变节点存储器更低的存储器容量的可变节点存储器,其中该子集的第一子集与比该子集的第二子集相关联的可变节点距离第一可变节点更远的可变节点相关联。
应当理解,通过以下详细描述,其中通过说明的方式示出和描述了本技术的各种配置,本主题技术的其他配置对于本领域技术人员将变得显而易见。如将认识到的,本主题技术能够具有其他和不同的配置,并且它的许多细节能够在各种其他方面进行修改,而不脱离本发明的技术范围。因此,附图和详细描述在本质上要被认为是说明性的,而并非限制性的。
附图描述
将参考附图进行详细描述:
图1示出了根据本主题技术的各个方面的实现用于支持多个码率的解码器的示例性数据存储系统。
图2描绘了根据本主题技术的各个方面的可以用于解码LDPC码字的示例性奇偶校验矩阵。
图3描绘了根据本主题技术的各个方面的包括分别用于数据的编码、传输和/或者存储、和解码的编码器、存储通道和解码器的示例性系统。
图4描绘了根据本主题技术的各个方面的用于解码码字的比特的示例性解码器。
图5描绘了根据本主题技术的各个方面的用于支持多个码率的第一示例性处理的流程图。
图6描绘了根据本主题技术的各个方面的用于支持多个码率的第二示例性处理600的流程图。
图7描绘了根据本主题技术的各个方面的支持多个码率的可变节点存储器的示例性存储器容量的图表。
具体实施方式
以下提到的详细描述旨在作为本主题技术的各种配置的描述,并不旨在表示可以实践本主题技术的唯一配置。附图并入本文,并构成详细描述的一部分。为了提供对主题技术的全面了解的目的,详细描述包括具体细节。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本主题技术。在某些例子中,众所周知的结构和组件以框图的形式示出,以避免混淆本主题技术的概念。为了便于理解,类似的部件标有相同的元件编号。
本主题技术提供了一种支持不同码率的低密度奇偶校验码解码器,并且维持处理可变速率码字所要求的内部存储器空间的低总体占用。在这个方面,解码器可以被初始设置为接收被编码为预定的多个码率中的一个码率的码字。在接收到以所选码率编码的码字时,解码器可以基于所选择的码率自动确定循环行列式大小,并且在一个或者多个奇偶校验操作期间确定与所接收的码字对应的多个置信值(例如,对数似然比率)。然后可以将该置信值存储在多个可变节点存储器中,每个可变节点存储器存储与所确定的循环行列式大小成正比的一定量的数据。可变节点存储器根据预定模式(pattern)逐渐缩减大小(Taper),以减少存储置信值所使用的存储器的总量,从而节省成本和功率需求。
图1示出了根据本主题技术的各个方面的实现支持多个码率的解码器的示例数据存储系统100。如图所示,数据存储系统100(例如,固态驱动器)包括控制器130和非易失性存储器阵列150,以及可选地包含磁性介质164的磁性存储160。非易失性存储器阵列150可以包括非易失性存储器,诸如闪存集成电路、硫族化物RAM(Chalcogenide RAM,C-RAM)、相变存储器(PC-RAM或者PRAM)、可编程金属化单元RAM(PMC-RAM或者PMCm)、Ovonic统一存储器(Ovonic Unified Memory,OUM)、电阻RAM(Resistance RAM,RRAM)、NAND存储器(例如,单层单元(single-level cell,SLC)存储器、多层单元(multi-level cell,MLC)存储器或者其任何组合)、NOR存储器、EEPROM、铁电存储器(Ferroelectric Memory,FeRAM)、磁阻RAM(Magnetoresistive RAM,MRAM)、其他分离NVM(非易失性存储器)芯片或者其任何组合。数据存储系统100还可以包括其他类型的存储。
控制器130可以被配置为从主机系统110的存储接口模块112(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口112所传送的存储访问命令可以包括由主机系统110发出的写入数据和读取数据命令。读取和写入命令可以指定访问数据存储系统100所使用的逻辑地址(例如,逻辑块地址或者LBA)。控制器130可以在非易失性存储器阵列150中运行所接收的命令。
除了其他部件,控制器130还包括数据存储存储器132、编码器170和解码器180。控制器130被配置为将数据存储到非易失性存储器阵列150中并从非易失性存储器阵列150中取回数据,确定非易失性存储器阵列所取回的数据的完整性,如有必要,执行所取回的数据的错误校正,以及执行数据存储系统100和主机系统110之间的数据的传输。
数据存储系统100可以存储由主机系统110传送的数据。换言之,数据存储系统100可以充当用于主机系统110的存储器存储。为了促进这个功能,控制器130可以实现逻辑接口。逻辑接口可以向主机系统110呈现数据存储系统的存储器,作为可以存储用户数据的一组逻辑地址(例如,连续地址)。在内部,控制器130可以将逻辑地址映射到非易失性存储器阵列150和/或者其他存储模块中的各种物理位置或者地址。
图2描绘了根据本主题技术的各个方面的可以用于解码LDPC码字的示例性奇偶校验矩阵200。通常,奇偶校验矩阵200、也称为“H矩阵”可以从对应的G矩阵中生成(反之亦然),使得G·HT=0。奇偶校验矩阵中的一行中的每个比特位置可以对应于码字u(未示出)的比特位置,使得码字u和矩阵的一行的乘积产生零结果,例如,对于任何所选择的行i有Hi·uT=0。
可以从生成矩阵G和用户有效载荷s(例如,一系列数据位)的乘积生成码字u,使得G·s=u。在本主题技术的某些方面,G矩阵可以被构造为G=g(identity)+g(x),其中g(identity)是单位矩阵,g(x)包括例如由错误校正算法所确定的比特模式。以这种方式,u的原始比特模式可以包括提供原始用户有效载荷s的第一部分和包括由s和G的乘积生成的错误校正数据的第二部分。
奇偶校验矩阵200可以被构造成使得它在每个行位置包括比非零值(例如,1)更多的0或者空值。在根据本主题技术的一个方面,奇偶校验矩阵101可以由多个循环行列式202构成。循环行列式202可以是单位矩阵形式的子矩阵。在一些方面,例如通过循环移位单位矩阵,奇偶校验矩阵200的每个循环行列式202可以是单个p x p单位矩阵的排列(permutation)。在其他方面,对于每个循环行列式202,系统可以(例如,在存储器中)存储循环行列式的非零起始比特位置(列或者行),使得可以通过循环移位起始比特位置而生成循环行列式以完成循环行列式。在这方面,用于存储生成循环行列式202的信息的存储器或者其它存储装置可以仅需要包括在奇偶校验矩阵200中为每个循环行列式生成一个比特位置所要求的比特数。例如,为了存储4行24个循环行列式,每个循环行列式具有p=192的循环行列式大小,可能要求864字节的存储器大小(9比特×4×24)。
图3描绘了根据本主题技术的各个方面的包括分别用于数据的编码、传输和/或存储、和解码的编码器170、存储通道302和解码器180的示例性系统300。编码器170可以通过对数据有效载荷s进行编码来产生码字u。数据有效载荷s可以包括附加了错误校正数据的数据输入A。编码器170可以使用例如生成矩阵G来编码用户有效载荷s。码字u可以被发送到存储通道302以用于存储,并且然后在稍后的时间被发送到解码器180。解码器180可以使用例如奇偶校验矩阵来执行数据解码操作,以重构数据有效载荷s。作为解码操作的一部分,解码器204可以从所接收的字w={w1,w2,...wn}中尝试重构原始字s={s1,s2,...sn}。例如,所接收的字w可以包括从信道检测器(例如,软输出维特比(Viterbi)检测器)中所提供的w1,w2,...wn的软值(未验证的值)。一旦重构了码字u,解码器180可以包括用于去除冗余错误校正数据以产生原始数据输入A的信道解码器。
图4描绘了根据本主题技术的各个方面的用于解码码字的比特的示例解码器180。解码器180(例如,被实现为LDPC解码器)可以包括处理器402、一个或者多个存储器单元404(例如,存储器体、闪存存储器芯片等)和多个可变节点存储器406。在一些实现中,处理器402和/或存储器单元404可以是控制器130的一部分(例如,存储器单元404可以与数据存储存储器132互换)。
解码器180可以在所接收的码字的解码期间使用奇偶校验矩阵来生成和/或更新存储的置信值。不是所接收的码字的所有比特值都可以被同时解码,而是可以基于从奇偶校验矩阵中的所处理的行中生成的奇偶校验等式来解码该比特值。根据代码图414在可变节点410和校验节点412(也称为“约束节点”)之间传递消息408。存储器单元404可以用作存储一个或者多个消息408的消息缓冲器,该一个或者多个消息408被用于基于一个或者多个校验可变节点计算来更新在可变节点存储器406中所存储的可变节点数据。
可以将每个可变节点410分配给将由解码器180解码的码字u的各个比特。在这方面,将置信值分配给比特以提供关于该比特是否正确的指示。在一些实现中,可以将每个可变节点410分配给码字的多于一个比特或者分配给码字符号,以提供关于比特或者符号是否正确的指示。在一些实现中,每个置信值可以表示与所接收的码字中的一个或者多个比特相对应的对数似然比(log-likelihood ratio,LLR)。
在低密度奇偶校验(LDPC)应用中,二进制LLR可以包括比特是“0”还是“1”的概率之间的比率的对数。正LLR可以指示从存储器单元读取的信号可能是0-比特,而负LLR可以指示从存储器单元读取的信号可能是1-比特。在一些示例中,和具有等于第二预定值(例如,二进制“1”)的所分配的LLR的比特值相比,具有等于5的所分配的LLR的比特值更可能是第一预定值(例如,二进制“0”)。具有等于零的所分配的LLR的比特值更可能是任一预定值。LLR也可以由具有一组分量值的非二进制置信向量来表示。
可变节点410的每个置信值由所存储的数据的量来表示。例如,每个置信值可以由表示正或者负的LLR的一个字节的信息来表示。因此,可变节点410的置信值被存储在对应的可变节点存储器406中,且每个可变节点存储器存储一个或者多个可变节点的一个或者多个置信值。在许多情况下,每个可变节点存储器406将存储用于多个可变节点410的置信值。在每个可变节点存储器406中所存储的置信值的数量可以根据制造标准而变化,但是在许多实现中将会根据在解码算法中使用的循环行列式数量和循环行列式大小而变化。
LDPC解码利用由循环行列式大小为Csize的数量n个循环行列式C构成的LDPC矩阵。在一些实现中,根据Csize x n,码字的大小与Csize相关联。类似地,码字的码率与n相关联,使得码率=(n-4)/n。
在一些实现中,随着码率变化,码长度可能由于格式要求而保持恒定(例如,为4608比特)。例如,数据存储系统100可以被配置为实现五个码率。表A提供了用于基于码率生成奇偶校验矩阵的信息。“行权重”参数指示在对应的奇偶校验矩阵的行中包括多少个循环行列式,进一步地,列权重指示奇偶校验矩阵中可以包括多少行循环行列式。“循环行列式大小”参数指示任何给定循环行列式中的行的数量,并且因此,单位矩阵的非空值的数量包括循环行列式。不同的码可以具有不同的循环行列式大小和不同的行权重。
表A
Figure BDA0001407597970000081
根据各种实现,每个可变节点存储器406可以存储等于Csize的数量的置信值。例如,如果解码器180利用n=74个循环行列式来解码4k字节码字(32k比特),则Csize=432(32k/74=432)。由于码字的每一比特对应于可变节点410,所以每个可变节点存储器406存储用于432个可变节点的置信值。如果每个置信值由1字节的信息表示,则每个可变节点存储器406可以存储432字节,或者3460比特的信息。对于使用n=60个循环行列式的4k字节码字(32k比特),每个可变节点存储器存储533字节(32k/60=533),或者4266比特信息。可以看出,随着n减小,Csize和存储在每个可变节点存储器406中的信息量增加,而所利用的可变节点存储器的数量减小(n=60<n=74)。
本主题技术的解码过程利用逐渐缩减大小的可变节点存储器布局来存储由解码器180产生的置信值(例如,使用最小和解码技术)。在这方面,每个可变节点存储器406具有预定的存储器容量,伴随着存储器的容量以预定的模式减少(参见,例如图7)。每个可变节点存储器406的数量被固定在解码操作中所期望利用的循环行列式C的最大数量n。所利用的循环行列式的数量n基于将被解码的码字的码率和/或码长而变化。可以从多个预定值中选择n的值。例如,如果所期望的最小循环行列式数为24,并且所期望的最大循环行列式数为74,则可变节点存储器406的数量可以固定为74(或者更大)。
每个可变节点存储器406的最大预定容量可以被设置为将在存储器中所存储的最大所期望的量的数据,其可以基于循环行列式大小Csize。在这方面,当选择码率和识别用于码率的循环行列式数量时,处理器402将在n个可变节点存储器406中的每一个中存储等于Csize的数量的可变节点410的置信值。可以根据在例如存储器单元404中所存储的预定映射来由控制器130和/或处理器402确定n个可变节点存储器406当中的可变节点410的分配。
因为随着n增加,Csize变小,因此与可变节点的解码序列的第一侧(例如,接近最高有效比特)相关联的可变节点存储器406将需要比与可变节点的解码序列的相反侧(例如,接近最低有效位)相关联的可变节点存储器更多的存储容量。即使当码率改变时,每个可变节点存储器406的存储容量是预定的且不会改变。
关于图4描绘的可变节点410,左侧的可变节点存储器416可以具有比右侧的变量存储器418更大的容量,根据预定模式逐渐缩减大小。存储器406的各个容量是预定的,使得随着解码器使用的循环行列式数量的增加或者减少,最大化每个可变节点存储器的存储器容量的利用。在图7的图表中可视地表示这种安排。因此,如图4所示,每个可变节点存储器406具有基于解码码字所使用的各个循环行列式的位置的存储器容量。由于在许多实现中循环行列式的顺序遵循可变节点的顺序,因此各个可变节点存储器406的存储器容量也是基于其相对与一系列可变节点410中的第一可变节点420的对应可变节点的位置。
在解码器180的操作期间,处理器402可以是可操作的(例如,通过指令序列的方式),以基于码率来确定循环行列式大小和循环行列式数量。可以预先选择码率来使用一个或者多个校验-可变节点计算来解码该码率的码字。基于所确定的循环行列式数量,码字的码率和/或码长确定在一个或者多个校验可变节点计算中使用哪个可变节点存储器406。所使用的数量与码率的循环行列式数量成正比(参见,例如表A)。如前所述,每个可变节点存储器406可以来存储基于所确定的循环行列式大小(例如,Csize字节)的一定量的可变节点数据。这个量可以与所确定的循环行列式数量成反比,使得随着n降低,Csize增加。
如图4所示,可变节点存储器406也可以被分成可变节点存储器的多个子集。在所描绘的示例中,每个子集包括两个可变节点存储器;然而,子集可以包括任何数量的可变节点存储器406。例如,取决于制造商的规格和性能要求,在每个子集中的可变节点存储器406的数量可以是三个、四个、五个、六个或者其他数。附加地或者替代地,一个或者多个子集可以包括与一个或者多个其他子集不同数量的可变节点存储器。要使用的子集的数量可以由与码率相关联的循环行列式数量来确定。
可变节点存储器的容量可以根据预定模式而减小,但是特定子集中的存储器可以具有相同的容量。在所描绘的示例中,每个可变节点存储器416的预定存储器容量大于每个可变节点存储器422的预定存储器容量,并且每个可变节点存储器422的预定存储器容量大于每个可变节点存储器418的预定存储容量等等。因此,逐渐缩减大小的存储器容量也可能是由于各个可变节点存储器406与一系列可变节点410中的每个节点的相对关联。
如前所述,基于所利用的数量n个循环行列式,将可变节点410分配给可变节点存储器406。因此,可变节点存储器406中的每个子集可以与等于Csize的可变节点的数量(与每个存储器相关联的节点的数量)乘以在每个子集中的可变节点存储器的数量相关联。可变节点存储器416的第一子集可以存储用于在一系列可变节点410中的第一可变节点420和其他可变节点的数据(该数据是基于使用例如矩阵的一个或者多个第一循环行列式的计算的)。随后基于它们的各个的可变节点相对于一系列可变节点410中的第一可变节点420(并且相对于矩阵的第一个循环行列式)的位置,可以在容量上逐渐缩减可变节点存储器406的预定存储器容量。因此,由于可变节点424的位置远离在一系列可变节点410中的第一可变节点420,可变节点存储器422的第二子集可以存储用于可变节点424的更少的数据(该数据是基于使用例如矩阵的一个或者多个第二循环行列式的计算的)。
可变节点存储器406的各个存储器容量是基于先前描述的模式预先确定的。除非另有说明,出于本公开的目的,存储器的存储器容量是它用于存储数据的最大容量(例如,信息的比特或者字节)。在虚拟系统中,每个可变节点存储器416可以独立地作为单独的存储器单元而寻址。然而,每个可变节点存储器406可以是固定的硬件存储器设备。例如,每个可变节点存储器406可以是例如与处理器402和其他解码电路(例如,存储器单元404)一起嵌入在单个集成电路封装中的集成电路。因为每个嵌入式可变节点存储器406的大小根据预定模式而减小,所以对于解码操作,解码器180要求更小的存储器,从而节省与存储器相关联的成本和功耗。当配置为n=74时,解码器180可以比使用相同量的循环行列式的常规解码器少使用30%的存储器和5%的功率。
图5描绘了根据本主题技术的各个方面的用于支持多个码率的第一示例性处理500的流程图。为了说明的目的,本文参照图1-4描述了示例处理500的各种块、以及本文所描述的组件和/或者过程。处理500的一个或者多个块可以例如通过控制器130和/或者解码器180、包括处理器402和由控制器130和/或者解码器180使用的其他组件来实现。在一些实现中,一个或者多个块可以与其他的块分开实现,并且由一个或者多个不同的处理器或者控制器来实现。进一步为了说明的目的,示例处理500的块被描述为以串行或者线性发生。然而,示例处理500的多个块可以并行地发生。此外,示例处理500的块不需要按照所示的顺序执行,且/或不需要执行示例处理500的一个或者多个块。
控制器130和/或者解码器180基于与将使用一个或者多个校验可变节点计算来解码的码字相关联的码率来确定循环行列式大小和循环行列式数量(502)。可以基于例如内部硬件配置(例如,开关或者固件设置)、软件配置或者动态地基于所接收的码字的码率或者码长从多个码率中选择码率。例如从非易失性存储器阵列150、磁性存储160或者存储通道302接收码字。控制器和/或解码器180执行解码操作来解码码字。在接收到现有码率改变为新码率的指示时,可以改变可变节点所确定的循环行列式数量、循环行列式大小以及存储可变节点数据的子集和/或可变节点存储器的数量。
然后基于所确定的循环行列式数量并且与所确定的循环行列式数量成正比的,系统确定将在校验-可变节点计算中使用的可变节点存储器406的数量n(504)。在这方面,如果存在n个循环行列式和n个变量存储器,则当n最小时在Ci处的可变节点存储器406的存储器容量在将被设置为足以存储Ci的置信值的容量(例如,Ci-size x字节)。类似地,可变节点存储器406中的每一个具有基于与可变节点存储器相关联的各个可变节点相对于在一系列可变节点410中的第一可变节点的位置的预定的存储器容量。
在解码操作期间,处理器402在可变节点存储器406的所确定数量为n的每个可变节点存储器406中存储基于所确定的循环行列式大小Csize的一定量的可变节点数据(506)。存储在各个可变节点存储器406中的每一个的数据的量可以与码字中对应比特位置的置信值相对应。在一些实现中,每个可变节点存储器存储等于Csize的多个置信值。每个置信值可以是对数似然比,并且所确定的循环行列式中的每一个可以是单位矩阵形式的、奇偶校验矩阵的子矩阵。根据各种实现,存储在每个可变节点存储器中的可变节点数据的量与所确定的循环行列式数量n成反比。
图6描绘了根据本主题技术的各个方面的用于支持多个码率的第一示例性处理600的流程图。为了说明的目的,本文参照图1-4描述了示例处理600的各种块、以及本文所述的组件和/或者过程。处理600的一个或者多个块可以例如通过控制器130和/或者解码器180、包括处理器402和由控制器130和/或者解码器180使用的其他组件来实现。在一些实现中,一个或者多个块可以与其他的块分开实现,并且由一个或者多个不同的处理器或者控制器来实现。进一步为了说明的目的,示例处理600的块被描述为以串行或者线性发生。然而,示例处理600的多个块可以并行地发生。此外,示例处理600的块不需要按照所示的顺序执行,且/或不需要执行示例处理600的一个或者多个块。
在所描绘示例中,根据本主题技术的系统从多个码率中选择码率(602)。接收码字,该码字以所选的码率被编码(604)。解码器180执行校验-可变节点计算以解码码字(606)。在数据存储系统100的操作期间,接收在校验可变节点计算中使用的现有码率改变为新的码率的指示(608)。响应于接收到指示,改变在校验-变量计算中所使用的循环行列式的所确定的数量、所确定的循环行列式大小、以及可变节点存储器的数量可变节点(610)。
根据本主题技术的各种实现方式,如果新的码率是第一码率(例如,9375),则处理器402基于第一码率(例如,等于在第一码率中使用的循环行列式的数量)将可变节点存储器406的数量设置为第一预定数量,并且将第一量的可变节点数据存储在第一预定数量的可变节点存储器的每一个中。如果新的码率是第二码率(例如,8750),基于第二码率将可变节点存储器406的数量设定为第二预定数量,并且将第二量的可变节点数据存储在第二预定数量的可变节点存储器中的每一个中。如之前所说明的,可变节点数据的第二量大于第一量(例如,由于Csize的增加),但是却使用了更少的循环行列式,并且因此第一预定数量的可变节点存储器的第一子集未被使用。
如果新码率是第三码率(例如,8333),基于第三码率将可变节点存储器406的数量设定为第三预定数量,并且将第三量的可变节点数据存储在第三预定数量的可变节点存储器中的每一个中。第三量大于第二量,并且对于第三码率不使用第二预定数量的可变节点存储器的第一子集和第二子集。
处理500和处理600的上述步骤可以由控制器130、解码器180和/或者处理器402执行。示例性处理600和700的上述许多特征以及相关特征和应用可被实现为软件过程,其被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令。当这些指令由一个或者多个处理单元(例如,一个或者多个处理器、核处理器或者其他处理单元)执行时,它们使得处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括通过无线或者有线连接的载波和电子信号。
图7描绘了根据本主题技术的各个方面支持多个码率的可变节点存储器的示例性存储器容量的图表。图6描绘了存储器位置(例如,每个可变节点存储器406的位置与所选码率的循环行列式有关)和该位置处的可变节点存储器的存储器大小(以字节为单位)之间的关系。在所描绘的示例中,存储器位置0对应于解码码字的第一部分所使用的第一循环行列式。存储器位置0可以例如存储第一可变节点420和与第一循环行列式相关联的其他可变节点的置信数据。内存位置73仅当存在74个循环行列式时使用。在所描绘的示例中,对于与一系列循环行列式中的第26循环行列式相关联的可变节点存储器,可变节点存储器的最大容量开始减小,并且根据可变节点位置持续减小。如前所描述的,存储器大小(容量)与循环行列式大小Csize成正比。
因此,本主题技术提供了一种具有与仅适应单个LDPC码的解码器的实现相当的复杂度的、能够使多个LDPC码适应不同码率(例如,
Figure BDA0001407597970000131
Figure BDA0001407597970000141
)的解决方案。本主题技术还利用减少的存储器占用,从而节省了解码器电路的成本和功耗。本主题技术可以被期望用在使用具有不同原始错误率的不同闪存芯片的产品中。以这种方式,实现控制器、编码器和解码器方面所使用的ASIC可以比单个LDPC码实现更加通用。
本领域普通技术人员将认识到,可以将本文所述的各种示例性的方框、模块、元件、组件、方法和算法实现为电子硬件、计算机软件或者这两者的组合。为了说明硬件与软件的这种互换性,上文中已大体上在其功能性方面描述了各种说明性块、模块、元件、组件、方法及算法。这种功能是否被实现为硬件或者软件取决于特定应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以各种方式实现所描述的功能。各种组件和块可以不同地安排(例如,以不同的顺序安排或者以不同的方式分配),而都不脱离本主题技术的范围。
应当理解,所公开的过程中的步骤的具体顺序或者层次是示例性方法的说明。基于设计偏好,应该理解,可以重排这些过程中各步骤的具体次序或者位阶。一些步骤可以同时执行。所附的方法权利要求以示例顺序来呈现各个步骤的元素,并且不意味着限于所呈现的具体顺序或者层次。
提供前面的描述以使本领域任何技术人员能够实践本文描述的各个方面。前面的描述提供了本发明技术的各种示例,并且本主题技术不限于这些示例。对这些方面的各种修改对于本领域的技术人员而言是显而易见的,并且本文所定义的一般原则可应用于其它方面。权利要求不旨在限于本文所示的方面,而是和语言权利要求的整个范围一致,其中对单数单元的引用不是指“一个并且只有一个”,除非专门说明,而是指“一个或者多个”。除非另有说明,术语“一些”是指一个或者多个。男性的代词(例如他的)包括女性的和中性的词性(例如她的和它的),反之亦然。标题和副标题,如果有的话,仅出于方便而使用,而且并不限制本发明。
诸如“方面”的短语并不暗示这种方面对于主题技术是至关重要的,或者这种方面适用于主题技术的所有配置。关于一方面的揭露内容可应用至所有的配置、或者一个或者多个配置。一个方面可以提供一个或者多个示例。诸如方面的短语可以指一个或者多个方面,反之亦然。诸如“实施例”的短语并不意味着这种实施例对于主题技术是至关重要的,或者这种实施例应用于主题技术的所有配置。涉及实施例的公开可施加于所有实施例,或者一个或者多个实施例。一个实施例可以提供一个或者多个示例。诸如实施例的短语可以指一个或者多个实施例,反之亦然。诸如“配置”的短语并不意味着这种配置对于主题技术是至关重要的,或者这种配置应用于主题技术的所有配置。关于配置的揭露内容可应用至所有的配置、或者一个或者多个配置。一个配置可以提供一个或者多个示例。诸如“配置”的短语可以指一个或者多个配置,反之亦然。
词语“例示性”在本文中用于意味“充当示例或者说明”。本申请中被描述为“示例性”的任何方面或者设计方案并不一定要被解释为比其它方面或者设计方案更优选或者更具优势。
本领域普通技术人员已知或者稍后公知的贯穿本公开描述的各个方面的元件的所有结构和功能等效物通过引用明确地并入本文,并且旨在被权利要求所涵盖。此外,无论这些公开是否在权利要求中被明确地陈述,本文中公开的任何内容都不会被献给公众。此外,不应依据美国专利法第112条第6款来解释任何权利要求的构成要素,除非该构成要素明确采用了“功能性模块”的措辞进行陈述,或者在方法权利的情况中,该构成要素是用“功能性步骤”的措辞来陈述的。此外,在说明书或者权利要求书中使用术语“包括”、“具有”等而言,该术语旨在以类似于术语“包括”的方式包含在内,正如当在权利要求中作为过渡词时解释的“包括”。

Claims (19)

1.一种解码器,包括:
多个可变节点存储器,所述可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量;
消息缓冲器,用于存储用于基于校验-可变节点计算来更新在多个可变节点存储器中所存储的可变节点数据的消息;以及
处理器,可操作来:
基于与将使用所述校验-可变节点计算来解码的码字相关联的码率,来确定循环行列式大小和循环行列式数量;
基于所确定的循环行列式数量并与所确定的循环行列式数量成正比的,确定将在所述校验-可变节点计算中使用的所述可变节点存储器的数量;以及
将基于所确定的循环行列式大小的一定量的可变节点数据存储在所述数量的可变节点存储器中的每个可变节点存储器中;
从多个码率中选择码率;并且
接收码字,所述码字以码率被编码;并且
执行所述校验-可变节点计算以解码码字,
其中在每个可变节点存储器中所存储的可变节点数据的量与所确定的循环行列式数量成反比,
其中所述多个可变节点存储器被分成可变节点存储器的多个子集,以及其中所确定的循环行列式数量是从多个预定数量中选出的,以及
其中在所述多个子集中的第一子集之后的每个子集的可变节点存储器具有比每个先前子集的可变节点存储器更低的存储器容量。
2.如权利要求1所述的解码器,其中所述子集的第一子集包括具有比第二子集中的可变节点存储器更低的存储器容量的可变节点存储器,其中所述子集的第一子集与比所述子集的第二子集相关联的可变节点距离所述第一可变节点更远的可变节点相关联。
3.如权利要求1所述的解码器,其中所述处理器还可操作来:
接收在所述校验可变节点计算中使用的现有码率改变为所述多个码率中的新码率的指示;并且
响应于接收到所述指示,基于所述新码率来改变所述确定的循环行列式数量、所确定的循环行列式大小和所述可变节点存储器的数量。
4.如权利要求2所述的解码器,其中所述多个可变节点存储器包括:
可变节点存储器的第一子集,所述第一子集中的每个可变节点存储器具有第一容量;
可变节点存储器的第二子集,所述第二子集中的每个可变节点存储器具有小于所述第一容量的第二容量;以及
可变节点存储器的第三子集,所述第三子集中的每个可变节点存储器具有小于所述第二容量的第三容量。
5.如权利要求4所述的解码器,其中所述处理器还可操作来:
在所述码率为第一码率的情况下,基于所述第一码率将可变节点存储器的数量设定为第一预定数量,并且将第一量的可变节点数据存储在所述第一预定数量的所述可变节点存储器的每一个中;
在所述码率为第二码率的情况下,基于所述第二码率将所述可变节点存储器的数量设定为第二预定数量,并且将第二量的可变节点数据存储在所述第二预定数量的所述可变节点存储器的每一个中,其中所述第二量大于所述第一量,并且所述第一预定数量的可变节点存储器的第一子集不被用于所述第二码率;并且
在所述码率为第三码率的情况下,基于所述第三码率将所述可变节点存储器的数量设定为第三预定数量,并且将第三量的可变节点数据存储在所述第三预定数量的所述可变节点存储器的每一个中,其中所述第三量大于所述第二量,并且所述第二预定数量的所述可变节点存储器的第一子集和第二子集不被用于所述第三码率。
6.如权利要求2所述的解码器,其中所述可变节点存储器的每一个与处理器和其它解码电路一起被嵌入在集成电路封装中。
7.如权利要求1所述的解码器,其中在各个可变节点存储器中的每一个中所存储的数据的量对应于所述码字中的比特位置的置信值。
8.如权利要求7所述的解码器,其中所述置信值中的每一个是对数似然比,并且所确定的循环行列式中的每一个是奇偶校验矩阵的子矩阵,并且是单位矩阵的形式。
9.一种用于执行奇偶校验操作的非暂态机器实现的方法,包括:
基于与将使用校验-可变节点计算来解码的码字相关联的码率,来确定循环行列式大小和循环行列式数量;
基于所确定的循环行列式数量并且与所确定的循环行列式数量成正比的,从多个可变节点存储器中确定将在所述校验-可变节点计算中使用的所述可变节点存储器的数量,所述可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量;
将基于所确定的循环行列式大小的一定量的可变节点数据存储在所述数量的可变节点存储器中的每个可变节点存储器中;
从多个码率中选择码率;并且
接收码字,所述码字以码率被编码;并且
执行所述校验-可变节点计算以解码码字,
其中在每个可变节点存储器中所存储的可变节点数据的量与所确定的循环行列式数量成反比,
其中所述多个可变节点存储器被分成可变节点存储器的多个子集,以及
其中所确定的循环行列式数量是从多个预定数量中选出的,以及其中在所述多个子集中的第一子集之后的每个子集的可变节点存储器具有比每个先前子集的可变节点存储器更低的存储器容量。
10.如权利要求9所述的非暂态机器实现的方法,还包括:
接收在所述校验可变节点计算中使用的现有码率改变为所述多个码率中的新码率的指示;并且
响应于接收到所述指示,基于所述新码率来改变所述确定的循环行列式数量、所确定的循环行列式大小和所述可变节点存储器的数量。
11.如权利要求10所述的非暂态机器实现的方法,还包括:
在所述码率为第一码率的情况下,基于所述第一码率将可变节点存储器的数量设定为第一预定数量,并且将第一量的可变节点数据存储在所述第一预定数量的所述可变节点存储器的每一个中;
在所述新码率为第二码率的情况下,基于所述第二码率将所述可变节点存储器的数量设定为第二预定数量,并且将第二量的可变节点数据存储在所述第二预定数量的所述可变节点存储器的每一个中,其中所述第二量大于所述第一量,并且所述第一预定数量的可变节点存储器的第一子集不被用于所述第二码率;并且
在所述新码率为第三码率的情况下,基于所述第三码率将所述可变节点存储器的数量设定为第三预定数量,并且将第三量的可变节点数据存储在所述第三预定数量的所述可变节点存储器的每一个中,其中所述第三量大于所述第二量,并且所述第二预定数量的所述可变节点存储器的第一子集和第二子集不被用于所述第三码率。
12.如权利要求11所述的非暂态机器实现的方法,其中所述可变节点存储器中的每一个是固定硬件存储器设备。
13.一种数据存储系统,包括:
用于基于与将使用校验-可变节点计算来解码的码字相关联的码率、来确定循环行列式大小和循环行列式数量的装置;
用于提供多个可变节点存储器的装置,所述可变节点存储器中的每一个具有基于与所述可变节点存储器相关联的各个可变节点相对于一系列可变节点中的第一可变节点的位置的预定的存储器容量;
用于基于所确定的循环行列式数量并与所确定的循环行列式数量成正比的、从多个可变节点存储器中确定将在所述校验-可变节点计算中使用的所述可变节点存储器的数量的装置;
用于将基于所确定的循环行列式大小的一定量的可变节点数据存储在所述数量的可变节点存储器中的每个可变节点存储器中的装置;
用于从多个码率中选择码率的装置;并且
用于接收码字的装置,所述码字以码率被编码;并且
用于执行所述校验-可变节点计算以解码码字的装置,
其中在每个可变节点存储器中所存储的可变节点数据的量与所确定的循环行列式数量成反比,
其中所述多个可变节点存储器被分成可变节点存储器的多个子集,以及
其中所确定的循环行列式数量是从多个预定数量中选出的,以及其中在所述多个子集中的第一子集之后的每个子集的可变节点存储器具有比每个先前子集的可变节点存储器更低的存储器容量。
14.如权利要求13所述的数据存储系统,还包括:
可变节点存储器的第一子集,所述第一子集中的每个可变节点存储器具有第一容量;
可变节点存储器的第二子集,所述第二子集中的每个可变节点存储器具有小于所述第一容量的第二容量;以及
可变节点存储器的第三子集,所述第二子集中的每个可变节点存储器具有小于所述第二容量的第三容量。
15.如权利要求13所述的数据存储系统,还包括:
用于接收在所述校验可变节点计算中使用的现有码率改变为所述多个码率中的新码率的指示的装置;并且
用于响应于接收到所述指示,基于所述新码率来改变所述确定的循环行列式数量、所确定的循环行列式大小和所述可变节点存储器的数量的装置。
16.如权利要求15所述的数据存储系统,还包括:
用于在所述新码率为第一码率的情况下,基于所述第一码率将可变节点存储器的数量设定为第一预定数量,并且将第一量的可变节点数据存储在所述第一预定数量的所述可变节点存储器的每一个中的装置;
用于在所述新码率为第二码率的情况下,基于所述第二码率将所述可变节点存储器的数量设定为第二预定数量,并且将第二量的可变节点数据存储在所述第二预定数量的所述可变节点存储器的每一个中,其中所述第二量大于所述第一量,并且所述第一预定数量的可变节点存储器的第一子集不被用于所述第二码率的装置;并且
用于在所述新码率为第三码率的情况下,基于所述第三码率将所述节点存储器的数量设定为第三预定数量,并且将第三量的可变节点数据存储在所述第三预定数量的所述可变节点存储器的每一个中,其中所述第三量大于所述第二量,并且所述第二预定数量的所述可变节点存储器的第一子集和第二子集不被用于所述第三码率的装置。
17.如权利要求13所述的数据存储系统,其中所述可变节点存储器的每一个与处理器和其它解码电路一起被嵌入在集成电路封装中。
18.如权利要求13所述的数据存储系统,其中在各个可变节点存储器中的每一个中所存储的数据的量对应于所述码字中的比特位置的置信值。
19.如权利要求18所述的数据存储系统,其中所述置信值中的每一个是对数似然比,并且所确定的循环行列式中的每一个是奇偶校验矩阵的子矩阵,并且是单位矩阵的形式。
CN201710831073.9A 2016-12-30 2017-09-14 逐渐缩减大小的可变节点存储器 Active CN108268338B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/396,367 2016-12-30
US15/396,367 US10289348B2 (en) 2016-12-30 2016-12-30 Tapered variable node memory

Publications (2)

Publication Number Publication Date
CN108268338A CN108268338A (zh) 2018-07-10
CN108268338B true CN108268338B (zh) 2021-03-23

Family

ID=62567978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710831073.9A Active CN108268338B (zh) 2016-12-30 2017-09-14 逐渐缩减大小的可变节点存储器

Country Status (3)

Country Link
US (1) US10289348B2 (zh)
CN (1) CN108268338B (zh)
DE (1) DE102017120789A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10404290B2 (en) * 2016-07-29 2019-09-03 Western Digital Technologies, Inc. Non-binary decoding using tensor product transforms
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
KR102289883B1 (ko) * 2017-05-10 2021-08-17 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
DE112019005507T5 (de) * 2019-06-25 2021-09-16 Western Digital Technologies, Inc. Datengetriebene icad-graphengenerierung

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625057A (zh) * 2003-12-04 2005-06-08 北京泰美世纪科技有限公司 一种高度结构化的ldpc编码和解码方法及其编码器和解码器
CN101534166A (zh) * 2008-03-10 2009-09-16 上海明波通信技术有限公司 准循环低密度奇偶校验码解码器及解码方法
CN103973316A (zh) * 2013-02-04 2014-08-06 Sk海尼克斯存储技术公司 具有使用定标常数的可变节点更新器的ldpc解码器
CN104769556A (zh) * 2012-10-11 2015-07-08 美光科技公司 更新可靠性数据
CN104937555A (zh) * 2012-12-07 2015-09-23 美光科技公司 用于分层迭代错误校正的停止准则
CN105390162A (zh) * 2014-08-25 2016-03-09 三星电子株式会社 包括纠错解码器的存储装置和纠错解码器的操作方法
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529518B1 (en) * 1998-06-11 2003-03-04 Sun Microsystems, Inc. Method and apparatus for providing a network interface
US7143333B2 (en) * 2004-08-09 2006-11-28 Motorola, Inc. Method and apparatus for encoding and decoding data
US7493548B2 (en) * 2006-02-06 2009-02-17 Motorola, Inc Method and apparatus for encoding and decoding data
US20080320374A1 (en) * 2007-06-22 2008-12-25 Legend Silicon Corp. Method and apparatus for decoding a ldpc code
CN101689865B (zh) * 2007-07-04 2012-10-24 Nxp股份有限公司 置乱式ldpc解码
US8266493B1 (en) * 2008-01-09 2012-09-11 L-3 Communications, Corp. Low-density parity check decoding using combined check node and variable node

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625057A (zh) * 2003-12-04 2005-06-08 北京泰美世纪科技有限公司 一种高度结构化的ldpc编码和解码方法及其编码器和解码器
CN101534166A (zh) * 2008-03-10 2009-09-16 上海明波通信技术有限公司 准循环低密度奇偶校验码解码器及解码方法
CN104769556A (zh) * 2012-10-11 2015-07-08 美光科技公司 更新可靠性数据
CN104937555A (zh) * 2012-12-07 2015-09-23 美光科技公司 用于分层迭代错误校正的停止准则
CN103973316A (zh) * 2013-02-04 2014-08-06 Sk海尼克斯存储技术公司 具有使用定标常数的可变节点更新器的ldpc解码器
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
CN105390162A (zh) * 2014-08-25 2016-03-09 三星电子株式会社 包括纠错解码器的存储装置和纠错解码器的操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reduced-Complexity Decoding of LDPC Codes;Jinghu Chen等;《IEEE Transactions on Communications》;20050831;第53卷;全文 *

Also Published As

Publication number Publication date
US10289348B2 (en) 2019-05-14
DE102017120789A1 (de) 2018-07-05
CN108268338A (zh) 2018-07-10
US20180191375A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
US11405058B2 (en) Stopping criteria for layered iterative error correction
KR101927575B1 (ko) 데이터 스토리지 시스템들에 대한 적응형 에러 정정 코드들
KR101753498B1 (ko) 신뢰도 데이터 업데이트
CN108268338B (zh) 逐渐缩减大小的可变节点存储器
US9973213B2 (en) Decoding method, and memory storage apparatus and memory control circuit unit using the same
US10326479B2 (en) Apparatuses and methods for layer-by-layer error correction
US10707902B2 (en) Permutation network designing method, and permutation circuit of QC-LDPC decoder
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
US8484547B2 (en) System and method for reducing memory in a multi-channel parallel encoder system
KR101913900B1 (ko) 조기 디코딩 종료 검출을 갖는 디코더
CN111869111B (zh) 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字
CN105304143B (zh) 解码方法、存储器控制电路单元及存储器存储装置
CN108270449B (zh) 支持多种编码率和编码长度的编码器
CN110971240A (zh) 解码器设计方法与存储控制器
US9619317B1 (en) Decoder having early decoding termination detection
CN105938728B (zh) 用于近似平衡码的编码器和解码器设计
US11394403B1 (en) Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices
CN109714062A (zh) 执行迭代解码的解码器和使用该解码器的存储设备
US20240185898A1 (en) Syndrome decoding system
US20230195358A1 (en) Separation of Parity Columns in Bit-Flip Decoding of Low-Density Parity-Check Codes with Pipelining and Column Parallelism
CN110391815B (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