CN108370253B - 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线 - Google Patents

用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线 Download PDF

Info

Publication number
CN108370253B
CN108370253B CN201580085421.1A CN201580085421A CN108370253B CN 108370253 B CN108370253 B CN 108370253B CN 201580085421 A CN201580085421 A CN 201580085421A CN 108370253 B CN108370253 B CN 108370253B
Authority
CN
China
Prior art keywords
codeword
parity
estimate
decoding system
check
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.)
Active
Application number
CN201580085421.1A
Other languages
English (en)
Other versions
CN108370253A (zh
Inventor
C-H·陈
W·汤
F·谢赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN108370253A publication Critical patent/CN108370253A/zh
Application granted granted Critical
Publication of CN108370253B publication Critical patent/CN108370253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种用于执行由一个或多个奇偶校验式表征的码字的流水线解码的流水线解码系统可以包括:第一流水线级电路,被配置为处理由码字的一个或多个第一奇偶校验式组成的第一奇偶校验集,并且处理由码字的一个或多个第二奇偶校验式组成的第二奇偶校验集;第二流水线级电路,被配置为基于码字的第一估计值来生成第二奇偶校验集的一个或多个码字更新消息;和第三流水线级电路,被配置为利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值,以获得码字的第二估计值。

Description

用于低密度奇偶校验解码的混合式调度和基于锁存器的流 水线
技术领域
各种实施例总体涉及用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线(pipeline)。
背景技术
低密度奇偶校验(LDPC)码已经展示出接近容量纠错性能,并且因此已经在许多通信标准中被采用,包括WiFi(电气与电子工程师协会(IEEE)802.11n)、WiMAX(IEEE802.16e)、数字卫星广播(数字视频广播-卫星-第二代(DVB-S2))和10吉比特以太网(IEEE802.03an)。尽管具有出色的数据速率和错误恢复性能,但是LDPC解码器可能具有显著的功率要求,这可能仅在具有例如10倍于当前标准数据速率的目标数据速率的下一代无线通信系统中加剧。
发明内容
根据本公开的一方面,提供了一种流水线解码系统,用于执行由一个或多个奇偶校验式表征的码字的流水线解码,所述流水线解码系统包括:第一电路,被配置为:处理包括所述码字的一个或多个第一奇偶校验式的第一奇偶校验集,并且处理包括所述码字的一个或多个第二奇偶校验式的第二奇偶校验集;第二电路,被配置为:基于所述码字的第一估计值来生成所述第二奇偶校验集的一个或多个码字更新消息;和第三电路,被配置为:利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,其中,所述第三电路被配置为:在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值。
根据本公开的另一方面,提供了一种利用流水线解码系统执行码字解码的方法,所述流水线解码系统包括多个流水线解码级,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个奇偶校验式,所述方法包括:利用所述流水线解码系统发起对包括所述码字的一个或多个第一奇偶校验式的第一奇偶校验集的处理;利用所述流水线解码系统发起对包括所述码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理;基于所述码字的第一估计值来生成所述第二奇偶校验集的一个或多个码字更新消息;利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,其中,利用所述第一奇偶校验集的一个或多个码字更新消息更新所述码字的第一估计值以获得所述码字的第二估计值包括:在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息更新所述码字的第一估计值以获得所述码字的第二估计值。
根据本公开的又一方面,提供了一种流水线解码系统,用于执行由一个或多个校验节点和一个或多个变量节点表征的码字的流水线解码,所述流水线解码系统包括:第一电路,被配置为:处理包括所述码字的一个或多个第一校验节点的第一校验节点集,并且处理包括所述码字的一个或多个第二校验节点的第二校验节点集;第二电路,被配置为:基于所述码字的第一估计值来生成所述第二校验节点集的一个或多个校验到变量消息;和第三电路,被配置为:在所述流水线解码系统完成对所述第二校验节点集的处理之前,利用所述第一校验节点集的一个或多个校验到变量消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,其中,所述第三电路被配置为:在所述流水线解码系统完成对所述第二校验节点集的处理之前,利用所述第一校验节点集的一个或多个校验到变量消息来更新所述码字的第一估计值,以获得所述码字的第二估计值。
附图说明
在附图中,相同的附图标记在不同视图中通常指代相同的部分。附图不一定按比例绘制,而是通常将重点放在说明本发明的原理上。在以下描述中,参考以下附图来描述本发明的各种实施例,其中:
图1示出奇偶校验矩阵;
图2示出一组奇偶校验公式;
图3示出Tanner图;
图4示出发送和接收系统;
图5示出解码器电路;
图6示出解码器电路的完全并行实现方式;
图7示出解码器电路的行并行实现方式;
图8示出解码器电路的块并行实现方式;
图9示出利用完全并行解码器解码线性分组码的方法;
图10示出解码器电路的内部配置;
图11示出利用部分并行解码器解码线性分组码的方法;
图12A至图12C示出各种流水线调度方案;
图13示出解码器电路的另一内部配置;
图14示出用于执行解码的方法;以及
图15示出用于执行解码的另一方法。
具体实施方式
以下详细描述参考附图,附图以说明的方式示出可以实践本发明的具体细节和实施例。
本文使用词语“示例性”来表示“用作示例、实例或说明”。本文描述为“示例性”的任何实施例或设计不一定被解释为比其他实施例或设计优选或有利。
说明书和权利要求中的词语“多个”和“多种”明确地指代大于1的数量。因此,明确地引用指代对象数量的前述词语的任何短语(例如,“多个[对象]”、“多种[对象]”)明确地表示多于一个的所述对象。说明书和权利要求中的术语“...(的)组”、“...(的)集”、“...(的)集合”、“...(的)系列”、“...(的)序列”、“...(的)分组”等(如果存在的话),指等于或大于1的数量,即,一个或多个。
应当理解,本文使用的任何向量和/或矩阵符号本质上是示例性的,并且仅用于说明的目的。因此,应当理解,本公开中详细描述的方法不限于仅使用向量和/或矩阵来实现,并且可以等同地针对数据、观测结果、信息、信号等的集合、序列、组等来执行相关联的处理和计算。此外,应当理解,对“向量”的引用可以指任何大小或方向的向量,例如包括1×1向量(例如,标量)、1×M向量(例如,行向量)和M×1向量(例如,列向量)。类似地,应当理解,对“矩阵”的引用可以指任何大小或方向的矩阵,例如包括1×1矩阵(例如,标量)、1×M矩阵(例如,行向量)和M×1矩阵(例如,列向量)。
如本文所使用的,“电路”可以被理解为任何种类的逻辑实现实体(模拟或数字),其可以是专用电路或执行存储在存储器中的软件的处理器、固件、硬件或其任何组合。此外,“电路”可以是硬连接的逻辑电路或例如可编程处理器的可编程逻辑电路,例如微处理器(例如,复杂指令集计算机(CISC)处理器或精简指令集计算机(RISC)处理器)。“电路”也可以是执行软件(例如,任何种类的计算机程序(例如,使用例如Java的虚拟机器代码的计算机程序))的处理器。将在下面更详细描述的各功能的任何其他种类的实现方式也可以被理解为“电路”。应当理解,任何两个(或更多个)所描述的电路可以被组合成功能基本上等同的单个电路,并且反过来,任何单个所描述的电路可以分布到功能基本上等同的两个(或更多个)单独的电路中。因此,应当理解,对“电路”的引用可以指一起形成单个电路的两个或更多个电路。
如本文所使用的“处理电路”(或等同地,“处理电路系统”)应理解为是指对一个或多个信号执行操作的任何电路,例如,对电信号或光信号执行处理的任何电路。因此,处理电路可以指代改变电信号或光信号(其可以包括模拟数据和/或数字数据)的特性或属性的任何模拟电路或数字电路。因此,处理电路可以指代模拟电路(明确地称为“模拟处理电路(系统)”)、数字电路(明确地称为“数字处理电路(系统)”)、逻辑电路、处理器、微处理器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、集成电路、专用集成电路(ASIC)等,或其任何组合。因此,处理电路可以指作为硬件或软件(例如,在硬件(例如,处理器或微处理器)上执行的软件)对电信号或光信号执行处理的电路。如本文所使用的,“数字处理电路(系统)”可以指使用对信号(例如,电信号或光信号)执行处理的数字逻辑实现的电路,其可以包括逻辑电路、处理器、标量处理器、向量处理器、微处理器、控制器、微控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、集成电路、专用集成电路(ASIC)或其任何组合。此外,应当理解,单个处理电路可以等同地分成两个分离的处理电路,反过来,两个分离的处理电路可以组合成单个等同的处理电路。
如本文所使用的,“存储器”可以被理解为其中可以存储数据或信息以便获取的电组件。因此,本文包括的对“存储器”的引用可以理解为是指易失性或非易失性存储器,包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、固态存储、磁带、硬盘驱动器、光驱等,或其任何组合。此外,应当理解,寄存器、移位寄存器、处理器寄存器、数据缓冲器等在本文中也被包括于术语存储器中。应当理解,被称为“存储器”或“一个存储器”的单个组件可以由多于一种不同类型的存储器组成,并且因此可以指代包括一种或多种类型的存储器的集合组件。容易理解的是,任何单个存储器组件可以被分成多个总体上等同的存储器组件,反之亦然。此外,应当理解,虽然存储器例如在附图中可能被描绘为与一个或多个其他组件分离,但是应当理解,存储器可以集成在另一组件内,例如集成在公共集成芯片上。
关于移动通信网络的接入点使用的术语“基站”可以被理解为宏基站、微基站、节点B、演进节点B(eNB)、家庭eNodeB、远端无线电头(RRH)、中继点等。
如本文所使用的,电信背景下的“小区”可以被理解为由基站服务的扇区。因此,小区可以是与基站的特定扇区划分对应的一组在地理上共站的天线。因此,基站可以服务一个或多个小区(或扇区),其中,每个小区由不同的通信信道表征。此外,术语“小区”可以用于指代宏小区、微小区、毫微微小区、微微小区等中的任何一个。
应当理解,随后的描述可以详细描述涉及根据某些3GPP(第三代合作伙伴项目)规范(特别是长期演进(LTE)和长期演进高级(LTE-A))操作的移动设备的示例性场景。应当理解,这样的示例性场景本质上是示范性的,因此可以类似地应用于其他移动通信技术和标准,例如WLAN(无线局域网)、WiFi、UMTS(通用移动通信系统)、GSM(全球移动通信系统)、蓝牙、CDMA(码分多址)、宽带CDMA(W-CDMA)等。因此,本文提供的示例被理解为适用于现有的和尚未制定的各种其他移动通信技术,特别是在这样的移动通信技术拥有与关于以下示例所公开的类似特征的情况下。
为了本公开的目的,无线电通信技术可以分类为短距离无线电通信技术、城域系统无线电通信技术和蜂窝广域无线电通信技术之一。短距离无线电通信技术包括蓝牙、WLAN(例如,根据任何IEEE 802.11标准)以及其他类似的无线电通信技术。城域系统无线电通信技术包括全球微波接入互操作性(WiMax)(例如,根据IEEE 802.16无线电通信标准,例如WiMax固定或WiMax移动)以及其他类似的无线电通信技术。蜂窝广域无线电通信技术包括GSM、UMTS、LTE、LTE高级(LTE-A)、CDMA、WCDMA、LTE-A、通用分组无线服务(GPRS)、增强型数据速率GSM演进(EDGE)、高速分组接入(HSPA)、HSPA Plus(HSPA+)以及其他类似的无线电通信技术。
本文例如关于通信网络(例如,移动通信网络)使用的术语“网络”旨在包含网络的接入部分(例如,无线接入网(RAN)部分)和网络的核心部分(例如,核心网部分)两者。
如本文所使用的,关于移动终端使用的术语“无线电空闲模式”或“无线电空闲状态”是指移动终端未被分配移动通信网络的至少一个专用通信信道的无线电控制状态。关于移动终端使用的术语“无线电连接模式”或“无线电连接状态”是指移动终端被分配了移动通信网络的至少一个专用上行链路通信信道的无线电控制状态。
除非明确指明,否则术语“发送”包括直接和间接发送。类似地,除非明确指明,否则术语“接收”包括直接和间接接收。
低密度奇偶校验(LDPC)码是已经在多种通信标准中被采用的线性纠错分组码。LDPC编码器可以接收输入数据序列,将输入数据序列划分为一个或多个输入块,为每个输入块生成一个或多个奇偶校验位,并且将一个或多个奇偶校验位附加到每个输入块以生成每个输入块的LDPC码字。LDPC解码器可以接收跟在传输之后的所得到的LDPC码字序列,并评估每个接收到的LDPC码字,以纠正任何传输错误并且最优地恢复原始输入数据序列。LDPC编码器和解码器可以分别由奇偶生成矩阵G和奇偶校验矩阵H来定义,并且可以通过具有“稀疏”奇偶生成矩阵G和校验矩阵H而不同于常规的线性分组码。G和H的稀疏性质可以限制每次奇偶校验之间的统计依赖性,并且因此可以允许LDPC码享有比常规的线性分组码更好的性能。
LDPC解码器可以接收所得到的LDPC码字并且使用附加的奇偶校验为,以便使用M×N奇偶校验矩阵H来识别和纠正传输错误,其中,N是LDPC码字长度并且M是奇偶校验次数。图1示出M=4并且N=6的示例性奇偶校验矩阵100,LDPC解码器可以将它应用于6位码字,以计算4个奇偶校验式check0—check3,每个对应于奇偶校验矩阵100的一行。LDPC解码器可以根据奇偶校验矩阵100的每一行中的非零元素来计算每个奇偶校验式check0—check3。LDPC解码器可以通过在接收到的码字中具有与H的非零元素对应的位索引的位之间执行XOR计算来评估每个奇偶校验式check0—check3。
图2示出示例性奇偶校验公式200,其定义了用于check0—check3中的每一个的奇偶校验公式。如果满足每一个奇偶校验公式200,则LDPC解码器可以识别有效码字,其中,每个奇偶校验公式由奇偶校验矩阵100的每一行的非零元素定义。例如,第一行(check0)是在索引bit0、bit2和bit4处为非零。因此,如果bit0+bit2+bit4=0(mod 2),则可以满足check0。对于check1—check3中的每一个都可以类似地这样示出。
LDPC解码器也可以表示为Tanner图,例如图3中所描绘的Tanner图300。如图3中的Tanner图300所示,Tanner图可以是由变量节点(VN)和校验节点(CN)组成的二分图,其中,每个VN经由双向边连接到一个或多个CN。每个VN和每个CN的双向边类似地由奇偶校验矩阵的非零元素来定义,其中例如,CN0(check0)双向连接到VN0(bit0)、VN2(bit2)和VN4(bit4)。因此,每个CN可以接收来自每个必需VN的输入,并随后评估对应的奇偶校验公式,以确定是否满足每个奇偶校验式。
LDPC码与其他线性分组码的不同之处可以在于,LDPC码的奇偶校验矩阵具有相对较少的非零元素,即为稀疏矩阵,这可以限制VN和CN之间的互连(如Tanner图所描绘的),并且因此限制每个CN的奇偶校验式之间的统计依赖性。例如,Tanner图300中的每个VN,VNi(i=1,2,...,N)可以具有变量度dv,i=2,并且每个CN,CNj(j=1,2,...,M)可以具有校验度dc,j=3。因此,Tanner图300可以表示“规则”LDPC码(与“不规则”LDPC码相反),其中,对于每个相应的VN和CN,规则LDPC码具有统一的变量度和校验度。这相当于奇偶校验矩阵100在每一行中包含相同数量的非零元素(恒定行权重)并且在每一列中包含相同数量的非零元素(恒定列权重)。
应当注意,图1至图3的示例性奇偶校验矩阵、奇偶校验公式和Tanner图为了说明的目的已经被简化,实际的LDPC实现方式可以由例如M=126、168、252或336个CN并且N=672个VN组成,如在IEEE802.11ad标准中使用的LDPC码的情况下那样。各种其他实现方式,例如具有不同的M和N值,也在本公开的范围内。
发射机-接收机对可以使用LDPC码来在特定信道上交换数据。图4示出系统400,如图4所示,它可以包括发射机402、信道410和接收机414。发射机402和接收机414可以被实现为多种不同电气设备中的任一种,其可以包括通信设备(有线或无线,包括例如无线通信设备)或存储器设备(例如,闪存、磁盘编码解码)。
发射机402可以对输入序列404进行编码并在信道410上进行发送,接收机414可以接收它并进行解码以获得输出序列420。发射机402可以获得输入序列404,发射机402可以将其存储在存储器组件(例如,缓冲器)中。编码器电路406可以接收输入序列404,将输入序列404划分成块(例如,根据LDPC码具有预定块长度的块),为每个块生成一个或多个奇偶校验位(例如,根据预定义LDPC生成参数(例如,生成器矩阵)),并且将相应的奇偶校验位附加到每个块以生成每个块的LDPC码字。因此,编码器电路406可以产生由与输入序列404对应的LDPC码字序列组成的编码序列,并且将编码序列提供给调制器电路408。然后,调制器电路408可以例如根据预定义信道调制配置调制编码序列,以生成用于在信道410上传输的调制序列。然后,发射机402可以在信道410上发送调制序列,该信道可以是有线信道或无线信道。
然后,接收机414可以接收调制序列,该调制序列可能包括经由信道410上的传输引入的噪声412。因此,调制序列可能包含传输错误。然后,解调器电路416可以对调制序列进行解调,并将所得到的解调序列提供给解码器电路418。然后,解码器电路418可以应用LDPC解码来解码解调序列,随后产生解码的输出序列420,其可以对应于输入序列404。
因此,解码器电路418可以从解调器电路416接收解调序列并且将解调序列处理为一组接收到的码字(每个对应于由编码器电路406生成的编码序列的LDPC码字),其可能包含因信道410引入噪声412而导致的错误。解码器电路418可以能够通过根据由H定义的LDPC奇偶校验公式对每个接收到的码字的位进行评估,来识别和纠正这些错误。为了有效地解码每个接收到的码字,解码器电路418可以尝试识别与接收到的码字紧密匹配的有效码字(即,满足每个奇偶校验式的LDPC码字),例如满足
Figure GDA0003330832560000091
的有效码字
Figure GDA0003330832560000092
其中,HT是H的转置。在最优解码场景中(即,对于最大似然解码),解码器电路418可以为每个接收到的码字识别提供与每个接收到的码字最紧密匹配的有效估计码字
Figure GDA0003330832560000093
例如相对于其他可能的有效码字,与接收到的码字具有最小距离(例如,Hamming距离)的有效估计码字
Figure GDA0003330832560000094
然而,由于最大似然LDPC解码的相关计算复杂度(NP-complete),在实际应用中可能无法实现这种最优解码。
因此,解码器电路418可以改为采用置信传播(BP)解码,以便对每个接收到的码字进行解码。在BP解码中,每个VN可以对应于接收到的码字的单个位,并且可以与每个所连接的CN交换消息,以便更新存储在每个VN处的对应码字位的软估计值。每个CN可以从每个所连接的VN接收软估计值,并且基于接收到的软值来评估奇偶校验公式。然后,每个CN可以基于奇偶校验式评估来向每个VN提供调整值,每个VN可以利用该调整值来更新每个VN处的软估计值。BP解码可以被实现为迭代处理,其中,每次迭代由每个VN应用的每个调整值使得由每个CN的软值组成的估计码字朝向满足
Figure GDA0003330832560000095
的有效码字
Figure GDA0003330832560000096
收敛。因此,BP解码可以涉及在每个所连接的(根据Tanner图表示的双向边)VN和CN之间传递变量到校验(Variable-to-Check,V2C)消息和校验到变量(Check-to-Variable,C2V)消息。因此,每个VN可以基于每个V2C来更新所存储的软值(对应于码字位),并且可以基于在每次迭代期间接收到的C2V来继续迭代地更新所存储的软值,直到由每个VN的软值总体表示的码字收敛于有效码字(即,在满足每个CN的奇偶校验式的情况下)或者直到达到终止条件(例如,最大迭代次数)。
因此,解码器电路418可能需要执行VN处理以便生成V2C消息和更新VN软值,执行CN处理以便生成C2V消息,并且执行路由以便路由每个V2C和C2V。解码器电路418可以被实现为软件或硬件。在硬件实现方式中,解码器电路418可以被实现为奇偶校验矩阵H的直接映射,其中,每个CN和VN被实现为专用硬件组件(如将详细描述的“完全并行”,例如具有N个VN组件和M个CN组件),或者可以重新使用数量减少的硬件组件来一次实现CN和VN的子集(如将详细描述的“部分并行”,例如N'<N个VN组件和/或M'<M个CN组件)。替代地,解码器电路418可以被实现为软件,并且因此可以是被配置为将CN和VN处理执行为程序代码(其被定义为在处理器上执行的算法、逻辑、控制和输入输出(I/O)操作的指令)的处理器。本领域技术人员将理解本文包括的算法描述,并认识到这种硬件和软件实现方式的可能性。虽然下面的描述可能关注于硬件和硬件组件,但是本领域技术人员将认识到将这种硬件组件的功能实现为软件的可能性。
图5示出被配置为实现BP解码的解码器电路418的示例性硬件实现方式。如图5所示,解码器电路418可以包括一个或多个VN电路502、后验存储器504、消息存储器506、先验存储器508、路由网络512、一个或多个CN电路510以及收敛性检测电路514。每个VN电路502可以被配置为将先验概率和后验概率分别存储在先验存储器508和后验存储器504中(其可以由用于每个VN电路502的单独的先验存储器和后验存储器组成,例如作为单独的寄存器),其中,每个VN电路502的先验概率是LDPC码字的对应位的初始软比特值,并且每个VN电路502的后验概率是LDPC码字的对应位的更新软比特值。每个VN电路502可以被配置为更新先验概率以获得后验概率并基于从CN电路510接收的C2V来继续更新后验概率,并且可以将每个C2V存储在消息存储器506中(其可以由用于每个VN电路502的单独的消息存储器组成,例如作为单独的寄存器)。每个VN电路502可以被配置为基于存储在后验存储器504中的后验概率(VN的软比特值)和存储在消息存储器506中的C2V来计算要发送到CN电路510的V2C,并且因此可以由用于生成每个必需V2C的逻辑电路(将在后面详细描述)组成。如将要详细描述的,解码器电路418可以被配置为根据流水线调度方案进行操作。
每个VN电路502可以经由路由网络512将每个输出的V2C发送到CN电路510,该路由网络可以是将每个VN电路502连接到特定目的地CN电路510的可编程或硬连线网络。每个CN电路510可以接收输入的V2C并以C2V的形式生成对每个V2C的响应,这可以被认为是针对每个目的地VN电路502定制的“调整”值。更具体地,每个CN电路510可以评估对应的奇偶校验公式并基于从奇偶校验公式导出的每个所连接的VN的边际概率来将调整值确定为每个所连接的VN电路502的C2V。每个CN电路510可以经由路由网络512将C2V发送到每个目的地VN电路502。每个VN电路502可以接收C2V并且应用C2V以调整存储在后验存储器504中的后验概率。因此,每个VN电路502在任何给定迭代处的后验概率可以表示原始码字的当前估计值。可以继续V2C和C2V消息传递,直到当前估计码字收敛于有效LDPC码字(即,满足每个CN电路510的奇偶校验公式)或者直到达到终止准则。V2C消息生成和路由、C2V消息生成和路由以及后验概率更新可以构成由解码器电路418实现的BP解码过程的单次迭代,其中,每个VN的后验概率在每次迭代期间被更新一次。收敛性检测电路514可以利用存储在后验存储器504中的每个VN的当前后验值来确定估计码字是否是有效码字,并且如果是,则终止解码过程。收敛性检测电路514可以附加地被配置为监测终止准则,例如是否已经执行最大解码迭代次数,并且如果在最大解码迭代次数中估计码字尚未收敛于有效码字,则潜在地声明解码失败。
VN电路502的数量、CN电路510的数量和路由网络512的配置可以根据解码器电路418的期望吞吐量而变化。例如,如果期望最大吞吐量,则如图6所示,可以根据“完全并行”架构来配置解码器电路418。在这样的完全并行架构中,一个或多个VN电路502、后验存储器504、消息存储器506、路由网络512以及一个或多个CN电路510可以提供奇偶校验矩阵的直接映射。因此,一个或多个VN电路502可以由N个VN电路组成,一个或多个CN电路510可以由M个CN电路组成,并且路由网络512可以是将每个VN电路连接到每个CN的奇偶校验式所需的特定CN电路(例如,如在Tanner图表示中VN与CN之间的双向边所表示的)的硬连线路由网络。因此,每个VN电路502可以唯一地对应于接收到的码字y=(y1,y2,…,yN)的不同的第i位yi和由解码器电路418产生的估计码字
Figure GDA0003330832560000121
Figure GDA0003330832560000122
并且因此可以被配置为对给定的VN,VNi,i∈{1,2,…,N}执行处理。类似地,每个CN电路510可以被配置为对给定的CNj,j∈{1,2,…,M}执行处理。
先验存储器508和后验存储器504可以分别能够存储N个先验概率和后验概率(每VN/VN电路502一个),并且因此可以被实现为N个单独的先验存储器和后验存储器(例如,寄存器),每个连接到相应的VN电路502。类似地,消息存储器506可以能够存储N个VN/VN电路502中的每个电路的C2V消息(对于给定VNi,为dv,i个),并且因此可以被实现为N个单独的后验存储器,每个连接到相应的VN电路502(例如,寄存器)并且对于给定的VNi能够存储dv,i个C2V消息。在这种实现方式中,解码器电路418可以能够在单个时钟周期中执行每次迭代,因为每个VN电路502可以能够并发地更新对应的后验概率(从而允许估计码字的N个位中的每一位并行地并发更新)。
解码器电路418的完全并行实现方式可以提供高吞吐量,代价是路由网络512的高路由复杂度和低面积利用率。替代地,解码器电路418可以根据如图7中所描绘的“行并行”架构来实现。在这样的实现方式中,解码器电路418可以被配置为一次处理奇偶校验矩阵的一行或多行,并且因此对于M个VN中的每一个可以不需要单独的CN电路510。因此,解码器电路418可以由N个VN电路502和少于M个CN电路510(例如,M'<M个CN电路510)组成,因为解码器电路418对于奇偶校验矩阵的M'行,可以一次仅对M'个CN执行CN处理。因此,解码器电路418可以对于N个VN(其每一个可以连接到相应的先验存储器508、后验存储器504和消息存储器506)中的每一个具有单独的VN电路502,并且利用M'个CN电路510来一次对奇偶校验矩阵的M'行执行CN处理。然后,解码器电路418可以重新使用M'个CN电路510来对奇偶校验矩阵的M'个其他行执行CN处理。路由网络512可以被实现为可编程路由网络,解码器电路418可以利用该路由网络来将某些VN电路502路由到特定CN电路510,这取决于在任何给定时间处,奇偶校验矩阵解码器电路418的哪M'个行当前正在进行处理。
因此,解码器电路418可以包括N个VN电路502和M'<M个CN电路510,并且因此可以包括每个VNi,(i=1,2,...,N)的专用VN电路502,同时重新使用M'个CN电路510。因此,每个专用VN电路502可以具有专用先验存储器508(例如,专用先验寄存器)、专用后验存储器504(例如,专用后验寄存器)和专用消息存储器506(例如,专用消息寄存器),并且因此对于给定VNi,可以计算V2C消息并更新后验(例如,如
Figure GDA0003330832560000131
)。由于解码器电路418包含M'<M个CN电路510(使得解码器电路418部分并行),所以解码器电路418可以重新使用M'个CN电路510以便一次处理奇偶校验矩阵H的一行或多行。例如,解码器电路418可以包含N=672个VN电路502和M'=42个CN电路510,以解码(672,336个)LDPC码。由于解码器电路418可能需要重新使用M'个CN电路510对336个CN(对应于H的336行)中的每一个执行奇偶校验处理,所以解码器电路418可以一次处理例如多达H的42行,其中42个CN电路510中的每一个对H的不同行执行CN处理,例如,承担给定CNj,j∈{1,2,…,M}的角色。解码器电路418可以利用路由网络512作为可编程路由网络,以根据每个CN电路510依赖于哪些VN将对应的VN电路502路由到每个CN电路510(其中,每个CN电路510承担给定CNj的角色)。因此,解码器电路408可以将奇偶校验矩阵H划分成8层,每层42行,并单独处理每一层。奇偶校验矩阵H的不同的M'个选择和划分的类似实现方式是可能的。
在行并行实现方式中,解码器电路418每次迭代可能需要多于一个周期,因为奇偶校验矩阵的每一行都被单独处理。因此,解码器电路418每次迭代可能需要利用5至10个时钟周期,但是由于硬件需求降低,所以对于路由网络512可以具有降低的路由复杂度,并且具有改善的能量和面积效率。解码器电路418可以被类似地修改以一次处理奇偶校验矩阵的不同数量的行,例如一行、两行、三行等(其各自可以允许不同数量的CN电路510),并且因此可以提供每次迭代所需的时钟周期数(因此影响吞吐量)与能量/面积效率之间的对应折衷。
替代地,解码器电路418可以被实现为如图8所示的“块并行”架构,这可以允许解码器电路418例如通过包括N'<N个VN电路502和M'<M个CN电路510来进一步降低硬件面积需求,代价是低吞吐量和低效率。在这样的块并行实现方式中,解码器电路418可以一次只处理奇偶校验信道矩阵的一小部分并且可以在多个周期上执行CN计算。应当注意,解码器电路418不限于任何一种实现方式,并且因此可以根据任何完全并行或部分并行(任何非完全并行)架构来实际实现。如将关于图11和图12详细描述的,部分并行架构可以适合于流水线调度,以便有效使用解码器电路418的硬件。
不管解码器电路418的具体实现方式如何,解码器电路418可以被配置为对于每个VNi(i=1,2,...,N)执行VN处理,对于每个CNj(j=1,2,...,M)执行CN处理(无论是同时还是顺序地),并且在每次BP解码迭代期间确定当前估计码字(借助每个VN处的当前后验概率)是否已经收敛于有效码字。因此,解码器电路418可以根据图9所示的方法900来执行BP解码过程,其可以对应于完全并行架构的BP解码过程(其中,部分并行架构将在后面详细描述)。解码器电路418可以:在902中,基于接收到的码字和观测到的信道信息,将每个VN初始化为先验概率;在904中,对于每个VN,执行VN处理(从每个VN生成输出的V2C消息);在906中,执行CN处理(从每个CN生成输出的C2V消息);在908中,更新每个VN的后验;在910中,检查收敛性(基于每个VN处的后验概率满足的所有奇偶校验公式)或终止(904至910的最大迭代次数);以及结束于912。如前所述,解码器电路418可以在904中,对于每个VNi,i=1,2,…,N和每个CNj,j=1,2,…,M执行VN处理。
解码器电路418可以针对CN和VN处理利用对数似然比(LLR),并且因此,可以除了每个V2C和C2V之外,将每个VN的后验表示为LLR。解码器电路418处的每个接收到的码字可以被表示为序列y=(y1,y2,...,yN),其中,每个yi,i=1,2,...,N对应于被表示为序列x=(x1,x2,...,xN)的原始码字(在编码器电路406处)的位xi。因此,估计码字可以被表示为
Figure GDA0003330832560000141
其中,每个
Figure GDA0003330832560000142
对应于相应的VNi的后验概率。因此,解码器电路418可以在每次迭代期间通过基于从所连接的CN提供给每个VN的C2V(“调整值”)更新每个VN的后验概率来更新
Figure GDA0003330832560000143
解码器电路418可以在902中,基于接收到的向量y和信道410的观测到的信道信息来初始化每个VN的先验概率(以便存储在先验存储器508中),并且随后可以基于在每个VN处从每个所连接的CN接收的C2V消息来将每个VN的先验概率更新为后验概率。解码器电路418可以将每个VN的先验概率如下初始化为对数似然比(LLR):
Figure GDA0003330832560000151
其中,P(xi=0|yi)表示给定接收到的码字位yi时原始码字位xi=0的条件概率,并且P(xi=1|yi)表示给定接收到的码字位yi时原始码字位xi=1的条件概率。因此,
Figure GDA0003330832560000152
的正值表示xi在概率上可能等于0,并且
Figure GDA0003330832560000153
的负值表示xi在概率上可能等于1。此外,每个
Figure GDA0003330832560000154
的幅值表示估计位
Figure GDA0003330832560000155
的可靠性,其中,幅值更大的
Figure GDA0003330832560000156
表示xi等于0或1(取决于
Figure GDA0003330832560000157
的对应符号)的确定性增加。解码器电路418可以基于信道410的观测到的信道信息(例如,基于二进制对称信道(BSC)的交叉概率p或加性高斯白噪声(AWGN)信道的方差σ2)来确定概率P(xi=0|yi)和P(xi=1|yi)。
因此,每个VN可以利用先验概率作为提供给每个所连接的CN的初始V2C,并且随后可以接收每个C2V作为用于更新先验概率的LLR调整值。因此,BP解码可以包括V2C和C2V消息传递的多次迭代,在此期间,每个VN基于每个接收到的C2V来更新其后验概率,并且基于更新的后验概率来向每个所连接的CN提供V2C。
如在Zhong等人的“Modified Min-sum Decoding Algorithm for LDPC CodesBased on Classified Correction”(“Modified Min-sum”)中详细描述的那样,在标准BP解码过程中,每个CN可能需要执行反双曲正切计算,以生成每个C2V(参见“Modified Min-sum”的公式2),因此需要解码器电路418的每个CN电路510的配置相对复杂,这可能实际上不能实现。为了简化,解码器电路418可以改为在每个CN处实现最小和算法(其本身是和-积算法的简化),以近似BP解码(参见“Modified Min-sum”的公式6)。具体而言,解码器电路418可以将每个V2C计算为
Figure GDA0003330832560000158
其中,V2Ci,j是从VNi到CNj的V2C,
Figure GDA0003330832560000159
是VNi的当前LLR后验概率,并且
Figure GDA00033308325600001510
是由VNi接收到的所有C2V消息(不包括在VNi处从CNj接收的C2Vj,i)的总和。
解码器电路418可以将每个C2V计算为
Figure GDA0003330832560000161
其中,
Figure GDA0003330832560000162
是由CNj接收到的不包括V2Ci,j的每个V2C的符号的乘积,并且
Figure GDA0003330832560000163
是由CNj接收到的最小绝对值V2C(不包括在CNj处从VNi接收的V2Ci,j)。
解码器电路418可以将每个VNi
Figure GDA0003330832560000164
更新为
Figure GDA0003330832560000165
其中,
Figure GDA0003330832560000166
是所有接收到的C2V的总和。
因此,解码器电路418可以在904中,保存每个VNi的后验概率
Figure GDA0003330832560000167
(保存在后验存储器504中),并且随后在每次解码迭代期间,通过将当前后验概率
Figure GDA0003330832560000168
与每个接收到的C2V(存储在消息存储器506中)相加来更新每个
Figure GDA0003330832560000169
然后,解码器电路418可以在904中,以更新的后验概率
Figure GDA00033308325600001610
减去从目的地CNj接收到的C2V的方式,从每个VNi生成输出的V2C。然后,解码器电路418可以在906中,以输入的V2C(不包括从目的地VNi接收的C2V)的所有符号(其可以由解码器电路418计算为偶数奇偶性的XOR校验)乘以最小(值最小)输入的V2C(不包括从目的地VNi接收的C2V)的幅值的乘积的方式,在每个CNj处生成输出的C2V。
解码器电路418可以在910中,在收敛性检测电路514(其可以被配置为访问后验存储器504和/或路由网络512,以便访问每个VN的当前后验值)处检查估计码字
Figure GDA00033308325600001611
(在每个VNi(i=1,2,...,N)处由
Figure GDA00033308325600001612
表示)是否已经收敛于有效码字。如前所述,正LLR值
Figure GDA00033308325600001613
可以对应于逻辑0比特,而负LLR值
Figure GDA00033308325600001614
可以对应于逻辑1比特。因此,解码器电路418可以在910中,在逻辑上量化每个
Figure GDA00033308325600001615
以获得当前
Figure GDA00033308325600001616
并且确定是否
Figure GDA0003330832560000171
(其指示
Figure GDA0003330832560000172
是有效码字),并且如果是,则可以结束于912。如果
Figure GDA0003330832560000173
则解码器电路418可以进行至904以执行下一次解码迭代(V2C生成、C2V生成、后验更新)。解码器电路418可以附加地具有终止准则,例如最大迭代次数,其可以触发解码器电路418终止于910。因此,如果在已经完成最大迭代次数之后,
Figure GDA0003330832560000174
尚未收敛于有效码字,则解码器电路418可以声明解码失败并结束于912。
图10示出解码器电路418的实现方式,其被配置为执行如上详细描述的最小和算法。如图10所示,每个VN电路502可以由先验输入1002(其可以是用于存储先验概率的先验存储器508;每个输入被访问一次)、加法器1004、复用器1006、减法器1008、复用器1010、后验存储器504以及消息存储器506组成。每个VN电路502可以被配置为对于对应的CN,根据所连接CN的数量来生成一个或多个V2C消息。如前所述,解码器电路418可以包括N个专用VN电路502,即,每个VNi(i=1,2,...,N)一个,其因此可以各自包括专用后验存储器504和专用消息存储器506,以保存给定VNi的后验和C2V数据。因此,每个VN电路502可以能够对给定VNi执行VN处理。解码器电路418可以类似地实现CN电路510,即,M个CN电路510(完全并行)或M'个CN电路510(部分并行)。例如,解码器电路418可以包括例如N=672个VN电路502和M'=42个CN电路510,以实现用于一次处理奇偶校验矩阵H的多达42行(例如,一“层”)的行并行硬件架构。
复用器1010可以被配置为选择V2C以提供给VNi的每个目的地CN。如前所述,每个VN可以在第一次解码迭代期间提供先验概率作为初始V2C,其中,先验概率是根据接收到的位yi和观测到的信道信息的LLR
Figure GDA0003330832560000175
并且可以被提供给先验输入1002。因此,复用器1010可以在第一次解码迭代期间选择由先验输入1002提供的先验概率作为VN电路502的V2C,并且可以在所有后续迭代期间选择由减法器1008提供的值。类似地,复用器1006可以被配置为选择概率以作为VN的后验概率存储在后验存储器504中。因此,复用器1006可以在第一次解码迭代期间,选择将由先验输入1002提供的先验概率存储在后验存储器504中作为VN的后验概率,并且在所有后续迭代中选择存储由加法器1004提供的值。
VN电路502可以在初始迭代之后的每次迭代期间更新存储在后验存储器504中的后验概率(公式(4))。如图10所示,VN电路502可以通过在加法器1004处将当前后验概率与VNi的所有接收到的C2V消息相加来更新后验概率。因此,VN电路502可以将存储在后验存储器504中的后验概率更新为当前后验概率和每个接收到的C2V的LLR的总和。
VN电路502可以附加地需要向每个所连接的CN提供指示更新的后验概率的V2C。为了避免向直接依赖于(通过加法器1004)由CN提供的C2V(存储在消息存储器506中)的CN发送V2C消息,VN电路502可以利用减法器1008从更新的后验概率中减去所连接的C2V,从而获得V2C以提供给每个CN。因此,复用器1010可以选择减法器1008的输出,以在初始迭代之后的每次迭代中将其提供作为来自VN的V2C(公式(2))。
然后,VN电路502可以将所得到的V2C消息提供给路由网络512,如图10所示,这可以对应于路由网络512的V2C路由部分512a。然后,V2C路由部分512a可以将由每个VN电路502提供的V2C消息路由到每个所连接的CN电路510。然后,给定CNj的CN电路510可以从所连接的dc,j个VN电路502中的每一个接收V2C消息。如前所述,CN电路510可以实现最小和算法,以便简化标准BP解码的复杂双曲正切操作。如图10所示,CN电路510可以包括比较选择树1012、复用器1016、索引选择器1014、奇偶校验评估器1018和偏移生成器1020。
如前所述,给定CNj可以从dc,j个所连接的VN中的每一个接收V2C消息,随后将C2V消息送回每个所连接的VN。每个所提供的C2V可以是每个所连接的VN利用来更新其后验概率的LLR调整值。类似于关于在VN电路502中由减法器1008减去从目的地CN接收到的C2V消息所详述的那样,CN电路510可以被配置为在计算响应C2V消息以提供给目的地VN期间忽略由给定目的地VN提供的V2C。CN电路510可以通过识别除了从目的地VNi接收的V2C之外的接收到的幅值最小的V2C并且将该幅值最小的V2C或该幅值最小的V2C的加法逆元(负)作为C2V提供给目的地VNi,来计算目的地VNi的C2V消息(公式(3))。
比较选择树1012可以被配置为将CNj的每个接收到的V2C消息进行比较以便识别最小V2C。如图10所示,比较选择树1012可以被配置为识别幅值最小的两个V2C LLR值,min1(幅值最小的V2C LLR)和min2(幅值次小的V2C LLR),以提供给复用器1016。然后,索引选择器1014可以向复用器1016提供基于C2V消息的目的地VNi的选择控制,以便确保复用器1016不将从目的地VNi接收到的V2C选择为min1或min2。因此,复用器1016可以基于min1和min2中哪一个提供更好的估计可靠性来选择mini1或min2以提供给偏移生成器1020。
偏移生成器1020还可以从奇偶校验评估器1018接收输入,该奇偶性评估器可以被实现为如图10所示的XOR门。奇偶性评估器1018可以被配置为基于从每个所连接的VN接收到的dc,j个V2C消息来评估CNj的奇偶校验公式。如前所述,每个V2C消息可以是LLR,其中,正LLR值指示0位,而负LLR值指示1位。因此,奇偶校验评估器1018可以通过评估每个接收到的V2C的乘积是负还是正来评估CNj的奇偶校验公式,这可以通过确定每个V2C的逻辑表示的XOR(正值V2C时为0,负值V2C时为1)是等于零(满足奇偶校验)还是>1(奇偶校验失败)来等同地计算。
如果奇偶校验评估器1018确定满足CNj的奇偶校验式,则偏移生成器1020可以将C2V消息作为除了从目的地VNi接收的V2C LLR以外的最小值V2C LLR连同偏移量一起提供给目的地VNi,以用于算法纠正。如果奇偶校验评估器1018确定不满足CNj的奇偶校验式,则偏移生成器1020可以将C2V消息作为除了从目的地VNi接收的V2C LLR以外的最小值V2CLLR的加法逆元连同偏移量一起提供给目的地VNi,以用于算法纠正。如图10所示,CN电路510可以经由路由网络512的C2V路由部分512b提供C2V消息。类似于以上关于VN电路502所详述的那样,每个CN电路510可以计算每个串联连接的VN的dc,j个C2V消息,或者可以仅计算单个C2V消息(因此需要解码器电路418包括多个CN电路510来提供给定CNj的dc,j个C2V消息)。
因此,每个VN电路502可以在C2V路由部分512上接收由CN电路510提供的C2V消息,并且随后可以将存储在后验存储器504中的VNi的后验概率更新为当前后验概率与dv,i个接收到的C2V中的每一个的总和。
因此,解码器电路418可以在每次迭代期间更新N个VN中的每一个的后验概率。每次迭代的长度可以取决于解码器电路418是被实现为完全并行架构还是被实现为部分并行架构。
如先前所详述的方法900可以对应于完全并行架构,其中,由于N个VN电路502和M个CN电路510可用,所以解码器电路418可以能够对所有N个VN和所有M个CN同时执行VN和CN处理以及后验更新。对于部分并行架构,由于硬件可用性降低,解码器电路418可能需要改变BP解码过程。图11示出方法1100,其说明在解码器电路418处针对行并行架构的BP解码。
解码器电路418可以在1102中,类似地在VN电路502中的相应一个电路处初始化每个VN的先验概率,这可以包括:基于接收到的码字和观测到的信道信息来初始化每个VN的先验概率,并将先验概率存储在每个VN的先验存储器508中(例如,将每个VN的先验概率存储在每个VN电路处的专用先验存储器508中)。
然后,解码器电路418可以开始对奇偶校验矩阵的给定层进行VN和CN处理,这可以对应于奇偶校验矩阵的M'<M行(M'个CN)。因此,解码器电路418可以在1104中,在VN电路502处生成与当前层的M'个CN中每一个相连接每个VN的V2C消息。由于解码器电路418可以仅包括M'个CN电路510,所以解码器电路418可能需要针对每个层重新使用CN电路510。因此,解码器电路418可以将M'个CN电路510中的每一个分派给当前层的相应CN,并且随后利用路由网络512将V2C从1104路由到相应的CN电路510。
然后,解码器电路418可以在1106中,基于从1104路由的V2C来在M'个CN电路510的每一个处执行CN处理,这可以包括:根据如上详述的BP解码来在每个CN电路510中为每个所连接的VN电路502计算C2V消息。然后,解码器电路418可以利用路由网络512将C2V路由到所连接的VN电路502。
解码器电路418可以以迭代方式执行1104和1106,并且可以继续对每一层执行1104和1106,直到奇偶校验矩阵的每一层都被处理。因此,解码器电路418可以在1108中,检查最近完成的层是否是奇偶校验矩阵的最后一层,并且如果不是,则可以返回到1104和1106以对奇偶校验矩阵的下一层执行VN和CN处理。
解码器电路418可以每次迭代执行每个VN电路502的后验概率的一次更新,即,每层每次处理更新一次。因此,如果解码器电路418在1108中确定已经处理了奇偶校验矩阵的最后一层,则解码器电路418可以进行至1110,以基于现有的后验概率和在最近迭代期间为M个CN中的每一个所生成的C2V消息来更新每个VN电路502的后验概率。
在更新每个VN的后验概率之后,解码器电路418可以在1112中,基于每个VN的当前后验概率来检查当前估计码字
Figure GDA0003330832560000211
是否是有效码字,并且如果当前估计码字是有效码字,则可以结束于1114。替代地,如果当前估计码字
Figure GDA0003330832560000212
不是有效码字,则解码器电路418可以继续于通过在1104和1106中逐层处理每个VN和CN来执行另一迭代,以对每个VN执行另一后验概率更新。
解码器电路418的部分并行实现方式可以适合于流水线调度,以便有效地利用解码器电路418的硬件组件,特别是对于行并行架构而言。例如,如图10所示,解码器电路418可以被划分为例如四级流水线,其中,流水线的每一级被配置为在由奇偶校验矩阵的M'行组成的一层上执行特定计算级。在第一流水线级中,每个VN电路502可以根据特定层(减法器1008和复用器1010)生成目的地CN的V2C消息,并且V2C路由部分512a可以根据对于当前流水线级,每一个CN电路510已经被分配给哪些CN来将V2C消息路由到目的地CN电路510。在第二流水线级中,CN电路510可以在比较选择树1012处执行比较选择操作。在第三流水线级中,CN电路510可以执行边际化(marginalization)(在索引选择器1014、复用器1016、奇偶校验评估器1018和偏移生成器1020处),以便为当前层的VN生成C2V消息。在第四流水线级中,C2V路由部分512b可以将C2V消息路由到VN电路502的目的地VN,其随后可以将接收到的C2V消息写入消息存储器506中。如将在后面详述的,每个流水线级可以由用于保存来自前一流水线级的结果以便在下一时钟周期期间提供给下一流水线级的寄存器隔开。尽管可能在下面引用了这样的4级流水线,但是应当注意,解码器电路418可以用许多不同的流水线架构来实现,这些架构在流水线级的数量、每个流水线级的组件、每个流水线级所执行的操作等方面不同。
解码器电路418可以能够为图11中详述的BP解码过程实现不同的流水线调度方案,例如通常用于BP解码的“洪泛式(flooding)”和“分层式(layered)”调度方案。图12A示出流水线调度图1200,其示出4级流水线的洪泛式调度,其中,流水线调度图1200的每一行对应于解码器电路418的流水线级,并且流水线调度图1200的每一列对应于时钟周期。
解码器电路418的每个流水线级可以被配置为在单个时钟周期期间处理一层(例如,图12的示例性流水线调度中总共六层中的一层)的VN和CN数据,其中,一层可以对应于奇偶校验矩阵的M'行。因此,解码器电路418还可以包括置于每个流水线级之间的触发器寄存器(图5或图10中未明确示出),以保存来自每个流水线级的结果直到下一时钟周期边沿,此时,每个触发器寄存器可以将存储的结果提供给下一流水线级。
根据行并行架构中的洪泛式调度,解码器电路418可以顺序地处理流水线中的每一层,其中,如图12a的流水线调度图1200中所示的4级流水线可以允许解码器电路418在单独的流水线级中一次处理多达四层。解码器电路418可以将每个流水线级的结果保存在分离每个连续流水线级的寄存器中,随后对于下一时钟周期,将存储在寄存器中的结果馈送到下一流水线级。因此,解码器电路418可以针对每一层来计算V2C(例如,流水线级I)和C2V消息(例如,流水线级2和3),并且以顺序方式针对每一层将所得到的C2V消息送回对应的VN(例如,流水线级4)。
一旦解码器电路418已经处理了每一层以获得M个VN中每一个的所有C2V消息(例如,在时钟周期8中),则解码器电路418可以同时并行地在每个VN电路502处更新后验值。然而,为了使每个VN的后验被并行更新,解码器电路418可能需要在每次迭代之间停顿流水线,以便允许解码器电路418完成对最后的层的处理。如流水线调度图1200所示,解码器电路418可能需要停顿达例如三个流水线周期,直到在将层1反馈到第一流水线级之前,第四流水线级已经完成对层6的处理,这可以允许解码器电路418(例如,在流水线级4处)完成对层6的C2V消息的计算。因此,解码器电路418可以避免数据依赖性问题,数据依赖性问题可能例如在层1依赖于与层6相同的VN时发生,因为解码器电路418可能直到当层6的C2V消息可用时的流水线周期8才能更新层6的VN的后验。解码器电路418可以继续于根据洪泛式调度处理每一层,直到估计码字收敛于有效码字或达到终止条件。
替代地,解码器电路418可以利用如图12b中的流水线调度图1210所示的分层式调度方案。在分层式方案中,解码器电路418可以在完成流水线中的每一层之后更新VN的后验值,这不同于上面详述的洪泛式方案,在后者中,解码器电路418延迟后验更新直到所有层都已被处理。因此,在分层式方案中,解码器电路418可以针对单层来计算V2C和C2V消息,随后一旦层准备好退出流水线就更新该层的相关VN。结果,解码器电路418可以基于新获得的C2V消息(来自流水线中的当前层的处理)和旧C2V消息(来自其他层的先前处理)两者来更新与当前层相关的每个VN。
如图12b所示,解码器电路418可能附加地需要利用流水线停顿,以便避免层之间的数据依赖性。由于解码器电路418可以一旦给定层准备好退出流水线时就更新该层的VN,所以解码器电路418可能直到当前层的VN被更新之后才能够使下一层进入流水线中。在没有流水线停顿的情况下,解码器电路418可以基于特定VN的过时的后验值来计算用于更新该VN的C2V消息。例如,如果层1和层2两者都依赖于给定VNi,则解码器电路418可以在例如层1的时钟周期3处更新VNi的后验。然而,如果解码器电路418在层1(例如,时钟周期1)之后立即使层2进入了流水线中,则解码器电路418可能附加地已经基于VNi的先前后验值计算了V2C消息和C2V消息(在层1的更新之前),并且因此,可以基于这些过时的V2C和C2V消息来在时钟周期4处更新VNi的后验值。为了避免由数据依赖性引起的这些问题,解码器电路418可以改为引入流水线停顿,以确保在生成新层的V2C和C2V消息之前每个VN的后验值是当前的。
如图12b所示,解码器电路418可以继续单独地处理每一层,同时在流水线出口处更新每一层的相关VN。解码器电路418可以类似地检查码字收敛性,解码器电路418可以在每次迭代之间,即在解码器电路418已经对每一层执行一次处理之后(例如,在流水线调度图1210中的时钟周期23处)执行它。
尽管解码器电路418可能需要在分层式调度中引入比洪泛式调度更多的流水线停顿,但是由于每一层的VN被顺序并行更新,所以解码器电路418可以能够获得更快的估计码字
Figure GDA0003330832560000241
的收敛。因此,在误码率(BER)类似的情况下,分层式调度可以比洪泛式调度收敛快两倍。
无论如何,洪泛式和分层式调度所需的流水线停顿可能降低解码器电路418的吞吐量潜力。为了减少流水线停顿并随后增加吞吐量,解码器电路418可以改为利用“混合式”调度方案,其忽略层之间的数据依赖性以便消除流水线停顿并允许VN后验的无缝更新。此外,解码器电路418可以例如通过将解码器电路418分配到两个流水线级(如关于图13详述的)而不是四个流水线级(如先前关于图10详述的)中来降低流水线的分辨率以采用“粗”流水线级。由于解码器电路418可以忽略层之间的数据依赖性,所以粗流水线可以允许解码器电路418部分地降低依赖性以防止过度的性能下降(即,因为在每个给定时钟周期处流水线中存在更少的层)。然而应当注意,解码器电路418可以替代地利用混合式调度方案,而没有粗流水线。
图12c中的流水线调度图1220示出解码器电路418采用的混合式调度方案。如流水线调度图1220所描绘的,解码器电路418可以一旦当前层准备好移动到下一流水线级时就立即使下一层进入流水线中。与在洪泛式调度的情况下等待直到完成每一层相反,解码器电路418可以在流水线出口处对每一层执行后验更新,并且因此,可以在每个时钟周期处为退出的每一层更新VN。因此,解码器电路418可以忽略层之间的任何数据依赖性,因为混合式调度可以使解码器电路418利用过时的后验值进行V2C和C2V生成(例如,如果前一层依赖于下一层的给定VNi,这将使得先前层更新VNi的后验值,同时下一层基于VNi的未更新后验值生成V2C和C2V消息)。因此,解码器电路418可以忽略这种数据依赖性的潜在性,并且继续使后续层进入流水线中,而不引入流水线停顿,并且因此潜在地在更新VN的后验之前生成V2C消息。解码器电路418可以类似地在每次迭代完成之后(例如,流水线调度图1220中的时钟周期7)检查收敛性。
因此,根据这样的混合式调度配置的解码器电路418可以允许更新VN后验的无缝更新,如在洪泛式调度中那样,同时允许消息深度传播通过多层,如在分层式调度中那样。此外,由于消除了流水线停顿,所以解码器电路418可以以忽略层之间的数据依赖性(例如,在解码器电路418完成对层的更新之前使用该层的过时数据)所引起的轻微性能下降为代价来增加吞吐量。然而,性能下降可能是最小的,并且甚至可以通过允许解码器电路418执行更多的迭代(例如,通过增加终止准则)来恢复。
因此,解码器电路418可以实现混合式调度以便增加吞吐量,并且可以附加地采用粗流水线以便降低在流水线中同时处理的层之间的数据依赖性(因为粗流水线可以使更少的层被并发处理)。应当注意,混合式调度可以不限于行并行架构,并且可以类似地被实现用于任何部分并行架构中的流水线调度。
如前所述,LDPC码已经在各种通信标准(其可以表征为“固定吞吐量”应用,即具有由特定标准指定的目标吞吐率)中看到更多的使用。因此,LDPC解码器可能需要提供吞吐量能力以满足目标吞吐率;然而,由于通信协议的“固定”吞吐量性质,提供高于目标吞吐率的吞吐量可能不是有益的。
因此,解码器电路418可以能够通过实现混合式调度方案(以及可选地,实现粗流水线)来获得“过量”吞吐量。由于这种过量吞吐量在固定吞吐量应用中可能不是特别有益的,所以解码器电路418可以折衷过量吞吐量以便允许功率降低,并且因此可以提高解码器电路418的能量效率。
解码器电路418可能需要具有足够的供给电压以便有效地操作。特别地,解码器电路418可能需要足够的功率以便确保每个流水线级的计算在每个时钟周期内完成,其中,如果流水线计算没有及时完成,则解码器电路418可能失败。由于工艺、电压和温度(PVT)的变化以及信号完整性和延迟模型不确定性,每个流水线级所需的计算时间可能不会保持严格恒定,并且可能增加关键路径(最长流水线级)将超过时钟边沿的可能性。此外,随着技术演进(scale)到更小的区域,PVT变化的严重性可能增加,特别是对于40nm以下的技术。由于流水线级计算时间易发生变化,常规解决方案可能引入不切实际的设计余量,以便防止关键路径导致时序违规。因此,常规解决方案可以在供给电压中包括电压保护带(例如,10-15%的电压保护带)以便确保流水线级始终被提供足够的电压以满足由时钟频率赋予的计算要求。尽管这样可以使流水线避免时序违规,但这样的电压保护带构成保守的“最坏情况”方法,其导致显著的功率开销和设计收敛困难。
如前所述,解码器电路418可以通过在每个流水线级之间包括触发器寄存器来实现流水线级,这可能因触发器的边沿触发性质而需要每个流水线级在下一时钟边沿之前完成计算。替代地,为了消除上面详述的电压和时序余量,解码器电路418可以改为被实现为基于锁存器的流水线,以便利用相邻流水线级之间的时间借用。由于与边沿触发触发器相反,锁存器是电平触发的,所以解码器电路418可以避免由关键路径丢失时钟边沿引起的时序违规,并且改为允许某些锁存的流水线级从相邻流水线级借用时间。结果,解码器电路418可以能够实现动态电压缩放(DVS),以便在降低的供给电压(因过量吞吐量而提供的)下操作,而不会经历过度的时序违规。
图13示出解码器电路418的两级流水线的基于锁存器的配置,其利用主从锁存器来将每个流水线级分开。如图13所示,与在每个流水线级之间放置触发器寄存器相反,解码器电路418可以将这样的触发器分解成后验存储器锁存器504a(低电平有效)和504b(高电平有效)、消息存储器锁存器506(高电平有效)、锁存器1310(低电平有效)、锁存器1314(高电平有效)以及锁存器1324(低电平有效)中的主锁存器和从锁存器。然后,解码器电路418可以操作先验输入1302(其可以是用于存储先验概率的先验存储器508)、复用器1304、减法器1308、V2C路由部分512a、比较选择树1312、索引选择器1316、复用器1318、奇偶校验评估器1320、偏移生成器1322和C2V路由部分512b,如以上关于图10中的解码器电路418的对应组件所详述的。如图13所示,解码器电路418可以在第一流水线级中生成V2C消息,执行V2C路由,并执行比较选择处理,并且可以在第二流水线级中执行边际化(生成C2V消息)、C2V路由以及后验更新。
因此,解码器电路418可以除了锁存器1310、1314和1324之外,还采用后验存储器锁存器504a和504b以及消息存储器锁存器506来实现软边沿流水线,在其中,来自每个流水线级的数据可以在时钟边沿之后到达下一锁存器。因此,如果PVT变化导致数据在时钟边沿之后到达,则解码器电路418的给定流水线级可以“借用”时间。因此,解码器电路418可以在没有显著保护带的情况下操作,并在流水线级之间利用动态时间借用以便避免时序违规。
应当注意,可以选择解码器电路418的流水线级的具体配置以“平衡”流水线,使得每个流水线级需要类似的时间量来完成,这可以包括:例如通过选择锁存器的位置,使得在每个高电平有效锁存器与低电平有效锁存器之间发生类似的计算量,来在逻辑主导流水线级(VN电路502和CN电路510)与线主导流水线级(路由网络512)之间进行平衡。应当注意,解码器电路418不限于特定的流水线配置,并且图13代表一种这样的选项。
因此,利用基于锁存器的流水线实现的解码器电路418可以消除对电压和时序保护带的需要,并且因此允许激进的DVS要求和降低的功率要求。因此,解码器电路418可以利用经由混合式调度可提供的过量吞吐量,以便减少解码器电路418的必需供给电压并且因此提高能量效率。应当注意,解码器电路418可以与粗流水线和/或基于锁存器的流水线分开地实现混合式调度。
图14示出利用流水线解码系统执行码字解码的方法1400,该流水线解码系统包括多个流水线解码级,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个奇偶校验式。如图14所示,方法1400包括:利用流水线解码系统发起对由码字的一个或多个第一奇偶校验式组成的第一奇偶校验集的处理(1410);利用流水线解码系统发起对由码字的一个或多个第二奇偶校验式组成的第二奇偶校验集的处理(1420);基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息(1430);以及利用第一奇偶校验集的一个或多个码字更新消息更新码字的第一估计值,以获得码字的第二估计值(1440)。
在本公开的一个或多个其他示例性方面中,上面参考图1至图13描述的一个或多个特征可以进一步并入方法1400中。特别地,方法1400可以被配置为执行关于解码器电路418详述的进一步和/或替代处理。
图15示出利用流水线解码系统执行码字解码的方法1500,该流水线解码系统由多个流水线解码级组成,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个校验节点(CN)。如图15所示,方法1500包括:使由码字的一个或多个第一CN组成的第一CN集进入流水线解码系统中(1510);使由码字的一个或多个第二CN组成的第二CN集进入流水线解码系统中(1520);基于码字的第一估计值生成第二CN集的一个或多个V2C或C2V消息(1530);以及利用第一CN集的一个或多个V2C或C2V消息更新码字的第一估计值,以获得码字的第二估计值(1540)。
在本公开的一个或多个其他示例性方面中,上面参考图1至图13描述的一个或多个特征可以进一步并入方法1500中。特别地,方法1500可以被配置为执行关于解码器电路418详述的进一步和/或替代处理。
应当理解,术语“用户设备”、“UE”、“移动终端”等可以适用于任何无线通信设备,包括蜂窝电话、平板电脑、膝上型电脑、个人计算机、可穿戴设备、多媒体回放设备、消费者/家用电器、车辆等,以及能够无线通信的任何数量的附加电子设备。
应当理解,本文详述的方法的实现方式本质上是示范性的,并且因此被理解为能够在对应设备中实现。同样,应当理解,本文详述的设备的实现方式被理解为能够被实现为对应的方法。因此,应当理解,与本文详述的方法对应的设备可以包括被配置为执行相关方法的每个方面的一个或多个组件。
以下示例属于本公开的其他方面。
示例1是一种利用流水线解码系统执行码字解码的方法,该流水线解码系统包括多个流水线解码级,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个奇偶校验式,该方法包括:利用流水线解码系统发起对包括码字的一个或多个第一奇偶校验式的第一奇偶校验集的处理;利用流水线解码系统发起对包括码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理;基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息;以及利用第一奇偶校验集的一个或多个码字更新消息更新码字的第一估计值以获得码字的第二估计值。
在示例2中,示例1的主题可以可选地包括,其中,利用流水线解码系统发起对包括码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理包括:在利用流水线解码系统发起对第一奇偶校验集的处理之后,发起对第二奇偶校验集的处理。
在示例3中,示例1或2的主题可以可选地包括,其中,利用第一奇偶校验集的一个或多个码字更新消息更新码字的第一估计值以获得码字的第二估计值包括:在流水线解码系统完成对第二奇偶校验集的处理之前,利用第一奇偶校验集的一个或多个码字更新消息更新码字的第一估计值以获得码字的第二估计值。
在示例4中,示例1至3中任一示例的主题可以可选地包括,其中,码字是线性分组码字。
在示例5中,示例1至4中任一示例的主题可以可选地包括,其中,一个或多个第一奇偶校验式和一个或多个第二奇偶校验式对应于码字的一个或多个校验节点。
在示例6中,示例1至5中任一示例的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点。
在示例7中,示例6的主题可以可选地包括,其中,码字的第一估计值对应于一个或多个变量节点的后验值。
在示例8中,示例1至4中任一示例的主题可以可选地包括,其中,码字的第一估计值由一个或多个逻辑比特组成,并且其中,码字的第一估计值的每个逻辑比特对应于码字的相应变量节点。
在示例9中,示例1至8中任一示例的主题可以可选地包括,其中,码字是低密度奇偶校验(LDPC)码字。
在示例10中,示例1至9中任一示例的主题可以可选地包括,其中,一个或多个码字更新消息是变量到校验消息或校验到变量消息。
在示例11中,示例1至10中任一示例的主题可以可选地包括,其中,第一奇偶校验集和第二奇偶校验集互斥。
在示例12中,示例1至11中任一示例的主题可以可选地包括,其中,第一奇偶校验集依赖于包括码字的一个或多个比特的第一比特集,并且第二奇偶校验集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集不互斥。
在示例13中,示例1至11中任一示例的主题可以可选地包括,其中,第一奇偶校验集依赖于包括码字的一个或多个比特的第一比特集,并且第二奇偶校验集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集互斥。
在示例14中,示例1至13中任一示例的主题可以可选地进一步包括,在多次迭代的每次迭代期间获得码字的更新估计值,以获得码字的解码估计值。
在示例15中,示例14的主题可以可选地进一步包括,确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例16中,示例15的主题可以可选地进一步包括,如果码字的更新估计值是有效码字,则在多次迭代的给定迭代期间终止解码,并且选择码字的更新估计值作为码字的解码估计值。
在示例17中,示例15的主题可以可选地包括,其中,确定当前迭代的码字的更新估计值是否是有效码字包括:确定当前迭代的码字的更新估计值是否满足一个或多个第一奇偶校验式和一个或多个第二奇偶校验式。
在示例18中,示例1至13中任一示例的主题可以可选地包括,其中,码字对应于多个奇偶校验式,并且其中,多个奇偶校验式包括第一奇偶校验集和第二奇偶校验集。
在示例19中,示例18的主题可以可选地进一步包括,根据多个奇偶校验式来确定码字的第一估计值或码字的第二估计值是否是有效码字。
在示例20中,示例18的主题可以可选地进一步包括,利用流水线解码系统处理多个奇偶校验式中的每一个,直到收敛或终止而没有任何流水线停顿。
在示例21中,示例1至13中任一示例的主题可以可选地进一步包括,应用第一奇偶校验集和第二奇偶校验集以确定码字的第一估计值或第二估计值是否是有效码字。
在示例22中,示例1至21中任一示例的主题可以可选地包括,其中,利用流水线解码系统发起对包括码字的一个或多个第一奇偶校验式的第一奇偶校验集的处理包括:在流水线解码系统的初始流水线级处发起对第一奇偶校验集的处理。
在示例23中,示例22的主题可以可选地包括,其中,在利用流水线解码系统发起对第一奇偶校验集的处理之后利用流水线解码系统发起对包括码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理包括:在流水线解码系统的初始流水线级处发起对第二奇偶校验集的处理。
在示例24中,示例1的主题可以可选地包括,其中,一个或多个第一奇偶校验式和一个或多个第二奇偶校验式对应于码字的一个或多个校验节点,并且其中,码字的第一估计值对应于码字的一个或多个变量节点在第一时间处的后验值。
在示例25中,示例24的主题可以可选地包括,其中,基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息包括:根据一个或多个变量节点在第一时间处的后验值来生成第二奇偶校验集的一个或多个校验到变量消息。
在示例26中,示例24或25的主题可以可选地包括,其中,在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值以获得码字的第二估计值包括:利用一个或多个校验到变量消息来更新一个或多个变量节点的后验值。
在示例27中,示例24的主题可以可选地包括,其中,码字的第二估计值对应于一个或多个变量节点在第一时间之后出现的第二时间处的后验值。
在示例28中,示例24的主题可以可选地包括,其中,利用流水线解码系统发起对包括码字的一个或多个第一奇偶校验式的第一奇偶校验集的处理包括:生成一个或多个第一奇偶校验式的一个或多个变量到校验消息。
在示例29中,示例24的主题可以可选地包括,其中,在利用流水线解码系统发起对第一奇偶校验集的处理之后利用流水线解码系统发起对包括码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理包括:生成一个或多个第二奇偶校验式的一个或多个变量到校验消息。
在示例30中,示例1至13中任一示例的主题可以可选地进一步包括,利用第二奇偶校验集的一个或多个码字更新消息更新码字的第二估计值以获得码字的第三估计值。
在示例31中,示例30的主题可以可选地包括,其中,利用第二奇偶校验集的一个或多个码字更新消息更新码字的第二估计值以获得码字的第三估计值包括:在更新码字的第一估计值之后更新码字的第二估计值。
在示例32中,示例1至31中任一示例的主题可以可选地进一步包括,生成第一奇偶校验集的一个或多个码字更新消息。
在示例33中,示例1至32中任一示例的主题可以可选地包括,其中,基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息包括:应用码字的第一估计值以根据置信传播解码算法生成第二奇偶校验集的一个或多个码字更新消息。
在示例34中,示例1至32中任一示例的主题可以可选地包括,其中,基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息包括:应用码字的第一估计值以根据和-积解码算法生成第二奇偶校验集的一个或多个码字更新消息。
在示例35中,示例1至32中任一示例的主题可以可选地包括,其中,基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息包括:应用码字的第一估计值以根据最小和解码算法生成第二奇偶校验集的一个或多个码字更新消息。
在示例36中,示例1至32中任一示例的主题可以可选地包括,其中,在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值以获得码字的第二估计值包括:根据置信传播解码算法,利用一个或多个码字更新消息来更新码字的第一估计值。
在示例37中,示例1至32中任一示例的主题可以可选地包括,其中,在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值以获得码字的第二估计值包括:根据和-积解码算法,利用一个或多个码字更新消息来更新码字的第一估计值。
在示例38中,示例1至32中任一示例的主题可以可选地包括,其中,在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值以获得码字的第二估计值包括:根据最小和解码算法,利用一个或多个码字更新消息来更新码字的第一估计值。
示例39是一种流水线解码系统,用于执行由一个或多个奇偶校验式表征的码字的流水线解码,该流水线解码系统包括:第一电路,被配置为:处理包括码字的一个或多个第一奇偶校验式的第一奇偶校验集,并且处理包括码字的一个或多个第二奇偶校验式的第二奇偶校验集;第二电路,被配置为:基于码字的第一估计值来生成第二奇偶校验集的一个或多个码字更新消息;以及第三电路,被配置为:利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值,以获得码字的第二估计值。
在示例40中,示例39的主题可以可选地包括,其中,第一电路被配置为:在处理第一奇偶校验集之后处理第二奇偶校验集。
在示例41中,示例39或40的主题可以可选地包括,其中,第三电路被配置为:在流水线解码系统完成对第二奇偶校验集的处理之前,利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值,以获得码字的第二估计值。
在示例42中,示例39至41中任一示例的主题可以可选地包括,其中,流水线解码系统包括多个电路,该多个电路包括第一电路、第二电路和第三电路,并且其中,流水线解码系统还包括基于锁存器的寄存器,被配置为存储多个电路中的至少两个电路之间的结果。
在示例43中,示例39至41中任一示例的主题可以可选地包括,其中,流水线解码系统包括多个电路,该多个电路包括第一电路、第二电路和第三电路,并且其中,流水线解码系统还包括多个基于锁存器的寄存器,每个寄存器被配置为将多个电路中的相邻电路分开。
在示例44中,示例43的主题可以可选地包括,其中,多个电路中的至少两个电路被配置为:利用多个基于锁存器的寄存器中的一个进行流水线时间借用。
在示例45中,示例39至44中任一示例的主题可以可选地包括,其中,码字是线性分组码字。
在示例46中,示例39至45中任一示例的主题可以可选地包括,其中,一个或多个码字更新消息是变量到校验消息或校验到变量消息。
在示例47中,示例39至46中任一示例的主题可以可选地包括,其中,一个或多个第一奇偶校验式和一个或多个第二奇偶校验式对应于码字的一个或多个校验节点。
在示例48中,示例39至47中任一示例的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点。
在示例49中,示例48的主题可以可选地包括,其中,码字的第一估计值对应于一个或多个变量节点的后验值。
在示例50中,示例39至49中任一示例的主题可以可选地包括,其中,码字的第一估计值由一个或多个逻辑比特组成,并且其中,码字的第一估计值的每个逻辑比特对应于码字的相应变量节点。
在示例51中,示例39至50中任一示例的主题可以可选地包括,其中,码字是低密度奇偶校验(LDPC)码字。
在示例52中,示例39至51中任一示例的主题可以可选地包括,其中,第一奇偶校验集和第二奇偶校验集互斥。
在示例53中,示例39至52中任一示例的主题可以可选地包括,其中,第一奇偶校验集依赖于包括码字的一个或多个比特的第一比特集,并且第二奇偶校验集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集不互斥。
在示例54中,示例39至52中任一示例的主题可以可选地包括,其中,第一奇偶校验集依赖于包括码字的一个或多个比特的第一比特集,并且第二奇偶校验集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集互斥。
在示例55中,示例39至54中任一示例的主题可以可选地包括,其中,第三电路被配置为:在多次迭代的每次迭代期间获得码字的更新估计值,以获得码字的解码估计值。
在示例56中,示例55的主题可以可选地进一步包括收敛性检测电路,被配置为:确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例57中,示例56的主题可以可选地包括,其中,收敛性检测电路还被配置为:如果码字的更新估计值是有效码字,则在多次迭代的给定迭代期间终止解码,并且选择码字的更新估计值作为码字的解码估计值。
在示例58中,示例56的主题可以可选地包括,其中,收敛性检测电路被配置为:通过确定当前迭代的码字的更新估计值是否满足一个或多个第一奇偶校验式和一个或多个第二奇偶校验式,来确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例59中,示例39至58中任一示例的主题可以可选地包括,其中,码字对应于多个奇偶校验式,并且其中,多个奇偶校验式包括第一奇偶校验集和第二奇偶校验集。
在示例60中,示例59的主题可以可选地进一步包括收敛性检测电路,被配置为:根据多个奇偶校验式来确定码字的第一估计值或码字的第二估计值是否是有效码字。
在示例61中,示例60的主题可以可选地包括,其中,流水线解码系统被配置为:处理多个奇偶校验式中的每一个奇偶校验式,直到收敛或终止而没有任何流水线停顿。
在示例62中,示例39至54中任一示例的主题可以可选地进一步包括收敛性检测电路,被配置为:应用第一奇偶校验集和第二奇偶校验集以确定码字的第一估计值或第二估计值是否是有效码字。
在示例63中,示例39至62中任一示例的主题可以可选地包括,其中,第一电路是流水线解码系统的初始流水线级。
在示例64中,示例39至63中任一示例的主题可以可选地包括,其中,第三电路是流水线解码系统的最后流水线级。
在示例65中,示例39的主题可以可选地包括,其中,一个或多个第一奇偶校验式和一个或多个第二奇偶校验式对应于码字的一个或多个校验节点,并且其中,码字的第一估计值对应于码字的一个或多个变量节点在第一时间处的后验值。
在示例66中,示例65的主题可以可选地包括,其中,第二电路被配置为:通过根据一个或多个变量节点在第一时间处的后验值生成第二奇偶校验集的一个或多个校验到变量消息,来基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息。
在示例67中,示例65或66的主题可以可选地包括,其中,第三电路被配置为:在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息来更新码字的第一估计值以获得码字的第二估计值包括:利用一个或多个校验到变量消息来更新一个或多个变量节点的后验值。
在示例68中,示例65的主题可以可选地包括,其中,码字的第二估计值对应于一个或多个变量节点在第一时间之后出现的第二时间处的后验值。
在示例69中,示例65的主题可以可选地包括,其中,第一电路被配置为:通过生成一个或多个第一奇偶校验式的码字的估计位的后验值来发起对第一奇偶校验集的处理。
在示例70中,示例65的主题可以可选地包括,其中,第二电路被配置为:通过生成一个或多个第二奇偶校验式的码字的估计位的后验值来在处理第一奇偶校验集之后发起对第二奇偶校验集的处理。
在示例71中,示例39至70中任一示例的主题可以可选地包括,其中,第三电路还被配置为:利用第二奇偶校验集的一个或多个码字更新消息来更新码字的第二估计值,以获得码字的第三估计值。
在示例72中,示例71的主题可以可选地包括,其中,第三电路被配置为:在更新码字的第一估计值之后,利用第二奇偶校验集的一个或多个码字更新消息更新码字的第二估计值以获得码字的第三估计值。
在示例73中,示例39至72中任一示例的主题可以可选地包括,其中,第二电路还配置为:生成第一奇偶校验集的一个或多个码字更新消息。
在示例74中,示例39至73中任一示例的主题可以可选地包括,其中,第二电路被配置为:通过应用码字的第一估计值以根据置信传播解码算法、最小和解码算法或者和-积解码算法生成第二奇偶校验集的一个或多个码字更新消息,来基于码字的第一估计值生成第二奇偶校验集的一个或多个码字更新消息。
在示例75中,示例39至63中任一示例的主题可以可选地包括,其中,第三电路被配置为:通过根据置信传播解码算法、最小和解码算法或者和-积解码算法利用一个或多个码字更新消息更新码字的第一估计值,来在流水线解码系统完成对第二奇偶校验集的处理之前利用第一奇偶校验集的一个或多个码字更新消息更新码字的第一估计值以获得码字的第二估计值。
示例76是一种利用流水线解码系统执行码字解码的方法,该流水线解码系统包括多个流水线解码级,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个校验节点,该方法包括:使包括码字的一个或多个第一校验节点的第一校验节点集进入流水线解码系统中;使包括码字的一个或多个第二校验节点的第二校验节点集进入流水线解码系统中;基于码字的第一估计值生成第二校验节点集的一个或多个变量到校验或校验到变量消息;在流水线解码系统完成对第二校验节点集的处理之前,利用第一校验节点集的一个或多个变量到校验或校验到变量消息更新码字的第一估计值,以获得码字的第二估计值。
在示例77中,示例76的主题可以可选地包括,其中,使包括码字的一个或多个第二校验节点的第二校验节点集进入流水线解码系统中包括:在使第一校验节点集进入流水线解码系统中之后,使第二校验节点集进入流水线解码系统中。
在示例78中,示例76或77的主题可以可选地包括,其中,利用第一校验节点集的一个或多个变量到校验或校验到变量消息更新码字的第一估计值以获得码字的第二估计值包括:在流水线解码系统完成对第二校验节点集的处理之前,利用第一校验节点集的一个或多个变量到校验或校验到变量消息更新码字的第一估计值以获得码字的第二估计值。
在示例79中,示例76至78中任一示例的主题可以可选地包括,其中,码字是线性分组码字。
在示例80中,示例76至79中任一示例的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点。
在示例81中,示例80的主题可以可选地包括,其中,码字的第一估计值对应于一个或多个变量节点的后验值。
在示例82中,示例76至79中任一示例的主题可以可选地包括,其中,码字的第一估计值由一个或多个逻辑比特组成,并且其中,码字的第一估计值的每个逻辑比特对应于码字的相应变量节点。
在示例83中,示例76至82中任一示例的主题可以可选地包括,其中,码字是低密度奇偶校验(LDPC)码字。
在示例84中,示例76至83中任一示例的主题可以可选地包括,其中,第一校验节点集和第二校验节点集互斥。
在示例85中,示例76至84中任一示例的主题可以可选地包括,其中,第一校验节点集依赖于包括码字的一个或多个比特的第一比特集,并且第二校验节点集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集不互斥。
在示例86中,示例76至84中任一示例的主题可以可选地包括,其中,第一校验节点集依赖于包括码字的一个或多个比特的第一比特集,并且第二校验节点集依赖于包括码字的一个或多个比特的第二比特集,并且其中,第一比特集和第二比特集互斥。
在示例87中,示例76至86中任一示例的主题可以可选地进一步包括,在多次迭代的每次迭代期间获得码字的更新估计值,以获得码字的解码估计值。
在示例88中,示例87的主题可以可选地进一步包括,确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例89中,示例88的主题可以可选地进一步包括,如果码字的更新估计值是有效码字,则在多次迭代的给定迭代期间终止解码,并且选择码字的更新估计值作为码字的解码估计值。
在示例90中,示例88的主题可以可选地包括,其中,确定当前迭代的码字的更新估计值是否是有效码字包括:确定当前迭代的码字的更新估计值是否满足一个或多个第一校验节点和一个或多个第二校验节点。
在示例91中,示例76的主题可以可选地包括,其中,码字对应于包括一个或多个第一校验节点和一个或多个第二校验节点的多个校验节点。
在示例92中,示例91的主题可以可选地进一步包括,根据多个校验节点来确定码字的第一估计值或码字的第二估计值是否是有效码字。
在示例93中,示例91的主题可以可选地进一步包括,利用流水线解码系统处理多个校验节点中的每一个,直到收敛或终止而没有任何流水线停顿。
在示例94中,示例76至93中任一示例的主题可以可选地进一步包括,应用第一校验节点集和第二校验节点集以确定码字的第一估计值或第二估计值是否是有效码字。
在示例95中,示例76至94中任一示例的主题可以可选地包括,其中,使包括码字的一个或多个第一校验节点的第一校验节点集进入流水线解码系统中包括:使第一校验节点集进入流水线解码系统的初始流水线级中。
在示例96中,示例95的主题可以可选地包括,其中,在使第一校验节点集进入流水线解码系统中之后使包括码字的一个或多个第二校验节点的第二校验节点集进入流水线解码系统中包括:使第二校验节点集进入流水线解码系统的初始流水线级中。
在示例97中,示例76的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点在第一时间处的后验值。
在示例98中,示例97的主题可以可选地包括,其中,基于码字的第一估计值生成第二校验节点集的一个或多个变量到校验或校验到变量消息包括:根据一个或多个变量节点在第一时间处的后验值来生成第二校验节点集的一个或多个校验到变量消息。
在示例99中,示例97的主题可以可选地包括,其中,在流水线解码系统完成对第二校验节点集的处理之前利用第一校验节点集的一个或多个变量到校验或校验到变量消息来更新码字的第一估计值以获得码字的第二估计值包括:利用一个或多个校验到变量消息来更新一个或多个变量节点的后验值。
在示例100中,示例97的主题可以可选地包括,其中,码字的第二估计值对应于一个或多个变量节点在第一时间之后出现的第二时间处的后验值。
在示例101中,示例97的主题可以可选地包括,其中,使包括码字的一个或多个第一校验节点的第一校验节点集进入流水线解码系统中包括:生成一个或多个第一校验节点的一个或多个变量到校验消息。
在示例102中,示例97的主题可以可选地包括,其中,在使第一校验节点集进入流水线解码系统中之后使包括码字的一个或多个第二校验节点的第二校验节点集进入流水线解码系统中包括:生成一个或多个第二校验节点的一个或多个变量到校验消息。
在示例103中,示例76至102中任一示例的主题可以可选地进一步包括,利用第二校验节点集的一个或多个变量到校验或校验到变量消息更新码字的第二估计值以获得码字的第三估计值。
在示例104中,示例103的主题可以可选地包括,其中,利用第二校验节点集的一个或多个变量到校验或校验到变量消息更新码字的第二估计值以获得码字的第三估计值包括:在更新码字的第一估计值之后更新码字的第二估计值。
在示例105中,示例76至104中任一示例的主题可以可选地进一步包括,生成第一校验节点集的一个或多个变量到校验或校验到变量消息。
在示例106中,示例76至105中任一示例的主题可以可选地包括,其中,基于码字的第一估计值生成第二校验节点集的一个或多个变量到校验或校验到变量消息包括:应用码字的第一估计值,以根据置信传播解码算法、最小和解码算法或者和-积解码算法生成第二校验节点集的一个或多个变量到校验或校验到变量消息。
在示例107中,示例76至106中任一示例的主题可以可选地包括,其中,在流水线解码系统完成对第二校验节点集的处理之前利用第一校验节点集的一个或多个变量到校验或校验到变量消息来更新码字的第一估计值以获得码字的第二估计值包括:根据置信传播解码算法、最小和解码算法或者和-积解码算法,利用一个或多个变量到校验或校验到变量消息来更新码字的第一估计值。
示例108是一种流水线解码系统,用于执行由一个或多个校验节点和一个或多个变量节点表征的码字的流水线解码,该流水线解码系统包括:第一电路,被配置为:处理包括码字的一个或多个第一校验节点的第一校验节点集,并且处理包括码字的一个或多个第二校验节点的第二校验节点集;第二电路,被配置为:基于码字的第一估计值来生成第二校验节点集的一个或多个校验到变量消息;以及第三电路,被配置为:在流水线解码系统完成对第二校验节点集的处理之前,利用第一校验节点集的一个或多个校验到变量消息来更新码字的第一估计值,以获得码字的第二估计值。
在示例109中,示例108的主题可以可选地包括,其中,第一电路被配置为:在处理第一校验节点集之后处理第二校验节点集。
在示例110中,示例108或109的主题可以可选地包括,其中,第三电路被配置为:在流水线解码系统完成对第二校验节点集的处理之前,利用第一校验节点集的一个或多个校验到变量消息来更新码字的第一估计值,以获得码字的第二估计值。
在示例111中,示例108至110中任一示例的主题可以可选地包括,其中,流水线解码系统包括多个电路,该多个电路包括第一电路、第二电路和第三电路,并且其中,流水线解码系统还包括基于锁存器的寄存器,被配置为存储多个电路中的至少两个电路之间的结果。
在示例112中,示例108至110中任一示例的主题可以可选地包括,其中,流水线解码系统包括多个电路,该多个电路包括第一电路、第二电路和第三电路,并且其中,流水线解码系统还包括多个基于锁存器的寄存器,每个寄存器被配置为将多个电路中的相邻电路分开。
在示例113中,示例112的主题可以可选地包括,其中,多个电路中的至少两个电路被配置为:利用多个基于锁存器的寄存器中的一个进行流水线时间借用。
在示例114中,示例108至113中任一示例的主题可以可选地包括,其中,码字是线性分组码字。
在示例115中,示例108至114中任一示例的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点的后验值。
在示例116中,示例108至115中任一示例的主题可以可选地包括,其中,码字的第一估计值由一个或多个逻辑比特组成,并且其中,码字的第一估计值的每个逻辑比特对应于码字的相应变量节点。
在示例117中,示例108至116中任一示例的主题可以可选地包括,其中,码字是低密度奇偶校验(LDPC)码字。
在示例118中,示例108至117中任一示例的主题可以可选地包括,其中,第一校验节点集和第二校验节点集互斥。
在示例119中,示例108至118中任一示例的主题可以可选地包括,其中,第一校验节点集依赖于码字的一个或多个第一变量节点,并且第二校验节点集依赖于码字的一个或多个第二变量节点,并且其中,一个或多个第一变量节点和一个或多个第二变量节点彼此不互斥。
在示例120中,示例108至118中任一示例的主题可以可选地包括,其中,第一校验节点集依赖于码字的一个或多个第一变量节点,并且第二校验节点集依赖于码字的一个或多个第二变量节点,并且其中,一个或多个第一变量节点和一个或多个第二变量节点彼此互斥。
在示例121中,示例108至120中任一示例的主题可以可选地包括,其中,第三电路被配置为:在多次迭代的每次迭代期间获得码字的更新估计值,以获得码字的解码估计值。
在示例122中,示例121的主题可以可选地进一步包括收敛性检测电路,被配置为:确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例123中,示例122的主题可以可选地包括,其中,收敛性检测电路还被配置为:如果码字的更新估计值是有效码字,则在多次迭代的给定迭代期间终止解码,并且选择给定迭代处的码字的更新估计值作为码字的解码估计值。
在示例124中,示例122的主题可以可选地包括,其中,收敛性检测电路还被配置为:通过确定当前迭代的码字的更新估计值是否满足一个或多个第一校验节点和一个或多个第二校验节点,来确定多次迭代中每次迭代的码字的更新估计值是否是有效码字。
在示例125中,示例108至120中任一示例的主题可以可选地包括,其中,码字对应于多个校验节点,并且其中,多个校验节点包括第一校验节点集和第二校验节点集。
在示例126中,示例125的主题可以可选地进一步包括收敛性检测电路,被配置为:根据多个校验节点来确定码字的第一估计值或码字的第二估计值是否是有效码字。
在示例127中,示例126的主题可以可选地包括,其中,流水线解码系统被配置为:处理多个校验节点中的每一个校验节点,直到收敛或终止而没有任何流水线停顿。
在示例128中,示例108至127中任一示例的主题可以可选地进一步包括收敛性检测电路,被配置为:应用第一校验节点集和第二校验节点集,以确定码字的第一估计值或第二估计值是否是有效码字。
在示例129中,示例108至128中任一示例的主题可以可选地包括,其中,第一电路是流水线解码系统的初始流水线级。
在示例130中,示例108至129中任一示例的主题可以可选地包括,其中,第三电路是流水线解码系统的最后流水线级。
在示例131中,示例108的主题可以可选地包括,其中,码字的第一估计值对应于码字的一个或多个变量节点在第一时间处的后验值。
在示例132中,示例131的主题可以可选地包括,其中,第二电路被配置为:通过根据码字的一个或多个变量节点在第一时间处的后验值生成第二校验节点集的一个或多个校验到变量消息,来基于码字的第一估计值生成第二校验节点集的一个或多个校验到变量消息。
在示例133中,示例132的主题可以可选地包括,其中,第三电路被配置为:通过利用一个或多个校验到变量消息更新一个或多个变量节点的后验值,来在流水线解码系统完成对第二校验节点集的处理之前利用第一校验节点集的一个或多个校验到变量消息更新码字的第一估计值以获得码字的第二估计值。
在示例134中,示例131的主题可以可选地包括,其中,码字的第二估计值对应于一个或多个变量节点在第一时间之后出现的第二时间处的后验值。
在示例135中,示例131的主题可以可选地包括,其中,第一电路被配置为:通过生成一个或多个第一校验节点的码字的估计位的后验值来处理第一校验节点集。
在示例136中,示例131的主题可以可选地包括,其中,第一电路被配置为:通过生成一个或多个第一校验节点的码字的估计位的后验值来在处理第一校验节点集之后处理第二校验节点集。
在示例137中,示例108至136中任一示例的主题可以可选地包括,其中,第三电路还被配置为:利用第二校验节点集的一个或多个校验到变量消息来更新码字的第二估计值,以获得码字的第三估计值。
在示例138中,示例137的主题可以可选地包括,其中,第三电路被配置为:在更新码字的第一估计值之后,利用第二校验节点集的一个或多个校验到变量消息更新码字的第二估计值以获得码字的第三估计值。
在示例139中,示例108至138中任一示例的主题可以可选地包括,其中,第二电路还被配置为:生成第一校验节点集的一个或多个校验到变量消息。
在示例140中,示例108至139中任一示例的主题可以可选地包括,其中,第二电路被配置为:通过应用码字的第一估计值,以根据置信传播解码算法、最小和解码算法或者和-积解码算法生成第二校验节点集的一个或多个校验到变量消息,来基于码字的第一估计值生成第二校验节点集的一个或多个校验到变量消息。
在示例141中,示例108至140中任一示例的主题可以可选地包括,其中,第三电路被配置为:通过根据置信传播解码算法、最小和解码算法或者和-积解码算法,利用一个或多个校验到变量消息更新码字的第一估计值,来在流水线解码系统完成对第二校验节点集的处理之前,利用第一校验节点集的一个或多个校验到变量消息更新码字的第一估计值,以获得码字的第二估计值。
以上描述中定义的所有首字母缩写词附加地适用于本文包括的所有权利要求中。
虽然已经参考具体实施例具体示出和描述了本发明,但是本领域技术人员应当理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。因此,本发明的范围由所附的权利要求来表示,并且因此旨在涵盖落在权利要求的含义及其等同物的范围内的所有改变。

Claims (22)

1.一种流水线解码系统,用于执行由一个或多个奇偶校验式表征的码字的流水线解码,所述流水线解码系统包括:
第一电路,被配置为:处理包括所述码字的一个或多个第一奇偶校验式的第一奇偶校验集,并且处理包括所述码字的一个或多个第二奇偶校验式的第二奇偶校验集;
第二电路,被配置为:基于所述码字的第一估计值来生成所述第二奇偶校验集的一个或多个码字更新消息;和
第三电路,被配置为:利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,
其中,所述第三电路被配置为:
在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值。
2.根据权利要求1所述的流水线解码系统,其中,所述第一电路被配置为:
在处理所述第一奇偶校验集之后处理所述第二奇偶校验集。
3.根据权利要求1所述的流水线解码系统,其中,所述流水线解码系统包括多个电路,所述多个电路包括所述第一电路、所述第二电路和所述第三电路,并且其中,所述流水线解码系统还包括多个基于锁存器的寄存器,每个寄存器被配置为将所述多个电路中的相邻电路分开。
4.根据权利要求3所述的流水线解码系统,其中,所述多个电路中的至少两个电路被配置为:利用所述多个基于锁存器的寄存器中的一个进行流水线时间借用。
5.根据权利要求1所述的流水线解码系统,其中,所述码字是线性分组码字。
6.根据权利要求1所述的流水线解码系统,其中,所述一个或多个第一奇偶校验式和所述一个或多个第二奇偶校验式对应于所述码字的一个或多个校验节点,并且其中,所述码字的第一估计值对应于所述码字的一个或多个变量节点在第一时间处的后验值。
7.根据权利要求6所述的流水线解码系统,其中,所述第二电路被配置为:通过以下操作来基于所述码字的第一估计值生成所述第二奇偶校验集的一个或多个码字更新消息:
根据所述一个或多个变量节点在所述第一时间处的后验值来生成所述第二奇偶校验集的一个或多个校验到变量消息。
8.根据权利要求7所述的流水线解码系统,其中,所述第三电路被配置为:在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值以获得所述码字的第二估计值包括:
利用所述一个或多个校验到变量消息来更新所述一个或多个变量节点的后验值。
9.根据权利要求6所述的流水线解码系统,其中,所述码字的第二估计值对应于所述一个或多个变量节点在所述第一时间之后出现的第二时间处的后验值。
10.根据权利要求1至9中任一项所述的流水线解码系统,其中,所述第三电路还被配置为:
利用所述第二奇偶校验集的一个或多个码字更新消息来更新所述码字的第二估计值,以获得所述码字的第三估计值。
11.根据权利要求1至9中任一项所述的流水线解码系统,其中,所述第二电路还被配置为:
生成所述第一奇偶校验集的一个或多个码字更新消息。
12.根据权利要求1至9中任一项所述的流水线解码系统,其中,所述第二电路被配置为:通过以下操作来基于所述码字的第一估计值生成所述第二奇偶校验集的一个或多个码字更新消息:
应用所述码字的第一估计值,以根据置信传播解码算法、最小和解码算法、或者和-积解码算法生成所述第二奇偶校验集的一个或多个码字更新消息。
13.根据权利要求1至9中任一项所述的流水线解码系统,其中,所述第三电路被配置为:通过以下操作来在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息更新所述码字的第一估计值以获得所述码字的第二估计值:
根据置信传播解码算法、最小和解码算法、或者和-积解码算法,利用所述一个或多个码字更新消息来更新所述码字的第一估计值。
14.一种利用流水线解码系统执行码字解码的方法,所述流水线解码系统包括多个流水线解码级,每个流水线解码级被配置为执行相应的流水线解码级以用于一个或多个奇偶校验式,所述方法包括:
利用所述流水线解码系统发起对包括所述码字的一个或多个第一奇偶校验式的第一奇偶校验集的处理;
利用所述流水线解码系统发起对包括所述码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理;
基于所述码字的第一估计值来生成所述第二奇偶校验集的一个或多个码字更新消息;
利用所述第一奇偶校验集的一个或多个码字更新消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,
其中,利用所述第一奇偶校验集的一个或多个码字更新消息更新所述码字的第一估计值以获得所述码字的第二估计值包括:
在所述流水线解码系统完成对所述第二奇偶校验集的处理之前,利用所述第一奇偶校验集的一个或多个码字更新消息更新所述码字的第一估计值以获得所述码字的第二估计值。
15.根据权利要求14所述的方法,其中,利用所述流水线解码系统发起对包括所述码字的一个或多个第二奇偶校验式的第二奇偶校验集的处理包括:
在利用所述流水线解码系统发起对所述第一奇偶校验集的处理之后,发起对所述第二奇偶校验集的处理。
16.根据权利要求14至15中任一项所述的方法,其中,所述码字是线性分组码字。
17.根据权利要求14所述的方法,其中,所述一个或多个第一奇偶校验式和所述一个或多个第二奇偶校验式对应于所述码字的一个或多个校验节点,并且其中,所述码字的第一估计值对应于所述码字的一个或多个变量节点在第一时间处的后验值。
18.根据权利要求17所述的方法,其中,所述码字的第二估计值对应于所述一个或多个变量节点在所述第一时间之后出现的第二时间处的后验值。
19.一种流水线解码系统,用于执行由一个或多个校验节点和一个或多个变量节点表征的码字的流水线解码,所述流水线解码系统包括:
第一电路,被配置为:处理包括所述码字的一个或多个第一校验节点的第一校验节点集,并且处理包括所述码字的一个或多个第二校验节点的第二校验节点集;
第二电路,被配置为:基于所述码字的第一估计值来生成所述第二校验节点集的一个或多个校验到变量消息;和
第三电路,被配置为:在所述流水线解码系统完成对所述第二校验节点集的处理之前,利用所述第一校验节点集的一个或多个校验到变量消息来更新所述码字的第一估计值,以获得所述码字的第二估计值,
其中,所述第三电路被配置为:
在所述流水线解码系统完成对所述第二校验节点集的处理之前,利用所述第一校验节点集的一个或多个校验到变量消息来更新所述码字的第一估计值,以获得所述码字的第二估计值。
20.根据权利要求19所述的流水线解码系统,其中,所述第一电路被配置为:
在处理所述第一校验节点集之后处理第二校验节点集。
21.根据权利要求19所述的流水线解码系统,其中,所述码字的第一估计值对应于所述码字的一个或多个变量节点在第一时间处的后验值。
22.根据权利要求21所述的流水线解码系统,其中,所述码字的第二估计值对应于所述一个或多个变量节点在所述第一时间之后出现的第二时间处的后验值。
CN201580085421.1A 2015-12-24 2015-12-24 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线 Active CN108370253B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/000424 WO2017111853A1 (en) 2015-12-24 2015-12-24 Hybrid scheduling and latch-based pipelines for low-density parity-check decoding

Publications (2)

Publication Number Publication Date
CN108370253A CN108370253A (zh) 2018-08-03
CN108370253B true CN108370253B (zh) 2022-05-03

Family

ID=59091097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580085421.1A Active CN108370253B (zh) 2015-12-24 2015-12-24 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线

Country Status (3)

Country Link
US (1) US10673461B2 (zh)
CN (1) CN108370253B (zh)
WO (1) WO2017111853A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302269A (zh) * 2018-11-09 2019-02-01 深圳大学 一种误码率近似最优解码的获取方法及系统
US11088707B2 (en) 2019-06-29 2021-08-10 Intel Corporation Low density parity check (LDPC) decoder architecture with check node storage (CNS) or bounded circulant
CN111913830B (zh) * 2020-08-18 2024-03-19 深圳大普微电子科技有限公司 一种重读操作处理方法、装置、设备及可读存储介质
US11515891B2 (en) 2020-12-22 2022-11-29 Intel Corporation Application of low-density parity-check codes with codeword segmentation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937414A (zh) * 2005-09-22 2007-03-28 罗姆股份有限公司 信号解码方法、信号解码装置和信号存储系统
CN101803210A (zh) * 2007-10-24 2010-08-11 诺基亚公司 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置、计算机程序产品和设备
US8151161B2 (en) * 2005-12-27 2012-04-03 Lg Electronics Inc. Apparatus and method for decoding using channel code
US8190962B1 (en) * 2008-12-30 2012-05-29 Qualcomm Atheros, Inc. System and method for dynamic maximal iteration
US8984365B1 (en) * 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
KR100748320B1 (ko) * 2006-03-29 2007-08-09 삼성에스디아이 주식회사 유기발광표시장치 및 그의 구동방법
CA2674719A1 (en) 2007-01-24 2008-07-31 Qualcomm Incorporated Ldpc encoding and decoding of packets of variable sizes
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
US20090113256A1 (en) * 2007-10-24 2009-04-30 Nokia Corporation Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding
KR101405962B1 (ko) * 2008-02-28 2014-06-12 엘지전자 주식회사 Ldpc 코드를 이용한 복호화 방법
US20090282316A1 (en) * 2008-05-07 2009-11-12 Texas Instruments Incorporated Memory Access in Low-Density Parity Check Decoders
US8392789B2 (en) * 2009-07-28 2013-03-05 Texas Instruments Incorporated Method and system for decoding low density parity check codes
US9176927B2 (en) * 2011-11-08 2015-11-03 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and systems for decoding polar codes
US9015568B2 (en) * 2012-04-12 2015-04-21 Samsung Electronics Co., Ltd. System and method for multi-stage time-division multiplexed LDPC decoder
KR101685010B1 (ko) * 2012-06-01 2016-12-13 한국전자통신연구원 지상파 클라우드 방송을 위한 ldpc 부호
US9564921B1 (en) * 2015-02-04 2017-02-07 Microsemi Storage Solutions (U.S.), Inc. Method and system for forward error correction decoding based on a revised error channel estimate
US9692450B2 (en) * 2015-05-11 2017-06-27 Maxio Technology (Hangzhou) Ltd. Systems and methods for early exit of layered LDPC decoder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937414A (zh) * 2005-09-22 2007-03-28 罗姆股份有限公司 信号解码方法、信号解码装置和信号存储系统
US8151161B2 (en) * 2005-12-27 2012-04-03 Lg Electronics Inc. Apparatus and method for decoding using channel code
CN101803210A (zh) * 2007-10-24 2010-08-11 诺基亚公司 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置、计算机程序产品和设备
US8190962B1 (en) * 2008-12-30 2012-05-29 Qualcomm Atheros, Inc. System and method for dynamic maximal iteration
US8984365B1 (en) * 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Pipeline processing in low-density parity-check codes hardware decoder";W. SUŁEK;《Bulletin of the Polish Academy of Sciences: Technical Sciences》;20110630;第59卷(第2期);149-155 *
"非规则低密度奇偶校验码译码器的结构设计和优化";陈徐薇 等;《上海交通大学学报》;20100228;第44卷(第2期);149-155 *

Also Published As

Publication number Publication date
CN108370253A (zh) 2018-08-03
WO2017111853A1 (en) 2017-06-29
US20180351575A1 (en) 2018-12-06
US10673461B2 (en) 2020-06-02
WO2017111853A9 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
US11309997B2 (en) Generation of polar codes with a variable block length utilizing puncturing
Angarita et al. Reduced-complexity min-sum algorithm for decoding LDPC codes with low error-floor
CN112005499B (zh) Ldpc码的译码方法和装置
CN108370253B (zh) 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线
WO2018137663A1 (zh) 一种编码方法、译码方法、编码装置及译码装置
US10389388B2 (en) Efficient LDPC decoding with predefined iteration-dependent scheduling scheme
US11171667B2 (en) Apparatus and method for decoding of low-density parity check codes in wireless communication system
US20240120942A1 (en) Network node and method performed therein for handling communication
EP3652865A1 (en) Enhanced information sequences for polar codes
CN112737600B (zh) 译码方法和译码器
Ghaffari et al. Probabilistic gradient descent bit-flipping decoders for flash memory channels
US11509334B2 (en) Decoding apparatus and decoding method for decoding operation in channel coding
CN104168031B (zh) 一种用于ldpc码的迭代译码方法
Chen et al. Polar decoding with schedule diversity based on LDPC-like sparse graphs
WO2020052754A1 (en) Simplified check node processing for ldpc decoding
US20230353169A1 (en) Network node and method performed therein for handling received signal
WO2021210079A1 (en) Communication method and device using recurrent decoding iterations for polar codes
CN113872611B (zh) 一种ldpc解码方法、设备、系统及存储介质
CN113067582B (zh) 一种并行译码方法及装置
CN118118036A (zh) 软输入软输出译码方法、译码器、gldpc码译码方法及bicm迭代接收机
CN117155410A (zh) 一种编码、译码方法及装置
CN115189803A (zh) 多用户信号检测方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant