CN104052497A - 使用部分可靠性信息解码的系统和方法 - Google Patents
使用部分可靠性信息解码的系统和方法 Download PDFInfo
- Publication number
- CN104052497A CN104052497A CN201410093303.2A CN201410093303A CN104052497A CN 104052497 A CN104052497 A CN 104052497A CN 201410093303 A CN201410093303 A CN 201410093303A CN 104052497 A CN104052497 A CN 104052497A
- Authority
- CN
- China
- Prior art keywords
- reliability data
- treated
- reliability
- data
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
提供用于解码数据的系统和方法。解码器接收用于多个变量节点的多个变量节点值以及针对该多个变量节点的至少一个子集的经处理的可靠性数据。电路基于该变量节点值和该经处理的可靠性数据来更新该变量节点值。该经处理的可靠性数据代表针对该多个变量节点的至少该子集的可靠性数据的版本。
Description
相关技术的交叉引用
本发明在35U.S.C.§119(e)条款下,要求于2013年3月13日提交的美国临时申请第61/780325号的优先权,该申请通过引用被全文合并入本文。
技术领域
本发明大体涉及数据解码,并且更具体地涉及具有对于使用低密度奇偶校验(LDPC)编码器编码的数据的部分可靠性输入的解码器。
背景技术
被用于对LDPC码解码的LDPC码和解码器可以被用于众多应用和设备。例如,数据存储、卫星通信、无线通信、有线通信和电力线通信是其中每一个都可能使用LDPC码和LDPC解码器的应用。设备诸如数码照相机闪速存储器存储、卫星、移动电话和其它移动设备中的每一个设备也可能都使用LDPC码和LDPC解码器。
LDPC码可以被用于纠正在有噪数据存储或通信信道中发送的信息的错误。信息可能为了发送而事先被(LDPC编码器)编码,然后当被接收时被随后(LDPC解码器)解码。LDPC码是表现最佳的、用于纠正在通信和数据存储信道上发送的信息的错误的纠错码之一,一起的还有Turbo码。
发明内容
根据本公开的一个实施方式,提供了用于解码数据的系统和方法。接收用于多个变量节点的多个变量节点值以及用于多个变量节点的至少一个子集的经处理的可靠性数据。基于变量节点值和经处理的可靠性数据来更新变量节点值。经处理的可靠性数据表示用于多个变量节点的至少一个子集的可靠性数据的一个版本。
可靠性数据可以被存储在存储器中,并且可以被压缩以获得经处理的可靠性数据。无损压缩方案可以被用于将可靠性数据压缩以获得经处理的可靠性数据。备选地,有损耗压缩方案可以被用于将可靠性数据压缩以获得经处理的可靠性数据。在一些实施例中,选择可靠性数据的一个子集以获得经处理的可靠性数据。在解码过程中可以按被消除数据的集合来处理可靠性数据的剩余部分。
根据本公开的一个实施方式,解码器接收用于多个变量节点的多个变量节点值,并且处理用于该多个变量节点的至少一个子集的可靠性数据。电路系统基于变量节点值以及经处理的可靠性数据来更新变量节点值。经处理的可靠性数据表示用于多个变量节点的至少一个子集的可靠性数据的一个版本。
可以将可靠性数据存储在存储器中,并且可以将该可靠性数据压缩以获得经处理的可靠性数据。可以使用无损压缩方案来将可靠性数据压缩以获得经处理的可靠性数据。备选地,可以使用有损耗压缩方案来将可靠性数据压缩以获得经处理的可靠性数据。在一些实施例中,选择可靠性数据的一个子集以获得经处理的可靠性数据。解码器可以将可靠性数据的剩余部分按被消除数据的集合来处理。
在一些实施方式中,解码器是低密度部分校验解码器,并且在NAND闪存设备的高速缓存中存储可靠性数据。
根据本公开的一个实施方式,一种方法向解码器提供经处理的可靠性数据。该方法包括接收多个变量节点的可靠性数据,处理该可靠性数据以获得用于该多个变量节点的可靠性数据的一个经处理的版本,并且向解码器发送可靠性数据的该经处理的版本。
附图说明
一旦结合附图考虑以下详细描述,本公开的上述和其它特征,包括其本质以及其各种优点将更加明显,在附图中:
图1是根据本公开的一个实施例的、使用LDPC解码的一个说明性的通信系统的框图;
图2A和图2B是根据本公开的一个实施例的、表示所接收的码字的符号的变量节点和用于对所接收的码字解码的校验节点之间的通信的图示说明;
图3是根据本公开的一个实施例的、用于基于经处理的可靠性信息来LDPC解码的一个说明性的系统的框图;
图4是根据本公开的一个实施例的、用于处理向解码器发送的可靠性信息的一个说明性的系统的框图;以及
图5是根据本公开的一个实施例的、用于使用经处理的可靠性信息来解码数据的一个说明性的过程的流程图。
具体实施方式
本公开大体涉及在解码器执行解码。为了提供对于本公开的全面理解,此处将描述特定的说明性的实施例,包括解码器,其基于经处理的可靠性信息来对码字(codeword)解码。然而本领域技术人员应理解,可以依适合于所提出的应用的方式修改和改良本文所述的系统和方法,并且本文所述的系统和方法可以被应用于其它合适的应用中,并且这类其它添加和改良将不背离本发明的范围。
图1示出根据本公开的一些实施例的、一个用于部分地基于可靠性输入的LDPC解码的说明性的通信系统100。通信系统100被用于从发送用户或应用102向接收用户或应用130发送信息。发送用户或应用102表示产生信息的对象或实体。例如,发送用户或应用102可以对应于计算机系统中的软件程序或者对应于无线电系统中的无线通信发送器组件。发送用户或应用102产生数据流形式的信息,并且数据流可以被表示为已经被例如源编码器(未在图1中示出)预处理的符号值的序列。由发送用户或应用102所产生的信息可以对应于语音信息、视频信息、金融信息或可以以数字或模拟形式表示的任何其它类型的信息,而由发送用户或应用102所产生的数据流可以是数字数据流。
发送用户或应用102可以分段或分割数据流为具有固定的k个符号的长度的块。特别地,消息104(也称作m)表示这些块中的一个。特别地,消息104的长度是k个符号,其中每个符号可以是二进制数据或者非二进制数据诸如三进制数据、四进制数据、任何其它适合类型的数据、或其任何适合的组合。编码器106被用于对消息104编码,以产生码字110。在本公开的一个实施例中,编码器106是LDPC编码器。然而,基于本文所提供的公开和教导,应明了编码器106可以是任何合适的编码器。码字110(也称作c)具有n个符号的长度,其中n>k。编码器106使用生成矩阵G108(为了符号上的便利,也称作G)以产生码字110。例如,编码器106可以执行一个或多个矩阵运算以将消息104转换为码字110。在一个实施例中,编码器106由消息104使用生成矩阵G108通过下列矩阵乘法来产生码字110:
C=Gm.
码字110可以由调制器112调制或者以其它方式变换到合适于在信道114上发送和/或存储的波形。例如,波形可以对应于模拟二进制相移键控(BPSK)信号、模拟相移键控(PSK)信号、模拟频移键控(FSK)信号、模拟正交幅度调制(QAM)信号、或者任何其它合适的模拟或数字信号。
信道114指所发送的波形在解调器116处被恢复之前,经过的或者被存储在其上的物理介质。例如,信道114可以是表示在计算机系统环境中的存储介质的存储信道,或者是表示在无线通信环境中的无线传播环境的通信信道。信道114的各种特性可能损坏在其上通信或存储的数据。例如,信道114可以是非理想无记忆信道、或者有记忆信道;信道114可以是消除信道,并且可以是对称的或非对称的。由解调器116解调并处理信道114的输出以产生所接收的码字118。解调器116可以使用频率滤波器、与周期函数的乘法和积分、和/或其它任何合适的解调技术,以解调并/或处理信道114的输出。
所接收的码字118包含关于码字110的信息,并且可能是由编码器106原始输出的码字110的被损坏的或者以其它方式改变的版本。例如,所接收的码字118可能包含码字110的初步估计或有噪版本、由编码器106产生的码字的可能值的概率分布向量、或者它们以及其它值的组合。
检测器120被用于处理所接收的码字118以产生检测器样本122,其可以是原始数据消息104的估计(本文中也称作一个或多个硬判决)。检测器120对在所接收的码字118中的每个符号进行采样,并且基于符号的值而为每个符号分配仓(bin)。在一些实施例中,仓是基于概率分布分配的。由检测器120采样的每个符号可以被分配到两个或更多个可能的仓或状态中之一。被确定用于检测器样本122的状态被作为样本码字存储在存储器中。该存储器称作“硬判决存储器”,其可以在与接收的码字118不同的存储器位置上。
在一些实施例中,多次读取信道114,并且由解调器116、检测器120或两者联合地或分别地处理多次读值,以便除了硬判决样本码字以外还生成可靠性数据。例如,为了确定被存储在闪速存储器存储设备中的给定符号的输入状态,可以多次读取其中存储所接收的符号值的存储器单元。可以由检测器120处理对应于相同符号的信道114的多次读值,以生成可靠性数据和硬判决数据形式的检测器样本122。例如,在二进制码中,可以由解调器116、检测器120或两者处理信道114的多次读值,以对于样本码字中的每个比特生成一个比特的硬判决数据和一个比特的可靠性数据。在另一个示例中,可以对于在样本码字中每个比特生成两个比特的可靠性数据。这类可靠性数据可以被存储在从硬判决存储器分离出的“可靠性数据存储器”位置上,或者可以与硬判决一起被存储在相同的存储器位置上。检测器样本122形式的硬判决和可靠性数据两者被发送到解码器124作为随后的解码操作的输入。
解码器124接收并迭代处理检测器样本122。检测器120和解码器124可以是两个分离的处理器,或者单个处理器可以被用作检测器120和解码器124两者。大体上,解码器124包括用于迭代纠正并/或检测在检测器样本122中出现的(例如由于经过144发送而造成的)错误的控制电路和/或解码电路。在一些实施例中,解码器124使用奇偶校验矩阵H126和解码技术以产生经解码的信息128。大体上,可以使用数学向量模型来描述LDPC解码,其中c是有长度n的二进制串,并且H是奇偶校验矩阵H126,其为低密度、稀疏m×n矩阵,其中如上所述n是码字中的符号的数目,m是满足m≥n-k的校验节点的数目,并且k是消息中的符号的数目。仅当二进制串c是码字c110时,满足该模型。奇偶校验矩阵H126不必须是唯一的,并且可以被选择为在计算上方便的,或两者,以减少由解码器124的解码技术生成的错误的数目。
解码器124在解码过程可以开始之前必须等待的时间的长度依赖于所执行的读值的数目以及期望将被接收的可靠性数据的量。根据本公开,解码器124从检测器120接收部分可靠性数据,并且处理该部分可靠性数据以初始化解码过程。可能因为可靠性数据被破坏或者只有部分对于解码器124可用,而产生部分可靠性数据。该情况可能在检测器120和解码器124之间的信道具有损坏可靠性数据的差的信道条件时出现。例如,在检测器102和解码器124之间的信道可能是在发送到解码器124的过程中损失至少一些可靠性数据的有损信道。备选地,可以有意地向解码器124提供部分可靠性数据(而不是所有的可靠性数据),以缩短解码器在初始化或继续解码过程之前所必须等待的时间量。
本公开描述了通过解码器124实施以处理并利用部分可靠性数据的系统和方法。在一些实施例中,解码器124使用迭代解码技术,其设计通过更新符号、可靠性数据或两者、基于一个或多个“更新规则”来处理检测器样本122。在一个示例中更新规则可以基于:是否满足符号的校验,是否之前已经基于可靠性数据的值更新、翻转或切换(toggle)了符号、或者它们的适当组合。大体上,如在本文中所使用的,“翻转”或“切换”信号意味着将信号的值更新为与当前值不同的值。与通常仅对硬判决输入起作用的、传统的LDPC码的比特翻转解码器不同,具有可靠性输入或部分可靠性输入的比特翻转解码器可以改进解码器的性能,减小达到收敛所需的总解码迭代数目,或两者。在于2014年2月4日提交的(代理人案号第MP5216号)Varnica等人的美国专利申请第14/172420号中详细描述了用于具有可靠性输入的翻转解码器的系统和方法,其通过引用被全文合并入本文。可以基于所接收的部分可靠性数据来调整或优化翻转解码器的规则。例如,一个规则集合可以被用于接收完整可靠性数据集合的翻转解码器,而不同的规则集合可以被用于接收部分可靠性数据集合或经压缩的可靠性数据集合的翻转解码器。
处理之后,在经解码的消息128中的每个符号应被分配为在可能状态的集合中的一个状态。当模型的输入为c时,经解码的消息128满足该模型。
在被解码器124处理之后,经解码的消息128被分发到接收用户或应用130。接收用户或应用130可能对应于与发送用户或应用102相同的设备或实体,或者接收用户或应用130可能对应于不同的设备或实体。此外,接收用户或应用130可以是与发送用户或应用102同位置的或在物理上分离的。如果解码器124纠正由信道114和在通信系统100中的其它通信效应所引起的所有错误,那么经解码的消息128是消息104的逻辑副本。相反地,经解码的消息128可以与消息104不同,并且解码器124可以对应地声明错误。
图2A和图2B是根据本公开的一个实施例的、在代表示例码字的变量节点220-234和用于使用变量可靠性信息来对该码字解码的校验节点200-210之间的通信的图示说明。
当初始化解码过程时,使用如关于图1所述的检测器120为变量节点220-234分配输入状态,其中考虑了硬判决和可靠性信息两者。如在本文中所述,“变量值”指与变量节点关联的硬判决,而“变量可靠性数据”指与变量节点或变量值关联的可靠性数据。输入状态可以包括变量值和变量可靠性数据中的一个或两者。
在一个说明性示例中,每个变量节点与由[b1b0]表示的两比特输入关联,其中比特b0的值指示硬判决,而比特b1的值指示硬判决的可靠性。在二进制码中,b0可以取值0或1,表示经解码比特的两个可能的硬判决状态。对应地,b1也可以取值0、1或X,其中0表示不可靠硬判决,1表示可靠硬判决,而X表示不可用的可靠性数据。不可用的可靠性数据(由X表示)可以是由未向解码器124发送的可靠性比特集合得到的。该情况可能由于压缩方案或差的信道条件的影响而出现。解码器124可以将不可用的可靠性数据按被消除的数据来处理。
换句话讲,输入10到变量节点可以被认为是0的可靠判决,输入00到变量节点可以被认为是0的不可靠判决,输入01到变量节点可以被认为是1的不可靠判决,输入11到变量节点可以被认为是1的可靠判决;输入X0到变量节点可以被认为是0的没有任何可靠性信息的判决,输入X1到变量节点可以被认为是1的没有任何可靠性信息的判决。可以将硬判决和可靠性数据输入作为输入状态一起存储到一个存储器位置上,或者分离地存储到硬判决存储器和可靠性数据存储器中。如在本文中所述,仅一个比特被用于表示硬判决,并且仅一个比特被用于表示该硬判决的可靠性。然而大体上,任何数目的比特都可以被用于表示硬判决、可靠性、或两者。具体地,对于非二进制码,硬判决可以取多于两个值,而可靠性消息可以承载一个或多个比特或符号。此外,当可靠性信息可能不可用时,多于一个比特可以被用于存储可靠性(即,当硬判决不可靠时存储0,当硬判决可靠时存储1,或者当关于硬判决的可靠性信息不可用时存储X)。
在使用如关于图1所述的检测器120为变量节点220-234分配输入状态之后,由解码器124对多个变量节点组执行变量节点校验。解码器124使用处理规则以确定变量节点组的条件。在位于校验节点(诸如校验节点200-210)处的校正子(syndrome)存储器中存储关于所确定的条件的指示。奇偶校验矩阵H126(图1)标识哪个校验节点存储关于所确定的条件用于哪个变量节点的指示。例如,对于图2A和图2B图示的节点以及对于二进制码示例,奇偶校验矩阵H126可以如下所示:
每一行对应于校验节点中的一个,并且每一列对应于变量节点中的一个。使用二进制码,奇偶校验矩阵的元素是0或1,如上所示。如在本文中所使用的,变量节点的“相邻的”校验节点是具有到该变量节点的连接的校验节点。类似地,校验节点的“相邻的”变量节点是具有到该变量节点的连接的变量节点。如上所示的奇偶校验矩阵H126提供在关于在校验节点和变量节点之间的连接的指示。具体地如在图2A中所示,变量节点222、224、230和234是校验节点206的相邻节点,并且如在图2B中所示,校验节点200、206和210是变量节点224的相邻节点。此外,在二进制码中,每个校验节点具有两个状态中的一个,如果满足校验值状态为0,并且如果不满足校验值则状态为1。对于非二进制码,奇偶校验矩阵的元素是非二进制的,并且每个校验节点具有多于两个状态中的一个。奇偶校验矩阵中的每一行形成奇偶校验方程的系数,其在非二进制域中计算。在一些实施例中,每个校验节点还与校验可靠性数据的一个或多个比特关联。例如,如果与校验节点关联的多数变量节点具有不可靠的变量值,那么所计算的校验节点值可以被标记为不可靠。可以由对应的校验可靠性数据的单个比特来表示校验节点值的可靠性。在一些实施例中,在校验可靠性存储器中存储并且通过解码过程来更新多于一个比特的校验可靠性数据。可以与校正子存储器一起或分离地实施校验可靠性存储器。虽然校验可靠性数据可以改进解码器的性能,但是使用校验可靠性数据的系统消耗比不使用校验可靠性数据的系统更多的功率。因此,当确定是否使用解码可靠性数据时,可以考虑在解码性能和功率消耗之间做出权衡。
解码器124参考奇偶校验矩阵H126以识别与具体的校验节点关联的变量节点或者应由该具体的校验节点来校验的变量点。例如对于校验节点206,解码器124使用奇偶校验矩阵H126的第四行以确定该校验节点206存储了变量节点222、224、230和234(即,第二、第三、第六和第八变量节点)的校验的结果。然后,解码器124找回在该变量节点中存储的值。在上述奇偶校验矩阵H的第四行中的值是奇偶校验方程的系数,每个系数与对应的变量节点值相乘。为了说明,在图2A中的箭头指示,所找回的值从变量节点222、224、230和234流向校验节点206,并且可以认为校验节点206用于“校验”变量节点222、224、230和234。由根据处理规则来处理代表校验节点206的值的解码器124找回变量节点值。
根据从变量节点222、224、230和234接收的值,解码器124确定是否满足用于校验节点206的给定条件。关于是否满足校验节点206(即校验节点的“校正子值”或“校验节点值”)的指示被存储在校正子存储器中,其存储校验节点的校正子值或指示。此外,可以基于关联的变量节点的值和可靠性来更新校验节点的校正子值的可靠性。
在对于校验节点200-210的指示或校正子值已经被存储在校正子存储器中之后,可以基于校验节点的值以及变量节点的可靠性来更新变量节点220-234的值。奇偶校验矩阵H126再次被解码器124利用以确定为了具体的变量节点应访问哪个校验节点。如在图2B中示出的,为了更新变量节点224,上述给定的奇偶校验矩阵H126指示应参考校验节点200、206和210(即,第一、第四和第六校验节点)。可以基于关于所参考的校验节点的指示来更新变量节点224的状态。
图3是根据本公开一个实施方式的基于经处理的可靠性信息进行LDPC解码的说明性系统300的框图。系统300包括硬判决340、可靠性信息342、可靠性信息处理块346和解码器348。解码器348可以与参照图1示出并且描述的解码器124相同。
如图3所示,解码器348从可靠性信息处理块346接收硬判决340以及经处理的可靠性信息347,可靠性信息处理块346接收并处理可靠性信息342。可靠性信息处理块346有效地缩短从设备高速缓存向解码器348传送可靠性信息所需的时间量。这允许解码器348在相对将全部可靠性信息342发送给解码器348的情况而言更早的时间发起或者继续解码过程。有利地,向解码器348提供经处理的可靠性信息347节省了时间,并且提高了解码过程的效率,而无需显著牺牲大量性能。取决于在解码过程的效率和性能之间的所需权衡,可以调整对可靠性信息342所执行的压缩或者处理的量以获得经处理的可靠性信息347。
特别地,在NAND闪存设备中,在执行读取命令之后,来自读取命令的可靠性信息可以被存储在设备的高速缓存中。例如,可靠性信息342可以包括多数的1,以指示多数的硬判决是可靠的。例如,可靠性信息342可以进一步仅包括少数目的0(诸如3-5%,1-10%,或者0的任何其它适当范围或者百分数),以指示仅一些硬判决是不可靠的。当这种情况下,可靠性信息处理块346可以处理可靠性信息342以减少在高速缓存和解码器348之间的传送时间量。可以希望,对可靠性信息342而不是英判决340进行压缩,因为可靠性信息342可能倾向于具有指示不可靠的硬判决的少数目的0。相反,硬判决340相对于可靠,性信息342而言更可能具有几乎相等数目的0和1,并且因此比可靠性信息342更不可压缩。因此,可以希望向解码器348提供所有未处理的硬判决340,同时向解码器348提供经处理的可靠性数据347。
当可靠性信息处理块346处理可靠性信息342以产生经处理的可靠性信息347时,经处理的可靠性信息347代表可靠性信息342的损坏的版本或者仅部分可靠性信息。通过向解码器348提供少于可靠性信息342总量的信息,可靠性信息处理块346有效地缩短了在解码器348必须在解码之前等待的时间延迟,并且有利地提高了解码过程的效率。在一些实施方式中,可靠性信息处理块346接收并且联合第处理硬判决340和可靠性信息342。特别地,对硬判决340和可靠性信息342这二者的联合处理可以在硬判决是可压缩的的情况下执行。在一个示例中,硬判决340可能包括比一显著多的零(或者比零显著多的一)。在这种情况中,可以合并硬判决340和可靠性信息342以形成符号,并且可以对符号进行压缩。
当仅向解码器348提供可靠性信息347的部分集合时,解码器348可以在解码过程期间使用比特或符号更新规则的集合,这些比特或符号更新规则的集合与当解码器348接收到可靠性信息342的完整集合时所使用的规则不同。例如,当解码器348仅接收可靠性信息347的部分集合时,解码器348可以选择在迭代解码过程期间翻转一比特,而该比特如果在接收到完全可靠性信息342的情况下将不会被翻转。特别地,当可靠性信息被损坏(或者在其它情况下不可用)时,可靠性信息可以与相对于未损坏可靠性信息而言较低的置信等级相关联。在一个示例中,当完整可靠性信息可用时可以使用第一更新规则,并且在可用性信息被损坏或者在其它情况下不可用时可以使用第二更新规则。在该情况下,第一和第二更新规则可以是不同的,因为相比于第一更新规则,第二更新规则可以使得其更容易更新可靠变量节点,而更难于更新不可靠的变量节点。换而言之,第二更新规则可以具有用于更新可靠变量节点的较低阈值以及用于更新不可靠变量节点的较高阈值。这可能是所期望的,因为被损坏的(或不可用的)可靠数据具有相比于未损坏(或可用)可靠性数据而言更低的置信等级。特别地,当可靠性信息对于一个或多个变量节点不可用时,可靠性数据可以具有不同的置信等级(即,0用于确信地不可靠,1用于确信地可靠,以及X用于不确信),并且针对每个置信等级,解码器348所使用的更新规则可以不同。
图4是根据本公开的实施方式用于处理可靠性信息的说明性系统400的框图。图4所示的可靠性信息处理块可以与结合图3所示并且描述的可靠性信息处理块346相同。特别地,可靠性信息处理块包括压缩引擎450和选择器452。在一些实施方式中,当压缩引擎450被激活以用于对接收的可靠性信息进行压缩时,选择器452是去激活的。在一些实施方式中,当选择器452被激活以用于选择接收的可靠性信息的一个子集时,压缩引擎450是去激活的。
在一些实施方式中,压缩引擎450接收可靠性信息342的完整集合并且向选择器452提供可靠性信息342的压缩版本。例如,当可靠性信息342是完整的并且没有被失真、省略或者消除,则压缩引擎450可以压缩可靠性信息342并且向选择器452提供较小的数据量,选择器452然后可以选择压缩的可靠性信息的一些或者全部以用于向解码器348传送。
压缩引擎450可以使用任何压缩方案,包括无损耗方案或者有损耗方案,来压缩接收的可靠性信息342以形成压缩的可靠性信息。在一些实施方式中,压缩方案是无损耗的,使得在解压缩器中可以从压缩的可靠性信息中恢复可靠性信息342的全部集合。在无损耗压缩方案的示例中,当可靠性信息是0和1(或者0、1和X,其中“X”指示可靠性信息不可用)的串时,压缩的可靠性信息可以包括符号的缩减集合。例如,压缩的可靠性信息可以指示符号值(0,1,或X)以及符号值在未压缩的可靠性信息342的串中出现的次数。当可靠性信息多数为指示可靠硬判决的1时,这类方案可以通过减少传送时间且无需牺牲解码器348处的解码性能而节省成本。
在一些实施方式中,可以期望的是,使用有损耗的压缩方案,使得从压缩的可靠性信息中可能不能恢复出可靠性信息342的全部集合。相对于无损耗压缩方案,对于有损耗压缩方案而言,在解压缩器的输出处可靠性信息至少某些部分失真。但是,有损耗压缩方案一般来说比无损耗压缩支持更有效的压缩率。在效率和性能的权衡中,有损耗压缩方案允许牺牲掉一些性能而有利于效率并且降低传送时间。在一个示例中,有损耗压缩方案可以丢失或者移除可靠性信息342中的一些比特或符号,以使得被移除的比特或者符号在解码器348处是不可恢复的。
在一些实施方式中,压缩引擎450不执行对于接收的可靠性信息342的任何处理,并且由可靠性信息处理块346执行的唯一处理是由选择器452执行的。在该情况中,选择器452可以选择性地排除可靠性信息342中的特定比特或符号,以使得这些比特和符号不被传送到解码器348。在该情况下,解码器348可以被配置为识别从解码器348所接收到的、经处理的可靠性信息347中排除的比特和符号,并且将所排除的符号作为消除。
图5示出了本公开的实施方式用于基于经处理的可靠性数据的解码的过程500的高级流程图。类似于解码器124或348中任一的解码器可以执行过程500。
在502,接收用于多个变量节点的多个变量节点值以及针对多个变量节点的至少一个子集的经处理的可靠性数据。在一个示例中,在存储器中存储所述可靠性数据并且压缩所述可靠性数据以获得所述经处理的可靠性数据。如上所述,压缩的可靠性数据可以被提供到解码器以降低在存储器和解码器之间的传送时间,从而使得解码器可以相对可靠性数据未被压缩的情况而言更早地发起解码过程。由诸如可靠性信息处理块346或压缩引擎450的处理器所使用的压缩方案可以是无损耗的或者是有损耗的。
在一个示例中,选择可靠性数据的子集并且形成经处理的可靠性数据。在该情况中,压缩引擎450可以被去激活并且可靠性信息处理块346可以仅包括一个选择器,诸如选择可靠性数据的子集的选择器452。该该情况中,解码器124或348可以将没有被选择器452选择的可靠性数据的剩余部分作为在解码过程期间消除的数据。在一些实施方式中,变量节点值(即硬判决340)与可靠性数据一起联合地压缩,以获得经处理的可靠性数据。在一些实施方式中,经处理的可靠性数据代表未处理的可靠性数据的全部集合的被损坏版本。
在504,基于变量节点值和经处理的可靠性数据来更新变量节点值,其中经处理的可靠性数据代表针对多个变量节点的至少该子集的可靠性数据的部分版本。更新可以基于迭代LDPC解码方案,该方案根据一个或多个更新规则迭代地更新变量节点值。使用这些更新规则的解码器这里可以是指比特翻转解码器。特别地,当比特翻转解码器接收到未处理的(即未压缩的)可靠性信息的全部集合时,解码器使用比特翻转更新规则的一个集合。当比特翻转解码器接收到经处理的可靠性信息时,比特翻转跟新规则可以是不同的,其中经处理的可靠性信息可以包括压缩的可靠性数据、可靠性数据的所选子集,或者其二者。尽管针对LDPC解码具体地描述了这里所描述的解码,但是本领域的技术人员将理解本公开的系统和方法可以被应用到任何类型的解码器。
尽管这里已经使出并且描述了本公开的各种实施方式,对于本领域的技术人员显而易见的是这些实施方式都是以示例方式提供的。本领域的技术人员可以进行各种变形、修改和替换,而不会脱离公开。应该理解,在实现本公开时,可以利用这里所描述的本公开实施方式的各种可替代方案。旨在以下文的权利要求定义本公开的范围,并且还覆盖在这些权利要求范围内的方法和结构以及其等同。
Claims (20)
1.一种用于解码数据的方法,包括:
接收用于多个变量节点的多个变量节点值以及针对所述多个变量节点的至少一个子集的经处理的可靠性数据;以及
基于所述变量节点值和所述经处理的可靠性数据来更新所述变量节点值,其中所述经处理的可靠性数据代表针对所述多个变量节点的至少所述子集的可靠性数据的版本。
2.根据权利要求1所述的方法,还包括:
在存储器中存储所述可靠性数据并且压缩所述可靠性数据以获得所述经处理的可靠性数据。
3.根据权利要求1所述的方法,还包括:
使用无损耗压缩方案来压缩所述可靠性数据,以获得所述经处理的可靠性数据。
4.根据权利要求1所述的方法,还包括:
使用损耗压缩方案来压缩所述可靠性数据,以获得所述经处理的可靠性数据。
5.根据权利要求1所述的方法,还包括:
选择所述可靠性数据的子集,以获得所述经处理的可靠性数据。
6.根据权利要求5所述的方法,其中所述可靠性数据的剩余部分被作为在更新期间消除的集合。
7.根据权利要求1所述的方法,还包括:
联合地压缩所述变量节点值和所述可靠性数据,以获得所述经处理的可靠性数据。
8.根据权利要求1所述的方法,其中所述基于所述变量节点值和所述经处理的可靠性数据更新所述变量节点值包括应用至少一个更新规则,所述至少一个更新规则是基于所述经处理的可靠性数据的类型而确定的。
9.根据权利要求1所述的方法,其中所述解码是低密度奇偶校验解码,以及所述可靠性数据被存储在NAND闪存设备的高速缓存中。
10.根据权利要求1所述的方法,其中所述可靠性数据的所述版本是被损坏的可靠性数据。
11.一种解码器,包括解码电路,所述解码电路被配置为:
接收用于多个变量节点的多个变量节点值以及针对所述多个变量节点的至少一个子集的经处理的可靠性数据;以及
基于所述变量节点值和所述经处理的可靠性数据来更新所述变量节点值,其中所述经处理的可靠性数据代表针对所述多个变量节点的至少所述子集的可靠性数据的版本。
12.根据权利要求11所述的解码器,其中所述可靠性数据存储在存储器中并且所述可靠性数据被压缩以获得所述经处理的可靠性数据。
13.根据权利要求11所述的解码器,其中使用无损耗压缩方案来压缩所述可靠性数据,以获得所述经处理的可靠性数据。
14.根据权利要求11所述的解码器,其中使用损耗压缩方案来压缩所述可靠性数据,以获得所述经处理的可靠性数据。
15.根据权利要求11所述的解码器,其中选择所述可靠性数据的子集,以获得所述经处理的可靠性数据。
16.根据权利要求15所述的解码器,其中所述解码器将所述可靠性数据的剩余部分作为消除的集合。
17.根据权利要求11所述的解码器,其中联合地压缩所述变量节点值和所述可靠性数据,以获得所述经处理的可靠性数据。
18.根据权利要求11所述的解码器,其中所述电路通过应用至少一个更新规则来基于所述变量节点值和所述经处理的可靠性数据更新所述变量节点值,所述至少一个更新规则是基于所述经处理的可靠性数据的类型而确定的。
19.根据权利要求11所述的解码器,其中所述解码器是低密度奇偶校验解码器,以及所述可靠性数据被存储在NAND闪存设备的高速缓存中。
20.一种用于向解码器提供经处理的可靠性数据的方法,所述方法包括:
接收用于多个变量节点的可靠性数据;
处理所述可靠性数据以获得针对所述多个变量节点的所述可靠性数据的经处理的版本;以及
向解码器发送所述可靠性数据的经处理的所述版本。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361780325P | 2013-03-13 | 2013-03-13 | |
US61/780,325 | 2013-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052497A true CN104052497A (zh) | 2014-09-17 |
CN104052497B CN104052497B (zh) | 2018-09-18 |
Family
ID=51504906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410093303.2A Expired - Fee Related CN104052497B (zh) | 2013-03-13 | 2014-03-13 | 使用部分可靠性信息解码的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9379738B2 (zh) |
CN (1) | CN104052497B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9467170B2 (en) * | 2013-05-17 | 2016-10-11 | Marvell World Trade Ltd. | NAND flash memory systems with efficient soft information interface |
KR102110767B1 (ko) * | 2013-12-24 | 2020-06-09 | 삼성전자 주식회사 | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770641A (zh) * | 2005-11-21 | 2006-05-10 | 东南大学 | 一种基于分段偏移修正的最小和译码方法 |
CN101044688A (zh) * | 2004-08-02 | 2007-09-26 | 高通弗拉里奥恩技术公司 | 节省存储器的ldpc译码方法和装置 |
US20090222710A1 (en) * | 2008-02-29 | 2009-09-03 | Ara Patapoutian | Selectively applied hybrid min-sum approximation for constraint node updates of ldpc decoders |
CN101534129A (zh) * | 2009-04-21 | 2009-09-16 | 北京邮电大学 | 基于不对等消息更新的置信传播ldpc译码方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4138700B2 (ja) * | 2004-05-31 | 2008-08-27 | 株式会社東芝 | 復号装置および復号回路 |
US7260762B2 (en) * | 2004-07-26 | 2007-08-21 | Motorola, Inc. | Decoder performance for block product codes |
US7996746B2 (en) * | 2004-10-12 | 2011-08-09 | Nortel Networks Limited | Structured low-density parity-check (LDPC) code |
US7752523B1 (en) * | 2006-02-13 | 2010-07-06 | Marvell International Ltd. | Reduced-complexity decoding of parity check codes |
US7895500B2 (en) * | 2006-07-28 | 2011-02-22 | Via Telecom Co., Ltd. | Systems and methods for reduced complexity LDPC decoding |
US8291285B1 (en) * | 2008-09-18 | 2012-10-16 | Marvell International Ltd. | Circulant processing scheduler for layered LDPC decoder |
US8438461B2 (en) * | 2009-10-12 | 2013-05-07 | Marvell World Trade Ltd. | Power consumption in LDPC decoder for low-power applications |
CN103620690A (zh) * | 2011-04-29 | 2014-03-05 | Lsi公司 | 加密传输固态盘控制器 |
US20130275827A1 (en) * | 2012-04-12 | 2013-10-17 | Lsi Corporation | Multi-Section Non-Binary LDPC Decoder |
US8826109B2 (en) * | 2012-09-04 | 2014-09-02 | Lsi Corporation | LDPC decoder irregular decoding of regular codes |
US9612903B2 (en) * | 2012-10-11 | 2017-04-04 | Micron Technology, Inc. | Updating reliability data with a variable node and check nodes |
-
2014
- 2014-03-11 US US14/204,590 patent/US9379738B2/en active Active
- 2014-03-13 CN CN201410093303.2A patent/CN104052497B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044688A (zh) * | 2004-08-02 | 2007-09-26 | 高通弗拉里奥恩技术公司 | 节省存储器的ldpc译码方法和装置 |
CN1770641A (zh) * | 2005-11-21 | 2006-05-10 | 东南大学 | 一种基于分段偏移修正的最小和译码方法 |
US20090222710A1 (en) * | 2008-02-29 | 2009-09-03 | Ara Patapoutian | Selectively applied hybrid min-sum approximation for constraint node updates of ldpc decoders |
CN101534129A (zh) * | 2009-04-21 | 2009-09-16 | 北京邮电大学 | 基于不对等消息更新的置信传播ldpc译码方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140281788A1 (en) | 2014-09-18 |
CN104052497B (zh) | 2018-09-18 |
US9379738B2 (en) | 2016-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102349209B1 (ko) | 멀티-스테이지 소프트 입력 디코딩을 위한 방법 및 시스템 | |
US9385753B2 (en) | Systems and methods for bit flipping decoding with reliability inputs | |
US9369152B2 (en) | Systems and methods for decoding with late reliability information | |
WO2018142391A1 (en) | Device, system and method of implementing product error correction codes for fast encoding and decoding | |
US9203432B2 (en) | Symbol flipping decoders of non-binary low-density parity check (LDPC) codes | |
US8667361B1 (en) | Systems and methods for performing bit flipping in an LDPC decoder | |
KR101621573B1 (ko) | 복잡도를 줄인 ldpc 디코더 | |
US8046658B2 (en) | Method and device for decoding blocks encoded with an LDPC code | |
US8984378B1 (en) | Systems and methods for performing multi-state bit flipping in an LDPC decoder | |
US9300328B1 (en) | Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios | |
US10790857B1 (en) | Systems and methods for using decoders of different complexity in a hybrid decoder architecture | |
US9614548B1 (en) | Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes | |
US8359511B2 (en) | Method and system for constructing and decoding rateless codes with partial information | |
US20080005643A1 (en) | Apparatus and method for receiving signal in a communication system | |
CN104052497A (zh) | 使用部分可靠性信息解码的系统和方法 | |
US11108413B2 (en) | Polar coding and decoding for correcting deletion and/or insertion errors | |
CN112470405A (zh) | 非二进制码的消息传递解码的可变节点处理方法和设备 | |
US8862959B1 (en) | Sign equalization in iterative decoding of sparse graph codes | |
Boutros et al. | Enhanced channel decoding via EM source-channel estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180918 Termination date: 20190313 |