首页> 中国专利> 改善用于低功率应用的LDPC解码器中的功耗

改善用于低功率应用的LDPC解码器中的功耗

摘要

本发明公开了一种改善用于低功率应用的LDPC解码器中的功耗的方法和设备。具体地,公开了一种使用设备以内的解码器对矢量进行解码的方法。本公开内容主要地涉及低功率数据解码,并且更具体地涉及用于利用低功率密度奇偶校验(LDPC)编码器编码的数据的低功率迭代解码器。公开如下系统和方法,其中可以在LDPC解码器中对LDPC代码进行解码的过程期间,在首次迭代或者首次迭代的部分中进行低功率校正子校验。也公开如下系统和方法,其中可以在LDPC解码器中实施对发送或者接收的消息的精确度的控制和/或对这些消息的缩放的改变。这里描述的低功率技术可以减少功耗,而不明显降低利用LDPC代码的应用或者利用低功率LDPC解码器的设备的性能。

著录项

  • 公开/公告号CN102045071A

    专利类型发明专利

  • 公开/公告日2011-05-04

    原文格式PDF

  • 申请/专利权人 马维尔国际贸易有限公司;

    申请/专利号CN201010506571.4

  • 发明设计人 N·瓦尼卡;G·伯德;

    申请日2010-10-12

  • 分类号H03M13/11(20060101);H04L1/00(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅;黄倩

  • 地址 巴巴多斯圣米加勒

  • 入库时间 2023-12-18 02:09:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    专利权的转移 IPC(主分类):H03M13/11 登记生效日:20200424 变更前: 变更后: 申请日:20101012

    专利申请权、专利权的转移

  • 2015-11-25

    授权

    授权

  • 2012-11-28

    实质审查的生效 IPC(主分类):H03M13/11 申请日:20101012

    实质审查的生效

  • 2011-05-04

    公开

    公开

说明书

相关申请的交叉引用

本申请按照35U.S.C.§119(e),要求2009年10月12日提交的第61/250,821号美国临时申请的优先权,在此通过参考将其整体引入。

技术领域

这里提供的背景描述是为了一般性地呈现公开内容的上下文。在某种程度上,就此背景技术部分所描述成果以及说明书中的在提交时不可限定为现有技术的各方面,既不被明确承认也不被隐含承认为是相对于本公开内容的现有技术。

本公开内容主要地涉及低功率数据解码,并且更具体地涉及用于利用低密度奇偶校验(LDPC)编码器编码的数据的低功率迭代解码器。

背景技术

LDPC代码可以用于有效地纠正在有噪声的通信信道中发送的信息中的错误。信息可以在发送之前(由LDPC编码器)加以编码、然后在被接收时(由LDPC解码器)随后加以解码。

LDPC代码可以由许多不同类型的奇偶校验矩阵之一定义。LDPC代码的奇偶校验矩阵的结构可以例如是随机、循环或者准循环的。LDPC解码器(例如泛洪(flooding)解码器)可以使用迭代消息传递算法(泛洪解码)如最小和(min-sum)解码算法对LDPC代码进行解码。这样的算法可以使用迭代过程对接收的码字进行解码,在该迭代过程中各迭代包括两个更新步骤,这些更新步骤涉及到校验节点和变量节点相互传递消息。另一LDPC解码器(例如分层解码器)可以使用分层解码方式(分层解码)来对LDPC代码进行解码。分层解码方式和泛洪解码方式两者均涉及到更新和存储消息。如这里所用,术语消息是指数值,该数值通常代表基于由LDPC解码器从通信信道接收的信息(例如矢量)来计算的对数似然比(LLR)。LDPC代码和用对LDPC代码进行解码的解码器可以被用于许多应用和设备中。例如数据存储、卫星通信、无线通信、有线通信和电线通信是可以各自要求使用LDPC代码和LDPC解码器的应用。如数字相机闪存储存器、卫星、移动电话和其他移动设备之类的设备可以各自要求使用LDPC代码和LDPC解码器。

由于LDPC代码广泛使用于许多应用和设备中,所以未在低功耗的情况下操作的传统LDPC解码器可能不利地快速消耗大量功率。例如高功耗率的传统LDPC解码器可能使移动设备的电池以显著高的速率耗尽。

发明内容

根据本公开内容的原理,提供用于不引起性能明显降低的低功率LDPC解码器的方法和装置。可以使用这样的方法和装置以便延长移动设备的电池寿命。公开了如下LDPC解码器,这些解码器实施低功率技术,以减少在对LDPC代码进行解码的过程中消耗的功率。这里描述的低功率技术可以减少功耗,而不明显降低利用低功率LDPC解码器的设备或者使用LDPC代码的应用的性能。

在一些实施例中,可以(例如使用监视电路)监视信道(例如解码器从该信道接收信息)和/或使用解码器的设备的状态。可以(例如使用监视电路)基于信道和/或设备的状态来确定度量值。例如,运用LDPC解码过程的LDPC解码器在以往接收矢量中纠正的错误的数目和/或解码所必需的以往迭代数目可以用来确定通信信道的状态。可以(例如使用监视电路来)对度量值与至少一个阈值进行比较。该比较可以用来确定是启用还是禁用低功率校正子(syndrome)校验(和/或对矢量的正常处理)。基于表明状态的比较,可以禁用对接收矢量的正常解码器处理,可以基于从接收矢量导出的初始消息来预先计算校正子,并且可以基于预先计算的校正子来进行对接收矢量的有效性的确定。

在一些实施例中,例如在通信信道或者设备的状态好的情况期间,预先计算的校正子可以允许LDPC解码器快速确定接收矢量是否为有效码字。因此这一校验可以降低功耗。例如当在通信信道中存在很少噪声并且解码器在以往接收矢量中已经纠正很少错误时,低功率校正子校验可以减少由于解码器的多次不必要迭代的不必要功耗。

在一些实施例中,可以(例如使用监视电路)监视信道(例如,解码器从该信道接收信息),和/或使用解码器的设备的状态。可以(例如使用监视电路)基于信道和/或设备的状态来确定度量值。可以(例如使用监视电路来)比较度量值与至少一个阈值。该比较可以用来确定用于由解码器处理的消息的精确度和/或缩放因子的适当值。可以根据这一确定值来设置位精确度和/或缩放因子。

在一些实施例中,当在通信信道中存在很少噪声并且解码器在以往接收矢量中已经纠正很少错误时(即当通信信道的状态好时),可以降低解码器的位精确度。消息的精确度的降低和/或用于消息的缩放因子的增加由于减少在处理期间在解码器中必需的计算复杂度,而可以有利地减少解码器(例如LDPC解码器)中的功耗。

本公开内容的以下实施例描述提供示例和描述而并不是为了穷举本公开内容或者使本公开内容限于公开的精确形式。根据上述教导,修改和变化是可能的,或者可以从这里公开的内容的实践中加以获悉。例如尽管下文结合图1-9描述了LDPC解码器,但是这一元件可以替换为任何类型的解码器(例如Turbo代码解码器、分层解码器或者泛洪解码器)。解码器可以利用硬信息(例如使用硬解码器,比如位翻转解码器)或者软信息(例如使用迭代软解码器)以对传入信息进行解码。尽管本公开内容的某些部件已经描述为用硬件实施而其他部件用软件实施,但是其他配置可以是可能的。

附图说明

在考虑与相似标号通篇指代相似部分的以下附图结合的以下详细描述时,将清楚本公开内容的上述和其他方面及优点:

图1示出了根据一些实施例的纠错通信/存储系统的示例框图;

图2示出了根据一些实施例的码字的性质的示例例子;

图3示出了根据一些实施例的按照母矩阵表示的准循环奇偶校验矩阵的示例例子;

图4示出了根据一些实施例的在泛洪解码器中实施的迭代消息传递算法和奇偶校验矩阵的图形示例;

图5示出了根据一些实施例的具有低功率电路的分层LDPC解码器的简化框图;

图6示出了根据一些实施例的可以用于改变消息的精确度以减少功耗的消息存储器块;

图7示出了根据一些实施例的可以用于监视解码器统计的监视逻辑电路;

图8示出了根据一些实施例的与LDPC解码器一起使用的用于低功率校正子校验的过程的流程图;以及

图9示出了根据一些实施例的用于改变消息的精确度或者缩放以减少功耗的过程的流程图。

具体实施方式

提供了用于减少LDPC解码器所消耗的功率而又基本上维持解码器的性能的系统和方法。在其中干扰信号或者其他现象可以更改信息的应用和设备中,纠错代码如LDPC代码可以提供一种保护信息免受这样的干扰的测量方式。如这里所用,“信息”和“数据”是指包含一些意义或者效用的能量或者信号的任何单位或者聚集。编码可以一般是指以有助于随后检测和/或纠正数据中的错误这样的方式生成数据的过程,而解码可以一般是指检测和/或纠正错误的对应过程。编码系统的进行编码和解码的元件类似地分别称为编码器和解码器。

图1示出了根据一些实施例的将纠错代码用于实现可靠通信或者存储的示例通信或者数据存储系统100。通过编码器104对用户信息102进行编码。通常称为消息信息或者消息矢量的用户信息102可以分组成k个符号的单位,其中各符号可以是二进制、三进制、十进制或者任何其他适当类型的数据。然而为求简化,将按照二进制位描述本公开内容的实施例。在对用户信息102进行编码的过程中,编码器104可以使用不同代码来实现不同结果。

如图1中所示,编码器104可以使用低密度奇偶校验(LDPC)代码对用户信息102进行编码。对用户信息102进行编码的结果是码字106,也表示为c。码字106可以具有预定义长度,该长度可以称为n,其中n≥k。

在一种实施中,向调制器108传递码字106。调制器108预备用于在信道110上发送的码字106。调制器108可以使用相移键控、频移键控、正交调幅或者任何适当调制,以将码字106调制成一个或者多个携带信息的信号。信道110代表携带信息的信号行进经过的介质。例如信道110可以代表通信系统中的有线或者无线介质、或者携带信息的信号可以存储于其中的电(例如RAM、RAM)、磁(例如硬盘)或者光学(例如CD、DVD或者全息)存储介质。

由于干扰信号和其他类型的噪声及现象,信道110可能破坏调制器108所发送的波形。因此,解调器112接收的波形(接收波形111)可能不同于原始发送的信号波形。可以利用解调器112来解调接收波形111。解调器112可以利用滤波器、周期函数的乘法或者与在调制器108中使用的调制类型对应的任何适当解调技术来解调接收波形111。解调结果是接收矢量114,并且这一结果可能由于信道破坏而包含错误。

然后由LDPC解码器116处理接收矢量114。LDPC解码器116可以位于任何设备以内。例如,LDPC解码器116可以位于闪存储存器、移动设备、电话或者卫星以内。LDPC解码器116可以具有用于有助于明显减少LDPC解码器中的功耗的低功率电路和监视电路。LDPC解码器116用来纠正或者检测接收矢量114中的错误。LDPC解码器116使用迭代消息传递算法(例如泛洪解码或者分层解码)以纠正或者检测接收矢量114中的错误。LDPC解码器116计算或者接收初始对数释然比(LLR)消息,该消息代表用于接收矢量114的位的位可靠性度量。例如,LDPC解码器116针对每个i使用等式来计算LLR消息,其中bi可以代表接收矢量114中的第i位。用于大于零的各位的LLR可以表明位值更可能是零,而少于零的LLR可以表明一位值更可能是一。LDPC解码器116可以在消息传递算法中使用计算的LLR消息。当利用这样的迭代算法时,LDPC解码器116可以进行该算法的若干迭代,直至LDPC解码器116的输出收敛至有效码字。在一些实例中,LDPC解码器116的输出可能无法收敛至有效码字。各种原因可能引起解码器失败。由于LDPC解码器116的输出在一些情形中可能不会收敛至有效码字,所以LDPC解码器116可以配有最大迭代限制,该限制是任何适当的预定数。当LDPC解码器116达到最大迭代限制时(即正整数maxIterNum),LDPC解码器116可以自动终止操作,并且进行对接收矢量的一些后处理或者继续下一接收矢量114。然而,如果LDPC解码器116的输出成功收敛至有效码字,则LDPC解码器116然后可以输出解码信息118。

图2示出了根据一些实施例的图1的码字106的性质的示例例子。图1的编码解码器和图1的LDPC解码器116处理的LDPC代码常规地由数学矢量模型代表。具体而言,LDPC代码由它的奇偶校验矩阵H描述。等式210图示了奇偶校验矩阵212。奇偶校验矩阵212有的大小为[r×n1,这与长度为n的码字和长度为r的校正子对应。码字可以例如是图1的长度为n的码字106或者长度为n的接收矢量114。校正子长度r满足不等式r≥n-k,其中k是编码的信息的长度(例如,图1的用户信息102的长度)。码字114的各位对应于奇偶校验矩阵212的列。当奇偶校验矩阵212乘以码字214时,结果为校正子216。校正子216是大小为[r×1]的零矢量,其中所有元素等于零。当校正子216等于零矢量时,确定码字214为有效码字。当校正子216不等于零矢量时,确定码字214为无效码字。奇偶校验矩阵212具有列权值(“cw”),该权值被定义为奇偶校验矩阵212的各列中的非零项数目集合的最大值。奇偶校验矩阵212并不唯一,并且可以例如被选择成便于计算和/或减少消息传递算法在LDPC解码器116中生成的错误数目。如结合图1讨论的那样,可以在LDPC解码器116中对码字214进行解码以产生解码信息118。在实践中,经常使用准循环LLDPC代码,因为这样的代码很适合于硬件实施。

图3示出了根据一些实施例的按照母矩阵表示的准循环奇偶校验矩阵的示例例子。母矩阵表示是用于描述包含大量元素的矩阵的紧凑方式。母矩阵表示等效于正规矩阵表示、但是可以有利于说明可能大型矩阵的结构,而无需明确地列举矩阵中的各元素。

准循环代码表示按照如下特性来定义:用于该特定代码的奇偶校验矩阵为准循环。按照母矩阵表示的准循环奇偶校验矩阵由称为循环行列式(circulant)的循环子矩阵组成。循环行列式340是一个这样的矩阵。循环行列式340是方阵——即循环行列式340具有的行与列数目相同。这一数目惯称为循环行列式大小Sc。此外,循环行列式具有如下性质:对于任何给定正整数Ci,j<Sc,可以将循环行列式矩阵的任何行/列循环地移位Ci,i个位置以获得另一行/列。例如数目零代表大小为Sc的单位矩阵330。数目三代表矩阵340,该矩阵340与各行向右循环移位三个位置的单位矩阵330相等。作为符号表示法,负一表示全零矩阵320。为求简洁,短语“非零循环行列式”将用来指代非全零矩阵的任何循环行列式矩阵。回顾奇偶校验矩阵310的大小为[r×n]。因此,母矩阵的大小为[rm=r/Sc×nm=n/Sc],其中选择Sc、r和n使得rm和nm是整数。

图4示出了根据一些实施例的奇偶校验矩阵和在泛洪解码器中实施的迭代消息传递算法的图形示例400。LDPC代码可以在图形上由Tanner图形表示,该图形为二部图形,该二部图形示出了在LDPC代码的码字位与奇偶校验等式之间的关系。使用LDPC代码的Tanner图形的优点可以包括取用高效的基于图形的消息传递算法进行解码。在Tanner图形403和404中示出了两类节点。变量节点401代表码字106中的各位置并且由圆圈表示。因此可以有n个变量节点。变量节点也可以称为符号或者位节点。校验节点405可以代表LDPC代码的各校正子(奇偶校验等式)。例如可以有n-k个校验节点。校验节点由方块表示。

Tanner图形403和404对应于奇偶校验矩阵402。Tanner图形403和404的校验节点和变量节点分别对应于奇偶校验矩阵402的行和列。将校验节点与变量节点连接的无方向边对应于奇偶校验矩阵402的非零项的位置。换而言之,奇偶校验矩阵402是Tanner图形403和404的相邻矩阵。例如,在(1,1)位置的1和在(1,2)位置的0可以分别表明,在校验节点S1与变量节点V1之间存在一个边,而在校验点S1与变量节点V2之间不存在边。因此,如果在奇偶校验矩阵402的给定列中有dv个“1”,则存在从与该列对应的变量节点散发的dv个边。等效而言,与该列对应的变量节点具有dv度。类似地,如果在奇偶校验矩阵402的某一给定行中有dc个“1”,则可以存在从与该行对应的校验节点散发的dc个边。等效而言,与该行对应的校验节点具有dc度。

Tanner图形的校验节点(例如校验节点405)可以是满足(satisfied)或者不满足(unsatisfied)节点,其中满足节点具有二进制值0,而不满足节点具有二进制值1。各校验节点的值可以等于它连接到的变量节点的值的模二和。如果连接到校验节点的变量节点的值之和为偶数则校验节点为满足节点,否则为不满足节点。例如如果变量节点V2、V5和V8的值之和为偶数,则Tanner图形403和404的校验节点S2可以是满足节点。另外,当校验节点为不满足节点并且它连接到的变量节点的值之和不为零时,连接到它的变量节点中的至少一个节点可能有错。因此,校验节点的值(或者等效为奇偶校验矩阵402产生的校正子的值)可以提供对LDPC解码器(即图1的LDPC解码器)接收的各码字的奇偶校验,由此向图1的通信/存储系统100提供纠错能力。

图形403和404可以用来图示公知为消息传递算法406的迭代两步解码算法。消息传递算法406可以由图1的LDPC解码器116或者这一解码器的任何变体(例如泛洪解码器或者分层解码器)运用。消息传递算法根据与待解码的LDPC代码的奇偶校验矩阵关联的Tanner图形的结构来进行若干轮次(或者迭代)412的消息更新。

可以重复迭代412直至已经对码字进行解码或者直至已经达到迭代阈值数目。在消息传递算法406的各迭代的各步骤期间发送的消息可以依赖于更新规则和更新步骤的调度。

在消息传递算法406的首次迭代之前,图4的各变量节点401基于从图1中的接收矢量114导出的信息来接收初始LLR消息。如下文将讨论的那样,在一些情况下可以在消息传递算法406的首次迭代之前或者期间进行低功率校正子校验。消息传递算法406的各迭代可以包括两个步骤。在第一步骤中,校验节点可以更新,而在第二步骤中,变量节点可以更新。可以重复这一过程直至已经对码字进行解码或者直至已经达到迭代阈值数目(例如maxIterNum)。

例如在第一步骤中,在变量节点401的集合内的成组变量节点向与它们相连接的在校验节点405的集合内的成组校验节点(例如将在第一层消息传递解码中处理的校验节点)发送它们的当前消息。成组校验节点然后通过基于它们接收的消息和更新规则集进行计算,来进行更新408。这些校验节点例如接收各自来自它连接到的不同变量节点的dc个消息。从成组变量节点向成组校验节点发送的各消息可以标记为Q型消息。为成组变量节点计算的各后验概率(APP)消息可以标记为P型消息。Q型或者P型消息可以存储于LDPC解码器的存储器中。

例如这些消息可以标记为Q1成组校验节点然后可以通过使用它接收的各Q型消息和最小近似计算R型消息来更新。具体而言,成组校验节点中的各校验节点可以使用它接收的所有Q型消息,基于等式来计算R型消息。可以使用最小近似来近似这一等式。在这一等式中,ScaleR代表如下缩放因子(可以设置为1或者任何其他值),该缩放因子乘以R型消息,以提高应用这一最小和技术的LDPC解码器的性能。缩放因子可以允许解码器的性能接近应用“和-积(sum-product)”技术(未使用最小近似)的解码器的性能。可以从解码器的存储器直接读取Qk个消息或者可以重建Qk个消息(即数目为k的Q型消息)。可以从LDPC解码器的存储器读取的先前R型消息以及Pk个消息(即数目为k的P型消息)重建Qk个消息。向校验节点连接到的各变量节点发送这些重新计算的R消息。

例如在第二步骤中,在校验节点405的集合内的成组校验节点向它们连接到的在变量节点401集合内的成组变量节点发送它们的当前消息。成组变量节点然后通过基于它们接收的消息和更新规则集进行计算来进行更新410。这些变量节点例如接收各自来自它连接到的不同校验节点的dv个消息。从成组校验节点向成组变量节点发送的各消息可以标记为R型消息。例如,从校验节点向变量节点发送的消息可以标记为R1成组变量节点然后通过使用它接收的各R型消息计算Q型消息来更新。具体而言,使用初始接收的LLR消息和接收的各R型消息,成组变量节点中的各变量节点可以基于等式来计算Q型消息。在这一等式中,ScaleQ可以代表如下缩放因子(可以设置为1或者任何其他值),该缩放因子乘以Q型消息以提高LDPC解码器的性能。在一些情况下,R型和Q型的消息可以分别通过各自与ScaleR和ScaleQ相乘来“缩放”。类似地,可以进行消息更新步骤以计算P型消息(也称为后验概率(APP)消息)。使用初始LLR消息和接收的各R型消息,成组变量节点中的各变量节点可以基于等式来计算P型消息515。P消息的符号常称为LDPC解码器的硬判决(HD)消息。例如,如果变量节点j上的APP消息P的值大于零,则用于变量节点j的HD设置为0。如果变量节点j上的APP消息P的值小于零,则用于变量节点j的HD设置为1。此外,成组变量节点中的各变量节点也可以基于等式和LLREXT(V)=LLRAPP(v)-LLR来计算本征(LLREXT)消息。可以向变量节点连接到的各校验节点发送这些新近计算出的消息中的一些或者所有消息。

图5示出了根据一些实施例的具有低功率电路的分层LDPC解码器500(例如图1的LDPC解码器116的分层变体)的简化框图。LDPC解码器500包括Q存储器510、R存储器516、校正子计算单元517、处理/更新块519、复用器511和用对接收矢量(例如图1的接收矢量114)进行解码的附加部件、以及用于存储其他类型的消息或者信息(例如硬判决)的存储器。复用器511包括切换到省电(STPS)选择输入513(等效为STPS开关)以及输入515和520。分层LDPC解码器500或者任何其他解码器中的低功率电路可以包括这些部件中的任何部件。例如低功率电路可以包括复用器511、校正子计算单元517、收敛逻辑(未示出)或者类似部件。

Q存储器510和R存储器516分别存储变量至校验(位至校验)消息(Q型消息)和校验至变量(校验至位)消息(R型消息)。作为例子,R存储器516可以存储用于紧凑存储R型消息的数据(例如Min1、Min2、Min 1Index、Min2Index、AccumulatedSign)。这一存储器可以用来导出R型消息。

在分层LDPC解码器500中对LDPC代码进行解码的过程期间,复用器511允许在首次迭代或者首次迭代的部分中对于执行低功率校正子校验还是正常解码而不进行低功率校正子校验之间选择。例如当通信信道(例如图1的信道110)的状态好时,低功率校正子校验可以允许LDPC解码器快速确定接收矢量是否为有效码字。因此解码器可以实现省电而无需进一步处理接收的矢量。例如如果通信信道的信噪比(SNR)高,则通信信道的状态好,并且可以启用低功率校正子校验。由于启用低功率校正子校验,所以可以实现省电。然而如果通信信道的SNR低,则通信信道的状态差,并且可以禁用低功率校正子校验。可以例如通过使用如下文所述监视逻辑电路,和/或通过解码器500内部或者外部的任何信道监视电路来确定信噪比。

复用器511包括STPS选择输入513以及输入515和520。STPS选择输入513允许复用器511选择将向校正子计算单元517输出输入515或者输入520。

如果复用器511的STPS选择输入513等于一,则低功率校正子校验被启用。复用器511然后选择将向校正子计算单元517输出输入515(解码器接收或者计算的初始LLR消息的符号)。STPS选择输入513(等效为STPS开关513)可以用来例如在该输入设置为一时并且在启用低功率校正子校验时基本上停止正常解码器处理。当启用低功率校正子校验时不进行对接收矢量的正常LDPC解码器处理(例如读和写R存储器516、读和写Q存储器510等)。由于这时未进行正常LDPC解码器处理,所以可以最小化由于在正常处理期间使用的解码器部件的功耗。因此,可以明显减少解码器位于其中或者使用于其中的设备的总功耗。

如果复用器511的STPS选择输入513等于零,则禁用低功率校正子校验。复用器511然后选择将向校正子计算单元517输出的输入520(与LDPC解码器中的APP(P型)消息的符号相等的、来自LDPC解码器的硬解码(HD)数据)。当低功率校正子校验被禁用时,进行对接收矢量的正常LDPC解码器处理。如果低功率校正子校验未确定接收矢量为有效码字,则也可以进行如下文所述正常解码器处理。LDPC解码器的这两种操作模式(启用和禁用低功率校正子校验)将在以进行更加详细地描述。

在正常解码器处理(即低功率校正子校验禁用)期间,复用器511的STPS选择输入513等于零。LDPC解码器500可以使用如图4中所述解码方式来操作。如上文讨论的那样,LDPC解码器(例如分层LDPC解码器500)计算或者接收以来自接收矢量(例如图1的接收矢量114)的信息为基础的初始LLR消息。起初,解码器中的变量节点(等效为位节点)消息(Q型)消息可以等于计算或者接收的初始LLR消息。处理/更新块519可以从R存储器516读取R型消息,和/或从Q存储器510读取Q型消息,并且可以处理和更新这些消息(例如使用上述等式)。处理/更新块519可以存储去往R存储器516的更新后的R型消息和/或去往Q存储器510的更新后的Q型消息。处理/更新块519也可以向复用器511的输入520输出更新的HD数据。

校正子计算单元517基于它在它的输入接收的消息和与应用的LDPC代码关联的奇偶校验矩阵,来计算校正子(例如类似于图2的校正子216)。校正子计算单元517可以向收敛逻辑(未示出)和/或向硬判决存储器(也未示出)传递计算出的校正子。收敛逻辑可以基于它接收的校正子来确定接收矢量为有效。例如,如果计算出的校正子为全零,则收敛逻辑可以确定接收矢量为有效码字,并且可以终止LDPC解码器500对接收矢量的任何进一步处理。然而如果基于初始LLR消息计算的任何校正子的符号为非零,则收敛逻辑可以确定接收矢量为无效码字,并且可以允许LDPC解码器500对接收矢量的进一步处理(即附加迭代)。迭代可以继续直至LDPC解码器收敛至有效码字,或者直至达到最大迭代限制(即正整数maxIterNum),任何一个先达到即迭代停止。

在低功率解码器处理(即启用低功率校正子校验)期间,复用器511的STPS选择输入513等于一。如上文讨论的那样,LDPC解码器(例如分层LDPC解码器500)基于来自接收矢量(例如图1的接收矢量114)的信息计算或者接收初始LLR消息。可以计算初始LLR消息中的各值的符号。例如,如果初始LLR消息中的第i个值表明接收矢量中的第i位为“0”的概率大于或者等于它为“1”的概率,则符号可以等于零。例如如果初始LLR消息中的第i个值表明接收矢量中的第i位为“1”的概率大于它为“0”的概率,则符号可以等于一。去往复用器511的输入515是初始LLR消息中的各值的符号。由于STPS选择输入513等于一,所以复用器511选择将向校正子计算单元517输出初始LLR消息中的各值的符号。可以不进行对接收矢量的任何其他处理(例如,读/写R存储器516和读/写Q存储器510等)。

校正子计算单元517基于它在它的输入接收的初始LLR消息中的各值的符号和与应用的LDPC代码关联的奇偶校验矩阵(例如图2的奇偶校验矩阵212)来计算校正子。校正子计算单元517可以向收敛逻辑(未示出)和/或向硬判决存储器(也未示出)传递计算出的校正子。收敛逻辑可以基于它接收的校正子来确定接收矢量为有效。例如如果计算出的校正子为全零,则收敛逻辑可以确定接收矢量为有效码字,并且可以终止LDPC解码器500对接收矢量的任何进一步处理。然而,如果基于初始LLR消息计算的任何一个校正子的符号为非零,则收敛逻辑可以确定接收矢量为无效码字,并且可以允许分层LDPC解码器500对接收矢量进一步处理(上述正常解码器处理)。在分层解码期间,收敛逻辑可以在处理任何与非零校正子关联的层之后确定接收矢量为无效。然后可以停止低功率校正子校验,并且LDPC解码器500可以继续上述正常解码器处理。

可以(例如通过下文讨论的监视逻辑电路)监视通信信道(例如图1的信道110)和/或使用LDPC解码器的设备的状态。该监视可以确定是启用还是禁用低功率校正子校验(即分别设置STPS选择输入513为一或者零)。例如,当与通信信道关联的信噪比(SNR)为高时(表明信道状态好),STPS选择输入513被设置为一,这启用低功率校正子校验。当与通信信道关联的SNR为低时(表明信道状态差),STPS选择输入513被设置为零,这禁用低功率校正子校验。下文将参照图7更详细地讨论监视逻辑电路对复用器511的STPS选择输入513的控制。

可以基于阈值、基于值范围或者使用其他技术来进行如本公开内容讨论的对SNR值是高还是低的确定。例如,高SNR值可以是在LDPC代码的性能曲线的瀑布或者错误基底区域以上或者以内的SNR值范围中的一个SNR值。低SNR值可以是在LDPC代码的性能曲线的瀑布区域以内或者以下的SNR值范围中的SNR值。作为另一例子,大于第一阈值(例如设置为例如0.05dB以上任何值)的SNR值可以是高SNR值。小于第二阈值(例如设置为例如5dB以下的任何值)可以是低SNR值。如下文将讨论的那样,对SNR值是高还是低和/或通信信道状态的确定可以基于为了对码字进行解码而进行的以往迭代数目、和/或解码器在对码字进行解码之时纠正的错误数目、以及一个或者多个阈值。

当启用低功率校正子校验时,该校验将进行至多一次额外LDPC解码器迭代。对于分层解码器,低功率校正子校验可以仅进行迭代的一部分(一小部分),因为当发现与非零校正子关联的第一层时可以停止校验。这可以通常出现在校验期间早期。例如当信道SNR低时在仅一层或者两层之后可以停止校验。作为另一例子,如果信道SNR高,那么如果LDPC奇偶校验矩阵具有分别等于3或者4的列权值cw,则在迭代的大约三分之一或者迭代的四分之一之后可以停止校验。因此当启用低功率校正子校验时,将花费解码器的一次迭代以确定接收矢量为有效码字、或者将花费迭代的一小部分,以确定这一矢量并非有效码字并且将需要进一步处理。在好信道状态期间,低功率校正子校验因此将通过限制不必要的解码器处理来明显减少解码器中的功耗。

尽管前文描述了使用分层LDPC解码器,但是这一元件可以为任何类型的解码器(例如LDCP解码器可以作为替代或者更具体地是任何类型的分层解码器、任何类型的泛洪解码器或者任何其他类型的解码器)所替换。解码器也可以是这些解码器的任何变体(例如硬解码器、位翻转解码器、软解码器或者解码器的任何其他变体)。此外,解码器可以利用硬信息或者软信息以对接收矢量进行解码。

图6示出了根据一些实施例的可以用于改变消息的位精确度以减少功耗的消息存储器块600。消息存储块600可以使用固定数目的位来存储R和/或Q型消息,其中一些位是活跃的而一些位是不活跃的。消息存储器块600可以包括任何数目的活跃位。例如消息存储器块600可以包括活跃位602、606、608或者610。消息存储器块600可以包括屏蔽位603、605、607或者609。消息存储器块600也可以包括存储器存取线620。消息存储器块600可以代表LDPC解码器中的Q存储器(例如图5的Q存储器510)和/或R存储器(例如图5的R存储器516)的部分。消息存储器块600可以包括活跃位602、606、608或者610,各活跃位代表用于LDPC解码器中的R和/或Q型消息的希望位精确度(“BP”)。例如BP可以等于正整数值M。BP可以具有等于正整数值L的最大希望精确度。例如对于Q存储器并且对于Q型消息,M可以等于三而L可以等于八。例如对于R存储器并且对于R型消息,M可以等于一而L可以等于六。

活跃位是用来代表、读取和写入分别存储于R和/或Q存储器中的R和/或Q型消息的位。活跃位的数目代表R和/或Q型消息的位精确度BP。可以屏蔽不活跃的位和/或降低其功率,从而不使用、不读取和/或不写入它们。可见,消息存储器块600可以具有M个活跃位602和L-M个屏蔽位603。消息存储器块600可以具有M+1个活跃位604和L-(M+1)个屏蔽位605。消息存储器块600可以具有M+2个活跃位606和L-(M+2)个屏蔽位607。消息存储器块600可以具有L-1个活跃位608和一个屏蔽位609。消息存储器块600可以具有L个活跃位610。活跃位的数目可以由寄存器ACTIVE_BITS控制。这一寄存器可以实施于消息存储器块600以内或者以外,并且可以例如由如下文描述的监视逻辑电路控制。

可以(例如通过下文讨论的监视逻辑电路)监视通信信道(例如图1的信道110)和/或使用LDPC解码器的设备的状态。该监视可以确定R和/或Q型消息的位精确度BP。例如当与通信信道关联的信噪比(SNR)如上文所述为高(表明信道状态好)时,R和/或Q型消息的位精确度(例如由ACTIVE_BITS寄存器控制)可以设置为小数目。当与通信信道关联的SNR如上文所述为低(表明信道状态差)时,R和/或Q型消息的精确度(例如由ACTIVE_BITS寄存器控制)可以设置为大数目。下文将参照图7更详细地讨论监视逻辑电路对复用器511的STPS选择输入513的控制。

存储器存取线620可以用来从和向消息存储器块600读取和写入R和/或Q型消息。在一些实施例中,存储器存取线620可以用来仅读取或者写入与这些R和/或Q型消息中的各消息关联的活跃位。

当通信信道的状态好时,将R和/或Q型消息的精确度设置为更小数目将明显减少LDPC解码器中的功耗。具体而言,减少用于R和/或Q型消息的精确度可以减少在LDPC解码器中必需的处理数量,由此明显减少解码器功耗。

图7示出了根据一些实施例的可以用于监视解码器统计的监视逻辑电路700。控制逻辑电路700包括存储器704、最新度量值706、最旧度量值708、控制逻辑单元712和输出信号714。控制逻辑电路700也可以包括加法器702。如下文将讨论的那样,最新度量值706和最旧度量值708可以例如是与通信信道的状态或者设备的状态有关的统计或者数目。控制逻辑电路700可以位于LDPC解码器(例如图5的分层LDPC解码器500)以内或者以外。

存储器704存储W个数目的窗口。举例而言,存储器704可以用来存储LDPC解码器以往纠正的位错误的监视数目。这可以是第一度量。具体而言,解码器在接收矢量中纠正的位(“输入错误”)的数目可以通过比较以往W个接收矢量中的各接收矢量与来自LDPC解码器的各对应输出码字(当解码器收敛时)来确定,并且可以存储在存储器704中。大量以往错误可以表明通信信道(例如图1的信道110)的状态差(例如与低SNR关联)。少量以往错误可以表明通信信道(例如图1的信道110)的状态好(例如与高SNR关联)。可以基于比较以往错误的数目与阈值(下文讨论)或者基于接收矢量(这些接收矢量按照循环行列式需要解码器的例如少于1.5或者2次迭代)的数目来确定该数目少。可以按照LDPC代码的代码速率来确定以往错误的数目少。可以基于比较以往错误的数目与阈值(下文讨论)或者基于接收矢量(这些接收矢量按照循环行列式需要解码器的例如多于1.5或者2次迭代)的数目来确定该数目多。

在一些实施例中,存储器704可以用来存储LDPC解码器针对以往W个码字(等效为以往W个块或者区)为了收敛而需要的迭代的以往监视的W个数目。这可以是第二度量。使用第二度量,如果用于解码器的可能迭代的最大数目表示为maxIterNum,则存储于存储器704中的各数目长度可以至多为log2(maxIterNum)位。大量以往迭代表明通信信道的状态差(例如与低SNR关联)。少量以往迭代表明通信信道的状态好(例如与高SNR关联)。

在一些实施例中,存储器704可以用来存储W/S个数目。各数目可以对应于LDPC解码器针对以往S个码字(等效为块或者区)进行收敛而需要的迭代。使用这一方式,存储的各数目长度可以至多为log2(S×maxIterNum)位,并且可以减少为了存储历史信息所需的存储器的大小。一般而言,S设置为小于或者等于W的值,并且S和W的值二者都可以是设计选择。例如,如果S和W的值均为小,则对逻辑电路700的监视可能对SNR的改变非常敏感。如果S的值大并且W的值设置为等于S的值,则监视逻辑电路700可能对SNR的改变敏感较小。这假设在更大窗口W内存在块(或者区)之间的相关性。

一般而言,监视电路可以监视与通信信道的状态或者解码器实施于其中的设备的状态有关的任何度量。例如,解码器实施于其中的设备的状态可以与如下测量相关,这些测量包括按照各种时间间隔使用设备的次数、它按照各种时间间隔进行操作的次数和/或它按照各种时间间隔进行的处理数量。可以比较这些测量中的至少一个测量与一个或者多个阈值,针对解码器实施于其中的设备将各阈值设置为适当值。例如在当使用一个阈值时的情况下,如果测量在阈值以上,则可以确定解码器实施于其中的设备的状态差。如果测量在阈值以下,则可以确定解码器实施于其中的设备的状态好。例如在实施解码器的闪存器件上可以监视进行读取操作的次数并且可以根据这一次数来确定闪存器件的状态。

存储器704可以用来存储与度量有关的统计或者数目。这些统计或者数目用来确定是否启用或者禁用低功率校正子校验、改变R和/或Q型消息的位精确度和/或改变R和/或Q型消息的缩放。设备使用次数少、它进行操作的次数少和/或处理数量少可以表明解码器实施于其中的设备的状态好。因此可以启用低功率校正子校验和/或因此可以使R和/或Q型消息的位精确度更小。设备使用次数多、它进行操作的次数多和/或处理数量多可以表明设备的状态差。因此可以禁用低功率校正子校验和/或因此可以使R和/或Q型消息的位精确度更大。

加法器702组合存储器704中存储的所有数目。例如,加法器702可以将存储于存储器704中的所有W或者W/S个数目相加。加法器702可以代之以将最新度量值706与先前计算出的“和”相加(初始设置为零),也可以从先前计算出的和减去最旧度量值708。最新度量值706可以是存储于存储器704中的最近数目,而最旧度量值708可以是从存储器去除的数目(例如第(W+1)个或者第([W/S]+1)个数目)。加法器702向控制逻辑单元712输出它的结果(“Sum”)。在一些实施例中,加法器702可以由如下电路补充,该电路将加法器702的结果除以存储器704中存储的数目数量(例如W或者W/S)以产生移动平均(“MA”)。也可以向控制逻辑单元712输出MA。

控制逻辑单元712比较它从加法器702接收的求和(Sum)值和/或MA值与阈值。控制逻辑单元712可以代之以将它从加法器702接收的Sum值和/或MA值与多个阈值进行比较。控制单元712基于一个或者多个比较来驱动输出信号714。

在一些实施例中,控制逻辑单元712可以对Sum值和/或MA值与阈值THRESH进行比较。可以针对用来生成Sum值和/或MA值的度量适当地设置THRESH。对于第一度量,THRESH可以例如根据LDPC代码的速率设置为少量错误数目。对于第二度量,THRESH可以设置为等于W×1.5(或者W×2.0)并且与MA值做比较。这可以要求每个解码码字平均需要1.5(或者2.0)次迭代以满足阈值。

如果Sum和/或MA大于阈值,则控制逻辑单元712可以将输出信号714驱动成逻辑“0”值。输出信号714然后可以将图5的复用器511的STPS选择输入513设置为零,从而禁用上文讨论的低功率校正子校验。如果代之以Sum或者MA小于或者等于阈值,则控制逻辑单元712可以将输出信号714驱动成逻辑“1”值。输出信号714然后可以将图5的复用器511的STPS选择输入513设置为一,从而启用上文讨论的低功率校正子校验。

在一些实施例中,控制逻辑单元712可以对Sum值和/或MA值与位精确度阈值集进行比较,各阈值标记为ThrBPj,其中j为负数或者正数。例如,ThrBP-1对应于1位减量,ThrBP-2对应于2位减量,ThrBP-(L-M+1)对应于L-M+1位减量,ThrBP1对应于1位增量,ThrBP2对应于2位增量,并且ThrBP(L-M+1)对应于L-M+1位增量。这些阈值可以用来控制例如图6的消息存储器块600中的消息(例如Q和/或R型消息)的位精确度。具体而言,Sum或者MA的值可以用来增加或者减少用于消息存储器中存储的消息的活跃位数。用于存储器块的当前位精确度(“BP”)可以设置为M位(即BP=M位)。可以针对W=S个码字(区或者块)计算Sum值和/或MA值。W可以设置为等于S,从而例如在窗口之间无重叠并且能够遵循独立用于各窗口的R和/或Q型消息精确度。

然后可以比较Sum值和/或MA与阈值ThrBPj,以确定用于R和/或型消息的BP的适当值。使用MA值:

如果MA≥ThrBP-1并且MA<ThrBP 1,则可以不改变BP;

如果MA≥ThrBP 1并且MA<ThrBP2,则可以将BP递增1(BP:=BP+1);

如果MA≥ThrBP2并且MA<ThrBP3,则可以将BP递增2(BP:=BP+2);

如果MA≥ThrBP-2并且MA<ThrBP-1,则可以将BP递减1(BP:=BP-1);

如果MA≥ThrBP-3并且MA<ThrBP-2,则可以将BP递减2(BP:=BP-2)。

一般而言,使用MA值,

如果MA≥ThrBP-1并且MA<ThrBP 1,则可以不改变BP;

对于j>0:如果MA≥ThrBPj并且MA<ThrBP(j+1),则可以设置BP以使得BP:=BP+j;

对于j<0:如果MA≥ThrBP(j-1)并且MA<ThrBPj,并且可以设置BP以使得BP:=BP+j(减量为|j|)。如果使用Sum值而不是MA值,则上述不等式中的MA可以替换为Sum。

可以针对用来生成Sum值和/或MA值的度量适当地设置阈值集ThrBPj。例如对于第一度量,使用MA值,可以根据LDPC代码的代码速率将ThrBP1设置为中等错误数目。

对于第二度量,使用MA值,ThrBPj可以例如设置为:ThrBP1=W×maxIterNum/4(该阈值平均设置为每个码字的可能的最大迭代数目的1/4),或者ThrBP2=W×maxIterNum/3(该阈值平均设置为每个码字的可能的最大迭代数目的1/3),或者ThrBP3=W×maxIterNum×2/3(该阈值平均设置为每个码字的可能的最大迭代数目的2/3),或者ThrBP-1=W×maxIterNum/6(该阈值平均设置为每个码字的可能的最大迭代数目的1/6),或者ThrBP-2=W×maxIterNum/8(该阈值平均设置为每个码字的可能的最大迭代数目1/8),或者ThrBP-3=W×maxIterNum/12(该阈值平均设置为每个码字的可能的最大迭代数目的1/12)。

在一些实施例中,上述缩放因子ScaleR和/或ScaleQ或可以用来分别缩放R和/或Q型消息。控制逻辑单元712可以对Sum值和/或MA值与用于缩放因子的阈值集进行比较,各阈值标记为ThrScalej,其中j为负数或者正数。例如,ThrScale-1对应于1×ΔScale增量,ThrScale1对应于1×ΔScale减量,并且一般而言,ThrScalej对应于ScaleR或ScaleQ中的改变j×ΔScale。这些阈值可以用来在计算上述消息(例如Q和/或R型消息)时控制Scale的值。具体而言,Sum或者MA的值可以用来按照解码器(例如最小和LDPC解码器)中的ΔScale(例如ScaleR:=ScaleR+ΔScale),来确定R和/或Q型消息的缩放因子的值。可以有一个或者多个缩放因子。例如对于不规则LDPC代码,可以有缩放因子矢量,其中矢量中的各项对应于用于特定列权值(cw)的缩放因子。此外,对于行权值可能需要第二缩放因子矢量。用于缩放因子的阈值和ΔScale的值可以是需要优化的仅有参数。

图8示出了根据一些实施例的与LDPC解码器一起使用的用于低功率校正子校验的过程800的流程图。过程800包括802、804、806、808、810、812和814以及816。过程800可以由解码器(例如图1的LDPC解码器116或者图5的分层LDPC解码器500)执行以实际减少功耗。

在802,监视电路(例如图7的监视逻辑电路700)监视度量1、度量2和/或任何其他度量,度量1即在接收矢量(例如图1的接收矢量114)中纠正的以往错误(输入错误)的数目,度量2即以往迭代数目。一般而言,在802可以基于特定度量来监视通信信道(例如图1的信道110)的状态和/或解码器实施于其中的设备的状态。基于这一监视来计算与状态相关的度量值。例如,如上文讨论的那样,可以基于完成的监视来计算MA值、Sum值和/或任何其他值,并且可以执行804。可以通过控制逻辑电路(例如图7的控制逻辑电路)或者如参照图7描述的任何监视电路完成监视。

在804可以确定是应当激活还是去激活校正子的“预先计算”(即如上文所述低功率校正子校验)。例如,控制逻辑电路(例如图7的控制逻辑单元712)可以进行这一确定。可以如上文参照图7所述进行确定。具体而言,可以基于在802计算的MA值、Sum值或者任何其他度量值并且基于阈值(例如THRESH)来进行确定。例如,Sum、MA或者其他计算的度量值小于或者等于阈值表明通信信道(例如图1的信道110)的状态好和/或解码器实施于其中的设备的状态好。否则,Sum、MA或者其他计算的度量值可以表明状态差。如果Sum、MA和/或任何其他计算的度量值大于阈值,则禁用上文讨论的低功率校正子校验并且可以执行806。取而代之,如果Sum、MA和/或任何其他计算的度量值小于或者等于阈值,则启用上文讨论的低功率校正子校验并且可以执行808。

在806,解码器处理接收矢量而无需“预先计算”校正子(即如上文所述低功率校正子校验)。此外,图5的复用器511的STPS选择输入513设置成零。

在808禁用解码器对接收矢量的正常处理。如上文讨论的那样,这可以允许实际减少解码器中的功耗。此外,图5的复用器511的STPS选择输入513可以设置成一。接着可以执行810。

在810,可以基于来自接收矢量的信息来确定校正子。具体而言,解码器(例如图1的LDPC解码器116或者图5的分层LDPC解码器500)计算或者接收根据接收矢量(例如图1的接收矢量114)导出的初始LLR消息。可以计算初始LLR消息中的各值的符号。例如,如果初始LLR消息中的第i个值表明接收矢量中的第i位为“1”的概率大于位为“0”的概率,则符号可以等于一。可以(例如通过图5的校正子计算单元517)如上文所述基于接收的初始LLR消息中的各值的符号和与应用的LDPC代码关联的奇偶校验矩阵(例如图2的奇偶校验矩阵212)来计算校正子。在基于初始消息来计算校正子之后可以执行812。

在812,确定非零校正子是否存在于在810计算的校正子中。例如,如果任一个校正子等于非零数,则可以确定接收矢量为无效码字,并且可以执行814。然而,如果确定计算的所有校正子为零,则执行816。这些确定可以例如由解码器中的收敛逻辑进行。

在814,(例如使用上述正常解码器处理或者等效的成熟处理来)进一步处理接收矢量。该处理可以由解码器(例如图1的LDPC解码器116或者图5的分层LDPC解码器500)完成。

在816,确定发现有效码字。解码器不再进一步处理接收矢量。解码器然后可以开始处理下一接收矢量。如上文说明的那样,由于当通信信道和/或设备的状态好时激活低功率校正子校验,所以低功率校正子校验可以明显减少解码器中的功耗。

应当理解可以按照不限于图中所示和所述顺序和序列的任何顺序或者序列执行或者进行过程800的上述步骤。也可以在适当时基本上同时或者并行执行或者进行过程800的一些上述步骤以减少延时和处理时间。低功率电路和/或由解码器使用的监视电路可以执行过程800的一些或者所有上述步骤。

图9示出了根据一些实施例的用于改变消息的精确度或者缩放以减少LDPC解码器中的功耗的过程900的流程图。过程900包括902、904和906。

在902,监视电路(例如图7的监视逻辑电路700)监视度量1、度量2和/或任何其他度量,度量1即在接收矢量(例如图1的接收矢量114)中纠正的以往错误(输入错误)的数目,度量2即以往迭代数目。一般而言,在902可以基于特定度量来监视通信信道(例如图1的信道110)的状态和/或解码器实施于其中的设备的状态。基于这一监视来计算与状态相关的度量值。如上文讨论的那样,可以基于完成的监视来计算MA值、Sum值和/或任何其他值,并且可以执行904。例如,监视可以由控制逻辑电路(例如图7的控制逻辑电路)或者如参照图7描述的任何监视电路完成。

在904基于在902的监视来确定R型和/或Q型消息的适当位精确度、BP和/或缩放因子Scale。例如,控制逻辑电路(例如图7的控制逻辑单元712)可以进行这一确定。可以如参照图7所述进行确定。可以对在902计算的MA值和/或Sum值与一个或者多个阈值进行比较,以确定是否改变解码器中所用R和Q型消息的位精确度和/或缩放以及以什么方式改变。例如,可以基于在902计算的MA值并且基于上述阈值ThrBPj来进行对改变R和/或Q型消息的位精确度BP的确定。作为另一例子,可以基于在902计算的MA值并且基于上述阈值ThrScalej来进行对改变R和/或Q型消息的缩放因子的确定。

在906可以根据在904进行的确定来改变和设置与R型和/或Q型消息关联的位精确度BP和/或缩放ScaleR和/或ScaleQ。例如使用MA值,如果MA≥ThrBP-1并且MA<ThrBP1,则可以不改变BP,对于j>0的整数值:如果MA≥ThrBPj并且MA<ThrBP(j+1),则可以设置BP以使得BP:=BP+j,并且对于j<0:如果MA≥ThrBP(j-1)并且MA<ThrBPj,则可以设置BP以使得BP:=BP+j(减量为|j|)。如果使用Sum值而不是MA值,则上述不等式中的“MA”可以替换为“Sum”。可以经由将活跃位数设置成等于BP的寄存器向存储R和/或Q型消息的存储器供应BP值。作为另一例子,Sum或者MA的值可以用来将缩放因子增加或者减少一个值,该增加或者减少的值等于解码器(例如LDPC解码器的最小和实施)中的R和/或Q型消息的ΔScale(ScaleQ:=ScaleQ+ΔScale)。缩放因子的改变可以基于阈值ThrScalej。例如,ThrScalej对应于缩放因子改变j×ΔScale。此外,对于各消息可以有一个或者多个缩放因子,并且也可以在改变这些缩放因子时使用Sum或者MA值。控制逻辑电路(例如图7的控制逻辑单元712)可以用来进行这些改变中的任何改变或者用信号通知这些改变中的任何改变。

可以明显减少为了处理位精确度更低的消息而必需的解码器处理数量。由于这种对位精确度更低的消息的处理的明显减少,可以实现解码器中的功耗明显减少。

应当理解可以按照不限于图中所示和所述顺序和序列的任何顺序或者序列执行或者进行过程900的上述步骤。也可以在适当时基本上同时或者并行执行或者进行过程900的一些上述步骤。低功率电路和/或由解码器使用的监视电路可以执行过程900的一些或者所有上述步骤。

对本公开内容的示例实施例的前文描述提供了图示和描述、但是并非为了穷举公开内容或者使公开内容限于公开的精确形式。修改和变化根据上述教导是可能的或者可以从对这里公开的内容的实践中加以获悉。例如尽管结合图1-9描述了LDPC解码器,但是这一元件可以替换为任何类型的解码器(例如,LDPC解码器可以代之以或者更具体为任何类型的分层解码器、任何类型的泛洪解码器或者任何其他类型的解码器)。解码器也可以是这些解码器的任何变体(例如硬解码器、位翻转解码器、软解码器或者解码器的任何其他变体)。此外,解码器可以利用硬信息或者软信息以对传入信息进行解码。尽管图5的某些元件已经描述为实施于图5的分层LDPC解码器500中,但是这些元件可以实施于解码器的任何类型的变体中。例如,这些元件可以实施于迭代软解码器、泛洪解码器、硬解码器、位翻转解码器中或者实施为任何设备中的独立元件。此外,尽管本公开内容的某些部件已经描述为用硬件实施而其他部件用软件实施,但是其他配置可以是可能的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号