奇偶校验码编码器的制造方法

文档序号:10473359阅读:473来源:国知局
奇偶校验码编码器的制造方法
【专利摘要】本文中公开了对消息进行编码和解码的技术。在一些实施方式中,可对低密度奇偶校验(“LDPC”)码基图G(k)进行若干次划分以划分成更小的LDPC码图G(k?n)。可根据该更小的LDPC码图G(k?n)对将被存储的数据进行编码以产生编码消息。其后可将编码消息存储在存储器装置(诸如多级单元存储器装置)中。
【专利说明】
奇偶校验码编码裔
【背景技术】
[0001]除非在本文中另外表明,否则本部分中所述的材料对于本申请中的权利要求来说不是现有技术并且不由于包括在本部分中而被承认是现有技术。
[0002]可根据迭代解码原理构建的低密度奇偶校验(LDPC)码可被用在一些错误控制代码方法中。LDPC码已经找到了许多应用,范围从无线和卫星通信到计算机数据存储系统及其它。例如,LDPC码被包括在IEEE 802.1ln无线标准和DVB-S2卫星通信标准中。在闪存系统中存在采用LDPC码的趋势。得到越来越多使用的闪存的类型可包括例如多层单元(MLC)和三层单元(TLC)存储器。与单层单元(SLC)型闪存相比,这些闪存可实现降价价位。然而,当与其它类型的存储器相比时,这些类型的闪存可能更易于出错,并且具有低得多的耐写性。
[0003]概述
[0004]简而言之,本文中一般地描述了对消息进行编码的技术。在一个示例中,描述了一种方法。该方法可包括:接收基于2~n-提升Tanner图的LDPC码;接收包括2~n_提升Tanner图信息比特的2~n-提升Tanner图信息矢量;和接收包括2~n-提升Tanner图奇偶校验比特的2~η-提升Tanner图奇偶校验矢量。
[0005]所述方法还可包括执行所述2~n-提升Tanner图的分解过程。可通过使用2~n-提升Tanner图信息矢量的2~n-提升Tanner图信息比特计算包括2 ~n-提升Tanner图的2~n-1Tanner图上的2~n-lTanner图信息比特的2 ~n-lTanner图信息矢量来执行分解过程。分解过程可通过使用2~n-提升Tanner图奇偶校验矢量的2~n-提升Tanner图奇偶校验比特计算包括2 ~n_提升Tanner图的2~n_lTanner图上的2~n_lTanner图奇偶校验比特的2~n_lTanner图奇偶校验矢量来继续进行。可通过使用2~n-lTanner图信息矢量和2~n-lTanner图奇偶校验矢量来计算包括2~n_提升Tanner图的2~n-lTanner图上的2~n-lTanner图码字比特的2~n-lTanner图码字来进一步继续进行分解过程。
[0006]所述方法可通过使用2~n_提升图边缘构造、2~n-lTanner图码字、2~n_提升Tanner图信息矢量和2~n-提升Tanner图奇偶校验矢量计算包括2~n-提升Tanner图上的2~n-提升Tanner图码字比特的2 ~n-提升Tanner图码字来继续进行。
[0007]在另一示例中,描述了一种方法。该方法可包括:接收包括信息比特的广义信息矢量;接收广义奇偶校验矢量;并使用接收的广义信息矢量的信息比特来计算覆盖信息矢量。该方法还可包括:使用接收的广义奇偶校验矢量来计算覆盖奇偶校验矢量;和使用计算的覆盖信息矢量和计算的覆盖奇偶校验矢量来计算2-提升图的基图上的覆盖广义码字。
[0008]可使用2-提升Tanner图的边缘构造来计算穿越参数。可使用2-提升图的基图的第一副本、计算的穿越参数、计算的覆盖广义码字和接收的广义奇偶校验矢量来计算修改奇偶校验矢量。可使用基图、计算的修改奇偶校验矢量和信息比特来计算广义码字,其中信息比特被设置为2-提升图的基图的第一副本中的信息比特。
[0009]在另一示例中,描述了一种计算机可读存储介质。该计算机可读存储介质可包括存储在其上的计算机可执行指令,这些计算机可执行指令响应于被计算机执行使计算机执行对消息进行编码的方法。该方法可包括:接收基于2 ~n-提升Tanner图的LDPC码;接收包括2~n-提升Tanner图信息比特的2~n-提升Tanner图信息矢量;和接收包括2~n-提升Tanner图奇偶校验比特的2~n-提升Tanner图奇偶校验矢量。
[0010]所述方法还可包括执行2~n-提升Tanner图的分解过程。可通过使用2~n-提升Tanner图信息矢量的2~n-提升Tanner图信息比特计算包括2 ~n-提升Tanner图的2~n-1Tanner图上的2~n-lTanner图信息比特的2 ~n-lTanner图信息矢量来执行分解过程。分解过程可通过使用2~n-提升Tanner图奇偶校验矢量的2~n-提升Tanner图奇偶校验比特计算包括2 ~n_提升Tanner图的2~n_lTanner图上的2~n_lTanner图奇偶校验比特的2~n_lTanner图奇偶校验矢量来继续进行。可通过使用2~n-lTanner图信息矢量和2~n-lTanner图奇偶校验矢量计算包括2~n_提升Tanner图的2~n-lTanner图上的2~n-lTanner图码字比特的2~n_ITanner图码字来进一步继续进行分解过程。
[0011 ] 所述方法可通过使用2~n_提升图边缘构造、2~n-lTanner图码字、2~n_提升Tanner图信息矢量和2~n-提升Tanner图奇偶校验矢量计算包括2~n-提升Tanner图上的2~n-提升Tanner图码字比特的2 ~n-提升Tanner图码字来继续进行。
[0012]在还有的另一示例中,描述了一种存储数据的方法。该方法可包括:接收将被编码的数据;接收基于Tanner图G(k)的低密度奇偶校验(“LDPC”)码;对LDPC码进行若干次划分以划分成更小的LDPC码图G(k-n)上的数据编码;并根据更小的LDPC码图G(k-n)上的数据编码对所述数据进行编码以产生编码消息。
[0013]在另外的示例中,描述了一种编码器。该编码器可包括:覆盖码字处理器单元、修改码字处理器单元、以及耦合到覆盖码字处理器单元和修改码字处理器单元的分治单元。分治单元可用于:产生第一更小大小问题实例;从覆盖码字处理器单元接收第一解输出结果;并通过使用接收的第一解输出结果来产生第二更小大小问题实例。分治单元可进一步用于:从修改码字处理器单元接收第二解输出结果;并基于接收的第一解输出结果和接收的第二解输出结果来产生广义码字。
[0014]覆盖码字处理器单元可用于:从分治单元接收产生的第一更小大小问题实例;基于广义第一更小大小问题实例来产生第一解输出结果;将产生的第一解输出结果发送到分治单元。修改码字处理器单元可用于:从分治单元接收产生的第二更小大小问题实例;并基于接收的第二更小大小问题实例来产生第二解输出结果。
[0015]前述概要仅仅是说明性的,而并不意图以任何方式是限制性的。除了说明性的方面,上述实施例和特征、另外的方面、实施例和特征将通过参考附图和下面的详细描述而变得显而易见。
【附图说明】
[0016]通过结合附图进行的以下描述和所附权利要求,本公开的前述和其它特征将变得更充分地显而易见。理解,这些附图仅仅描绘了根据本公开的一些实施例,因此,不应被认为是限制其范围,将通过使用附图来更具体地、更详细地描述本公开,在附图中:
[0017]图1是说明被配置为实施低密度奇偶校验编码的存储器系统的示例的框图;
[0018]图2说明可被用作基于2-提升的LDPC编码的基础的奇偶校验方程的示例;
[0019]图3是提供具有数值的奇偶校验方程的示例的说明;
[0020]图4是图3中的奇偶校验方程的Tanner图表示的示例;[0021 ]图5是从图4的Tanner图的2-提升得到的Tanner图的示例;
[0022]图6是提供可通过将奇偶校验方程分解为更小的编码进行求解的奇偶校验方程的示例的说明;
[0023]图7A是不例编码过程的流程图;
[0024]图7B是另一示例编码过程的流程图;
[0025]图8是说明示例编码器的框图;
[0026]图9是执行LDPC解码方法的硬件实施方式的示例的说明;
[0027]图1O是图9的LDPC码的Tanner图表示的示例;
[0028]图11是校验节点单元的示例的说明;
[0029]图12是变量节点单元的示例;
[0030]图13是存储器块的示例的说明;以及
[0031]图14是说明被布置为实施目前公开的主题的各方面的示例计算装置的框图,
[0032]所有附图都是依照本文呈现的至少一些实施例来安排的。
【具体实施方式】
[0033]在以下详细描述中,对附图进行参考,所述附图形成详细描述的一部分。除非上下文另外指示,否则在附图中,相似的符号通常标识相似的部件。在详细描述、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文所提供的主题的精神或范围的情况下,可以利用其它实施例,以及可以进行其它改变。
[0034]如在本文中一般地描述的和在图中示出的那样,本公开的各方面可以以广泛多样的不同配置被布置、替代、组合、分割和设计,所有这些在本文中都被明确地构想。此外,为了清晰或简洁的目的,下述各图的一个或多个部件可以不被包括在图中。这不应被解释为未被包括的部件不形成本文中所述的主题的一部分的拒绝或承认。另外,一个或多个图可使用“虚”线作为视觉上封装一个或多个部件的边界。除非另有具体描述,否则虚线的使用是出于说明的目的,而不一定反映功能或物理边界。
[0035]本公开尤其是针对关于用于基于2-提升的LDPC码的LDPC编码器的技术进行一般性的描写的。在一些实施方式中,LDPC编码器可被用来对数据进行编码以供存储在存储器中。在一些示例中,LDPC编码器可被配置为使用LDPC码对数据进行编码。根据一些配置,LDPC编码器可将LDPC码的Tanner图G (k)划分为更小的图G (k-1 ),其中“G”将图标识为Tanner图,“k”表示该Tanner图的提升的数量。LDPC编码器可进一步将更小的图G(k-l)分解为进一步更小的图G(k-n)。划分过程可继续进行,直到图的大小适合于根据各种标准(诸如编码速度和复杂度)进行编码为止。在这些示例中,可将G(k)图上的编码问题分解为更小的G(k-n)图上的两个或更多个编码问题。
[0036]图1是说明根据本文中呈现的至少一些实施例布置的被配置为实施低密度奇偶校验编码的存储器系统100的示例的框图。存储器系统100可包括分治编码器102、存储器控制器104和存储器106,所有这些都相互操作地耦合。分治编码器102可具有作为输入的消息108和作为输出的码字110。存储器106可被配置为接收作为输入的码字110并输出存储器感测结果112。耦合到存储器106的解码器114可接收作为输入的存储器感测结果112并输出解码消息116。存储器系统100的各方面可由存储器控制器104控制。在一些实施方式中,分治编码器102和解码器104可由同一部件、过程或模块执行。
[0037]在一些操作示例中,消息108可从中央处理单元(未示出)或其它处理器或其它部件接收。分治编码器102可将消息108编码为码字110以供存储在存储器106中。当被从存储器106读取时,码字110可被测量作为存储器感测结果112。解码器114可对存储器感测结果112进行解码以产生解码消息116。如下面更详细地解释的,分治编码器102可使用基于2-提升的LDPC码的编码技术。下面的图和随附的描述提供了关于Tanner图所表示的编码问题可如何被划分为组成的子图以对信息的一个或多个比特进行编码的进一步的解释。
[0038]图2说明根据本文中呈现的至少一些实施例布置的可被用作基于2-提升的LDPC编码的基础的奇偶校验方程200的示例。奇偶校验方程200可用奇偶校验矩阵202、表示码字的二进制变量的矢量204和全零矢量206来表示。奇偶校验矩阵202可以是稀疏矩阵。如本文中所使用的,稀疏矩阵可以是在其中矩阵的大多数元素为零的矩阵。
[0039]如本文中所表示的,如果奇偶校验矩阵202和矢量204的乘积等于全零矢量206,则可满足奇偶校验方程200。应指出,如本文中所使用的,乘法和加法规则可以是二进制的,除非另有指示。为了加法的目的,下面的规则可适用:0+0 = 0,0+1 = 1,1+0 = 1,并且1+1=0。为了乘法的目的,下面的规则可适用:0x0 = 0,0x1=0,1x0 = 0,并且1x1 = 1。
[0040]图3是提供根据本文中呈现的至少一些实施例布置的具有数值的奇偶校验方程300的示例的说明。奇偶校验矩阵302可包括两行三列。可存在将消息编码为码字的多种方式。在一些技术中,可以以系统的方式执行编码。例如,将被发送的消息的比特可正好等于码字中的某个xN。例如,在图3中,码字304可被设计为消息比特可以总是等于xl。
[0041 ] 奇偶校验矩阵302可使用Tanner图来表示。Tanner图可以是二分图janner图的节点可被划分为两个部分或分区。Tanner图的第一部分可由所有变量节点组成。在一些实施方式中,变量节点可表示一个变量XNc3Tanner图的另一部分可由所有校验节点组成。在一些示例中,校验节点可表示一个奇偶校验,或奇偶校验矩阵的一行。当且仅当变量xN包含在奇偶校验或奇偶校验矩阵的行中时,在一个变量节点和一个校验节点之间才可存在一个边缘。
[0042]图4是根据本文中呈现的至少一些实施例布置的图3中的奇偶校验方程300的Tanner图400表示的示例。如所示,图400可包含两个部分。第一部分可包括变量节点402,分别被标识为变量节点X1、X2和X3。第二部分可包括校验节点404,分别地被标识为校验节点Cl和C2。如所示,校验节点Cl与变量节点Xl和X2具有耦合,它们的关系可表示变量Xl和X2的和为零的条件。变量Xl和X2的和为零的条件可以是在图3的奇偶校验矩阵302的行302A中被标识的线性约束。校验节点C2与变量节点X2和X3具有耦合。该关系可表示变量X2和X3的和为零的条件。变量X2和X3的和为零的条件也可以是在图3中的奇偶校验矩阵302的行302B中被标识的线性约束。
[0043]在一些示例中,由于将被编码的数据的大小,奇偶校验矩阵可具有几千个行和列。因为行和列的数量相对较大,所以使用LDPC码的编码过程可被配置为对大的奇偶校验矩阵进行求解。为了减小相对大小的编码问题,目前公开的主题的各种示例将编码问题表征为基于2-提升的LDPC码。
[0044]图提升(graphlifting)可以是从更小的图产生更大的图的过程。图提升过程可包括下面的操作。在第一操作中,可产生原始的更小的图或“基图”的“K”个副本,其中K是正整数。对于基图中的变量(校验)节点,在产生的图中可存在变量(校验)节点的K个副本。变量(校验)节点的K个副本可被称为基图中的变量(校验)节点的“纤程(fiber)”。在图提升过程的第二操作中,可以以约束的方式置换产生的图中的边缘。
[0045]例如,图5中的Tanner图是图4中的Tanner图的2-提升的示例。在图5中,XlA和XlB是一个纤程中的两个变量节点,C1A、C1B是Tanner图的一个纤程中的两个校验节点。在图提升中的第一操作之后,在XlA和ClA之间可存在边缘(X1A,C1A),并且在XlB和ClB之间可存在边缘(X1B,C1B)。当执行图4中的Tanner图400的一个2-提升的第二操作时,边缘置换可移除边缘(X1A,C1A)和(X1B,C1B),并在XlA和ClB之间添加边缘(X1A,C1B),在XlB和ClA之间添加边缘(X1B,C1A)。在一些实施方式中,边缘置换可被称为基本边缘置换。第二操作中的边缘置换可由几个基本边缘置换组成。所得的更大的图被称为基图的K-提升,其在图5中被作为示例更详细地说明。
[0046]在图5的示例Tanner图500中,对图4的Tanner图400执行2-提升的边缘置换可导致边缘(X1A,C1B)和边缘(X1B,C1A)。可执行其它边缘置换。可以以与对图4的Tanner图400执行的2-提升操作类似的方式对Tanner图500执行2-提升。因此,对于基图,可存在多个K-提升。使用来自基图G(O)的基于2-提升的LDPC码,可产生图序列G(I),G⑵,G(K),其中每个图G(k)可以是更小的图G(k-l)的2-提升。
[0047]可逆向执行提升基图的过程,其中Tanner图可被解构为更小的图。例如,图5的Tanner图500可被划分为图4的Tanner图400。在目前公开的主题的各种实施方式中,可将G(k) Tanner图的编码问题分解(划分)为更小的G (k_l) Tanner图的两个编码问题。在其它实施方式中,可将G(k-l)Tanner图的编码问题进一步分解为更小的G(k-2)Tanner图的两个编码问题。可视情况将编码问题分解为更小的编码问题。一旦被分解,将被发送和编码的数据就可使用通过更大的奇偶校验矩阵的分解而形成的更小的奇偶校验矩阵来进行编码。
[0048]图6是提供根据本文中呈现的至少一些实施例布置的可通过将奇偶校验方程600分解为更小的编码问题进行求解的奇偶校验方程600的示例的说明。奇偶校验方程600可用奇偶校验矩阵602、矢量604和矢量606来表示。如果矢量606是全零矢量,并且图6中的方程600被满足,则矢量604可以是对应的Tanner图(G)上的码字。如果图6中的方程600被满足,则矢量604可以是对应的Tanner图(G)上的关于矢量606的“广义”码字。
[0049]2-提升图G(k)的基图G(k-l)上的关于广义码字604的覆盖广义码字“U”可以以下面的方式表示。对于矢量U中的每个比特U(n),如果X(na)和X(nb)是与对应于比特U(n)的变量的纤程中的两个变量节点对应的两个比特,则U(n)可以是X(na)和X(nb)的和。对于2-提升图G(k)的基图G(k-l)上的关于奇偶校验矢量606的奇偶校验矢量V中的每个比特V(n),如果Z (na)和Z (nb)是与对应于比特V (η)的校验的纤程中的两个校验节点对应的两个比特,则V(n)可以是Z(na)和Z(nb)的和。因此,以上矢量U可以是Tanner图G(k-l)上的关于奇偶校验矢量V的广义码字。下面是实施方式的示例。
[0050]考虑图5中的2-提升图G(l)。图G(I)是图4中的基图G(O)的2-提升图。考虑具有以下项的广义码字X:
[0051]Xla = I,
[0052]X2a = 0,
[0053]X3a = l,
[0054]Xlb = I,
[0055]X2b = l,并且
[0056]X3b = lo
[0057]对应的奇偶校验Z具有:
[0058]Cla = I,
[0059]C2a = l,
[0060]Clb = 0,并且[0061 ] C2b = 0o
[0062]基图G(O)上的覆盖码字U是:
[0063]U( I) =X( I) =Xla+X Ib = O,
[0064]U(2)=X(2)=X2a+X2b = l,并且
[0065]U(3)=X(3)=X3a+X3b = 0o
[0066]因此,对应的奇偶校验V具有:
[0067]V(I) =Z(cl) =cla+clb = I,并且
[0068]V(2) =Z(c2) =c2a+c2b = I。
[0069]返回到图6,矢量604中的一些比特可根据将被存储在存储器中的数据而被设置。编码过程可包括:计算矢量604中的其它比特,以使得矢量604是关于全零矢量606的广义码字。在目前公开的主题的一些实施方式中,下面的技术可被用来选择系统比特(这些比特等于发送信息比特KTanner图上的变量节点的子集可以初始被选为包含系统比特。子集可被标识为基图上的所选子集中的变量节点的纤程。
[0070]在一些实施方式中,可能更高效率的是用作为特殊情况的LDPC编码问题来对广义问题进行求解。广义问题的公式化可以如下。提供2-提升图序列:G(0),G(l),-_,G(k),其中每个G(k)可以是G(k-l)的2提升,G(O)可以是原模图(protograph),G(k)是LDPC码的最终的Tanner图。如本文中所使用的,基于原模图的LDPC码可以是具有作为Tanner图的图提升的LDPC码。原模图G(O)中的变量节点的集合“S”可被选为使得S中的一个变量节点的至少一个纤程中的最终的Tanner图G(k)中的每个变量节点被设置为某一存储信息比特。例如,这些变量节点的值可以是已知的。给定最终的Tanner图G(k)上的奇偶校验矢量Z,问题可包括针对矢量X进行求解以使得矢量X是最终的Tanner图G(k)的关于奇偶校验矢量Z的广义码字。
[0071]在一些实施方式中,分治方法可被用来对以上编码问题进行求解。用于Tanner图G(k)的以上问题的分治方法可通过缩简至G(k-l)上的两个更小大小的问题来执行。更大大小图上的问题可被缩简至原模图G(O)上的问题。在一些配置中,原模图G(O)上的问题可通过使用矩阵求逆来求解。因为原模图G(O)上的问题的大小相对较小,所以矩阵求逆方法可具有相对较低的计算复杂度。
[0072]下面是图G(k)的编码问题可如何被分解为相对较小的图G(k-l)的两个问题的示例。为了描述本示例的目的,可使用某一技术。图G(k-l)上的变量节点可被称为X(I),X
(2),…,X(N),图G(k-l)上的校验节点可被称为Z(I),Z(2),…,Z(N)。图G(k)上的变量节点可被划分为两个集合:X(la),X(2a),…,X(Na)和X(Ib),X(2b) ,...,X(Nb)。变量节点可被以使得X(ria)和X(nb)是G(k-l)图中的变量节点X(n)的纤程中的两个变量节点的方式划分。类似地,图G(k)上的校验节点也可被划分为两个集合:Z(Ia),Z(2a),…,Z(Ma)和Z( lb),Z(2b),…,Z (Mb),以使得Z (ma)和Z (mb)是G (k-1)图上的校验节点Z (m)的纤程中的两个校验节点。应指出,本示例中的校验节点被指定为“Z”,而前面的示例中的校验节点被指定为。指定的不同仅仅是为了说明的目的。
[0073]继续本示例,变量节点X(Ia),X(2a),…,X(Na)和校验节点Z(Ia),Z(2a),…,Z(Na)可被认为是2-提升操作中的基图的第一副本。对于图提升的第一副本中的每个第m校验节点Z(ma)的每个第u边缘,可提供穿越(crossing)参数Y(mau)。例如,如果第u边缘在来自图提升中的两个不同副本的两个节点之间,则Y(Hiau) = I,如果第u边缘不在来自图提升中的两个不同副本的两个节点之间,则Y(mau)=0。
[0074]可提供修改奇偶校验Q(ma),其中m=l,2,.._,M。假定校验节点Z(ma)具有U个边缘。入射到第u边缘的变量节点可用Xp(mu)来表示。基图G(k-l)中的Xp(mu)的覆盖变量节点可用Xq(mu)来表示。换句话说,Xp(mu)在Xq(mu)的纤程中。(^(!!^可被提供为以!]?) =Z(ma)+Xq(1111)¥(1^1)+."+父9(11111)¥(11^11)+-+父9(1111])¥(1^1])。引理2:矢量父(1),父(2),.",父(幻可以是2-提升过程中的基图G(k-l)的第一副本上的关于奇偶校验矢量Z(I),Z(2),...,Z(M)的广义码字,其中X(I) =X(Ia),X(2)=X(2a),...,X(N) =X(Na),Z(1) =Q(Ia),Z(2) = Q(2a),...,Z(M) =Q(Ma)。
[0075]如果穿越参数Y(mau)是I,则对应的边缘可親合到其它图副本中的一个变量节点Xp(mu)。可使用基本边缘置换,以使得边缘可改为親合到变量节点Xr(mu),其中Xp(mu)和Xr(mu)在同一纤程中。如果覆盖变量父9(!1111)是1,贝1饰(1]111)和乂1'(1]111)可具有不同的值。因此,边缘的对应校验应在基本边缘置换之后改变值一次。因此,可使用基本边缘置换序列,以使得在所得的Tanner图中,不存在耦合基图的两个副本的边缘。在所有这些基本边缘置换之后,图的第一副本可以与基图相同。在一些配置中,边缘置换期间的校验的值可被追溯。此外,在一些示例中,如果覆盖变量节点值是I,则纤程中的两个变量节点可具有不同的值。在没有边缘置换的图中,奇偶校验可改变其值一次。
[0076]图7A是根据本文中呈现的至少一些实施例布置的示例编码过程700的流程图。本文中所述的任何过程的操作不一定按任何特定次序呈现,并且按替代次序(一个或多个)执行这些操作中的一些或全部是可能的,并且被构想。为了易于描述和说明,已经按展示的次序呈现了操作。在不脱离本公开的范围的情况下,操作可被添加、组合、修改、补充、省略、和/或同时地、按不同次序地执行、等等。
[0077]所说明的过程可在任何时间结束,无需整个地被执行。这些过程的一些或全部操作和/或基本等同的操作在一个实施例中可通过包括在如本文中所述的计算机存储介质(包括有形非暂时性计算机可读存储介质)上的计算机可读指令的执行(由一个或多个处理器)来执行。如描述和权利要求中使用的术语“计算机可读指令”及其变体在本文中被扩展地用于包括例程、应用、应用模块、程序模块、程序、部件、数据结构、算法等。计算机可读指令可在各种系统配置上实施,包括单处理器或多处理器系统、迷你计算机、大型计算机、个人计算机、手持计算装置、基于微处理器的、可编程消费者电子产品、它们的组合等。为了说明和描述本公开的至少一个实施例的目的,过程700被描述为至少部分地由分治编码器102和/或某一其它的分治单元或本文中所述的其它部件(一个或多个)(其继而可与处理器(诸如图14的处理器1410)联合操作)执行。该实施例是说明性的,并且过程700或本文中所示的其它过程可按其它方式执行。
[0078]过程700可从方框702(“接收基于2~n_提升Tanner图的LDPC码”)开始,其中基于2~η-提升Tanner图的LDPC码被接收。Tanner图的提升(“η”)可改变,目前公开的主题不限于任何特定提升。在一些实施方式中,提升可提高编码和解码过程的复杂度。在一些实施方式中,可通过以下步骤来从2~n-lTanner图构造2~η_提升Tanner图,即,将2~n_l基本Tanner图的第一副本合并到2~n-提升Tanner图中,将2~n_l基本Tanner图的第二副本合并到2~n_提升Tanner图中,并修改2~n_l基本Tanner图的第一副本或第二副本中的至少一个边缘的多个端点。一个或多个边缘可具有在2~n-l基本Tanner图的第一副本中的第一端点和在2~n-l基本Tanner图的第二副本中的第二端点。
[0079]在一些实施方式中,2~n_提升Tanner图的2~n_l基本Tanner图上的至少一个奇偶校验比特可被设置为2~n-l基本Tanner图的第一副本上的一个校验节点处的一个奇偶校验比特和2~n-l基本Tanner图的第二副本上的一个校验节点处的一个奇偶校验比特的二进制和。
[0080]过程700可继续进行到方框704(“接收包括2~n_提升Tanner图信息比特的2~n_提升Tanner图信息矢量”),其中包括2~n_提升Tanner图信息比特的2~n_提升Tanner图信息矢量被接收。在一些实施方式中,2、-提升Tanner图信息矢量可以是诸如图2的矢量204的一个子矢量的矢量。在一些实施方式中,使用接收的信息矢量的信息比特计算包括2~n-提升Tanner图的2~n_l基本Tanner图上的2~n_lTanner图信息比特的2~n_lTanner图信息矢量包括:将2~n-提升Tanner图的2~n-l基本Tanner图上的至少一个信息比特设置为2~n-l基本Tanner图的第一副本上的一个变量节点处的一个信息比特和2~n-l基本Tanner图的第二副本上的一个变量节点处的一个信息比特的二进制和。
[0081]过程700可继续进行到方框706(“接收包括2~n-提升Tanner图奇偶校验比特的2~η-提升Tanner图奇偶校验矢量”),其中包括2~n-提升Tanner图奇偶校验比特的2~n-提升Tanner图奇偶校验矢量被接收。在一些实施方式中,2~n_提升Tanner图奇偶校验矢量可以是诸如图6的矢量606的矢量。在一些实施方式中,2~n-提升Tanner图奇偶校验矢量可以是全零矢量。
[0082]过程700可继续进行到方框708( “通过计算2~n-lTanner图信息矢量来执行2~n-提升Tanner图的分解过程”),其中可通过使用2~n_提升Tanner图信息矢量的2~n_提升Tanner图信息比特计算包括2~n-提升Tanner图的2~n-lTanner图上的2~n-lTanner图信息比特的2~n-lTanner图信息矢量来执行分解过程。
[0083]过程700可继续进行到方框710( “计算2~n_lTanner图奇偶校验矢量”),其中通过使用2 ~n-提升Tanner图奇偶校验矢量的2~n-提升Tanner图奇偶校验比特计算包括2~n-提升Tanner图的2~n_lTanner图上的2~n_lTanner图奇偶校验比特的2~n_lTanner图奇偶校验矢量来继续进行分解过程。
[0084]过程700可继续进行到方框712( “计算2~n-lTanner图码字”),其中通过使用2~n_ITanner图信息矢量和2~n-lTanner图奇偶校验矢量计算包括2~n-提升Tanner图的2~n-1Tanner图上的2~n-lTanner图码字比特的2~n-lTanner图码字来继续进行分解过程。
[0085]过程700可继续进行到方框714( “计算2~n_提升Tanner图码字”),其中使用2~n_提升图边缘构造、2~n-lTanner图码字、2~n_提升Tanner图信息矢量和2~n_提升Tanner图奇偶校验矢量来计算包括2 ~n-提升Tanner图上的2 ~n-提升Tanner图码字比特的2 ~n-提升Tanner图码字。
[0086]过程700还可包括使用2 ~n_提升Tanner图边缘配置、2 ~n_提升Tanner图的2 ~n_l基本Tanner图上的计算的码字以及接收的2~n-提升Tanner图奇偶校验矢量来计算包括2~n-l基本Tanner图的第一副本上的奇偶校验比特的奇偶校验矢量。
[0087]过程700可另外包括使用2~n_l基本Tanner图的第一副本上的计算的奇偶校验矢量和2~n-l基本Tanner图的第一副本上的变量节点处的接收的信息比特来计算包括2~n-l基本Tanner图的第一副本上的码字比特的码字矢量。
[0088]过程700还可包括使用2~n_提升Tanner图的2 ~n_l基本Tanner图上的计算的码字矢量和2 ~n-l基本Tanner图的第一副本上的码字矢量来计算包括用于2~n-l基本Tanner图的第二副本的码字比特的码字矢量。
[0089]过程700还可包括使用2~n-l基本Tanner图的第一副本上的码字矢量和2~n-l基本Tanner图的第二副本上的码字矢量来计算2~n-提升Tanner图上的码字。
[0090]在一些实施方式中,如果变量节点仅接收到一个信息比特,则码字比特可等于变量节点处的接收的信息比特。在进一步的实施方式中,2、-1基本Tanner图的第一副本上的计算的码字和2~n-l基本Tanner图的第一副本上的接收的奇偶校验比特可满足2 ~n-l基本Tanner图的第一副本上的所有奇偶校验约束。在进一步的实施方式中,2~n_提升Tanner图信息矢量可包括用于2~n-提升Tanner图中的每个变量节点的最多一个信息比特。2~n-提升Tanner图奇偶校验矢量可包括用于2~n-提升Tanner图中的每个校验节点的一个奇偶校验比特。在一些配置中,计算用于2~n-提升Tanner图中的每个变量节点的一个码字比特,如果每个变量节点接收到正好一个信息比特,则对该变量节点计算的码字比特可以等于接收的信息比特。
[0091]图7B是根据本文中呈现的至少一些实施例布置的另一示例编码过程720的流程图。过程720可从方框722( “接收信息矢量和奇偶校验矢量”)开始,其中一个广义信息矢量和一个广义奇偶校验矢量可被接收。因为广义码字的一些比特可完全由将被存储的信息(例如,是系统比特或者对应于系统比特的覆盖变量节点)确定,所以它们的值可以是已知的。这些已知值的矢量可被称为广义信息矢量。
[0092]过程720可继续进行到方框724(“计算覆盖信息矢量和覆盖奇偶校验”),其中覆盖信息矢量和覆盖奇偶校验矢量可被计算。覆盖信息矢量可以是广义码字中的比特的矢量,以使得这些比特的值可由发送消息确定。
[0093]过程720可继续进行到方框726(“计算覆盖广义码字”),其中可从基图上的覆盖信息矢量和覆盖奇偶校验矢量计算覆盖广义码字。在一些示例中,可重复过程720以进一步将编码问题解构为进一步更小的编码问题。在一些示例中,可对具有足够小的大小的基图执行方框726。
[0094]过程720可继续进行到方框728(“计算穿越参数和修改奇偶校验矢量”),其中可根据覆盖码字和穿越参数Y(ma)来计算修改奇偶校验矢量。
[0095]过程720可继续进行到方框730(“从图提升的第一副本的信息矢量和在方框728中计算的修改奇偶校验矢量计算图提升的第一副本的广义码字”),其中可从图提升的第一副本的信息矢量和修改奇偶校验矢量计算图提升的第一副本的广义码字。方框730可递归地调用过程720,然而是用不同的更小大小的问题实例。例如在基图具有足够小的大小的情况下,方框730还可使用蛮力方法来计算图提升的第一副本的广义码字。
[0096]过程720可继续进行到方框732(“产生广义码字”),其中可基于在方框726中计算的覆盖广义码字和在方框730中计算的图提升的第一副本的广义码字来计算广义码字。操作可继续进行到方框734( “返回广义码字”),其中广义码字可被返回。该过程其后可结束。
[0097 ] 下面是使用过程7 20的示例。在该示例中,LDPC码用图5中的Tanner图来表示。该码可以是基于2-提升的码,其中基图在图4中被示出。图5中的Tanner图具有六个变量节点(X1A、X2A、X3A、X1B、X2B和X3B)以及四个校验节点(C1A、C2A、C1B和C2B)。对应的奇偶校验矩阵可具有4行6列。每个码字可具有6个比特的长度。在本示例中,将被存储的信息可以是每一 6比特块2个比特。
[0098]节点X2的纤程中的变量节点可被选为信息比特。因此,变量X2A和X2B可以等于消息比特。图5的Tanner图中的四个其它的变量节点的值可由X2A、X2B的值和四个奇偶校验约束确定。在该示例中,在方框722,可接收两个信息比特[01]。例如,X2A = 0,并且X2B= I。还可接收广义奇偶校验矢量
[0000]。例如,C1A = 0,C2A = 0,C1B = 0,并且C2B = 0。
[0099]在方框724,可计算覆盖信息矢量。该示例中的覆盖信息矢量可具有一个维度。该矢量可以是[乂2] = [乂2六+乂28] = 1。覆盖奇偶校验矢量可以是[(:1,02],其中(:1 = (^+(:18 =O,并且C2 = C2A+C2B = O。因此,覆盖奇偶校验矢量可以是[00 ]。
[0100]在方框726,可计算覆盖广义码字。指出,计算可在图4中的小图上,其中C1=0,C2=0,并且X2 = l。因为该图的大小小,所以可通过使用蛮力方法来对奇偶校验方程进行求解。覆盖广义码字可以是[111]。例如,乂1 = 1,乂2 = 1,并且乂3 = 1。
[0101]在方框728中,可在图5中的图上计算修改奇偶校验矢量。在该示例中,可考虑图提升中的第一副本中的变量节点和校验节点。因此,变量节点XIA、X2A、X3A和校验节点CIA和C2A可以是将被考虑的节点。修改奇偶校验矢量可以是[Q(la)Q(2a)]。可基于C1A、覆盖广义码字比特Xl和X2以及穿越参数Y(IAl)和Y(1A2)来计算Q(Ia)。从前面的块,Xl = I,X2 = I,并且C1A = 0。根据示例的穿越参数可以是Y(IAl) = I,因为第一边缘可耦合到图提升中的第二副本中的变量节点,并且Y(1A2)=0,因为第二边缘可耦合到图提升中的第一副本中的变量节点。因此,Q(IA) = I。类似地,Q(2A) =O0
[0102]在方框730中,可在基图的第一副本上计算广义码字,其中广义信息比特可以等于图提升中的第一副本中的广义信息比特。在该示例中,奇偶校验矢量可以等于在方框728中计算的修改奇偶校验矢量。根据示例,信息比特X2 = O,修改奇偶校验矢量可以是[1 ],例如,C1 = 1,C2 = 0。使用蛮力方法,可确定X1 = 1,X2 = 0,X3 = 0。映射回到图提升中的第一副本,可确定XlA=I,X2A = 0,X3A = 0。
[0103]在方框732中,可以知道,父1 = 0,父2 = 1,父3 = 1,父1厶=1,父2厶=0,并且父3八=0。因为)(1=)(14+)(18,乂2 = 乂24+乂28,乂3 = 乂34+乂38,所以我们具有乂18 = 0,乂28=1438=1。广义码字已经被计算。在方框734中,可返回广义码字。
[0104]图8是说明根据本文中呈现的至少一些实施例布置的示例编码器800的框图。编码器800可包括分治单元802、覆盖码字处理器单元804和修改码字处理器单元806,这些全都可相互操作地耦合。如果消息810被编码器800接收,则消息810可被传递到分治单元802。
[0105]分治单元802可产生更小大小的问题实例810,并将实例810作为输入传递到覆盖码字处理器单元804。覆盖码字处理器单元804可接收更小大小的问题实例810,并产生解输出结果812。覆盖码字处理器单元804可将解输出结果812返回到分治单元802。
[0106]基于实例810和输出结果812,分治单元802可产生更小大小的问题实例814。分治单元804可将问题实例814作为输入传递到修改码字处理器单元806。修改码字处理器单元806可接收问题实例814,并产生作为输出结果816的解。修改码字处理器单元806可将输出结果816返回到分治单元802。分治单元802然后可基于接收的输出结果812和输出结果816来计算输出码字818。输出码字818可以是将被计算的LDPC码字。
[0107]LDPC解码的一些硬件实施方式的一个考虑是如何路由消息。路由拥塞和存储器冲突可能发生。目前公开的主题的各方面可提供一种用于用硬件实施基于原模图的LDPC码解码的方法,其中某些消息交换路径可被分组和映射到块存储器元件中。目前公开的主题的一些实施方式因此可解决路由拥塞和存储器冲突考虑。
[0108]图5中的Tanner图可以是Tanner图的相对简单的示例。在一些计算系统中的应用中,Tanner图可具有几千个变量节点和校验节点。将所有消息从变量节点路由到校验节点并且从校验节点路由到变量节点可能更复杂。在一些情况下,可能存在路由拥塞和存储器冲突。在一些示例中,如果消息传递全都是从变量节点到校验节点,或者全都是从校验节点到变量节点,则存储器冲突可被解决,或者存储器冲突的概率降低。当变量节点单元需要用于消息传递的存储器块时,校验节点单元可以不传递任何消息,反之亦然。术语“变量节点单元”在本文中可被用来指代可操作为产生变量节点到校验节点消息的一个或多个电路、代码或装置。术语“校验节点单元”在本文中可被用来指代可操作为产生校验节点到变量节点消息的一个或多个电路、代码或装置。
[0109]变量节点单元中的一个或多个可对应于原模图中的变量节点,或者原模图中的变量节点的纤程中的变量节点。纤程中的所有这些变量节点处的消息计算中的一些可由变量节点单元执行。在一些示例中,校验节点单元可对应于原模图中的一个校验节点,或者原模图中的校验节点的纤程中的校验节点。纤程中的这些校验节点处的消息计算可由校验节点单元执行。存储器块可对应于原模图中的一个边缘。存储器块可与和原模图中的边缘的一个末端对应的变量节点单元具有一个耦合(例如,总线)。存储器块可与和原模图中的边缘的另一个末端对应的校验节点单元具有另一耦合(例如,总线)。也就是说,每个存储器块可与一个变量节点单元和一个校验节点单元具有一个親合。变量节点单元和校验节点单元可使用存储器块来交换消息。
[0110]在一些实施方式中,存储器块可包括双端口存储器块。存储器块还可用一些复用器逻辑电路包裹,以使得变量节点单元和校验节点单元都可访问存储器块(按不同的时间间隔)。迭代解码中的消息可使用变量节点单元和校验节点单元之间的存储器块而被路由到目的地。可能不存在(或者以其它方式减小)存储器冲突,因为在每个时间间隔,消息传递可以全都是从变量节点到校验节点,或者全都是从校验节点到变量节点。换句话说,当变量节点单元需要用于消息传递的存储器块时,校验节点单元无需传递任何消息,反之亦然。
[0111]图9是根据本文中呈现的至少一些实施例布置的执行LDPC解码方法的硬件实施方式的示例的说明。图9中所示的示例中的LDPC码可具有图1O中所示的示例Tanner图表示。LDPC码可以是基于原模图的LDPC码,其中原模图在图4中被说明。
[0112]图9的硬件实施方式可包括如下电路,这些电路包括两个校验节点单元111、113、三个变量节点单元131、132、133以及四个存储器块121、122、123、124,这些相互操作地耦合。校验节点单元111可在图10的校验节点CIA、ClB和ClC处执行消息计算。校验节点单元113可在图1O的校验节点C2A、C2B和C2C处执行消息计算。变量节点单元131可在图1O的变量节点X1A、X1B和XlC处执行消息计算。变量节点单元132可在图10的变量节点X2A、X2B和X2C处执行消息计算。变量节点单元133可在图1O的变量节点X3A、X3B和X3C处执行消息计算。
[0113]消息可通过使用存储器块121、122、123和124而在变量节点单元和校验节点单元之间被传递。这些存储器块121、122、123和124可包括双端口存储器。例如,在将消息从变量节点单元131、132、133传递到校验节点单元111、113的操作中,变量节点单元131、132、133可将这些消息写入到存储器块121、122、123和124中。校验节点单元111、113然后可从存储器块121、122、123和124读取这些消息。
[0114]图11是根据本文中呈现的至少一些实施例布置的校验节点单元1100的说明。在图11中,输入/输出(I/O)总线1102可将校验节点单元1100耦合到根据本文中呈现的至少一些实施例布置的存储器块中的一个。校验节点单元1100可对校验节点1104的一个纤程执行消息计算任务。选择器1106可被用来在特定时间间隔期间选择下一个待处理校验操作。在每个时间间隔期间,耦合到选择器1106的处理器1108可首先检查校验节点1104的纤程中的一个校验节点及其边缘耦合。处理器1108然后可使用I/O总线1102从存储器块(诸如图9的存储器块121、122、123和124)读取消息。处理器1108可计算用于校验操作的输出消息,并将输出消息发送到特定存储器块,诸如图9的存储器块121、122、123和124中的一个。
[0115]图12是根据本文中呈现的至少一些实施例布置的变量节点单元1200的示例。I/O总线1202可将变量节点单元1200耦合到存储器块,诸如图9的存储器块121、122、123和124。变量节点单元1200可对变量节点1204的一个纤程执行消息计算任务。选择器1206可被用来选择时间间隔期间的下一个待处理变量节点。在时间间隔期间,耦合到选择器1206的处理器1208首先可检查一个变量节点及其边缘耦合。处理器1208然后可使用I/O总线1202从存储器块读取消息。处理器1208可计算用于变量节点的输出消息,并将这些消息发送到存储器块,诸如图9的存储器块121、122、123和124中的一个。
[0116]图13是根据本文中呈现的至少一些实施例布置的存储器块1300的示例的说明。存储器块1300可包括存储器1302、复用器1304、到变量节点1306的总线以及到校验节点1308的总线,这些相互操作地耦合。在一些实施方式中,在消息传递算法的每个操作中,消息可以要么从所有变量节点传递到所有校验节点,或者从所有校验节点传递到所有变量节点。如果消息将被从变量节点传递到校验节点,则复用器1304可首先被设置为使得变量节点单元(诸如图12的变量节点单元1200)可使用总线1306来写入某些消息。复用器1304然后可被设置为使得校验节点单元可使用总线1308来读取传递的消息。类似地,如果消息需要被从校验节点传递到变量节点,则复用器1304可首先被设置为使得校验节点单元可使用总线1308来写入某些消息。复用器1304然后可被设置为使得变量节点单元可使用总线1306来读取传递的消息。
[0117]图14是说明被布置为实施目前公开的主题的各方面(包括关于根据本文中所述的至少一些实施例布置的用于基于2-提升的LDPC码的LDPC编码器的实施方式)的示例计算装置1400的框图。在非常基本的配置中,计算装置1400包括一个或多个处理器1410和系统存储器1420。存储器总线1430可被用于处理器1410和系统存储器1420之间的通信。
[0118]取决于期望的配置,处理器1410可以是任何类型,包括但不限于微处理器(μΡ)、微控制器(ye)、数字信号处理器(DSP)或它们的任何组合。处理器1410(其可被用来实施处理器1108和/或上述其它处理器)可包括一个或多个等级的高速缓存,诸如等级一的高速缓存1411和等级二的高速缓存1412、处理器核1413和寄存器1414。示例处理器核1413可包括算术逻辑单元(“ALU” )、浮点单元(“FPU” )、数字信号处理核(“DSP核”)或它们的任何组合。存储器控制器316(其可被用来实施存储器控制器104)也可与处理器1410—起被使用,或在一些实施方式中存储器控制器316可以是处理器1410的内部部分。
[0119]取决于期望的配置,系统存储器1420(其可被用来实施存储器106)可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如R0M、闪存等)或它们的任何组合。系统存储器1420通常包括操作系统1421、一个或多个应用1422以及程序数据1424。应用1422可包括允许处理器1410使用存储器控制器316访问系统存储器1420的指令。系统存储器1420和/或计算装置1400的其它元件(一个或多个)可包括可被用来实施图1的分治编码器102和解码器114、图8的编码器800以及图9-13中描述的变量节点单元和校验节点单元的部件。程序数据1424包括可与实施或操作分治编码器102和/或以上前述的其它编码/解码部件结合使用的数据。该所述的基本配置在图14中通过虚线1401内的那些部件而被示出。
[0120]计算装置1400可具有附加特征或功能以及用于促进基本配置1401和任何所需的装置和接口之间的通信的附加接口。例如,总线/接口控制器1440可被用来促进基本配置1401与一个或多个数据存储装置1450之间经由存储接口总线1441的通信。数据存储装置1450可以是可移除存储装置1451、不可移除存储装置1452或它们的组合。可移除存储装置和不可移除存储装置的示例举几个例子来说包括诸如软盘驱动器和硬盘驱动器(“HDD”)的磁盘装置、诸如压缩盘(“CD”)驱动器或数字通用盘(“DVD”)驱动器的光盘驱动器、固态驱动器(“SSD”)和磁带驱动器。示例计算机存储介质可包括在信息存储的任何方法或技术中被实施的易失性和非易失性、可移除和不可移除的介质,诸如计算机可读指令、数据结构、程序模块或其它数据。
[0121]系统存储器1420、可移除存储装置1451和不可移除存储装置1452全是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、R0M、EEPR0M、闪存或其它存储技术、CD-R0M、数字通用盘(“DVD”)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储器装置或可用来存储期望的信息以及可被计算装置1400访问的任何其它介质。任何这样的计算机存储介质可以是计算装置1400的一部分。
[0122]计算装置1400也可包括用于促进从各种接口装置(例如,输出接口、外围接口和通信接口)到基本配置1401的经由总线/接口控制器1440的通信的接口总线1442。示例输出装置1460包括图形处理单元1461和音频处理单元1462,其可被配置为与诸如显示器或扬声器的各种外部装置经由一个或多个A/V端口 1463进行通信。示例外围接口 1470包括串行接口控制器1471或并行接口控制器1472,其可被配置为与诸如输入装置(例如,键盘、鼠标、笔、声音输入装置、触摸输入装置等)或其它外围装置(例如,打印机、扫描仪等)的外部装置经由一个或多个I/O端口 1473进行通信。
[0123]示例通信装置1480包括网络控制器1481,其可被布置为促进与一个或多个其它计算装置1490经由一个或多个通信端口 1482在网络通信上的通信。通信连接是通信介质的一个示例。通信介质通常可以被体现为计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据,并且包括任何信息递送介质。“调制数据信号”可以是具有其特性集合中的一个或多个或者被更改为对信号中的信息进行编码的信号。举例来说,而非限制,通信介质可包括诸如有线网络或有线直接连接的有线介质、以及诸如声学、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文中所使用的术语计算机可读介质可包括存储介质和通信介质两者。存储介质不包含通信介质。
[0124]计算装置1400可被实施作为小型便携式(或移动)电子装置的一部分,所述电子装置诸如蜂窝电话、个人数据助理(“PDA”)、个人媒体播放器装置、无线网表装置、个人耳机装置、专用装置或包括以上功能中的任何功能的混合装置。计算装置1400也可被实施作为包括笔记本计算机和非笔记本计算机配置两者的个人计算机。
[0125]在本申请中所述的特定实施例(意图使其作为各方面的例证)方面,本公开不应当是受限的。在不脱离其精神和范围的情况下可以做出许多修改和改变。本公开范围内的功能等价的方法和设备(除本文中所列举的那些之外)是可能的。意图使这样的修改和改变落在所附权利要求的范围内。本公开仅由所附权利要求的各项以及这样的权利要求所赋予的等同物的全部范围一起来限定。应当理解,本公开并不限于特定的方法、化合物或成分(当然其可以变化)。还应当理解,本文中所使用的术语仅仅是为了描述特定实施例的目的,且并不意图是限制性的。
[0126]其它存储器访问技术和技巧可被使用,并且仍被认为在本公开的范围内。另外,为了清晰的目的,图中的电路的一个或多个部件可以不被例示说明,但是可被包括。所示的电路不限于所示的部件,并且可包括更多的或更少的部件。
[0127]关于基本上任何复数和/或单数术语在本文中的使用,本领域技术人员可以按照其适用于的情景和/或应用而从复数转化到单数和/或从单数转化到复数。为了清楚起见,在本文中可能明确地阐述了各种单数/复数变换。
[0128]本领域技术人员将理解的是,总之,本文中且尤其是所附权利要求(例如所附权利要求的主体)中所使用的术语通常意图是“开放的”术语(例如术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限于”,等等)。本领域技术人员将进一步理解的是,如果所引入的权利要求叙述的特定数字是有意的,这样的意图将被明确叙述在权利要求中,并且在没有这样的叙述的情况下不存在这样的意图。例如,作为理解的辅助,下面所附的权利要求可以包含引入性短语“至少一个”和“一个或多个”的使用以引入权利要求叙述。
[0129]然而,这样的短语的使用不应被解释为暗示着通过不定冠词“一”或“一个”引入权利要求叙述将包含这样引入的权利要求叙述的任何特定权利要求限定到包含只有一个这样的叙述的实施例,即使当该同一权利要求包括引入性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词时也是这样(例如,“一”和/或“一个”应当被解释为意味着“至少一个”或“一个或多个”);对于用来引入权利要求叙述的定冠词的使用来说情况是同样的。此外,即使明确记载了所引入的权利要求叙述的特定数字,本领域技术人员也将认识至IJ,这样的记载应当被解释为意味着至少所记载的数字(例如,在没有其它修饰的情况下,“两个叙述”的直率叙述意味着至少两个叙述或者两个或更多叙述)。
[0130]此外,在其中使用类似于“A、B和C等中的至少一个”的惯例的那些实例中,通常这样的构造意图是本领域技术人员将理解该惯例的意义(例如,“具有A、B和C等中的至少一个的系统”将包括但不限于单独具有A、单独具有B、单独具有C、具有A和B—起、具有A和C一起、具有B和C一起以及/或者具有A、B和C一起等的系统)。本领域技术人员将进一步理解的是,实际上任何转折性词语和/或提供两个或更多替换术语的短语无论是在说明书、权利要求中还是在附图中都应当被理解为构想包括这些术语中的一个、这些术语中的任一个或这些术语两个的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
[0131]此外,在就马库什群组描述公开的特征或方面的情况下,本领域技术人员将认识至IJ,由此也就马库什群组的任何单个成员或成员的子群组描述了公开。此外,术语“第一”、“第二”、“第三”、“第四”等的使用是区分部件或过程中的步骤的重复的实例,而不施加串联的或时间的限制,除非具体陈述要求这样的串联的或时间的次序。
[0132]如本领域技术人员将理解的,出于任何和所有目的,诸如在提供书面描述方面,本文中所公开的所有范围也涵盖任何和所有可能的子范围以及其子范围的组合。任何所列出的范围可被容易地理解为充分描述并使能被分解成至少相等的两半、三份、四份、五份、十份等的该同一范围。作为一非限制示例,本文中所讨论的每个范围都可被容易地分解成下三分之一、中间三分之一和上三分之一,等等。如本领域技术人员也将理解的,诸如“高达”、“至少”、“大于”、“少于”等的所有语言都包括所述的该数字并且指代随后可被分解成如上所讨论的子范围的范围。最后,如本领域技术人员将理解的,范围包括每个单个成员。因此,例如,具有1-3个单元的群组指代具有I个、2个或3个单元的群组。相似地,具有1-5个单元的群组指代具有I个、2个、3个、4个或5个单元的群组,以此类推。
[0133]虽然本文中已经公开了各个方面和实施例,但是其它方面和实施例对于本领域技术人员将是显而易见的。本文中所公开的各个方面和实施例是出于例证的目的,而非意图限制,其中真实范围和精神由权利要求来指明。
【主权项】
1.一种对消息进行编码的方法,所述方法包括: 接收基于2~n-提升Tanner图的LDPC码; 接收包括2 ~n-提升Tanner图信息比特的2 ~n-提升Tanner图信息矢量; 接收包括2~n-提升Tanner图奇偶校验比特的2~n-提升Tanner图奇偶校验矢量; 通过以下操作来执行所述2' η-提升Tanner图的分解过程: 使用2~n-提升Tanner图信息矢量的2~n-提升Tanner图信息比特来计算包括2~n-提升Tanner图的2~n_l Tanner图上的2~n_l Tanner图信息比特的2~n_l Tanner图信息矢量;使用2~n-提升Tanner图奇偶校验矢量的2~n-提升Tanner图奇偶校验比特来计算包括2~n_提升Tanner图的2~n_l Tanner图上的2~n_l Tanner图奇偶校验比特的2~n_l Tanner图奇偶校验矢量;以及 使用2~n-l Tanner图信息矢量和2~n-l Tanner图奇偶校验矢量来计算包括2~n_提升Tanner图的2~n_l Tanner图上的2~n_l Tanner图码字比特的2~n_l Tanner图码字;以及使用2~n_提升图边缘构造、2~n_l Tanner图码字、2~n_提升Tanner图信息矢量和2~n_提升Tanner图奇偶校验矢量来计算包括2~n-提升Tanner图上的2~n-提升Tanner图码字比特的2 ~n-提升Tanner图码字。2.根据权利要求1所述的方法,其中所述2~n-提升Tanner图通过以下操作从2~n-l提升Tanner图构建: 将2~n-l提升Tanner图的第一副本合并到2~n-提升Tanner图中; 将2~n-l提升Tanner图的第二副本合并到2~n-提升Tanner图中;以及修改2 ~η-1提升Tanner图的第一副本或第二副本中的至少一个边缘的多个端点,其中一个或多个边缘具有2~n-l提升Tanner图的第一副本中的第一端点和2~n-l提升Tanner图的第二副本中的第二端点。3.根据权利要求2所述的方法,还包括:将2~n-提升Tanner图的2~n-l提升Tanner图上的至少一个奇偶校验比特设置为2~n-l提升Tanner图的第一副本上的一个校验节点处的一个奇偶校验比特和2~n-l提升Tanner图的第二副本上的一个校验节点处的一个奇偶校验比特的二进制和。4.根据权利要求2所述的方法,还包括: 使用2~n_提升Tanner图边缘构造、2~n_l Tanner图码字和接收的2~n_提升Tanner图奇偶校验矢量来计算包括2 ~n-l提升Tanner图的第一副本上的奇偶校验比特的奇偶校验矢量; 使用2~n-l提升Tanner图的第一副本上的计算的奇偶校验矢量和2~n-lTanner图的第一副本上的变量节点处的接收的信息比特来计算包括2~n-l提升Tanner图的第一副本上的码字比特的码字矢量; 使用2~n-提升Tanner图的2~n-l Tanner图上的计算的码字矢量和2~n_l提升Tanner图的第一副本上的码字矢量来计算包括用于2~n-l提升Tanner图的第二副本的码字比特的码字矢量;以及 使用2~n-l提升Tanner图的第一副本上的码字矢量和2~n-l提升Tanner图的第二副本上的码字矢量来计算2~n-提升Tanner图上的码字。5.根据权利要求4所述的方法,其中如果变量节点仅接收一个信息比特,则所述码字比特等于变量节点处的接收的信息比特。6.根据权利要求4所述的方法,其中所述2~n-lTanner图码字和2~n-提升Tanner图信息比特满足2~n-l提升Tanner图的第一副本上的所有奇偶校验约束。7.根据权利要求1所述的方法,其中所述2~n-提升Tanner图信息矢量包括用于2~n-提升Tanner图中的每个变量节点的最多一个信息比特。8.根据权利要求1所述的方法,其中所述2~n-提升Tanner图奇偶校验矢量包括用于2~η-提升Tanner图中的每个校验节点的一个奇偶校验比特。9.根据权利要求1所述的方法,还包括:计算用于2~n-提升Tanner图中的每个变量节点的一个码字比特,并且其中如果变量节点接收正好一个信息比特,则计算的用于每个变量节点的码字比特等于接收的信息比特。10.根据权利要求9所述的方法,其中如果正好一个信息比特在所述变量节点处被计算,则用于所述2~n-l提升Tanner图中每个变量节点的所述一个码字比特和用于每个变量节点的所述码字比特等于所述变量节点处的2 ~n-1 Tanner图信息比特。11.根据权利要求1所述的方法,其中2~n-提升Tanner图上的2~n-提升Tanner图码字和2~n-提升Tanner图奇偶校验比特满足2~n-提升Tanner图上的奇偶校验约束。12.根据权利要求1所述的方法,其中2~n-l提升Tanner图上的码字比特和2~n-提升Tanner图的2~n-l Tanner图上的计算的奇偶校验比特满足2~n_l Tanner图上的奇偶校验约束。13.根据权利要求1所述的方法,其中使用接收的信息矢量的信息比特计算包括2~n-提升Tanner图的2~n-l提升Tanner图上的信息比特的2~n-lTanner图信息矢量包括:将2~n-提升Tanner图的2~n-l提升Tanner图上的至少一个信息比特设置为2 ~n-l提升Tanner图的第一副本上的一个变量节点处的一个信息比特和2~n-l提升Tanner图的第二副本上的一个变量节点处的一个信息比特的二进制和。14.一种包括存储在其上的计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令响应于被计算机执行来使所述计算机执行权利要求1的方法。15.根据权利要求13所述的计算机可读存储介质,还包括存储在其上的计算机可执行指令,所述计算机可执行指令响应于被计算机执行使所述计算机执行所述方法,所述方法还包括: 按第一时间间隔将消息从变量节点单元传递到校验节点单元;以及 按第二时间间隔将所述消息从所述校验节点单元传递到所述变量节点单元以降低存储器冲突的概率。16.一种存储数据的方法,包括: 接收将被编码的数据; 接收基于Tanner图G(k)的低密度奇偶校验(“LDPC”)码; 对所述LDPC码进行若干次划分以划分成更小的LDPC码图G(k-n)上的数据编码;以及 根据所述更小的LDPC码图G(k-n)上的数据编码对所述数据进行编码以产生编码消息。17.根据权利要求16所述的方法,其中对所述LDPC码进行若干次划分以划分成更小的LDPC码图上的数据编码包括:对所述LDPC码进行划分,直到表示所述LDPC码的Tanner图的大小根据编码速度和复杂度的编码合适为止。18.根据权利要求16所述的方法,还包括:将所述编码消息存储在多层单元存储器中。19.根据权利要求16所述的方法,其中对所述LDPC码进行若干次划分以划分成更小的LDPC码图上的数据编码包括:基于所述Tanner图G(k)对所述LDPC码进行划分,直到产生原模图G(O)为止。20.根据权利要求16所述的方法,其中所述基于Tanner图G(k)的低密度奇偶校验码包括基于2-提升的LDPC码。21.根据权利要求16所述的方法,还包括:对所述编码消息进行解码。22.—种编码器,包括: 覆盖码字处理器单元; 修改码字处理器单元;以及 分治单元,所述分治单元耦合到所述覆盖码字处理器单元和所述修改码字处理器单元,所述分治单元用于: 产生第一更小大小问题实例; 从所述覆盖码字处理器单元接收第一解输出结果; 通过使用接收的第一解输出结果来产生第二更小大小问题实例; 从所述修改码字处理器单元接收第二解输出结果;以及 基于接收的第一解输出结果和接收的第二解输出结果来产生广义码字; 其中所述覆盖码字处理器单元用于: 从所述分治单元接收所述产生的第一更小大小问题实例; 基于所述产生的第一更小大小问题实例来产生第一解输出结果;以及 将产生的第一解输出结果发送到所述分治单元;以及 其中所述修改码字处理器单元用于: 从所述分治单元接收产生的所述第二更小大小问题实例;以及 基于接收的所述第二更小大小问题实例来产生第二解输出结果。23.根据权利要求22所述的编码器,还包括:存储单元,所述存储单元耦合到所述修改码字处理器单元,用于存储产生的第二解输出结果。24.根据权利要求22所述的编码器,其中所述分治单元用于将2-提升图缩简至基图以产生所述第一更小大小问题实例。25.根据权利要求22所述的编码器,其中所述覆盖码字处理器单元用于: 确定与信息比特对应的2-提升图的节点的纤程的变量节点; 接收包括所述信息比特的广义信息矢量; 接收广义奇偶校验矢量; 通过使用接收的广义信息矢量的所述信息比特来计算覆盖信息矢量;以及通过使用接收的广义奇偶校验矢量和所述覆盖信息矢量来计算覆盖码字,其中计算的所述码字矢量表不第一解输出结果。26.根据权利要求25所述的编码器,其中所述修改码字处理器单元用于: 接收所述2-提升图的基图上的覆盖广义码字; 接收所述2-提升图的基图的第一副本上的信息矢量; 接收所述2-提升图的基图的第一副本上的奇偶校验矢量; 通过使用2-提升图边缘构造来计算多个穿越参数; 通过使用所述2-提升图的基图的第一副本和所述计算的多个穿越参数、以及所述接收的奇偶校验矢量来计算修改的奇偶校验矢量;以及 通过使用所述2-提升图的基图的第一副本、所述接收的信息矢量、以及所述计算的修改的奇偶校验矢量来计算码字,其中所述计算的码字表示第二解输出结果。
【文档编号】H03M13/11GK105827251SQ201610045992
【公开日】2016年8月3日
【申请日】2016年1月22日
【发明人】马旭东
【申请人】英派尔科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1