CN113661657A - 低延迟分段准循环低密度奇偶校验(qc-ldpc)解码器 - Google Patents
低延迟分段准循环低密度奇偶校验(qc-ldpc)解码器 Download PDFInfo
- Publication number
- CN113661657A CN113661657A CN202180001880.2A CN202180001880A CN113661657A CN 113661657 A CN113661657 A CN 113661657A CN 202180001880 A CN202180001880 A CN 202180001880A CN 113661657 A CN113661657 A CN 113661657A
- Authority
- CN
- China
- Prior art keywords
- codeword
- edge
- bundles
- message
- bundle
- 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.)
- Pending
Links
Images
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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
描述了为正在进行解码过程的码字提供多个消息束的并行处理的系统和方法。实施例提供了低延迟分段式准循环低密度奇偶校验(QC‑LDPC)解码器配置,其中解码处理任务被分配给低延迟分段式QC‑LDPC解码器的不同分段以并行处理多个消息束。低延迟分段式QC‑LDPC解码器实施的分段移位器可被配置以并行处理多束多个边缘路径。并行处理同一校验节点集群(CNC)的多个消息束。另外,并行处理多个CNC的多个消息束。
Description
技术领域
本发明涉及数据通信,特别涉及解码校正编码数据。
背景技术
当今社会广泛地依赖于数据通信用于各种目的,如个人之间的消息传递、广播通信、控制机器、基于处理器的系统联网等。数据可以通过各种通道传送,包括有线、无线和光学通道,并可能受到各种噪声源、干扰和/或其他信号劣化的影响。例如,在蜂窝无线电系统中,无线传输用于在各种形式的用户设备(如手机)和基站之间传送信息比特。但是,由于噪声、干扰或弱信号强度引起的通信错误,接收到的比特通常与发送的比特不同。
因此,人们开发了多种形式的数据编码技术,试图使数据(例如,高数据速率应用的数据传输)对各种信道(例如,不可靠或嘈杂的信道)传输的影响更具弹性。例如对于数据通信,纠错码(ECC),如turbo码,低密度奇偶校验(LDPC)码等,已经用于编码数据。
低密度奇偶校验(LDPC)码是线性纠错码。LDPC使用分层解码技术,其中对多次迭代中的每次迭代,求解单个块的行(row)奇偶校验方程(每次迭代仍然更新比特值)。找到一个合法码字,满足所有奇偶校验方程。LDPC码越来越多地应用于需要在有损坏噪声的情况下在带宽受限或返回信道受限的链路上进行可靠和高效信息传输的应用中。
为了解决关于信号劣化的问题,5G蜂窝标准规定使用LDPC码作为蜂窝通信的数据信道码。特别是,5G标准使用准循环LDPC(QC-LDPC)编码用于数据校正码。5G的QC-LDPC解码器支持51种不同大小的输入码字。因此,QC-LDPC解码器包括一个支持最大码字尺寸的硬件配置。传统的QC-LDPC解码器一次只能解码一个任意大小的代码块(例如美国专利号8,739,001和9,112,530,其公开内容通过引用并入本文)。如果输入的码字大小不是最大的,传统的QC-LDPC解码器设计在解码过程中会有一些硬件处于空闲状态。
5G网络中的基站同时支持多个用户的通信。因此,一个5G基站接收器要对来自各种连接终端的不同大小的多个码块(例如,多个用户传输的QC-LDPC编码数据)进行解码。然而,一个为多用户服务的基站应该提供高吞吐量的QC-LDPC解码。通常关于QC-LDPC编码数据实施的迭代解码技术是相对逻辑密集的,因此经常导致解码器逻辑几乎消耗接收器(如基站)一半的计算能力。在传统QC-LDPC解码器设计的操作中,其中对连接终端的多个码字分别进行解码(例如,由解码器逻辑的多个实例执行和/或由解码器逻辑的一个实例的重复操作串行处理),高吞吐量QC-LDPC解码是通过低效和资源密集的实现来完成的。
美国专利号10,826,529(其公开内容通过引用纳入本文中)中描述的较新的、非传统的QC-LDPC解码器设计提供了更有效和灵活的解码。特别是,这种非传统的QC-LDPC解码器设计有助于并行解码多个码字(例如,并行处理来自多个不同用户的码字)。然而,由于QC-LDPC解码器实现了多个消息处理步骤,因此在每个码字的解码过程中会出现明显的延迟。
发明内容
本发明涉及对正在进行解码过程的码字提供多个消息束并行处理的系统和方法。本发明的实施例提供低延迟分段式准循环低密度奇偶校验(QC-LDPC)解码器配置,其中解码过程任务(例如,由各个节点执行的消息处理)被分配给低延迟分段式QC-LDPC解码器的不同分段(segment),以并行处理多个消息束。实施例的低延迟分段式QC-LDPC解码器可以利用分段式移位器实施,其被配置用于捆绑低密度分段式QC-LDPC解码器的一个或多个校验节点集群(CNC)的边缘(例如,变量节点(VN)和校验节点(CN)之间的连接)。
低延迟分段式QC-LDPC解码器实施的分段移位器可以被配置以并行处理多个边缘路径束(例如,Z个边缘束),其中低延迟分段式QC-LDPC解码器实施中的多束边缘路径的总和小于或等于分段移位器大小(例如,Z1+Z2+...ZM≤Zmax)。因此,本发明的实施例可以很好地适用于使用小码字大小的小尺寸信令数据,例如需要低延迟和可靠通信服务的车联网(V2X)通信的各种实例。
在实施例的低延迟分段式QC-LDPC的操作中,并行处理同一CNC的多个消息束。因此,传统上串行执行的多个解码处理步骤改为并行处理,减少了解码码字数据(例如,使用小码字大小的小尺寸信令数据)的解码延迟。另外,在根据低延迟分段式QC-LDPC的一些实施例的操作中,并行处理多个CNC的多束消息。这样的实施例进一步增加了并行处理的解码处理步骤的数量,因此可以进一步减少解码码字数据的解码延迟。
实施例的低延迟分段式QC-LDPC解码器被配置以提供并行处理的高效且灵活的设计。例如,除了提供对一个码字的多个消息束的并行处理之外,低延迟分段式QC-LDPC解码器的实施例还可以并行处理多个码字的多个边束。
低延迟分段式QC-LDPC解码器的实施例可以利用高效硬件实现的配置,支持将解码过程任务划分和分配给不同的分段(segment),同时仍然促进所支持的码字的大小的可扩展性。例如,一些实施例的低延迟分段式QC-LDPC解码器可以利用分段移位器的分节配置,其中每个左移和右移部分被分成共享相同控制信号的多个分节(section)。这种配置可以在支持的段数和硬件成本之间实现令人满意的权衡。
前面已经相当广泛地概述了本发明的特征和技术优点,以便更好地理解下面对本发明的详细描述。下面将描述本发明的其他特征和优点,这些特征和优点构成本发明的权利要求主题。本领域技术人员应该理解,所公开的概念和具体实施例可以很容易地用作修改或设计其他结构以实现本发明的相同目的的基础。本领域技术人员还应当认识到,这种等效结构并不偏离所附权利要求书中所阐述的本发明的精神和范围。当结合附图考虑时,从以下描述中可以更好地理解被认为是本发明特点的新颖特征,包括其组织和操作方法,以及进一步的目的和优点。但是,应该清楚地理解,每个附图都只是出于说明和描述的目的而提供,并且不旨在作为对本发明的限制的定义。
附图说明
为了更完整地理解本发明,现在参考以下结合附图进行的描述,其中:
图1显示一个无线网络的一部分,其中可以利用本发明实施例的低延迟分段式准循环低密度奇偶校验(QC-LDPC)解码器配置;
图2A和2B显示现有QC-LDPC解码器配置的例子;
图3A显示一个示例的QC-LDPC解码器的基本图(BG)矩阵和Tanner图结果;
图3B显示一个迭代QC-LDPC解码过程的操作;
图3C和3D显示QC-LDPC解码器利用最小和算法的最小阶段操作,显示QC-LDPC解码器的变量节点到校验节点(V2C)的操作;
图3E和3F显示QC-LDPC解码器利用最小和算法的求和阶段操作,显示QC-LDPC解码器的校验节点到变量节点(C2V)的操作;
图4显示实施较高阶提升参数的QC-LDPC解码器的示例的BG矩阵和Tanner图构造;
图5A-5C显示示例LDPC码的各个Tanner图构造的片段视图(slice view);
图6显示一个QC-LDPC解码器配置的片段图;
图7显示QC-LDPC解码器的典型可重置移位器实施的可扩展操作;
图8和图9显示根据本发明的实施例利用的可重置分段式可扩展移位器的示例,用于划分成不同大小的多个分段以并行执行不同移位值的循环移位;
图10显示利用可重置分段式可扩展移位器配置实施并行码字解码的QC-LDPC解码器配置的片段视图;
图11、12和13显示根据本发明实施例的低延迟分段式QC-LDPC解码器配置的片段视图,该配置利用可重置分段式可扩展移位器配置实现多段码字并行边缘束处理;
图14显示可在本发明实施例的低延迟分段式QC-LDPC解码器中使用的分节式移位级配置;
图15A-15E显示关于本发明实施例的低延迟分段式QC-LDPC解码器的实施细节。
具体实施方式
图1显示无线网络的一部分(例如,5G蜂窝网络的一部分),其中一个基站同时支持多个用户的通信。特别是,图1显示基站110支持与用户设备115a-115f的无线通信。例如用户设备115a-115f可以包括各种形式的用户设备(例如,以智能电话手机的形式提供的用户设备115a-115e、以智能车辆的形式提供的用户设备115f等)。
在图1所示的无线网络内进行通信的设备采用了准循环低密度奇偶校验(QC-LDPC)数据编码技术,以提供数据校正编码,使数据对通过经常有噪声的无线信道传输的影响更具弹性。因此,图示例子中的基站110被显示为实施QC-LDPC解码器100,该解码器100被配置为对用户传输的QC-LDPC编码数据进行解码。例如,基站110从用户设备115a-115f接收到的码字(例如,可能由于噪声和/或在无线信道中经历的其他退化而损坏的码块)在输入端101处作为软比特或对数似然比(LLR)值输入到QC-LDPC解码器100。QC-LDPC解码器100执行迭代解码技术,其中在多次迭代的每一次迭代中求解单个块的行(row)奇偶校验方程,以收敛于解码的码字。QC-LDPC解码器100在输出102处输出解码码字的硬比特。
图2A和2B显示现有的QC-LDPC配置的示例,其可以被用来对图1所示的无线网络内的传输的QC-LDPC编码数据进行解码。特别是,如下面进一步详细描述的,图2A的单码字QC-LDPC解码器200a包括一个传统的QC-LDPC解码器配置(例如,对应于美国专利号8,739,001和9,112,530中所示的解码器配置),图2B的并行码字QC-LDPC解码器200b包括一个较新的QC-LDPC解码器配置(例如,对应于美国专利号10,826,529中所示的解码器配置)。例如,单码字QC-LDPC解码器200a或并行码字QC-LDPC编码器200b可以用在图1的无线网络中的QC-LDPC解码器100的实现中。
首先参考图2A,显示了5G蜂窝网络中的接收机常用的传统QC-LDPC解码器,用于解码使用QC-LDPC码编码的数据以进行数据校正。图2A的单码字QC-LDPC解码器200a包括一个5G QC-LDPC纠错码解码器,其可操作以接收由接收到的噪声信号210a(例如,在LLR中)提供的编码比特,并输出解码比特作为解码结果220a。在操作中,单码字AC-LDPC解码器200a实现了分层解码逻辑,以迭代处理关于编码比特的单个码块(例如,码字)的奇偶校验方程,其中有效码字由满足所有奇偶校验方程来表示。
单码字QC-LDPC解码器200a的输入是一个码块,其大小取决于各种因素。在根据当前标准的5G蜂窝网络中,基本图(base graph,BG)矩阵BG1和BG2是两种尺寸的BG矩阵,其中BG1=46x68和BG2=42x52。对于不同的提升参数(lifting parameter)Z值,BG1有八个不同的矩阵;对于不同的提升参数Z值,BG2有另外八个不同的矩阵,如下表所示。从下表可以看出,在这个5G蜂窝网络示例中,提升参数Z={2,…,384}。LLR的比特宽度(K)通常为6或8比特,但也可以使用其他比特宽度。在5G蜂窝网络实施中,码块大小与提升参数Z的值成正比(例如,如果码字尺寸小,则提升参数Z也小)。以5G BG1和K=8比特配置为例,单码字QC-LDPC解码器输入的码块大小=K*68*Z,其中码块一般可以从816比特(例如,其中LLR比特宽度K=6,提升参数Z=2)到208,896比特(例如,其中LLR比特宽度K=8,提升参数Z=384)。
单码字QC-LDPC解码器200a的输出包括从码块输入导出的解码比特(硬比特),其中该输出也与提升参数Z的值成正比。继续以5G BG1为例,单码字QC-LDPC解码器的输出(D比特)(硬比特)=68*Z(例如,D=136比特,其中提升参数Z=2到D=26,112比特,其中提升参数Z=384)。因此,配置用于5G BG1的单码字QC-LDPC解码器200a的实施方案必须被配置为适应提升参数Z=384,尽管使用较小提升参数(即提升参数Z<384)的码块的QC-LDPC解码仍然可以在单码字QC-LDPC解码器的剩余容量保持空闲的情况下进行处理(例如,传统QC-LDPC解码器的空闲部分几乎与所使用的提升参数Z的值成反比)。
由上述可知,单码字QC-LDPC解码器200a一次只能解码一个码块或码字。额外的码块通过这种传统配置(例如,Z={2,...,384}的任何大小的一个码块)被分别解码(例如,通过单码字QC-LDPC解码器200a的多个实例和/或通过单码字QC-LDPC解码器200a的重复操作)。因此,为了对多个设备(例如图1的用户设备115a-115f)的通信解码码字,多个码字可以由单码字QC-LDPC解码器200a串行处理和/或单码字QC-LDPC解码器200a的多个实例并行实施。同时支持多个用户的通信(例如,基站110为用户设备115a-115f的多个用户设备提供服务)通常需要QC-LDPC解码器的高吞吐量。因此,许多使用场景可能需要实现单码字QC-LDPC解码器的多个实例的硬件和/或处理器密集型解决方案。
现在参考图2B,图中显示了一个较新的QC-LDPC解码器配置,其可以用于5G蜂窝网络中的接收机,对使用QC-LDPC码编码的数据进行解码以进行数据校正。并行码字QC-LDPC解码器200b被配置为接收由多个接收信号210b-1到210b-n提供的编码比特(例如,由多个连接终端,如图1中的用户设备115a-115f,传输的LLR域中的比特),并输出解码比特(例如,硬比特)作为解码结果220-1到220-n(例如,对应于多个连接终端的解码码块)。
由并行码字QC-LDPC解码器200b并行解码的码字具有一个总组合或聚合的提升参数大小,其小于或等于针对编码数据使用的最大提升参数大小。例如,在Z=384的5G BG1配置中,由并行码字QC-LDPC解码器200b解码的n个码字具有小于或等于Z(即本例中为384)的一个总组合提升参数大小(例如,ZIN_1+ZIN_2+...ZIN_n)。并行码块QC-LDPC解码器的整体输入可以通过组合使用相同BG矩阵索引(例如上表)的码块而形成,其中这样的码块的大小可以相同或不同。例如,为了使用相同的BG矩阵,可以使用来自相同BG矩阵索引集的具有Z值的码块(例如,将具有Z={15,30,60,120和240}的码块组合起来,其中所有这些码块都使用BG矩阵索引7)。
从上文可以理解,并行码字QC-LDPC解码器200b比单码字QC-LDPC解码器200a的单个实例有利于提高QC-LDPC解码器的吞吐量,例如用于同时支持多个用户的通信。然而,从下面的描述中可以更好地理解,由于QC-LDPC解码器实现多个消息处理步骤,在每个码字的解码过程中会出现明显的延迟。因此,单码字QC-LDPC解码器200a和并行码字QC-LDPC解码器200b都不是特别适合需要低延迟的应用,例如车联网(V2X)通信。根据本发明概念提供的低延迟分段式QC-LDPC解码器配置,其中解码处理任务被分配给低延迟分段式QC-LDPC解码器的不同分段(segment),以并行处理多个消息束,这有利于对码字进行低延迟解码(例如,通过实现对正在解码的码字的消息束进行并行处理来加速解码过程)。
为了帮助理解本发明的概念,理解LDPC解码操作是有帮助的。LDPC是使用分层解码技术的线性块码,其中在多次迭代的每一次迭代中,求解单个块的行奇偶方程(每次迭代仍然更新比特值),找到一个合法码字,其满足所有奇偶检验方程。作为线性块码,LDPC码可以通过矩阵来描述。LDPC码也可以使用图形表示(例如Tanner图)来描述。
根据当前5G蜂窝标准使用的LDPC码包括准循环LDPC(QC-LDPC)码。QC-LDPC码由两个参数表征,即提升因子(Z)和基本图(BG)矩阵。图3A显示使用2个校验节点(CN)和4个变量节点(VN)的一个QC-LDPC码例子的BG矩阵和相应的Tanner图结构。应当理解,为了简化描述,所示示例的LDPC码仅包括2个CN和4个VN。本发明实施例的并行LDPC解码的LDPC码可能比该示例大得多。例如,在5G蜂窝通信标准中,BG1的大小目前为46x68(例如,46个校验节点和68个变量节点),BG2的大小目前为42x52(例如,42个校验节点和52个变量节点)。
可以看出,图3A的Tanner图300表示与BG矩阵390的矩阵相同的LDPC码其中BG矩阵的行对应于Tanner图的CN(显示为CN 301和302,其中第i=1行对应CN 301,第i i=2行对应CN 302),BG矩阵的列对应于Tanner图的VN(显示为VN 331-334,其中第j=1列对应VN 331,第j=2列对应VN 332,第j=3列对应VN 333,第j=4列对应VN 334)。Tanner图300包括边缘(例如,显示为边缘311-313和321-324),其为不同节点集的节点之间提供连接,在码字解码处理的操作中,消息在这些节点上传递。特别是,如果元素BGij是非负的,则CNi与VNj相连(即BG矩阵390中的负项对应于Tanner图中相应的VN和CN之间没有连接或边缘)。Tanner图的节点之间传递的消息表示为以及其中表示在迭代t时从VNj传递到CNi的VN-CN消息,表示在迭代t时从CNi传递到VNj的CN-VN消息。BG矩阵390的元素值表示在迭代解码过程中使用的循环移位值(例如,BG矩阵值0对应于无移位,BG矩阵值1对应于循环移位1位,BG矩阵值2对应于循环移位2位,等等)。
在根据传统的LDPC解码过程(例如,QC-LDPC解码)的操作中,解码是通过将消息(例如,)从VN顺序传递到CN(V2C),然后消息(例如,)从CN到VN(C2V),一个CN一个CN地进行。该LDPC解码操作在图3B的Tanner图实例中示出,其中显示了LDPC解码操作的一次迭代。在图示的LDPC解码迭代实例中,在提供关于第一个CN的消息传递操作中,Tanner图300-1显示将消息从VN 331-333传递到CN 301的V2C操作(例如,消息传递步骤中,其中消息从VN 331传递到CN 301,消息从VN 332传递到CN 301,然后消息从VN 333传递到CN 301),Tanner图300-2显示将消息从CN 301传递到VN 331-333的C2V操作(例如,消息传递步骤中,其中消息从CN 301传递到VN 331,消息从CN 301传递到VN 332,然后消息从CN 301传递到VN 333)。应当理解,关于Tanner图300-1中所示的LDPC解码操作,要么已经执行了C2V操作以最初将消息从CN 301传递到VN 311-333,要么已经执行了先前迭代。在提供关于下一个CN的消息传递操作中,Tanner图300-3显示了将消息从VN331-334传递到CN 302的V2C操作(例如,消息传递步骤中,其中消息从VN 331传递到CN 302,消息从VN 332传递到CN 302,消息从VN 333传递到CN 302,然后消息从VN 334传递到CN 302),Tanner图300-4显示了将消息从CN 302传递到VN 331-334的C2V操作(例如,消息传递步骤中,其中消息从CN 302传递到VN 331,消息从CN302传递到VN 332,消息从CN传递302到VN 333,然后消息从CN 302传递到VN334)。
LDPC解码器的逻辑实现了在上述C2V和V2C操作中对LDPC码进行解码的算法。例如,LDPC解码器使用的LDPC解码算法可以包括最小-和算法、和-积算法、信念传播算法(beliefpropagation algorithm)或消息传递算法。为了帮助理解本发明的概念,将讨论利用最小-和算法的示例。然而,应当理解,这里的概念不限于与该示例的LDPC解码器算法有关的应用。
在使用最小和算法的LDPC解码器的操作中,当将消息(例如,)从VN传递到CN时,在V2C操作中使用了一个最小阶段(min stage),如图3C所示。如图示实施例中所示,LDPC解码器的逻辑(例如,使用比较器逻辑)可以确定关于从VN连接到CN的传递的消息的第一最小值(例如,)的第一最小值),以及关于从VN连接到CN的传递的消息的第二最小值(例如,)的第二最小值)。LDPC解码器的逻辑(例如,使用XOR逻辑)可以进一步确定从VN连接到CN的传递的消息的符号(例如, 其中sign=1表示负)。从连接的VN传递的消息可以由LDPC解码器的逻辑(例如,使用算术逻辑)根据先前在解码的前一个迭代中从CN传递的消息中提供的数据来计算。
V2C消息可以计算如下:
在该示例的LDPC解码器的C2V操作中,当将消息从CN传递到VN时,使用了一个求和阶段(sum stage),如图3E所示。如图示实施例中所示,LDPC解码器的逻辑(例如,使用比较器逻辑)可以如下确定关于从CN传递到连接的VN的消息的数值:
例如,从CN 301传递到VN 331的消息的符号可以计算为:其中sign=1表示负。从CN传递的消息可以由LDPC解码器的逻辑(例如,使用算术逻辑)用于计算将在解码的后续迭代中的V2C操作中提供给CN的消息。如图3F所示,例如,从CN 301传递的消息可以用于计算 用于从VN 331传递到CN301的后续消息。该计算可以更一般地陈述如下:
对于其他连接的VN中的每一个,可以进行类似于上述的计算。
前述最小和算法的多次迭代(例如,根据图3B的Tanner图的重复处理,其中为消息所示的迭代指示符(t)在每次迭代中递增)可由LDPC解码器执行,在每次迭代中评估求解奇偶校验方程。QC-LDPC解码器在执行上述顺序最小和解码过程中实现的消息处理步骤可以表示为以下消息序列(其中粗体步骤实现最小阶段(min-stage)计算,未加粗步骤实现求和阶段(sum-stage)计算):
当满足所有奇偶校验方程时,可以结束该迭代处理,被解码的码块的有效码字被指示出来。
前述示例的BG矩阵390可以更一般地由矩阵项Bi,j表示,如下:
使用上述通用BG矩阵表示,仅考虑连接边缘,顺序最小和解码过程可以表示如下(其中粗体步骤实现最小阶段计算,未加粗步骤实现求和阶段计算):
B1,1→B1,2→B1,3→B1,1→B1,2→B1,3→B2,1→B2,2→B2,3→B2,4→B2,1→B2,2→B2,3→B2,4→B1,1→…
上面的例子显示了一个简化的QC-LDPC解码过程,其中提升参数Z=1。关于QC-LDPC码,可以使用高阶提升参数(也称为提升值、提升大小或扩展因子)来提高解码可靠性。图4显示了实施更高阶提升参数(例如,Z>1,如5G网络实施的Z={2,...,384})的例子中的BG矩阵490和相应的Tanner图400。在图4的示例中,Tanner图400表示与BG矩阵490的矩阵相同的LDPC码,其中BG矩阵根据以下表示:
与上面讨论的Tanner图300一样,图4的Tanner图400包括两组不同的节点(CN和VN)。高阶提升参数的实施提供了包括与所实施的提升参数值相对应的多个节点的节点集群(例如,校验节点集群(CNC)401和402每个包括Z个CN的集群,变量节点集群(VNC)431-434每个包含Z个VN的集群)。如上例所示,边缘仅连接不同节点集的节点。然而,BG矩阵的每个条目都由[ZxZ]单位矩阵扩展。因此,从图4可以看出,连接VNC与CNC的每束边缘(例如,B1,1,B1,2,B1,3,B1,4,B2,1,B2,2,B2,3,和B2,4)包括与正在实施的提升参数相对应的边缘的数量(Z,其中Z={2,…,384}用于5G网络实施)。即,在连接CNC和Tanner图400中VNC中相应VNC的边缘上有Z条边缘,相应地,VNC 431-434的每个输入包括Z个LLR。
在根据Tanner图400的QC-LDPC解码操作中,在CNC和连接的VNC之间有Z个消息传递,其中有一个预定的循环移位。例如,循环移位(对于边缘束B1,1,由循环移位环461代表)可以由关于V2C消息提供的移位器(图4的图示中未示出)实施,在CN和VN之间传递消息时,对这些束组的消息提供了一个反循环移位(对于边缘束B1,1,由反循环移位环462表示)。BG矩阵的元素值表示LDPC解码过程中使用的循环移位值(BG的负值表示没有连接,因此没有循环移位)。因此,图4的示例中提供的循环和反循环移位的值与BG矩阵490的非负值相一致。也就是说,根据所示示例的操作,当从VNC 431向CNC 401传递消息时,提供循环移位1,当从CNC 401向VNC 431传递消息时,提供反循环移位1,当从VNC 432向CNC 401传递消息时,提供循环移位0,当从CNC 401向VNC 432传递消息时,提供反循环移位0,从VNC 433向CNC 401传递消息时,提供循环移位1,当从CNC 401向VNC 433传递消息时,提供反循环移位,当从VNC 431向CNC 402传递消息时,提供循环移位0,当从CNC 402向VNC 431传递消息时,提供反循环移位0,当从VNC 432向CNC 402传递消息时,提供循环移位2,当从CNC 402向VNC 432传递消息时,提供反循环移位2,当从VNC 433到CNC 402传递消息时,提供循环移位0,当从CNC 402向VNC 433传递消息时,提供反循环移位0,当从VNC 434向CNC 402传递消息时,提供循环移位1,当从CNC 402向VNC 434传递消息时,提供反循环移位1。
如关于Tanner图300所讨论的,根据Tanner图400的传统LDPC解码操作顺序地将消息从VNC传递到CNC(V2C),然后从CNC传递到VNC(C2V),一个CNC接一个CNC地传递。然而,当消息在CNC和VNC之间传递时,根据BG矩阵的相应元素的值提供循环移位。如前述最小和算法、和积算法、信念传播算法和消息传递算法之类的算法,可以由LDPC解码器的逻辑使用,对于适当移位的消息,以解码LDPC码。
图5A-5C显示了示例LDPC码的各个Tanner图构造的片段视图,以帮助了解QC-LDPC解码器的操作,其中图5A显示提升参数Z=1的示例,图5B显示提升参数Z=3的示例,图3C显示提升参数Z=384的示例(例如,5G网络实施中的Z=Zmax)。如图5A的示例所示,对应于图3A的Tanner图300的LDPC码的例子的Tanner图构造可以在1个片中实现(即,对应于提升参数Z=1的片数),其中当消息在CN和VN之间传递时没有提供数据循环/反循环移位。然而,如图5B所示,对应于图4的Tanner图400的实例的LDPC码的Tanner图构造,其提升参数Z=3,可以在3个片中实现(即,对应于提升参数Z=3的片数),其中当消息在CNC和VNC之间使用移位器540传递时,数据在不同片之间循环/反循环移位。同样,如图5C所示,对应于图4的Tanner图400的另一个实例的LDPC码示例的Tanner图构造,其提升参数Z=384,可以在384个片中实现(即,与提升参数Z=384对应的片数),其中当消息在CNC和VNC之间使用移位器540传递时,数据在的不同片中循环/反循环移位。
传统的LDPC解码器一次只能解码一个任意大小的码块。例如,参考图5C的提升参数Z=384的例子,LDPC解码器的硬件被配置为适应Z=384(即,提供384片的实施)。然而,如果提升参数很小(例如,提升参数Z=16),则在LDPC解码操作的整个迭代过程中,只有一小部分片断被激活,而其他片断则空闲。这在图6中示出,对于提升参数Z=16的情况,片1-16包括活动片,片17-384在根据传统LDPC解码器操作的整个解码过程中保持闲置。
图7显示了传统上实现的可重置可扩展移位器配置,以适应关于LDPC解码器的不同比特大小的数据的数据移位,例如图2A的单码字QC-LDPC解码器200a。特别是,图7显示了典型的可重置移位器实现的可扩展操作,其中移位器适应多达8比特数据移位,并且数据移位的实例涉及5比特数据(例如,Z=5,Zmax=8)。这种传统的可重置可扩展移位器的逻辑电路是基于移位器可以处理的输入数据的最长比特长度来设计的。在操作中,当处理具有较短比特长度的输入数据时,部分逻辑电路是空闲的。例如,如图7所示,尽管移位器可重置,以适应小于移位器支持的数据比特的完整补码的数据移位,但在数据移位的特定实例中,移位器中不需要对缩小的输入进行数据移位的那部分仍然是空闲的(例如,与数据位位置[7:5]有关的电路保持空闲,而与数据位位置[4:0]有关的电路执行对5比特输入数据的移位)。
如美国专利号10,877,729(其公开内容以引用方式并入本文)中所示,数据移位器的更新配置提供了可重置分段可扩展移位器,支持不同比特长度的数据移位并行进行。例如,可以提供不同比特长度的消息,并行地进行单独的数据移位。这种可重置分段可扩展移位器的一个示例,如可用于图2B的并行码字QC-LDPC解码器200b,被示为图8的可重置分段式可扩展移位器840。
图8示例的可重置分段式可扩展移位器840以2段(M=2)配置实现。特别是,图8显示了配置为8比特2段实施的可重置分段式可扩展移位器840,其中段1提供向右3比特循环移位,段2提供向右2比特循环移位(例如,移位器大小N=8,段数M=2,段1大小N_1=5,段1移位值S_1=3,段1移位方向D_1=右,段1移位类型T_1=循环,段2大小N_2=3,段2移位值S_2=2,段2移位方向D_2=右,段2移位类型T_2=循环)。图8例子的输入数据(X)包括8比特,其中输入数据可表示为X[7:0](例如,X[7:0]={X[7],X[6],X[5],X[4],X[3],X[2],X[1],X[0]}),输出数据可表示为Y[7:0](例如,Y[7:0]={Y[7],Y[6],Y[5],Y[4],Y[3],Y[2],Y[1],Y[0]})。在图8的示例中,段数(M)为2,其中段1包括5比特,段2包括3比特,使得X_1[4:0]是段1的输入,X_2[2:0]是段2的输入,Y_1[4:0]是段1的输出数据,Y_2[2:0]是段2的输出数据。因此,X[7:0]={X[7],X[6],X[5],X[4],X[3],X[2],X[1],X[0]}={X_2[2:0],X_1[4:0]},其中X_1[4:0]={X[4],X[3],X[2],X[1],X[0]},X_2[2:0]={X[7],X[6],X[5]}。同理,Y[7:0]={Y[7],Y[6],Y[5],Y[4],Y[3],Y[2],Y[1],Y[0]}={Y_2[2:0],Y_1[4:0]},其中Y_1[4:0]={Y[4],Y[3],Y[2],Y[1],Y[0]},Y_2[2:0]={Y[7],Y[6],Y[5]}。
图9显示了关于可重置分段式可扩展移位器配置的进一步细节,该配置可根据本发明的实施例被利用,用于划分成不同大小的多个段以并行执行不同移位值的循环移位。特别是,图9所示的可重置分段式可扩展移位器940包括实现分段配置的输入级910、移位级920和输出级930。
输入级910可以包括可配置存储器元件(例如,随机存取存储器(RAM)、闪存、磁存储器、光存储器等)和/或可控数据路径(例如,可控数据路径元件),适合于存储输入到提供移位的可重置分段式可扩展移位器940的消息数据,并且适合于将该数据与移位级920的可重置分段可控地相关联。输入级910可用于将输入数据(X)的一个或多个消息(例如,X_1、X_2、...X_)与移位器级920的相应段相关联。例如,在图示示例中,输入数据(X)包括消息X_1、X_2、X_3、...X_M,其中输入级910促进消息X_1的N_1个比特(例如,消息X_1的比特0到N_1-1)与移位级920的段1的对应,消息X_2的N_2个比特(例如,消息X_2的比特0到N_2-1)与移位器级920的段2对应,消息X_3的N_3个比特(例如,消息X_3的比特0到N_3-1)与移位级920的段3的对应,以及消息X_M的N_M个比特(例如,消息X_M的比特0到N_M-1)与移位级920的段M的对应。
移位级920可以包括适合实现数据移位的可控数据路径元件(例如,多路复用器和相关控制元件)。实施例的这种数据路径元件可实施各种移位器结构,例如对数移位器配置、桶形移位器配置、组合移位器配置等。移位级920提供可重置的、可扩展的段,可用于实现相对于输入数据的多个消息的并行的数据移位。移位级920的控制器921在图示的实施例中显示,用于根据与输入数据(例如,X=X_1,X_2,X_3,...X_M)相关的数据移位命令(例如,CMD_1、CMD_2、...CMD_M)向移位级920的段提供移位命令。数据移位由移位级920的各段(例如,段1左循环、段2左循环、段M右循环)根据各自的数据移位命令独立提供,从而一次并行实现多个单独的不同数据移位。
应当理解,虽然在图9的示例中说明了循环移位的实施,但是可以配置一个或多个段以便在由可重置分段式可扩展移位器940进行的数据移位的任何实例中不提供数据移位操作。例如,在所示的数据移位实例中,在图9示例性实施例中所示的段3没有用于数据移位(例如,空闲或被配置为直接传递数据位而不移位)。这种未使用的段的位置可以在实施例的可重置分段式可扩展移位器内的任何地方,例如方便地适应各种消息长度,以方便从相应消息的最低有效位(LSB)开始的段等。
可重置分段式可扩展移位器940被配置为关于输入数据的每个消息的数据宽度和/或移位命令是可重新配置的。例如,移位级920在段的数量(M)(例如,1≤M≤N)、每个段的大小(N_m)(例如,N≥N_m≥2)、每个段的移位值(S)(S_m)(0≤S_m≤N)、每个段的移位方向(D)(D_m)(例如,D_m是左或右)、和/或每个段的移位类型(T)(T_m)(例如,T_m是逻辑的、算术的或循环的)的方面是可重新配置的,其中任何一个或全部可以由控制器921控制。提供给可重置分段式可扩展移位器940(例如,提供给控制器921)的各个数据移位命令(例如,CMD_1、CMD_2、...CMD_M)可以包括各种这样的信息(例如,各个段的大小(N_m)、各个段的移位值(S_m)、各个段的移位方向(D_m)、各个段的移位类型(T_m)等)。此外,或者说,一个或多个通用数据移位命令(例如,CMD,在所示实施例中未显示)包括各种此类信息(例如,段的数量(M)、每个段的大小(N_m)、全局适用的移位值(S)、全局适用的移位方向(D)、全局适用的移位类型(T)等)可以提供给实施例的可重置分段可扩展移位器940(例如,提供给控制器921),用于控制普遍适用于移位器和/或其段的方面。
输出级930可包括可配置存储器元件(例如,RAM、闪存、磁存储器、光存储器等)和/或可控数据路径(例如,可控数据路径元件),适合于将移位级920的可重置的段与输出数据的消息可控地关联起来,以存储提供移位的消息的移位数据。输出级930可用于将移位级920的段与输出数据(Y)的一个或多个消息(例如,Y_1、Y_2、...Y_M)相关联。例如,在图示示例中,输出数据(Y)包括消息Y_1、Y_2、Y_3、...Y_M,其中输出级910便于将消息Y_1的N_1个移位比特数(例如消息Y_1的比特0到N_1-1)与移位级920的段1相对应,将消息Y_2的N_2个移位比特数(例如,消息Y_2的比特0到N_2-1)与移位级420的段2相对应,将消息Y_3的N_3个未移位比特(例如,消息Y_3的比特0到N_3-1)与移位级920的段3(在该图示示例中空闲)相对应,以及将消息Y_M的N_M个移位比特(例如,消息Y_M的比特0到N_M-1)与移位级20的段M相对应。
图10显示了在并行码字QC-LDPC解码器(例如图2B的并行码字QC-LDPC解码器200b)实施中使用可重置分段式可扩展移位器(例如,图8的可重置分段式可扩展移位器840和图9的可重置分段式可扩展移位器940的配置)。特别是,图10显示了并行码字QC-LDPC解码器配置的片段图,该并行码字QC-LDPC解码器配置利用可重置分段式可扩展移位器,用于并行解码多个码块。在图10的示例中,并行码字QC-LDPC解码器1000利用可重置分段式可扩展移位器1040提供对总组合提升参数大小(例如,ZIN_1+ZIN_2+…ZIN_M)小于或等于Z(即本例中384)的多个码块的并行处理。所示实例的可重置分段式可扩展移位器1040被配置为提供活动部分1001-1003,其配置用于并行处理来自多个输入信号的码块,如IN_1、IN_2、和IN_3(例如,可以对应于来自多个连接终端的信号,该多个连接终端由一个基站服务,该基站的接收器使用并行码字QC-LDPC解码器)。
在操作中,并行码字QC-LDPC移位器1000的每个活动区域并行处理各自的码块(例如,活动部分1001处理IN_1的码块,活动部分1002处理IN_2的码块,活动部分1003处理IN_3的码块)。例如,具有提升参数Z=16的IN_1的码块可以提供给并行LDPC解码器1000的片1至片16,以便在当消息在CNC和VNC之间传递时提供适当的数据循环和反循环移位。由于提升参数Z=16小于并行码字QC-LDPC解码器1000容纳的总提升参数Z=384,因此使用并行码字QC-LDPC解码器1000中未被IN_1码块的解码操作所使用的部分,来为其他码块提供解码操作。在所示示例中,具有提升参数Z=(X-17+1)的IN_2码块被提供给并行码字QC-LDPC解码器1000的片17至片X,以便当消息在CNC和VNC之间传递时提供适当的数据循环和反循环移位。同样,具有提升参数Z=(379-Y+1)的IN_3码块被提供给并行码字QC-LDPC解码器1000的片Y到片379,以便当消息CNC和VNC之间传递时提供适当的数据循环和反循环移位。
并行码字QC-LDPC解码器1000的每个活动部分的码块输入经历由QC-LDPC解码器实施的相同系列的消息处理步骤。也就是说,在说明的例子中,其中码块被提供在并行码字QC-LDPC解码器1000的输入端IN_1、IN_2和IN_3,三个码块均根据相同的解码程序进行处理,该解码程序包括多个串行执行的解码处理步骤。例如,在执行最小和(min-sum)解码过程时,输入IN_1处的一个码字(codeword1)将经历如下一系列解码处理步骤(其中粗体步骤实现最小阶段(min-stage)计算,非粗体步骤实现求和阶段(sum-stage)计算):
其中,当满足所有奇偶校验方程时,结束对codeword1的迭代处理。同样,输入IN_2处的码字(codeword2)将经历如下一系列解码处理步骤:
其中,当满足所有奇偶校验方程时,结束对codeword2的迭代处理。同样,输入IN_3处的码字(codeword3)将经历如下一系列解码处理步骤:
其中,当所有的奇偶校验方程都得到满足时,对codeword3的迭代处理就结束了。
由上可知,虽然示例的三个码块输入由并行码字QC-LDPC解码器的三个分段同时解码,但由并行码字QC-LDPC解码器实施的多个消息处理步骤,在每个码字的解码过程中仍可能出现明显的延迟。相反,本发明实施例的低延迟分段式QC-LDPC解码器实施了一个QC-LDPC解码器,该解码器被配置为分成多个分段,并同时处理一个码字的多束边缘,以加速码字的解码过程。例如,一些实施例的低延迟分段式QC-LDPC解码器可用于促进关于需要低延迟和可靠通信服务的车联网(V2X)通信的低延迟通信。
图11显示了低延迟分段式QC-LDPC解码器1100的片段视图,该解码器1100实施可重置分段式可扩展移位器1140,用于并行处理码字的多束连接CNC和相应VNC的边缘。在所示示例中,低延迟分段式QC-LDPC解码器1100提供多段码字并行边缘束处理配置,例如可利用该配置通过对正在被解码的码字的消息束实施并行处理,来加速解码过程。例如,图11的多段码字并行边缘束处理配置便于同时处理连接CNC1和VNC1的边缘束B1,1、连接CNC1和VNC2的边缘束B1,2、连接CNC1和VNC3的边缘束B1,3(例如,对应于图4的上述示例BG矩阵和相应的Tanner图,其中BG矩阵位置i=1、j=4的负条目对应于Tanner图中的CNC1和VNCv之间没有连接或边缘)。也就是说,低延迟分段式QC-LDPC解码器1100的段1(例如,活动部分1101)对连接CNC1和VNC1的边缘束B1,1的消息提供解码处理,段2(例如,活动部分1102)对连接CNC1和VNC2的边缘束B1,2的消息提供解码处理,段3(例如,活动部分1103)对连接CNC1和VNC3的边缘束B1,3的消息提供解码处理,其中段1、段2和段3中的每一个都是大小为Z(即,包括Z个边缘)。因此,实施例的可重置分段式可扩展移位器1140包括被配置为分成多个段的移位器,支持同时处理正在解码处理的码字的解码任务。根据一些实施例,可重置分段式可扩展移位器1140可包括图9的可重置分段式可扩展移位器940的实例,其被配置为同时处理一个码字的多束边缘。
根据本发明的实施例,一个码字的解码处理任务被划分并分配给低延迟分段式QC-LDPC解码器的不同段,使得低延迟分段式QC-LDPC解码器并行处理多个消息束(或边缘)。下表显示了根据本文概念的对一个码字的多束边缘的并行处理。特别是,下表提供了由QC-LDPC解码器在执行传统的顺序最小和解码过程时实施的消息处理步骤(例如,上面关于图3B的示例描述的消息序列),以及由低延迟分段式QC-LDPC解码器在执行最小和解码过程时实施的消息处理步骤,其中关于同一CNC的多束边缘的消息被同时处理(例如,对应于图11示例的三个分段消息序列)。
上表中的消息处理步骤表示前述描述的示例BG矩阵 的解码消息处理的一次迭代,其中这些步骤对连接CNC1和VNC1(B1,1)、CNC1和VNC2(B1,2)、CNC1和VNC3(B1,3)、CNC2和VNC1(B2,1)、CNC1=2和VNC2(B2,2)、CNC2和VNC3(B2,3),以及CNC2和VNC4(B2,4)的边束提供处理。与上述各种消息流一样,上表中的粗体消息符号对应于实施最小阶段计算的步骤,而非粗体符号对应于实施求和阶段计算的步骤。
在图11的示例中,码字的解码处理任务被划分并分配给低延迟分段式QC-LDPC解码器的不同段,以便提供对码字的CNC的多个消息束的并行处理,如上表的示例性消息处理步骤所示。该示例低延迟分段式QC-LDPC解码器配置的多段(例如,三段)码字并行边缘束处理,在六个步骤中执行解码处理,进行解码消息处理迭代。相比之下,传统QC-LDPC解码器的顺序消息处理在十四步内对解码消息处理迭代进行解码处理。因此,可以看出,根据本发明概念,通过实施低延迟分段式QC-LDPC解码器,每个码字的解码过程中所经历的延迟可以明显减少(例如,在上述示例中为40%左右)。
该示例的码字的解码处理任务已经被划分并分配给低延迟分段式QC-LDPC解码器的不同段,以便关于同一CNC的多个边缘束的消息被并行处理。例如,在低延迟分段式QC-LDPC解码器使用最小和(min-sum)算法的实施中,多个消息束的最小阶段(min-stage)计算是并行执行的,并且多个消息束的求和阶段(sum-stage)计算是并行执行的。示例的并行消息束处理配置提供了这样的操作,其中通常利用其他计算结果的计算(例如,求和阶段计算利用了最小阶段计算的结果)仍然可以利用那些计算。尽管计算是由示例的低延迟分段式QC-LDPC解码器配置并行执行的,但各种边缘束的计算结果等同于在传统顺序解码过程中执行的相应计算的结果。也就是说,上表中为顺序消息处理步骤表示的消息处理步骤中的最小阶段计算和求和阶段计算的结果,与并行消息处理步骤表示的消息处理步骤中的相应最小阶段计算和相应求和阶段计算的结果相同。因此,根据本发明实施例的低延迟分段式QC-LDPC解码器操作在相同数量的解码处理迭代中收敛于一个解码码字(即满足所有奇偶校验方程)。然而,如上所示,低延迟分段式QC-LDPC解码器的每次解码处理迭代比传统的顺序消息解码过程实施更少的消息处理步骤。
应当理解,虽然图11中所示的示例性低延迟分段式QC-LDPC解码器被显示为分成三个段,但根据本文概念可以实施不同数量的段(例如,之间有或没有空闲部分)。例如,根据低延迟分段式QC-LDPC解码器的多个段对单个码字的解码任务进行分割以同时处理的实施例,可以实施总共M个段,其中M=floor[Zmax/Z],Zmax=最大码字大小(例如上面5G例子中的384),Z=每个段的大小。因此,可以由实施例的低延迟分段式QC-LDPC解码器1100并行处理两个或更多个边缘束B1,1、B1,2、B1,3、B1,3、B1,4、...的消息束,两个或更多个边缘束B2,1、B2,2、B2,3、B2,4、...的消息束等,其中在并行处理中使用的段数M符合前述规定。这样的分段并行处理可能特别适合应用于相对较小的输入码字(例如,与V2X通信相关的码字),其中低延迟分段式QC-LDPC解码器的资源足以支持划分和分配任务。
此外,虽然以上针对一个码字的多个消息束的并行处理的示例分配了解码处理任务,以便关于同一CNC的多个边缘束的消息被并行处理,但是应当理解,根据本文概念,可以实施其他方案来划分和分配一个码字的解码处理任务。例如,可以将一个码字的解码处理任务划分并分配给一些实施例的低延迟分段式QC-LDPC解码器的不同段,以便并行处理关于多个CNC的边缘束的消息。因此,一个或多个边缘束B1,1、B1,2、B1,3、B1,3、B1,4、...的消息束可以与一个或多个边缘束B2,1、B2,2、B2,3、B2,4、...的消息束并行处理,其中段数M符合前述规定。
图12显示了低延迟分段式QC-LDPC解码器1200的片段视图,该解码器1200实施可重置分段式可扩展移位器1240,用于并行处理一个码字的连接多个CNC和相应VNC的多束边缘。与上述图11的示例一样,低延迟分段式QC-LDPC解码器1200提供多段码字并行边缘束处理配置,例如可利用该配置通过对被解码的码字的消息束实施并行处理,来加速解码过程。图12的多段码字并行边缘束处理配置便于同时处理连接CNC1和VNC1的边缘束B1,1、连接CNC1和VNC2的边缘束B1,2、连接CNC1和VNC3的边缘束B1,3、以及连接CNC2和VNC1的边缘束B2,1(例如,对应于上述图4的BG矩阵和相应的Tanner图,其中BG矩阵位置i=1,j=4的负条目对应于Tanner图中的CNC1和VNCv之间没有连接或边缘)。也就是说,低延迟分段式QC-LDPC解码器1200的段1(例如,活动部分1201)对连接CNC1和VNC1的边缘束B1,1的消息提供解码处理,段2(例如,活动部分1202)对连接CNC1和VNC2的边缘束B1,2的消息提供解码处理,段3(例如,活动部分1203)对连接CNC1和VNC3的边缘束B1,3的消息提供解码处理,段4(例如,活动部分1204)对连接CNC2和VNC1的边缘束B2,1的消息提供解码处理。因此,实施例的可重置分段式可扩展移位器1240包括多个分段的移位器,支持同时处理正在进行解码处理的码字的解码任务。根据一些实施例,可重置分段式可扩展移位器1240可以包括图9的可重置分段式可扩展移位器940的实例,其被配置为同时处理一个码字的多束边缘。
下表既提供了由QC-LDPC解码器在执行传统的顺序最小和解码过程消息处理过程中实施的消息处理步骤(例如,上面关于图3B的示例描述的消息序列),又提供了由低延迟分段式QC-LDPC解码器在执行最小和解码过程中实施的消息处理步骤,其中关于多个CNC的多束边缘的消息被同时处理(例如,对应于图12示例的四个分段消息序列)。
与上表一样,上表中的消息处理步骤表示对前面描述的示例的解码消息处理的一次迭代,其中这些步骤对连接CNC1和VNC1(B1,1)、CNC1和VNC2(B1,2)、CNC1和VNC3(B1,3)、CNC2和VNC1(B2,1)、CNC1=2和VNC2(B2,2)、CNC2和VNC3(B2,3)、CNC2和VNC4(B2,4)的边缘束提供处理。与上述各种消息流一样,上表中的粗体消息符号对应于实施最小阶段计算的步骤,而非粗体符号对应于实施求和阶段计算的步骤。
在图12的示例中,码字的解码处理任务被分割并分配给低延迟分段式QC-LDPC解码器的不同段,以便关于一个码字的多个CNC的多个消息束提供并行处理,如上表的示例性消息处理步骤所示。特别是,图12的示例提供了关于第一CNC的多个消息束(例如,连接到CNC1的边缘束B1,1、B1,2、B1,3的消息束)的并行处理和关于多个CNC的多个消息束(例如,连接到CNC1的边缘束B1,1、B1,2、B1,3的消息束和连接到CNC2的边缘束B2,1的消息束)的并行处理。该示例低延迟分段式QC-LDPC解码器配置的多段(例如,四段)码字并行边缘束处理,在四个步骤中执行解码消息处理迭代的解码处理。如上所述,传统QC-LDPC解码器的顺序消息处理在十四个步骤中执行解码消息处理迭代的解码处理。因此,可以看出,根据本发明概念,通过低延迟分段式QC-LDPC解码器的实施,每个码字的解码过程中经历的延迟可以明显减少(例如,在上述示例中为60%左右)。
本示例的码字的解码处理任务已经被分割并分配给低延迟分段式QC-LDPC解码器的不同段,以便关于多个CNC的多个边缘束的消息被并行处理。因此,在低延迟分段式QC-LDPC解码器使用最小和算法的实施中,不仅可以并行执行多个消息束的最小阶段计算和并行执行多个消息束的求和阶段计算,而且可以并行执行一个或多个消息束的最小阶段计算和一个或多个求和阶段消息束。示例的并行消息束处理配置提供的操作,其中通常利用其他计算的结果的计算(例如,求和阶段计算利用最小阶段计算的结果),在某些情况下可以在其他计算已经执行之前执行。因此,各种边缘束的一些计算的结果可能不等同于在传统顺序解码过程中执行的相应计算的结果。也就是说,上表中为顺序消息处理步骤表示的消息处理步骤中的最小阶段计算和求和阶段计算的结果可能不等于为并行消息处理步骤表示的消息处理步骤中的相应最小阶段计算和相应求和阶段计算的结果。尽管如此,根据本发明实施例的低延迟分段式QC-LDPC解码器操作预期在大约(例如,±5%)相同数量的解码处理迭代中收敛于一个已解码的码字(即满足所有奇偶方程)。然而,如上所示,低延迟分段式QC-LDPC解码器的每次解码处理迭代实施的消息处理步骤比传统的顺序消息解码过程少得多。因此,即使在多段码字并行边缘束处理配置所利用的解码处理迭代次数稍多的情况下,码字的解码过程也会明显减少。
应当理解,虽然图11和12中所示的示例性低延迟分段式QC-LDPC解码器被显示为关于单个码字提供多段码字并行边缘束处理,但实施例的低延迟分段式QC-LDPC解码器是可扩展的,以适应各种数量的码字的解码处理。例如,来自多个输入信号的码字(例如,可对应于来自多个连接终端的信号,这些终端由一个基站服务,该基站的接收机使用并行码字QC-LDPC解码器)可以并行处理,其中码字的并行处理可以实施多段码字并行边缘束处理。
图13显示了低延迟分段式QC-LDPC解码器1300的片段视图,该解码器1300实现了可重置分段式可扩展移位器1340,用于并行处理连接CNC和相应VNC的多个码字的多束边缘。与以上图11和12的示例一样,低延迟分段式QC-LDPC解码器1300提供多段码字并行边缘束处理配置,例如可利用该配置通过对正在解码的码字的消息束实施并行处理来加速解码过程。图13的多段码字并行边缘束处理配置,便于同时处理连接CNC1和VNC1的第一码字的边缘束B1,1(例如,IN_1,B1,1对应于来自多个输入信号的第一输入信号的码块)、连接CNC1和VNC2的第一个码字的边缘束B1,2(例如,IN_1,B1,2对应于来自第一输入信号的码块)、连接CNC1和VNC1的第二码字的边缘束B1,1(例如,IN_2,B1,1对应于来自多个输入信号的第二输入信号的码块)、以及连接CNC1和VNC2的第二码字的边缘束B1,2(例如,IN_2,B1,2对应于来自第二输入信号的码块)。也就是说,低延迟分段式QC-LDPC解码器1300的段1(例如,活动部分1301)对连接CNC1和VNC1的边缘束B1,1的消息提供解码处理,段2(例如,活动部分1302)对连接CNC1和VNC2的第一个码字的边缘束B1,2的消息提供解码处理,段3(例如,活动部分1303)对连接CNC1和VNC1的第二码字的边缘束B1,1的消息提供解码处理,段4(例如,活动部分1304)对连接CNC1和VNC2的第二码字的边缘束B1,2的消息提供解码处理。因此,实施例的可重置分段式可扩展移位器1340包括移位器,该移位器被配置为划分为多个段,支持同时处理对正在进行解码处理的多个码字的解码任务。根据一些实施例,可重置分段式可扩展移位器1340可包括图9的可重置分段式可扩展移位器940的实例,其被配置为同时处理多个码字的多束边缘。
该示例的多个码字的解码处理任务已经被分割并分配给低延迟分段式QC-LDPC解码器的不同段,以便关于多个码字中的每一个码字的相同CNC的多个边缘束的消息全部并行处理。因此,与图11和12的多段码字并行边缘束处理配置一样,在解码消息处理的每次迭代中实现的步骤更少。
通过上述示例的可重置分段式可扩展移位器1140、1240和1340为数据移位实施分段,其方法是关于数据移位级的每个路径提供单独的数据移位控制,以实施分段的不同数据移位命令,并并行控制多个数据移位。然而,应当理解,本发明实施例的低延迟分段式QC-LDPC解码器可以用不同的移位器核心配置来构造。例如,实施例的低延迟分段式QC-LDPC解码器及其可重置分段式可扩展移位器可被实施以适应相对较大的提升参数(例如,对于5GQC-LDPC解码器实施,Z=384)和/或相对较大数量的分段(例如,总共M个段,其中M=floor[384/Z],Z=5G示例中每个段的大小)。因此,在某些情况下,实施与数据移位级的每个路径有关的单独数据移位控制的移位器核心配置的控制信号结构可能变得相对复杂。因此,实施例可以实施不太复杂的可重置分段式可扩展移位器配置,该配置仍然是可重新配置的,以支持关于各种多段码字并行边缘束处理配置的数据移位。
图14显示了可重置分段式可扩展移位器配置,其可用于提供对根据本发明概念正在解码的一个或多个码字的消息束的并行处理。图14中所示的可重置分段式可扩展移位器1440实施分节式配置,其中左移和右移部分中的每一个(图中表示了其中任意一个)都被分成多个分节(section),其中每个分节的数据路径共享相同的控制信号。例如,可重置分段式可扩展移位器可被划分为数据宽度相等、数据宽度不同或其组合的多个分节,其中,虽然每个分节可单独控制以提供不同的数据移位(例如,方向和/或移位值),但一个分节的所有数据被一起控制以进行相同的数据移位(例如,方向和移位值)。例如,这样的配置可用于可重置分段式可扩展移位器1140、1240和1340的实施中,以在分段数量和硬件成本之间提供令人满意的权衡。
用于实施对一个或多个正被解码的码字的消息束进行并行处理的分段,可以通过为每个分段配置一组一个或多个分节来实现,其中对于一个特定分段的一组分节提供一个聚合数据宽度,其等于到或大于该分段的数据宽度。因此,对于一个或多个消息的消息束,可以在每个分段中提供数据移位,由一个或多个分节的各个组托管(hosted),其中可以通过适当地控制每个分段的分节,来并行提供消息束的单独数据移位。
分节数量(n)和分节数据宽度(W)优选地与移位器数据宽度(N)相关,使得总数据被分段(例如,N=n*W)。在图14所示的可重置分段式可扩展移位器1440的示例性实施例中,移位器数据宽度N=384,分节数量n=24,每个分节的数据宽度W=16(例如,384=24*16)。M个分段可由可重置分段式可扩展移位器1440的各个分节组托管,其中分段的数量小于或等于移位器数据宽度(例如,1≤M≤N),分段的总尺寸小于或等于移位器数据宽度(例如,N_1+N_2+...N_M≤N)。
图14中所示的可重置分段式可扩展移位器1440的示例被配置为用于多段码字并行边缘束处理,促进对多个码字中的每个码字同时处理多个消息束,提供并行LDPC解码。特别是,可重置分段式可扩展移位器1440提供必要的移位给连接CNC1和VNC1的第一个码字的边缘束B1,1(例如,IN_1,B1,1对应于来自多个输入信号的第一输入信号的码块)、连接CNC1和VNC2的第一个码字的边缘束B1,2(例如IN_1,B1,2对应于来自第一输入信号的码块)、连接CNC1和VNC1的第二码字的边缘束B1,1(例如,IN_2,B1,1对应于来自多个输入信号的第二输入信号的码块)、连接CNC1和VNC2的第二个码字的边缘束B1,2(例如,IN_2,B1,2对应来自第二输入信号的码块)、连接CNC1和VNC3的第二个码字的边缘束B1,3(例如IN_2,B1,3对应于来自第二输入信号的码块)。即,可重置分段式可扩展移位器1440的段1(例如,活动部分1401)提供关于连接CNC1和VNC1的第一码字的边缘束B1,1的消息的移位,段2(例如,活动部分1402)提供关于连接CNC1和VNC2的第一码字的边缘束B1,2的消息的移位,段3(例如,活动部分1403)提供关于连接CNC1和VNC1的第二码字的边缘束B1,1的消息的移位,段4(例如,活动部分1404)提供关于连接CNC1和VNC2的第二码字的边缘束B1,2的消息的移位,段5(例如活动部分1405)提供关于连接CNC1和VNC3的第二码2的边束B1,3的消息的移位。因此,实施例的可重置分段式可扩展移位器1440包括被配置为分成多个分段的移位器,支持同时处理正在进行解码处理多个码字的解码任务。
实施例的可重置分段式可扩展移位器1440被配置为通过组合多个连续分节来划分为多个分段,以形成一个容纳大于单个分节的数据宽度的数据移位器。例如,在图14的示例中,n=0和n=1的分节被组合为分段1,n=2和n=3的分节被组合为分段2,提供活动部分1401和1402,用于其数据宽度大于各分节(例如,Z>W)的第一码字的消息束。同样在图14的示例中,n=5的分节用于分段3,n=6的分节用于分段4,n=7的分节用于分段5,提供活动部分1403、1404和1405,用于其数据宽度小于或等于各分节(例如,Z≤W)的第二码字的消息束。这种可重置分段式可扩展移位器配置提供了输入数据的每个消息的完全可重新配置的数据宽度和移位命令,并且非常适合用于并行LDPC解码器200的实施例。例如,在5G网络中的接收机的操作中(例如,实施5G BG1),如果N=24且W=16,那么实施例的并行LDPC解码器200可以同时解码24个提升参数Z≤16的码块。
前述分节移位器核心配置针对分节的每个路径实施了公共数据移位控制,因此在提供移位器核心的操作控制时使用较少的控制信号。然而,如在可重置分段式可伸缩移位器1440的分节配置的图示示例中可以看出,其他活动分节的未使用部分保持空闲。一个或多个未使用的(例如,空闲的)分节可能存在于形成一个或多个码字的分段的分节之间(例如,n=4的分节保持未使用,在第一码字的分段2和第二码字的分段3之间)。
图15A-15E显示了关于低延迟分段式QC-LDPC解码器1500的实施细节,该解码器1500被配置根为据本发明概念对正在进行解码过程的码字的多个消息束进行并行处理。在图15A-15E的图示中,表示V2C消息(是经过循环移位迭代后的V2C消息),表示C2V消息(是循环移位迭代后的C2V消息),表示一个变量节点消息,(t)表示迭代次数,i表示CNC的索引,j表示VNC的索引。
根据一些示例,低延迟分段式QC-LDPC解码器1500可以被配置用于5G网络中的接收器,并且因此可以适应具有各种提升参数大小的码块的解码,直到提升参数Z=384。在实施例的这种配置中,数据路径中的连接携带384个软消息。同样,图15A(图15A-1和15A-2)所示的低延迟分段式QC-LDPC解码器1500的实施例中的各种组件可以适当地扩展。例如,低延迟分段式QC-LDPC解码器1500的实施例可以包括384个实例的加法器/减法器逻辑1501,对应于最大容纳的提升参数Z=384。
图15A(图15A-1和15A-2)中所示的低延迟分段式QC-LDPC解码器1500图示了示例硬件实施,该示例硬件实施被配置对正在进行解码过程的一个码字的3个消息束进行并行处理(例如,上文描述的图11的示例的低延迟分段式QC-LDPC解码器1100的实施)。因此,在图15A(图15A-1和15A-2)的示例中所示的QC-LDPC解码操作中使用的BG矩阵1510包括存储BG矩阵的值信息的ROM2的3个实例(例如,ROM2 1512a-1512c),此外还有存储BG矩阵的索引信息的ROM1 1511和存储BG矩阵的边缘信息的ROM3 1513。在所示示例中,ROM2实例的地址路径(例如,rom_adder2)中所示的加法器(例如,对应于ROM2 1512b的加法器1514b和对应于ROM2 1512c的加法器1514c)提供存储器的下一个位置。
应当理解,低延迟分段式QC-LDPC的实施方案可以被配置以通过包括必要实例的BG矩阵值数据来并行处理各种数量的消息束,因此不限于图15A-15E的3个消息束示例。例如,可以通过包括必要实例的BG矩阵值ROM数据(例如,由额外的ROM2实例提供)来对正在进行解码过程的一个码字的4个消息束提供并行处理,例如在上面图12和13的低延迟分段式QC-LDPC解码器1200和1300的示例中。根据一些实施例,一些存储器元素的重复可以避免或减轻(例如,减少重复的实例),例如通过利用支持同时访问能力的多端口存储器(例如,多端口RAM代替图示示例的ROM2多个实例)。
所示示例的低延迟分段式QC-LDPC解码器1500利用多端口存储器,支持关于消息的同时访问能力,用于并行处理正在进行解码的码字的多个消息束。例如,SRAM1 1521和SRAM2 1522在所示实施例中被示为包括双端口存储器配置。示例的SRAM1 1521提供V2C和C2V消息的存储,示例的SRAM2 1522提供变量节点消息的存储。SRAM1 1521和SRAM2 1522的多端口实施有利于对各种消息的并发访问,根据本文概念,可以由消息束的并行处理调用。
低延迟分段式QC-LDPC解码器1500的实施例的可重置分段式可扩展移位器1540包括分段式移位器实施,其被配置用于捆绑低密度分段式QC-LDPC解码器的一个或多个CNC的边缘。例如,可重置分段式可扩展移位器1540可包括提供关于数据移位级的每个路径的单独数据移位控制的配置,例如上文关于可重置分段式可扩展移位器1140、1240和1340所描述的。此外或备选地,实施例的可重置分段式可扩展移位器1540可包括分节配置,其中每个分节的数据路径共享相同的控制信号,如上文关于可重置分段式可扩展移位器1440所描述的。
所示实施例的低延迟分段式QC-LDPC解码器1500在解码码块中利用最小和算法。在低延迟分段式QC-LDPC解码器1500的操作中,从VNC传递到连接的CNC的消息,可以通过低延迟分段式QC-LDPC解码器的逻辑(例如,使用加/减法器逻辑1501)从先前的在解码的先前迭代中从CNC传递的消息中提供的数据而计算出来。所示示例中的低延迟分段式QC-LDPC解码器1500的最小和逻辑1530包括用于提供从CNC传递到连接的VNC的消息的最小和逻辑1530。
实施例的绝对值(abs)模块1505、最小和逻辑1530、比较器模块1506和符号模块1507的操作提供了低延迟分段式QC-LDPC解码器1500的解码处理的校验节点消息(在循环移位之前)。在根据实施例的操作中,最小和逻辑1530的MIN1_MIN2模块1531可以计算关于从VNC传递到连接的CNC的消息的第一最小值(MIN1)和第二最小值(MIN2),用于确定关于从CNC传递到连接的VNC的消息的数值,如上面关于实施最小和算法的描述。图15B和15C显示了关于实施例的MIN1_MIN2模块1531的实施细节。特别是,图15B显示了一个示例的MIN1_MIN2模块1531的功能框图,其实施最小计算逻辑和支持分段的连接逻辑,促进消息束的并行处理。图15C显示了关于图15B的最小计算逻辑的细节,其中比较模块被实施以将较少数量的(A,B)向左移动以进行最小计算。
在所示示例中,由绝对值模块1505提供的(例如,由绝对值模块1505确定的绝对值)并输入到MIN1_MIN2模块1531的数据包括384个8-比特软消息(例如,Z=384和din_abs_value[383:0][7:0])。在该示例中,低延迟分段式QC-LDPC解码器1500被配置以并行处理正在解码的码字的3个消息束,因此输入数据被分成3段。例如,在示例中显示了段1(例如,din_abs_value_segment1[127:0][7:0]=din_abs_value[127:0][7:0]),段2(例如,din_abs_value_segment2[127:0][7:0]=din_abs_value[255:128][7:0])和段3(例如,din_abs_value_segment3[127:0][7:0]=din_abs_value[383:256][7:0]),每段占用128个8-比特数据。
如上面关于最小和算法操作所描述的,MIN1_MIN2模块1531对于从VNC连接到CNC的传递消息计算第一最小值。然而,在这里,与传统的最小和设计相反,传统最小和设计是一个码字的消息束数据将以顺序方式提供,这里,三个128个8–比特数据分段是并行提供的。因此,最小值不仅是连续输入数据中的最小值,而且也是正在并行处理的分段中的最小值。举例来说,输入的“din_abs_value”是384个8-比特数据,被分为三个128个8-比特数据段,其中第一个128个8-比特数据为20、12、……、100;第二个128个8-比特数据是30,10,...,1;第三个128个8-比特数据为9,70,....,30;第一最小数据是9,因为它是20、30和9中的最小值。在根据本例的操作中,并行最小值计算的第一最小值结果被级联起来,以提供第一最小值结果(例如,MIN1[383:0][7:0]=(MIN1_128_8bit[127:0][7:0],MIN1_128_8bit[127:0][7:0],MIN1_128_8bit[127:0][7:0]))。MIN1_128_8bit的结果是段1、段2和段3的第一个最小值。128个8-比特数据MIN1_128_8bit,将分别为段1、段2和段3重复3次,成为MIN1。
同样如上面关于最小和算法操作所描述的,MIN1_MIN2模块1531对于从VNC连接到CNC的传递的消息计算第二最小值。与上面讨论的第一最小值类似,第二最小值的计算不仅是关于连续输入数据中的最小值,也是并行处理的段中的最小值。在根据本例的操作中,并行最小值计算结果的第二最小值结果被级联起来,以提供第二最小值结果(例如,MIN2[383:0][7:0]=(MIN2_128_8bit[127:0][7:0],MIN2_128_8bit[127:0][7:0],MIN2_128_8bit[127:0][7:0]))。MIN2_128_8bit结果是段1、段2和段3的第二最小值。128个8–比特数据,MIN2_128_8bit,将分别为段1、段2和段3重复3次,成为MIN2。
在根据实施例的操作中,最小和(min-sum)逻辑1530的SIGN_ALL模块1532可以确定从VNC连接到CNC的传递的消息的符号(例如SIGN_ALL),如上面关于最小和算法的实施所描述的。图15D和15E显示了关于实施例的SIGN_ALL模块1532的实施细节。特别是,图15D显示了一个示例的SIGN_ALL模块1532的实施方式的功能框图,其实施符号计算逻辑和支持分段的连接逻辑,促进消息束的并行处理。图15E显示了关于图15D的符号计算逻辑的细节,其中XOR逻辑被实施为符号计算。
在所示示例中,由绝对值模块1505提供并输入到SIGN_ALL模块1532的符号(例如,对应于由绝对值模块1505确定的绝对值的符号)包括384个符号(例如,Z=384和din_sign[383:0])。在该示例中,低延迟分段式QC-LDPC解码器1500被配置为并行处理正在解码的码字的3个消息束,因此输入数据被分成3个段。例如,示例中显示了段1(例如,din_sign_segment1[127:0]=din_sign[127:0])、段2(例如,din_sign_segment2[127:0]=din_sign[255:128])和段3(例如,din_sign_segment3[127:0]=din_sign[383:256]),每个段占用128个1-比特数据(例如,sign=1为负)。
如上面关于最小和算法操作所描述的,SIGN_ALL模块1532计算关于从VNC连接到CNC的传递的消息的符号。这里,与上面计算的第一和第二最小值一样,符号计算*不仅与连续输入的数据有关,而且还与并行处理的段有关。在根据本例的操作中,并行计算的符号结果被连接起来,以提供符号结果(例如,SIGN_ALL(例如,SIGN_ALL[383:0]=signall_128bit[127:0],signall_128bit[127:0],signall_8bit[127:0]))。SIGN_ALL_128_1bit的结果是段1、段2和段3的符号。128个1-比特数据SIGN_ALL_128_1bit将分别为段1、段2和段3重复3次,成为SIGN_ALL。
实施例的比较器模块1506分析由MIN1_MIN2模块1531提供的关于V2C消息的第一最小数据,以确定C2V消息的数值(例如,MIN1或MIN2),如上文关于最小和算法所描述的。此后,符号模块1507附加相应的符号以提供校验节点消息(在循环移位之前)。
从上文应当理解,根据本发明概念实施多段码字并行边缘束处理的低延迟分段式QC-LDPC解码器的实施例的操作减少了解码延迟。特别是,根据实施例的低延迟分段式QC-LDPC解码器的实施,可以减少使用小码字大小的小尺寸信令数据的解码延迟。这种减少的延迟有利于支持需要低延迟和可靠通信服务的通信,例如V2X通信。此外,由实施例的低延迟分段式QC-LDPC解码器提供的减少的延迟可以帮助5G基站或其他通信设备(例如,UE)在完成解码后更早地进入低功率模式(例如,在设备没有安排数据通信的帧时隙期间)。应当理解,解码器逻辑可以消耗蜂窝接收器几乎一半的计算能力,因此根据本文概念实施的低延迟分段式QC-LDPC解码器提供的灵活性和效率可以通过并行处理多条边缘来帮助减少延迟。
尽管已经详细描述了本发明及其优点,但是应当理解,在不脱离由所附权利要求书定义的本发明的精神和范围的情况下,可以在此进行各种改变、替换和变更。此外,本申请的范围并不打算局限于说明书中描述的过程、机器、制造、物质组成、装置、方法和步骤的特定实施例。如本领域普通技术人员从本发明的公开中容易理解的那样,根据本公开内容,可以利用目前已有的或以后开发的、与本文所述相应实施例具有基本相同功能或达到基本相同结果的工艺、机器、制造、物质组成、装置、方法或步骤。因此,所附权利要求书旨在在其范围内包括这样的工艺、机器、制造、物质组成、装置、方法或步骤。
此外,本申请的范围并不打算限于说明书中所述的工艺、机器、制造、物质组成、装置、方法和步骤的特定实施例。
Claims (20)
1.一种系统包括:
一个低延迟分段式准循环低密度奇偶校验(QC-LDPC)解码器,其被配置为实施多段码字并行边缘束处理,以同时处理第一码字的多个边缘束,其中所述第一码字的多个边缘束包括连接所述第一码字的多个校验节点(CN)的第一校验节点集群(CNC)和所述第一码字的多个变量节点(VN)的第一变量节点集群(VNC)的第一边缘束,以及连接所述第一CNC和所述第一码字的多个VN中的第二VNC的第二边缘束。
2.根据权利要求1所述的系统,其中所述低延迟分段事QC-LDPC解码器包括:
一个可重置分段式移位器,其最大可容纳码块大小为Zmax,其中同时处理的第一码字的多束边缘包括M束边缘,其中同时处理的第一码字的M束边缘的总数小于或等于Zmax。
3.根据权利要求2所述的系统,其中所述第一码字的每个CNC的CN数量和所述第一码字的每个VNC的VN的数量是Z1,导致连接所述第一码字的CNC与所述第一码字的VNC的边缘束各包括Z1条边缘,其中Zmax≥M*Z1。
4.根据权利要求1所述的系统,其中,所述低延迟分段QC-LDPC解码器并行处理多个VN到CN的消息束和多个CN到VN的消息束,其中所述多个VN到CN的消息束包括一个从第一VNC到第一CNC经由所述多个边缘束中的第一边缘束传递的消息束、一个从第二VNC到第一CNC经由所述多个边缘束的第二边缘束传递的消息束,其中所述多个CN到VN的消息束包括从所述第一CNC到所述第一VNC经由所述第一边缘束传递的消息束和从所述第一CNC到所述第二VNC经由所述第二边缘束传递的消息束。
5.根据权利要求1所述的系统,其中所述第一码字的多个边缘束包括连接所述第一码字的多个CN中的第二CNC的第三边缘束。
6.根据权利要求5所述的系统,其中所述低延迟分段式QC-LDPC解码器并行处理多个VN到CN的消息束和一个或多个CN到VN的消息束,以及并行处理多个CN到VN的消息束和一个或多个VN到CN的消息束,其中所述多个VN到CN的消息束包括从所述第一VNC到所述第一CNC经由所述多个边缘束的第一边缘束传递的消息束和从所述第二VNC到所述第一CNC经由所述多个边缘束的第二边缘束传递的消息束,其中所述一个或多个CN到VN的消息束包括从所述第二CNC到所述第一VNC经由所述多个边缘束的第三边缘束传递的消息束,其中所述多个CN到VN的消息束包括从所述第一CNC到所述第一VNC经由所述第一边缘束传递的消息束和从所述第一CNC到所述第二VNC经由所述第二边缘束传递的消息束,其中所述一个或多个VN到CN的消息束包括从所述第一VNC到所述第二CNC经由所述多个边缘束中的第三边缘束传递的消息束。
7.根据权利要求1所述的系统,其中所述低延迟分段式QC-LDPC解码器被配置以实施多段码字并行边缘束处理,以同时处理所述第一码字的多个边缘束和第二码字的一个或多个边缘束。
8.根据权利要求7所述的系统,其中所述第二码字的一个或多个边缘束包括连接所述第二码字的多个CN的CNC和所述第二码字的多个VN的VNC的第一边缘束。
9.根据权利要求7所述的系统,其中所述低延迟分段4QC-LDPC解码器包括:
一个可重置分段式移位器,其最大可容纳的码块大小为Zmax,其中同时处理的所述第一码字的多束边缘包括M束边缘,其中同时处理的所述第二码字的一个或多束边缘包括N束边缘,其中同时处理的所述第一码字的M束边缘和所述第二码字的N束边缘的边缘总数小于或等于Zmax。
10.根据权利要求9所述的系统,其中所述第一码字的每个CNC的CN的数量和所述第一码字的每个VNC的VN的数量是Z1,导致连接所述第一码字的CNC和所述第一码字的VNC的边缘束各包括Z1条边缘,其中所述第二个码字的每个CNC的CN的数量和所述第二个码字的每个VNC的VN的数量是Z2,导致连接所述第二码字的CNC和所述第二码字的VNC的边缘束每个都包括Z2条边,其中Zmax≥(M*Z1)+(N*Z2)。
11.根据权利要求1所述的系统,其中所述低延迟分段式QC-LDPC解码器包括:
一个分节式可重置分段移位器,其有多个分节,其中所述多个分节中的一个分节的每个数据路径共享相同的控制信号,其中同时处理的所述第一码字的所述多个边缘束中的每个边缘束,由所述多个分节中的一个或多个不同分节处理,而不是由所述多个边缘束中的其他每一束边缘处理。
12.一种方法,包括:
向一个被配置以实施多段码字并行边缘束处理的低延迟分段式准循环低密度奇偶校验(QC-LDPC)解码器,输入用于解码的第一码块,作为第一码字;
由所述低延迟分段式QC-LDPC解码器,同时处理所述第一码字的多个边缘束,其中所述第一码字的多个边缘束包括连接所述第一码字的多个校验节点(CN)的第一校验节点集群(CNC)和所述第一码字的多个变量节点(VN)的第一变量节点集群(VNC)的第一边缘束,以及连接所述第一CNC和所述第一码字的多个VN的第二VNC的第二边缘束;
由所述低延迟分段式QC-LDPC解码器,输出所述第一码字的解码实例。
13.根据权利要求12所述的方法,其中同时处理第一码字的多个边缘束包括:
并行处理多个VN到CN的消息束,其中所述多个VN到CN的消息束包括从所述第一VNC到所述第一CNC经由所述多个边缘束的第一边缘束传递的消息束和从所述第二VNC到第一CNC经由所述多个边缘束的第二边缘束传递的消息束;
并行处理多个CN到VN的消息束,其中所述多个CN到VN的消息束包括从所述第一CNC到所述第一VNC经由所述第一边缘束传递的消息束和从所述第一CNC到所述第二VNC经由所述第二边缘束传递的消息束。
14.根据权利要求12所述的方法,其中所述第一码字的所述多个边缘束包括连接所述第一码字的多个CN中的第二CNC的第三边缘束。
15.根据权利要求14所述的方法,其中同时处理所述第一码字的多个边缘束包括:
并行处理多个VN到CN的消息束和一个或多个CN到VN的消息束,其中所述多个VN到CN的消息束包括从所述第一VNC到所述第一CNC经由所述多个边缘束的第一边缘束传递的消息束,以及从所述第二VNC到所述第一CNC经由所述多个边缘束的第二边缘束传递的消息束,其中所述一个或多个CN到VN的消息束包括从所述第二CNC到所述第一VNC所述多个边缘束的第三边缘束传递的消息束;
并行处理多个CN到VN的消息束和一个或多个VN到CN的消息束,其中所述多个CN到VN的消息束包括从所述第一CNC到所述第一VNC经由所述第一边缘束传递的消息束,以及从所述第一CNC到所述第二VNC经由所述第二边缘束传递的消息束,其中所述一个或多个VN到CN的消息束包括从所述第一VNC到所述第二CNC经由所述多个边缘束的所述第三边缘束传递的消息束。
16.根据权利要求12所述的方法,其中同时处理所第一码字的多个边缘束包括:
在处理所述第一码字的所述多个边缘束的同时,处理第二码字的一个或多个边缘束。
17.根据权利要求16所述的方法,其中所述第二码字的一个或多个边缘束包括连接会第二码字的多个CN中的一个CNC和所述第二码字的多个VN中的一个VNC的第一边缘束。
18.根据权利要求12所述的方法,其中同时处理所述第一码字的多个边缘束包括:
利用一个可重置分段式移位器来分别对所述第一码字的所述多个边缘束的每个消息束同时提供移位。
19.根据权利要求18所述的方法,其中所述可重置分段式移位器包括一个分节式可重置分段移位器,其具有多个分节,其中所述多个分节中的一个分节的每个数据路径共享相同的控制信号,其中同时处理的所述第一个码字的所述多个边缘束中的每个边缘束,由所述多个分节中的一个或多个不同分节进行处理,而不是由所述多个边缘束中的其他边缘束处理。
20.一种低延迟分段式准循环低密度奇偶校验(QC-LDPC)解码器,被配置以实施多段码字并行边缘束处理,包括:
一个可重置分段移位器,其可配置为分别对第一码字的多个边缘束的每个消息束同时提供移位,其中所述第一码字的所述多个边缘束包括连接所述第一码字的多个校验节点(CN)的第一校验节点集群(CNC)和所述第一码字的多个变量节点(VN)的第一变量节点集群(VNC)的第一边缘束,以及连接所述第一CNC和所述第一码字的多个VN的第二VNC的第二边缘束;
一个控制器,其向所述可重置分段移位器提供控制信号,控制所述多个边缘束的每个消息束的移位,以同时处理所述第一码字的多个边缘束,以解码所述第一码字。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/367,195 | 2021-07-02 | ||
US17/367,195 US11575390B2 (en) | 2021-07-02 | 2021-07-02 | Low-latency segmented quasi-cyclic low-density parity-check (QC-LDPC) decoder |
PCT/CN2021/104984 WO2023272768A1 (en) | 2021-07-02 | 2021-07-07 | Low-latency segmented quasi-cyclic low-density parity-check (qc-ldpc) decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113661657A true CN113661657A (zh) | 2021-11-16 |
Family
ID=78494764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180001880.2A Pending CN113661657A (zh) | 2021-07-02 | 2021-07-07 | 低延迟分段准循环低密度奇偶校验(qc-ldpc)解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113661657A (zh) |
-
2021
- 2021-07-07 CN CN202180001880.2A patent/CN113661657A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826529B2 (en) | Parallel LDPC decoder | |
JP4062435B2 (ja) | 誤り訂正符号復号装置 | |
US8839077B2 (en) | Low density parity check codec | |
Gunnam et al. | VLSI architectures for layered decoding for irregular LDPC codes of WiMax | |
US7343548B2 (en) | Method and apparatus for encoding and decoding data | |
US7395494B2 (en) | Apparatus for encoding and decoding of low-density parity-check codes, and method thereof | |
CN109952729B (zh) | 并行ldpc解码器 | |
CN106685586B (zh) | 生成用于在信道中传输的低密度奇偶校验码的方法及设备 | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
US20070089018A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values | |
WO2018128560A1 (en) | Efficiently decodable qc-ldpc code | |
WO2012017652A1 (ja) | 誤り訂正復号装置及び誤り訂正復号方法 | |
EP2951925B1 (en) | Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength | |
US8201049B2 (en) | Low density parity check (LDPC) decoder | |
JP2017531392A (ja) | 前方誤り訂正および並列復号を有する光コヒーレント受信機 | |
EP2991231A1 (en) | Multilevel encoding and multistage decoding | |
Boncalo et al. | Cost-efficient FPGA layered LDPC decoder with serial AP-LLR processing | |
CN111034055A (zh) | 在非二进制ldpc解码器中简化的校验节点处理 | |
Zhang et al. | A network-efficient nonbinary QC-LDPC decoder architecture | |
CN113661657A (zh) | 低延迟分段准循环低密度奇偶校验(qc-ldpc)解码器 | |
WO2023272768A1 (en) | Low-latency segmented quasi-cyclic low-density parity-check (qc-ldpc) decoder | |
EP2951926B1 (en) | Ldpc code design and encoding apparatus for their application | |
Kim et al. | Flexible LDPC decoder architecture for high-throughput applications | |
WO2020155146A1 (en) | Parallel ldpc decoder | |
Zeineddine et al. | Construction and hardware-efficient decoding of raptor codes |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40077490 Country of ref document: HK |