CN111786744B - 一种基于avx-512指令集的5g极化码自适应高效译码方法 - Google Patents
一种基于avx-512指令集的5g极化码自适应高效译码方法 Download PDFInfo
- Publication number
- CN111786744B CN111786744B CN202010471932.XA CN202010471932A CN111786744B CN 111786744 B CN111786744 B CN 111786744B CN 202010471932 A CN202010471932 A CN 202010471932A CN 111786744 B CN111786744 B CN 111786744B
- Authority
- CN
- China
- Prior art keywords
- path
- avx
- updating
- data
- node
- 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
Images
Classifications
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0057—Block 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/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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/093—CRC update after modification of the information word
-
- 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
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0036—Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提出并实现一种基于AVX‑512指令集的5G极化码自适应高效译码方法,一方面,本发明将Fast‑SSC算法和FSL算法有效结合,利用了Fast‑SSC算法的高吞吐量性能和FSL算法的低误帧率性能。另一方面,本发明基于AVX‑512指令集中引入的掩码、置换、混合等指令,对自适应算法中关键过程提出新的结构,并在路径更新过程中提出使用提前终止型双调排序完成子路径度量值的部分排序,有效降低复杂度,提升了算法的并行度;本发明解决了5G极化码译码在x86平台上处理时延高及吞吐量不足的问题,在保证低误帧率的前提下,有效提升了译码算法的吞吐量。
Description
技术领域
本发明属于信道译码领域,尤其涉及一种基于AVX-512指令集的5G极化码自适应高效译码方法。
背景技术
极化码由Erdal Arikan教授提出,其利用信道极化理论将信道按照可靠性分为信息信道和冻结信道两部分,信息信道用于传输信息比特,冻结信道用于传输收发双方已知的冻结比特。极化码可以在理论上严格证明其达到香农极限,并且具有较低的编译码复杂度。在第三代合作伙伴计划牵头制定的第五代移动通信标准中,极化码被选择为增强型移动宽带物理控制信道和物理广播信道的信道编码方案。而对于极化码在实际通信系统中的应用,如何设计吞吐量高且误帧率低的译码算法成为广泛研究的热点,并且由于目前通信基站多采用x86软基站架构,因此对译码算法的高效实现也成为目前主要研究方向。
极化码译码方案主要基于Erdal Arikan首先在论文中提出的串行消除(SC,Successive Cancellation)算法,但算法误帧率难以满足要求;在此之后,研究人员提出串行消除列表(SCL,Successive Cancellation List)算法,在译码过程中扩大搜索宽度,以牺牲复杂度的前提换取误帧率性能的提升;除此之外,循环冗余校验(CRC,CyclicRedundancy Check)在串行消除列表算法中的引入使得误帧率在不显著影响算法复杂度的前提下得到了进一步的提升;后续译码算法主要集中在降低复杂度方向,陆续提出简化串行消除算法(SSC,Simplified Successive Cancellation),简化串行消除列表算法(SSCL,Simplified Successive Cancellation List),快速简化串行消除算法(Fast-SSC,FastSimplified Successive Cancellation),快速串行消除列表算法(Fast-SSCL,FastSimplified Successive Cancellation List),反转校正子列表译码(FSL,Flip SyndromeList)等;在以上快速算法中,提出零码率节点(Rate-0)、全码率节点(Rate-1)、单奇偶校验节点(SPC,Single Parity Check)和重复节点(Rep,Repetition)等特殊节点,并对其译码过程进行了优化,特别地,FSL算法除了对特殊节点进行优化外,也根据校正子译码的思想,预存不同校正子对应的低码重差错图样,对非特殊节点(Gen,General)的判决过程进行了优化,进一步提升了算法的并行度。
单一译码算法一般无法同时满足误帧率性能和吞吐量性能要求,本发明基于自适应译码思想,将Fast-SSC算法作为主译码算法,将FSL算法作为辅助译码算法。此外,基于新发布的AVX-512指令集的极化码译码系统软件实现方案尚未有充分研究,因此基于AVX-512指令集设计5G极化码高效译码系统,并将AVX-512指令集中的新特性和新指令引入极化码译码的关键过程,有效提升译码系统的吞吐量,是本发明的主要研究课题。
发明内容
发明目的:本发明的目的是提出并实现一种基于AVX-512指令集的5G极化码自适应译码方法,设计并优化译码方法中的关键步骤,满足高吞吐量和低误帧率的性能需求。
技术方案:为实现上述发明目的,本发明采用的技术方案为:
一种基于AVX-512指令集的5G极化码自适应高效译码方法,包括以下步骤:
(1)根据极化码配置生成Fast-SSC算法和FSL算法的参数查找表;
(2)对接收到的实值对数似然比通过AVX-512指令集并行量化,将定点对数似然比存入内存;
(3)根据Fast-SSC算法判决节点信息查找表循环执行步骤(4)~步骤(6),所有节点判决完成时转入步骤(7);
(4)通过AVX-512指令集以单路径方式并行更新判决节点对数似然比;
(5)对节点进行判决,通过重编码得到对应译码结果,重编码过程基于AVX-512指令集的置换和混合指令并行实现;
(6)通过AVX-512指令集以单路径方式并行更新部分和;
(7)对Fast-SSC算法译码结果进行循环冗余校验,若通过,则直接输出结果并开始下一次译码,否则转入第(8)步;
(8)根据FSL判决节点信息查找表循环执行步骤(9)~步骤(13),所有节点判决完成时转入步骤(14);
(9)通过AVX-512指令集以多路径方式并行更新判决节点对数似然比,每条路径根据路径记录矩阵对应行获得更新开始层源路径;
(10)生成节点初步判决结果,并对节点对数似然比绝对值进行排序,获得排序后的索引,排序过程通过AVX-512指令集的置换和混合指令以多路径键值对型双调排序方式进行;
(11)对每一条路径分裂生成子路径并计算子路径度量值,对子路径度量值通过AVX-512指令集的置换和混合指令以分组形式的键值对型提前终止双调排序结构进行排序;
(12)对路径记录矩阵的每一行进行更新,更新过程通过AVX-512指令集的置换指令完成;
(13)通过AVX-512指令集以多路径方式并行更新部分和,并且更新路径在每一层的源路径通过路径记录矩阵的对应行获得;
(14)对每条路径的译码结果进行循环冗余校验,选择可通过循环冗余校验的路径中路径度量值最小的作为最终结果。
作为优选,存储结构对码树每一层的节点进行了空间复用,所述步骤(4)中单路径方式的对数似然比更新和/或所述步骤(9)中多路径方式的对数似然比更新并不是每次都从根节点处开始更新,而是通过参数初始化时预存的开始更新深度查找表确定开始更新的深度。
作为优选,所述步骤(5)中的重编码过程基于AVX-512指令集的置换和混合指令,包括以下步骤:
(5.1)读取重编码数据,存入AVX-512寄存器;
(5.2)循环执行步骤(5.3)~步骤(5.5),当重编码数据层数到达叶子节点层时转入步骤(5.6);
(5.3)根据重编码数据所在层数,通过置换指令将寄存器中的上下分支数据互换,存入置换后寄存器;
(5.4)将置换前寄存器与置换后寄存器按位异或,存入置换后寄存器;
(5.5)根据重编码数据所在层数,使用混合指令将置换后寄存器上分支数据与置换前寄存器下分支数据进行混合,存入置换前寄存器;
(5.6)将AVX-512寄存器中数据按顺序存储。
作为优选,所述步骤(9)的多路径对数似然比更新和所述步骤(13)的部分和更新过程根据所在层数进行并行方式转换:当所在层节点数据可以填充AVX-512寄存器时使用路径内并行,每次仅更新一条路径的对数似然比或部分和;当所在层节点数据无法充满AVX-512寄存器时使用路径间并行,并在加载和存储的过程中通过掩码特性保证互不干扰,每次更新多条路径的对数似然比或部分和。
作为优选,所述步骤(10)中对数似然比绝对值的排序过程通过AVX-512指令集的置换和混合指令以多路径键值对型双调排序方式进行,包括以下步骤:
(10.1)预先将所需要的置换向量和混合掩码生成查找表;
(10.2)循环执行步骤(10.3)~步骤(10.6),当所有数据完成排序后,转入步骤(10.7);
(10.3)读取多条路径待排序数据,存入AVX-512寄存器;
(10.4)根据置换向量查找表,通过vpermw指令对数据向量和索引向量进行置换;
(10.5)通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码;
(10.6)根据混合掩码查找表和步骤(10.5)的结果掩码,通过vpblendmw指令,对置换前后的数据向量和索引向量进行混合;
(10.7)将索引向量按顺序存储。
作为优选,所述步骤(11)中对子路径度量值的部分排序通过AVX-512指令集的置换和混合指令以分组形式的键值对型提前终止双调排序结构进行,包括以下步骤:
(11.1)预先将所需要的置换向量和混合掩码生成查找表;
(11.2)按照待排序子路径数和AVX-512指令集最大可排序尺寸对自路径度量值进行分组,对每一组循环执行步骤(11.3)~步骤(11.6),达到提前终止排序阶段时转入步骤(11.8),若分裂得到的子路径数小于L,则不进行排序,直接进入路径记录矩阵更新步骤,其中L表示FSL算法路径分裂后保留的最大路径数;
(11.3)读取子路径度量值,存入AVX-512寄存器;
(11.4)根据置换向量查找表,通过vpermw指令对数据向量和索引向量进行置换;
(11.5)通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码;
(11.6)根据混合掩码查找表和步骤(11.5)的结果掩码,通过vpblendmw指令,对置换前后的数据向量和索引向量进行混合;
(11.7)将分组排序结果整合后对整合路径度量值重新循环执行步骤(11.3)~步骤(11.6),达到提前终止排序阶段时转入步骤(11.8);
(11.8)将最终排序结果的索引向量按顺序存储。
作为优选,所述步骤(9)中多路径对数似然比更新和所述步骤(13)中多路径部分和更新结合路径记录矩阵查找源路径,所述路径记录矩阵根据路径剪枝后的保留路径信息进行更新,包括以下步骤:
在FSL算法开始译码前,将路径记录矩阵的每一行初始化为1,2,…,L索引;
在多路径对数似然比更新时,取路径记录矩阵中当前节点开始更新层对应行作为开始更新时的源路径记录;
在多路径部分和更新前,通过AVX-512指令集的vpermw指令,以路径剪枝后的保留路径信息作为置换向量对路径记录矩阵的每一行进行置换;
在多路径部分和更新时,在每一层更新开始前,取路径记录矩阵中当前更新层对应行作为该层更新时的源路径记录;
在多路径部分和更新后,将路径记录矩阵的第1行至下一节点开始更新层对应行之间的每一行赋为1,2,…,L索引。
有益效果:与现有技术相比,本发明具有如下优点:
1、本发明中,仅当Fast-SSC算法译码结果无法通过校验时使能FSL算法,提升高信噪比条件下译码方法的吞吐量。
2、本发明中,对数似然比更新过程并不是每次都从根节点处开始更新,而是根据节点索引确定开始更新层,减少了对数似然比更新过程中的冗余操作。
3、本发明中,判决节点的重编码过程基于AVX-512指令集的置换和混合指令提出了高并行度重编码方法,相对于传统分组方法提升了该过程的并行度。
4、本发明中,软硬信息生成过程对多条路径进行同时判决和排序,有效改善判决节点深度带来的并行度不足的问题,提升了该过程的并行度。
5、本发明中,在多路径对数似然比或部分和更新过程中,当节点深度较低导致数据无法充满AVX-512寄存器时,将并行方式从路径内并行转换为路径间并行,有效改善节点深度带来的并行度不足的问题,提升了该过程的并行度。
6、本发明中,在多路径对数似然比或部分和更新过程中,借助路径记录矩阵确定当前路径的源路径索引,避免了路径更新过程中保留路径时的内存复制操作。
7、本发明中,在路径更新时对子路径度量值排序的过程中,仅对自路径度量值进行部分排序,找到子路径度量值最小的L条路径,而不对这L条路径进行进一步的排序,有效降低了该过程的复杂度。
附图说明
图1为Fast-SSC算法码树示意图。
图2为FSL算法码树示意图。
图3为本发明实施例的方法流程示意图。
图4为本发明实施例中对数似然比定点化方案示意图。
图5为本发明实施例中重编码过程中不定长数据的重编码方案示意图。
图6为本发明实施例中双调全排序示意图。
图7为本发明实施例中Gen节点查找表生成与使用示意图。
图8为本发明实施例中双调部分排序示意图。
图9为本发明实施例中路径记录矩阵形式与其和其它过程关系示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的描述,这些实施例仅用于说明本发明,并不是对本发明保护范围的限制。
图1给出了Fast-SSC算法的码树结构图,该算法通过深度为n+1的完全二叉树中对数似然比和部分和的更新与传递对译码过程进行描述。在码树中,若d表示节点所处的层数,则d=0为判决层,即叶子节点所在层;d=n为信道层,即根节点所在层;码树的第d层有2n-d个节点,且每个节点包含2d个对数似然比或部分和。码树中的每个节点首先接收父节点的对数似然比(根节点接收信道侧的对数似然比),并分别根据不同规则分发至左右孩子节点,其中,分发至左孩子节点时应用f规则:
分发至右孩子节点时应用g规则,从而完成对数似然比的传递:
对于部分和,每个节点接收其左右孩子节点的部分和并根据以下规则进行合并,传递至父节点,从而完成部分和的传递:
节点所接收到的对数似然比根据判决规则转换为部分和:
其中,αi为节点对数似然比,βi为节点部分和;上标l和r分别表示节点为左孩子节点和右孩子节点;sgn为符号函数;⊕为模二加,即异或运算。
Fast-SSC算法将特殊节点分为Rate-1节点(图1中黑色节点)、Rate-0节点(图1中灰色节点)、SPC节点(图1中上对角线节点)和Rep节点(图1中下对角线节点)四种类型。可以证明,当对数似然比更新至特殊节点时,Fast-SSC算法不必继续向特殊节点的左右孩子节点分发对数似然比,即可完成判决。
而对于FSL算法,每条路径均维护一个图2所示的码树,与Fast-SSC算法不同的是,FSL算法固定判决层为d=3,且引入Gen节点,使判决层所在节点均有对应的判决方法,而通过观察可以发现,分裂于同一条路径的子路径码树在分裂节点所在层至根节点所在层的信息相同,这一观察结果为路径记录矩阵提供了背景。
下面以定点格式16bit,列表长度L=8,FSL算法在s=3层判决为例,对本发明做进一步描述。
首先对本发明中极化码码树的存储结构进行描述,根据极化码译码原理,观察发现,对于对数似然比和更新的每一个阶段,对数似然比的计算仅需要这一阶段节点中的1个,而与本阶段其它节点的值无关,根据译码图对数似然比的更新特点,可在内存中仅存储每一次计算需要用到的节点,此时可以在每一次对数似然比计算时对存储位置进行复用;部分和更新的过程与对数似然比更新过程类似,但需要维护两份部分和存储内存,其中一份作为实际使用的部分和内存,另一份则作为每次译码更新后、部分和更新完成前的临时内存,可以在每一次部分和计算时对存储位置进行复用。
如图3所示,本发明提供的5G极化码自适应高效译码方法流程包括参数初始化,对数似然比量化,分别用于单路径和多路径的对数似然比更新,节点判决与重编码,分别用于单路径和多路径的部分和更新,循环冗余校验辅助FSL算法使能和路径选择,软硬信息生成,路径更新,路径记录矩阵更新。
首先,参数初始化过程需要根据指定的极化码码长、信息位数目、循环冗余校验多项式系数、最大路径数、极化码序列生成Fast-SSC算法和FSL算法相关参数的查找表,包括对数似然比开始更新层数,Fast-SSC算法判决节点类型及深度信息,FSL算法判决节点类型信息等。
接下来,来自信道的对数似然比首先AVX-512指令集中的vcvtps2dq指令和vpackssdw指令将实值对数似然比转换为16bit定点对数似然比,同时由于vpackssdw引入交织过程,需要通过预先存储的解交织向量和vpermw对结果解交织,并存入内存中。定点化方案如图4所示,其中最高位为符号位,最低两位为原实值对数似然比的小数部分,其余部分为原实值对数似然比的整数部分。
接下来,将节点计数器置0,从初始化参数Fast-SSC算法判决节点信息查找表和对数似然比开始更新层数查找表中取出节点深度和开始更新深度,并按照f规则或g规则更新对数似然比至对应深度的判决节点处,在更新过程中,当该层数据数大于AVX-512寄存器最大可承载数据数时,将对数据进行分组更新,并将组计数器从1至最大组数迭代,当第i组数据计算结束并存储后,读取第i+1组的数据,继续计算,后续部分和更新和多路径相关更新过程均与此类似。
对数似然比更新结束后,根据不同节点类型进行判决。判决结束后,需要对判决结果进行重编码,得到该节点对应的译码结果,判决节点的重编码过程按照节点类型分为:
(1)对于Rate-0节点,无论对数似然比的值如何,都将对应部分和内存直接置0,不进行重编码;
(2)对于Rep节点,将节点内对数似然比求和,若求和结果小于0,则对应部分和内存置1,反之置0,不进行重编码;
(3)对于SPC节点,根据节点内对数似然比进行初步判决,并计算判决结果的奇偶检验位,若为奇校验,则对对数似然比绝对值最小的比特取反后得到判决结果,反之直接将初步判决作为判决结果,需要进行重编码;
(4)对于Rate-1节点,根据节点内对数似然比进行判决,需要进行重编码;
重编码过程如图5所示,重编码过程首先从内存中读取重编码数据并存入AVX-512寄存器,之后根据重编码数据所在层数,从置换向量查找表中获取对应的置换向量,并通过置换指令将寄存器中的上下分支数据互换,存入置换后寄存器,以当前层数d=5为例,置换向量为[16,17,…,30,31,0,1,…,14,15]。
置换完成后,将置换前寄存器与置换后寄存器按位异或,存入置换后寄存器,之后根据重编码数据所在层数,从混合掩码查找表中获取对应的混合掩码,并使用混合指令将置换后寄存器上分支数据与置换前寄存器下分支数据进行混合,存入置换前寄存器,以当前层数d=5为例,此时混合掩码为0x0000FFFF,若此时d≠1,则将当前重编码层数减1,并循环返回重编码开始步骤循环执行,否则结束重编码过程,将AVX-512寄存器中数据按顺序存储。
接下来,从初始化参数Fast-SSC算法判决节点信息查找表中取出节点深度和部分和最大可更新深度,将部分和按照h规则从对应深度更新至最大可更新深度。部分和更新完成后继续对下一个节点进行译码,若全部节点译码完成,将结果进行循环冗余校验,循环冗余校验过程首先通过AVX-512指令集中的vpmovw2m指令将字节形式存储的部分和转换为比特形式存储,并根据多字节查表法进行循环冗余校验,并根据循环冗余校验的结果使能FSL算法。
与Fast-SSC算法类似,从初始化参数FSL算法节点信息查找表中取出对数似然比开始更新深度,若开始更新深度为dstart,则路径记录矩阵的第dstart行为当前层每条路径的源路径记录,多路径将对数似然比更新过程按照f规则或g规则更新至对应深度,并且在数据数目无法充满AVX-512寄存器时,将并行化方案将由路径内并行转换为路径间并行,即使用多条路径的数据充满AVX-512寄存器,由于AVX-512寄存器最多可装入32个16bit数据,因此当d=4时,每条路径包括16个待计算数据,此时使用2条路径并行的方式;当d=3时,每条路径包括8个待计算数据,此时使用4条路径并行的方式。
对数似然比更新至FSL算法判决节点时,进行软硬信息生成过程。在软硬信息生成过程中,节点对数似然比将根据绝对值的大小进行排序,并返回排序后的索引。由于FSL算法判决层d=3,因此待排序的对数似然比为23=8个,采用路径间并行的方式对每4条路径的判决节点对数似然比绝对值进行同时排序,2次即可完成全部路径的排序。该排序方案为键值对型全排序,可基于双调排序实现。双调全排序的结构如图6所示,该示意图仅给出单个路径的排序方案,多路径排序仅需将该结构进行简单重复即可,图中,纵向连接线表示一次比较交换操作,浅色的矩形表示一个排序阶段,深色的矩形框表示一次置换混合排序步骤。在该全排序网络中,数据之间的比较交换操作均可通过AVX-512指令提供的vpermw指令和vpblendmw指令一次完成,大大降低排序的复杂度。首先,读取多条路径待排序数据存入AVX-512寄存器,从置换向量查找表中获取对应的置换向量,并通过置换指令将寄存器中的上下分支数据互换,存入置换后寄存器,接下来通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码,从混合掩码查找表中获取对应的混合掩码,并使用混合指令对置换前后的数据向量和索引向量进行混合,此时若排序完成则将索引向量按顺序存储,否则继续执行下一排序阶段。
此外,软硬信息生成过程将对数似然比信息进行初步判决,得到初步部分和,由于量化后的对数似然比最高位为符号位,并且符号位的取值与对数似然比与部分和的转换规则一致,因此判决方案为:
接下来,路径更新过程根据节点对数似然比绝对值顺序信息、节点初步判决结果和当前节点类型完成子路径生成、路径度量值计算和子路径排序功能,最后输出候选路径判决比特与路径选择索引。节点类型包括:Rate-0节点,Rate-1节点,Rep节点,SPC节点和Gen节点。
(1)对于Rate-0节点,仅完成路径度量值的计算,而不分裂子路径;
(2)对于Rep节点和信息比特数KB≤4的Gen节点,由于其信息比特数较少,因此可以穷举所有可能的子路径;
(3)对于信息比特数KB>4的Gen节点,首先根据初步判决信息计算得到校正子,校正子计算过程如下所示:
接下来,根据校正子索引从预先离线计算的查找表中找到低码重差错图样,通过差错图样完成对初步判决信息的校正:
其中,et为该校正子对应的第t个差错图样,Gen节点的主要判决流程如图7所示。
(4)对于SPC节点和Rate-1节点,考虑到最终保留路径数L=8,因此根据对数似然比绝对值的排序信息,可以将每条路径产生的子路径数降为13。
此外,在子路径生成过程中,不一定满足所有的子路径均有效,为防止将无效子路径计入候选路径,将无效子路径的路径度量值设定为16bit定点对数似然比可以取到的最大值,即65535,从而避免在后续的排序步骤中将其计入。
路径度量值的计算方法如下:
在完成子路径生成和路径度量值计算后需要进行子路径度量值的排序,并得到保留路径的索引。子路径度量值排序仅需要得到最小的L条子路径的信息,但不需要知道这L条子路径之间的顺序关系,因此为键值对型部分排序,可基于提前终止的双调排序实现。双调全排序的结构如图8所示,该结构仅给出待排序数据数N=16的示意图,观察发现,在最后一个的排序阶段完成第一个排序步骤时,16个待排序数据中8个最小的数据均在结果的前8个元素集合中,无需完成接下来的步骤;当待排序数据数N=32时,可以按照双调排序的原理扩展示意图,此时最后一个的排序阶段完成前两个排序步骤时,32个待排序数据中8个最小的数据均在结果的前8个元素集合中,同样无需完成接下来的步骤。由于对数似然比采用16bit定点的方式进行量化,因此AVX-512寄存器最多完成32个待排序数据的排序,而子路径数目可能取值有16(Rep节点)、32(KB=2的Gen节点)、64(KB=3的Gen节点)、104(SPC节点和Rate-1节点)、128(KB>3的Gen节点)五种:
(1)对于子路径数为16或32的情况,直接采用上述双调部分排序方案即可完成;
(2)对于子路径数为64或128的情况,则需要将这些子路径以32个为一组,分为2或4个部分,从每个部分中选择路径度量值最小的8条子路径,将不同部分的子路径进行组合,从而转化为子路径数为16或32的情况,按照上述双调部分排序方案完成排序;
(3)而对于子路径数为104的情况,与上一种情况类似,但区别在于最后一部分仅有8条子路径,且这一部分不进行排序。
提前终止的键值对型双调排序过程与普通键值对型双调排序类似,首先,读取多条路径待排序数据存入AVX-512寄存器,从置换向量查找表中获取对应的置换向量,并通过置换指令将寄存器中的上下分支数据互换,存入置换后寄存器,接下来通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码,从混合掩码查找表中获取对应的混合掩码,并使用混合指令对置换前后的数据向量和索引向量进行混合,此时若排序阶段到达提前终止阶段,则将索引向量按顺序存储,否则继续执行下一排序阶段。
路径分裂与路径选择得到保留路径信息,路径记录矩阵更新过程则需要根据这一信息完成路径记录矩阵的更新,在多路径部分和更新前,通过AVX-512指令集的vpermw指令,以路径剪枝后的保留路径信息作为置换向量对路径记录矩阵的每一行进行置换,以当前保留路径结果为[1,1,2,2,3,4,5,5]为例,此时置换向量即为[1,1,2,2,3,4,5,5],以该向量和路径记录矩阵的每一行作为vpermw指令的参数完成更新过程;在多路径部分和更新后,将路径记录矩阵的第1行至下一节点对数似然比开始更新层对应行之间的每一行赋为1,2,…,L索引,路径记录矩阵与多路径对数似然比更新过程和多路径部分和更新过程间的关系如图9所示。
路径记录矩阵更新结束后,需要从初始化参数FSL算法节点信息查找表中取出部分和结束更新深度,与对数似然比不同的是,在部分和的更新过程中,每一层均需要从路径记录矩阵对应行中寻找源路径记录,多路径将部分和更新过程按照h规则更新至对应深度,并且在数据数目无法充满AVX-512寄存器时,将并行化方案将由路径内并行转换为路径间并行,即使用多条路径的数据充满AVX-512寄存器,由于AVX-512寄存器最多可装入32个16bit数据,因此当d=4时,每条路径包括16个待计算数据,此时使用2条路径并行的方式;当d=3时,每条路径包括8个待计算数据,此时使用4条路径并行的方式。
部分和更新完成后继续对下一个节点进行译码,若所有节点全部译码结束时,得到8条路径度量值无序的候选路径,此时需要进行循环冗余校验辅助路径选择过程,首先对8条候选路径的路径度量值进行排序,并按照路径度量值从小到大的顺序依次进行循环冗余校验,选择最先通过循环冗余校验的候选路径作为最终输出路径;若所有候选路径均无法通过循环冗余校验,说明此次译码失败。
本发明所提供的5G极化码自适应译码方法有效结合了Fast-SSC算法的高吞吐量性能和FSL算法的低误帧率性能,其在不同码长、不同码率场景下的吞吐量如下表所示。(测试场景:Intel Xeon Gold 6154,AVX-512)
表1不同场景译码性能
码长 | 信息位长度 | 吞吐量(系统) | 吞吐量(非系统) |
1024 | 800 | 179Mbps | 182Mbps |
1024 | 600 | 120Mbps | 123Mbps |
1024 | 400 | 85Mbps | 89Mbps |
1024 | 200 | 60Mbps | 61Mbps |
从表中可以看到,本发明所设计的极化码译码器在吞吐量性能高于开源系统码译码器,考虑到系统码本身吞吐量高于非系统码,本发明所设计的极化码译码器体现出了较大优势。
Claims (1)
1.一种基于AVX-512指令集的5G极化码自适应高效译码方法,其特征在于:包括以下步骤:
(1)根据极化码配置生成Fast-SSC算法和FSL算法的参数查找表;
(2)对接收到的实值对数似然比通过AVX-512指令集并行量化,将定点对数似然比存入内存;
(3)根据Fast-SSC算法判决节点信息查找表循环执行步骤(4)~步骤(6),所有节点判决完成时转入步骤(7);
(4)通过AVX-512指令集以单路径方式并行更新判决节点对数似然比;
(5)对节点进行判决,通过重编码得到对应译码结果,重编码过程基于AVX-512指令集的置换和混合指令并行实现;
(6)通过AVX-512指令集以单路径方式并行更新部分和;
(7)对Fast-SSC算法译码结果进行循环冗余校验,若通过,则直接输出结果并开始下一次译码,否则转入第(8)步;
(8)根据FSL算法判决节点信息查找表循环执行步骤(9)~步骤(13),所有节点判决完成时转入步骤(14);
(9)通过AVX-512指令集以多路径方式并行更新判决节点对数似然比,每条路径根据路径记录矩阵对应行获得更新开始层源路径;
(10)生成节点初步判决结果,并对判决节点对数似然比绝对值进行排序,获得排序后的索引,排序过程通过AVX-512指令集的置换和混合指令以多路径键值对型双调排序方式进行;
(11)对每一条路径分裂生成子路径并计算子路径度量值,对子路径度量值通过AVX-512指令集的置换和混合指令以分组形式的键值对型提前终止双调排序结构进行排序;
(12)对路径记录矩阵的每一行进行更新,更新过程通过AVX-512指令集的置换指令完成;
(13)通过AVX-512指令集以多路径方式并行更新部分和,并且更新路径在每一层的源路径通过路径记录矩阵的对应行获得;
(14)对每条路径的译码结果进行循环冗余校验,选择可通过循环冗余校验的路径中路径度量值最小的作为最终结果;
存储结构对码树每一层的节点进行了空间复用,所述步骤(4)中单路径方式的对数似然比更新和/或所述步骤(9)中多路径方式的对数似然比更新并不是每次都从根节点处开始更新,而是通过参数初始化时预存的开始更新深度查找表确定开始更新的深度;
所述步骤(5)中的重编码过程基于AVX-512指令集的置换和混合指令,包括以下步骤:
(5.1)读取重编码数据,存入AVX-512寄存器;
(5.2)循环执行步骤(5.3)~步骤(5.5),当重编码数据层数到达叶子节点层时转入步骤(5.6);
(5.3)根据重编码数据所在层数,通过置换指令将AVX-512寄存器中的上下分支数据互换,存入置换后寄存器;
(5.4)将AVX-512寄存器与置换后寄存器按位异或,存入置换后寄存器;
(5.5)根据重编码数据所在层数,使用混合指令将置换后寄存器上分支数据与AVX-512寄存器下分支数据进行混合,存入AVX-512寄存器;
(5.6)将AVX-512寄存器中数据按顺序存储;
所述步骤(9)的多路径对数似然比更新和所述步骤(13)的部分和更新过程根据所在层数进行并行方式转换:当所在层节点数据可以填充AVX-512寄存器时使用路径内并行,每次仅更新一条路径的对数似然比或部分和;当所在层节点数据无法充满AVX-512寄存器时使用路径间并行,并在加载和存储的过程中通过掩码特性保证互不干扰,每次更新多条路径的对数似然比或部分和;
所述步骤(10)中判决节点对数似然比绝对值的排序过程通过AVX-512指令集的置换和混合指令以多路径键值对型双调排序方式进行,包括以下步骤:
(10.1)预先将所需要的置换向量和混合掩码分别生成置换向量查找表和混合掩码查找表;
(10.2)循环执行步骤(10.3)~步骤(10.6),当所有数据完成排序后,转入步骤(10.7);
(10.3)读取多条路径待排序数据,存入AVX-512寄存器;
(10.4)根据置换向量查找表,通过vpermw指令对数据向量和索引向量进行置换;
(10.5)通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码;
(10.6)根据混合掩码查找表和步骤(10.5)的结果掩码,通过vpblendmw指令,对置换前后的数据向量和索引向量进行混合;
(10.7)将索引向量按顺序存储;
所述步骤(11)中对子路径度量值的部分排序通过AVX-512指令集的置换和混合指令以分组形式的键值对型提前终止双调排序结构进行,包括以下步骤:
(11.1)预先将所需要的置换向量和混合掩码分别生成置换向量查找表和混合掩码查找表;
(11.2)按照待排序子路径数和AVX-512指令集最大可排序尺寸对子路径度量值进行分组,对每一组循环执行步骤(11.3)~步骤(11.6),达到提前终止排序阶段时转入步骤(11.8),若分裂得到的子路径数小于L,则不进行排序,直接进入路径记录矩阵更新步骤,其中L表示FSL算法路径分裂后保留的最大路径数;
(11.3)读取子路径度量值,存入AVX-512寄存器;
(11.4)根据置换向量查找表,通过vpermw指令对数据向量和索引向量进行置换;
(11.5)通过vpcmpw指令将置换前与置换后的数据向量进行比较,得到结果掩码;
(11.6)根据混合掩码查找表和步骤(11.5)的结果掩码,通过vpblendmw指令,对置换前后的数据向量和索引向量进行混合;
(11.7)将分组排序结果整合后对整合路径度量值重新循环执行步骤(11.3)~步骤(11.6),达到提前终止排序阶段时转入步骤(11.8);
(11.8)将最终排序结果的索引向量按顺序存储;
所述步骤(9)中多路径对数似然比更新和所述步骤(13)中多路径部分和更新结合路径记录矩阵查找源路径,所述路径记录矩阵根据路径剪枝后的保留路径信息进行更新,包括以下步骤:
在FSL算法开始译码前,将路径记录矩阵的每一行初始化为1,2,…,L索引;其中L表示FSL算法路径分裂后保留的最大路径数;
在多路径对数似然比更新时,取路径记录矩阵中当前节点开始更新层对应行作为开始更新时的源路径记录;
在多路径部分和更新前,通过AVX-512指令集的vpermw指令,以路径剪枝后的保留路径信息作为置换向量对路径记录矩阵的每一行进行置换;
在多路径部分和更新时,在每一层更新开始前,取路径记录矩阵中当前更新层对应行作为该层更新时的源路径记录;
在多路径部分和更新后,将路径记录矩阵的第1行至下一节点开始更新层对应行之间的每一行赋为1,2,…,L索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471932.XA CN111786744B (zh) | 2020-05-29 | 2020-05-29 | 一种基于avx-512指令集的5g极化码自适应高效译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471932.XA CN111786744B (zh) | 2020-05-29 | 2020-05-29 | 一种基于avx-512指令集的5g极化码自适应高效译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111786744A CN111786744A (zh) | 2020-10-16 |
CN111786744B true CN111786744B (zh) | 2022-11-01 |
Family
ID=72754471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471932.XA Active CN111786744B (zh) | 2020-05-29 | 2020-05-29 | 一种基于avx-512指令集的5g极化码自适应高效译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111786744B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023090475A1 (ko) * | 2021-11-17 | 2023-05-25 | 엘지전자 주식회사 | 극 부호의 고속 복호 방법 및 장치 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016168962A1 (zh) * | 2015-04-20 | 2016-10-27 | 华为技术有限公司 | 极化码的译码方法和译码装置 |
CN110380735B (zh) * | 2019-06-24 | 2023-05-12 | 东南大学 | 一种基于单指令多数据流的软件实现qc-ldpc译码方法 |
-
2020
- 2020-05-29 CN CN202010471932.XA patent/CN111786744B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111786744A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1101997C (zh) | 在通信系统中确定速率的方法和设备 | |
CA2465332C (en) | Soft input decoding for linear codes | |
CN100364237C (zh) | 非规则低密度奇偶校验码的系统码设计方法及其通信系统 | |
JPH10135850A (ja) | 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器 | |
CN102122966A (zh) | 基于信道极化的交错结构重复码的编码器及其编译码方法 | |
CN107919874B (zh) | 校验子计算基本校验节点处理单元、方法及其计算机程序 | |
JPH10135849A (ja) | 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器 | |
JP2000068862A (ja) | 誤り訂正符号化装置 | |
CN109547034B (zh) | 译码方法及设备、译码器 | |
CN107370488A (zh) | 纠错编码方法及装置 | |
CN110868226B (zh) | 基于混合极化核的极化码的编译码方法 | |
US8468438B2 (en) | Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code | |
CN108055044A (zh) | 一种基于ldpc码和极化码的级联系统 | |
JPH114270A (ja) | デジタル伝送システムおよび方法 | |
CN108574494B (zh) | 编译码方法及装置 | |
Jin et al. | Reliability-based soft-decision decoding with multiple biases | |
WO2018234053A1 (en) | HYBRID ARCHITECTURES FOR PROCESSING EXTENDED MIN-SUM DECODING CONTROL (EMS) NODES OF NON-BINARY LDPC CODES | |
CN111786683B (zh) | 一种低复杂度的极化码多码块译码器 | |
CN111786744B (zh) | 一种基于avx-512指令集的5g极化码自适应高效译码方法 | |
CN112104412B (zh) | 一种适用于低轨卫星宽带通信的加速器 | |
US20070250760A1 (en) | Extended Convolutional Codes | |
Kestel et al. | Polar code decoder exploration framework | |
CN111446973A (zh) | 基于多翻转比特集合的极化码置信传播译码方法 | |
CN108809485B (zh) | 一种编码的方法和装置 | |
CN114257342A (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 |