专利名称:Ldpc多解码器架构的利记博彩app
LDPC多解码器架构相关申请的交叉引用本专利公开内容要求于2011年I月14日提交的第61/432,966号美国临时申请的权益,其通过引用而整体结合于此。
背景技术:
这里提供的背景技术描述是为了一般地呈现公开内容的背景。当前所称的发明人的工作到这一背景技术章节中描述的该工作的程度、以及该描述在提交时不被界定为现有技术的方面既未明确地也未暗示地承认为相对于本公开内容的现有技术。通信和数据存储中的基本问题包括确定在接收器处接收的信息是否准确地反映从传输器传输的信息。常规而言,已经向消息位添加附加验证位(例如奇偶位、循环冗余校验位)以有助于提高接收的消息与传输的消息匹配的置信度。通信/数据存储系统因此通常包括纠错码(ECC)。例如在编码过程中,通过向数据字段添加冗余/校验位来构造ECC码的码字。低密度奇偶校验(LDPC)码定义一种类型的ECC。LDPC码是与可以表示为双枝图的与稀疏奇偶校验矩阵(sparse parity checkmatrix)关联的线性块码。稀疏是指如下条件,其中可以将用于LDPC码的奇偶校验矩阵约束为每列具有少于特定数目的一并且每行具有少于特定数目的一。LDPC解码器接收矢量(接收的矢量)、尝试对与接收的矢量对应的最可能码字解码并且报告解码器矢量是否为有效码字。LDPC码字可以包括消息位和冗余位。冗余位可以例如是奇偶位。LDPC码可以是线性(N,K)块码,该块码具有映射到块长度为N的码字的K个信息位。可以在低密度(例如稀疏)NxK 二进制奇偶校验矩阵方面指定LDPC码C。尽管这里在二进制码方面提供示例,但是应当理解相似方法可以应用于非二进制码,其中字词“位”被替换为字词“非二进制符号”。因此如这里描述和要求保护的“位节点处理元件”也可以包括处理非二进制符号的处理元件。可以用迭代方式对码字解码,其中构建关于码字的某些位的观点,然后经由观点校验等式来更新向码字的其它位传递那些观点。解码将继续直至已经满足用于码字的约束、直至已经尝试最大数目的试验(例如通过LDPC解码器的迭代)或者直至其它标准终止解码。图1图示常规最小求和LDPC解码器10的一个一般示例。解码器10在收敛验证单元12确定解码器10已经对有效码字收敛时提供收敛标志。可以组合特征群(syndrome)和硬判决(HD)改变信号以确定LDPC解码器10是否已经达到收敛。HD跟踪单元22和HD改变信号使用是可选的。在一些架构中,可以不需要HD跟踪单元22和HD改变信号。特征群计算单元20和HD跟踪单元22可以从负责处理和/或更新位节点和校验节点的解码器处理器30接收更新的HD。解码器处理器30包括码子矩阵36,该码子矩阵是与奇偶校验码对应的更大低密度(例如稀疏)二进制奇偶校验矩阵(未示出)的子矩阵。整个LDPC码通常可以具有维度N-KXN位。通常使用子矩阵来部分地处理这一码矩阵。例如子矩阵36具有大小xXy位,其中X < N-K并且y< N。子矩阵36可以用作码的基本处理单位。可以并行(例如在一个时钟周期中)处理这样的基本处理单位。为了简化,在图2和3中仅示出整个LDPC码奇偶校验矩阵的子矩阵36。例如后文将描述的超奇偶校验矩阵可以对应于LDPC码奇偶校验矩阵的子矩阵36。为码子矩阵36的每列提供位节点处理单元(NPE) 32,因此存在y个位NPE。为码子矩阵36的每行提供校验NPE 34,因此存在X个校验NPE。在一些实施例中,x可以等于I。在最小求和解码器中,位NPE计算或者更新位到校验消息(Q消息),而校验NPE计算或者更新校验到位消息(R消息)。在一些实现中,可以存储后验位(P消息)而不是存储Q消息。解码器处理器30向R存储器14提供更新的R消息并且向Q或者P存储器16提供更新的Q或者P消息。解码器处理器30从R存储器14和Q或者P存储器16接收值。在另一类型的LDPC解码器中,消息可以是单个位消息。这些解码器常称为位翻转(bit-flip)解码器。在位翻转解码器的一个实现中,用于位节点j(l彡j彡N)的P消息是单个位消息。这也是用于该位节点的HD值。可以用迭代方式更新位节点值,其中轮询直接连接到位节点j的校验节点,并且基于这些校验节点值确定是翻转位节点j的值还是保持位节点j的当前值。在这一实现中,R存储器存储校验节点值,而P存储器存储位节点值(HD值)。因此,R存储器存储连接到在R存储器中存储的校验节点的所有位节点值的XOR值。
发明内容
在一个实施例中,一种装置包括在非瞬态计算机可读介质上具体化的超奇偶校验矩阵。超矩阵与低密度奇偶校验(LDPC)码矩阵的至少一部分相对应。超奇偶校验矩阵耦合到高吞吐量LDPC解码器和低吞吐量LDPC解码器。超奇偶校验矩阵包括n个奇偶校验矩阵。奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与y个位节点处理单元相对应的I列。因此,超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列。选择 数目n、X和y从而使得高吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵相对应的ny个码字位、并且低吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵相对应的y个码字位。在一个实施例中,奇偶校验矩阵是循环矩阵,在循环矩阵中,行中的值与前一行中值的移位相对应,并且每行和列的权值至少为一。在一个实施例中,超奇偶校验矩阵是关于奇偶校验矩阵的循环矩阵,从而奇偶校验矩阵包括根据n个模式之一在超奇偶校验矩阵中排列的相邻X行和相邻y列的相交单元的集合。奇偶校验矩阵在n个模式中的每个模式中的位置与奇偶校验矩阵在另一模式中的位置的水平移位相对应。在一个实施例中,该装置包括:解码器选择逻辑,被配置用于基于选择标准来启用高吞吐量和低吞吐量LDPC解码器之一的解码。在另一实施例中,一种方法包括提供在非瞬态计算机可读介质上存储的、与LDPC码矩阵的至少一部分相对应的超奇偶校验矩阵。超奇偶校验矩阵耦合到低吞吐量LDPC解码器和高吞吐量LDPC解码器,并且包括n个奇偶校验矩阵。奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与y个位节点处理单元相对应的I列。因此,超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列。该方法包括选择低吞吐量LDPC解码器和高吞吐量LDPC解码器之一以用于对码字解码。当选择高吞吐量LDPC解码器时,该方法包括在单个时间单位中处理与超奇偶校验矩阵相对应的ny个码字位以对码字解码。当选择低吞吐量LDPC解码器时,该方法包括在单个时间单位中处理与一个奇偶校验矩阵相对应的y个码字位以对码字解码。在一个实施例中,该方法包括当高吞吐量LDPC解码器对码字解码失败时,选择低吞吐量LDPC解码器以对码字解码。在另一实施例中,一种设备包括低吞吐量LDPC解码器、高吞吐量LDPC解码器和超奇偶校验矩阵。超矩阵与LDPC码矩阵的至少一部分相对应。超奇偶校验矩阵耦合到高吞吐量LDPC解码器和低吞吐量LDPC解码器。超奇偶校验矩阵包括η个奇偶校验矩阵。奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与I个位节点处理单元相对应的y列。因此,超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列。选择数目η、X和y从而使得高吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵相对应的ny个码字位,并且低吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵相对应的y个码字位。该设备也包括:解码器选择逻辑,被配置用于基于选择标准来启用高吞吐量和低吞吐量LDPC解码器之一的解码。在一个实施例中,低吞吐量LDPC解码器包括最小求和解码器。在一个实施例中,高吞吐量LDPC解码器包括位翻转解码器,位翻转解码器基本上同时地处理ny个位节点处理单元的群组,其中ny是由位翻转解码器处理的码字位群组中的位数。
并入于说明书中并且构成说明书的部分的附示了公开内容的各种系统、方法和其它实施例。将理解图中的所示单元边界(例如框、框组或者其它形状)代表边界的一个示例。本领域普通技术人员将理解,在一些示例中可以将一个单元设计为多个单元,或者可以将多个单元设计为一个单元。在一些示例中,可以将示出为一个单元内部部件的单元实现为外部部件,并且反之亦然。另外,单元可以不按比例绘制。图1图示一个常规LDPC解码器。图2图示与支持不同吞吐量的解码器的LDPC码架构关联的装置的一个实施例。图3图示与支持不同吞吐量的解码器的LDPC码架构关联的装置的一个实施例。图4A和图4B图示与支持不同吞吐量的解码器的LDPC码架构关联的码超矩阵的各种实施例。图5图示与支持不同吞吐量的解码器的LDPC码架构关联的方法的一个实施例。图6图示与支持不同吞吐量的解码器的LDPC码架构关联的装置的一个实施例。图7图示与支持不同吞吐量的解码器的LDPC码架构关联的方法的一个实施例。图8图示与支持不同吞吐量的解码器的LDPC码架构关联的装置的一个实施例。
具体实施例方式这里描述与在相同解码架构中支持不同吞吐量的解码器的LDPC解码器架构关联的示例系统、方法和其它实施例。在一个实施例中,可以在相同解码架构中使用高吞吐量LDPC解码器和低吞吐量LDPC解码器。高吞吐量LDPC解码器可以用作默认解码器,而在高吞吐量LDPC解码器对码字解码失败时使用低吞吐量LDPC解码器。以这一方式,解码结构可以尽可能多地受益于高吞吐量LDPC解码器提供的功率和时间节省而又仍然在必要时通过低吞吐量LDPC解码器提供更多解码能力。包括不同吞吐量的解码器的解码器结构良好地适合用于处理在固态设备上存储的码字,在固态设备中出现相对少的错误。由于少数错误出现,所以将几乎排他性地使用高吞吐量LDPC解码器。随着固态设备老化,更多错误可能出现并且低吞吐量LDPC解码器将在高吞吐量LDPC解码器可能不能实现校正时的那些实例中,尽管具有更高功率消耗和处理时间却仍然可用于继续解码操作。由于在大多数时间不会运用更低吞吐量LDPC解码器,所以偶然地运行更低吞吐量解码器可能并不显著地影响总吞吐量/功率。这里描述的架构支持不同吞吐量的解码器的一种方式是通过提供任一解码器可以使用的超奇偶校验矩阵。这节省将与提供用于每个解码器的不同码矩阵关联的成本和空间。此外,节省了为了使编码器能够基于两个不同码来编码而将需要的额外的冗余度。参照图2,示出与支持不同吞吐量的解码器关联的解码器架构200的一个实施例。解码器架构200包括高吞吐量LDPC解码器110和低吞吐量LDPC解码器120。“吞吐量”指代可以由解码器并行处理的码字的位的数目。“高”和“低”是在如在两个解码器110、120之间这样的相对意义上使用,而不是指代任何具体吞吐量或者吞吐量范围。在一个实施例中,高吞吐量LDPC解码器是位翻转解码器,并且低吞吐量LDPC解码器是最小求和解码器。解码器架构200包括解码器选择逻辑140,其选择用于对码字进行解码的解码器。解码器选择逻辑使用选择标准来确定选择哪个解码器以对给定的码字解码。在一个实施例中,选择标准是高吞吐量LDPC解码器110的解码成功状态112。因此,如果高吞吐量LDPC解码器HO对码字解码失败,则解码器选择逻辑140可以选择低吞吐量LDPC解码器120以尝试对高吞吐量LDPC解码器110不能解码的码字解码。 高吞吐量LDPC解码器110包括ny个位NPE 112和nx个校验NPE 114。位NPE和校验NPE的数目对应于高吞吐量LDPC解码器110的吞吐量。高吞吐量LDPC解码器110访问超奇偶校验矩阵130,该矩阵是具有N-K行和N列的LDPC码的稀疏子矩阵。超奇偶校验矩阵130具有nx行和ny列。作为示例,如果(N-K) / (nx) = D并且如果N/ (ny) = F,则存在D倍的F个超奇偶校验矩阵,在图中仅示出这些超奇偶校验矩阵中的一个超奇偶校验矩阵、即超奇偶校验矩阵130。一些超奇偶校验矩阵可以是全零(all-zero)循环矩阵(circulantmatrices)。超奇偶校验矩阵130可以由高吞吐量LDPC解码器110用来在单个时间单位(例如时钟周期)中处理ny个位节点。一旦高吞吐量LDPC解码器110完成对超奇偶校验矩阵130的处理,它可以移向下一超奇偶校验矩阵(未示出),该超奇偶校验矩阵是相同大小为nxXny、但是通常结构不同的整个奇偶校验矩阵的下一块。例如,如果N/(ny) =F,则将需要F个时间单位(时钟周期)以处理高吞吐量LDPC解码器中的一个迭代。基于高和低吞吐量LDPC解码器110、120的相对吞吐量选择超奇偶校验矩阵的维度。低吞吐量LDPC解码器120包括y个位NPE 122和x个校验NPE 124。因此,低吞吐量LDPC解码器120的吞吐量是高吞吐量LDPC解码器110的吞吐量的I/η。低吞吐量LDPC解码器120也访问超奇偶校验矩阵130。然而如下文将参照图3更具体描述的那样,低吞吐量LDPC解码器120在每个时间单位(例如时钟周期)中访问超奇偶校验矩阵的一部分。图3图示包括位翻转解码器310 (例如高吞吐量LDPC解码器)和最小求和解码器320 (例如低吞吐量LDPC解码器)的解码器架构300的一个实施例。位翻转解码器310具有48位的吞吐量、因此具有48个位NPE (0-47)。位翻转解码器也具有48个校验NPE (0-47)。最小求和解码器具有16位的吞吐量、因此具有16个位NPE (0-15)和16个校验NPE (0-15)。解码器架构300包括由位翻转解码器310和最小求和解码器320 二者访问的超奇偶校验矩阵 330。在图3中所示示例中,超奇偶校验矩阵330由如图3中的阴影框所示的三个16x16循环奇偶校验矩阵A、B、c构造。循环矩阵是如下矩阵,在该矩阵中,行的值是紧接先前行的移位版本。超奇偶校验矩阵330的其余值包含零。在循环模式中在超奇偶校验矩阵330内排列三个奇偶校验矩阵A、B、C。奇偶校验矩阵A、B、C和/或超奇偶校验矩阵330并不必需是循环矩阵,但是往往希望其是循环矩阵。基于位翻转解码器310的吞吐量(例如每时间单位处理48位)来选择超奇偶校验矩阵330的维度,而基于最小求和解码器320的吞吐量(例如每时间单位处理16位)来选择奇偶校验矩阵A、B、C的维度,可以用任何数目的奇偶校验矩阵构造其它超奇偶校验矩阵,例如具有维度100x100的超奇偶校验矩阵可以包括五个20x20奇偶校验矩阵。在解码器选择逻辑(在图3中未示出,见图2)选择位翻转解码器310时,位翻转解码器310每时间单位访问来自超奇偶校验矩阵330的48位。然而那些48位以不同顺序连接到超奇偶校验矩阵330的行。由于奇偶校验矩阵A、B、C的位置,位0-15连接到超奇偶校验矩阵330的行16-31 ;位16-31连接到超奇偶校验矩阵330的行32-47 ;并且位32-47连接到超奇偶校验矩阵330的行0-15。在一个实施例中,在位翻转解码器310中存储在超奇偶校验矩阵330内奇偶校验矩阵A、B、C的位置,从而恰当行的恰当部分可以用于码字位处理。如果超奇偶校验矩阵330关于奇偶校验矩阵A、B、C是循环的,则如下数可以指定位置,该数指示第一行中的奇偶校验矩阵已经被移位的次数(见图4A)。如果奇偶校验矩阵A、B、C循环,则也可以向位翻转解码器提供用于每个奇偶校验矩阵A、B、C的简单数值指示符,该指示符指示第一行中的非零值已经在该特定循环奇偶校验矩阵中被移位的次数。如果选择最小求和解码器320以用于解码,则最小求和解码器将在每个时间单位中访问超奇偶校验矩阵330的16列。例如,如果最小求和解码器320基于列的并行处理,则在处理超奇偶校验矩阵330的第一时间单位中,最小求和解码器可以访问与奇偶校验矩阵A对应的列0-15和行16-31。在处理超奇偶校验矩阵330的下一时间单位中,最小求和解码器可以访问与奇偶校验矩阵B对应的列16-31和行32-47。在处理超奇偶校验矩阵330的第三时间单位中,最小求和解码器可以访问与奇偶校验矩阵C对应的列32-47和行0-15。如果奇偶校验矩阵A、B、C循环,则可以向最小求和解码器提供用于每个奇偶校验矩阵A、B、C的简单数值指示符,该指示符指示第一行中的非零值已经在该特定循环奇偶校验矩阵中被移位的次数。图4A图示了具有用于如下实施例的更小奇偶校验矩阵的不同排列的三个超奇偶校验矩阵430、431、432,在该实施例中,每个超奇偶校验矩阵有三个更小的奇偶校验矩阵。三个超奇偶校验矩阵430、431、432关于更小奇偶校验矩阵的位置是循环的。因此,超奇偶校验矩阵430代表0移位,超奇偶校验矩阵431代表单个移位,并且超奇偶校验矩阵432代表双移位。可以向高吞吐量LDPC解码器(例如位翻转解码器310)提供移位值0、1、2以指定在每个超奇偶校验矩阵内更小奇偶校验矩阵的位置。图4B图示了具有非循环更小奇偶校验矩阵的不同排列的附加三个超奇偶校验矩阵433、434、435。图5图示了解码器选择方法500的一个实施例。该方法在510包括提供包括至少一个超奇偶校验矩阵的整个LDPC奇偶校验矩阵,该至少一个超奇偶校验矩阵耦合到低吞吐量LDPC解码器和高吞吐量LDPC解码器。至少一个超奇偶校验矩阵中的每个超奇偶校验矩阵对应于LDPC码的一部分,并且包括n个更小奇偶校验矩阵。尽管通常使用多于一个超奇偶校验矩阵来处理整个LDPC码,但是出于本说明书的目的,描述关于单个超奇偶校验矩阵而执行该方法。更小奇偶校验矩阵包括与X个校验节点处理单元对应的X行和与y个位节点处理单元对应的y列。因此,超奇偶校验矩阵包括与nx个校验节点处理单元对应的nx行和与ny个位节点处理单元对应的ny列。尽管由于预选LDPC码矩阵而可以仅执行步骤510 一次,但是可以针对每个码字重复步骤520和530。在520,该方法包括选择低吞吐量LDPC解码器和高吞吐量LDPC解码器中的一个以用于对码字解码。在530,该方法包括用选择的解码器处理码字。在选择高吞吐量LDPC解码器时,可以在单个时间单位中处理与至少一个超奇偶校验矩阵对应的ny个码字位以执行高吞吐量LDPC解码器中的一个迭代的一部分。在选择低吞吐量LDPC解码器时,可以在单个时间单位中处理与至少一个超奇偶校验矩阵对应的I个码字位以执行低吞吐量LDPC解码器中的一个迭代的部分。在一个实施例中,该方法500包括在高吞吐量LDPC解码器对码字解码失败时选择低吞吐量LDPC解码器以对码字解码。如上文提到的那样,当在高吞吐量LDPC解码器中处理ny个码字位时,这可以对应于在一个时间单位中处理一个或者多个超奇偶校验矩阵。图6-图8图示了有助于并行处理码字位组并且在一个时间单位期间访问若干超奇偶校验矩阵的位翻转解码器架构。如更早描述的那样,在位翻转解码的一个实施例中,每个校验节点存储单个位,并且每个位节点存储单个位。每个校验节点具有存储与“满足”或者“不满足”对应的值的单个存储位。每个位节点具有存储码字位值(HD值)的单个存储位。位节点和校验节点根据泰纳图(TannerGraph)而选择性地互连。因此,单个位节点连接到若干校验节点,并且单个校验节点连接到若干位节点。在每个迭代中,位翻转解码器执行校验节点到位节点更新和位节点到校验节点更新。在校验节点到位节点更新中,轮询连接到位节点的校验节点,并且如果多于阈值数目都未被满足,则翻转位节点中的位。轮询的校验节点的数目等于连接到正在被处理的位节点的校验节点的数目。例如,如果正在被处理的每个位节点连接到三个校验节点,则需要访问三个不同超奇偶校验矩阵。在位节点到校验节点更新期间,需要对连接到校验节点的所有位节点的位执行XOR运算,并且基于XOR的结果更新校验节点的值。可以以串行方式、半并行方式或者并行方式完成这一更新。在图6-图8中描述的位翻转解码器结构使得能够在单个时间单位中轮询和更新连接到位节点组(例如ny个位节点的组)中的位节点的所有校验节点(例如所有3nx个校验节点)。假设图7-图8中的校验节点更新是串行更新。单个时间单位可以是一个时钟周期、若干时钟周期或者时钟周期的一部分。图6图示了位翻转解码器600的一个实施例的功能框图。位翻转解码器包括硬判决存储器610,该硬判决存储器存储用于本说明书中的位节点代表的码字位的位值。位翻转解码器600也包括两个特征群存储器:先前特征群存储器620和当前/部分特征群存储器625。特征群存储器620、625存储用于校验节点的被称为特征群值的值。在每个解码迭代中,在校验节点到位节点更新期间,从硬判决存储器610取回位节点值群组,并且从先前特征群存储器620轮询用于连接到这些位节点中的每个位节点的校验节点(称为“邻近校验节点”)的校验节点值。例如,如果位节点连接到三个校验节点,则在相同时间单位中在先前特征群存储器620中访问三个校验节点存储器位置。换而言之,在相加/比较/翻转逻辑630执行的校验节点到位节点更新期间读取先前特征群存储器620。以这一方式,相加/比较/翻转逻辑630从如下稳定存储器工作,该稳定存储器并不由可以同时执行的后续位节点到校验节点更新而改变。相加/比较/翻转逻辑630翻转需要基于先前特征群存储器620中存储的特征群值翻转的任何位节点位。位节点到校验节点更新包括至少部分基于位节点值通知当前特征群存储器625中的校验节点值(特征群值)。在一些实施例中(例如在处理固态设备(比如闪存)上存储的码字时),特征群值(和位节点值)很少改变。因此可以基于是否进行判决以在当前时间单位中翻转位来更新当前特征群存储器625。如果在当前时间单位中未翻转位,则无需更新当前特征群存储器625。收敛监视器640监视先前特征群存储器620和/或当前特征群存储器625以确定是否已经对码字位成功解码。在位翻转解码器的每个完全迭代结束时将当前特征群存储器625物理地或者逻辑地复制到先前特征群存储器620中,其中一个完全迭代包括访问每个位节点一次。如果码字中的位数N是N = F(ny),则这占用F个时间单位。位翻转解码器600包括若干功率节省特征。例如如上文讨论的那样,仅在翻转了连接到给定的校验节点的位节点位时才更新校验节点值。这在其中当前位节点值与先前特征群值组合的循环“a”中可见。(在一些实施例中,可以代之以组合当前位节点值与当前特征群值。)如果特征群值尚未出现改变,则禁用循环“a”。换而言之,如果当前位节点值尚未改变,则没有对当前特征群存储器625进行更新。如果位节点值被翻转,则解码器也遵循循环“b”并且更新硬判决存储器610。如果在当前时间单位中没有位节点值被翻转,则不更新硬判决存储器610。因此通过直到位被翻转(这相对很少出现)才更新特征群或者硬判决存储器来节省功率。图7概述对位节点群组执行解码器迭代的方法700的一个实施例在720,选择位节点群组以用于处理。可以按自然顺序或者任何其它顺序来处理位节点。在730,该方法包括轮询连接到每个位节点处理单元的邻近校验节点。可以在先前特征群存储器620 (图6)中存储校验节点值。基本上同时执行对邻近校验节点的轮询。可以通过将关于图8描述的具体LDPC码设计来使能这一同时轮询。在740,该方法包括基于轮询而选择性地更新位节点群组(例如图6中的HD存储器610中的位)中的值。在750,向邻近校验节点邻居发送更新的位节点值。在760,该方法包括基于更新的位节点值选择性地更新特征群存储器。在这一步骤中更新的特征群存储器可以是当前特征群存储器625 (图6)。如果使用两个特征群存储器(例如先前特征群存储器620和当前特征群存储器625),则该方法在770包括向先前特征群存储器中复制当前特征群存储器。这一复制可以是物理或者逻辑的。图8图示特征群存储器800的一个实施例,该特征群存储器被划分成单独存储器以有助于如在图7的方法700中描述的码字位并行处理。用Nr/M个单独并行存储器组织特征群存储器800,每个物理存储器存储用于校验节点群组(示出为行0至Nr-1,其中Nr通常等于N-K)的特征群值。利用恰当的码设计,在任何给定的更新操作中,不超过来自每个存储器群组的单个行被访问,从而防止存储器冲突并且简化硬件要求。在一个实施例中,LDPC码奇偶校验矩阵被配置用于包括超奇偶校验矩阵,从而LDPC码奇偶校验矩阵中的每组M行包含任何给定的列中的不多于一个非零值。在一个实施例中,M等于M = G nx,其中G是大于零的正整数并且nx是每个超奇偶校验矩阵的行大小。在另一实施例中,LDPC奇偶校验矩阵包括超奇偶校验矩阵,其中每个超奇偶校验矩阵包括相邻行的群组,其中每行对应于相同物理存储器。下文包括这里运用的所选术语的定义。定义包括落入术语的范围内并且可以用于实现的部件的各种示例和/或形式。示例并非旨在于限制。术语的单数和复数形式二者可以在定义内。对“一个实施例”、“实施例”、“一个示例”、“示例”等的引用指示这样描述的实施例或者示例可以包括特定特征、结构、特性、属性、单元或者限制,但是并非每个实施例或者示例必然包括该特定特征、结构、特性、属性、单元或者限制。另外,对短语“在一个实施例中”的重复使用虽然可以、但是未必指代相同实施例。如这里所用的“逻辑”包括但不限于用于执行功能或者动作和/或引起来自另一逻辑、方法和/或系统的功能或者动作的硬件、固件、在非瞬态介质上存储或者在机器上执行的指令和/或各项的组合。逻辑可以包括软件控制的微处理器、分立逻辑(例如ASIC)、模拟电路、数字电路、编程的逻辑器件、包含指令的存储器设备等。逻辑可以包括一个或者多个门、门组合或者其它电路部件。在描述多个逻辑时,可以有可能向一个物理逻辑中并入多个逻辑。类似地,在描述单个逻辑时,可以有可能在多个物理逻辑之间分布该单个逻辑。可以使用逻辑单元中的一个或者多个逻辑单元来实现这里描述的部件和功能中的一个或者多个部件和功能。尽管出于说明简化的目的而将所示方法示出为一系列块。但是方法不受块的顺序限制,因为一些块可以按与示出和描述的顺序不同的顺序和/或与其它块并行出现。另外,少于所有所示块可以用来实现示例方法。可以组合块或者将块分离成多个部件。另外,附加和/或备选方法可以运用附加的未图示的块。到具体实施方式
或者权利要求中运用术语“包括(include) ”的程度,旨在以与术语“包含(comprise) ”相似的方式有包容性(inclusive)意义,因为该术语在运用时被解释为权利要求中的过渡词。尽管已经通过描述示例来举 例说明示例系统、方法等并且尽管已经以相当多的细节描述示例,但是申请人的意图并非是约束或者以任何方式使所附权利要求的范围限于这样的细节。当然不可能出于描述这里描述的系统、方法等的目的而描述每个可设想的部件或者方法的组合。因此,公开内容不限于示出和描述的具体细节、有代表性的装置和说明性示例。因此,本申请旨在于涵盖落入所附权利要求的范围内的变更、修改和变形。
权利要求
1.一种装置,包括: 在非瞬态计算机可读介质上具体化的超奇偶校验矩阵,所述超矩阵与低密度奇偶校验(LDPC)码矩阵的至少一部分相对应,所述超奇偶校验矩阵耦合到高吞吐量LDPC解码器和低吞吐量LDPC解码器,其中所述超奇偶校验矩阵包括n个奇偶校验矩阵; 其中所述奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与y个位节点处理单元相对应的I列,从而所述超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元对应的ny列;以及 另外其中选择n、x和y从而使得所述高吞吐量解码器能够在单个时间单位中处理与所述超奇偶校验矩阵相对应的ny个码字位、并且所述低吞吐量解码器能够在单个时间单位中处理与所述超奇偶校验矩阵相对应的y个码字位。
2.根据权利要求1所述的装置,其中所述奇偶校验矩阵是循环矩阵,在所述循环矩阵中,行中的值与前一行中值的移位相对应,并且每行和列的权值至少为一。
3.根据权利要求1所述的装置,其中所述超奇偶校验矩阵是关于所述奇偶校验矩阵的循环矩阵,从而所述奇偶校验矩阵包括根据n个模式之一在所述超奇偶校验矩阵中排列的相邻X行和相邻y列的相交单元的集合,其中所述奇偶校验矩阵在所述n个模式中的每个模式中的位置与奇偶校验矩阵在另一模式中的位置的水平移位相对应。
4.根据权利要求1所述的装置,还包括:解码器选择逻辑,被配置用于基于选择标准来启用所述高吞吐量和低吞吐量LDPC解码器之一的解码。
5.根据权利要求4所述的装置,其中所述高吞吐量LDPC解码器被配置用于访问与奇偶校验矩阵在所述超奇偶校验矩阵内的位置相对应的循环矩阵移位数目。
6.根据权利要求1所述的装置,其中所述高吞吐量LDPC解码器包括位翻转解码器,所述位翻转解码器包括先前特征群存储器和当前特征群存储器,所述先前特征群存储器存储来自紧接之前解码迭代的特征群值,所述当前特征群存储器存储在当前解码迭代期间计算的特征群值。
7.根据权利要求6所述的装置,其中所述当前特征群存储器包括m个单独的物理存储器,从而在第一物理存储器中存储的第一特征群值与对在第二物理存储器中存储的第二特征群值的访问基本上同时可访问。
8.根据权利要求7所述的装置,其中: 所述LDPC码矩阵被配置用于包括相邻行的群组,其中每个行的群组与不同的物理存储器相对应,并且其中每个行的群组在任何给定的列中包括不多于一个非零值;以及 所述LDPC码矩阵包括至少一个超奇偶校验矩阵,其中每个超奇偶校验矩阵包括相邻行的群组,其中每行与同一物理存储器相对应。
9.根据权利要求1所述的装置,其中所述低吞吐量LDPC解码器包括最小求和解码器。
10.一种方法,包括: 提供在非瞬态计算机可读介质上存储的、与LDPC码矩阵的至少一部分相对应的超奇偶校验矩阵,所述超奇偶校验矩阵耦合到低吞吐量LDPC解码器和高吞吐量LDPC解码器,并且包括n个奇偶校验矩阵; 其中所述奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与y个位节点处理单元相对应的I列,从而所述超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列; 选择所述低吞吐量LDPC解码器和所述高吞吐量LDPC解码器之一以用于对码字解码;当选择所述高吞吐量LDPC解码器时,在单个时间单位中处理与所述超奇偶校验矩阵相对应的ny个码字位以对所述码字解码;以及 当选择所述低吞吐量LDPC解码器时,在单个时间单位中处理与一个奇偶校验矩阵相对应的I个码字位以对所述码字解码。
11.根据权利要求10所述的方法,包括: 当所述高吞吐量LDPC解码器对所述码字解码失败时,选择所述低吞吐量LDPC解码器以对所述码字解码。
12.根据权利要求10所述的方法,包括: 基于所述高吞吐量LDPC解码器和所述低吞吐量LDPC解码器的吞吐量容量的比率来选择n、x和y,从而使得y包括所述低吞吐量LDPC解码器的所述吞吐量,并且ny包括所述高吞吐量LDPC解码器的所述吞吐量。
13.根据权利要求10所述的方法,其中所述高吞吐量LDPC解码器包括位翻转解码器,所述方法还包括:当选择所述位翻转解码器时,通过以下操作基本上同时地处理ny个位节点的群组,其中ny是所述群组中的位节点数目: 基本上同时地轮询所述群组中的每个位节点的校验节点邻居,其中位节点的校验节点邻居连接到所述位节点; 基于所述轮询选择性地更新所述位节点群组中的值; 向所述邻近校验节点发送所述更新的位节点值;以及 基于所述更新的位节点处理单元值选择性地更新特征群存储器。
14.根据权利要求13所述的方法,还包括仅在位节点值被翻转时更新硬判决存储器。
15.根据权利要求13所述的方法,还包括仅在连接到所述校验节点处理单元的位节点的值被翻转时更新校验节点值。
16.根据权利要求13所述的方法,其中同时地轮询所述校验节点邻居包括访问存储用于校验节点处理单元的值的单独物理存储器。
17.根据权利要求13所述的方法,其中: 从存储来自紧接之前解码迭代的特征群值的先前特征群存储器访问所述邻近校验节占.选择性地更新所述特征群存储器包括基于所述更新的位节点值来更新当前特征群存储器;以及 所述方法还包括将所述当前特征群存储器复制到所述先前特征群存储器中。
18.—种设备,包括: 低吞吐量LDPC解码器; 高吞吐量LDPC解码器; 在非瞬态计算机可读介质上具体化的超奇偶校验矩阵,所述超矩阵与LDPC码矩阵的至少一部分相对应,所述超奇偶校验矩阵耦合到所述高吞吐量LDPC解码器和所述低吞吐量LDPC解码器,其中所述超奇偶校验矩阵包括η个奇偶校验矩阵; 其中所述奇偶校验矩阵包括与X个校验节点处理单元相对应的X行和与I个位节点处理单元相对应的y列,从而所述超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列; 另外其中选择n、x和y从而使得所述高吞吐量解码器能够在单个时间单位中处理与所述超奇偶校验矩阵相对应的ny个码字位,并且所述低吞吐量解码器能够在单个时间单位中处理与所述超奇偶校验矩阵相对应的I个码字位;以及 解码器选择逻辑,被配置用于基于选择标准来启用所述高吞吐量和低吞吐量LDPC解码器之一的解码。
19.根据权利要求18所述的设备,其中所述低吞吐量LDPC解码器包括最小求和解码器。
20.根据权利要求18所述的设备,其中所述高吞吐量LDPC解码器包括位翻转解码器,所述位翻转解码器基本上同时地处理ny个位节点处理单元的群组,其中ny是由所述位翻转解码器处理的码字位群组中的位数。
21.根据权利要求20所述的设备,其中所述位翻转解码器包括: 先前特征群存储器,存储来自紧接之前解码迭代的特征群值;以及 当前特征群存储器,存储在当前解码迭代期间计算的特征群值,其中所述当前特征群存储器包括m个单独的物理存储器,从而在第一物理存储器中存储的第一特征群值与对在第二物理存储器中存储的第二特征群值的访问基本上同时可访问。
22.根据权利要求21所述的设备,其中: 所述LDPC码矩阵被配置用于包括相邻行的群组,其中每个行的群组与不同的物理存储器相对应,并且其中每个行的群组在任何给定的列中包含不多于一个非零值;以及 所述LDPC码矩阵包括至少一个超奇偶校验矩阵,其中每个超奇偶校验矩阵包括相邻行的群组,其中每行与同一物理存储器相对应。
全文摘要
描述与LDPC解码器架构相关联的系统、方法和其它实施例。根据一个实施例,一种装置包括超奇偶校验矩阵。超矩阵与低密度奇偶校验(LDPC)码矩阵的至少一部分相对应。超奇偶校验矩阵耦合到高吞吐量LDPC解码器和低吞吐量LDPC解码器。超奇偶校验矩阵包括n个奇偶校验矩阵。奇偶校验矩阵包括与x个校验节点处理单元相对应的x行和与y个位节点处理单元相对应的y列。因此,超奇偶校验矩阵包括与nx个校验节点处理单元相对应的nx行和与ny个位节点处理单元相对应的ny列。选择数目n、x和y从而使得高吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵对应的ny个码字位并且低吞吐量解码器能够在单个时间单位中处理与超奇偶校验矩阵相对应的y个码字位。
文档编号H03M13/11GK103155421SQ201280003336
公开日2013年6月12日 申请日期2012年1月11日 优先权日2011年1月14日
发明者N·瓦尼卡, G·伯德 申请人:马维尔国际贸易有限公司