CN108370255B - 极性码连续消去列表解码器中的存储器管理和路径排序 - Google Patents

极性码连续消去列表解码器中的存储器管理和路径排序 Download PDF

Info

Publication number
CN108370255B
CN108370255B CN201680068088.8A CN201680068088A CN108370255B CN 108370255 B CN108370255 B CN 108370255B CN 201680068088 A CN201680068088 A CN 201680068088A CN 108370255 B CN108370255 B CN 108370255B
Authority
CN
China
Prior art keywords
bit
path
paths
list
statistics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680068088.8A
Other languages
English (en)
Other versions
CN108370255A (zh
Inventor
Z·拉扎
K·A·什尔拜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Coherent Logix Inc
Original Assignee
Coherent Logix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Coherent Logix Inc filed Critical Coherent Logix Inc
Publication of CN108370255A publication Critical patent/CN108370255A/zh
Application granted granted Critical
Publication of CN108370255B publication Critical patent/CN108370255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation

Landscapes

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

Abstract

本公开描述了用于改善SCL解码器操作的***和方法的各种实施例。尤其是,描述了基于更新后的路径度量统计量来改善缓冲器管理效率的各种实施例。在一些实施例中,SCL解码器可以执行选择性替换,以将每行的LLR更新的范围仅限于自前一个更新周期以来已经改变的统计量。在一些实施例中,SCL解码器可以执行延迟的更新,延迟更新可以涉及基于将从其导出更新后的行的行就地计算
Figure DDA0001668036670000011
Figure DDA0001668036670000012
位估计(LLR)更新。

Description

极性码连续消去列表解码器中的存储器管理和路径排序
技术领域
本发明的领域一般而言涉及通信中使用的解码器。
背景技术
解码器用在许多通信领域中。用在通信应用中的解码器的一个示例是前向纠错(FEC)解码器。数据移动和数据存储是确定前向纠错(FEC)解码器到给定处理器体系架构的高效映射的关键考虑因素。极性码(Polar Code)解码器的当前设计涉及连续消去(SC)解码器的扩展。有关极性码解码器的当前设计的示例的更多信息,请参阅下面的参考文献1。在提供低解码复杂度的同时,SC解码器需要长块尺寸(N=2n),接近一百万位(即,n=20),以便在误比特(biterror)性能方面与Turbo或低密度奇偶校验(LDPC)码匹敌。
连续消去列表(SCL)解码器是SC解码器的扩展。SCL解码器可以对于可实现的块长度改善误比特性能,例如,N=211。SCL解码可以在SC解码器循环的每个阶段并行考虑两种可能性:
Figure BDA0001668036650000011
Figure BDA0001668036650000012
其结果是解码器树,其维度关于每个解码的信息位加倍。为了管理复杂性,SCL解码器的当前实现可以基于沿着树的每个分支的累积路径度量在每个解码级将列表修剪为固定列表尺寸L。有关这些想法的详细讨论和早期实现,请参阅下面的参考文献2。
处理器级之间的数据交换对于正确的SCL解码器操作非常重要,并且数据交换可以在SCL解码器操作中引入显著的等待时间。因而,期望本领域中的改进。
发明内容
描述了用于改善SCL解码器操作的***和方法的各种实施例。特别地,描述了基于更新后的路径度量统计量(path metric statistics)来改善缓冲器管理的效率的各种实施例。通常使用的路径度量统计量是下面定义的取决于位位置的对数似然比(LLR)、估计的信息向量、位位置的新接收的信元以及先前解码的位。如下面的参考文献4所解释的,LLR度量产生比其它度量更大的数值稳定性。
在第一实施例中,SCL解码器可以执行选择性替换。常规解码器实现可以基于从前一轮位估计(例如,LLR)更新计算出的路径度量来更新缓冲器中的整个行。选择性替换将每行LLR更新的范围限制到自上一个更新周期以来已经改变的统计量。
在第二实施例中,SCL解码器可以执行延迟的更新。常规解码器可以更新路径度量、排序,然后在LLR更新的下一级之前根据需要替换统计量缓冲器的行。倘若在LLR更新处理可以恢复之前将每行的输入拷贝到预定的缓冲器位置,那么这个操作序列被表示为输入拷贝。根据本文描述的称为结果多播的新方法,在一些实施例中,该方法代替地涉及基于从中导出更新后的行的行就地计算对
Figure BDA0001668036650000021
Figure BDA0001668036650000022
位估计(LLR)更新。不是拷贝输入统计量,输出统计量可以就地计算,然后在延迟多播中同时转发到就地缓冲器以及任何附加目的地缓冲器。
附图说明
当结合以下附图考虑优选实施例的以下详细描述时,可以获得对本发明的更好理解,其中:
图1图示了示例无线通信***;
图2图示了设备的解码器中的示例处理器***;
图3图示了信道极化的示例,其中n=11;
图4图示了示例编码器,其中n=3;
图5图示了示例解码器,其中n=3;
图6图示了示例SCL存储器组织;
图7是图示根据一些实施例的选择性替换解码器的操作的流程图;
图8图示了根据一些实施例的可以执行延迟更新的解码器的主处理循环(核心解码器循环);
图9是图示根据一些实施例的最佳排序算法的操作的流程图;
图10A是图示根据一些实施例的低等待时间排序算法的操作的流程图;
图10B是根据一些实施例的低等待时间排序算法中变量□、η和L的图形图示;
图11是图示根据一些实施例的合并算法的操作的流程图;
图12图示了对于本文描述的方法存在噪声和存储器移动时解码性能的比较;
图13图示了根据一些实施例的被配置为使用主处理元件来实现具有L=8的解码器的多处理器阵列;以及
图14图示根据一些实施例的被配置为实现具有共享存储器的解码器的多处理器阵列。
虽然本发明容许各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出并且在本文中详细描述。但是,应当理解的是,附图及其详细描述并非旨在将本发明限制到所公开的特定形式,相反,本发明要覆盖落入如所附权利要求所限定的本发明的精神和范围内的所有修改、等同物和替代方案。
具体实施方式
通过引用并入
以下参考文献通过引用整体上并入本文,如同在本文中完全且完整地阐述了一样:
1.E.Arikan,“Channel Polarization:A method for constructing capacityachieving codes for symmetric binary-input memoryless channels”,IEEE Trans.onInf.Theory,第55卷,第7期,第3051-3073页,2009年7月。
2.I.Tal和A.Vardy,“List Code of Polar Codes”,IEEE Trans.on InformationTheory,第61卷,第5期,第2213-2226页,2015年5月。
3.G.Sarkis,P.Giard,A.Vardy,C.Thibeault和W.J.Gross,“Fast PolarDecoders:Algorithm and Implementation”,IEEE J.on Selected Areas inCommunications,第32卷,第5期,第946-957页,2014年5月。
4.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月。
术语
以下是本申请中使用的术语的术语表:
存储介质—各种类型的存储器设备或存储设备中的任何一种。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘104或磁带设备;计算机***存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;或者非易失性存储器,诸如磁介质(例如,硬盘驱动器)、光学存储装置,或ROM、EPROM、FLASH等。存储介质也可以包括其它类型的存储器或其组合。此外,存储介质可以位于执行程序的第一计算机中,和/或者可以位于通过网络(诸如互联网)连接到第一计算机的不同的第二计算机中。在后一种情况下,第二计算机可以向第一计算机提供程序指令用于执行。术语“存储介质”可以包括两个或更多个存储介质,这些存储介质可以存在于不同位置,例如存在于通过网络连接的不同计算机中。
承载介质—如上所述的存储介质,以及物理传输介质,诸如传达诸如电或光学信号之类的信号的总线、网络和/或其它物理传输介质。
可编程硬件元件—包括各种硬件设备,这些硬件设备包括经由可编程或硬连线互连连接的多个可编程功能块。示例包括FPGA(现场可编程门阵列)、PLD(可编程逻辑设备)、FPOA(现场可编程对象阵列)和CPLD(复杂PLD)。可编程功能块的范围可以从细粒度(组合逻辑或查找表)到粗粒度(算术逻辑单元或处理器核心)。可编程硬件元件也可以被称为“可重新配置逻辑”。
专用集成电路(ASIC)—这个术语旨在具有其普通含义的完整广度。术语ASIC旨在包括为特定应用定制的集成电路,而不是通用可编程设备,但是ASIC可以包含可编程处理器核心作为构建块。蜂窝电话单元、MP3播放器芯片以及许多其它单功能IC都是ASIC的示例。通常用硬件描述语言(诸如Verilog或VHDL)来描述ASIC。
程序—术语“程序”旨在具有其普通含义的完整广度。术语“程序”包括1)可以存储在存储器中并可由处理器执行的软件程序或2)可用于配置可编程硬件元件或ASIC的硬件配置程序。
软件程序—术语“软件程序”旨在具有其普通含义的完整广度,并且包括可以存储在存储介质中并由处理器执行的任何类型的程序指令、代码、脚本和/或数据或其组合。示例性软件程序包括以基于文本的编程语言(例如,命令式或过程式语言(诸如C、C++、PASCAL、FORTRAN、COBOL、JAVA、汇编语言等))编写的程序;图形程序(用图形编程语言编写的程序);汇编语言程序;已经编译成机器语言的程序;脚本;以及其它类型的可执行软件。软件程序可以包括以某种方式互操作的两个或更多个软件程序。
硬件配置程序—可以被用于编程或配置可编程硬件元件或ASIC的程序,例如网表或位文件。
计算机***—各种类型的计算或处理***中的任何一种,包括个人计算机***(PC)、大型机计算机***、工作站、网络设备、互联网设备、个人数字助理(PDA)、网格计算***或者其它设备或设备的组合。一般而言,术语“计算机***”可被广泛地定义为涵盖具有执行来自存储介质的指令的至少一个处理器的任何设备(或设备的组合)。
自动地—是指在没有直接指定或执行动作或操作的用户输入的情况下由计算机***(例如,由计算机***执行的软件)或设备(例如,电路***、可编程硬件元件、ASIC,等等)执行的动作或操作。因此,术语“自动地”与在用户提供输入来直接执行操作的情况下由用户手动执行或指定的操作形成对照。自动过程可由用户提供的输入发起,但是“自动地”执行的后续动作不是用户指定的,即,不是在用户指定每个要执行的动作的情况下“手动地”执行的。例如,通过选择每个字段并且提供指定信息的输入(例如,通过键入信息、选择复选框、单选选择,等等)来填写电子表单的用户是在手动填写该表单,即使计算机***必须响应于用户动作来更新表单。表单可由计算机***自动填写,其中计算机***(例如,在计算机***上执行的软件)分析表单的字段并且在没有任何指定字段的答案的用户输入的情况下填写表单。如上所述,用户可调用表单的自动填写,但不参与表单的实际填写(例如,用户不是手动地指定字段的答案,而是这些字段被自动地完成)。本说明书提供了响应于用户采取的动作而自动执行操作的各种示例。
***概述
图1示出了涉及与无线通信设备12通信的基站10的示例通信***。基站10可以是与多个无线通信设备执行蜂窝通信的蜂窝基站。可替代地,基站10可以是用于诸如根据802.11标准或相关标准执行Wi-Fi通信的无线接入点。无线通信设备12可以是诸如智能电话、平板设备、计算机***等各种设备中的任何设备。基站10和无线通信设备12中的一个或两个可以包括如本文所述的解码器逻辑。
图2图示了可以存在于解码器中的示例处理器***,其中解码器可以包含在基站10和/或无线通信设备12中的一个或两个当中。在这个示例中,处理器***可以包括多个散布的处理器和存储器,如图所示矩形是处理元件(也称为功能单元)和圆圈是存储器(也称为数据存储器路由器)。处理器***可以被编程为实现本文描述的方法。关于可以在一些实施例中使用的示例处理器***架构的更多信息,请参见美国专利No.7,415,594和8,880,866,其通过引用整体上并入本文,如同在本文中完全且完整地阐述了一样。处理器***的另一个示例是如上定义的可编程硬件元件(PHE)。例如,解码器可以包括可以被配置为实现本文描述的方法的PHE,诸如FPGA。
为无记忆二进制对称信道构建容量实现码的方法在本领域中是已知的(参见Arikan,上面的参考文献1)。结果所得的极性码充分利用被称为由递归处理产生的信道极化的现象(参见图3),通过该现象,信道容量(即,最大互信息)倾向于1(完全可用)或0(不可用)。由于码长度N=2n随着正整数值n增加,因此对应的位概率1和0.5分别接近它们的极限。可以通过将信息位放置在最可靠的信道上来传送数据,而置于最不可靠信道上的位可以被设置为固定值,例如0。这些位可以被称为冻结位。发送器和接收器都可以知道冻结位及其与码矩阵的映射。因此,通过解码算法可以使用冻结位作为参考,以确定通信信道中是否已经由于噪声而发生错误,或者是其它情况。例如,冻结位的已知值可以与通过解码算法确定的值进行比较,以确定是否已经发生错误。
基于它们的模拟容量或互信息,信息位可以被进一步分类为“好”信息位和“坏”信息位。发送器和接收器同样可以被配置为知道哪些位是好的和坏的信息位。如下面进一步详细解释的,解码算法可以被配置为通过将增加的审查聚焦在“坏”位上来降低解码错误的可能性。
连续消去算法
为了证明编码方法的可行性,Arikan设计了连续消去(SC)解码器。在提供低复杂度解码的同时,解码器需要长块尺寸,接近一百万(即,220)位,以便与匹敌的Turbo或低密度奇偶校验(LDPC)码竞争。SC解码器的连续性质还对解码器吞吐量施加了明显的限制。
连续消去列表算法
根据至少一些实施例,本文描述的方法可以涉及SC解码器的扩展,以努力克服Arikan在上面参考文献1中概述的方法的限制。在上面参考文献2中,Tal和Vardy描述了连续消去列表(SCL)解码的方法。SCL解码对于每个非冻结位在每个解码器阶段并行检查两种可能性:
Figure BDA0001668036650000081
Figure BDA0001668036650000082
解码器可以并行地追踪多个路径,从而在每个级保留最可能的路径。编码器还可以附加最终用于确定来自可用L路径的适当的位判决的循环冗余校验(CRC),参见Balatsoukas-Stimming等人在以上参考文献4中所阐述的。
极性码
极性码形成由生成器矩阵G描述的一类线性块码。块长度为N的极性码可以根据下式生成:
Figure BDA0001668036650000083
其中除其它可能性以外,FN表示Kronecker乘积
Figure BDA0001668036650000084
极性码由长度为N的块中的k个信息位和(N-k)个冻结位的位置定义。码率
Figure BDA0001668036650000085
被表示为非冻结位与块长度之比。码率可以通过改变每个块的非冻结位的数量来线性调整。通常,块长度N被选择为2的幂,使得N=2n,并且n是自然数。
示例性极性编码器
图4示出了块长度为N=23的样本极性码结构。编码器以输入ui开始,输入ui被编码成输出xi。信息位以粗体示出。剩余的输入可以被指派冻结位值0。在每个级s,编码器根据右侧所示的编码树组合位对,其中
Figure BDA0001668036650000091
指示异或(XOR)操作。
SC解码器
可以在updateLLR部分(参考图7-8进一步介绍)中将SCL解码器视为SC解码器的集合,每个SC解码器对一行累积对数似然比(LLR)统计量采用独立的最小求和计算。
在每个位位置i,SC解码器的目标是如下估计位ui
Figure BDA0001668036650000092
其中,对于估计的信息向量
Figure BDA0001668036650000093
给定的接收信元y和先前解码的位
Figure BDA0001668036650000094
Figure BDA0001668036650000095
Figure BDA0001668036650000096
计算位位置i处的对数似然比(LLR)。
图5示出了示例解码器,其中n=3,从而块长度N=23
解码器算法根据以下递归地应用在图5中所示的多级图:
Figure BDA0001668036650000097
其中λl,i表示SC解码器图的行i和级l的LLR。相关联的内核计算构成最小求和算法:
λfa,λb)=sgn(λa).sgn(λb).min(|λa|,|λb|)
Figure BDA0001668036650000098
SCL解码器
列表解码器可以通过引入路径度量更新部分updateU而脱离基线SC解码器。在每个双解码级完成时,路径度量被更新,以考虑两个可能的位值:
Figure BDA0001668036650000099
Figure BDA00016680366500000910
的可能性。在一些实施例中,可以执行排序操作,以按照它们是被正确解码的串的可能性对列表中的路径进行排名。然后,可能路径的“树”可以被修剪,只保留L个最可能的路径。LLR计算以及路径扩展和修剪的循环可以针对传输块中的每个位重复,在这个时候选择最可能的路径,从而揭示有效载荷数据位的最佳估计。
上面参考文献2和4中描述的SCL解码器使用排序操作的结果来指导多个存储器拷贝(memcpy),从而增加了处理开销,因为在memcpy操作完成之前LLR更新不能恢复。
存储器组织
图6图示了示例SCL存储器组织。SCL解码器的操作可以关于图6中所示的底层存储器组织来检查。可以被称为位统计量的LLR度量可以被存储在LxN缓冲器gLLR[L][N]中,其中L指定列表中条目的数量并且N指定列表中每个路径的长度(以位为单位)。LLR度量的每个水平行可以被称为路径并且可以与图5中示出的解码器的实例对应。不同实例通常与u_hat值的不同位对应,其可以被称为不同的“位路径”。例如,最初可以为u_hat(0)=1和u_hat(0)=0产生两个位路径,可以为u_hat(0)和u_hat(1)的第二不同组合产生四个位路径,依此类推。在一些实施例中,每行可以被指派给图2的处理元件。一旦所有可用的行都被填充,在一些实施例中,updateU就基于累积路径度量对路径进行排名,并修剪具有作为正确路径的低可能性的路径。可以为被修剪路径上的处理元件指派新的路径,这可以包括将一行gLLR从更可能的路径拷贝到与被指派新路径的处理元件相邻的新存储器元件。在一些实施例中,给定每个路径的独立LLR更新,可能更容易考虑每个维度N的L个分离的LLR阵列。updateLLR独立地操作每行LxN缓冲器。updateU计算路径度量、进行排序,然后标记各行路径度量(PM)向量以进行替换和重新排序。重新排序可以直接在各行LLR缓冲器上执行。中间的U和位估计U_hat可以根据相同的重新排序进行修改,如图6中所示。要注意的是,U和U_hat可以与硬判决对应。因此,它们的存储和memcpy要求可以被降低。但是,为减少与LLR缓冲器管理相关联的开销所采取的步骤也可以应用于U和U_hat缓冲器。
用于SCL解码的示例性方法
在一些实施例中,可以按以下方式执行SCL解码。处理器可以从信道接收经编码的通信数据。处理器可以包括多个处理元件和散布在多个处理元件之间的多个存储器,其中这些存储器耦合到相邻的处理元件。处理器可以被配置为通过重复地执行解码操作来解码编码的通信数据。解码处理可以由与处理器一起包括的多个处理元件执行。在一些实施例中,每个处理元件可以被配置为在位路径列表中的相应位路径上执行解码操作,其中解码操作(例如,updateLLR)生成与相应位路径相关联的位统计量(例如,路径度量)。位路径和相关联的位统计量可以存储在连接到相应处理元件的存储器中。如上面所解释的,位路径可以包括编码数据的一部分的潜在解码,并且位统计量可以包括与位路径相关联的LLR集合,其确定位路径是正确解码的可能性。
在一些实施例中,该方法可以通过基于位统计量(例如,updateU过程)对位路径列表进行排序而继续。在别处被称为“修剪”的处理中,位路径列表中的位路径的子集可以基于排序被确定为放弃。处理器可以被配置为通知处理元件中的相应处理元件其相关联的位路径将被放弃。处理器还可以被配置为通知其它相应的处理元件其相关联的位路径不会被放弃。例如,可以优先放弃与指示位路径是正确解码的相对低可能性的位统计量相关联的位路径。在一些实施例中,直到位路径已经增长到预定尺寸才可以发起修剪,使得位路径列表大于预定列表尺寸,并且预配置数量的处理元件被同时用于执行解码操作。
在一些实施例中,被确定为不被放弃的位路径可以被用于生成两个递增延长的位路径。例如位ui=0和ui=1可以被添加到位路径,以创建两个延长的位路径。为了改善计算性能,处理元件可以将延长的位路径之一和其相关联的位统计量拷贝到其相应位路径被放弃的另一个处理元件。解码处理然后可以前进到用于延长的位路径的后续阶段,由此每个处理元件可以再次具有在其上执行解码操作的单个(延长的)位路径。在一些实施例中,一旦发起修剪,该方法就可以被配置为放弃解码处理的每个阶段中的一半位路径。在这些情况下,从一个阶段到下一个阶段,位路径的总数将保持不变。例如,如果位路径的数量L被修剪为L/2,那么,由于每个位路径被用于生成两个延长的位路径,因此被修剪的L/2位路径将产生L个延长的位路径。
在一些实施例中,解码处理可以针对后续的阶段发生多次,其中每个阶段包括由处理元件在连续的较长位路径上执行的解码操作。该方法可以被配置为继续解码处理,直到位路径的长度达到预定阈值。该方法可以被配置为选择位路径的最终列表中的位路径之一作为正确解码的数据。例如,在解码处理的终端阶段中执行排序之后,与最高排名的位统计量相关联的位路径(例如,具有最大对数似然比的位统计量)可以被解释为正确解码的数据。该方法可以被配置为然后将解码的数据存储在存储器中。
在一些实施例中,在被称为“选择性替换”的处理中,处理元件可以被配置为仅拷贝已知与存储在要被拷贝到的存储器中的位路径和位统计量不同的延长的位路径的部分以及相关联的位统计量。例如,如果处理元件B被确定为放弃其相关联的位路径(例如,位路径B),并且处理元件A被确定为使其相关联的位路径生成两个延长的位路径(例如,位路径A1和A2)中,那么处理元件A可以仅拷贝位路径A1中与位路径B中的对应位不同的位。处理元件A还可以仅拷贝不同于与位路径B相关联的对应位统计量的与位路径A1相关联的位统计量。下面进一步详细描述选择性替换处理。
在一些实施例中,在被称为“延迟更新”的处理中,处理元件可以被配置为在将延长的位路径之一和相关联的位统计量拷贝到与另一个处理元件相关联的存储器之前执行对延长的位路径的解码操作的后续阶段。处理元件可以至少部分地基于解码操作来生成关于每个延长的位路径的更新的位统计量。在一些实现中,拷贝位路径和位统计量的处理可以给计算处理引入不期望的等待时间。在这些情况下,在延长的位路径上执行后续解码操作可以减轻由拷贝处理引入的处理瓶颈。下面进一步详细描述延迟更新处理。
在一些实施例中,由于多个处理元件可以尝试使用相同的存储器同时拷贝数据,因此同时拷贝多个位路径和位统计量到各个处理元件可以在拷贝过程中引入不期望的等待时间。在这些情况下,可以期望通过包括在多个散布存储器中的路由架构动态地路由多个拷贝处理。例如,拷贝处理可以被动态路由,以最小化各个拷贝处理之间的冲突,其中冲突包括同时访问存储器的多个拷贝处理。在一些实施例中,处理元件中的至少一个可以被指定为主处理元件,其中(一个或多个)主处理元件将用于创建动态路由的指令传送给每个其它处理元件。下面进一步详细描述动态路由。
SCL缓冲器管理
图7图示了核心解码器循环的示例。如图所示,SCL解码器可以通过updateLLR级被视为L个独立的SC解码器。路径度量更新可以在每个解码位完成时发生,从而同时考虑
Figure BDA0001668036650000131
Figure BDA0001668036650000132
路径。在排序之后,可以识别出最可能的L个路径。剩余的路径可以被放弃,使得来自一个或多个幸存路径的统计量可以被拷贝到腾出的缓冲器中,以便updateLLR处理在更新后的L个路径上恢复。这个处理在上面的参考文献2中被称为克隆。
对于在统计量缓冲器中被替换的每一行,与SCL解码相关联的缓冲器管理的朴素构造可能涉及updateLLR例程输入处的memcpy。已经识别出两种技术,以显著降低memcpy在LLR统计量的更新上引发的开销:
选择性替换:在一些实施例中,这种技术仅替换那些将被修改的统计量,而不是更新LLR统计量的整个行,统计量的大部分在updateU的实例之间将不发生改变。换句话说,对于要被拷贝的图6的gLLR中的给定缓冲器行,可以仅拷贝最近(例如,图中右侧的条目)LLR统计量的集合,而不是整个缓冲器行。这可以显著减少在克隆操作中被传送的数据量。
延迟更新:在一些实施例中,这种技术涉及就地计算LLR更新,然后将结果转发到预期的目的地阵列,同时将结果写入就地缓冲器。所提出的方法不是在计算LLR更新之前将输入缓冲器拷贝到新处理,而是计算现有处理中的
Figure BDA0001668036650000141
Figure BDA0001668036650000142
LLR更新,然后将用于其中一个路径的结果转发到新的目的地缓冲器。通过颠倒操作次序,可以避免在memcpy传送发生时暂停处理的需要。在一些实施例中,所提出的方法就地执行updateLLR,然后将结果流式传输到目的地处理,这与先拷贝然后发起新处理相反。通过隐藏数据移动的成本以及其它处理的成本,该方法可以缓解处理瓶颈。
选择性替换
Balatsoukas-Stimming等人(在上面的参考文献4中)讨论了SCL解码器,其中在每个步骤对于新的位位置,L个幸存路径被复制(一个用于“0”值位扩展,一个用于“1”值位扩展)。然后对2L个路径进行LLR度量评估,并对其进行排序,以仅保留L个最可能的路径。为了复制路径,拷贝LLR存储器组(memory bank)。他们的选择性替换的实验硬件实现被描述为单周期定制存储器组硬件集,其中LLR统计量从一个组拷贝到另一个组,并且该解决方案导致LxL交叉开关。交叉开关最终将导致处理中的等待时间,直到存储器组完成其更新。本文描述的至少一些实施例操作来通过减少存储器传送的数量并且旨在实现接近于L·N·logN的复杂性来减轻对处理的影响。通过向并行L-SC解码器提供每个解码器需要的内容以便在下一个排序和更新例程之前解码下一个位集合,可以实现存储器传送量的减少。
如上面所讨论的,图7图示了根据一些实施例的选择性替换解码器。因为坏位更有可能在通信信道中引发错误,所以SCL解码器可以被配置为在每个坏位判决(与坏位的1和0的值对应)将搜索分叉成两个路径。相反,当SCL解码器解码好位时,它可以被配置为做出关于好位的硬判决,而不分叉成两个搜索路径。
因为在由发送器和接收器两者解码之前好位和坏位的位置是已知的,所以根据一些实施例,预期存储器要求(与路径分叉的预期频率相关)的初步分配可以改善计算性能。例如,在一些实施例中,在计算位统计量之前,可以期望构建MaxStage表格以准备解码处理。为了评估从一个排序实例(即,从一个坏位实例到另一个坏位实例)需要什么统计量(LLR),例程InitMaxStage可以生成具有最大尺寸K(信息位)的表(步骤706)。如下面进一步详细解释的,InitMaxStage算法构造MaxStage表,该表预测一个坏位和下一个坏位的解码之间的存储器要求。例程描述如下:
Figure BDA0001668036650000151
InitMaxStage遍历在解码器和编码器处是先验已知的查找表、信息位位置、好位位置和每个被解码的位的深度。在遍历该表时,该算法导出附加的查找表,该附加的查找表的最大尺寸等于正被解码的块码中编码的信息位的数量,在其上执行排序例程,以确定迄今执行的路径列表中的哪些路径幸存以及哪个路径列表必须被杀死。maxStage查找表将当前坏位n映射到下一个坏位n+1。考虑将每个LLR存储器组拆分成多个级,maxStage查找表以信号告知当前坏位与下一个坏位之间经过的最大级。
更详细地,算法询问来自i=0...N的位指派,以识别第一个坏位,即info_bit[i]=1和good[i]≠1,在这个时候最大深度被设置为第一个坏位的深度。该算法然后继续询问剩余的位指派,直到遇到下一个信息位为止,在这个时候设置到下一个坏位的最大级。
本文描述的SCL解码器算法可以通过在每个坏位实例处分叉路径开始,直到获得预定数量的路径L。一旦算法已经倍增到L个路径,后续阶段就可以被配置为将2L个路径的每个分叉集合修剪成L个路径。可以根据与每个路径相关联的位统计量来执行修剪,使得更有可能是不正确解码的路径更有可能被修剪或放弃。一旦修剪开始,未被放弃的每个位路径将生成两个延长的位路径,并且这些延长的位路径之一(连同相关联的位统计量)可以被拷贝到其位路径被确定为被放弃的处理元件。在这种情况下,产生两个延长路径的处理元件可以被认为是“根”,而从根接收位路径的处理元件可以被认为是根的“分支”。
上面的参考文献2和4讨论了由SCL解码器处理一系列位所产生的路径的演变,并讨论了作为所包括的排序过程的结果的路径“杀死”(等同于修剪或放弃)和“克隆”(路径的复制)。这是典型的SCL解码器,并且在选择性替换解码中,需要跟踪活动(幸存)和不活动(被杀死的)路径及其相关联统计量。这种跟踪可以用被称为关系数据库(relDB)的维度L的基本表来完成,其将“根”路径与其位扩展的“分支”相关联。这个relDB数组将处理元件(PE)连接到来自路径j的位统计量;有关使用情况请参阅clonePath。当路径未被替换时,其relDB[PE]=PE,否则relDB[PE]≠PE。
在选择性替换解码中,clonePath的例程完成将位路径和相关联位统计量从一个处理单元拷贝到另一个处理单元的任务(步骤716)。clonePath将来自活动(幸存者)路径j的存储器位置的路径度量数据拷贝到用于其中一个被视为不活动的路径的PE的存储器位置。数据传送的尺寸基于当前位位置的深度已经达到那个位位置的maxStage来调节。clonePath算法描述如下:
Figure BDA0001668036650000171
在这个设计中,clonePath更新两个数据库,将路径(现在是分支)与其根目录关联的关系数据库,以及跟踪关联PE的LLR存储器组中数据的有效性的watermarkDB数据库。将数据从一个LLR处理器传送或存储器拷贝到另一个LLR处理器去除了在后续处理级期间存储器组冲突的影响,并且仅传送所需的存储器确保存储器传送符合后续处理级的复杂性。与一些以前的***不同,使用方法clonePath的存储器传送可以不需要定制,这可以减少交叉开关的影响和/或出现。但是,作为clonePath的结果,路径集合被分成根和分支。
更详细地说,该算法识别出PE=0...L-1集合中已经被视为不活动的每个路径,并将其与被视为的幸存路径中的一个路径j配对。如果当前坏位的深度已经达到那个路径的maxStage,那么将来自LLR存储器的数据的一部分,2^maxStage[bad_bit]从j拷贝到从存储器地址gLLR[PE][2^maxStage[bad_bit]]开始的PE路径(见图6)。否则,来自LLR存储器的数据的较小部分2^(maxStage[bad_bit]-depth[bad_bit])将从j拷贝到从存储器地址gLLR[PE][2^depth[bad_bit]]开始的PE路径。最后,针对那个层给maxStage加水印。
在一些情况下,在排序处理的几个阶段之后,可以发生一种情况,其中根被其分支幸存超出(out-survive)。例程inheritRoot被设计为处理其中路径幸存超出其根的情况(步骤718):
Figure BDA0001668036650000181
一旦处理了其根没有幸存的分支,就由例程updateBranches处理必须要为下一个级集合更新的分支(步骤720):
Figure BDA0001668036650000182
Figure BDA0001668036650000191
updateBranches将路径排序后的数据从幸存者存储器拷贝到被视为不活动路径中的一个。数据传送的尺寸基于当前位位置的深度已经达到那个位位置的maxStage而被调节。
在各种实施例中,这些公开的功能可以显著减少在克隆路径中传送的数据量。
延迟更新
在一些实施例中,延迟更新颠倒排序和替换操作,随后是updateLLR,以允许就地计算LLR更新,从而在执行下一个更新updateU计算的同时将结果指引到适当的目的地缓冲器。其目的是将数据通信“隐藏”在其它处理之下,以代替地最小化memcpy引发的开销。延迟更新与选择性更新的上述方法兼容,因为后者减少所需的数据移动,从而使其更容易隐藏是否与其它处理并行地执行。
图8是包括延迟更新操作的解码器操作的流程图。在一些实施例中,延迟更新操作可以发生在updateU步骤中。
在现有方法中,updateU步骤可以采取以下形式:
更新路径度量;
Figure BDA0001668036650000201
导致路径数量加倍(例如,从32到64)
选择最有可能的幸存者路径
指定剩余路径(行)以供替换
将(一个或多个)幸存者拷贝到替换缓冲器
恢复更新LLR
但是,这会导致功能单元在等待拷贝步骤时相对空闲。因此,在一些实施例中,updateU步骤可以采取以下形式:
更新路径度量;
Figure BDA0001668036650000202
导致路径数量加倍(例如,从32到64)
选择最有可能的幸存者路径
指定剩余路径(行)以供替换
在幸存者路径上立即执行updateLLR,包括就地计算“0”路
径和“1”路径,并将结果流式传输到本地缓冲器和替换缓冲器(其中一个计算出的路径可以被流式传输到本地缓冲器,另一个
被流式传输到替换缓冲器)
在这些实施例中,在拷贝操作之前,就地针对两个路径执行updateLLR。例如,在这些实施例中,可以使用memcpy或直接存储器访问(DMA)传送来执行拷贝。
示例性路径生成和克隆变体
在一些实施例中,不是每个阶段都为所有2L个路径更新路径度量,而是将解码器配置为首先选择在前以阶段中幸存的最可能的L/2个路径,对于这最可能的L/2个路径扩展位=0和位=1情况,并使用这些结果在下一阶段对L个路径继续。例如,这种技术可以与本文公开的各种其它技术结合使用,诸如延迟更新和选择性替换。
功能单元到路径的示例性映射以及优先级跟踪
在一些实施例中,解码器包括主处理元件,主处理元件被配置为维护一个或多个数据结构,以确定哪个处理元件负责哪个路径以及各个不同路径的相对优先级(例如,基于路径度量)。主处理元件还可以被配置为选择用于修剪的路径,指示处理元件传送用于克隆操作的路径数据,建立和拆除用于数据传送的通信路径,等等。在一些实施例中,主处理元件是如图2所示的多处理器阵列中的处理元件之一。在其它实施例中,主处理元件可以是专用功能单元。
在解码处理的每个阶段期间,路径的相对可能性可以改变,例如,如通过排序操作确定的。因此,主处理单元可以维护每个路径的相对优先级的映射。例如,在L为32的实施例中,给定阶段之后的当前最可能路径A可以被指派优先级0,而当前最不可能路径B可以被指派优先级31。但是,在后续阶段中,例如,路径A可以不再是最有可能的,并且可以被指派优先级7。另外,处理元件可以跟踪哪个路径被指派给哪个处理元件和/或本地缓冲器。这可以允许确定在解码处理结束时使用哪个存储器缓冲器来生成正确接收的数据位(这通常是基于在最后一个阶段结束时的路径度量的最可能路径,但是其它路径可以被选择,例如,如果另一个路径满足循环冗余校验而最可能路径不满足)。
在其它实施例中,功能单元、路径和优先级的映射可以以分布式方式执行(例如,没有主控制器),其中每个处理元件维护映射信息的至少一部分并且处理元件进行通信以确定在哪里进行修剪和克隆,例如,在给定的阶段中。
示例性路由技术
在一些实施例中,期望避免交叉开关,例如,以避免用于克隆操作的阶段之间的数据传送等待时间。在多处理器阵列(MPA)实施例中,例如,如图2中所示,解码器可以被配置为动态建立和拆除用于每个阶段的通信通路。例如,考虑示例性处理元件A、B和C。在第一阶段,处理元件A可以需要将其LLR统计量的缓冲器(或其一部分,例如使用选择性替换)传送到处理元件B(例如,处理元件B的路径可以已经被修剪)。在一些实施例中,解码器可以被配置为动态建立用于传送的路由,使得处理元件A可以简单地经由该路由发起DMA传送,然后忘记它。在一些情况下,可以执行路由,使得对于通信资源不存在冲突(例如,传送在相同阶段中不使用用于其它传送的数据存储器路由器,或者传送可以基于数据存储器路由器的吞吐能力与其它数据传送并行地执行)。在其它情况下,可以没有足够的通信资源来完全避免冲突的路由,但是在这些实施例中,处理元件A仍然可以开始DMA传送,并且只要在当前阶段中通信资源可用就会执行传送。处理元件A和处理元件B之间的路由可以在该阶段完成后拆除。在后续阶段中,考虑处理元件A现在需要将路径统计量传送到处理元件C的情况。在这个阶段中,解码器可以建立从处理元件A到处理元件C的路由。
因此,动态路由可以改善通信相对于交叉开关实现的性能和效率,并且可以通过上述MPA体系架构来启用。如图6中所示,缓冲器之间的直接路由可以消除对交叉开关的需要。在通信路由的集合可以在极性解码处理的每个阶段中改变的意义上,动态路由可以是“动态的”。
在一些实施例中,如上所述的主处理元件可以建立并拆除通信通路。在其它实施例中,各个处理元件(例如,(一个或多个)传送处理元件)可以被配置为建立和/或拆除通路。
图13示出了已被配置为实现L=8的极性解码器的示例性MPA。在所示的实施例中,PE 1-8被配置为在图6的缓冲器gLLR中的水平行上操作,并且可以各自运行SC解码器的单独实例。这些PE可以被配置为执行updateLLR阶段。在所示的实施例中,如上面根据一些实施例所描述的,PE 0被配置为主控制器。在一些实施例中,PE 0被配置为发送用于将LLR统计量传送到新路径的数据移动对指派。PE 1-8之间的路由被用于这个数据移动,并且可以针对每个阶段(例如,每个更新实例)动态地建立和拆除。例如,从PE 0到其它PE的路由可以被用于指派优先级、指示状态和/或发起数据移动。
示例性排序技术
在一些常规的SCL解码器实现中,由于对于SCL解码的数据传送挑战,路径排序操作的性能可以相对不重要。但是,通过使用上述技术,数据传送等待时间可以大大降低。在这种情况下,排序的性能可以对整体解码器性能有更大的影响。因此,排序技术的改善可能是期望的。
最佳排序
在一些实施例中,路径度量在位路径中记录估计的不确定性的运行总和。例如,对于每个冻结位判决,如果解码的冻结位与冻结位的已知值不同,那么可以增加路径度量。在这种情况下,路径度量可以增加等于冻结位的对数似然比的量值的量(即,如果冻结位被更自信地计算为不正确的位,那么路径度量以及因此路径中的不确定性将增加更大的量)。在这些实施例中,在将相关联的路径的长度增加时,路径度量将严格增加或保持相同。
具有最大路径长度L的常规SCL解码器算法将对2L个路径度量进行排序,一半的附加位被设置为0,另一半的附加位被设置为1。为了改善性能,在可能的情况下,可以期望最小化要排序的项的数量。在一些实施例中,可以使用尺寸为L和L/2的两个单独排序来执行2L个路径度量的排序,而没有质量损失。这种方法使用以下观察:更新后的路径度量保证等于或大于它们据其被更新的路径度量(PM)并且最多L/2个路径度量将被更新。
图9图示了根据一些实施例的示例性最优排序算法。可以针对L个路径中的每个路径遇到的坏位计算对数似然比(LLR)(步骤902)。正LLR可以指示坏位更可能是0,而负LLR可以指示坏位更可能是1。可以为L个路径中的每一个生成两个路径度量集合,PM和PM2。每个PM可以与附加更可能的坏位值的每个相应的路径相关联(即,如果坏位的LLR为正,那么PM与附加0的路径相关联,如果LLR为负,那么与附加1的路径相关联),并且每个PM可以被设置为等于在附加坏位值之前相应路径的路径度量(即,PM从前一个阶段保持不变)。每个PM2可以与附加不太可能的坏位值的每个相应路径相关联(即,如果坏位的LLR为正,那么PM2与附加1的路径相关联,如果LLR为负,那么与附加0的路径相关联),并且每个PM2可以被设置为等于在附加坏位值之前相应路径的路径度量加上相应坏位的LLR的绝对值(步骤904-908)。以这种方式,每个PM2将比其相关联的PM更大。
接下来,可以按照降序对PM集合进行排序(重复步骤916-920),并且可以按照升序对PM2集合进行排序(重复步骤930-932),这包括尺寸为L的两个排序。PM的最大值可以与PM2的最小值进行比较(步骤924)。取决于比较,可以有几个结果。
如果PM的最大值小于PM2的最小值,那么所有的PM2必定大于每个PM,并且可以放弃与PM2相关联的所有路径(步骤926,使用空合并算法,因为rep=1)。在这种情况下,解码处理可以以与PM相关联的路径继续。
如果PM的最大值大于PM2的最小值,那么一些PM2路径将替换一些PM路径(步骤934-936)。如下面所解释的,因为每个PM2严格大于其相关联的PM,所以最多L/2个路径将被替换。换句话说,小于PM(j)(使得PM2(i)路径可以替换PM(j)路径)的每个PM2(i)将与小于PM2(i)的PM(i)相关联,并且PM(i)路径不能被替换,因此最多可以发生L/2个替换。因此,只将PM降序列表中的前L/2个PM与PM2升序列表中的前L/2个PM2进行比较,以确定潜在的替换。换句话说,结果算法可以单独地保留最小L/2个现有PM(集合A),最大L/2个现有PM(集合B)以及最小L/2个PM2(集合C)。然后,它对集合C进行排序,并识别集合C可能取代集合B的地方。
因为排序列表所需的计算时间和资源随着列表尺寸呈指数增长,所以执行尺寸为L和L/2的顺序排序可以相比于尺寸为2L的单个排序提供大大改善的性能。此外,这些实施例中所获得的改善量可以随着列表尺寸L增加而增加。
低等待时间排序
前面的实施例描述了对长度为2L的列表进行最优排序的排序算法。换句话说,前面的实施例通过对列表中的每个条目进行排序来提供最优的弹性。在一些实施例中,可以期望以次最优的排序性能为代价来减少排序过程的等待时间。在这些情况下,如图10A的流程图中所示,可以对排序算法进行一个或多个以下调整的组合,以减少等待时间。
在一些实施例中,可以通过仅对路径的一小部分L-□(步骤1014)执行上述排序算法来减少计算时间和资源,其中□是参数。□的角色在图10b中以图形方式示出。在这些实施例中,可以选择□,以优化解码性能与等待时间/吞吐量之间的折衷。换句话说,增加□将以也减小解码的准确性为代价减小排序的尺寸。
在一些实施例中,如果PM的最大值大于PM2的最小值,那么PM的降序列表中的前L/2-η个PM可以与PM2的升序列表中的前L/2-η个PM2进行比较,以确定潜在的替换,其中η是整数参数(步骤928和1022)。η的角色在图10b中以图形方式示出。η可以起与□相当的功能,因为增加η可以以减小其准确性为代价来减小排序的尺寸。
在一些实施例中,在冻结位的群集未被命中的情况下,可以获得甚至更好的性能(使用尺寸为L/2的搜索)。在一些实施例中,群集是从1到N倍R的冻结位数,其中R是极性编解码器的速率。在一些实施例中,每次遇到冻结位时,更改路径度量。因此,可以只需要在冻结位被处理之后(例如,在下一个信息位(即,非冻结位)之前的群集结束处)执行排序,参见步骤916-920和1010)。
如果尚未遇到冻结位(步骤910、914和1008),那么上面进一步详细描述的算法可以确保列表针对下一个阶段被排序。在这种情况下,可以使用L/2排序来执行排序和选择(步骤916-920和1010)。这可以通过当冻结位未被遍历时跳过上述技术中PM和PM2的最初的L个排序来执行(步骤912和922),因为如果冻结位自前一个排序过程以来尚未被遍历,那么PM和PM2自前一个排序过程以来将不会改变。在一些实施例中,这可以导致L/2排序,从而进一步改善计算时间和资源。
在一些实施例中,可以基于用于每条路径的PM的排序次序来对每条路径的PM2进行排序(步骤1016-1018)。特别地,在一些实施例中,可以首先按照降序对PM进行排序(尺寸L排序)。然后可以按照PM排序的相反次序对PM2进行排序,而不需要第二个尺寸为L的排序的等待时间。每个PM2包括用于每个遇到的冻结位的累积路径度量,加上用于当前遇到的坏位的附加对数似然比。一旦遇到足够数量的冻结位,为坏位添加单个对数似然比就非常不可能改变PM2相对于PM的次序(即,单个LLR不太可能引入路径之间的大于大量冻结位的累积LLR的差异)。因此,在一些实施例中,一旦遇到预定阈值数量的冻结位,就可以期望按照与PM相反的次序对PM2进行排序。在其它实施例中,PM2可以总是按照与PM相反的次序排序。这些实施例可以显著减少计算等待时间,而对排序弹性仅有有限的影响。
图11是图示根据一些实施例的示例性合并算法的流程图。合并算法可以在完成图9中描述的最优排序算法之后使用。在步骤1102处,将merg计数器设置为零。在步骤1106处,对于从1到rep的iPath的每个值发起for循环,其中rep表示与图9的排序算法中的PM值进行比较的PM2值的数量。合并算法继续通过排序后的列表中的每个条目,然后重新排列列表,以将该列表返回到严格降序。对于图10A的低等待时间排序的情况,在步骤1024中图示了可比较的处理。
动态列表尺寸和共享变量
在一些实施例中,极性解码器被配置为在阶段之间动态调整列表尺寸。例如,即使解码器可以支持多达L个路径的并行处理,它也可以动态地确定执行少于L个路径。如下面所讨论的,这可以降低功耗和/或改善性能。
在各种情况下,路径可以快速收敛,使得可以使用相对少量的路径来完成输入位向量的解码。这可以通过允许未使用的PE进入低功率状态或指派给其它任务(诸如与解码其它码块相关联的任务)来降低功耗。在一些实施例中,解码器被配置为基于信噪比(SNR)、排序结果和/或信道LLR中的一个或多个来动态调整列表尺寸。在其它实施例中,动态调整列表尺寸的判决可以基于除了本文讨论的参数之外和/或代替这些参数的各种适当参数中的任何一个。所公开的技术可以用在移动设备和基站中。动态改变列表尺寸在基站中可以特别有效,其中信道条件对于不同用户可以差别很大。因此,基站可以被配置为针对其接收到的数据被同时解码的不同用户使用不同的列表尺寸。
在一些实施例中,解码器被配置为基于SNR动态增加或减小列表尺寸。例如,当SNR高于特定阈值时,解码器可以减小列表尺寸。当SNR高时,较少数量的并行路径可以降低功耗,而不会对解码性能产生不利影响。
在一些实施例中,解码器被配置为基于排序结果动态增加或减小列表尺寸。当可行路径列表开始收敛时,相同的路径可以对于多个阶段保持高排名。基于检测到这种情况,解码器可以通过消除其它路径来减小列表尺寸。例如,在其中M个路径保留在T个排名靠前的路径的集合中(其中M和T是整数并且T大于或等于M)的N个阶段之后,解码器可以减小列表尺寸,以仅保留排名靠前的路径。
在一些实施例中,解码器被配置为基于信道LLR(例如,作为来自解映射器的输入)来确定列表尺寸。这可以涉及计算其绝对值小于阈值的信道LLR值的数量N。列表尺寸L然后可以基于N(例如,使用N/block_size(块尺寸))来确定,。在一些实施例中,该列表然后基于路径度量的收敛(或其缺乏)而被修整或扩展。
上面讨论的技术也可以被组合,并且列表尺寸可以基于多个参数来确定。减小列表尺寸可以降低功耗,而不会显著降低性能。
另外,在一些实施例中,小列表尺寸可以允许进一步优化,以降低功耗和解码时间。图14是图示根据一些实施例的多处理器阵列中的示例性解码器部分的框图。所示实施例中的每个“路径处理器”包括被配置为处理一个路径的电路***,该路径例如可以包括多个PE和DMR。在所示实施例中,共享存储器A-E允许快速访问路径处理器0-3的任何两个或更多个处理器之间的共享变量。在一些实施例中,共享存储器可以被包括在DMR中。在一些实施例中,每个路径处理器被配置为在向内部存储器写入结果的同时将其极性码阶段结果写入共享存储器。在一些实施例中,这种抢先写入可以消除阶段之间的数据传送所涉及的等待时间,并且可以允许updateLLR立即使用共享存储器进行输入,只要做出新的路径指派即可。在一些实施例中,消除数据传送等待时间可以减少整体解码时间。这些技术有点类似于上面讨论的延迟更新技术,不同之处在于抢先写入发生在作为到下一个updateLLR实例的输入的事实之前,而不是在前面的就地updateLLR计算结束时经由消息发送数据。
一般来说,当列表尺寸减小使得存在一个或多个共享存储器可访问每对路径处理器并且具有足够的缓冲器空间用于潜在地在那些处理器之间共享的数据时,共享变量可以被用于阶段之间的所有传送,而不是路由数据。这图示了动态调整列表尺寸的另一个优点。
在一些实施例中,使用选择性更新技术来减小每个共享存储器中所需的缓冲器的尺寸。
当使用共享变量时可以消除其数据路由的路径的最大数量可以取决于共享存储器资源的可用性。例如,如果共享存储器A被消除,那么在图示的实施例中这个路径处理器数量将为2,因为路径处理器0和3以及1和2将不具有都可以访问的共享存储器。但是,在包括共享存储器A的所示实施例中,这个路径处理器数量是4。在所示实施例中,假设共享存储器A包括用于在路径处理器的所有集合之间共享变量的足够缓冲器空间,即使共享存储器B-E被消除,这也是真的。在其它实施例中,甚至更大的路径处理器组可以被充分互连,以使用专门用于在阶段之间传送数据的共享变量。
HyperX体系架构可以提供各种工具来动态判决何时使用共享变量还是其它数据路由技术(诸如消息传递、DMA传送等)。这些工具可以被用于在路径处理器之间指派通信机制(可以在每个解码阶段之间动态建立通信机制)。共享变量可以在MPA的各个位置分配。在一些实施例中,即使当共享变量不位于与两个相关处理器都物理相邻的共享存储器中时,也可以使用共享变量抢先写入位估计信息。相对于非抢先写入,这可以仍然是高效的,因为它可以避免以后等待写入。在共享变量在相关路径处理器立即可访问的共享存储器中被分配的实施例和情况下,可以有效地消除数据传送等待时间。
在一些实施例中,即使当也使用一些其它类型的数据路由时,也可以使用共享变量。例如,如果路径处理器0和路径处理器2需要交换数据,那么这可以使用共享变量来执行,同时路径处理器0也可以被配置为与其它路径处理器(未示出,与其不共享存储器)使用其它路由技术来交换数据。因此,在一些实施例中,路由器被配置为在每个解码阶段动态确定是否使用共享变量或其它路由技术用于数据传送。如上面所讨论的,在一些实施例中,也可以使用不位于共享存储器中的共享变量。
在一些实施例中,解码器被配置为以分层方式调度数据传送。例如,可以对用于每组N个处理器(例如,2个、4个等)的共享存储器执行抢先写入。共享存储器可以是每组路径处理器的中心。基于路径指派,然后可以在调度各组之间的其它类型的数据路由之前使用每个组内的共享变量来传送数据。
在一些实施例中,可以全部使用共享变量彼此通信的每组处理器可以作为一个单元(cell)被指派给解码器。在装置执行多个解码器的实施例中,当用于一个解码器的列表尺寸减小时,这可以释放可以随后被指派给另一个解码器的单元。在各种实施例中,以单元粒度向解码器指派处理资源可以允许处理资源向解码器的高效分配,这可以显著降低功耗。
***
本公开的实施例可以以各种形式中的任何一种来实现。例如,在一些实施例中,本发明可以被实现为计算机实现的方法、计算机可读存储介质或计算机***。在其它实施例中,本发明可以使用一个或多个诸如ASIC的定制设计的硬件设备来实现。在其它实施例中,本发明可以使用诸如FPGA的一个或多个可编程硬件元件来实现。
在一些实施例中,非瞬态计算机可读存储介质可以被配置为使得其存储程序指令和/或数据,其中程序指令如果由计算机***执行则使得计算机***执行方法,例如,本文描述的方法实施例中的任何一个,或本文描述的方法实施例的任何组合,或本文描述的方法实施例中的任何一个的任何子集,或这些子集的任何组合。
在一些实施例中,计算设备可以被配置为包括处理器(或一组处理器)和存储介质,其中存储介质存储程序指令,其中处理器被配置为读取并执行来自存储介质的程序指令,其中程序指令可执行以实现本文描述的各种方法实施例中的任何一个(或者本文描述的方法实施例的任何组合,或者本文描述的方法实施例中的任何一个的任何子集,或这些子集的任何组合)。设备可以以各种形式中的任何一种来实现。
虽然上面已经描述了具体实施例,但是这些实施例并不意在限制本公开内容的范围,即使当关于特定特征仅描述了单个实施例的时候也是如此。除非另有说明,否则在本公开内容中提供的特征的示例意在是说明性而不是限制性的。以上描述意在覆盖对受益于本公开内容的本领域技术人员显而易见的此类替代、修改和等同物。
本公开的范围包括本文中(明确地或隐含地)公开的任何特征或特征组合,或其任何概括,无论其是否缓解了本文针对的任何或所有问题。因而,可以在本申请(或要求其优先权的申请)对任何此类特征组合的申请期间制定新的权利要求。特别地,参照所附权利要求,来自从属权利要求的特征可以与独立权利要求的特征组合并且来自相应独立权利要求的特征可以以任何适当的方式组合,而不仅仅是以所附权利要求中列举的特定组合中。
其它实施例可以根据以下段落实现:
一种用于解码在信道上接收的编码数据的方法,其中所述解码包括:
从信道接收编码数据;
通过重复以下操作来解码编码数据:
在多个位路径上执行解码操作并生成位统计量,其中每个位路径是编码通信数据的一部分的潜在解码;
为了确定位路径的列表的新子集,基于位统计量对由处理元件生成的多个位路径的列表进行排序;
其中所述排序包括:
将与可能附加位值对应的多个位路径的第一列表和与不可能附加位值对应的多个位路径的第二列表按不同次序进行排序;以及
将第一新位路径的排序列表的至少一部分与第二新位路径的排序列表的至少一部分进行比较;
通过响应于所述比较而用来自第二新位路径的排序列表的一个或多个位路径替换第一新位路径的排序列表中的一个或多个位路径来创建位路径列表的新子集。
一种用于解码在信道上接收的编码数据的方法,其中所述解码包括:
从信道接收编码数据;
通过重复以下操作来解码编码数据:
在多个位路径上执行解码操作并生成位统计量,其中每个位路径是编码通信数据的一部分的潜在解码;
为了确定要被放弃的位路径的列表的子集,基于位统计量对由处理元件生成的多个位路径的列表进行排序;
其中所述排序包括:
对于位路径列表中的每个相应的位路径:
创建具有相关联的第一路径度量的第一新位路径,其中第一新位路径包括具有作为附加位添加的可能值的相应位路径;以及
创建具有相关联的第二路径度量的第二新位路径,其中第二新位路径包括具有作为附加位添加的不可能值的相应位路径,其中第二路径度量表示比第一路径度量更小的准确解码的可能性;
按照第一次序对第一新位路径的列表进行排序;以及
按照第二不同次序对第二新位路径的列表进行排序;
比较第一新位路径的排序列表的至少一部分与第二新位路径的排序列表的至少一部分;以及
响应于所述比较,用来自第二新位路径的排序列表的一个或多个位路径替换第一新位路径的排序列表中的一个或多个位路径。
一种用于解码在信道上接收的编码数据的方法,其中所述解码包括:
从信道接收编码数据;
通过重复以下操作来解码编码数据:
在多个位路径上执行解码操作并生成位统计量,其中每个位路径是编码通信数据的一部分的潜在解码;
为了确定要被放弃的位路径列表的子集,基于位统计量对由处理元件生成的多个位路径的列表进行排序;
其中所述排序包括:
对于位路径列表中的每个相应位路径:
计算与要添加到相应位路径的附加位相关联的位统计量,其中位统计量指示用于该附加位的可能值;
创建第一新位路径,该第一新位路径包括具有作为附加位添加的可能值的相应位路径;
创建第二新位路径,该第二新位路径包括具有作为附加位添加的不可能值的相应位路径;
将用于第一新位路径的路径度量设置为等于与相应位路径相关联的路径度量;
将用于第二新位路径的路径度量设置为等于与相应位路径相关联的路径度量加上相应位统计量的绝对值;
按照降序排列第一新位路径的列表;以及
按照升序排列第二新位路径的列表;
基于第一新位路径和第二新位路径的路径度量来比较第一新位路径的排序列表的至少一部分与第二新位路径的排序列表的至少一部分;
响应于所述比较,用来自第二新位路径的排序列表的一个或多个位路径替换第一新位路径的排序列表中的一个或多个位路径。
一种用于对接收到的编码通信数据执行连续消去列表(SCL)解码的***,所述***包括:
多个处理元件;以及
多个存储器,耦合到多个处理元件中的相邻处理元件;
其中所述***被配置为通过以下操作来解码接收到的编码通信数据:
由每个处理元件:
从存储器接收位路径,其中位路径是编码通信数据的一部分的潜在解码;
在位路径上执行解码操作;以及
至少部分地基于解码操作来生成用于位路径的位统计量;
其中在每个处理元件处接收的位路径共同包括位路径的第一列表;
其中在每个处理元件处生成的位统计量共同包括第一位统计量;
其中所述***还被配置为:
基于第一位统计量对位路径的第一列表进行排序;
基于对路径的第一列表的排序确定放弃位路径的第一列表的子集;以及
由与被确定为不被放弃的位路径相关联的每个相应处理元件:
生成两个延长的位路径;
将延长的位路径之一和由相应处理元件生成的位统计量从与相应处理元件相关联的第一存储器拷贝到与和被确定为要被放弃的第二位路径相关联的处理元件相关联的第二存储器。

Claims (18)

1.一种用于对接收到的编码通信数据执行连续消去列表(SCL)解码的***,所述***包括:
多个处理元件;以及
多个存储器,散布在所述多个处理元件之间并耦合到相邻的处理元件;
其中为了解码接收到的编码通信数据,所述***被配置为:
由所述处理元件中的每一个在相应位路径上执行解码操作并生成位统计量,其中相应位路径是编码通信数据的一部分的潜在解码;
为了确定要被放弃的位路径的列表的子集,基于所述位统计量对由所述处理元件生成的相应位路径的列表进行排序;
对于具有不被放弃的位路径的相应处理元件的至少一个子集:
生成两个延长的位路径;
将延长的位路径之一和由相应处理元件生成的位统计量从与相应处理元件相关联的第一存储器拷贝到与和被确
定为要放弃的第二位路径相关联的处理元件相关联的第二存储器,其中所述拷贝包括仅拷贝延长的位路径中与第二位路径中的对应位和/或位统计量不同的位和/或位统计量。
2.如权利要求1所述的***,
其中所述排序包括对列表的两个不同子集进行排序,其中每个子集不大于所述列表的尺寸的一半。
3.如权利要求1所述的***,
其中所述排序包括:
按照不同次序对与可能附加位值对应的多个位路径的第一列表和与不可能附加位值对应的多个位路径的第二列表进行排序;
将第一新位路径的排序列表的至少一部分与第二新位路径的排序列表的至少一部分进行比较;以及
响应于所述比较,通过用来自第二新位路径的排序列表的一个或多个位路径替换第一新位路径的排序列表中的一个或多个位路径来创建位路径列表的新子集。
4.如权利要求1所述的***,
其中对编码通信数据进行解码产生解码数据;以及
其中所述***还被配置为将解码数据存储在存储器中,其中解码数据是位路径中的选定位路径。
5.如权利要求1所述的***,
其中处理元件中的至少一个被指定为主处理元件,并且其中存储器包括互连所述多个处理元件的路由架构;
其中所述拷贝包括在路由架构中创建动态路由以完成所述拷贝;
其中所述***还被配置为:
由所述主处理元件传送用于创建到每个其它处理元件的动态路由的指令。
6.如权利要求1所述的***,其中所述***还被配置为:
对于具有不被放弃的位路径的相应处理元件的至少一个子集:
在两个延长的位路径上执行解码操作并生成更新后的位统计量,其中所述拷贝还包括拷贝与所拷贝的延长的位路径相关联的更新后的位统计量。
7.如权利要求6所述的***,
其中存储器包括互连所述多个处理元件的路由架构;
其中所述拷贝包括在所述路由架构中创建动态路由,以完成所述拷贝。
8.如权利要求6所述的***,
其中处理元件中的至少一个被指定为主处理元件;
其中所述***还被配置为:
由所述主处理元件传送用于创建到每个其它处理元件的动态路由的指令。
9.一种用于对接收到的编码通信数据执行连续消去列表(SCL)解码的方法,所述方法包括:
从信道接收编码通信数据;
通过重复以下操作来解码编码通信数据:
由包括在处理器内的多个处理元件执行解码操作,其中每个处理元件在位路径的第一列表中的相应位路径上执行解码操作,其中每个位路径是编码通信数据的一部分的潜在解码,其中执行解码操作包括生成与位路径中的位相关联的第一位统计量;
基于第一位统计量对位路径的第一列表进行排序;
基于位路径的第一列表的排序确定要放弃位路径的第一列表的子集;
从被确定为不被放弃的每个位路径生成两个延长的位路径,其中延长的位路径包括位路径的第二列表;以及
对于与被确定为不被放弃的位路径相关联的每个相应的处理元件:
将延长的位路径之一和与相应处理元件相关联的位统计量从与相应处理元件相关联的第一存储器拷贝到与和被确定为要放弃的第二位路径相关联的处理元件相关联的第
二存储器;
其中所述拷贝延长的位路径之一和位统计量包括仅拷贝延长的位路径中与第二位路径中对应的位和/或位统计量不同的位和/或位统计量。
10.如权利要求9所述的方法,所述方法还包括:
由与被确定为不被放弃的位路径相关联的每个处理元件:
在所述拷贝之前:
在两个延长的位路径上执行解码操作;
至少基于每个延长的位路径上的解码操作为两个延长的位路径中的每一个生成第二位统计量;
对于第二位统计量的至少一个子集附加地执行所述拷贝。
11.如权利要求9所述的方法,
其中所述解码编码通信数据对于连续较长的位路径执行多次,直到达到长于预定阈值的位路径。
12.如权利要求9所述的方法,其中位路径中的一半被确定为要被放弃。
13.如权利要求9所述的方法,
其中解码编码通信数据产生解码数据;以及
其中所述方法还包括将解码数据存储在存储器中,其中解码数据是位路径中的选定位路径。
14.如权利要求9所述的方法,
其中处理器还包括互连多个处理元件的路由架构;
其中所述拷贝包括在路由架构中创建动态路由以完成所述拷贝。
15.如权利要求9所述的方法,
其中处理器内的处理元件中的至少一个被指定为主处理元件;
其中所述方法还包括:
由主处理元件传送用于创建到每个其它处理元件的动态路由的指令。
16.一种计算机可读存储介质,包括用于对接收到的编码通信数据执行连续消去列表(SCL)解码的程序指令,其中程序指令可执行来:
从信道接收编码通信数据;
通过重复以下操作来解码编码通信数据:
由耦合到存储介质的处理元件执行解码操作,其中处理元件对位路径执行解码操作,其中位路径是编码通信数据的一部分的潜在解码,其中执行解码操作包括生成与位路径中的位相关联的第一位统计量;
接收不放弃位路径的通知;
接收第二存储介质与将被放弃的位路径相关联的通知;
生成两个延长的位路径;
将延长的位路径之一和第一位统计量的至少一个子集拷贝到第二存储介质;
其中所述拷贝延长的位路径之一和位统计量包括仅拷贝延长的位路径中与被放弃的位路径中对应的位和/或位统计量不同的位和/或位统计量。
17.如权利要求16所述的存储介质,其中程序指令还可执行来:
在所述拷贝之前:
在两个延长的位路径上执行解码操作;以及
至少基于每个延长的位路径上的解码操作为两个延长的位路径中的每一个生成第二位统计量;
对于第二位统计量的至少一个子集附加地执行所述拷贝。
18.如权利要求16所述的存储介质,其中解码编码通信数据还包括:
接收放弃位路径的通知;
从第三存储介质接收延长的位路径和与延长的位路径相关联的位统计量。
CN201680068088.8A 2015-11-24 2016-11-23 极性码连续消去列表解码器中的存储器管理和路径排序 Active CN108370255B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562259385P 2015-11-24 2015-11-24
US62/259,385 2015-11-24
US201562269744P 2015-12-18 2015-12-18
US62/269,744 2015-12-18
US201662277569P 2016-01-12 2016-01-12
US62/277,569 2016-01-12
PCT/US2016/063479 WO2017091655A1 (en) 2015-11-24 2016-11-23 Memory management and path sorting in a polar code successive cancellation list decoder

Publications (2)

Publication Number Publication Date
CN108370255A CN108370255A (zh) 2018-08-03
CN108370255B true CN108370255B (zh) 2022-04-12

Family

ID=57543209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680068088.8A Active CN108370255B (zh) 2015-11-24 2016-11-23 极性码连续消去列表解码器中的存储器管理和路径排序

Country Status (5)

Country Link
US (2) US9973301B2 (zh)
EP (2) EP3657684B1 (zh)
JP (1) JP6974319B2 (zh)
CN (1) CN108370255B (zh)
WO (1) WO2017091655A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107733446B (zh) * 2016-08-12 2019-06-07 华为技术有限公司 译码方法及设备、译码器
KR20180022175A (ko) * 2016-08-23 2018-03-06 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
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
US10523369B2 (en) * 2017-01-09 2019-12-31 Qualcomm Incorporated Mutual-information based recursive polar code construction
WO2018126496A1 (en) 2017-01-09 2018-07-12 Qualcomm Incorporated Bit allocation for encoding and decoding
US10985871B2 (en) * 2017-02-24 2021-04-20 Huawei Technologies Co., Ltd. Method to generate ordered sequence for polar codes
CN108574560B (zh) * 2017-03-13 2020-07-24 华为技术有限公司 一种编码方法、译码方法、装置和设备
KR102502529B1 (ko) 2017-03-23 2023-02-21 퀄컴 인코포레이티드 폴라 코딩을 위한 패리티 비트 채널 할당
CN108631916B (zh) * 2017-03-24 2020-03-31 华为技术有限公司 极化Polar码的速率匹配方法和装置、通信装置
WO2018192640A1 (en) * 2017-04-18 2018-10-25 Huawei Technologies Duesseldorf Gmbh Polar coding with dynamic frozen bits
KR20190138682A (ko) * 2017-04-20 2019-12-13 퀄컴 인코포레이티드 폴라 코드들에 대한 동적 고정 비트들 및 에러 검출
CN108809482B (zh) * 2017-04-28 2023-09-01 华为技术有限公司 Polar码的速率匹配方法及装置
CN108988873B (zh) * 2017-05-31 2021-08-20 华为技术有限公司 一种Polar码处理方法、译码器和终端
US10623138B2 (en) * 2017-06-02 2020-04-14 Qualcomm Incorporated Sequence-based polar code description
US10432357B2 (en) * 2017-06-02 2019-10-01 Qualcomm Incorporated Sequence-based polar code description
GB2563473B (en) * 2017-06-15 2019-10-02 Accelercomm Ltd Polar coder with logical three-dimensional memory, communication unit, integrated circuit and method therefor
CN109327278B (zh) * 2017-08-01 2020-08-25 华为技术有限公司 极化码的译码方法及装置
CN109391345B (zh) * 2017-08-04 2022-10-11 华为技术有限公司 一种Polar码编码方法及装置
US11201629B2 (en) * 2017-11-22 2021-12-14 Tsofun Algorithms Ltd. Low latency sequential list decoding of polar codes
US10581465B2 (en) * 2018-01-11 2020-03-03 Samsung Electronics Co., Ltd Special node (constituent code) processing for fast/simplified polar successive cancellation list (SCL) decoder
US10831231B1 (en) * 2018-03-28 2020-11-10 Xilinx, Inc. Circuit for and method of implementing a polar decoder
CN110752891B (zh) * 2018-07-24 2022-04-29 中兴通讯股份有限公司 极化码译码方法及装置、存储介质、电子装置
KR20200036338A (ko) * 2018-09-28 2020-04-07 삼성전자주식회사 무선 통신 시스템에서 극 부호를 이용한 부호화 및 복호화를 위한 장치 및 방법
CN111200439B (zh) * 2018-11-16 2022-05-06 华为技术有限公司 译码方法、装置及设备
WO2020106230A1 (en) * 2018-11-23 2020-05-28 Aselsan Elektroni̇k Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇ Hardware complexity reduction technique for successive cancellation list decoders
US11777533B2 (en) * 2018-11-27 2023-10-03 Telefonaktiebolagget LM Ericsson (Publ) Method for polar decoding with dynamic successive cancellation list size and polar decoder
CN111277276B (zh) 2018-12-05 2023-06-27 深圳市中兴微电子技术有限公司 一种排序方法及装置
KR20200102125A (ko) * 2019-02-21 2020-08-31 삼성전자주식회사 무선 통신 시스템에서 복호화에 대한 오경보를 검출하기 위한 장치 및 방법
CN109936377B (zh) * 2019-03-06 2021-06-25 西安电子科技大学 一种分段crc辅助的极化码编码和译码方法
US10868571B2 (en) * 2019-03-15 2020-12-15 Sequans Communications S.A. Adaptive-SCL polar decoder
CN111756384B (zh) * 2019-03-28 2022-08-26 华为技术有限公司 译码方法、装置及设备
US10727873B1 (en) * 2019-04-02 2020-07-28 Xilinx, Inc. System and method for successive cancellation list decoding of polar codes
US11271596B2 (en) * 2019-09-27 2022-03-08 Samsung Electronics Co., Ltd System and method for identifying and decoding Reed-Muller codes in polar codes
CN111224680B (zh) * 2019-11-29 2022-02-22 北京航空航天大学 一种低延时高可靠的极化码快速译码方法和译码器
US11836549B2 (en) * 2020-10-15 2023-12-05 Advanced Micro Devices, Inc. Fast block-based parallel message passing interface transpose
DE102020128918B3 (de) 2020-11-03 2022-02-24 Deutsches Zentrum für Luft- und Raumfahrt e.V. Dekodiervorrichtung und Verfahren zum Dekodieren
CN113949485B (zh) * 2021-08-31 2022-11-15 北京大学 一种区分噪声帧和极化码字帧的阈值盲检方法
US11784751B1 (en) * 2022-05-16 2023-10-10 Qualcomm Incorporated List size reduction for polar decoding
CN115296676B (zh) * 2022-08-04 2023-10-10 南京濠暻通讯科技有限公司 一种提升Polar译码LLR运算性能的方法
CN116073958B (zh) * 2023-03-14 2023-06-13 南京创芯慧联技术有限公司 译码方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180800A (zh) * 2005-05-18 2008-05-14 三星电子株式会社 用于在软件无线电***中使用的涡式译码器架构
CN104038234A (zh) * 2013-03-07 2014-09-10 华为技术有限公司 极性码的译码方法和译码器
CN104918063A (zh) * 2015-06-01 2015-09-16 中国农业大学 一种基于Polar码技术的可抗差错图像传输方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11143877A (ja) * 1997-10-22 1999-05-28 Internatl Business Mach Corp <Ibm> 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US7673224B2 (en) * 2006-09-12 2010-03-02 Agere Systems Inc. Low power viterbi decoder using a novel register-exchange architecture
EP3432152B1 (en) 2010-10-15 2020-03-18 Coherent Logix Incorporated Disabling communication in a multiprocessor system
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
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
US9503126B2 (en) * 2012-07-11 2016-11-22 The Regents Of The University Of California ECC polar coding and list decoding methods and codecs
KR101951663B1 (ko) * 2012-12-14 2019-02-25 삼성전자주식회사 Crc 부호와 극 부호에 의한 부호화 방법 및 장치
JP6481913B2 (ja) * 2015-01-26 2019-03-13 華為技術有限公司Huawei Technologies Co.,Ltd. Polar符号生成方法および装置
WO2017178056A1 (en) * 2016-04-14 2017-10-19 Huawei Technologies Co., Ltd. A metric sorter, a successive list cancellation decoder and metric sorting method
US20180091174A1 (en) * 2016-09-27 2018-03-29 Samsung Electronics Co., Ltd. Progressive polar channel coding in flash memory and communications
US10511328B2 (en) * 2016-11-04 2019-12-17 Qualcomm Incorporated Efficient list decoding of LDPC codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180800A (zh) * 2005-05-18 2008-05-14 三星电子株式会社 用于在软件无线电***中使用的涡式译码器架构
CN104038234A (zh) * 2013-03-07 2014-09-10 华为技术有限公司 极性码的译码方法和译码器
CN104918063A (zh) * 2015-06-01 2015-09-16 中国农业大学 一种基于Polar码技术的可抗差错图像传输方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hardware Architecture for List Successive Cancellation Decoding of Polar Codes;Alexios Balatsoukas-Stimming等;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS》;20140831;第61卷(第8期);609-613 *
New encoding scheme of polar codes;WANG Jun-xuan等;《The Journal of China Universities of Posts and Telecommunications》;20130215(第01期);95-98 *
一种极化-转发MIMO中继通信方案;彭军等;《小型微型计算机***》;20130915(第09期);52-58 *

Also Published As

Publication number Publication date
EP3381128B1 (en) 2020-01-01
JP2018535608A (ja) 2018-11-29
JP6974319B2 (ja) 2021-12-01
WO2017091655A1 (en) 2017-06-01
EP3657684B1 (en) 2022-08-31
US10110345B2 (en) 2018-10-23
CN108370255A (zh) 2018-08-03
EP3381128A1 (en) 2018-10-03
US9973301B2 (en) 2018-05-15
US20180241504A1 (en) 2018-08-23
EP3657684A1 (en) 2020-05-27
US20170149531A1 (en) 2017-05-25

Similar Documents

Publication Publication Date Title
CN108370255B (zh) 极性码连续消去列表解码器中的存储器管理和路径排序
US10171284B2 (en) Reachability-based coordination for cyclic dataflow
JP6555759B2 (ja) 構造化されたldpcのコーディング方法、デコーディング方法、コーディング装置及びデコーディング装置
US10411735B1 (en) Systems and methods for an iterative decoding scheme
Fan et al. A low-latency list successive-cancellation decoding implementation for polar codes
Yuan et al. Successive cancellation list polar decoder using log-likelihood ratios
CN103262425B (zh) 无竞争存储访问的***和方法
US20150236723A1 (en) Parallel VLSI architectures for constrained turbo block convolutional decoding
Ho et al. A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory
CN111786683B (zh) 一种低复杂度的极化码多码块译码器
Shen et al. Low-latency software successive cancellation list polar decoder using stage-located copy
Shen et al. Low-latency segmented list-pruning software polar list decoder
CN1168571A (zh) 使用踪迹消除方法的维特比译码器的生存者存储器
US20170041041A1 (en) System and Apparatus for Decoding Tree-Based Messages
Süral An FPGA implementation of successive cancellation list decoding for polar codes
CN108988873B (zh) 一种Polar码处理方法、译码器和终端
Che et al. Overlapped list successive cancellation approach for hardware efficient polar code decoder
CN110119328B (zh) 为了容错改进以时分方式利用嵌入有本地码的全局码进行迭代消息传递解码
JP7251615B2 (ja) 整列処理装置、整列処理方法、及びプログラム
CN112187286A (zh) 应用于ccsds卫星深空通信的多模式ldpc译码器
CN113708892B (zh) 基于稀疏二分图的多模通用译码***及方法
Mouhoubi et al. Low Latency Architecture Design for Decoding 5G NR Polar Codes
Xu Algorithm Development and VLSI Implementation of Energy Efficient Decoders of Polar Codes
Liu et al. A Low Latency Hardware Implementation Architecture for Polar Code
Rehman Designing Optimized parallel interleaver architecture for Turbo and LDPC decoders

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