CN110741557B - 通过合并极化码图的级的低延迟极化编码和解码 - Google Patents
通过合并极化码图的级的低延迟极化编码和解码 Download PDFInfo
- Publication number
- CN110741557B CN110741557B CN201880039343.5A CN201880039343A CN110741557B CN 110741557 B CN110741557 B CN 110741557B CN 201880039343 A CN201880039343 A CN 201880039343A CN 110741557 B CN110741557 B CN 110741557B
- Authority
- CN
- China
- Prior art keywords
- core
- column
- data path
- block
- bits
- 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
Links
- 230000010287 polarization Effects 0.000 title claims description 141
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 261
- 238000000034 method Methods 0.000 claims description 192
- 230000008569 process Effects 0.000 claims description 137
- 238000012545 processing Methods 0.000 claims description 129
- 230000036961 partial effect Effects 0.000 claims description 115
- 238000004891 communication Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 46
- 230000000295 complement effect Effects 0.000 description 31
- 239000013598 vector Substances 0.000 description 30
- 238000004364 calculation method Methods 0.000 description 27
- 239000011159 matrix material Substances 0.000 description 23
- 238000013461 design Methods 0.000 description 19
- 238000013459 approach Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 230000001902 propagating effect Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 238000012937 correction Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- 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/13—Linear codes
-
- 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
Abstract
描述了极化解码器内核(111)。极化解码器内核(111)被配置为:接收来自块尺寸为N的软内核编码块(113)的一个或多个软比特,以及输出来自恢复的内核信息块(114)的一个或多个恢复的内核信息比特。极化解码器内核(111)包括取决于内核块尺寸N将极化码图(201、202、203)分解成任意数量的列(1701、1702)的分解。
Description
技术领域
本发明涉及极化解码器、通信单元、集成电路和用于极化解码的方法。本发明可应用于但不限于用于当前和未来时代的通信标准的极化解码。
背景技术
根据前向纠错(FEC)和信道编码的原理,极化编码[1]可以用于保护信息免受可能遭受噪声和其它不利影响的不完美的通信信道内的传输错误的影响。更具体而言,在发送器中使用极化编码器来对信息进行编码,并且在接收器中使用对应的极化解码器以减轻传输错误并恢复所传输的信息。根据规定的编码处理,极化编码器将包括K比特的信息块转换成包括更大数量的M>K比特的编码块。以这种方式,编码块传送来自信息块的K比特信息以及M-K比特冗余。可以根据规定的解码过程在极化解码器中利用这种冗余,以便估计来自信息块的原始K比特的值。假定通信信道的情况不是太严峻,那么极化解码器可以以高概率正确地估计来自信息块的K比特的值。
极化编码处理包括三个步骤。在第一信息块调节步骤中,为了将信息块的尺寸从K比特增加到N比特,其中N是2的幂,在信息块中规定的位置处插入冗余比特。在第二极化编码内核步骤中,根据规定的图结构,使用相继的异或(XOR)运算以不同的组合方式组合所得到的内核信息块的N比特。这个图结构包括n=log2(N)个相继的级,每个相继的级包括N/2个XOR运算,这些XOR运算组合特定的比特对。在第三步骤中,将编码块调节应用于所得到的内核编码块,以便将其尺寸从N比特调整为M比特。这可以通过根据规定的方法重复或移除内核编码块中的特定比特来实现,以产生编码块,该编码块通过信道被传输或者存储在存储介质中。
从信道接收软编码的块,或者从存储介质中检索软编码的块。极化解码过程包括三个步骤,它们与极化编码处理中的三个步骤对应,但是次序相反。在第一编码块调节步骤中,将冗余的软比特在规定的位置处插入或组合到软编码的块中,以便将其尺寸从M个软比特调整为N个软比特,其中N是2的幂。在第二极化解码内核步骤中,使用基于规定的图结构进行操作的相继抵消(SC)[1]或相继抵消列表(SCL)[7]处理,将所得到的内核编码块的N个软比特以不同的组合方式进行组合。在第三步骤中,将信息块调节应用于所得到的恢复的内核信息块,以便将其尺寸从N比特减小为K比特。这可以通过根据规定的方法移除恢复的内核信息块中的特定比特来实现,以产生恢复的信息块。
先前已经提出了SC[1]和SCL[7]极化解码器的若干硬件实施方式[8]、[14]-[24],它们能够在运行时灵活地支持不同的内核块尺寸N∈{2,4,8,...,Nmax}。这些解码器使用图[15](或等效地,树[18])从概念上表示极化码,图[15]具有取决于内核块尺寸N而变化的维度。如图7中所例示的,图在其右侧边缘上包括接受来自解调器的软比特(常常以对数似然比(LLR)[8]的形式)的N个输入,以及在其左侧边缘上具有提供用于信息的硬比特决策和冻结比特的N个输出。在这两个边缘之间,图包括log2(N)个水平联结的级,每个级包括N/2个垂直对准的XOR运算。
[8]、[14]-[24]的硬件实施方式采用专用硬件,以使用f和g函数[8]组合图中每个XOR的位置处的软比特,并在概念上在图中将它们从右向左传播。同样,在概念上,在图的左侧边缘处采用专用硬件,以将软比特转换成硬比特决策,以及计算并排序SCL路径度量[8]。最后,使用专用硬件根据图中的XOR来组合硬比特决策,并从概念上在图中从左到右传播所得到的部分总和比特(sum bit),以便g函数可以使用它们。注意的是,g函数对部分总和比特的依赖性带来了数据相关性集合,其要求所有上面提到的操作要根据特定的时间表来执行。这仅留下有限的并行执行操作的自由度,该自由度随解码过程的进行而变化。[14]的行(line)解码器在软比特传播期间实现高度并行处理,这允许在2N-2个时钟周期的延迟内计算所有f和g函数。这是使用Nmax/2个处理单元的L行来实现的,其中对于SC解码,L=1,并且L>1是对于SCL解码的列表尺寸。每个处理单元能够在每个时钟周期中计算一个f函数或一个g函数。这种并行度足以在图的任何单个级内同时执行不会被数据依赖性妨碍的最大数量的计算。当N=Nmax时并且当为图中最右侧的级计算g函数时,并行处理的这个高峰机会出现。但是,当N<Nmax时或者当在解码过程期间的其它时间计算f或g函数时,上面提到的数据依赖性会妨碍并行性被充分利用。由于这个原因,[14]的行解码器遭受差的硬件效率,并且还需要过高的存储器带宽,该过高的存储器带宽可以允许同时访问多达Nmax个软比特。因此,[8]、[15]-[24]的半并行解码器通过将并行处理的度从LNmax/2降低到LP来改进硬件效率和存储器带宽要求,其中P∈{1,2,4,8,...}。但是,这种方法仍然遭受无法利用最左侧的级的所有并行性的问题,并且需要若干时钟周期来执行最右侧的级的f和g,从而将与f和g计算相关的总延迟增加到个时钟周期。除了上面提到的f和g计算所需的时钟周期外,SCL解码器通常还需要至少一个附加的时钟周期来计算并排序与在图的左侧边缘上做出的N个硬比特决策中的每一个相关联的路径度量。在行解码的情况下,执行f、g和路径度量计算以及对后者进行排序需要3N-2个时钟周期的延迟。但是,在[32]、[33]中,一次针对若干比特计算路径度量并将路径度量与图的最左侧的级中的对应f和g函数一起进行排序。当一次做出2k个硬比特决策时,这个方法将行解码所需的时钟周期的总数减少到N/2k-2-2[33],其中k∈{1,2,3,...}。注意的是,当极化码采用低编码率时,可以进一步减小SCL解码的延迟。在这种情况下,虽然这种技术不能改善在高编码率下遇到的最坏情况下的延迟,但是可以跳过与块开头的冻结比特相关的任何计算。
注意的是,部分总和比特的传播通常在相同的时钟周期内与上述计算同时进行。在[8]、[15]、[30]中,部分总和更新逻辑被用于累积解码比特的不同组合,而互连网络被用于将它们递送到对应的g函数的处理。这导致大量的硬件开销和长的关键路径,从而限制了可实现的硬件效率、吞吐量和延迟。相比之下,[19]、[21]、[28]、[32]、[24]的前馈体系架构使用专用硬件将部分总和比特传播到图的每个相继的级。但是,前馈体系架构的复杂性对于每个相继的级迅速增长,从而限制了可以支持的最大内核块长度Nmax并限制了硬件效率。相比之下,[17]、[22]、[27]、[35]的方法使用简化的极化编码器内核来计算部分总和比特,但是这并不能从重用作为解码过程的自然部分的计算中受益。在上文描述的先前的极化解码器硬件实施方式中,硬件资源使用情况通常由存储器支配。例如,由于要求将LLR存储在图中每对连续的级之间的接口处,因此在[8]的L=8SCL解码器中,存储器占用90%的硬件。硬件资源的下一个最大贡献者用于处理和传播LLR和部分总和比特,在[8]的L=8SCL解码器中占用大约5%的硬件。在这种处理和传播硬件中,大约80%专用于与部分总和比特相关联的互连网络[15]。最后,在[8]的L=8SCL解码器以及[18]、[19]的L=4SCL解码器中,大约1%的硬件专用于路径度量计算和排序。但是,在[32]、[33]的多比特方法中,可以预期这些操作会占用多得多的硬件。
发明内容
如所附权利要求中所述,本发明提供了极化解码器、通信单元、集成电路和用于极化解码的方法。
在从属权利要求中阐述了本发明的具体实施例。
参考下文描述的实施例,本发明的这些和其它方面将变得明显并得到阐明。
附图说明
将仅通过举例的方式,参考附图来描述本发明的进一步的细节、方面和实施例。在附图中,类似的附图标记用于识别类似或功能相似的元素。图中的元素是为了简单和清楚起见而示出的,并且不一定按比例绘制。
图1图示了根据本发明示例实施例适配的具有极化编码器和极化解码器的通信单元的示例最高级示意图。
图2图示了根据本发明示例实施例的生成器矩阵F、和的示例图形表示。
图3图示了根据本发明示例实施例的使用生成器矩阵的图形表示的示例极化编码过程,该过程图示了其中使用特定冻结比特模式将K=4个信息比特a=[1001]转换成M=8个编码比特b=[00001111]的情况。
图4图示了根据本发明示例实施例的可以针对所提出的极化解码器内核的基本计算单元执行的三种计算的示例:(a)f函数、(b)g函数、以及(c)部分求和计算。
图5图示了根据本发明示例实施例的对于以下情况使用生成器矩阵的图形表示的SC解码过程的示例:使用特定冻结比特模式将M=8个编码的LLR的特定向量~b转换成K=4个恢复的信息比特^a=[1001]。
图6图示了根据本发明示例实施例的对于Cmax=5的情况所提出的极化解码器内核的示例示意图。
图7图示了根据本发明示例实施例的生成器矩阵的示例图形表示,该生成器矩阵已被分组成C=4列,包括s=[1;2;2;1]个级并且与so=1和si=2对应。
图8图示了根据本发明示例实施例的由所提出的极化解码器内核采用的解码过程的示例流程图,其中,围绕流程图的主循环的每个周期与解码过程的一个步骤对应。
图9图示了根据本发明示例实施例的所提出的极化解码器内核的示例时序图。
图10图示了根据本发明示例实施例的所提出的极化解码器内核的解码过程所需的步骤数的示例图。
图11图示了根据本发明示例实施例的生成器矩阵的、针对采用包括s=[1;2;2;1]个级的C=4列的情况的示例重排图形表示。
图12图示了根据本发明示例实施例的可以被重新配置为执行(2)的“f”函数或者(3)的“g”函数的所提出的处理单元的示例示意图。
图13图示了关于(2)的“f”函数的二的补码实施方式的已知技术的示例:(a)朴素实施方式;(b)减少硬件的实施方式;(c)减少关键路径的实施方式。
图14图示了根据本发明示例实施例的对于si=2且ni=8的示例的所提出的极化解码器内核中的内部数据路径的示例示意图。
图15图示了根据本发明示例实施例的对于so=2且ni=4的示例的所提出的极化解码器内核中用于SC解码的外部数据路径的示例示意图。
图16图示了根据本发明示例性实施例的对于si=2且ni=8的示例的所提出的极化解码器内核中的部分总和数据路径的示例示意图。
图17图示了根据本发明示例实施例的所提出的极化解码器内核的内部数据路径、LLR存储器块与控制器之间的交互的示例示意图。
图18图示了根据本发明示例实施例的针对si=1且ni=4的情况的、所提出的极化解码器内核的内部数据路径、比特存储器块与控制器之间的交互的示例性示意图。
图19图示了根据本发明示例实施例的针对N=128、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后的LLR的内容的示例。
图20图示了根据本发明示例实施例的针对N=64、Nmax=128、so=1、si=2和ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图21图示了根据本发明示例实施例的针对N=32、Nmax=128、so=1、si=2和ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图22图示了根据本发明示例实施例的针对N=16、Nmax=128、so=1、si=2和ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图23图示了根据本发明示例实施例的针对N=8、Nmax=128、so=1、si=2和ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图24图示了根据本发明一些示例实施例的可以在电子设备或无线通信单元中采用以执行极化编码操作的典型计算系统。
具体实施方式
出于以上讨论的动机,本发明是新颖的极化解码器体系结构,其使得能够进行灵活、低延迟、硬件高效的SCL极化解码。所提出的体系架构不是一次处理极化码图的一个级,而是通过一次处理几个连续的级来实现更高的并行性等级。证明了这种并行处理可以在f和g计算的大部分计算中得到充分利用,与行和半并行体系架构相比,实现更大的硬件实用性。此外,由于一次处理若干连续的级,因此仅在每对连续的级组之间的接口处需要存储器,而不是在每对连续的各个级之间的接口处需要存储器。相对于以前的实现,这显著降低了所提出的体系架构的总体存储器需求,这尤其具有影响力,因为存储器是硬件资源使用的最大贡献者。最后,提出了用于传播部分总和比特的简单机制,该机制也是有影响的,因为部分总和传播是先前实现中硬件资源使用的第二大贡献者。
在第一方面,本发明的示例描述了一种极化解码器内核,其被配置为接收来自块尺寸为N的软内核编码块的一个或多个软比特;以及输出来自块尺寸为N的恢复的内核信息块的一个或多个恢复的内核信息比特。极化解码器内核包括将极化码图分解成取决于内核块尺寸N的任意数量的列的分解。
以这种方式,不需要如现有技术那样在极化码图中的每个连续级对之间的接口处存储比特和软比特的存储器。代替地,只需要较少数量的存储器以在极化码图中的较小数量的列的每个连续对之间的接口处存储比特和软比特。此外,完成极化解码过程所需的步骤数不是如在现有技术中一样由极化码图中的级数决定的。代替地,可以减少所需的步骤数,因为每个步骤都可以跨一列的宽度完成操作。
在一些示例中,极化码图可以被分解成任意数量(C)的列,并且极化码图中的多个(n=log2(N))级可以分布在这些列中。以这种方式,极化解码器内核可以灵活地调整以在设计时和运行时支持不同的参数化。例如,在设计时,这个特征允许控制硬件资源要求和完成极化解码过程所需的步骤数之间的权衡。例如,在运行时,这个特征允许支持不同的内核块尺寸。
在一些示例中,极化解码器内核可以被配置为将极化码图中的多个(n=log2(N))级中的数个级分组为任意数量的列,其中任意数量可以在从“1”到“Cmax”的范围内。以这种方式,极化解码器内核的硬件资源需求直接由Cmax的有意选择所限定,而不是作为其它参数选择的间接结果。
在一些示例中,控制器可以被配置为形成任意数量的列,并且其中每一列可以在极化码图中包括任意数量的级。以这种方式,例如,极化解码器内核可以在运行时灵活地调整以支持不同的内核块尺寸。
在一些示例中,可以基于最大块尺寸(Nmax)、容纳在外部列中的最大级数(so)以及容纳在每一个内部列中的最大级数(si)来选择最大列数(Cmax)。以这种方式,极化解码器内核的硬件资源需求直接由so和si的有意选择所限定,而不是作为其它参数选择的间接结果。此外,通过调整每列中的级数,可以在运行时灵活调整极化解码器内核的操作,以在解码过程中使用不同步骤数来支持不同的块尺寸,即使极化码中的级数不是所选列数的倍数。
在一些示例中,可以取决于当前块尺寸(N)、容纳在外部列中的最大级数(so)和容纳在每个内部列中的最大级数(si)来选择列数(C)。以这种方式,极化解码器内核的硬件资源需求直接由so和si的有意选择所限定,而不是作为其它参数选择的间接结果。此外,通过调整列数(C),可以在运行时灵活地调整极化解码器内核的操作,以在解码过程中使用不同数量的步骤来支持不同的块尺寸。
在一些示例中,可以取决于当前块尺寸(N)、容纳在外部列中的最大级数(so)和容纳在每个内部列中的最大级数(si)在极化解码过程中选择每列中的级数。以这种方式,极化解码器内核的硬件资源需求可以在设计时通过对Cmax、so和si的有意选择来直接限定,而不是作为其它参数选择的间接结果。
在一些示例中,外部列可以包括s0=so个级,并且其余的n-so个级可以分布在C-1个内部列中,其中so是外部列中的最大级数。以这种方式,外部列将在任何可能的情况下包括其最大级数,从而允许在任何可能的情况下充分利用外部数据路径中的硬件资源并维持高硬件效率。
在一些示例中,极化码图可以被分解成个列,并且最右边的具有索引C-1的内部列可以包括sC-1=n-so-(C-2)si个级,并且所有其它内部列可以包括sc=si个级,其中sc是具有索引c的列中的级数。以这种方式,最大数量的内部列将在任何可能的情况下包括它们的最大级数,从而允许在任何可能的情况下充分利用内部数据路径中的硬件资源并维持高硬件效率。
在一些示例中,每一列可以包括多个行,其可以使用向量表达,其中特定列中的行数(Rc)由Rc=N/rc给出,其中rc是该列的子码基数。在一些示例中,每行可以包括子图,该子图包括水平对准的在其左边缘和右边缘上的sc个级和rc个连续连接。以这种方式,极化解码过程内的数据依赖性可以被构造并被认为是极化解码器内核的控制的基础。更具体而言,极化解码过程中的数据依赖性使得每次访问每个列都将考虑该列中的一个行,其中在极化解码过程期间,每列中的不同行将在不同时间被访问。
在一些示例中,内部列中的每一行可以被分解成彼此之间没有连接的一个或多个单独的子行。以这种方式,子行的处理可以独立地执行,分布在极化解码过程的连续步骤中,从而允许调整在硬件资源要求和完成过程所需的步骤数之间的权衡。
在一些示例中,与对每个内部列中的每一行的每次访问相关联的计算可以分布在解码过程的多个连续步骤上,每个步骤针对内部列中的行中的不同的单独子行执行计算。以这种方式,可以重用相同的内部数据路径以对具有不同块尺寸的不同列中的不同行执行处理。更具体而言,具有更大块尺寸的行的处理可以扩展到更大数量的步骤上,从而确保高硬件效率。
在一些示例中,可以将每个内部列中被分解的单独子行的块尺寸选择为nc=min(rc,ni),其中ni指定采用到Nmax范围内的任何2的幂的值的最大内部子行块尺寸。以这种方式,子行的最大数量将在任何可能的情况下采用与内部数据路径相同的块尺寸,从而允许在任何可能的情况下充分利用内部数据路径中的硬件资源并维持高硬件效率。
在一些示例中,外部列中的每一行都由解码过程访问一次,而内部列中的每一行由解码过程访问次,其中sc是该内部列中的级数。以这种方式,可以使用对每一列的最小访问次数来满足极化解码过程的数据依赖性,因此最小化完成解码过程所需的步骤数。
在一些示例中,极化解码器内核可以包括控制器、多个软比特存储器块和内部数据路径、外部数据路径、一个或多个部分总和数据路径和一个或多个比特存储器块。
在一些示例中,控制器可以将外部列中的最大级数(so)配置为采用“0”到nmax=log2(Nmax)范围内的任何值,并将每个内部列的最大级数(si)配置为采用1到nmax-so范围内的任何值。以这种方式,参数so和si的选择与运行时将要处理的最长内核块长度相同,这将硬件资源需求限定到在运行时可以充分利用的水平。
在一些示例中,极化解码器内核可以包括外部数据路径的单个实例和内部数据路径的单个实例。以这种方式,可以通过针对其特定应用定制的单独数据路径来满足外部列和内部列的不同处理需求。
在一些示例中,极化解码器内核包括一个或多个部分总和数据路径的Cmax-2个实例、一个或多个比特存储器块的Cmax-1个实例以及软比特存储器块的Cmax个实例。以这种方式,比特或软比特存储器块可以位于交换比特或软比特的连续列对之间的每个接口处。此外,可以将部分总和数据路径放置在传播部分总和比特的每一列中。
在一些示例中,外部数据路径、比特存储器块和部分总和数据路径形成表示极化码图中任意数量(C)的列的链,使得内部数据路径由控制器配置为,当极化解码过程访问极化码图中的不同内部列时,从链中的不同点获取输入并将输出提供给链中的不同点。以这种方式,内部数据路径可以被重用以对所有内部列执行处理,从而消除了使用不同的内部数据路径对每个不同的内部列执行处理的需求。
在一些示例中,外部数据路径可以驻留在外部列内。以这种方式,可以根据外部列的特定处理需求来定制外部数据路径的操作。
在一些示例中,内部数据路径可以在极化解码过程的不同步骤期间驻留在具有不同索引c∈[1,C-1]的不同内部列中。以这种方式,内部数据路径的操作可以被定制以满足内部列的具体处理需求。此外,单个内部数据路径可以被重用,以在不同时间处理不同的内部列,从而消除了使用多个内部数据路径的需求并减少了极化解码器内核的硬件资源需求。
在一些示例中,索引为c∈[1,C-2]的部分总和数据路径可以驻留在极化码图的具有对应索引c的内部列中。以这种方式,可以将部分总和数据路径的操作定制为适于通过每个内部列传播部分总和的具体处理需求。
在一些示例中,内部数据路径、外部数据路径和部分总和数据路径中的每一个的输入可以从驻留在当前列任一侧的一个或另一个边缘上的接口处的多个软比特存储器块之一和/或一个或多个比特存储器块之一读取。在一些示例中,内部数据路径、外部数据路径和部分总和数据路径的被选择的输出可以被写入驻留在当前列的任一侧上的接口处的多个软比特存储器块之一和/或一个或多个比特存储器块之一。以这种方式,比特和软比特存储器块提供了一种机制,该机制用于在连续列之间传递比特和软比特,以便满足与由数据路径执行的处理相关联的数据依赖性。
在一些示例中,位于索引为c∈[1,C-2]的内部列中的内部数据路径可以被配置为:经由具有索引c的比特存储器块从其左侧的列接受输入比特;经由具有索引c+1的软比特存储器块从其右侧的列接受输入软比特,以及经由具有索引c的软比特存储器块将输出软比特提供给其左侧的列。以这种方式,内部数据路径能够接受来自满足其操作的所有数据依赖性的相邻列的输入,以及提供有助于满足在相邻列中执行的操作的数据依赖性的输出。
在一些示例中,驻留在具有索引c=C-1的内部列中的内部数据路径可以被配置为:经由具有索引c的比特存储器块从其左侧的列接受输入比特,经由具有索引Cmax的软比特存储器块从极化解码器内核的软比特输入接受输入软比特,以及经由具有索引c的软比特存储器块向其左侧的列提供输出软比特。以这种方式,内部数据路径能够接受满足其操作的所有数据依赖性的来自相邻列的输入以及来自极化解码器内核的软比特输入,以及提供有助于满足在相邻列中执行的操作的数据依赖性的输出。
在一些示例中,内部数据路径可以附加地被配置为经由具有索引c的软比特存储器块向其左侧的列提供输出软比特。以这种方式,内部数据路径中计算出的比特可以被输出,然后由部分总和数据路径重用,从而避免了部分总和数据路径包括用于重新计算这些比特的附加硬件的需求。
在一些示例中,驻留在索引为c∈[1,C-2]的内部列中的部分总和数据路径可以被配置为:经由具有索引c的比特存储器块从其左侧的列接受输入比特,以及经由具有索引c+1的比特存储器块向其右侧的列提供输出比特。以这种方式,部分总和数据路径能够接受满足其操作的所有数据依赖性的来自相邻列的输入,以及提供有助于满足在相邻列中执行的操作的数据依赖性的输出。
在一些示例中,驻留在具有索引c=0的外部列中的外部数据路径可以被配置为:经由索引为1的软比特存储器块从其右侧的列接受输入软比特,经由具有索引1的比特存储器块向其右侧的列提供输出比特,以及将输出比特提供给极化解码器内核的比特输出。在一些示例中,可以经由比特存储器块将输出比特提供给极化解码器内核的比特输出。以这种方式,外部数据路径能够接受满足其操作的所有数据依赖性的来自相邻列的输入,以及提供有助于满足在相邻列中执行的操作的数据依赖性并直接有助于在SC解码的情况下极化解码器内核的比特输出的输出。
在一些示例中,内部数据路径或者外部数据路径可以被指引以在极化解码过程的每个步骤中处理一列的一行的一个子行。以这种方式,在每个步骤都取得了极化解码过程的进展,并且维持了高硬件实用性以及因此维持了硬件效率。
在一些示例中,每当内部数据路径被指引以处理对索引为“c”的内部列中一行的一个子行的第二次或后续访问时,具有索引“1”至“c-1”的部分总和数据路径可以各自被指引以处理其对应列中一行的一个子行。以这种方式,可以在极化解码过程的同一步骤中满足部分总和比特,部分总和比特满足内部数据路径的第二次或以后访问的数据依赖性。更具体而言,部分总和数据路径可以将由外部列中的外部数据路径生成的部分总和比特传播到在内部列中操作的内部数据路径,而不会对极化解码过程造成延迟。
在一些示例中,内部数据路径可以包括XOR逻辑门的极化码图,其中到极化码图的左侧边缘的每个输入均取自内部数据路径的左侧边缘上的对应比特输入,而来自极化码图的右侧边缘的对应输出被提供给同样位于内部数据路径的左侧边缘上的对应的比特输出。在一些示例中,极化码图可以表示生成器矩阵的图表示中最右侧的si个级。以这种方式,内部数据路径可以依据由部分总和数据路径生成的部分总和比特,计算满足其数据依赖性所需的所有部分总和比特。
在一些示例中,可以在内部数据路径的极化码图中省略每一级中的最低个XOR逻辑门。以这种方式,仅保留对有效比特进行操作的XOR门,从而减少了内部数据路径的硬件资源需求。
在一些示例中,内部数据路径可以包括多个处理单元,这些处理单元被布置成被配置为执行以下至少一个的si个级:“f”函数、“g”函数,这取决于对当前子行进行哪个访问。以这种方式,处理单元硬件可以被重新设计为在不同时间执行f和g函数,从而消除了对用于执行f和g函数的单独硬件的需求,并提高了硬件效率。
在一些示例中,多个处理单元中的最右边的级可以包括多个(ni/2)处理单元,并且最右边的级的左侧的每个相继的级包含的处理单元的数量是其右侧的级包含的处理单元的一半。以这种方式,内部数据路径可以采用满足极化解码过程的数据依赖性所需的最少数量的处理单元。
在一些示例中,“f”函数可以是:其中,如果其自变量为负,则sign(·)返回“-1”;如果其自变量为正,则返回“+1”。以这种方式,可以最小化f函数的计算要求。
在一些示例中,“g”函数可以是:
在一些示例中,到多个处理单元的右侧边缘的每个输入可以取自内部数据路径的右侧边缘上的对应软比特输入,而来自多个处理单元的左侧边缘的对应输出可以提供给位于内部数据路径的左侧边缘上的对应软比特输出。
在一些示例中,在0至2sc-1范围内的访问索引(v)可以以底数为2表达为具有sc比特的二进制数,其中从右到左的每个相继比特被用于控制从左到右的内部数据路径中的多个处理单元的每个相继级的操作,使得二进制数的最低有效比特(LSB)被用于控制处理单元的最左侧的级并且二进制数的最高有效比特(MSB)被用于控制处理单元的最右侧的级。在一些示例中,处理单元可以被配置为:响应于比特值“0”被用于控制处理单元的级的而执行“f”函数;以及响应于比特值“1”被用于控制处理单元的级而执行“g”函数。以这种方式,内部数据路径的处理单元可以作为访问索引的简单函数来控制,而只有小的硬件开销。
在一些示例中,极化解码器内核被配置为在相继抵消(SC)的基础上进行操作,其中与极化码图中的外部列的处理并发地从极化解码器内核输出恢复的内核信息块,并且一次输出个比特。以这种方式,输出恢复的内核信息比特的处理可以与生成它们的处理内联地执行,而无需带来任何附加的延迟。
在一些示例中,极化解码器内核可以包括内部数据路径、一个或多个部分总和数据路径、一个或多个比特存储器块和软比特存储器块的多个(L)并行副本,它们被并行使用以支持相继抵消列表(SCL)解码过程。以这种方式,可以并行而不是串行地执行L个候选内核信息块的生成。这允许选择SCL列表的尺寸“L”而不影响极化解码器内核的延迟。
在一些示例中,多个处理单元中的处理单元可以基于定点数表示来操作,其中在每个相继的级中从右到左使用递增的比特宽度。在一些示例中,裁剪(clipping)电路被用于减小在多个处理单元的左侧边缘上输出的软比特的比特宽度,以匹配在右侧边缘上输入的软比特的比特宽度。以这种方式,不需要在多个处理单元中的每个级之后对定点数进行裁剪,从而保留更多的软比特信息并且维持优异的纠错。通过在多个处理单元的左侧边缘处对定点数进行裁剪,可以将一致的定点比特宽度用于所有软比特存储器块,以及用于内部数据路径的输入和输出软比特。
在一些示例中,多个多路复用器可以被配置为将来自取决于访问索引(v)选择的极化码图的正确比特递送到计算“g”函数的多个处理单元中的每个处理单元。以这种方式,仅使用小的硬件开销就可以将部分总和比特从XOR门的极化码图分发到多个处理单元。
在一些示例中,在当前列中的第一级的数量(sc)比内部列中的最大级数(si)低时,可以通过禁用极化码图最左侧的级中的XOR逻辑门来减少极化码图中的第二级的数量以匹配第一级的数量(sc)。以这种方式,内部数据路径可以被重用以对所有内部列执行处理,即使它们包含比si更少的级sc。
在一些示例中,AND逻辑门可以被用于掩蔽内部数据路径中的对应垂直连接。以这种方式,可以减少由XOR门的极化码图处理的级数,而无需在关键路径中插入硬件。
在一些示例中,在当前列中的第一级的数量(sc)比内部列中的最大级数(si)低时,可以通过使用多路复用器绕过多个处理单元的最左侧级中的一个或多个处理单元来减少多个处理单元中的第二级的数量以匹配第一级的数量(sc)。以这种方式,内部数据路径可以被重用以对所有内部列执行处理,即使它们包含比si更少的级sc。
在一些示例中,具有索引c的软比特存储器块可以包括单个随机存取存储器(RAM),其宽度为ni个定点软比特并且深度为max(rc-1,max/ni,1)个地址,其中宽度和深度表示软比特存储器块的两个维度。以这种方式,当处理极化码图中的相继列时,可以实现软比特的无缝读取和写入。这避免了在软比特存储器块和数据路径之间需要复杂的互连网络。
在一些示例中,可以在到具有索引c'的比特存储器块的相应写入端口的输入处提供多个多路复用器,其中可以由控制器单独地控制多个多路复用器以在由具有索引(c′-1)的部分总和数据路径和内部数据路径提供的输出之间进行选择。
在一些示例中,可以在具有索引c'的部分总和数据路径的输入处提供多个多路复用器,其中可以由控制器单独控制多个多路复用器以在由具有索引c'的一个或多个比特存储器块和具有索引(c'-1)的部分总和数据路径提供的输出之间进行选择。以这种方式,部分总和比特的传播可以绕过比特存储器块,从而允许它们在处理该内部列的解码过程的同一步骤中从外部列递送到需要它们的内部列。这消除了传播部分总和比特的附加步骤的要求。
在一些示例中,具有索引c的比特存储器块可以包括个随机存取存储器(RAM),其宽度为ni比特且深度为个地址,其中RAM、宽度和深度表示比特存储器块的三个维度。在一些示例中,具有索引c的比特存储器块可以包括ni个RAM,其具有比特的宽度和个地址的深度。以这种方式,当处理极化码图中的相继列时,可以实现比特的无缝读取和写入。这避免了在比特存储器块和数据路径之间需要复杂的互连网络。
在一些示例中,恢复的内核信息块可以包括块尺寸N,恢复的内核信息块是包括“N”个恢复的内核信息比特的向量其中在一些示例中,软内核编码块可以包括块尺寸N,软内核编码块是包括“N”个内核编码的软比特的向量
在一些示例中,部分总和数据路径可以在其左侧边缘上接受ni个输入比特,并且可以在其右侧边缘上提供ni个输出比特,其中具有0至的索引的输出比特中的每一个可以被设置为等于具有对应索引的输入比特和具有索引至(ni-1)的输入比特之一的XOR,并且其中具有索引为至(ni-1)的输出比特中的每一个可以被设置为等于具有对应索引的输入比特。在一些示例中,具有索引“0”至的输入比特可以与具有索引至(ni-1)的输入比特进行XOR,使得两个索引都具有取模的相同值。以这种方式,部分总和数据路径可以仅计算内部数据路径尚未计算的部分总和比特,从而消除了部分总和比特的不必要的重新计算,并使部分总和数据路径的硬件要求和关键路径长度最小化。
在第二方面,本发明的示例描述了一种通信单元,该通信单元包括根据第一方面的极化解码器内核。
在第三方面,本发明的示例描述了一种包括根据第一方面的极化解码器内核的集成电路。
在第四方面,本发明的示例描述了一种根据第一方面的极化解码的方法。该方法包括:取决于内核块尺寸N将极化码图分解成任意数量的列;从块尺寸为N的软内核编码块接收一个或多个软比特;处理编码比特;以及输出来自块尺寸为N的恢复的内核信息块的一个或多个恢复的内核信息比特。
在第五方面,本发明的示例描述了一种非暂时性有形计算机程序产品,其包括存储在其中的用于根据第四方面进行极化解码的可执行代码。
虽然本发明的示例是参考被配置为向极化解码器内核提供一个或多个软比特的块尺寸为N的软内核编码块以及被配置为输出一个或多个恢复的内核信息比特的块尺寸为N的恢复的内核信息块来描述的,但是可以设想,在其它示例中,所描述的极化解码器内核可以用作仅支持一种块尺寸N的不灵活的解码器。
本发明的示例描述了通过极化解码器提供无缝数据流的机制。在一些示例中,可以通过三个不同设计方面的组合来实现通过极化解码器的无缝数据流:首先是数据路径的改进操作(在数据路径部分中进行描述),其次是数据路径与存储器的接口连接(在存储器部分中描述),第三是对这种接口连接的控制和存储器的寻址(在控制器部分中描述)。本领域技术人员将认识到的是,实现无缝数据流已经影响了许多设计决策,并且已被证明是实现极化解码器的最大挑战。
虽然参考LLR存储器块的使用描述了本发明的示例,但是设想这些存储器块被用于存储任何形式的软比特,并且LLR存储器块用于将软比特存储为LLR仅用于解释目的。
虽然参考无线通信接收器的应用内的集成电路实现描述了本发明的示例,但是设想在其它示例中,本发明可以应用在其它实施方式和其它应用中。例如,本文描述的电路和概念可以被构成为例如专用集成电路、专用指令集处理器、专用标准产品、现场可编程门阵列、通用图形处理单元、片上系统、可配置的处理器内的硬件实现。类似地,设想在其它示例中,例如,软件实现可以在例如中央处理单元、数字信号处理器或微控制器内组成。除了无线通信接收器之外,本发明还可以被组合到无线通信收发器或用于其它通信信道(诸如光、有线或超声信道)的通信设备中。此外,本发明可以被组合到存储设备中,以便为例如从光学、磁性、量子或固态介质中恢复的数据提供FEC。
本发明的示例还提供了根据极化解码的原理对信息进行解码的方法和体系架构,目的是在不可靠信道上的通信期间或在不可靠介质中的存储期间提供FEC。本发明的示例还提供了为包括因块而不同的多个比特的信息块提供灵活的支持的方法和体系架构。
特别地,本发明的示例将极化码图分解成若干列,每列包括一个或多个连续级的不同集合。每列还被分解成若干行,行可以进一步被分解成若干子行。按照遵守极化解码过程的数据依赖性并且重新访问一些列中的一些行若干次的次序一个接一个地处理列及它们的组成行。每列中的每行的处理包括若干步骤,在这些步骤期间,行中的子行被一个接一个地处理。
参考新无线电(NR)标准描述本发明的一些示例,该NR标准目前由第三代合作伙伴计划(3GPP)定义为第五代(5G)移动通信的候选。当前,已经选择极化编码和解码以在NR的增强型移动宽带(eMBB)应用的上行链路和下行链路控制信道以及物理广播信道(PBCH)中提供FEC。极化编码和解码也已被识别为针对NR的超可靠低延迟通信(URLLC)和大规模机器类型通信(mMTC)应用的上行链路和下行链路数据和控制信道提供FEC的候选。可替代地,在不参考特定标准化应用的情况下描述本发明的一些示例。更广泛地,本发明可以应用在选择极化编码和解码来提供FEC的任何未来通信标准中。此外,本发明可以应用于非标准化的通信应用中,非标准化的通信应用可以使用极化编码和解码来提供用于通过无线、有线、光学、超声或其它通信信道进行通信的FEC。同样,本发明可以应用于使用极化编码和解码以在光学、磁性、量子、固态和其它存储介质中提供FEC的存储应用中。
在一些示例中,可以使用分立的部件和电路来实现本文描述的电路和功能,而在其它示例中,可以在信号处理器中(例如在集成电路中)执行操作。
因为本发明的所示实施例在大多数情况下可以使用本领域技术人员已知的电子部件和电路来实现,因此,为了理解和认识到本发明的基本概念,并且为了不混淆或分散本发明的教导,将不会比如下所述认为必要的更大的程度对细节进行解释。
附图的详细描述
现在参考图1,图示了根据本发明示例的包括极化编码器和极化解码器的通信单元116的最高级示意图。在通信单元116的这个示例中,技术人员将认识到的是,仅出于简化的目的,未示出许多其它部件和电路(诸如频率生成电路、控制器、放大器、滤波器等)。在其它示例中,设想块116也可以采取包括极化解码器(并且在一些情况下,块调节和极化解码过程功能)的集成电路的形式,例如用在通信单元、存储单元或被设计为使用极化解码的任何电子设备中。在其它示例中,设想块116可以采取在通用计算处理器上运行的软件的形式。
极化解码器包括三个相继的部件,即,信息块调节112、极化解码器内核111和编码块调节110。这些部件将在以下段落中讨论。为了提供本讨论的上下文,图1图示了通信或存储信道108,以及极化编码器的对应部件,即,信息块调节101、极化编码器内核102和编码块调节103,但是它们以相反的次序操作。如以下段落中将讨论的,极化解码器基于恢复的信息块115、恢复的内核信息块114、软内核编码块113和软编码块109进行操作。相应地,极化编码器基于信息块109、内核信息块105、内核编码块106和编码块107进行操作,但是它们以相反的次序进行处理。
为了理解极化解码器(特别是极化解码器内核111)的操作,首先值得考虑极化编码器内核102的操作。在极化编码器的上下文中,信息块调节部件101的输入可以被称为信息块104,其块尺寸为K。更具体而言,这种信息块是行向量该行向量包括K个信息比特,其中ai∈{0,1}。信息块调节部件101将K个信息比特与N-K个冗余比特交织,例如,这些冗余比特可以是冻结比特[1]、循环冗余校验(CRC)比特[2]、奇偶校验(PC)冻结比特[3]、用户装备标识(UE-ID)比特[4]或散列比特[5]。
在此,冻结比特可以始终采用逻辑值“0”,而CRC或PC冻结比特或散列比特可以采用根据信息比特或早先在处理中已交织的冗余比特而获得的值。信息块调节部件101生成冗余比特,并将它们交织到通过规定的方法识别出的位置,这也是极化解码器已知的。信息块调节部件101还可以包括交织操作,该交织操作可以例如实现比特反转置换[1]。信息块调节部件101的输出可以被称为内核信息块105,其具有块尺寸N。更具体而言,这个内核信息块105是行向量该行向量包括N个内核信息比特,其中uj∈{0,1}。在此,必须完成信息块条件调节,使得N为大于K的2的幂,以便提供与极化编码器内核的兼容性,该极化编码器内核基于维度为2的幂的发生器矩阵进行操作,如下面将讨论的。极化编码器内核102的输入是内核信息块u 105,并且极化编码器内核102的输出可以被称为内核编码块106,内核编码块106的块尺寸与内核块尺寸N匹配。更具体而言,这个内核编码块106是行向量:该行向量包括N个内核编码比特,其中xi∈{0,1}。在此,根据模2矩阵乘法获得内核编码块106,其中可以获得两个比特值的模2总和,作为它们的XOR。在此,发生器矩阵由内核矩阵的第[n=log2(N)]个Kronecker幂给出。
注意的是,可以递归地获得内核矩阵的相继Kronecker幂,其中,通过用内核矩阵替换先前的幂中的每个逻辑“1”并且通过用2x2零矩阵替换每个逻辑“0”来获得每个幂因而,内核矩阵的第n个Kronecker幂的维度为2nx2n。例如,
在此,u=[1011]给出而u=[11001001]给出x=
本领域技术人员将认识到的是,在一些情况下,电路或部件的集成水平可以取决于实施方式。此外,设想在一些示例中,信号处理器可以包括在通信单元116中并且适于实现编码器和解码器功能。可替代地,如图1所示,可以使用单个处理器来实现传输和接收信号的处理以及基带/数字信号处理功能的一些或全部。显然,无线或有线通信单元116内的各种部件(诸如所描述的极化编码器)可以以离散或集成部件的形式实现,因此最终结构是特定于应用的或设计选择。
在一些示例中,极化编码器内核102的操作可以由生成器矩阵的图形表示201、202、203表示,其在图2中例示。现在参考图2,图示了根据本发明示例的生成器矩阵F201、202和203的示例图形表示200。生成器矩阵的图形表示201、202、203是小的极化码图的示例,而一般而言,极化码图可以大得多,并且具有n>0的任意维度。因此,图2中的示例图示了比实际中存在的简化得多的布置,这纯粹是出于解释并且不会混淆本发明的描述的目的。
在此,每个模2相加204可以使用二进制异或(XOR)运算来实现。注意的是,该图包括在其左侧边缘205上的“N”个输入和在其右侧边缘206上的“N”个输出,与“u”105的“N”个内核信息比特和“x”106的“N”个内核编码比特对应。生成器矩阵F 201、202和203的图形表示包括n=log2(N)个级207,每个级包括N/2个垂直对准的XOR 204,从而给出总共N log2(N)=2个XOR。注意的是,在实行从左到右处理时间表的相继级207之间存在数据依赖性。更具体而言,数据依赖性阻止特定级207中XOR的计算,直到在其左侧的级207中的XOR被计算出来之后。
在一些示例中,与相继Kronecker幂的递归性质相同,这些生成器矩阵的相继图形表示也具有递归关系。更具体而言,用于具有N=2 201的内核块尺寸的极化编码内核操作的图形表示200包括单个级207,该单个级包含单个XOR 204。显然,在示例极化编码器中,N=2个内核编码比特中的第一个比特作为N=2个内核信息比特的XOR获得,而第二个内核编码比特等于第二个内核信息比特。对于更大的内核块尺寸“N”,图形表示可以被认为是对于N/2的内核块尺寸的两个图形表示的垂直联结,随后是XOR的附加级207。与上述的N=2内核类似,N个内核编码比特的前N/2个比特作为来自两个N/2内核的输出的对应比特的XOR而获得,而内核编码比特的第二N/2个比特等于第二N/2内核的输出。
在这个示例中,极化编码器的编码块调节部件103的输入是内核编码块x 106,并且其输出可以被称为块尺寸为M的编码块107。更具体而言,这个编码块是包括M个编码比特的行向量;其中bk∈{0,1}。
在此,所得到的极化编码率由R=K/M给出,其中必须完成编码块调节103,以使得“M”大于“K”。编码块调节部件103可以使用各种技术来生成编码块b 107中的“M”个编码比特,其中“M”可以大于或小于“N”。更具体而言,重复[6]可以用于重复内核编码块“x”中的“N”个比特中的一些比特,而缩短或删截(puncturing)技术[6]可以用于移除内核编码块“x”中的“N”个比特中的一些比特。注意的是,缩短会移除保证具有逻辑值“0”的比特,而删截会移除具有逻辑“0”或“1”值的比特。编码块调节部件还可以包括交织操作。在极化编码之后,可以将编码块“b”107提供给调制器,该调制器在通信信道108上传输该编码块。
现在参考图3,使用生成器矩阵203的图形表示300的扩展的示例极化编码过程图示了其中特定冻结比特模式被用于将K=4个信息比特a=[1001]104转换成M=8个编码比特b=[00001111]107的示例。更具体而言,信息块调节101用于将K=4个信息比特a=[1001]104转换成N=8个内核信息比特u=[00010001]105。然后,极化编码器内核102使用极化码图203将这些比特转换成N=8个内核编码比特x=[00001111]106。在此,可以通过各种XOR运算来跟踪输入路径,以识别输出。最后,编码块调节103保留所有内核编码比特,以提供M=8个编码比特b=[00001111]107。
在接收器中,解调器的作用是恢复与编码块相关的信息。但是,由于通信信道108中的噪声的随机性质,解调器通常不能获得关于编码块107中的M个比特的值的绝对置信度。解调器可以通过生成块尺寸为M的软编码块109来表达其对编码块107中的比特的值的置信度。更具体而言,这个软编码块109是包括M个编码软比特的行向量。每个软比特可以用对数似然比(LLR)的形式表示:
其中Pr(bk=‘0’)和Pr(bk=‘1’)是和为“1”的概率。
在此,正LLR指示解调器对对应比特bk具有“0”的值具有更大的置信度,而负LLR指示对比特值“1”具有更大的置信度。LLR的量值表达有多少置信度,其中无穷大的量值与这个比特值中的绝对置信度对应,而量值“0”指示解调器不了解比特值更可能是“0”还是“1”。
在替代方法中,每个软比特可以由一对对数似然(LL)表示:
极化解码器包括三个相继的部件,即,编码块调节110、极化解码器内核111和信息块调节112,如图1所示。这些部件将在以下段落中讨论。
极化解码器的编码块调节部件110的输入是软编码块109,并且它的输出可以被称为块尺寸为N的软内核编码块113。更具体地,软内核编码块113是行向量,该行向量包括“N”个内核编码的LLR为了将M个编码的LLR转换成“N”个内核编码的LLR,无穷大值的LLR可以与软编码块109交织,以占用软内核编码块中与通过极化编码器中的缩短而被移除的“0”值内核编码比特对应的位置。同样,可以将“0”值的LLR与软编码块109交织,以占用通过删截移除了内核编码比特的位置。在重复的情况下,可以将与特定内核编码比特的副本对应的LLR相加并放在软内核编码块109内的对应位置。如果在极化编码器的编码块调节部件103内采用了交织,那么也可以执行对应的解交织操作。
极化解码器内核1111的输入是软内核编码块113,并且其输出可以被称为块尺寸为“N”的恢复的内核信息块114。更具体而言,这个恢复的内核信息块114是包括“N”个恢复的内核信息比特的行向量,其中在一些示例中,极化解码器内核111可以使用各种不同的算法进行操作,包括相继抵消(SC)解码[1]和相继抵消列表(SCL)解码[7]。
极化解码器的信息块调节部件112的输入是恢复的内核信息块114,并且其输出可以被称为具有块尺寸“K”的恢复的信息块115。更具体而言,这个恢复的信息块115是行向量该行向量包括“K”个恢复的信息比特,其中可以通过从恢复的内核信息块114中移除所有冗余比特来获得恢复的信息块,如果在极化编码器的信息块调节部件中采用了交织,那么也可以执行对应的解交织操作。
1)SC解码:基于SC解码进行操作的极化解码器内核可以被认为具有与极化编码器相似的图结构201、202、203,如图2所示,可以观察到,图的每个级207包括N/2个基本计算单元,类似于N=2图形201,更具体而言,每个基本计算单元在其左侧边缘具有两个连接,它们连接到紧挨着左侧的级207中的基本计算单元,或者连接到图形205的左侧边缘(如果左侧没有级的话)。基本计算单元的左侧边缘上的这些连接与其右侧边缘上的两个连接水平对准,其右侧边缘上的两个连接与紧挨着右侧的级207中的基本计算单元连接,或者连接到在图形206的右侧边缘(如果右侧没有级的话)。在基本计算单元内,两个右侧连接中的第一个经由XOR 204连接到两个左侧连接,而第二个右侧连接直接连接到第二个左侧连接。在图的最左侧的级中,每个基本计算单元的左侧和右侧边缘上的两个连接在垂直方向上彼此连续。但是在其它级中,每个基本计算单元的两个连接在垂直方向上彼此分隔开一个偏移量,该偏移量在每个相继的级207中加倍。
SC解码器根据由数据依赖性决定的序列执行与基本计算单元相关的计算。更具体而言,取决于在其右侧边缘上的连接403、404上提供的LLR的可用性以及在其左侧边缘上的连接401、402上提供的比特的可用性,针对特定的基本计算单元可以执行三种类型的计算。
当基本计算单元可以参与SC解码过程时的第一种情况是在其右侧边缘上的连接403、404都提供了LLR的情况。如图4(a)所示,我们将这两个LLR中的第一个和第二个分别称为和这使得基本计算单元能够根据f函数为其左侧边缘上的两个连接中的第一个连接401计算LLR
其中,如果其自变量为负,那么sign(·)返回“-1”,如果其自变量为正,那么sign(·)返回“+1”。
稍后在SC解码过程中,将在基本计算单元的左侧边缘上的连接中的第一个连接401上提供比特如图4(b)所示。连同先前使用右侧边缘上的连接403、404提供的LLR和这使得基本计算单元能够根据g函数为其左侧边缘上的两个连接中的第二个连接402计算LLR
稍后,将在基本计算单元的左侧边缘上的连接中的第二个连接402上提供比特如图4(c)所示。连同先前使用左侧边缘的连接中的第一个连接401提供的比特,这使得可以对基本计算单元的右侧边缘上的第一个连接403和第二个连接404的比特和进行部分求和计算,其中:
如从上面的讨论可以认识到的,(1)或(2)的f函数可以用于在图中从右向左传播LLR,而(4)和(5)的部分求和计算可以用于从左向右传播比特,而(3)的g函数可以用于从传播比特切换到传播LLR。
为了可以从右向左传播LLR,有必要在图的右侧边缘206的连接上提供LLR。这在SC解码过程开始时通过在图的右侧边缘206上的相继连接上提供来自软内核编码块113的相继LLR来执行。同样,有必要在图的左侧边缘205的连接上提供比特,以促进从左向右传播比特。在此,造成了除了上述数据依赖性以外的进一步的数据依赖性。如果在图的左侧边缘上的特定连接的位置与内核信息块u 105中信息比特的位置对应,那么输入到该连接的比特取决于从该连接输出的LLR。更具体而言,如果在连接上输出正LLR,那么值0可以针对恢复的内核信息块114的对应比特被选择,然后被输入到连接中。同时,负LLR允许值“1”针对恢复的内核信息块114的对应比特被选择,然后被输入到连接中。在与内核信息块u 105内的冗余比特对应的连接的情况下,只要知道该冗余比特的值就可以将该值输入到连接中。在此,在SC解码过程开始之前,冻结和UE-ID比特的值可以是已知的,但是CRC、PC和散列比特的值可能直到恢复相关的信息比特后才变得可用。
结合起来,上述数据依赖性带来了在图的左侧边缘205上的连接上按从上到下的次序一次获得一个恢复的内核信息块114内的信息比特的要求。更具体而言,SC解码过程开始于使用f函数(1)或(2)将LLR从图的右侧边缘206传播到图的左侧边缘205上的顶部连接,从而允许恢复第一个比特。此后,在使用f函数将LLR传播到图的左侧边缘205上的下一个连接之前,通过使用(4)和(5)的部分求和计算从左到右传播比特,然后对于特定的基本计算单元使用(3)的g函数以从比特传播切换到LLR传播,来恢复从上到下的每个相继比特,从而允许恢复对应的比特。图5的示例说明了这个过程。
图5图示了根据本发明示例实施例的对于特定冻结比特模式用于将M=8个编码的LLR 109的特定向量~b转换成K=4个恢复的信息比特^a=[1001]115的情况使用生成器矩阵203的图形表示的SC解码过程的示例。在每个连接上方示出了使用公式(2)和(3)的f和g函数获得的LLR。使用公式(4)和(5)的部分求和计算获得的比特在每个连接下方示出。括号中随附的数字识别SC解码过程的其中对应的LLR或比特变得可用的步骤。
2)SCL解码:
在本文描述的SC解码过程的一个示例中,为恢复的信息块115中的每个比特选择的值取决于对应的LLR的符号,该LLR的符号又取决于为所有先前的恢复的信息比特选择的值。如果这个方法导致为特定比特选择了错误的值,那么这常常导致所有后续比特的错误级联。可以考虑随后的冻结比特来检测对于信息比特的错误值的选择,因为解码器知道这些比特应当具有值“0”。更具体而言,如果对应的LLR具有将暗示冻结比特的值为“1”的符号,那么这表明在先前信息比特之一的解码期间已经产生了错误。但是,在SC解码过程中,没有机会考虑先前信息比特的替代值。一旦为信息比特选择了一个值,则SC解码过程就会继续进行,并且决策是最终的。
这启发了SCL解码[7],SCL解码使得能够考虑信息比特的替代值列表。随着解码过程的进行,它考虑每个相继信息比特的值的两个选项。更具体而言,SCL解码器维护候选内核信息块的列表,其中,随着SCL解码过程的进行,该列表和内核信息块被建立。在该处理开始时,列表仅包括长度为零比特的单个内核信息块。每当解码过程达到冻结比特时,比特值0就会附加到列表中每个内核信息块的末尾。但是,每当解码过程到达一个信息比特时,就会创建候选内核信息块列表的两个副本。在此,比特值“0”被附加到第一副本中的每个块,比特值1被附加到第二副本中的每个块。之后,将两个列表合并以形成新列表,该新列表的长度是原始列表的两倍。这一直持续到列表的长度达到极限L(通常选择为2的幂)为止。从这时开始,每当考虑信息比特时列表的长度就加倍,2L个候选内核信息块中最差的L个被识别并从列表中删截。以这种方式,列表的长度维持为L,直到SCL解码过程完成为止。
在此,最差的候选内核信息块是基于在极化码图的左侧边缘205上获得的LLR通过比较和排序为每个块[8]计算的度量来识别的。通过使用(4)和(5)的部分求和计算的单独副本将来自每个候选内核信息块中的比特从左到右传播到极化码图中,可以在SCL解码过程中获得这些LLR。此后,如在本文描述的示例SC解码过程中那样,可以使用(1)-(3)的g和f计算的单独副本来从右向左传播对应的LLR。与将在位置j∈[0,N-1]中的比特值附加到候选内核信息块l相关联的度量由下式给出:
其中是对应的LLR,并且φl,j-1是在SCL解码过程的上一步中为候选内核信息块计算的度量。注意的是,由于度量是跨所有比特位置i∈[0,N-1]累积的,因此,每当附加了冻结的比特值“0”时,就必须为所有L个候选内核信息块计算度量,并且在考虑信息比特的两个可能值时,必须为所有2L个候选计算度量。在后一种情况下,对2L个度量进行排序,具有最高值的L个候选者被识别为最差的候选者,并且从列表中被删截。
在完成SCL解码过程之后,可以选择具有最低度量的候选内核信息块作为恢复的内核信息块114。可替代地,在CRC辅助的SCL解码[9]中,在选择并输出具有最低度量的候选之前,删截列表中不满足CRC的所有候选。
提出的极化解码器内核
参考图6,图示根据本发明示例实施例的在Cmax=5的情况下所提出的极化解码器内核1600的示例示意图。所提出的极化解码器内核111包括数据路径1601、1602、1603、存储器1604、1605和控制器1606部件。更具体而言,采用内部数据路径1601、外部数据路径1602和部分总和数据路径1603的Cmax-2个副本。此外,采用Cmax-1个比特存储器块1605以及Cmax个LLR存储器块1604。与用于实现解码器的已知处理器体系架构相比,本发明的示例可以取决于运行时的内核块尺寸N将极化码图中的所有级灵活地分组为1到Cmax范围内的多个列,其中在一些示例中,可以在设计时选择Cmax。相比之下,一些现有技术始终使用不会随内核块尺寸而变化的固定数量的列,而一些现有技术只将最左侧的级分组为一列,并要求所有其它级保持独立。
以这种方式,本发明的示例具有使用列的优点,即,减少了完成极化解码过程所需的步骤数。本发明的示例还保留了支持长内核块尺寸N的灵活性,而无需具有太大宽度并且因此具有过度硬件需求的列。同样,本发明的一些示例在保留内部数据路径硬件的高实用性的同时保留支持短的内核块尺寸N的灵活性,并因此维持了硬件效率。
更具体而言,不是一次处理极化码图的一个级,而是通过一次处理每列中的若干连续级来实现更高的并行性等级。这种并行处理可以在f和g计算的大部分计算中得到充分利用,从而与行体系架构和半并行体系架构相比,实现更大的硬件实用性。此外,由于一次处理若干连续的级,因此仅在每对连续的级组之间的接口处需要存储器,而不是在每对连续的单独级之间的接口处需要存储器。相对于以前的实施方式,这显著降低了所提出的体系架构的总体存储器需求,这尤其具有影响,因为存储器是硬件资源使用的最大贡献者。最后,提出了一种用于传播部分总和比特的简单机制,该机制也是有影响的,因为部分总和传播是先前实施方式中对硬件资源使用的第二大贡献者。
更具体而言,在控制器1606的控制下,内部数据路径1601、外部数据路径1602和部分总和数据路径1603中的每一个可以被指引以在极化编码器内核操作的每个步骤中处理一列的一行的一个子行。在此,取决于信息在极化码图中是从左向右还是从右向左传播,从驻留在当前列的任一侧上的一个或另一个边缘上的适当接口处的LLR和/或比特存储器块1604和1605读取到数据路径1601、1602或1603的输入。同样,取决于信息流的方向,将数据路径1601、1602或1603的输出写入驻留在当前列的任一侧上的适当接口处的LLR和/或比特存储器块1604和1605。以这种方式,通过读取和写入相同的存储器块1604或1605,可以在相邻列中执行的处理之间传递比特或LLR。
LLR和比特以允许数据路径1601、1602或1603执行无缝读取和写入操作的方式布置在这些存储器块602、603内,而无需复杂的互连网络或复杂的控制信号。
体系架构
所提出的极化解码器内核1111使得能够一次灵活地解码一个恢复的内核信息块114,其中相继的恢复的内核信息块可以具有随块而不同的内核块尺寸N。
更具体而言,内核块尺寸N可以采用介于2和Nmax之间的2的任何幂的值,其中Nmax是在设计时固定的参数。在极化解码过程的开始1801时,在一系列N/min(N,n1)个连续的步骤中,将软内核编码块113加载1802到极化解码器内核111的LLR输入1607中。LLR输入1607具有在每个步骤中可以接受n1个LLR的宽度,其中参数n1在设计时固定。在此,每个LLR可以使用二的补码定点数字来表示,其比特宽度在设计时固定。在N<n1的情况下,在软内核编码块113中的每个LLR之后插入相等数量的零值LLR,以便在它被提供给所提出的极化解码器内核111之前将其长度增加到n1。在极化解码过程期间,冗余比特模式和对应的冗余比特值被提供给所提出的极化解码器内核111的对应输入1608。这些输入中的每一个具有可以在每个步骤中接受个模式比特或冗余比特的宽度,它们根据极化解码过程的需求按需被提供给所提出的极化解码器内核111。在的情况下,将断言的(asserted)冻结比特标志附加到冻结比特模式,以便将其长度增加到
在极化解码过程完成之后,一系列N/min(N,nb)个连续步骤用于在所提出的极化解码器内核111的比特输出1609上输出1803恢复的内核信息块114,该比特输出具有nb比特的宽度。在N<ne的情况下,可以从所提出的极化解码器内核111的输出1609的末尾移除零值比特。当对块尺寸为N的软内核编码块113进行解码时,所提出的极化解码器内核111的所描述的一个示例基于极化码生成器矩阵的图形表示201、202、203进行操作。在此,将图形201、202、203内的n=log2(N)个级207分组为C个列1701、1702,其中每一列都包括特定数量的连续级207。每一列1701、1702可以由其索引c∈[0,C-1]来引用,其中最左侧的列1701的索引为c=0,并且最右侧的列的索引为c=C-1。可以使用行向量来表示每一列1701、1702中的级数,其中s0是最左侧的列1701中的级数,而sC-1是最右侧的列中的级数。在此,s必须被选择为使得对于生成器矩阵的图形表示被分组为包括s=[1;2;2;1]级207的C=4个列1701、1702的情况,这在图7中例示。在所提出的极化解码器内核111中,索引为c=0的最左列被称为外部列1701,而索引为c∈[1,C-1]的其它列被称为内部列1702的集合。每列1701、1702中的特定级数取决于内核块尺寸N以及在设计时固定的参数so和si来选择。在此,so指定外部列1701中可以容纳的最大级数,其可以采用“0”至nmax=log2(Nmax)范围内的任何值。同时,si指定每个内部列1702中可以容纳的最大级数,其可以采用1到nmax-so范围内的任何值。如果图中的级数n=log2(N)满足n≤so,那么图形201、202、203仅被分解成C=1个列,即,外部列1701,外部列1701将包括so=n个级207。否则,将图形201202、203分解成个列,其中外部列1701包括s0=so个级207,最右侧的内部列1702包括sC-1=n-so-(C-2)si个级207并且所有其它内部列1702包括sc=si个级207。这在图7中例示,其中在图形201、202、203包括n=6个级207的情况下,s=[1;2;2;1]由于so=1且si=2而产生。注意的是,在替代布置中,可以使用对于所有c∈[1,C-1]都满足sc≤si的任何其它组合将n-so个最右侧的级207分布在C-1个内部列1702之间,但是这需要对本节中描述的设计进行修改。
注意的是,如果图中的最大级数nmax=log2(Nmax)满足nmax=so,那么图形201、202、203将始终仅分解成仅Cmax=1个列1701,列1701包括最多s0,max=nmax个级207。否则,图形201、202、203被分解成最多个列1701、1702,其中外部列1701包括最多s0,max=so个级207,最右侧的内部列1702包括最多sC-1,max=nmax-so-(Cmax-2)si个级207并且所有其它内部列1702包括最多sc,max=si个级207。列1701、1702的集合与子码基数的向量相关联,其中每个子码基数由下式给出:
在此,特定列1701、1702的子码基数rc量化如果图形201、202、203仅在该列及其左侧的列中包括级207则将产生的内核块尺寸N。注意的是,每个相继列1701、1702的子码基数rc从左到右增长。对应的最大子码基数由下式给出:
每一列1701、1702包括多个行,该多个行可以使用向量表示,其中特定列中的行数由Rc=N/rc给出。
在此,每行1703包括子图,该子图在其左侧边缘和右侧边缘上包括水平对准的sc个级207和rc个连续连接。在图7中可以观察到,以上给出的行定义导致在任何特定列1701、1702内的任何一对行1703之间没有互连。每一列1701、1702的每一行1703可以通过极化解码过程被访问一次或多次,以便例如执行XOR运算或f和g函数。更具体而言,与特定列中的特定行相关联的处理可以在极化解码过程期间在多于一个时间上分离的场合下执行,其中时间上分离的处理的每个集合可以被称为对该行的“访问”。但是,由于每一列的行1703内的连接数量rc从左到右增长,因此对图形201、202、203右侧的列1701、1702中的行1703的访问比对图左侧的列中的访问涉及更多的计算。但是,在图7中可以观察到,最右列中的行1703可以被分解成子行1704,子行1704彼此之间没有连接。因此,与极化解码过程期间特定时间对行1703的特定访问相关联的计算可以分散在若干连续的步骤中,每个步骤针对行1703中的不同的子行1704执行计算1804、1805、1806。以这种方式,极化解码过程一次一个步骤地完成,其中每个步骤可以与一个或多个硬件时钟周期对应,这取决于是否以及如何采用流水线。通过在图形201、202、203右侧的列1702中每行1703使用更多子行1704,可以将在解码过程的每个步骤中执行的计算数量维持在相对恒定的水平,而与正在访问哪一列无关。形式上,包括每一列1701、1702的每一行1703的子行的数量可以使用向量表示。在此,Sc必须是2的幂并且不能超过以便确保子行1704之间没有连接。注意的是,这意味着外部列1701中的行1703无法进一步分解成子行1704。每个子行1704包括子图,该子图包括sc个级207以及在其左侧边缘和右侧边缘上nc=τc/Sc个水平对准的连接,这些连接彼此垂直偏移rc/nc个位置。在此,nc被称为子行1704的块尺寸,它必须是范围内的2的幂。在所提出的极化解码器内核111中,每个内部列1702中的子行1704的特定块尺寸被选择为nc=min(rc,ni)。在此,ni指定最大内部子行块尺寸,该尺寸是在设计时固定的参数并且可以采用至Nmax范围内的2的任何幂。每一列1701、1702的每一行1703被包围在虚线框中。每列1701、1702的第一行1703中的第一子行1704以粗体突出显示。
这在图7中例示,其中在图形201、202、203包括n=6个级207的情况下,S=[1;1;4;8]由于ni=8产生。
图8图示了根据本发明示例实施例的由所提出的极化解码器内核采用的解码过程的示例性流程图,其中,围绕流程图的主循环的每个周期与解码过程的一个步骤对应。流程图在1801处开始,并且在1802处,将软内核编码块113的LLR加载到所提出的极化编码器内核111中。在1807处,将当前列索引c初始化为c=C-1,将当前行索引y初始化为长度为C的零值向量,并且将当前子行索引s初始化为0。
在1808处,确定c>0被用于识别当前列是否是内部列。如果是,那么流程图前进到1809,其中确定v=mod(yc-1,rc/rc-1)以识别对当前列的当前行中的当前子行的当前访问的索引。此后,在1805处,部分总和数据路径1至c被用于将部分总和比特从列0传播到当前列。此后,在1806处,内部数据路径被用于处理对当前列的当前行中的当前子行的当前访问。在1813处,确定s=Sc-1被用于确定是否已经对当前行中的所有子行进行了索引为v的访问。如果不是,那么在1812处将子行索引s递增,使得接下来将访问下一个子行。然后,流程图返回到1808,以继续处理当前内部列的当前行中的子行。
相比之下,如果在1813处确定现在已经对当前内部列的当前行中的所有子行进行了具有索引v的访问,那么流程图前进到1814。在此,确定v=rc/rc-1-1被用于确定是否已经对当前内部列的当前行中的所有子行进行了最后的访问。如果不是,那么流程图前进到1818,或者如果是,那么流程图先前进到1816,然后前进到1818。在1816处,当前列的行索引递增,使得当在极化解码过程中稍后再次访问当前内部列时,它将是将被访问的下一行。在1818处,递减当前列索引c,以便接下来将访问左侧的列,无论它是外部列还是另一个内部列。在1821处,子行索引s被重置为0,以便对内部列中的行的下一次访问将从其顶部子行开始。此后,流程图返回到1808。
如果在1808处确定c>0识别出当前列是外部列,那么流程图前进到1804。在此,外部数据路径被用于处理外部列中的当前行y0。此后,在1810处使用确定y0=R0-1来确定是否已经访问了外部列中的底部行。如果不是,那么流程图前进到1815,其中递增外部列的行索引,以便在极化解码过程中稍后再次访问外部列时,它将是要被访问的下一行。接下来,在1817、1820和1819中使用处理来确定接下来应当访问哪个内部列。在1817处,列索引c被初始化为最右侧的内部列的索引C-1。在1819处,c不断递减,直到在1820处mod(y02so,rc-1)=0。此后,流程图前进到1821,其中子行索引s被重置为0,然后流程图返回1808。
相比之下,如果在1810处确定已经访问了外部列的底部行,那么从所提出的极化解码器内核111输出恢复的内核信息块114,并且该处理在1811处结束。
在一些示例中,所提出的极化解码器内核111根据数据依赖性完成解码过程。随着解码过程的进行,如图8的流程图所示,根据特定的时间表,对不同的列1701、1702中的不同的行1703执行计算。外部列1701中的每一行1703将被该处理访问一次,而每个特定的内部列1702中的每一行1703将被该处理访问次,其中sc是该列中的级数。解码过程开始于将软内核编码块113的LLR传递到最右列中的单个行1703。然后,解码过程使用(1)或(2)的f函数在第一次访问最右列中的该单个行1703期间对这些LLR执行计算。每当完成对内部列1702中的行1703的访问时,它将把所得到的LLR传递到左侧列中连接的行1703之一,其中特定的行1703被选择为最上面的尚未被访问的行。然后,解码过程将使用(1)或(2)的f函数在第一次访问左侧列中的这一行1703期间对这些LLR执行计算。每当完成对外部列1701中的行1703的访问1804时,它将为恢复的内核信息块114贡献比特。此后,将使用(4)和(5)的部分总和公式将被用于将1805个部分总和比特从外部列1701中的这一行1703传递1805到具有水平对准的行1703的最左侧的内部列1702,其中,到目前为止,已经完成次访问。同时,解码过程将执行对这一行1703的访问,其中(3)的g函数被用于将这些比特与第一次访问行1703的开始时提供的LLR进行组合。注意的是,对内部列1702中的行1703的每次访问可以在解码过程的多个连续步骤上执行,其中每个步骤1806对行1703中的子行1704中的不同子行进行操作。在此,子行1704可以以任何次序进行处理,但是图8的流程图图示了从上到下对子行进行处理的情况。在此,如下面所讨论的,部分总和比特在由(3)的g函数使用的相同步骤内从外部列1701传播1805到内部列1702中的子行1704。注意的是,这个相同的方法可以用于SC和SCL解码过程。在SCL解码的情况下,对每个子行1704的每次访问使用并行处理以同时执行与列表中的所有L个候选内核信息块相关联的计算。
图9图示了根据本发明示例实施例的所提出的极化解码器内核的示例时序图。
如图9所示,可以通过将对每一列1701、1702中的每一行1703的访问次数与每一列中的子行1704的数量相结合来获得完成解码过程所需的步骤的总数,给出总共个步骤,如图10所示。
图10图示了根据本发明示例实施例的所提出的极化解码器内核的解码过程所需的步骤数的示例图。它绘制了所提出的极化解码器内核111的解码过程所需的步骤数,该步骤数作为内核块长度N、外部数据路径1602中的级数so、内部数据路径1601中的级数si和内部数据路径的块尺寸ni的函数。对于L=8列表解码的情况并且对于so、si和ni的每种组合,“path”量化关键数据路径长度中定点加法器的数量,“outadd”量化必须在外部数据路径1602中布置的定点加法器的数量,“inadd”量化必须在内部数据路径1601中布置的定点加法器的数量。此外,对于Nmax=1024的情况,“LLRmem”以LLR为单位量化所需的LLR存储器1604容量,而“bitmem”以比特为单位量化所需的比特存储器1605容量,包括用于由外部数据路径1602获得的候选内核信息块的存储器。
注意的是,在可以开始解码过程之前,还需要另外的N/min(N,n1)个步骤将软内核编码块113的LLR加载1802到所提出的极化解码器内核111中。注意的是,在替代示例布置中,最右侧的列1702的处理可以在软内核编码块113的加载1802的结尾处开始,从而允许实现某种并发性,这需要对所示出的设计的修改。在SC解码的情况下,恢复的内核信息块114可以与图形201、202、203中的外部列1701的处理并发地、一次比特地从所提出的极化解码器内核111被输出1803,虽然根据通过解码过程访问1804外部列1701的时间是偶尔进行的。但是,在SCL解码的情况下,恢复的内核信息块114的输出1803直到所有处理都已经完成并且在已经选择L个候选内核信息块中最好的之后才能开始。在这种情况下,需要另外N/min(N,nb)个步骤来输出1803恢复的内核信息块114。每个步骤可以与硬件实施方式中的单个时钟周期对应,这取决于是否以及如何应用流水线。
在图10中,将所提出的极化解码器内核的三个参数化所使用的步骤数绘制为内核块长度N的函数。这个图的图例还量化了由每个参数化使用的计算和存储器资源,如将在以下各节中详细介绍的。可以预料,在外部数据路径1602中具有更多级so、在内部数据路径1601中具有更多级si以及具有更大的内部数据路径块尺寸ni的参数化使用更少的步骤。虽然这些更快的参数化的数据路径使用更多的计算资源和更长的关键路径,但由于它们使用的列较少,因此它们倾向于使用较少的存储器资源。图10将所提出的极化解码器内核与[14]的行解码器和[15]的半并行解码器进行了比较,它们被参数化为使用[26]的多比特技术来一次恢复2so个内核信息比特。如图10所示,与采用so=2的相同值的基准测试程序相比,所提出的具有参数so=2的极化解码器使用更少的步骤完成解码过程。此外,它使用更少的计算资源,并且它使用小于25%的量的LLR存储器。此外,所提出的极化解码器内核采用一种优雅的方法来进行部分总和传播,其硬件开销小。由于LLR存储器和部分总和传播是硬件资源使用的两个最大贡献者,因此可以预期所提出的极化解码器的硬件效率可以比现有技术的极化解码器的效率好四到五倍。
可以认为这种提出的方法采用常规极化码图201、202、203作为使用(1)-(3)的f和g函数进行LLR传播的基础。但是,极化码图201、202、203的新颖的重新布置被用作使用(4)和(5)的部分总和公式的比特传播1805的基础。
图11图示了根据本发明示例实施例的对于采用包括s=[1;2;2;1]个级的C=4个列的情况的生成器矩阵的示例重新布置的图形表示。
对于生成器矩阵的图形201、202、203表示已被分解成包括s=[1;2;2;1]个级207的C=4个列的示例,在图11中例示了这种重新布置的图。在此,可以观察到,内部列1702的每一行1703的每一级207中的底部rc-1个XOR已被移除,其中rc-1是左侧的列的子码基数,如上面所定义的。代替地,已经在每个内部列1702与其右边的列之间的接口处引入了XOR2101。更具体而言,从每个内部列1702的每一行1703传递到其右侧的列的最高rc-rc-1个比特中的每一个与从那一行1703传递的底部rc-1个比特中的特定比特进行XOR2101。在此,特定比特被识别为使得每个XOR对中的两个比特都具有相同的索引模rc-1,其中每个比特索引的范围在模运算之前为0到N-1并且在模运算之后为0到rc-1-1。
如图6所示,所提出的极化解码器内核111包括内部数据路径1601、外部数据路径1602、部分总和数据路径1603、LLR存储器块1604、比特存储器块1605和控制器1606部件。更具体而言,虽然所提出的极化解码器内核111仅包括外部数据路径1602和内部数据路径1601的单个实例,但是它包括部分总和数据路径1603的Cmax-2个实例、比特存储器块1605的Cmax-1个实例以及LLR存储器块1604的Cmax个实例。在此,外部数据路径1602与极化解码器内核111的比特输出接口连接,并且可以视为驻留在索引为c=0的外部列1701内。同时,在解码过程的不同步骤期间,内部数据路径1601可以被认为驻留在具有不同索引c∈[1,C-1]的不同内部列1702内。此外,具有索引c∈[1,C-2]的部分总和数据路径1603可以被认为驻留在极化码图201、202、203的具有对应索引c的内部列1702内。
此外,具有索引c∈[1,C-2]的内部列1702可以被认为经由具有索引c的比特存储器块1605和LLR存储器块1604与其左侧的列接口连接,以及经由具有索引c+1的比特存储器块1605和LLR存储器块1604与其右侧的列接口连接。此外,具有索引C-1的最右侧的列1702可以被认为经由具有索引Cmax的LLR存储器块1604与提出的极化解码器内核111的LLR输入1607接口连接。如图6所示,外部数据路径1602、比特存储器块1605和部分总和数据路径1603形成链,它们表示极化码图201、202、203中的C列1701、1702。当解码过程访问图形201、202、203中的不同内部列1702时,内部数据路径1601可以从这个链中的不同点获取输入并向这个链中的不同点提供输出。在一些示例实施例中,图6还图示了用于绕过1610这个链中的比特存储器块1605的机制。这是上面提到的机制,该机制允许在解码过程的单个步骤中,比特从外部数据路径1602通过相继的部分总和数据路径1603传播到内部数据路径1601中,而不管正在访问哪个内部列1702。注意的是,在一些示例中,在SCL解码的情况下,数据路径1601、1602、1603和存储器1604、1605具有足够的资源来并行地执行针对所有L个候选内核信息块的计算。
所提出的极化解码器内核111与所有先前提出的极化解码方法具有显著差异。[10]、[11]的可编程体系架构采用串行方法,该方法使用遵守上面提到的数据依赖性的时间表在每个步骤中执行与单个f或g函数关联的计算。相比之下,所提出的方法在每个步骤中执行与子行1704相关联的所有计算,从而导致高得多的并行性、高得多的吞吐量和低得多的延迟。[12]、[13]的展开式解码器通过在极化解码过程中为每个f或g计算采用不同的专用硬件来实现非常高的并行性。但是,极化解码过程的每个步骤将硬件用于仅一次f或g计算,从而导致高延迟。虽然这个方法可以通过一次重叠许多解码过程来实现高吞吐量,但它的灵活性有限。相比之下,所提出的方法是完全灵活的,因为其计算硬件可以被极化码图201、202、203中的每个子行1704重用,即使它们包括更少的级207或块尺寸小于由硬件采用的块尺寸。[14]的行解码器通过同时执行与具有特定维度的极化码图201、202、203的最右侧的级207相关联的所有f和g计算来实现高度的并行处理。但是,当处理图形201、202、203中的其它级207时,前面提到的数据依赖性可能阻止这种并行性被充分利用。代替地,硬件的相继较小的子集可以被重用以执行向左的每个相继级207的处理,从而导致差的硬件效率和灵活性。因此,[8]、[15]-[24]的半并行解码器通过降低并行处理的程度来提高硬件效率和灵活性,这需要若干处理步骤来执行最右侧的级207的计算,但是仍无法利用最左侧的级207的所有并行性。相比之下,所提出的方法的每个步骤通过同时执行不仅上下跨越每列的长度,而且跨越每列1701、1702中的多个级207的计算而实现了高度的并行性。更具体而言,所提出的方法使用树结构来为每个子行1704执行计算,这确保了在典型情况下充分利用并行性,而与正在访问哪一列1701、1702无关,并且与图的维度无关。这实现了高度的灵活性、高硬件效率、高吞吐量和低延迟。
虽然有采用列1701、1702概念的若干以前提出的极化解码方法,但没有一种方法以所提出的极化解码器内核111的完全一般化的方式应用它,其中可以采用任意数量的列1701、1702,每列包括潜在地不同且任意数量的级207。[14]、[25]-[29]的树结构在单个列1701的基础上运行,该单个列包含极化码图201、202、203中的所有级207,但是这个方法仅支持单个内核块长度并可能导致大硬件资源需求。在[30]、[31]的方法中,极化码图201、202、203被分解成两列1701、1702,这两列包括相等数量的级207,但是这个方法同样仅支持单个内核块长度。相比之下,[32]、[33]的方法使用外部列1701,该外部列1701可以包括多个级207,但是所有其它级均使用上述的半并行方法分别处理。与这些方法形成对比,所提出的极化解码器内核111由于其新颖的存储器体系架构而可以从列1701、1702的一般化应用中受益。这些是必要的,因为在处理一个列1701、1702的同时将特定的比特和LLR组写入,但是在处理相邻列1701、1702的同时读取不同的比特和LLR组。所提出的存储器体系架构使用这些组无缝地实现了读取和写入操作,从而确保在正确的时间将正确的比特和LLR组优雅地传递到正确的位置。此外,由于比特和LLR仅存储在每对连续的列1701、1702之间的边界处,而不是存储在更大数量的每对连续的级207之间的边界处,因此所提出的方法促进了显著的存储器减少。
这些相同的新颖的存储器体系架构还用作所提出的极化解码器内核111中的部分总和传播1805的基础,其中旁路机制1610用于在解码过程的单个步骤中将比特从外部列1701传递到内部列1702中的任何一列。这与先前已经提出的部分总和传播方法形成对比。在[8]、[15]、[30]中,部分总和更新逻辑被用于累积解码比特的不同组合,并且复杂的互连网络被用于将它们递送到对应g函数的处理。这导致大量的硬件开销和长关键路径,这限制了可实现的硬件效率、吞吐量和延迟。相比之下,[19]、[21]、[28]、[32]、[24]的前馈体系架构使用专用硬件将部分总和比特传播到极化码图201、202、203的每个相继级207。但是,前馈体系架构的复杂性对于每个相继级207迅速增长,从而限制了可以支持的内核块长度范围并限制了硬件效率。相比之下,[17]、[22]、[27]、[35]的方法使用简化的极化编码器内核102来实现部分总和,但是这并没有受益于作为解码过程的自然部分被执行的重用计算,就像所提出的方法那样。
数据路径
所提出的极化解码器内核1111使用专用硬件数据路径1601、1602、1603来实现(2)和(3)的f和g LLR函数,以及(4)和(5)的部分总和函数。虽然后者可以使用XOR门204的网络来实现,但是f和g函数可以使用定点处理单元2201的网络来实现。在一些示例中,内部数据路径1601可以执行与对一个内部列1702的一行1703中的一个子行1704的一次访问相关联的计算1806。同样,在一些示例中,外部数据路径1602可以执行与外部列1701中的一行1703相关联的计算1804。最终,在本文描述的部分总和链的一些示例中,部分总和数据路径1603的每个实例可以被用于传播1805部分和通过一个内部列1702。
图12图示了根据本发明示例实施例的可以被重新配置以执行(2)的“f”函数或(3)的“g”函数的所提出的处理单元的示例示意图。
1)处理单元和定点数表示:
所提出的图12的处理单元2201接受两个定点输入LLR2202和2203,以及比特输入2204和模式输入2205。取决于由模式输入2205提供的二进制值,处理单元2201根据如图4所描绘的(2)或(3)组合其它输入以产生定点输出LLR 2206或
文献[10]、[13]中极化码的一些先前实施方式已使用二的补码固定点数表示将每个LLR表示为W比特的向量其中是最高有效比特(MSB)和符号比特,是最低有效比特(LSB),并且通过这种方法,可以使用单个加法器实现(3)的g函数。在此,减法可以在需要时通过对被减去的LLR的二的补码定点表示中的所有比特进行补码,然后将它添加到另一个LLR,连同使用全加法器电路的进位输入的附加的“1”来实现。在(2)的f函数中,如果和为负,有必要将它们取反(negate),以便分别确定绝对值和
图13图示了对(2)的“f”函数的二的补码实施方式的已知技术的示例:(a)朴素的实施方式;(b)减少硬件的实施方式;(c)减少关键路径的实施方式。
在f函数的朴素实施方式中,可以通过对LLR的二的补码定点表示的所有比特进行补码2301并使用加法器电路2302加上1来实现这两个取反的每一个,从而产生图13a所示的绝对值。此后,根据图13a所示的比较和选择操作,可以通过使用第三加法器2303从中减去并使用结果的符号比特选择2304或来实现最后,取决于和的符号,可能有必要将取反,从而需要第四加法器2305。在更复杂的二的补码实现中,可以仅使用单个加法器2306来实现上述前三个加法器2302、2303的功能。这使得能够使用串联的两个加法器来实现f函数,其中第二加法器2307在必要时执行取反,如图13b所示。为了将关键路径长度减小到仅一个加法器,替代实施方式可以使用并联的三个加法器2306、2308来实现f函数,如图13c所示。在此,一个加法器2306被用于组合上述前三个加法器2302、2303的功能,并确定应当由还是给出。同时,如果这些值由第一加法器2306选择2309,那么另外两个加法器2308计算和文献[15]、[16]、[26]、[36]中极化码的一些其它先前实施方式已使用符号数值定点数表示将每个LLR表示为W比特的向量其中是符号比特,是MSB,是LSB并且同时,一些以前的实施方式[29]使用一的补码定点数表示形式,其中虽然这些方法允许使用单个加法器来完成(2)的f函数,但为了执行(3)的g函数,还需要附加加法器与二的补码定点数表示形式进行相互转换。可替代地,可以仅使用单个加法器来执行f和g函数来实现这些方法,其代价是有时将±1的误差引入所得到的LLR和中,这会降低极化解码器的纠错能力[29]。
与这些先前的实施方式形成对比,图12的所提出的处理单元2201的输入LLR、输出LLR和内部操作采用定点数表示,其中将二的补码附加到附加符号比特上。更具体而言,每个输入LLR~x2202、2203被表示为W+1比特的向量
其中是附加符号比特,用作MSB和二的补码符号比特,是LSB并且在此,LLR的符号可以作为获得,换句话说,附加符号比特指示由二的补码定点数表示的值是否应当为了恢复真正的LLR值而取反。注意的是,在替代方案中,可以通过例如在向量中将附加符号比特放置在最后一个而不是第一个和/或通过使用先LSB而不是先MSB的二的补码表示来对所所提出的定点数表示的W+1各比特进行重新排序。注意的是,虽然上面提到的一些先前的工作暂时使用了二进制标志来指示伴随的二的补码定点数需要取反。但是,这些标志没有在处理单元之间传递或传递到存储器中,特别地,先前工作的处理单元都没有接受采用所提出的定点数表示的输入2202、2203所需的输入电路系统。
所提出的处理单元2201仅采用单个加法器2207,其可以被共享以执行(3)的g函数和(2)的f函数两者,如图12的示意图和真值表所示。加法器的两个输入2208各自具有W个比特,它们从和的二的补码部分得出,而输出2209包括W+1比特,以避免溢出。取决于的值以及和的附加符号比特,LLR的二的补码部分可以通过使用加法器2207将的二的补码部分与的二的补码部分相加或者从的二的补码部分中减去的二的补码部分来实现。实现了高程度的硬件重用,因为f函数的项也可以通过使用加法器2207执行这种加法或这种减法来实现,这取决于和两者的两个符号比特的值。然后可以使用所得到的二的补码数字的MSB来选择2210或的二的补码部分,以提供LLR的二的补码部分。对于f和g函数两者,可以使用简单的组合逻辑来获得LLR和的附加符号比特,如图12的真值表所表征的。由于加法器2207引入了附加比特,因此所提出的处理单元2201的输出2206包括W+2个比特,其中,所表示的LLR或由给出。注意的是,所提出的方法不会将任何±1错误引入到所得到的LLR或中,从而保留了与二的补码定点数表示相同的纠错能力,但每个处理单元2201仅使用单个加法器2207。
注意的是,在区段(section)II-B3的外部数据路径1602中,仅需要一些处理单元2201来执行f或g函数中的一个或另一个。在这些情况下,可以移除模式输入2205和特定于未使用的模式的所有电路系统。注意的是,提供给所提出的极化解码器内核111的LLR输入1607的二的补码定点数可以通过将它们附加到零值附加符号比特上而被转换成所提出的定点数表示。此后,可以在整个所提出的极化解码器内核111中使用所提出的定点数表示,而无需转换成二的补码或任何其它定点数表示。可替代地,可以通过在LLR写入之前使用加法器将LLR转换成二的补码定点数来将存储每个LLR所需的LLR存储器1604减少一比特。更具体而言,如果设置了附加符号比特,那么可以通过将二的补码数的所有比特取反,然后使用加法器递增所得到的值来将二的补码数取反。为了在从LLR存储器块1604读取LLR时转换回所提出的定点数表示,可以将二的补码定点数附加到零值附加符号比特上。
2)内部数据路径:
内部数据路径1601被用于对极化码图201、202、203的内部列1702中的每个子行1704的每次访问1806执行所有LLR和比特计算。在一些示例中,如本文所述,内部数据路径1601可以由si和ni参数化。在此,这些参数分别被称为内部数据路径级数和内部数据路径块尺寸。注意的是,对于ni使用较大的值类似于同时处理多于一个具有较小ni值的子行。在这个示例中,这些参数的值在设计时固定,其中内部数据路径级数si可以采用1到nmax-so范围内的任何值,而内部数据路径块尺寸可以采用到Nmax范围内的任何2的幂的值。
图14图示了根据本发明示例实施例的对于si=2且ni=8的示例的在所提出的极化解码器内核中的内部数据路径的示例示意图。内部数据路径1601示意图的这个示例可以适于SC解码。在SCL解码的情况下,可以使用L个这个示意图的并行副本,其中L是列表尺寸。内部数据路径1601具有输入v,该输入v识别正在对当前子行1704进行哪个访问,其中访问索引在0到的范围内。注意的是,为简单起见,这个输入未在图14中示出。在SC解码的情况下,内部数据路径1601从其左侧边缘2401上的ni个比特获取输入。在这个示例中,这些输入比特经由通过部分总和数据路径1603和比特存储器块1605的相继的跳而源自本文所述的外部数据路径1602以及内部数据路径1601对左侧的内部列1702的先前访问。可以将比特输入的这个向量分解成个等长子向量,与紧挨的左侧列中的个已连接行1703对应。但是,在对当前子行1704的特定访问v期间,仅前v个子向量将包含有效比特,因为仅对左侧列中的前v个连接的行1703的处理将已经完成。注意的是,由于左侧列中的最低连接的行1703直到最后一次访问当前列中的当前行1703之后才会被访问,因此输入比特的最后一个子向量将永远不会提供有效比特。因此,在替代布置中,最后个输入和所有连接的电路可以被移除。此外,内部数据路径1601从其右侧边缘2402上的ni个LLR获取输入,这些输入源自内部数据路径1601经由对应LLR存储器块1604对右侧紧挨着的列1702的之前的访问。在此,如下所述,所提出的上面提到的定点数表示可以用于每个LLR。内部数据路径1601在其左侧边缘2403上提供ni个比特的输出,其经由对应的比特存储器块1605提供给区段II-B4的部分总和数据路径1603。此外,在一些示例中,内部数据路径1601为在其左侧边缘2404上的ni个定点LLR提供输出,该输出经由对应的LLR存储器块1604提供给紧挨在左侧的列1701、1702。但是,仅这些输出的子集携带有效的LLR,如由在内部数据路径1601的左侧边缘上输出的ni个写使能信号所识别的。注意的是,为简单起见,这些写使能信号未在图14中示出。
如图14所示,内部数据路径1601包括XOR 204的图形(graph)2405。在此,到XOR图形2405的左侧边缘的每个输入取自位于内部数据路径1601的左侧边缘上的对应的比特输入2401,而来自XOR图形2405右侧边缘的对应输出被提供给对应的比特输出2403,该比特输出也位于数据路径的左侧边缘上。注意的是,XOR图形2405与生成器矩阵的图表示中最右侧的si个级207相似。但是,在内部数据路径1601的XOR图形2405中,省略了每一级中最低的个XOR 204,因为这些XOR将连接到最低的个输入比特,如上所述,这些输入比特从不携带有效比特。这导致在图11的重新布置的图中省略了一些XOR204。注意的是,在当前列中的级数sc小于si时,通过禁用图形2405的最左侧的级中的XOR门204而将XOR图形2405中的级数减少以匹配sc。这可以通过使用AND门2406掩蔽数据路径中的对应垂直连接来实现,如图14所示。
此外,在一些示例中,内部数据路径1601可以包括处理单元2201的网络2407,处理单元2201中的每个可以被配置为在运行时执行(2)的f函数或(3)的g函数。到处理单元网络2407右侧边缘的每个输入均取自内部数据路径1601的右侧边缘上的对应LLR输入2402,而来自该网络的左侧边缘的每个输出均提供给数据路径的左侧边缘上的LLR输出2404。网络2407包括si个级,其中最右侧的级包括ni/2个处理单元2201,并且左侧的每个相继级包含的处理单元2201是其右侧的级的一半。
在一些示例中,处理单元可以被配置为基于如本文所述的定点数表示进行操作,其中在每个相继级中,从右到左使用递增的比特宽度。但是,可以使用裁剪电路(未示出)来减小在处理单元网络的左侧边缘上输出的软比特或LLR的比特宽度,以使其与右侧边缘上输入的软比特或LLR的比特宽度匹配。在替代布置中,可以在处理单元网络的一些特定级之间附加地执行裁剪,这降低了内部数据路径的硬件资源需求,但以降低极化解码器的纠错能力为代价。通过处理单元网络的关键路径包括串联的si个处理单元2201,并且处理单元2201的总数由给出,如图10中对于L=8列表解码的情况所量化的,L=8列表解码意味着需要L=8个内部数据路径1601的副本。网络2407中的处理单元2201连接在一起以形成二叉树。这些连接是根据生成器矩阵的图表示201、202、203的最右侧si个级207的最顶部的XOR 204布置的。注意的是,这个树结构类似于[26]、[30]和[32]中提出的树结构,虽然这些先前的实施方式在运行时并不灵活地支持不同的内核块长度N。注意的是,在当前列中的级数sc小于si时,通过使用多路复用器2408绕过网络2407最左侧的级中的处理单元2201,将处理单元网络2407中的级数减少以匹配sc,如图14所示。
取决于对当前子行1704进行哪个访问v,处理单元2201执行(2)的f函数或者(3)的g函数。更具体而言,将访问索引v转换成具有sc个数位的二进制数,但以相反的次序,其中LSB映射到内部数据路径中处理单元的最左侧的级,而最高有效比特(MSB)映射到内部数据路径中处理单元的最右侧的级。如果访问索引的反向二进制表示内的特定位置中的比特具有值“0”,那么网络的对应级中的处理单元2201执行(2)的f函数。相比之下,如果对应比特是“1”,那么这些处理单元2201执行(3)的g函数。在此,多路复用器2409被用于将正确的比特从XOR图形2405递送到计算g函数的每个处理单元2201。
如图14所示,多路复用器2408的布置被用于将由处理单元网络生成的个LLR定位在内部数据路径1601的左侧边缘2404上的ni个1LR输出之中。还提供电路系统来断言具有与这些LLR对应位置的写使能输出。更具体而言,多路复用器2408的布置将由处理单元网络2407提供的具有每个索引的LLR映射到内部数据路径1601的左侧边缘2404上的ni个输出中具有根据下式的索引n(m)∈[0,ni-1]的不同输出
在此,jc∈[0,N-1]被称为第一索引,其表示属于当前列c中的当前子行1704的极化码图201、202、203的最顶部的连接的垂直索引,其中对于最顶部的行中的最顶部的子行jc=0。第一索引可以根据下式获得:
jc=ycrc+s
其中yc∈[0,N/rc-1]是列c中当前正被访问的行1703的索引,并且s∈[0,max(rc/ni,1)-1]是行1703中正被访问的子行1704的索引。在内部数据路径1601的左侧边缘上输出的ni个写使能信号的向量中,断言索引为n(m)的个信号的对应子集。在一些示例中,多路复用器2408的这个操作和写使能信号允许由内部数据路径1601输出的LLR被直接写到对应的LLR存储器块1604。在一些示例中,控制器1606可以被配置为在XOR图形2405中的一些或所有级与处理单元网络2407之间插入流水线寄存器。
3)外部数据路径:
图15图示了根据本发明示例性实施例的对于so=2且ni=4的示例的在所提出的极化解码器内核中用于SC解码的外部数据路径的示例性示意图。
在SC解码的情况下,图15的外部数据路径1602可以用于对极化码图201、202、203的外部列1701中的每一行1703执行所有LLR和比特计算1804。外部数据路径1602由so参数化,so被称为外部数据路径级数。在一些示例中,这个参数的值在设计时是固定的,并且可以采用在0到nmax=log2(Nmax)范围内的任何值。在此,假设在的情况下,为了与图6的对应的LLR存储器块1604接口连接,将需要的较大宽度,连同对控制器1606的修改。
外部数据路径1602从其左侧边缘上的个冗余比特标志2502和个冗余比特2501获取输入,这些输入源自所提出的极化解码器的内核111的对应输入1608。外部数据路径1602还经由对应的LLR存储器块1604从其右侧边缘路径2503上的ni个LLR获取输入,这些输入源自内部数据路径1601。此外,外部数据路径1602在其右侧边缘2504上提供用于ni比特的输出,该输出经由对应的比特存储器块1605被提供给内部数据路径1601和部分总和数据路径1603。此外,外部数据路径1602在其左侧边缘2505上提供用于比特的输出,这些输出有助于恢复的内核信息块114。在SC解码的情况下,这些比特可以直接写入所提出的极化解码器内核111的比特输出1609,因此采用宽度
外部数据路径1602基于生成器矩阵的图表示201、202、203来操作,它根据先前描述的数据依赖性使用该图表示执行所有XOR、f和g运算。因而,外部数据路径1602包括XOR图,其包括so个级,每个级包括个XOR 204。此外,外部数据路径1602包括f/g图,其也包括so个级,每个级具有仅执行f函数的个处理单元2201以及仅执行g函数的个处理单元2201,如本文所述。
处理单元2201基于定点数表示进行操作,其中沿着图15所示的关键路径在每个相继的处理单元2201中使用递增的比特宽度。
f/g图的右侧边缘2503上的输入包括个定点LLR,如图15所示。多路复用器2506的布置被用于从由外部数据路径1602的右侧边缘2503上的输入提供的ni个LLR中选择这个LLR。更具体而言,从内部数据路径1601的右侧边缘2503上的ni个输入中具有根据n(m)=mni/r1的索引n(m)∈[0,ni-1]的不同输入中,多路复用器2506的布置选择在f/g图的输入上的具有每个索引的LLR。
注意的是,如果那么将在f/g图的输入上具有每个索引的LLR设置为由定点数表示所支持的最大正值。这些附加的LLR对解码过程没有影响,因为它们与在的情况下附加到冻结比特向量的断言的冻结比特标志对应。
外部数据路径1602还包括用于选择在外部数据路径的左侧边缘2505上输出的比特的值的电路2507。更具体而言,如果设置了对应的冗余比特标志2502,那么采用对应冗余比特2501的值。如果不是,那么使用对应LLR的符号来为该比特选择值,其中正LLR给出比特值0,而负LLR给出比特值1。这些决策通知在图内执行的XOR和g运算,并且还驱动外部数据路径1602的左侧边缘2505上的比特输出。
在外部数据路径1602内完成所有XOR运算204之后,在XOR图的右侧边缘上产生比特的向量,如图15所示。使用多路复用器2508的布置将这个比特定位在外部数据路径1602的右侧边缘2504上的ni个比特输出当中。更具体而言,多路复用器2508的布置将XOR图的输出上具有每个索引的比特映射到内部数据路径1601的侧边缘2504上的ni个输出中具有根据n(m)=mni/r1的索引n(m)∈[0,ni-1]的不同输出;而零值比特被提供给外部数据路径1602的右侧边缘2504上的所有其它输出。在一些示例中,控制器1606可以被配置为在XOR图和f/g图中的一些或所有级之间插入流水线寄存器。
在SCL解码的情况下,外部数据路径1602必须附加地能够对列表中的所有候选执行所有部分求和、f和g计算。此外,外部数据路径1602必须计算(7)的度量,这些度量会在相继的内核信息比特上累积。在此,寄存器可以被用于在相继的访问之间向外部列1701中的相继行1703传递度量。此外,在一些示例中,外部数据路径1602需要排序电路,以便识别和选择具有最低度量的L个候选。最后,需要容量为LNmax个比特的比特存储器块来存储L个候选内核信息块。在此,附加的指针存储器[18]可以被用于辅助这个比特存储器块的寻址。图10量化了在L=8SCL解码的情况下实现f、g、度量和排序计算所需的加法器总数。
4)部分总和数据路径:
部分总和数据路径1603被用于对从内部数据路径1601中的XOR图中省略的每个子行执行XOR运算2101,以及在极化码图201、202、203中从左向右传播1805比特。部分总和数据路径1603由si和ni进行参数化,si和ni分别被称为内部数据路径级数和内部数据路径块尺寸。注意的是,对ni使用较大的值类似于同时处理多于一个具有较小ni的子行。如上所述,在一些示例中,这些参数的值在设计时固定,其中内部数据路径级的数量si可以采用1到nmax-so范围内的任何值,而内部数据路径块尺寸可以采用到Nmax范围内的任何2的幂。
在这个示例中,图14中所示的部分总和数据路径1603的示意图的操作用于SC解码。在SCL解码的情况下,可以使用L个这个示意图的并行副本,其中L是列表尺寸。在SC解码的情况下,经由通过部分总和数据路径1603的其它副本的相继跳并且经由比特存储器块1605,部分总和数据路径1603从其左侧边缘2601上的ni比特获取输入,这些比特源自外部数据路径1602的右侧边缘2504和内部数据路径1601的左侧边缘2403。经由部分总和数据路径1603的其它副本的相继跳以及经由比特存储器块1605,部分总和数据路径1603在其右侧边缘2602上输出ni个比特,这些比特被提供给内部数据路径1601的左侧边缘2401。
图16图示了根据本发明示例实施例的对于si=2且ni=8的示例的在所提出的极化解码器内核中的部分总和数据路径的示例示意图。
如图16所示,将最底部的个输出比特设置为等于对应的输入比特。但是,获得最顶部的个输出比特作为对应的输入比特与最底部的个输入比特之一的XOR 204。在此,特定比特被识别为使得每个XOR对中的两个比特具有相同的索引模其中每个比特索引在模运算之前将在“0”到ni-1范围内并且在模运算之后在“0”到的范围内。由于部分总和数据路径1603在每个连续的内部列对1702之间的接口处被调用,因此部分总和数据路径1603的XOR 204与在图11的重新布置的图中介绍的附加的XOR 2101对应。
注意的是,在替代布置中,由内部数据路径1601执行的XOR 204的结果可以在它们被用作g函数的输入之后被丢弃,而不是在内部数据路径1601的左侧边缘2403上输出并存储在比特存储器1605内。在这种情况下,必须依靠部分总和数据路径1603而在部分总和的传播1805期间对对应的子行执行所有XOR运算204。这可以通过用完整的XOR图替换图16的个XOR 2101来实现,该完整的XOR图类似于生成器矩阵的图表示201、202、203中最右侧的si个级207。但是,这个方法将需要sini/2个XOR 204,其通常比所提出的方法所采用的个XOR 204多。此外,与所提出的方法的单个XOR 204相比,关键路径将包括si个XOR204。
存储器
所提出的极化解码器内核111使用两种类型的存储器,即,LLR存储器块1604和比特存储器块1605。
1)LLR存储器:
如图17所示,所提出的极化解码器内核111采用LLR存储器1604的Cmax个二维块,即,LLR存储器1至LLR存储器Cmax。从概念上讲,LLR存储器c∈[1,Cmax-1]可以被认为位于索引为c∈[1,Cmax-1]的内部列1702的左侧边缘上的接口处,而LLR存储器Cmax可以被认为驻留在所提出的极化解码器内核111的最右侧的列1702与LLR输入1607之间的接口处。索引为c的存储器块包括单个随机存取存储器(RAM),其宽度为ni个定点LLR并且深度为max(rc-1,max/ni,1)个地址,其中宽度和深度表示存储器块的两个维度。所提出的极化解码器内核111的总LLR存储器需求由个LLR给出。注意的是,不是使用Cmax个不同的RAM在第三RAM维度中容纳Cmax个存储器块,而是替代布置可以通过扩展其深度以替代地在深度维度中容纳所有存储器块来在单个RAM内容纳Cmax个存储器块。但是,这个替代布置将暗示与以下所述和说明书中其他地方所述的那些不同的数据路径接口和控制器1606设计。在一些示例中,假设在的情况下,对于LLR存储器1和LLR存储器Cmax需要更大的宽度以及对控制器1606的修改,以便支持与外部数据路径1602的接口连接。
注意的是,在SCL解码的情况下,具有索引“1”至Cmax-1的LLR存储器块1604必须被复制L次,其可以容纳在RAM维度或宽度维度中。在此,可以使用附加的指针存储器[18]来辅助存储器的这些副本之间的寻址。但是,由于由极化解码器内核111的LLR输入1607提供的LLR对于所有L次解码尝试是公共的,因此仅需要具有索引Cmax的LLR存储器块1604的单个副本。对于图10中L=8SCL解码的情况,LLR存储器块的总容量被量化,不包括指针存储器。由于这些考虑,提供给所提出的极化解码器内核111的LLR输入1607的LLR总是存储在索引为Cmax的LLR存储器块1604中,而与使用多少列C来解码当前内核块长度N无关。作为附加的好处,具有索引Cmax的LLR存储器块1604可以使用与内部数据路径的宽度ni解耦的宽度n1与所提出的极化解码器内核111的LLR输入1607接口连接。以这种方式,LLR可以使用大ni值被快速加载到所提出的极化解码器中,而不管内部数据路径1601如何参数化。
但是,为简单起见,在这个示例中,让我们假设n1=ni。在输入LLR的数量N小于LLR存储器Cmax的宽度ni的情况下,在每个输入LLR之后插入相等数量的零值LLR,然后再将它们提供给存储器的输入,以便占用其全部宽度。注意的是,在所提出的极化解码器内核111的LLR输入1607采用二的补码定点数表示的情况下,具有索引Cmax的LLR存储器块1604可以直接存储所供应的二的补码LLR,而无需由一些示例的所提出的定点数表示引入的附加符号比特。
图17图示了根据本发明示例实施例的所提出的极化解码器内核的内部数据路径、LLR存储器块与控制器之间的交互的示例示意图。
对于si=1且ni=4的情况,单个LLR存储器块1604在图17中例示。如图17所示,每个LLR存储器块1604的RAM具有ni-LLR读取数据端口2701,其在RAM的整个深度上的max(rc-1,max/ni,1)个地址中的特定地址的宽度上输出ni个LLR,其中该特定地址由地址端口2702上提供的输入选择,如图17所示。同样,RAM具有ni-LLR写入端口2703,如图17所示。这个写入端口2703接受可以更新在特定地址的宽度上的ni个LLR的输入,该特定地址由地址端口2704上提供的输入选择,但是,这ni个LLR仅在断言了对应的写使能信号1615的情况下才会被更新。假设可以使用ni个单独的写使能信号1615控制ni个LLR中的每一个是否被单独写入。如果特定硬件RAM实施方式本身不支持此操作,那么写入端口可以由ni个多路复用器1614驱动,ni个多路复用器1614可以被用于将输入LLR与来自读取端口2701的反馈进行多路复用,如图17所示。以这种方式,ni个写使能信号1615可以分别控制由这ni个多路复用器选择的LLR,从而将新的LLR值写入RAM,或者通过写入从读取端口2701获得的对应LLR来维持当前LLR值。
如图17所示,列c内的内部数据路径1601的每个操作使用对应的写使能信号1615从具有索引c+1的LLR存储器块1604中读取,并写入具有索引c的LLR存储器块1604中。同样,外部数据路径1602的每个操作如果C>1就从具有索引c=1的LLR存储器块1604中读取,否则就从具有索引Cmax的LLR存储器块1604中读取。LLR存储器块1604与各种数据路径1601、1602之间的这些接口是专门为避免需要复杂的路由网络而设计的,复杂的路由网络将是允许存储器块中的任何LLR被数据路径1601、1602的输入或输出中的任何一个读取或写入所需的。代替地,设计LLR在存储器块中的布置,使得在LLR存储器块1604与数据路径1601、1602之间仅需要简单的路由网络。同样,在一些示例中,它被设计为使得仅需要来自控制器1606的有限数量的控制信号。更具体而言,在解码过程的每个步骤期间,适当存储器块内特定地址的宽度上的ni个LLR被读取并且适当地被无缝地递送到内部数据路径1601或外部数据路径1602。同样,每当它被操作时,使用由内部数据路径1601无缝地递送的LLR和写入使能信号1615,写入适当存储器块内的特定地址宽度上的ni个LLR的子集。控制器1606仅必须向两个存储器块1604提供适当的读取和写入地址2702、2704。
2)比特存储器:
如图6所示,所提出的极化解码器内核111采用比特存储器1605的Cmax-1个三维块,即,比特存储器1至比特存储器Cmax-1。从概念上讲,可以将比特存储器c视为位于具有对应索引c的列1702的左侧边缘,在具有索引c-1的列1701、1702的接口处。在此,索引为c的比特存储器块1605包括个RAM,其宽度为ni个比特并且深度为个地址,其中RAM、宽度和深度表示存储器块1605的三个维度。所提出的极化解码器内核111的总比特存储需求由个比特给出。
注意的是,在SCL解码的情况下,比特存储器块1605必须被复制L次,它可以被容纳在RAM维度或宽度维度中。在此,附加的指针存储器[18]可以被用于辅助存储器的这些副本之间的寻址。对于图10中的L=8SCL解码的情况,量化了比特存储器块1605的总容量,包括在一些示例中描述的输出比特存储器,但是不包括指针存储器。注意的是,替代布置可以交换RAM与宽度维度的角色,替代地采用具有比特宽度的ni个RAM,但是这将暗示与以下和其它示例中所描述的数据路径接口和控制器1606设计不同的数据路径接口和控制器1606设计。如所提到的,在一些示例中,假设在的情况下,为了支持与外部数据路径1602的接口连接,比特存储器1将需要更大的宽度以及对控制器1606的修改。
图18图示了根据本发明示例实施例的对于si=1且ni=4的情况的所提出的极化解码器内核的内部数据路径、比特存储器块与控制器之间的交互的示例示意图。
对于si=1且ni=4的情况,在图18中例示了单个比特存储器块1605。如图18所示,比特存储器1605的每个块中的每个RAM具有ni比特读取端口2801。这个读取端口2801跨RAM的整个深度的个地址中的特定地址的宽度输出ni个比特。在此,通过地址端口2802上的输入来选择该特定地址,如图18所示。同样,每个RAM具有ni-比特写入端口2803,如图18所示。这个写入端口2803接受可以更新在特定地址的整个宽度上的ni个比特的输入,该特定地址由地址端口2804上提供的输入选择。但是,只有在断言了对应的写使能信号1616时,才更新这ni个比特。假设ni个单独的写使能信号1616可以被用于控制是否单独写入ni个比特中的每一比特。如果特定硬件RAM实施方式本身不支持此操作,那么写入端口2404可以由ni个多路复用器1617驱动,ni个多路复用器1617可以被用于将输入比特与来自读取端口2801的反馈进行多路复用。为简单起见,这个机制在图18中未示出,但是它在图6中示出。以这种方式,ni个写使能信号1616可以单独地控制由这ni个多路复用器1617选择的比特,将新的比特值写入RAM,或者通过写入从读取端口2801获得的对应比特来维持当前比特值。
如图6所示,外部数据路径1602、部分总和数据路径1603的C-2个实例和比特存储器块1605的C-1个实例形成链。更具体而言,比特存储器1驻留在外部数据路径1602与部分总和数据路径1之间,而比特存储器c∈[2,C-2]驻留在部分总和数据路径c-1和部分总和数据路径c之间,而比特存储器C-1终止该链并驻留在部分总和数据路径C-2的右侧。在访问内部列c中的子行1704的解码过程的步骤中,连接到内部数据路径1601的左侧边缘上的比特输入和输出的多路复用器1612被控制为使得它与比特存储器c接口连接。在此,图18详细说明了比特存储器c及其相邻数据路径1601、1602、1603之间的接口。
在比特存储器块1605与各种数据路径1601、1602、1603之间的这些接口是为了避免需要复杂的路由网络而专门设计的,复杂的路由网络是允许存储器块1605中的任何比特被数据路径1601、1602、1603的输入或输出中的任何一个读取或写入所需的。代替地,存储器块1605中的比特的布置被设计为使得在比特存储器块1605与数据路径1601、1602、1603之间仅需要简单的路由网络。同样,在这个示例中,它被设计为使得仅需要来自控制器1606的有限数量的控制信号。更具体而言,特定比特存储器块1605内的个RAM的地址端口全部绑在一起,从而仅要求控制器1606为每个比特存储器块1605生成单个地址2802、2804。此外,部分总和数据路径c的左侧边缘上的比特输入2601和内部数据路径1601的左侧边缘上的比特输入2401均基于简单的按宽度的方式从比特存储器c读取,如下面详细描述的。类似地,内部数据路径1601的左侧边缘上的比特输出2403基于按宽度的方式写入比特存储器c。相比之下,部分总和数据路径c-1右侧边缘上的比特输出2602将基于简单的按RAM的方式写入比特存储器c,如下面详细描述的。同样,外部数据路径1602的右侧边缘上的比特输出2504将基于按RAM的方式写入比特存储器1。在一些替代示例中,按宽度的比特存储器访问可以被按RAM的访问代替,反之亦然,但是这意味着与以下和其它地方所描述的数据路径接口和控制器1606设计不同的数据路径接口和控制器1606设计。
对于比特存储器块1605和数据路径之间的按宽度和按RAM的接口,数据路径的输入或输出中具有位置l∈[0,ni-1]的比特从存储器块1605中的RAM中的特定RAM的深度内的特定地址的宽度内的特定位置被读取或被写入该特定位置。存储器块1605内的这个位置可以由宽度坐标wl∈[0,ni-1]、深度坐标和RAM坐标来识别。如上面所提到的,每个存储器块1605中的比特的布置以及所提出的极化解码器内核111的操作使得特定比特存储器块1605内的个RAM的地址端口2802、2804可以全部绑在一起。这意味着,对于按宽度和按RAM的接口,一起被访问的所有ni个比特都将具有相同的深度坐标,即,对于所有l∈[0,ni-1],dl都将具有相同的值。
此外,在按宽度的数据路径接口中具有位置l∈[0,ni-1]的比特仅访问具有对应宽度坐标wl=I的比特存储器块1605中的位置。但是,数据路径接口中的这个比特可能需要在极化解码过程期间的不同时间访问任何可能的RAM坐标因此,多路复用器2805是向按宽度的数据路径输入提供第l比特所需的唯一电路系统。
更具体而言,这个多路复用器2805在由个RAM中的每一个RAM的读取端口2801中的第l个位置提供的比特之间进行选择,如图18所示。在此,在一些示例中,要求控制器1606向比特存储器块1605提供ni个RAM读取坐标,其可以被解码以便向这ni个多路复用器2805的每一个提供单独的控制信号。相比之下,对于按宽度的数据路径输出的第l比特不需要附加的电路系统,因为这个比特可以提供给个RAM中的每一个的写入端口中的第l个位置并且写使能信号1616可以用于控制这些RAM中的哪个RAM被更新。在此,在一些示例中,要求控制器1606将ni个RAM写入坐标提供给比特存储器块1605,可以对这些RAM写入坐标进行解码以便断言写使能信号1616的ni。
此外,在数据路径的按RAM输出中具有位置l∈[0,ni-1]的比特仅被写入存储器块1605中具有对应RAM坐标的位置。但是,在极化解码过程期间的不同时间,可能需要将这个比特写入任何可能的宽度坐标wl∈[0,ni-1]。因此,如图18所示,多路复用器2806是向RAM的个写入端口2803中的每一个提供ni个输入中的每一个所需的唯一电路系统。这是因为,具有RAM坐标rl的RAM的每个输入仅从具有满足的位置l∈[0,ni-1]的数据路径输出的子集中选择。在此,可以要求控制器1606向存储器块1605提供ni个宽度写入坐标,可以将其解码以断言写使能信号1616的ni,以及为ni个多路复用器2806的对应子集提供控制信号。
如上所述,在访问内部列c中的子行1704的解码过程的步骤中,比特的特定选择从具有索引c′∈[1,c-1]的每个比特存储器块1605按宽度读取,通过具有索引c′的部分总和数据路径1603传递并按RAM写入具有索引c′+1的比特存储器块1605。注意的是,比特存储器c′中通过部分总和数据路径c′-1按RAM写入的位置的子集也将由部分总和数据路径c′按宽度读取。因此,具有在2到c′-1范围内的索引的比特存储器以透明模式被操作,使得在解码过程的同一步骤中,由写入操作提供的这些比特值变得可用于读取操作。更具体而言,作为从比特存储器c′中的每个RAM的读取端口到其写入端口1617的反馈的补充,提供了旁路1610,使得由部分总和数据路径c′-1提供给写入端口2803的比特可以直接馈送到读取端口2801。如图18所示,提供多路复用器1610以在由比特存储器c′的读取端口2801提供的输出与由部分总和数据路径c′-1提供的输入之间进行选择。这些多路复用器可以由控制对应写入端口的操作的相同写使能信号1616驱动。这允许比特通过本文描述的部分总和数据路径1603和比特存储器块1605的链从比特存储器1传播1805,并被递送到内部数据路径1601的左侧边缘上的比特输入2401。在此,控制器1606向比特存储器块1605提供控制信号,以确保正确的比特在部分总和数据路径1603中一起被XOR 2101。在内部数据路径1601操作完成之后,由在其左侧边缘上的比特输出2403提供的比特被写入具有索引c的比特存储器块1605。在此,在到写入端口2803的输入处提供多路复用器1613,以在由部分总和数据路径c′-1与内部数据路径1601提供的输出之间进行选择。注意的是,这些多路复用器1613位于从其取得透明旁路1610的点之后,以便防止产生无穷无尽的反馈回路。
控制器
如前所述,所提出的极化解码过程包括总共个步骤。在处理1806具有索引c的内部列1702中的子行1704的每个步骤期间,要求控制器1606向具有索引1至c的比特存储器块1605提供读控制信号。此外,要求控制器1606在处理1806具有索引c∈[1,C-2]的内部列1702中的子行1704时向LLR存储器c+1或者在处理1806内部列C-1的子行1704时向LLR存储器Cmax提供读控制信号。此外,当处理1806具有索引c的内部列1702中的子行1704时,要求控制器1606向具有索引2至c的比特存储器块1605以及向具有索引c的LLR存储器块1604提供写控制信号。在处理1804具有索引c=0的外部列1701中的行1703的每个步骤期间,要求控制器1606向比特存储器1提供写控制信号,并且如果C>1就向LLR存储器1或者如果C=1就向LLR存储器Cmax提供读控制信号。控制器1606被设计为使得每个存储器写入操作将对应的比特或LLR无缝地布置在存储器中,使得它们随后可以被无缝地读取,而不需要复杂的互连网络。
除了在图8的流程图中使用的各种信号之外,控制器1606的操作还取决于被称为第一索引jc∈[0,N-1]的信号。这表示极化码图201、202、203的属于列c中当前正被访问的子行1704的最顶部连接的垂直索引,其中对于最顶部的行1703中的最顶部的子行1704jc=0。该第一索引可以根据jc=ycrc+s,获得,
其中yc∈[0,N/rc-1]是列c中当前正被访问的行1703的索引,并且s∈[0,max(rc/ni,1)-1]是该行1703中正被访问的子行1704的索引。在通过相继的比特存储器块1605和部分总和数据路径1603的副本传播1805个部分总和比特的处理期间,与列c′∈[1,c-1]中的每一个相关联的第一索引根据下式获得:
其中是对当前列c中的当前行1703的访问的索引。
如先前在一些示例中所描述的,对LLR存储器块1604的读取和写入访问都可以按宽度执行。LLR存储器块c的输入或输出中的位置l∈[0,ni-1]访问存储在特定深度dl和宽度wl坐标处的LLR,其中在所有情况下wl=l。
如本文在一些示例中所描述的,假设提供电路以将来自所提出的极化解码器内核111的对应输入1607的LLR加载1802到LLR存储器Cmax中。要求控制器1606操作这个加载电路,使得当内部数据路径1601对列C-1中的特定子行1704执行处理1806时,它可以使用如下深度坐标读取来自LLR存储器Cmax的对应LLR:
此外,当内部数据路径1601或外部数据路径1602对于列c∈[0,C-2]中的特定子行1704执行处理1804、1806时,它使用如下深度坐标从LLR存储器c+1进行读取:
相比之下,当内部数据路径1601对列c中的特定子行1704执行处理1806时,它使用如下深度坐标写入LLR存储器c:
在此,可以观察到,宽度坐标wl=l与第一索引jc无关,因此可以根据在一些示例中描述的按宽度的操作被硬连线。相比之下,深度dl坐标必须由控制器1606根据第一索引jc来控制。但是,注意的是,深度坐标dl与比特索引l无关,仅要求控制器1606向存储器块1604提供单个地址2702、2704。注意的是,如果断言了在对应位置l∈[0,ni-1]的写使能信号1615,那么在写入端口的位置l∈[0,ni-1]中提供的LLR仅被写到LLR存储器块1604,如一些示例中所描述的。
如一些示例中所描述的,由内部数据路径1601对比特存储器块1605进行的读取和写入访问均按宽度进行。对于这些按宽度的存储器访问,比特存储器c的输入或输出中的位置l∈[0,ni-1]访问存储在根据下式的特定深度dl、RAM rl和宽度ωl坐标处存储的比特:
wl=l.。
在此,可以观察到,宽度坐标ωl=l与第一索引jc无关,因此可以根据在一些示例中描述的按宽度的操作被硬连线。相比之下,深度dl和RAM rl坐标必须由控制器1606根据第一索引jc来控制。但是,注意的是,深度坐标dl与比特索引l无关,仅要求控制器1606向存储器块提供单个地址2802、2804。注意的是,在ni>rc的一些情况下,上述方法可能导致输入比特中的两个或更多个试图写入比特存储器块1605中的相同位置。在这种情况下,具有最小索引l的比特应当被写入存储器,而其它竞争比特可以被安全地丢弃。
如一些示例中所描述的,由外部数据路径1602和部分总和数据路径1603对比特存储器块1605的写访问是按RAM执行的。对于这些按RAM的存储器访问,比特存储器c+1的输入中的位置l∈[0,ni-1]访问存储在根据下式的特定深度dl、RAM rl和宽度wl坐标处的比特:
在此,可以观察到,RAM坐标与第一索引jc无关,因此可以根据在一些示例中描述的按RAM的操作而被硬连线。相比之下,深度dl和宽度wl坐标必须由控制器1606根据第一索引jc来控制。但是,注意的是,深度坐标dl与比特索引l无关,仅要求控制器1606向存储器块提供单个地址2802、2804。上述控制存储器读取和写入操作的方法导致存储器块1604、1605内的LLR和比特的特征布置。
图19至图23提供了在完成解码过程之后这个特征布置的各种示例。每个图都图示了提供在对应存储器块1604、1605中的每个RAM、深度和宽度坐标处存储的LLR或比特的极化图201、202、203中两个相邻列1701、1702之间的连接的索引j∈[0,N-1]。
图19图示了根据本发明示例实施例的对于N=128、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后LLR的内容的示例。
图20图示了根据本发明示例实施例的对于N=64、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后LLR和比特存储器的内容的示例。
图21图示了根据本发明示例实施例的对于N=32、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图22图示了根据本发明示例实施例的对于N=16、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
图23图示了根据本发明示例实施例的对于N=8、Nmax=128、so=1、si=2且ni=8的情况在解码过程完成之后的LLR和比特存储器的内容的示例。
现在参考图24,图示了根据本发明的一些示例实施例的可以被用来实现极化编码的典型计算系统2400。这种类型的计算系统可以用在无线通信单元中。相关领域的技术人员还将认识到如何使用其它计算机系统或体系架构来实现本发明。计算系统2400可以表示例如台式计算机、膝上型计算机或笔记本计算机、手持式计算设备(PDA、蜂窝电话、掌上电脑等)、大型机、服务器、客户端或对于给定的应用或环境可能是期望或适当的任何其它类型的特殊或通用计算设备。计算系统2400可以包括一个或多个处理器,诸如处理器2404。处理器2404可以使用诸如例如微处理器、微控制器或其它控制逻辑的通用或专用处理引擎来实现。在这个示例中,处理器2404连接到总线2402或其它通信介质。在一些示例中,计算系统2400可以是包括存储在其中的用于执行极化编码的可执行代码的非暂态有形计算机程序产品。
计算系统2400还可以包括主存储器2408,诸如随机存取存储器(RAM)或其它动态存储器,用于存储将由处理器2404执行的信息和指令。主存储器2408还可以用于在执行要由处理器2404执行的指令期间存储临时变量或其它中间信息。计算系统2400同样可以包括耦合到总线2402的只读存储器(ROM)或其它静态存储设备,用于存储用于处理器2404的静态信息和指令。
计算系统2400还可以包括信息存储系统2410,信息存储系统2410可以包括例如介质驱动器2412和可移动存储接口2420。介质驱动器2412可以包括支持固定或可移动存储介质的驱动器或其它机制,诸如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、光盘(CD)或数字视频驱动器(DVD)读或写驱动器(R或RW)或其它可移动或固定介质驱动器。存储介质2418可以包括例如硬盘、软盘、磁带、光盘、CD或DVD、或由介质驱动器2412读取和写入的其它固定或可移动介质。如这些示例所示,存储介质2418可以包括其中存储有特定计算机软件或数据的计算机可读存储介质。
在替代实施例中,信息存储系统2410可以包括用于允许将计算机程序或其它指令或数据加载到计算系统2400中的其它类似部件。此类部件可以包括例如可移动存储单元2422和接口2420,诸如程序盒和盒接口、可移动存储器(例如,闪存或其它可移动存储器模块)和存储槽、以及允许将软件和数据从可移动存储单元2418传送到计算系统2400的其它可移动存储单元2422和接口2420。
计算系统2400还可以包括通信接口2424。通信接口2424可以用于允许软件和数据在计算系统2400与外部设备之间传送。通信接口2424的示例可以包括调制解调器、网络接口(诸如以太网或其它NIC卡)、通信端口(诸如例如通用串行总线(USB)端口)、PCMCIA槽和卡,等等。经由通信接口2424传送的软件和数据的形式为信号,该信号可以是电子信号、电磁信号、光信号或能够被通信接口2424接收的其它信号。这些信号经由信道2428被提供给通信接口2424。这个信道2428可以携带信号,并且可以使用无线介质、电线或线缆、光纤或其它通信介质来实现。信道的一些示例包括电话线、蜂窝电话链路、RF链路、网络接口、局域网或广域网以及其它通信信道。
在本文档中,术语“计算机程序产品”、“计算机可读介质”等一般可以用来指代诸如例如存储器2408、存储设备2418或存储单元2422的介质。这些和其它形式的计算机可读介质可以存储一个或多个指令以供处理器2404使用,以使处理器执行指定的操作。当这些一般被称为“计算机程序代码”(可以以计算机程序或其它分组的形式被分组)的指令被执行时,使得计算机系统2400能够执行本发明的实施例的功能。注意的是,代码可以直接使处理器执行指定的操作、被编译为执行指定的操作,和/或与其它软件、硬件和/或固件元件(例如,用于执行标准函数的库)组合以执行指定的操作。
在使用软件实现元素的实施例中,可以使用例如可移动存储驱动器2422、驱动器2412或通信接口2424将软件存储在计算机可读介质中并加载到计算系统2400中。当由处理器2404执行时,控制逻辑(在这个示例中为软件指令或计算机程序代码)使处理器2404执行本文所述的本发明的功能。
在前述说明书中,已经参考本发明的实施例的具体示例描述了本发明。但是,将明显的是,在不脱离所附权利要求阐述的本发明的范围的情况下,可以在其中进行各种修改和改变,并且权利要求不限于上述具体示例。
如本文讨论的连接可以是适于例如经由中间设备从相应节点、单元或设备或向相应节点、单元或设备传送信号的任何类型的连接。因而,除非另有暗示或说明,否则连接可以例如是直接连接或间接连接。可以参考单个连接、多个连接、单向连接或双向连接来图示或描述连接。但是,不同的实施例可以改变连接的实施方式。例如,可以使用分开的单向连接而不是双向连接,反之亦然。而且,多个连接可以被单个连接代替,该单个连接串行地或以时分复用的方式传送多个信号。同样,可以将携带多个信号的单个连接分离为携带这些信号的子集的各种不同的连接。因此,存在用于传送信号的许多选项。
本领域技术人员将认识到,本文描述的体系架构仅仅是示例性的,并且实际上实现相同功能的许多其它体系架构可以被实现。
有效地“关联”用于实现相同功能的部件的任何布置,从而实现期望的功能。因此,本文中被组合以实现特定功能的任何两个部件可以被视为彼此“关联”,使得实现期望的功能,而不管体系架构或中间部件如何。同样,如此关联的任何两个部件也可以被视为彼此“可操作地连接”或“可操作地耦合”以实现期望的功能。
此外,本领域技术人员将认识到,上述操作之间的边界仅仅是示例性的。可以将多个操作组合成单个操作,可以将单个操作分布在附加操作中,并且可以在时间上至少部分重叠地执行操作。而且,替代实施例可以包括特定操作的多个实例,并且在各种其它实施例中可以改变操作的次序。
本文参考包括例如被配置为执行极化解码器的功能的微处理器的集成电路设备来描述本发明。但是,将认识到的是,本发明不限于这样的集成电路设备,并且可以等同地应用于包括任何替代类型的操作功能的集成电路设备。仅仅作为示例,包括替代类型的操作功能的这种集成电路设备的示例可以包括专用集成电路(ASIC)设备、现场可编程门阵列(FPGA)设备或与其它部件集成等。此外,因为本发明的所示实施例大部分可以使用本领域技术人员已知的电子部件和电路来实现,所以没有比认为对于理解和认识本发明的底层概念所需的更详细地解释细节,并且为了不混淆或分散本发明的教导。可替代地,电路和/或部件示例可以被实现为以合适的方式彼此互连的任何数量的分离的集成电路或分离的设备。
又例如,示例或其部分可以被实现为诸如以任何适当类型的硬件描述语言的物理电路系统或可转换成物理电路系统的逻辑表示的软件或代码表示。
而且,本发明不限于以非可编程硬件实现的物理设备或单元,而是还可以应用于能够通过根据合适的程序代码进行操作来执行期望的极化编码的可编程设备或单元,诸如小型计算机、个人计算机、记事本、个人数字助理、电子游戏、汽车和其它嵌入式系统、蜂窝电话以及其它各种无线设备,这些在本申请中通常称为“计算机系统”。
但是,其它修改、变化和替代也是可能的。因而,说明书和附图应被认为是说明性的而不是限制性的。
在权利要求中,放在括号之间的任何附图标记不应当被解释为对权利要求的限制。词“包括”并不排除权利要求中列出的元素或步骤之外的其它元素或步骤的存在。此外,如本文所使用的,术语“一”或“一个”被定义为一个或多个。而且,在权利要求中使用诸如“至少一个”和“一个或多个”之类的介绍性短语不应当被解释为暗示由不定冠词“一”或“一个”介绍的另一个权利要求元素将包含这样介绍的权利要求元素的任何特定权利要求限制为仅包含一个这样的元素的发明,即使同一个权利要求包括介绍性短语“一个或多个”或“至少一个”以及不定冠词(诸如“一”或“一个”)。对于定冠词的使用也同样适用。除非另有说明,否则诸如“第一”和“第二”之类的术语用于任意区分此类术语描述的元素。因此,这些术语不一定旨在指示此类元素的时间或其它优先顺序。在互不相同的权利要求中记载某些措施的事实并不表示不能有利地使用这些措施的组合。
参考文献
[1]E.Arikan,"Channel polarization:A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,"IEEETransactions on Information Theory,第55卷,第7期,第3051-3073页,2009年7月.
[2]K.Niu和K.Chen,"CRC-aided decoding of polar codes,"IEEECommunications Letters,第16卷,第10期,第1668-1671页,2012年10月.
[3]Huawei,HiSilicon,"Polar code construction for NR,"in 3GPP TSG RANWG1 Meeting#86bis,Lisbon,Portugal,2016年10月,R1-1608862.
[4]Huawei,HiSilicon,"Evaluation of channel coding schemes for controlchannel,"in 3GPP TSG RAN WG1 Meeting#86bis,Lisbon,Portugal,2016年10月,R1-1608863.
[5]CATT,"Polar codes design for eMBB control channel,"in 3GPP TSG RANWG1 AH NR Meeting,Spokane,USA,2017年1月,R1-1700242.
[6]ZTE,ZTE Microelectronics,"Rate matching of polar codes for eMBB,"in 3GPP TSG RAN WG1 Meeting#88,Athens,Greece,2017年2月,R1-1701602.
[7]I.Tal和A.Vardy,"List decoding of polar codes,"in 2011 IEEEInternational Symposium on Information Theory Proceedings,2011年7月,第1-5页.
[8]A.Balatsoukas-Stimming,M.B.Parizi和A.Burg,"Llr-based successivecancellation list decoding of polar codes,"IEEE Transactions on SignalProcessing,第63卷,第19期,第5165-5179页,2015年10月.
[9]K.Niu和K.Chen,"Crc-aided decoding of polar codes,"IEEECommunications Letters,第16卷,第10期,第1668-1671页,2012年10月.
[10]G.Sarkis,P.Giard,A.Vardy,C.Thibeault和W.J.Gross,"Fast polardecoders:Algorithm and implementation,"IEEE Journal on Selected Areas inCommunications,第32卷,第5期,第946-957页,2014年5月.
[11]P.Giard,A.Balatsoukas-Stimming,G.Sarkis,C.Thibeault和W.J.Gross,"Fast low-complexity decoders for low-rate polar codes,"Journal of SignalProcessing Systems,第1-11页,2016年.[在线].可在:http://dx.doi.org/10.1007/ s11265-016-1173-v获得
[12]P.Giard,G.Sarkis,C.Thibeault和W.J.Gross,"237gbit/s unrolledhardware polar decoder,"Electronics Letters,第51卷,第10期,第762-763页,2015年.
[13]P.Giard,G.Sarkis,C.Thibeault和W.J.Gross,"Multi-mode unrolledarchitectures for polar decoders,"IEEE Transactions on Circuits and SystemsI:Regular Papers,第63卷,第9期,第1443-1453页,2016年9月.
[14]C.Leroux,I.Tal,A.Vardy和W.J.Gross,"Hardware architectures forsuccessive cancellation decoding of polar codes,"in 2011 IEEE InternationalConference on Acoustics,Speech and Signal Processing(ICASSP),2011年5月,第1665-1668页.
[15]C.Leroux,A.J.Raymond,G.Sarkis和W.J.Gross,"A semi-parallelsuccessive-cancellation decoder for polar codes,"IEEE Transactions on SignalProcessing,第61卷,第2期,第289-299页,2013年1月.
[16]A.Mishra,A.J.Raymond,L.G.Amaru,G.Sarkis,C.Leroux,P.Meinerzhagen,A.Burg和W.J.Gross,"A successive cancellation decoder asic for a 1024-bitpolar code in 180nm cmos,"in 2012 IEEE Asian Solid State Circuits Conference(A-SSCC),2012年11月,第205-208页.
[17]Y.Fan和C.y.Tsui,"An efficient partial-sum network architecturefor semi-parallel polar codes decoder implementation,"IEEE Transactions onSignal Processing,第62卷,第12期,第3165-3179页,2014年6月.
[18]A.Balatsoukas-Stimming,A.J.Raymond,W.J.Gross和A.Burg,"Hardwarearchitecture for list successive cancellation decoding of polar codes,"IEEETransactions on Circuits and Systems II:Express Briefs,第61卷,第8期,第609-613页,2014年8月.
[19]J.Lin和Z.Yan,"An efficient list decoder architecture for polarcodes,"IEEE Transactions on Very Large Scale Integration(VLSI)Systems,第23卷,第11期,第2508-2518页,2015年11月.
[20]Y.Fan,J.Chen,C.Xia,C.y.Tsui,J.Jin,H.Shen和B.Li,"Low-latency listdecoding of polar codes with double thresholding,"in 2015 IEEE InternationalConference on Acoustics,Speech and Signal Processing(ICASSP),2015年4月,第1042-1046页.
[21]J.Lin,C.Xiong和Z.Yan,"A high throughput list decoder architecturefor polar codes,"IEEE Transactions on Very Large Scale Integration(VLSI)Systems,第24卷,第6期,第2378-2391页,2016年6月.
[22]Y.Fan,C.Xia,J.Chen,C.Y.Tsui,J.Jin,H.Shen和B.Li,"A low-latencylist successive-cancellation decoding implementation for polar codes,"IEEEJournal on Selected Areas in Communications,第34卷,第2期,第303-317页,2016年2月.
[23]G.Berhault,C.Leroux,C.Jego和D.Dallet,"Hardware implementation ofa soft cancellation decoder for polar codes,"in2015 Conference on Design andArchitectures for Signal and Image Processing(DASIP),2015年9月,第1-8页.
[24]G.Sarkis,I.Tal,P.Giard,A.Vardy,C.Thibeault和W.J.Gross,"Flexibleand low-complexity encoding and decoding of systematic polar codes,"IEEETransactions on Communications,第64卷,第7期,第2732-2745页,2016年7月.
[25]C.Zhang,B.Yuan和K.K.Parhi,"Reduced-latency sc polar decoderarchitectures,"in 2012IEEE International Conference on Communications(ICC),2012年6月,第3471-3475页.
[26]B.Yuan和K.K.Parhi,"Low-latency successive-cancellation polardecoder architectures using 2-bit decoding,"IEEE Transactions on Circuits andSystems I:Regular Papers,第61卷,第4期,第1241-1254页,2014年4月.
[27]O.Dizdar和E.Arkan,"A high-throughput energy-efficientimplementation of successive cancellation decoder for polar codes usingcombinational logic,"IEEE Transactions on Circuits and Systems I:RegularPapers,第63卷,第3期,第436-447页,2016年3月.
[28]C.Xiong,J.Lin和Z.Yan,"A multimode area-efficient scl polardecoder,"IEEE Transactions on Very Large Scale Integration(VLSI)Systems,第24卷,第12期,第3499-3512页,2016年12月.
[29]C.Kim,H.Yun,S.Ajaz和H.Lee,"High-throughput low-complexitysuccessive-cancellation polar decoder architecture using ones complementscheme,"Journal of Semiconductor Technology and Science,第15卷,第3期,第427-435页,2015年.
[30]A.Pamuk和E.Arkan,"A two phase successive cancellation decoderarchitecture for polar codes,"in 2013 IEEE International Symposium onInformation Theory,2013年7月,第957-961页.
[31]X.Liang,J.Yang,C.Zhang,W.Song和X.You,"Hardware efficient and low-latency ca-scl decoder based on distributed sorting,"in 2016IEEE GlobalCommunications Conference(GLOBECOM),2016年12月,第1-6页.
[32]C.Xiong,J.Lin和Z.Yan,"Symbol-decision successive cancellationlist decoder for polar codes,"IEEE Transactions on Signal Processing,第64卷,第3期,第675-687页,2016年2月.
[33]B.Yuan和K.K.Parhi,"Low-latency successive-cancellation listdecoders for polar codes with multibit decision,"IEEE Transactions on VeryLarge Scale Integration(VLSI)Systems,第23卷,第10期,第2268-2280页,2015年10月.
[24]C.Zhang和K.K.Parhi,"Low-latency sequential and overlappedarchitectures for successive cancellation polar decoder,"IEEE Transactions onSignal Processing,第61卷,第10期,第2429-2441页,2013年5月.
[35]T.Che和G.S.Choi,"An efficient partial sums generator forconstituent code based successive cancellation decoding of polar codes,"CoRR,第abs/1611.09452卷,2016年.[在线].可在:http://arxiv.org/abs/1611.09452获得
[36]J.Sha,X.Liu,Z.Wang和X.Zeng,"A memory efficient belief propagationdecoder for polar codes,"China Communications,第12卷,第5期,第34-41页,2015年5月.
Claims (20)
1.一种极化解码器内核(111),被配置为:
接收来自块尺寸为N的软内核编码块(113)的一个或多个软比特;以及
输出来自块尺寸为N的恢复的内核信息块(114)的一个或多个恢复的内核信息比特;
其中极化解码器内核(111)的特征在于至少两个相继的内核信息块具有根据块而不同的内核块尺寸N,并且所述极化解码器内核(111)包括将极化码图(201、202、203)分解成取决于内核块尺寸N的一定数量的列(1701、1702)的分解,其中至少一个列包括取决于内核块尺寸N而选择的一定数量的级。
2.如权利要求1所述的极化解码器内核(111),其中极化码图(201、202、203)被分解成任意数量的C个列,并且极化码图(201、202、203)中的多个级(207),即n=log2(N)个级,分布在这些列之间,以及
其中极化解码器内核(111)被配置为将极化码图(201、202、203)中的所述多个级(207)中的数个级分组成任意数量的列(1701、1702),其中所述任意数量在“1”至“Cmax”的范围内。
3.如权利要求2所述的极化解码器内核(111),其中,基于最大块尺寸Nmax、容纳在外部列(1701)中的最大级数so以及容纳在每一个内部列(1702)中的最大级数si来选择最大列数Cmax,
其中,取决于当前块尺寸N、容纳在外部列(1701)中的最大级数so和容纳在每个内部列(1702)中的最大级数si来选择列(1701、1702)的数量C,
并且其中,取决于当前块尺寸N、容纳在外部列(1701)中的最大级数so和容纳在每个内部列(1702)中的最大级数si而在极化解码过程中选择每个列(1701、1702)中的级(207)的数量。
4.如前述权利要求3所述的极化解码器内核(111),其中外部列(1701)包括s0=so个级(207),并且其余的n-so个级分布在C-1个内部列之间,其中so是外部列中的最大级数。
5.如权利要求4所述的极化解码器内核(111),其中极化码图(201、202、203)被分解成个列,并且最右侧的具有索引C-1的内部列包括sC-1=n-so-(C-2)si个级(207),并且所有其它内部列(1702)包括sc=si个级(207),其中sc是具有索引c的列中的级数。
6.如权利要求1或2所述的极化解码器内核(111),其中每个列(1701、1702)包括多个行,所述多个行能够使用向量表达,其中特定列中的行数Rc由Rc=N/rc给出,其中rc是该列的子码基数,以及其中每一行包括子图,该子图包括水平对准的在它的行边缘上的rc个连续连接和sc个级(207),以及其中内部列中的每个行(1703)被分解成彼此之间没有连接的一个或多个单独的子行(1704)。
7.如权利要求6所述的极化解码器内核(111),其中,与对每个内部列中的每一行(1703)的每次访问相关联的计算分布在解码过程的多个连续步骤上,所述多个连续步骤中的每个连续步骤针对内部列中的行(1703)中的不同的单独子行(1704)执行计算。
8.如权利要求6所述的极化解码器内核(111),其中每个内部列(1702)中被分解的单独子行(1704)的块尺寸被选择为nc=min(rc,ni),其中ni指定采用到Nmax范围内的任何2的幂的值的最大内部子行块尺寸。
9.如权利要求2所述的极化解码器内核(111),其中外部列(1701)中的每一行(1703)由解码过程访问一次,而内部列(1702)中的每一行(1703)由解码过程访问次,其中sc是该内部列(1702)中的级数。
10.如权利要求1或2所述的极化解码器内核(111),其中极化解码器内核(111)还包括控制器(1606)、多个软比特存储器块(1604)和内部数据路径(1601)、外部数据路径(1602)、一个或多个部分总和数据路径(1603)和一个或多个比特存储器块(1605)。
11.如权利要求10所述的极化解码器内核(111),其中控制器(1606)将外部列(1701)中的最大级数so配置为采用“0”到nmax=log2(Nmax)范围内的任何值,并将每个内部列(1702)的最大级数si配置为采用1到nmax-so范围内的任何值。
12.如权利要求10所述的极化解码器内核(111),其中外部数据路径(1602)驻留在外部列(1701)内,以及
其中内部数据路径(1601)在极化解码过程的不同步骤期间驻留在具有不同索引c∈[1,C-1]的不同内部列(1702)中,以及
其中具有索引c∈[1,C-2]的部分总和数据路径(1603)驻留在极化码图(201、202、203)的具有对应索引c的内部列(1702)中,以及
其中内部数据路径(1601)、外部数据路径(1602)和部分总和数据路径(1603)中的每一个的输入从驻留在当前列任一侧的一个或另一个边缘上的接口处的所述多个软比特存储器块(1604)之一和/或一个或多个比特存储器块(1605)之一读取,以及
其中内部数据路径(1601)、外部数据路径(1602)和部分总和数据路径(1603)的被选择的输出被写入驻留在当前列的任一侧上的接口处的所述多个软比特存储器块(1604)之一和/或所述一个或多个比特存储器块(1605)之一。
13.如权利要求10所述的极化解码器内核(111),其中内部数据路径(1601)或者外部数据路径(1602)被指引以在极化解码过程的每个步骤中处理一列的一行的一个子行,以及其中,每当内部数据路径被指引以处理对具有索引“c”的内部列中一行的一个子行的第二次或后续访问时,具有索引“1”至“c-1”的部分总和数据路径各自被指引以处理它们的对应列中一行的一个子行。
14.如权利要求1或2所述的极化解码器内核(111),其中极化解码器内核(111)被配置为在相继抵消的基础上进行操作,其中与极化码图(201、202、203)中的外部列(1701)的处理并发地从极化解码器内核(111)输出(1803)恢复的内核信息块(114),并且一次输出个比特。
15.如权利要求10所述的极化解码器内核(111),包括被并行使用以支持相继抵消列表解码过程的内部数据路径(1601)、一个或多个部分总和数据路径(1603)、一个或多个比特存储器块(1605)和软比特存储器块(1604)的多个并行副本,即L个并行副本。
16.如权利要求2所述的极化解码器内核(111),其中,在当前列中的第一级的数量sc比内部列中的最大级数si小时,并且以下中的至少一项被使用:通过禁用极化码图(2405)的最左侧的级中的XOR逻辑门(204)来减少极化码图(2405)中的第二级的数量以匹配第一级的数量sc;通过使用多路复用器(2408)绕过多个处理单元(2407)的最左侧级中的一个或多个处理单元(2201、2407)来减少所述多个处理单元(2407)中的第二级的数量以匹配第一级的数量sc。
17.如权利要求4所述的极化解码器内核(111),还包括多个第一多路复用器(1613),所述多个第一多路复用器(1613)在到具有索引c'的比特存储器块(1605)的相应写入端口(2803)的输入处提供,其中所述多个第一多路复用器(1613)由控制器(1606)单独控制以在由具有索引c′-1的部分总和数据路径和内部数据路径(1601)提供的输出之间进行选择,以及所述极化解码器内核(111)还包括多个第二多路复用器(1610),所述多个第二多路复用器(1610)在具有索引c'的部分总和数据路径的输入处提供,其中所述多个第二多路复用器(1610)由控制器(1606)单独控制以在由具有索引c'的一个或多个比特存储器块(1605)中的比特存储器块和具有所述索引c'-1的部分总和数据路径提供的输出之间进行选择。
18.一种通信单元,包括极化解码器内核(111),所述极化解码器内核(111)被配置为:
接收来自具有块尺寸N的软内核编码块(113)的一个或多个软比特;以及
输出来自具有块尺寸N的恢复的内核信息块(114)的一个或多个恢复的内核信息比特;
其中极化解码器内核(111)的特征在于,至少两个相继的内核信息块具有根据块而不同的内核块尺寸N,并且所述极化解码器内核(111)包括将极化码图(201、202、203)分解成取决于内核块尺寸N的一定数量的列(1701、1702)的分解,其中至少一个列包括取决于内核块尺寸N而选择的一定数量的级。
19.一种用于无线通信单元的集成电路,所述集成电路包括极化解码器内核(111),所述极化解码器内核(111)被配置为:
接收来自块尺寸为N的软内核编码块(113)的一个或多个软比特;以及
输出来自块尺寸为N的恢复的内核信息块(114)的一个或多个恢复的内核信息比特;
其中极化解码器内核(111)的特征在于至少两个相继的内核信息块具有根据块而不同的内核块尺寸N,并且所述极化解码器内核(111)包括将极化码图(201、202、203)分解成取决于内核块尺寸N的一定数量的列(1701、1702)的分解,其中至少一个列包括取决于内核块尺寸N而选择的一定数量的级。
20.一种极化编码的方法,其特征在于在极化解码器内核(111)处:
将极化码图(201、202、203)分解成取决于内核块尺寸N的一定数量的列(1701、1702),其中至少一个列包括取决于内核块尺寸N而选择的一定数量的级,并且其中至少两个相继的内核信息块具有根据块而不同的内核块尺寸N以及所述极化解码器内核(111);
接收来自块尺寸为N的软内核编码块(113)的一个或多个软比特;
处理编码比特;以及
输出来自块尺寸为N的恢复的内核信息块(114)的一个或多个恢复的内核信息比特。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1709505.0A GB2563419B (en) | 2017-06-15 | 2017-06-15 | Polar decoder, communication unit, integrated circuit and method therefor |
GB1709505.0 | 2017-06-15 | ||
PCT/EP2018/065538 WO2018229068A1 (en) | 2017-06-15 | 2018-06-12 | Low latency polar coding and decoding by merging of stages of the polar code graph |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110741557A CN110741557A (zh) | 2020-01-31 |
CN110741557B true CN110741557B (zh) | 2023-08-22 |
Family
ID=59462250
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039343.5A Active CN110741557B (zh) | 2017-06-15 | 2018-06-12 | 通过合并极化码图的级的低延迟极化编码和解码 |
CN201880039349.2A Active CN110771047B (zh) | 2017-06-15 | 2018-06-12 | 具有f功能和g功能的llr域计算的极性解码器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039349.2A Active CN110771047B (zh) | 2017-06-15 | 2018-06-12 | 具有f功能和g功能的llr域计算的极性解码器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11165448B2 (zh) |
EP (2) | EP3639376B1 (zh) |
CN (2) | CN110741557B (zh) |
GB (2) | GB2563419B (zh) |
WO (2) | WO2018229068A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109412607B (zh) * | 2017-08-16 | 2022-08-26 | 深圳市海思半导体有限公司 | 译码方法及装置 |
EP3570442A1 (en) * | 2018-05-17 | 2019-11-20 | Industrial Technology Research Institute | Compact transmission of polar encoded dci with repetition for 5g communication systems |
US11405055B2 (en) * | 2019-06-26 | 2022-08-02 | Polaran Haberlesme Teknolojileri Anonim Sirketi | Methods and apparatus for error correction coding with triangular factorization of generator matrix |
CN112152639A (zh) * | 2019-06-27 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 一种极化码的译码方法、装置、存储介质和终端 |
US11552732B2 (en) * | 2019-06-28 | 2023-01-10 | Viettel Group | Polar coding system and parallel computation method for polar coding system |
US11582594B2 (en) * | 2019-10-11 | 2023-02-14 | Samsung Electronics Co., Ltd. | Methods and systems for managing decoding of control channels on a multi-SIM UE |
CN111200481B (zh) * | 2019-12-18 | 2020-12-29 | 清华大学 | Polar码译码过程中提高计算单元通用性的方法 |
CN118541917A (zh) | 2022-01-24 | 2024-08-23 | 三菱电机株式会社 | 解码装置、控制电路、存储介质和解码方法 |
TWI818581B (zh) * | 2022-06-09 | 2023-10-11 | 鴻齡科技股份有限公司 | 極化碼的解碼方法及裝置 |
US11695430B1 (en) * | 2022-06-09 | 2023-07-04 | Hon Lin Technology Co., Ltd. | Method for decoding polar codes and apparatus thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347186B1 (en) * | 2012-04-19 | 2013-01-01 | Polaran Yazilim Bilisim Danismanlik Ithalat Ihracat Sanayi Ticaret Limited Sirketi | Method and system for error correction in transmitting data using low complexity systematic encoder |
CN104539393A (zh) * | 2015-01-07 | 2015-04-22 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
CN105337696A (zh) * | 2015-10-08 | 2016-02-17 | 东南大学 | 基于分段crc校验的极化解码方法 |
CN105900365A (zh) * | 2014-03-31 | 2016-08-24 | 华为技术有限公司 | 极化码的混合自动重传方法及装置、无线通信装置 |
WO2016154968A1 (zh) * | 2015-04-01 | 2016-10-06 | 华为技术有限公司 | 编码方法、装置、基站和用户设备 |
CN106656213A (zh) * | 2016-12-22 | 2017-05-10 | 东南大学 | 基于k段分解的低复杂度极化码折叠硬件构架的实现方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0504483D0 (en) * | 2005-03-03 | 2005-04-13 | Ttp Communications Ltd | Trellis calculations |
US8677227B2 (en) * | 2010-08-25 | 2014-03-18 | Royal Institution for the Advancement of Learning / McGill University | Method and system for decoding |
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 |
CN103368583B (zh) * | 2012-04-11 | 2016-08-17 | 华为技术有限公司 | 极性码的译码方法和译码装置 |
US10140129B2 (en) * | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9362956B2 (en) * | 2013-01-23 | 2016-06-07 | Samsung Electronics Co., Ltd. | Method and system for encoding and decoding data using concatenated polar codes |
US9204437B2 (en) * | 2013-02-27 | 2015-12-01 | Qualcomm Incorporated | Methods and apparatus for conditional offload of one or more log-likelihood ratios (LLRs) or decoded bits |
CN104038234B (zh) * | 2013-03-07 | 2017-09-29 | 华为技术有限公司 | 极性码的译码方法和译码器 |
US9467164B2 (en) * | 2013-10-01 | 2016-10-11 | Texas Instruments Incorporated | Apparatus and method for supporting polar code designs |
FR3016259B1 (fr) * | 2014-01-07 | 2017-09-08 | Univ Bretagne Sud | Procede de gestion d'une unite de calcul de noeud de parite, equipement et logiciel pour la mise en oeuvre du procede |
EP2903166A1 (en) * | 2014-02-03 | 2015-08-05 | Centre National de la Recherche Scientifique (C.N.R.S.) | Multiple-vote symbol-flipping decoder for non-binary LDPC codes |
KR101583139B1 (ko) * | 2014-04-30 | 2016-01-08 | 인하대학교 산학협력단 | 높은 처리량과 낮은 복잡성을 갖는 연속 제거 극 부호 복호 장치 및 그 방법 |
US20150333775A1 (en) * | 2014-05-15 | 2015-11-19 | Broadcom Corporation | Frozen-Bit Selection for a Polar Code Decoder |
US10193578B2 (en) * | 2014-07-10 | 2019-01-29 | The Royal Institution For The Advancement Of Learning / Mcgill University | Flexible polar encoders and decoders |
CN105634507B (zh) * | 2015-12-30 | 2019-05-17 | 东南大学 | 极化码置信传播译码器的流水线系统 |
US10579452B2 (en) * | 2016-06-17 | 2020-03-03 | Huawei Technologies Co., Ltd. | Systems and methods for rate matching via a heterogeneous kernel when using general polar codes |
US10361717B2 (en) * | 2016-06-17 | 2019-07-23 | Huawei Technologies Co., Ltd. | Apparatus and methods for error detection coding |
US10291264B2 (en) * | 2016-06-17 | 2019-05-14 | Huawei Technologies Co., Ltd. | Systems and methods for rate matching when using general polar codes |
US10361728B2 (en) * | 2016-06-17 | 2019-07-23 | Huawei Technologies Co., Ltd. | Multiple-symbol combination based decoding for general polar codes |
US10567011B2 (en) * | 2016-06-17 | 2020-02-18 | Huawei Technologies Co., Ltd. | Systems and methods for piece-wise rate matching when using polar codes |
US10153787B2 (en) * | 2016-09-20 | 2018-12-11 | Samsung Electronics Co., Ltd | Apparatus and method for parallelized successive cancellation decoding and successive cancellation list decoding of polar codes |
US20180123615A1 (en) * | 2016-11-02 | 2018-05-03 | Qualcomm Incorporated | Non-linear log-likelihood ratio quantization techniques for ldpc decoder architecture |
US10348328B2 (en) * | 2017-01-06 | 2019-07-09 | At&T Intellectual Property I, L.P. | Reducing control channel overhead using polar codes |
US11063614B1 (en) * | 2019-11-21 | 2021-07-13 | Cadence Design Systems, Inc. | Polar decoder processor |
-
2017
- 2017-06-15 GB GB1709505.0A patent/GB2563419B/en active Active
- 2017-09-14 GB GB1714766.1A patent/GB2563463B/en active Active
-
2018
- 2018-06-12 CN CN201880039343.5A patent/CN110741557B/zh active Active
- 2018-06-12 WO PCT/EP2018/065538 patent/WO2018229068A1/en unknown
- 2018-06-12 US US16/622,897 patent/US11165448B2/en active Active
- 2018-06-12 WO PCT/EP2018/065549 patent/WO2018229073A1/en unknown
- 2018-06-12 CN CN201880039349.2A patent/CN110771047B/zh active Active
- 2018-06-12 EP EP18730778.0A patent/EP3639376B1/en active Active
- 2018-06-12 US US16/622,905 patent/US11190221B2/en active Active
- 2018-06-12 EP EP18730357.3A patent/EP3639374B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347186B1 (en) * | 2012-04-19 | 2013-01-01 | Polaran Yazilim Bilisim Danismanlik Ithalat Ihracat Sanayi Ticaret Limited Sirketi | Method and system for error correction in transmitting data using low complexity systematic encoder |
CN105900365A (zh) * | 2014-03-31 | 2016-08-24 | 华为技术有限公司 | 极化码的混合自动重传方法及装置、无线通信装置 |
CN104539393A (zh) * | 2015-01-07 | 2015-04-22 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
WO2016154968A1 (zh) * | 2015-04-01 | 2016-10-06 | 华为技术有限公司 | 编码方法、装置、基站和用户设备 |
CN105337696A (zh) * | 2015-10-08 | 2016-02-17 | 东南大学 | 基于分段crc校验的极化解码方法 |
CN106656213A (zh) * | 2016-12-22 | 2017-05-10 | 东南大学 | 基于k段分解的低复杂度极化码折叠硬件构架的实现方法 |
Non-Patent Citations (1)
Title |
---|
马煜等.极化码中信道极化与编码译码的研究.《齐齐哈尔大学学报(自然科学版)》.2016,第32卷(第1期),30-35. * |
Also Published As
Publication number | Publication date |
---|---|
CN110771047A (zh) | 2020-02-07 |
GB2563419A8 (en) | 2019-01-16 |
WO2018229073A1 (en) | 2018-12-20 |
GB201709505D0 (en) | 2017-08-02 |
WO2018229068A1 (en) | 2018-12-20 |
EP3639374A1 (en) | 2020-04-22 |
GB2563463B (en) | 2020-05-06 |
US20200212936A1 (en) | 2020-07-02 |
CN110771047B (zh) | 2023-08-04 |
EP3639374C0 (en) | 2023-08-09 |
US11190221B2 (en) | 2021-11-30 |
GB2563419A (en) | 2018-12-19 |
US20210159915A1 (en) | 2021-05-27 |
EP3639376B1 (en) | 2022-08-24 |
GB201714766D0 (en) | 2017-11-01 |
GB2563419B (en) | 2020-04-22 |
CN110741557A (zh) | 2020-01-31 |
GB2563463A (en) | 2018-12-19 |
EP3639374B1 (en) | 2023-08-09 |
US11165448B2 (en) | 2021-11-02 |
EP3639376A1 (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741557B (zh) | 通过合并极化码图的级的低延迟极化编码和解码 | |
CN110741558B (zh) | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 | |
US8266493B1 (en) | Low-density parity check decoding using combined check node and variable node | |
JP7365335B2 (ja) | ポーラー符号化のための電子デバイス、集積回路、及び方法 | |
US20060129904A1 (en) | Method and apparatus for encoding and decoding data | |
Liang et al. | Hardware efficient and low-latency CA-SCL decoder based on distributed sorting | |
WO2007034870A1 (ja) | 復号装置および受信装置 | |
CN108809332B (zh) | 一种Polar码传输方法及装置 | |
CN116964945A (zh) | 原模图准循环极化码及相关的低密度生成矩阵族 | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
US20200220559A1 (en) | Polar encoder, communicaton unit, integrated circuit and method therefor | |
EP3912324A1 (en) | System and method for decoding reed-muller codes | |
Presman et al. | Matthew Brejza, Southampton (GB); Shida Zhong, Southampton (GB); Isaac Perez-Andrade, Southampton |
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 |