CN104639181A - 基于格式结构方法的并行执行 - Google Patents

基于格式结构方法的并行执行 Download PDF

Info

Publication number
CN104639181A
CN104639181A CN201510086662.XA CN201510086662A CN104639181A CN 104639181 A CN104639181 A CN 104639181A CN 201510086662 A CN201510086662 A CN 201510086662A CN 104639181 A CN104639181 A CN 104639181A
Authority
CN
China
Prior art keywords
data sequence
symbol data
group
processor
information
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.)
Granted
Application number
CN201510086662.XA
Other languages
English (en)
Other versions
CN104639181B (zh
Inventor
D·B·德鲁姆
J·P·古拉伯
J·D·加马尼
K·L·谢尔比
M·B·多尔
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 CN104639181A publication Critical patent/CN104639181A/zh
Application granted granted Critical
Publication of CN104639181B publication Critical patent/CN104639181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation
    • 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
    • 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/6569Implementation on processors, e.g. DSPs, or software 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/0045Arrangements at the receiver end
    • H04L1/0054Maximum-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)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)

Abstract

涉及基于格式结构方法的并行执行。一种从符号数据序列Y恢复信息的接收机系统和方法。符号数据序列Y对应于由发射机发送到信道上的符号数据序列X,符号数据序列X由发射机根据相关联的信息位产生。在接收机处,第一组两个或更多个处理器并行地操作符号数据序列Y的两个或更多个重叠子序列,其中符号数据序列Y的两个或更多个重叠子序列的每一个都对应于网格的相应部分。所述网格描述符号数据序列Y中的冗余。并行操作的动作为相关联的信息位产生软估计。软估计用于形成相关联信息位所对应的接收消息。

Description

基于格式结构方法的并行执行
本申请是申请日为2010年6月17日、申请号为201080026721.X,发明名称为“基于格式结构方法的并行执行”的发明专利申请的分案申请。
技术领域
一般来说,本发明涉及电信领域,更确切地说,涉及执行基于网格方法的系统和方法,在并行处理环境中进行解调、解码和/或均衡。
背景技术
基于网格的方法包括若干方法,比如维特比解码、维特比均衡、加速解码(turbo解码)和加速均衡(turbo均衡)。基于网格的方法计算密集。因此,基本上需要针对这个问题的机制,更确切地说,使能够执行基于网格的方法的速度最高的机制。不仅如此,为了提升接收机功能的灵活性,一般需要接收机系统和无线电系统能够以软件执行信号处理操作。
软件定义的无线电(SDR)系统是无线电通信系统,其中典型情况下一直以硬件实施的若干组件(如混频器、滤波器、放大器、调制器/解调器、检测器等)被改为使用计算机系统上的软件实施。基本的SDR可以包括射频(RF)前端,它经由模数转换器被连接到计算机系统。显著量的信号处理由计算机系统执行,而不是使用专用的硬件。这种基于软件设计产生的无线电简单地通过运行不同的软件就能够接收和发射不同形式的无线电协议(有时称为波形)。
期望对实施软件定义的无线电的系统和方法进行改进。
在加速均衡的语境中,发射机接收来自信息源的位流{ak}。发射机(如使用纠错码)对该位流编码以产生编码位流。发射机还可以根据定义的排列对该编码位流中的每个数据块进行交织以产生交织的位流。发射机将交织的位流映射到从符号集(即丛)中提取的符号序列{xk}。发射机根据该符号序列调制载波信号以产生调制后的载波。发射机将调制后的载波传送到某信道上。接收机拾取(或接收)发送信号的被噪声破坏的形式。接收机解调接收的信号以获得符号序列{yk}。接收机然后使用加速均衡方法对该符号序列{yk}运算以产生对于原始位流{ak}的若干位的估计。正如以上指出,需要能够以更高速度执行加速均衡的系统和方法。
发明内容
在一组实施例中,从接收的符号数据序列Y恢复信息的方法可以包括下列动作。从信道接收符号数据序列Y。所述符号数据序列Y对应于由发射机发送到所述信道上的符号数据序列X,其中所述符号数据序列X由所述发射机根据相关联的信息位产生。第一组两个或更多个处理器并行地操作所述符号数据序列Y的两个或更多个重叠子序列,其中所述符号数据序列的所述两个或更多个重叠子序列的每一个都对应于第一网格的相应部分。所述第一网格描述所述符号数据序列中的冗余。并行操作的动作为所述相关联的信息位产生软估计。所述软估计用于形成对应于所述相关联的信息位的接收消息。
在一个实施例中,所述方法实施了维特比解码。在另一个实施例中,所述方法实施了维特比均衡。在再一个实施例中,所述方法包括了附加操作以便实施加速解码过程。在再一个实施例中,所述方法包括了附加操作以便实施加速均衡过程。
在某些实施例中,所述第一组的两个或更多个处理器使用反馈数据序列的两个或更多个相应重叠子序列,并行地操作所述符号数据序列Y的两个或更多个重叠子序列;并且第二组的两个或更多个处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或多个重叠子序列。去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分。所述第二网格具有的结构对应于卷积编码(所述卷积编码由所述发射机执行;所述卷积编码操作原始信息位以产生编码位,然后将其进行交织以获得所述相关联的信息位)。对去交织形式的两个或更多个重叠子序列进行并行操作的动作为所述编码位产生软估计。所述反馈数据序列是对所述编码位的软估计的交织形式。所述方法可以包括以交替的方式重复所述第一组处理器的动作和所述第二组处理器的动作,例如直到满足了终止准则。
在某些实施例中,所述第一组的两个或更多个处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D网格。同样,所述第二组的两个或更多个处理器也可以选自处理器的所述阵列。
在一组实施例中,系统可以被配置如下以用于对从信道接收的符号数据序列Y进行操作,其中所述符号数据序列Y对应于由发射机发送到所述信道上的符号数据序列X,其中所述符号数据序列X根据相关联的信息位产生。所述系统可以包括第一组两个或更多个处理器,每一个处理器都配置有第一程序代码,其中所述第一程序代码由所述第一组的处理器执行时,使所述第一组的处理器(a)并行地操作所述符号数据序列Y的两个或更多个重叠子序列。所述符号数据序列Y的两个或更多个重叠子序列的每一个都对应于第一网格的相应部分。所述第一网格描述所述符号数据序列Y中的冗余。并行操作的动作为所述相关联的信息位产生软估计。所述软估计用于形成对应于所述相关联的信息位的接收消息。
在某些实施例中,所述第一组的两个或更多个处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D网格。
在某些实施例中,所述系统可以被配置为执行维特比解码或维特比均衡。在其他实施例中,所述系统可以被加强以执行加速解码或加速均衡。
在某些实施例中,所述第一程序代码由所述第一组的处理器执行时,使所述第一组的处理器对多个所接收的符号数据序列的每一个执行动作(a)。
在所述加速实施例中,所述发射机通过原始信息位的卷积编码以得到编码位以及通过所述编码位的交织,来产生所述相关联的信息位。不仅如此,所述动作(a)包括第一组的两个或更多个处理器使用反馈数据序列的两个或更多个相应重叠子序列,并行地操作所述符号数据序列的两个或更多个重叠子序列;并且所述系统另外包括了配置有第二程序代码的第二组两个或更多个处理器。所述第二程序代码由所述第二组的处理器执行时,使所述第二组的处理器(b)并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列,其中去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分。所述第二网格具有对应于所述卷积编码的结构。对去交织形式的两个或更多个重叠子序列进行并行操作的动作为所述编码位产生软估计。所述反馈数据序列是对所述编码位的软估计的交织形式。
所述第一组的两个或更多个处理器以及所述第二组的两个或更多个处理器被编程以便以交替的方式分别执行(a)和(b)多次。
在加速实施例中,可以将所述系统配置为执行一项或多项以下操作:回顾解增信删余(即使用先前由所述第二组处理器算出的结果解增信删余);随着迭代次数的增加逐步将本征信息混合到在所述两组处理器之间被前馈和反馈的所述软估计中;随着所述迭代次数增加和/或作为SNR的函数降低邻近子序列之间的重叠量;以及只要在所述向前或向后穿过网格时出现了零向量便进行零向量置换。
在一组实施例中,执行加速均衡的方法可以包括:(a)从信道接收符号数据序列Y,其中所述符号数据序列Y对应于被发送到所述信道上的符号数据序列X,其中所述符号数据序列X根据原始的信息位产生;(b)第一组的两个或更多个处理器使用反馈信息交织形式的两个或更多个对应的子序列,对所述符号数据序列Y的两个或更多个重叠子序列并行地执行解调过程,以便产生前馈信息;(c)第二组的两个或更多个处理器对前馈信息的去交织形式的两个或更多个重叠子序列并行地执行解码过程,以便产生反馈信息;(d)重复包括(b)和(c)的一组操作;以及(e)第三组的两个或更多个处理器并行地操作,以便从所述前馈信息的去交织形式的两个或更多个重叠子序列产生所述原始信息位的软估计。所述软估计用于形成与所述原始信息位对应的接收消息。
在某些实施例中,所述第三组处理器与所述第二组处理器一致(或重叠)。
在某些实施例中,所述第一组处理器与所述第二组处理器一致(或重叠)。
在一组实施例中,接收发送的信息的方法可以包括:(a)在信道上接收符号数据序列Y,其中所述符号数据序列Y对应于被发送到所述信道上的符号数据序列X,其中所述符号数据序列X根据原始的信息位产生;(b)第一组的两个或更多个处理器使用反馈数据序列的两个或更多个对应的子序列,对所述符号数据序列Y的两个或更多个重叠子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块;(c)第二组的一个或多个处理器对从前馈信息的所述两个或更多个对应块装配的第一合成序列执行去交织,以便产生修改的数据序列;(d)第三组的两个或更多个处理器对所述修改的数据序列的两个或更多个重叠子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块;(e)第四组的一个或多个处理器对从反馈信息的所述两个或更多个块装配的第二合成序列执行交织,以便产生所述反馈数据序列;(f)重复包括(b)、(c)、(d)和(e)的一组操作;以及(g)所述第三组的两个或更多个处理器对所修改的数据序列的两个或更多个对应的子序列并行地操作,以便产生所述原始信息位的软估计。所述软估计用于形成与所述原始信息位对应的接收消息。
在某些实施例中,所述第一、第二、第三和第四组的处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D网格。
在某些实施例中,所述第一、第二、第三和第四组的处理器是互不相交的组。
在某些实施例中,所述第一组的两个或更多个处理器与所述第三组的两个或更多个处理器一致(或重叠)。
在某些实施例中,所述第二组的一个或多个处理器与所述第四组的一个或多个处理器一致(或重叠)。
在一组实施例中,解调和/或解码系统并行化至少消息-传递算法的解调和解码组件。所述解调组件对接收的符号序列的重叠子序列和反馈序列的相应重叠子序列并行地执行,从而产生前馈信息。在解增信删余和去交织后,所述解码组件并行地处理所述前馈信息的重叠子序列,从而产生反馈信息。所述反馈信息被交织和增信删余以获得所述反馈序列,在所述下一次迭代中由所述解调组件使用。所述系统的多种实施例还可以包括若干特征,比如代码覆盖、逐步的本征反馈、回顾解增信删余以及处理全零状态的过程。
在一组实施例中,接收发送的信息的方法可以被执行如下。所述方法可以包括:(a)接收符号数据序列;(b)第一组的两个或更多个处理器使用反馈数据序列的两个或更多个对应的子序列,对所述符号数据序列的两个或更多个对应的子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块;(c)第二组的一个或多个处理器对从前馈信息的两个或更多个块所装配的第一合成序列执行解增信删余和去交织,以便产生修改的数据序列;(d)第三组的两个或更多个处理器对所述修改的数据序列的两个或更多个对应的子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块;以及(e)第四组的一个或多个处理器对从反馈信息的所述两个或更多个块装配的第二合成序列执行交织和增信删余,以便产生所述反馈数据序列。包括(b)、(c)、(d)和(e)的一组操作可以重复许多次,如直到达到收敛。不仅如此,所述第三组的处理器可以并行地操作,根据所述修改数据序列的两个或更多个对应的子序列产生原始信息位的软估计(如LLR)。可以对所述软估计执行硬限制以得到所述原始信息位的硬估计。
根据所述硬估计可以形成接收消息。所述接收消息可以通过输出设备呈现给用户,或者传送到网络上,或者进行存储以备将来的存取或传送。在一个实施例中,所述接收消息被转换为输出信号,并且所述输出信号被用于构成用户数据包。
在某些实施例中,所述第一、第二、第三和第四组的处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D矩形网格(或更高维的网格)。
在某些实施例中,由所述第一组处理器执行的所述解调过程产生关于被传送符号的本征和非本征信息;并且所述第一组处理器基于所述本征信息和所述非本征信息的混合产生所述前馈信息块。作为所述操作组当前完成的重复次数的函数,可以增加所述混合中包括的所述本征信息量。
在某些实施例中,由所述第三组处理器执行的所述解码过程产生关于编码位的本征和非本征信息;并且所述第三组处理器基于所述本征信息和所述非本征信息的混合产生所述反馈信息块。作为所述操作组当前完成的重复次数的函数,可以增加所述混合中包括的所述本征信息量。
在某些实施例中,所述符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,在此所述前向收敛区域被用于获得所述解调过程的前向网格遍历中的收敛,但是不被用于产生前馈信息的所述对应块。
在某些实施例中,所述方法也可以包括作为所述操作组当前完成的重复次数的函数,缩短所述前向收敛区域的长度。
在某些实施例中,所述符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,在此所述后向收敛区域被用于获得所述解调过程的后向网格遍历中的收敛,但是不被用于产生前馈信息的所述对应块。
在某些实施例中,所述解增信删余的动作包括向所述修改数据序列的增信删余位置中注入先前计算的值,其中所述先前计算的值是来自在所述操作组的先前重复中由所述解码过程计算的反馈信息块的指定元素。
在某些实施例中,所述解调过程包括第一组的每个处理器都执行前向穿过和后向穿过对应的解调网格,其中在所述第一组处理器的给定一个中,所述前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断设置所述α向量等于向量E,其中所述向量E的全部分量都等于小正值。
在某些实施例中,所述解码过程包括第三组的每个处理器都执行前向穿过和后向穿过对应的解码网格,其中在所述第三组处理器的给定一个中,所述前向穿过包括:在给定的数据位置计算α向量;并且响应所述α向量等于零向量的判断设置所述α向量等于所述向量E,其中所述向量E的全部分量都等于小正值。
在一组实施例中,恢复发送的信息的方法可以包括处理器阵列对接收的数据序列执行消息传递算法,其中执行消息传递算法的动作包括执行许多处理迭代,其中每个处理迭代都包括:(1)所述阵列中第一子组的两个或更多个处理器使用反馈数据序列的对应部分,对所接收的符号序列的重叠部分并行地执行解调过程以便获得前馈信息;以及(2)所述阵列中第二子组的两个或更多个处理器对所述前馈信息的去交织和解增信删余形式的重叠部分并行地执行解码过程以便获得反馈信息,其中所述反馈数据序列是所述反馈信息的交织和增信删余形式。
在一组实施例中,接收信息的方法可以被执行如下。所述方法可以包括:(a)接收符号数据序列;(b)第一组的两个或更多个处理器使用反馈数据序列的两个或更多个对应的子序列,对所述符号数据序列的两个或更多个对应的子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块;(c)第二组的一个或多个处理器对从前馈信息的两个或更多个块所装配的第一合成序列执行解增信删余和去交织,以便产生修改的数据序列;(d)所述第一组的两个或更多个处理器对所述修改的数据序列的两个或更多个对应的子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块;以及(e)所述第二组的一个或多个处理器对从反馈信息的所述两个或更多个块装配的第二合成序列执行交织和增信删余,以便产生所述反馈数据序列。包括(b)、(c)、(d)和(e)的一组操作可以重复许多次。不仅如此,所述第一组的两个或更多个处理器可以并行地操作,根据所述修改数据序列的两个或更多个对应的子序列产生原始信息位的软估计。可以对所述软估计执行硬限制以得到所述原始信息位的硬估计。
根据所述硬估计可以形成接收消息。所述接收消息可以通过输出设备呈现给用户,或者传送到网络上,或者进行存储以备将来的存取或传送。在一个实施例中,所述接收消息被转换为输出信号,并且所述输出信号被用于构成用户数据包。
在某些实施例中,所述第一和第二组的处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D矩形网格(或更高维的网格)。
在某些实施例中,所述解调过程产生关于被传送符号的本征和非本征信息;并且所述第一组处理器基于所述本征信息和所述非本征信息的混合产生所述前馈信息块。作为所述操作组当前完成的重复次数的函数,可以增加所述混合中包括的所述本征信息量。
在某些实施例中,所述解码过程产生关于编码位的本征和非本征信息;并且所述第一组处理器基于所述本征信息和所述非本征信息的混合产生所述反馈信息块。作为所述操作组当前完成的重复次数的函数,可以增加所述混合中包括的所述本征信息量。
在某些实施例中,所述符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,在此所述前向收敛区域被用于获得所述解调过程的前向网格遍历中的收敛,但是不被用于产生前馈信息的所述对应块。
在某些实施例中,所述符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,在此所述后向收敛区域被用于获得所述解调过程的后向网格遍历中的收敛,但是不被用于产生前馈信息的所述对应块。
在某些实施例中,所述解增信删余的动作包括向所述修改数据序列的增信删余位置中注入先前计算的值,其中所述先前计算的值是来自在所述操作组的先前重复中由所述解码过程计算的反馈信息块的指定元素。
在某些实施例中,所述解调过程包括第一组的每个处理器都执行前向穿过和后向穿过对应的解调网格,其中在所述第一组处理器的给定一个中,所述前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断设置所述α向量等于向量E,其中所述向量E的全部分量都等于小正值。
在某些实施例中,所述解码过程包括第一组的每个处理器都执行前向穿过和后向穿过对应的解码网格,其中在所述第一组处理器的给定一个中,所述前向穿过包括:在给定的数据位置计算α向量;并且响应所述α向量等于零向量的判断设置所述α向量等于所述向量E,其中所述向量E的全部分量都等于小正值。
在某些实施例中,其中(b)的每次重复都包括将解调程序加载到所述第一组的每个处理器的指令存储器中,其中所述解调程序由所述第一组的每个处理器执行时,使得所述处理器对所述对应符号数据子序列和所述反馈数据序列的对应的子序列执行前向/后向算法;以及(d)的每次重复都包括将解码程序加载到所述第一组的每个处理器的所述指令存储器中,其中所述解码程序由所述第一组的每个处理器执行时,使得所述处理器对所修改的数据序列的对应的子序列执行前向/后向算法。
在一组实施例中,恢复发送的信息的方法可以包括处理器阵列对接收的数据序列执行消息传递算法,其中执行消息传递算法的动作包括执行许多处理迭代,其中每个处理迭代都包括:(1)所述阵列中第一子组的处理器使用反馈数据序列的对应部分,对所接收的符号序列的重叠部分并行地执行解调过程以便获得前馈信息;以及(2)所述第一子组的处理器对所述前馈信息的去交织和解增信删余形式的重叠部分并行地执行解码过程以便获得反馈信息,其中所述反馈数据序列是所述反馈信息的交织和增信删余形式。
附图说明
连同以下附图考虑下面的详细说明时,能够得到对本发明实施例的更好理解,其中:
图1A展示了接收发送的信息所用方法的一组实施例;
图1B展示了接收发送的信息所用系统的一组实施例;
图2是根据某些实施例,通信系统100的框图;
图3展示了发射机的实施例110;
图4是由接收机所执行的处理操作的框图;
图5是滤波器一个实施例310的频率响应图;
图6是根据一个实施例,解调网格的状态表;
图7是卷积编码器一个实施例210的框图;
图8显示了用于实施图4中处理操作的多处理器计算系统的一个实施例;
图9显示了图4中处理操作的流水线化和并行化组织;
图10显示了图4中处理操作的替代流水线化和并行化组织;
图11显示了根据一个实施例,用于发送和接收符号的数据包结构;
图12显示了八个重叠窗口的实例,覆盖了该接收数据包的第一有效负载序列;
图13A展示了用于有效负载序列中窗口的前向计算区间和前向运行开始区间;
图13B展示了用于有效负载序列中窗口的后向计算区间和后向运行开始区间;
图14展示了用于两个连续窗口的运行开始区间与输出区域之间的关系;
图15A展示了处理所接收的符号以恢复发送的信息的方法的一个实施例;
图15B展示了处理所接收的符号以恢复发送的信息的系统的一个实施例;
图16A展示了处理所接收的符号以恢复发送的信息的方法的替代实施例;
图16B展示了处理所接收的符号以恢复发送的信息的系统的替代实施例;
图17是根据接收机的一组实施例120,用于CC模式数据速率的SNR目标表;
图18是框图,展示了处理系统的一个实施例,本文称为数学矩阵算法处理器(MMAP);
图19是框图,展示了MMAP连接模式的一个实施例;
图20是框图,展示了处理器的一个实施例,也称为可动态配置的处理器(DCP);
图21是框图,展示了可动态配置的通信单元(DCC)的一个实施例;
虽然本发明允许多种修改和替代形式,但是在附图中举例显示了其特定实施例并且本文详细地进行了说明。不过应当理解,其附图和详细说明并非试图将本发明限制为所公开的特定形式,而是相反,本发明要覆盖落入由附带的权利要求书所定义的本发明的实质和范围内的一切修改、等效内容和替代。
具体实施方式
引用参考
由发明人为M.B.Doerr等于2003年6月24日提交、2008年8月19日授权的标题为“Processing System With Interspersed StallPropagating Processors And Communication Elements”的7,415,594号美国专利,其全部内容在此引用作为参考,仿佛本文充分全面地阐述。‘594专利介绍了多处理器架构,本文有时称之为“HyperX”架构,可以用于实施本发明的某些实施例。
下列各项是本文使用的首字母缩写词的列表。
BER  位误码率
CPM  连续相位调制
DFE  决策反馈均衡
DMR  数据存储器和路由单元
DBPSK  差分二进制相移键控法
DEC  解码器
EQ/D  均衡器/解调器
FIR  有限脉冲响应
kb/s  每秒千位
LLR  对数似然比例
LUT  查找表
MAP  最大后验概率
Mb/s  每秒兆位
MPM  消息传递方法
MSK  最小位移键控法
PE  处理单元
QBL-MSK  准限带的MKS
SISO  软-输入/软-输出
SLICE  士兵级的集成通信环境
SNR  信噪比
SRW  士兵无线电波形
本发明的各种实施例涉及对接收的信号进行基于网格处理的系统和方法,以实现对收到信号的解调、解码和/或均衡。例如,本发明的若干实施例可以被用于基于网格的方法,比如维特比解码、维特比均衡、加速解码和加速均衡等等。
涉及基于网格的方法是因为关于由解码器故意地引入或者由通信信道偶然地引入的冗余描述了该方法的构成处理块(如解调器、解码器和/或均衡器)。这种冗余可以依据网格描述,它基于发射机对位进行编码的方式或者基于在表示信道响应的分支延迟线的输出处接收的样本之间的相互关系。
维特比解码表示基于网格解码的一般方法并连同在发射机的卷积编码被使用。采用卷积编码以有意地向被发送符号流添加冗余。
维特比均衡描述了符号检测的方法,它基于信道引入的冗余。维特比均衡设法使收到符号与参考丛之间的差异度量最小化,其中参考丛中的点从估算的信道响应中导出。在线性均衡或决策反馈均衡(DFE)的显式方法证实或者存在问题或者在计算上难处理的情况下,能够使用维特比均衡。
迭代(也称为加速(Turbo))方法建立在基于网格的方案上,方式为使用在循环结构中配置的两个或更多个基于网格的单元,其中每个单元或者是解调器或者是解码器。(例如,加速解码可以使用两个解码器;加速均衡可以使用一个解调器和一个解码器。)这些单元在迭代循环中交换“软”可靠性估计以最小化误码概率。迭代方法已经显示出在香农极限的小dB数量内传递性能,从而证明多次迭代添加复杂度值得。
在一组实施例中,计算方法10可以涉及图1A所示的操作。
在15,从某信道收到了符号数据序列Y,其中符号数据序列Y对应于由发射机发送到该信道上的符号数据序列X。符号数据序列Y可能是符号数据序列X的被噪声破坏的和/或被信道失真的形式。(例如,信道可以引入失真比如多径。)发射机根据相关联的信息位产生符号数据序列X。例如,发射机产生符号数据序列X的方式可以是对相关联的信息位执行卷积编码。作为另一个实例,发射机产生符号数据序列X的方式可以是将相关联的信息位(或相关联的信息位的若干组)映射到某符号组(即丛)中的若干符号。
在20,第一组的两个或更多个处理器并行地操作符号数据序列Y的两个或更多个重叠子序列。符号数据序列Y的这两个或更多个重叠子序列的每一个都对应于第一网格的相应部分。(该网格部分可以以与子序列相同的方式重叠。)第一网格描述在符号数据序列Y中的冗余,如具有表示符号数据序列中冗余的结构。并行操作的动作为相关联的信息位产生软估计。
第一组处理器的每一个处理器都可以基于符号数据序列Y的重叠子序列的对应一个产生软估计的对应的子序列。正如展示,每个处理器都可以:操作对应的符号数据子序列以便在第一网格的相应部分之上产生网格的数据值;以及基于该网格数据值的子集产生软估计的对应的子序列。(例如,在维特比解码和维特比均衡的情况下,网格的数据值可以包括分支度量和路径度量。在加速解码和加速均衡的情况下,网格的数据值可以包括前向遍历中算出的α值和后向遍历中算出的β值。)在该子集之外的网格数据值可以丢弃,即不用于产生任何软估计。例如,对应于符号数据子序列与(左右边)其邻近符号数据子序列之间重叠部分的网格数据值可以丢弃。作为另一个实例,符号数据子序列与其左邻之间重叠部分所对应的网格数据值可以丢弃。
术语“重叠子序列”意味着暗示每个所述子序列与其邻近子序列至少部分重叠,而不是每个子序列与所有其他子序列重叠。(注意,这些子序列的第一个将仅仅具有右邻,而这些子序列的最后一个将仅仅具有左邻。从而,所述第一个子序列将有在其右端重叠的一部分,而所述最后一个子序列将有在其左端重叠的一部分。)
第一组处理器的每一台对符号数据序列Y的两个或更多个子序列的对应一个进行操作。不过,也设想了其他实施例。例如,在某些实施例中,每个处理器对两个或更多个子序列进行操作。在其他实施例中,由第一组的两个或更多个处理器对这些子序列的每一个进行操作。
正如以上指出,符号数据序列的两个或更多个重叠子序列的每一个都对应第一网格的相应部分;这些网格部分可以以与符号数据序列Y的对应的子序列相同的方式重叠。第一组处理器的每一个处理器都保持与第一网格的对应部分同构(即具有相同的形式和结构)的小网格;并且使用其小网格对符号数据序列Y的对应的子序列进行操作。从而,当这些处理器对其相应的子序列进行操作时它们彼此不干扰。
正如以上介绍,并行操作的动作为相关联的信息位产生软估计。在某些实施例中,这些软估计是相关联的信息位所对应的用户形式的(或可用于形成)接收消息。例如,这些软估计可以被硬限制以产生相关联信息位的硬估计。在某些实施例中,可以对硬估计执行进一步的处理操作,以便产生该接收消息。该接收消息可以用于产生对用户的输出,如音频、数据和/或视频输出。该接收消息也可以被存储在存储器中以备将来的存取。
在某些实施例中,第一组的两个或更多个处理器选自处理器的阵列,在此所述阵列的这些处理器被互连以形成2D网格,如根据“HyperX”架构配置的阵列。在某些实施例中,所述阵列的这些处理器的每一个处理器都被配置为执行来自指令集的指令,它包括基本的操作比如算术操作、逻辑操作、位控制操作等。在某些实施例中,所述阵列的这些处理器是可动态编程的。
在某些实施例中,方法10还可以包括对多个所接收的符号数据序列的每一个执行(a)和(b)。不仅如此,对多个所接收的符号数据序列中的至少一个可以调整该符号数据序列的两个或更多个重叠子序列的数目。在一个实施例中,根据接收的符号数据序列的长度,执行对该符号数据序列的两个或更多个重叠子序列的数目进行调整的动作。例如,可以调整该数目以便保持该子序列长度的相对不变。从而,与更短的符号数据序列相比,更长的符号数据序列会产生更大数目的子序列。
在某些实施例中,方法10还可以包括对多个所接收的符号数据序列中的至少一个,调整该符号数据序列的两个或更多个重叠子序列之间的重叠量。例如,如果SNR高,重叠量就可以小。不过,如果SNR降低,就可以增加重叠量。
在某些实施例中,在发射机根据相关联信息位的卷积编码产生符号数据序列X;而第一网格具有基于卷积编码的结构。卷积编码的速率小于一。该网格描述由于卷积编码在符号数据序列中呈现的冗余。第一组的两个或更多个处理器对符号数据序列的两个或更多个重叠子序列并行操作的上述动作可以包括对符号数据序列的两个或更多个重叠子序列并行地执行解码过程,以便实现对符号数据序列的两个或更多个重叠子序列的每一个的维特比解码。
在并行解码过程中,第一组处理器的每一个处理器都可以遍历第一网格中其对应部分,根据符号数据序列的两个或更多个子序列的对应一个计算分支度量和路径度量。(对网格部分中的每条边缘可以计算分支度量。在网格部分中的每个节点可以使用添加-比较-选择操作计算路径度量。)遍历之后,第一组处理器的每一个处理器都可以执行追溯过程以恢复相关联信息位软估计的对应的子序列。追溯过程涉及从终点到起点追踪经由对应网格部分的幸存路径(最小路径度量的路径)。幸存路径的初始部分可以丢弃,即不使用其产生该软估计的对应的子序列。初始部分可以是符号数据序列(即用于计算幸存路径的部分)与先前符号数据子序列的重叠所对应的部分。
在某些实施例中,第一网格具有基于符号数据序列Y与符号数据序列X之间的给定线性关系的结构,如基于在符号数据序列X与符号数据序列之间有效信道干扰的已知脉冲响应。(注意,除物理信道之外,有效信道还可以包括发射机和接收机中的滤波器结构。)第一网格描述由于有效信道在接收的符号数据序列中呈现的冗余。第一组的两个或更多个处理器对符号数据序列的两个或更多个重叠子序列并行操作的上述动作可以包括对符号数据序列的两个或更多个重叠子序列并行地执行解调过程,以便实现对符号数据序列的两个或更多个重叠子序列的每一个的维特比均衡。
在并行解调过程中,第一组处理器的每一个处理器都可以遍历第一网格中其对应部分,根据符号数据序列的两个或更多个子序列的对应一个计算分支度量和路径度量。(对网格部分中的每条边缘可以计算分支度量。在网格部分中的每个节点可以使用添加-比较-选择操作计算路径度量。)遍历之后,第一组处理器的每一个处理器都可以执行追溯过程以恢复相关联信息位软估计的对应的子序列。追溯过程涉及从终点到起点追踪经由对应网格部分的幸存路径(最小路径度量的路径)。幸存路径的初始部分可以丢弃,即不使用其产生该软估计的对应的子序列。初始部分可以是符号数据序列(即用于计算幸存路径的部分)与先前符号数据子序列的重叠所对应的部分。
在方法10的某些实施例中,发射机被假设为通过原始信息位的卷积编码以获得编码位以及通过该编码位的交织来产生相关联的信息位。图1B显示了一个这样的实施例。在这个实施例中,该方法包括的过程25处理该卷积编码的解码;并且过程20包括第一组的两个或更多个处理器使用反馈序列的两个或更多个相应重叠的子序列,对符号数据序列的两个或更多个重叠子序列并行地操作。反馈序列是由过程25对编码位产生的软估计的交织形式。这种形式的过程20在图1B中被表示为20’,它使用了符号数据序列以及反馈信息。
在过程25中,第二组的两个或更多个处理器对相关联信息位的软估计的去交织形式的两个或更多个重叠子序列并行地操作,其中去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分。第二网格可以具有对应于卷积编码的结构。对去交织形式的两个或更多个重叠子序列并行操作的动作对编码位产生软估计。
第二组的两个或更多个处理器的每一个处理器都可以对去交织形式的两个或更多个重叠子序列的对应一个进行操作。在某些实施例中,去交织形式的重叠子序列的数目等于符号数据序列的重叠子序列的数目。不过,在替代实施例中,这些数目是不同的。
方法10还可以包括重复过程20’和过程25多次,如直到达到了终止条件,正如图1B中在27所表明。设想了多种终止条件的任何一种。例如,在一个实施例中,过程20’和过程25可以重复预定次数。在另一个实施例中,重复可以继续到满足了基于软估计可靠性的条件。例如,重复可以继续到大多数或全部相关联信息位的软估计和/或编码位软估计的可靠性超过了给定的阈值。在一个实施例中,根据下面的表达式可以计算第k位的给定软估计的可靠性:
LLR k = log { Σ b ( k ) = 1 exp [ ( s T ( k ) - s R ( k ) ) 2 - σ k 2 ] } - log { Σ b ( k ) = 0 exp [ ( s T ( k ) - s R ( k ) ) 2 - σ k 2 ] }
b=0:1
其中SR指明接收的符号,ST是发送的参考符号而σ2是噪声方差。在b(k)=1的发送的参考符号集上计算第一对数项中的总和;在b(k)=0的发送的参考符号集上计算第二对数项中的总和。
方法10还可以包括第二组的两个或更多个处理器对相关联信息位的软估计的去交织形式的两个或更多个重叠子序列并行地操作,以便对原始信息位产生软估计,如在第一组的两个或更多个处理器已经完成了其过程20’的最后重复之后。
在某些实施例中,过程20’表示解调过程、过程25表示解码过程,而过程20’和过程25的重复实现了符号数据序列的加速均衡。
在某些实施例中,过程20’表示第一解码过程、过程25表示第二解码过程,而过程20’和过程25的重复实现了符号数据序列的加速解码。
在某些实施例中,方法10还可以包括根据原始信息位的软估计形成接收消息。该接收消息可以用于产生输出信号,并且该输出信号可以用于驱动输出设备,比如扬声器或显示屏。
对多个所接收的符号数据序列的每一个都可以执行图1B的方法。在某些实施例中,对于多个所接收的符号数据序列中的至少一个可以调整第一组处理器的数目。例如,如果接收的符号数据序列的长度在改变,那么就可以相应地改变每个符号数据序列的重叠子序列的数目,如为了保持每个子序列相对不变的长度。可以将第一组处理器的数目设置为等于重叠子序列的数目。
正如以上指出,对多个所接收的符号数据序列的每一个都可以执行图1B的方法。在某些实施例中,对于多个所接收的符号数据序列中的至少一个可以调整第二组处理器的数目。例如,可以响应当前符号数据序列相对于先前符号数据序列的长度变化调整该数目。可以更新(如连续地更新)第二组中的处理器数目,以便保持正被处理的这些子序列,即去交织形式的这些子序列相对不变的长度。
在某些实施例中,对于所接收的符号数据序列中的至少一个可以调整符号数据序列Y的两个或更多个重叠子序列的数目;以及对于所接收的符号数据序列中的至少一个可以调整(相关联信息位的软估计的)去交织形式的两个或更多个重叠子序列的数目。例如,在一个实施例中,两个数目都可以调整,以响应所接收的符号数据序列的当前一个相对于所接收的符号数据序列的先前一个的长度变化。
在某些实施例中,可以调整符号数据序列Y的所述两个或更多个重叠子序列之间的重叠量,如响应SNR的变化。该方法还可以包括跟踪不同时间的SNR。因此,对于当前接收的符号数据序列,根据预测的SNR可以调整重叠量。
在一个实施例中,对于过程20’和过程25的所述多次重复中的至少一次,执行了对该符号数据序列的两个或更多个重叠子序列之间的重叠量进行调整的动作。例如,重叠量可以是(过程20’和过程25的所述多次重复的)当前完成的重复次数的下降函数。
在某些实施例中,可以调整(相关联信息位的软估计的)去交织形式的两个或更多个重叠子序列之间的重叠量,如对于过程20’和过程25的多次重复中的至少一次。例如,重叠量可以是(过程20’和过程25的所述多次重复的)当前完成的重复次数的下降函数。
在某些实施例中,可以调整符号数据序列Y的两个或更多个重叠子序列之间的重叠量;以及可以调整(相关联信息位的软估计的)去交织形式的两个或更多个重叠子序列之间的重叠量。例如,在一个实施例中,对于过程20’和过程25的重复中的至少一次,执行对该符号数据序列的所述两个或更多个重叠子序列之间的重叠量进行调整的动作;以及对于过程20’和过程25的重复中的至少一次,执行对去交织形式的两个或更多个重叠子序列之间的重叠量进行调整的动作。
在某些实施例中,根据正被产生的软估计(即相关联信息位的软估计和编码位的软估计)的可靠性,可以调整相邻子序列之间的重叠量。例如,根据一个实施例,一开始可以将重叠量设置为L1,并且保持在L1直到全部(或一定比例的)可靠性大于1/4,于是将重叠量设置为L2。重叠量保持在L2直到全部(或一定比例的)可靠性大于1/2,于是将重叠量设置为L3。重叠量保持在L3直到全部(或一定比例的)可靠性大于3/4,于是过程20’和过程25的重复终止。选择值L1、L2和L3使得L1>L2>L3>0。因此,根据使用三个阈值的控制调度调整了重叠量。利用对重叠量、阈值数目以及阈值的数值的不同数值组合,设想了各种各样的类似实施例。
在某些实施例中,符号数据序列Y的两个或更多个子序列中的至少一个包括前向收敛区域。(例如,在一个实施例中,除这些子序列第一个之外这些子序列的每一个都包括对应的前向收敛区域。)过程20’可以包括第一组处理器的每一个处理器都在第一网格的对应部分的每个时间步(即在符号数据序列Y的对应的子序列内的每个时间步),在第一网格的对应部分上执行前向网格遍历以获得前向遍历值。所述前向收敛区域被用于获得前向网格遍历中的收敛。
在前向遍历中,在一个时间步的前向遍历值被用于计算在下一个时间步的前向遍历值。随着时间步下标的增加,在前向收敛区域上的前向遍历值被认为正在收敛(即变得更好)。(与在前向收敛区域的起点相比,向着终点这些值更好。)在前向收敛区域之后的前向遍历值被认为具有令人满意的质量,并且可以被用于计算相关联信息位的软估计。不过,在前向收敛区域上的前向遍历值可以丢弃,即不用于计算所述软估计。
在某些实施例中,作为过程20’和过程25多次重复的当前完成的重复次数的函数,可以缩短前向收敛区域的长度。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域(例如,在一个实施例中,除这些子序列最后一个之外这些子序列的每一个都包括对应的后向收敛区域。)过程20’可以包括第一组处理器的每一个处理器都在第一网格的对应部分的每个时间下标(即在符号数据序列Y的对应的子序列内的每个时间步),在第一网格的对应部分上执行后向网格遍历以获得后向遍历值。所述后向收敛区域被用于获得后向网格遍历中的收敛。
在后向遍历中,在时间下标的一个值的后向遍历值被用于计算在时间下标的下一个更小值的后向遍历值。随着时间下标的减少,在后向收敛区域上的后向遍历值被认为正在收敛(即变得更好)。在后向收敛区域之后(其左边)的后向遍历值被认为具有令人满意的质量,并且可以被用于计算相关联信息位的软估计。不过,在后向收敛区域上的后向遍历值可以丢弃,即不用于计算所述软估计。
在某些实施例中,作为过程20’和过程25的所述多次重复的当前完成的重复次数的函数,可以缩短后向收敛区域的长度。
在某些实施例中,过程20’包括产生关于相关联信息位的本征和非本征信息;以及所述第一组处理器根据所述本征信息和所述非本征信息的混合产生相关联信息位的软估计。作为过程20’和过程25的所述多次重复的当前完成的重复次数的函数,可以增加在所述混合中包括的本征信息量。例如,对于前几次重复该混合可以包括仅仅非本征信息,然后对于随后的重复逐步地将本征信息添加到混合中,如根据线性调度或者某种非线性调度(如基于多项式函数)。
在某些实施例中,过程25包括产生关于编码位的本征和非本征信息;以及所述第二组处理器根据所述本征信息和所述非本征信息的混合产生编码位的软估计。作为过程20’和过程25的所述多次重复的当前完成的重复次数的函数,可以增加在所述混合中包括的本征信息量。例如,对于前几次重复该混合可以包括仅仅非本征信息,然后对于随后的重复逐步地将本征信息添加到混合中,如根据线性调度或者某种非线性调度(如基于多项式函数)。
在某些实施例中,通过相关联信息位的软估计的解增信删余和去交织,可以产生相关联信息位的软估计的去交织形式,其中所述解增信删余包括向输出序列的增信删余位置注入先前算出的值,其中先前算出的值被指定为在过程25的先前重复中由第二组处理器所算出的这些编码位的软估计之一。该输出序列然后被去交织以便产生相关联信息位的软估计的去交织形式。所述去交织和解增信删余可以由第三组的一个或多个处理器执行。
在某些实施例中,过程20’包括第一组的每个处理器都执行前向穿过和后向穿过第一网格的对应部分。对于第一组处理器的给定一个(或者任意一台或每一台),前向穿过包括:在给定的符号位置计算α向量(在以上讨论中称为“前向遍历值”);以及响应所述α向量等于零向量的判断设置所述α向量等于向量E,其中所述向量E的全部分量都等于小正值,即数值1/Nstates,其中Nstates是在任何给定的时间下标值的网格状态的数目。只要算出的β向量等于零向量就可以在后向穿过中使用相同种类的过程(术语“穿过”在本文中作为“遍历”的同义词使用)。
在某些实施例中,过程25包括第二组的每个处理器都执行前向穿过和后向穿过第二网格的对应部分。对于第二组处理器的给定一个(或者任意一台或每一台),前向穿过包括:在给定的数据位置计算α向量;以及响应所述α向量等于零向量的判断设置所述α向量等于向量E,其中所述向量E的全部分量都等于小正值。只要算出的β向量等于零向量就可以在后向穿过中使用相同种类的过程。
在某些实施例中,第一组的两个或更多个处理器与第二组的两个或更多个处理器一致。在一个这样的实施例中,过程20’的每次重复都包括将第一程序代码加载到第一组的每个处理器的指令存储器中;而过程25的每次重复包括将第二程序代码加载到第一组的每个处理器的指令存储器中。第一程序代码由第一组的每个处理器执行时,使得所述处理器对符号数据序列Y的对应的子序列以及编码位的软估计的交织形式的对应的子序列执行前向/后向算法。第二程序代码由第一组的每个处理器执行时,使得所述处理器对相关联信息位的软估计的去交织形式的对应的子序列执行前向/后向算法。因此,在这个实施例中,以交替的方式向指令存储器加载第一程序代码和第二程序代码。当每个处理器的指令存储器太小不能同时加载两个程序时可以使用这个实施例。
在一组实施例中,系统可以被配置为用于对从信道接收的符号数据序列Y进行操作,其中符号数据序列Y对应于由发射机发送到信道上的符号数据序列X,其中符号数据序列X根据相关联的信息位产生。所述系统可以包括第一组两个或更多个处理器,每一个处理器都配置有第一程序代码,其中第一程序代码由第一组的处理器执行时,使第一组的处理器(a)并行地操作符号数据序列Y的两个或更多个重叠子序列,其中符号数据序列Y的两个或更多个重叠子序列的每一个都对应于第一网格的相应部分,其中第一网格描述符号数据序列Y中的冗余,其中并行操作的动作为相关联的信息位产生软估计。所述软估计用于形成相关联信息位所对应的接收消息。
第一组处理器的每一个处理器都可以包括对应的指令存储器和电路资源,用于执行在指令存储器存储的程序指令。因此这些处理器是可编程的处理器。
在某些实施例中,第一组的两个或更多个处理器选自处理器的阵列,在此所述阵列的这些处理器被互连以形成2D网格。在一个这样的实施例中,根据“HyperX”架构配置该阵列。
在某些实施例中,所述第一程序代码由第一组的处理器执行时,使得第一组的处理器对多个所接收的符号数据序列的每一个都执行(a)。
在某些实施例中,所述系统还包括对所接收的符号数据序列中的至少一个调整该符号数据序列的两个或更多个重叠子序列的数目,以及对应地调整第一组处理器数目的装置。该装置可以包括不属于第一组的处理器,如以上提及阵列的处理器或该阵列之外的处理器。根据接收的符号数据序列的长度可以执行调整符号数据序列的两个或更多个重叠子序列的数目的动作,如以上的各种介绍。
在某些实施例中,所述系统还可以包括对所接收的符号数据序列中的至少一个调整该符号数据序列的所述两个或更多个重叠子序列之间的重叠量的装置。这个装置可以包括不属于第一组的处理器,如以上提及阵列的处理器或该阵列之外的处理器。
在某些实施例中,根据相关联信息位的卷积编码产生符号数据序列X,其中第一网格具有基于卷积编码的结构。在一个这样的实施例中,对符号数据序列的两个或更多个重叠子序列并行操作的动作包括对符号数据序列Y的两个或更多个重叠子序列并行地执行解码过程,以便实现对符号数据序列Y的两个或更多个重叠子序列的每一个的维特比解码,正如以上介绍。
在该系统的某些实施例中,第一网格具有基于符号数据序列Y与符号数据序列X之间的给定线性关系的结构,正如以上的介绍。对符号数据序列Y的两个或更多个重叠子序列并行操作的动作可以包括对符号数据序列Y的两个或更多个重叠子序列并行地执行解调过程,以便实现对符号数据序列Y的两个或更多个重叠子序列的每一个的维特比均衡,正如以上介绍。
在某些实施例中,发射机被假设为通过原始信息位的卷积编码以得到编码位以及通过编码位的交织,来产生相关联的信息位。在该情况下,动作(a)包括第一组的两个或更多个处理器使用编码位的软估计的交织形式的两个或更多个相应重叠子序列,并行地操作符号数据序列的两个或更多个重叠子序列。此外,所述系统还包括配置有第二程序代码的第二组两个或更多个处理器,其中第二程序代码由第二组的处理器执行时,使第二组的处理器(b)并行地操作相关联信息位的软估计的去交织形式的两个或更多个重叠子序列,其中去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分。第二网格具有对应于卷积编码的结构。对去交织形式的两个或更多个重叠子序列进行并行操作的动作为编码位产生软估计。
第一组的两个或更多个处理器以及第二组的两个或更多个处理器被编程以便以交替的方式分别执行(a)和(b)多次。作为替代,第一组和第二组之外的处理器(或控制单元)可以被编程为使得第一组和第二组以交替的方式分别执行(a)和(b)多次。
在某些实施例中,第二组的两个或更多个处理器的每一个处理器都配置有附加的程序代码,其中第二程序代码由第二组的处理器执行时,使得第二组的处理器对相关联信息位的软估计的去交织形式的两个或更多个重叠子序列并行地操作,以便对原始信息位产生软估计。
在某些实施例中,动作(a)实现了对接收的符号数据序列的解调;动作(b)实现了对相关联信息位的软估计的去交织形式的解码;而以交替的方式执行(a)和(b)多次的动作实现了符号数据序列Y的加速均衡。
在某些实施例中,动作(a)实现了对接收的符号数据序列的解码;动作(b)实现了对相关联信息位的软估计的去交织形式的解码;而以交替的方式执行(a)和(b)多次的动作实现了符号数据序列Y的加速解码。
在某些实施例中,第一组的处理器和第二组的处理器被编程为响应编码位的软估计和相关联信息位的软估计超过了预定义的阈值,终止以交替的方式对(a)和(b)的多次执行,正如以上的介绍。
在某些实施例中,第一程序代码由第一组的处理器执行时,使得第一组的处理器调整符号数据序列的所述两个或更多个重叠子序列之间的重叠量,正如以上的多次介绍。在一个这样的实施例中,对所述多次执行(a)和(b)的至少一次,执行调整符号数据序列的所述两个或更多个重叠子序列之间的重叠量的动作。
在某些实施例中,第二程序代码由第二组的处理器执行时,使得第二组的处理器调整相关联信息位的软估计的去交织形式的两个或更多个重叠子序列之间的重叠量,正如以上的多次介绍。在一个这样的实施例中,对所述多次执行(a)和(b)的至少一次,执行调整去交织形式的两个或更多个重叠子序列之间的重叠量的动作。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,其中动作(a)包括第一组处理器的每一个处理器都在第一网格的对应部分的每个时间步,在第一网格的对应部分上执行前向网格遍历以获得前向遍历值,其中所述前向收敛区域被用于获得前向网格遍历中的收敛。在一个这样的实施例中,第一程序代码由第一组的处理器执行时,使得第一组的处理器作为所述多次执行(a)和(b)的当前完成的执行次数的函数缩短前向收敛区域的长度。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,其中动作(b)包括第一组处理器的每一个处理器都在第一网格的对应部分的每个时间下标,在第一网格的对应部分上执行后向网格遍历以获得后向遍历值,其中所述后向收敛区域被用于获得后向网格遍历中的收敛。在一个这样的实施例中,第二程序代码由第二组的处理器执行时,使得第二组的处理器作为所述多次执行(a)和(b)的当前完成的执行次数的函数缩短后向收敛区域的长度。
在某些实施例中,动作(a)包括产生关于相关联信息位的本征和非本征信息,其中,第一程序代码由第一组的处理器执行时,使得第一组的处理器根据本征信息和非本征信息的混合并行地产生该相关联信息位的软估计。作为(b)和(c)的所述多次重复的当前完成的次数的函数,增加所述混合中包括的本征信息量。作为所述多次执行(a)和(b)的当前完成的执行次数的函数,增加所述混合中包括的本征信息量。
在某些实施例中,动作(b)包括产生关于编码位的本征和非本征信息,其中,第二程序代码由第二组的处理器执行时,使得第二组的处理器根据本征信息和非本征信息的混合产生编码位的软估计。作为所述多次执行(a)和(b)的当前完成的执行次数的函数,增加所述混合中包括的本征信息量。
在某些实施例中,该系统还可以包括第三组的一个或多个处理器,被配置为通过相关联信息位的软估计的解增信删余和去交织,产生相关联信息位的软估计的去交织形式。所述解增信删余的动作包括向输出序列的增信删余位置注入先前算出的值,其中先前算出的值被指定为在(b)的先前执行中由第二组处理器所算出的这些编码位的软估计之一。该输出序列可以被去交织以获得相关联信息位的软估计的去交织形式。
在某些实施例中,动作(a)包括第一组处理器的每一个处理器都执行前向穿过和后向穿过第一网格的对应部分,其中对于第一组处理器的给定一个,前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。
在某些实施例中,动作(b)包括第二组处理器的每一个处理器都执行前向穿过和后向穿过第二网格的对应部分,其中对于第二组处理器的给定一个,前向穿过包括:在给定的数据位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。
在某些实施例中,第一组的两个或更多个处理器与第二组的两个或更多个处理器一致,其中第一组处理器的每一个处理器都被编程为在每次执行(a)以前加载第一程序代码,以及在每次执行(b)以前加载第二程序代码。第一程序代码由第一组处理器执行时,使得第一组的处理器对符号数据序列Y的对应的子序列以及编码位的软估计的交织形式的对应的子序列执行前向/后向算法。第二程序代码由第二组处理器执行时,使得第二组处理器对相关联信息位的软估计的去交织形式的对应的子序列执行前向/后向算法。
在某些实施例中,第一组的两个或更多个处理器被编程为根据相关联信息位软估计形成接收消息。
在一组实施例中,执行加速均衡的方法可以包括以下各项操作。(1)从信道接收符号数据序列,其中所述符号数据序列对应于被发送到所述信道上的符号数据序列X,其中所述符号数据序列X根据原始的信息位产生。(2)第一组的两个或更多个处理器使用反馈信息交织形式的两个或更多个对应的子序列,对所述符号数据序列的两个或更多个重叠子序列并行地执行解调过程,以便产生前馈信息。(3)第二组的两个或更多个处理器对前馈信息的去交织形式的两个或更多个重叠子序列并行地执行解码过程,以便产生反馈信息。(4)包括(2)和(3)的一组操作可以重复,如,直到实现了终止条件。(5)第三组的两个或更多个处理器并行地操作,以便从所述前馈信息的去交织形式的两个或更多个重叠子序列产生所述原始信息位的软估计。所述软估计用于形成与所述原始信息位对应的接收消息。
在某些实施例中,第三组的处理器与第二组的处理器一致。
在某些实施例中,第一组的处理器与第二组的处理器是不相交的组。在其他实施例中,第一组的处理器与第二组的处理器一致。
本发明的若干实施例可以涉及用于多种类型的基于网格的方法的任何一种的并行处理技术。以下介绍了本发明的一个示范实施例,其中基于网格的方法是加速均衡。不过,本发明的实施例不限于以下介绍的加速均衡的实施例,而是本发明的实施例可以用于多种基于网格的技术的任何一种。
在一组实施例中,通信系统100可以包括发射机110和接收机120,如图2所示。发射机110接收来自信息源的二进制位流{ak},并且操作所述流{ak}以产生发射信号。发射机110将该发射信号发送到信道115上。接收机120捕获接收信号,它表示发送信号被噪声破坏的形式。接收机120操作该接收信号以产生源流{ak}的每位ak的估计Ak。接收机120可以包括多种类型的无线设备的任何一种,比如数据通信设备,如无线电、手持机、移动电话等。例如,接收机120可以是意在由军人使用的通信设备,如使用士兵无线电波形(SRW)。在一个实施例中,接收机可以是视频显示设备,比如电视,如无线移动电视。
在某些实施例中,发射机110具有图3所示的结构。发射机110包括卷积编码器210、交织器220、增信删余器420和映射单元240。卷积编码器210操作来自信息源的位流{ak},以便产生编码位流{bk}。交织器220根据定义的置换交织在编码位流中的每个数据块,以便产生交织的位流。增信删余器420增信删余交织的位流以便获得增信删余的位流{ck}。增信删余是根据定义的模式丢弃交织的位流中某部分信息的过程。作为教导性实例,人们有可能在中间位流中每第三个位进行丢弃:
(z1,z2,z3,z4,z5,z6,z7,z8,z9,…)→(z1,z2,z4,z5,z6,z7,…)。可以设想各种各样的增信删余模式。
在一个实施例中,增信删余和交织的模式符合:ModemSpecification for SLICE Inc.2,ITT DOCUMENT#8223038REVISION-November 2006,其全部内容在此引用作为参考。
映射单元240把增信删余的位流映射到从符号集中提取的符号序列{xk}中(该符号集可以是复平面的子集或者是实线的子集。)可以使用各种各样的符号集的任何一种。
发射机110可以(使用多种形式的调制的任何一种)根据符号序列{xk}调制载波信号,并且将调制后信号发送到信道上。接收机120拾取被发送的信号并将其解调以恢复符号序列{yk},本文称为“接收的”符号序列。被发送的符号序列{xk}与接收的符号序列{yk}之间的关系可以通过以下关系模拟:
v k = Σ j = 0 N h j x k - j
yk=vk+nk
其中nk是噪声,{hj}是已知的脉冲响应。换言之,接收的符号序列可以解释为是噪声nk与操作被发送符号序列{xk}的线性滤波器输出vk之和。接收机根据接收的符号序列{yk}对原始位流{ak}产生这些位的估计。
在某些实施例中,接收机120可以是无线电接收装置,如软件定义的无线电接收装置,或者硬件定义的无线电接收装置,或者部分软件定义和部分硬件定义的无线电接收装置。不过,也设想了非无线电接收装置的实施例。
在某些实施例中,接收机120被设计为实现在士兵级的集成通信环境(SLICE增补2.1)中使用的士兵无线电波形(SRW),后文称SLICE 2.1。以下的某些说明使得SLICE 2.1为其语境。不过应当理解,本文公开的发明原理自然地推广到各种各样的其他语境。
在某些实施例中,接收机120可以根据迭代的消息传递方法执行解调和解码。消息传递方法(MPM)包括以反馈互连的解调过程和解码过程。解调过程使用接收的符号信息以及由解码过程提供的反馈信息操作。解码过程根据由解调过程提供的前馈信息操作。MPM包括交替地执行解调过程和解码过程,期待这些过程将分别朝着正确的解调和解码结果收敛。
接收机120包括被编程为执行MPM的硬件。在某些实施例中,该硬件包括多处理器计算系统,如以上引用的在7,415,594号美国专利中介绍的多处理器的架构之一。
图4显示了根据一组实施例,由接收机120执行的处理操作的框图300。框图300包括滤波器模块310、PDF模块315、解调过程320、去交织/解增信删余过程325、解码过程330、交织/增信删余过程335以及决策模块340。滤波器模块310操作从无线电前端经由模数转换过程所恢复的复数样本流{rk},以便产生所接收的符号序列{yk}。PDF模块315操作所接收的符号序列{yk}以产生符号概率信息。解调过程320、去交织/解增信删余过程325、解码过程330以及交织/增信删余过程335一起操作,根据PDF模块315提供的符号概率信息实现MPM(消息传递方法)。所述MPM能够被解释为属于加速均衡器类,从而在解调过程320与解码过程330之间交换软概率估计(如LLR)。
在某些实施例中,没有包括增信删余和解增信删余。在这些实施例中,过程325被解释为没有解增信删余的去交织过程;而过程335被解释为没有增信删余的交织过程。
滤波器模块310过滤所述流{rk}以产生接收的符号流{yk}。滤波器模块310可以是低通滤波器。在某些实施例中,滤波器模块310是线性相位FIR低通滤波器,被用于以因子2降低采样率。滤波器模块310可以包括在多项结构中配置的两个FIR滤波器(一个用于实数样本一个用于虚数样本)。在一个实施例中,这两个FIR滤波器每个都有49阶,不过,对于滤波器阶数可以使用各种各样的其他值。在某些实施例中,这两个FIR滤波器系数的设计使用了Parks-McClellan算法。图5显示了根据一个实施例的滤波器模块310的频率响应。滤波器模块310的输出可以为分样本的以产生每个符号一个样本。
PDF模块315操作所接收的符号序列{yk}的每个符号yk以产生对应的概率值组{p(yk|vi,j)},其中vi,j是与解调网格中从状态i到状态j转移相关联的输出。
解调过程320操作PDF模块315提供的概率值和交织/增信删余过程335提供的先验概率,从而产生前馈信息。该前馈信息被提供给过程325。过程325对该前馈信息进行解增信删余和去交织以产生中间信息。该中间信息被提供给解码过程330。解码过程330操作该中间信息以产生反馈信息。该反馈信息被提供给过程335。过程335对该反馈信息进行交织和增信删余以产生所述先验概率。
MPM迭代地运行,即解调过程320运行,然后解码过程330运行,然后解调过程320再次运行,然后解码过程330再次运行,以循环的方式继续下去。穿过该框图的每次循环被称为“一次迭代”。随着迭代的进展,在两个过程之间被交换的信息开始收敛,有希望达到正确答案,即与原始被发送位{ak}一致的答案。迭代可以继续到实现了可接受的位可靠性。(接收符号向量y在整个迭代系列保持相同。)这种迭代过程被称为“消息传递”方法,因为在解调过程320与解码过程330之间被传递的信息被解释为消息。
在解调过程320与解码过程330之间被传递的信息是软信息,不是硬决策(“硬”是二进制的同义词)。因此,过程320和330的每一个都可以被称为软输入软输出(SISO)模块。
现在返回图4,过程335对解码过程330产生的软信息(如反馈LLR)执行交织和增信删余。该交织基于与交织器220所用的相同模式,而增信删余基于与增信删余器230所用的相同模式。不过,过程335操作解码过程330产生的软信息(如LLR),而交织器220和增信删余器230操作位。交织器/增信删余器335将来自解码过程330的反馈LLR重新排列为与来自映射单元240的符号次序一致的次序。
过程325对解调过程320产生的软信息(如符号LLR)执行解增信删余和去交织。该解增信删余基于由增信删余器230使用的增信删余模式的伪逆反。在增信删余模式丢弃信息之处,所述伪逆反注入零。例如,在增信删余模式每第三个分量进行丢弃的情况下,所述伪逆反有可能看起来如下:
(s1,s2,s3,s4,s5,s6,…)→(s1,s2,0,s3,s4,0,s5,s6,0,…)
如果对于给定符号的对数似然比(LLR)等于零,根据定义该符号等于-1的概率等于该符号等于+1的概率。因此,将零LLR的值注入到给定符号位置反映了关于从该符号位置原始被丢弃的符号值的全部忽略的状态。
在某些实施例中,不是注入零,该解增信删余操作注入了由解码过程330先前算出的值。这种更精巧形式的解增信删余可以加速收敛的速度,即减少了得到收敛所需要的迭代次数。
作为过程325一部分执行的去交织操作基于交织器220所采用模式的逆反。因此,去交织操作将所述LLR重新排列为与来自卷积编码器210的位次序所对应的次序。
解调过程320的操作基于下层的网格,如与下面给出的线性滤波器相关联的网格:
v k = Σ j = 0 ∞ h j x k - j
其中系数{hj}是实数值(或也许是复数值)。给定了所收到符号向量y,对于时间下标为k的每个值和符号集内的每个符号x,解调过程320都可以计算出被发送符号xk等于x的概率。在符号集为{+1,-1}的情况下(如,在QBL-MSK或二进制PSK),解调过程320就可以计算出被发送符号是+1的概率和被发送符号是-1的概率。
解调过程320可以执行前向/后向算法。该前向/后向算法设计前向穿过、后向穿过和综合操作。前向穿过以向前的方向穿过解调网格,在每个时间步计算“α”向量。后向穿过以向后的方向穿过解调网格,在每个时间步计算“β”向量。(在期望时可以并行地执行前向穿过和后向穿过。)综合操作将α值和β值结合以形成在每个时间下标处被发送符号的对数似然比(LLR),如对数似然比L(xk|y)。前向穿过、后向穿过和综合操作每个都使用了一组“γ”值。该γ值合并了局部概率信息(根据符号观测向量y)和由解码过程330产生的先验概率。对于需要学习前向/后向算法的人员,参见Ralf Koetter et al.的标题为“Turbo Demodulation”的文章,发表在IEEE Signal Processing刊物2004年1月号上。
在某些实施例中,在任意给定时间n解调网格的状态Sn由下式给出:
Sn={θn,xn-1,xn-2,xn-3}
其中
θ n = π h f Σ i = - ∞ n - L x i
{xn-1,xn-2,xn-3}表示三个先前的符号,hf是解调索引,而L是接收机处相位整形滤波器的脉冲响应长度(以符号周期计)。解调索引hf表明了调制后相位在未调制参考值附近变化的范围:hf=Δθ,其中Δθ代表峰值相位变化。
在某些实施例中,接收机专用于MSK类型的调制。在一个这样的实施例中,xn∈{-1,+1},hf=1/2以及L=4。对于hf=1/2,存在着用于相位的四个可能值:
θ n ∈ { 0 , π 2 , π , 3 π 2 }
因此,状态空间包含4×2×2×2=32种状态,正如图6的状态表中所示。状态转移,即从当前相位θn转移到下一个相位θn+1由下式给出:
θ n + 1 = ( θ n + π 2 x n - 3 ) mod 2 π
解码过程330使用前向/后向算法操作过程325提供的输入LLR{L(bk|y)},以便产生反馈LLR{L(bk|p)},其中:
p=(P(b1|y),P(b2|y),…,P(bN|y))T
不仅如此,在MPM的最后一次迭代中,解码过程330可以对原始位流的每位ak计算输出LLR L(ak)。解码过程330向硬限制器340提供输出LLR{L(ak)}。该硬限制器根据以下规则对每位ak产生估计Ak:如果LLR(ak)>0,Ak=1,否则Ak=0。
在某些实施例中,解码过程330属于MAP解码器类。不过,也设想了其他实施例。
解码过程330可以根据卷积解码器210的结构对应的网格操作。在一个实施例中,卷积解码器210具有图7所示的结构。不过,各种各样的其他结构也是可能的。
图7所示的卷积解码器210具有的比率为1/2并且K=5。(卷积解码器的比率是输入位数与输出位数的比值。参数K是编码器的约束长度,表明了包括影响任一输出位的当前输入的位数。)加法器单元的每一个都被配置为在二进制操作数上执行模2的加法。标注“D”的单元是延迟单元。
在任何给定时间所展示的编码器的状态由四个延迟单元D的内容定义。在图7的表示法中,该状态由4-元组(S1,S2,S3,S4)给出。因为这四个延迟单元被串行连接到输入,所以该状态具有的形式为(ak-4,ak-3,ak-2,ak-1),其中ak-1,ak-2,ak-3,ak-4是二进制输入序列{ak}的四个先前值。因此,存在着16个不同状态。
解码过程330可以将输入LLR值{L(bk|y)}根据以下关系转换为概率:
P ( b j = 0 | y ) = 1 1 + exp ( L ( b j | y ) )
P(bj=1y)=1-P(bj=0y)
可以使用查找表(LUT)将每个输入LLR转换为概率值。减法产生互补的概率值。这就为每个输入LLR产生两个概率值。对于每对(b2k-1,b2k),在前向/后向计算中使用了以下各项概率乘积:
P(b2k-1=0|y)P(b2k=0|y),
P(b2k-1=0|y)P(b2k=1|y),
P(b2k-1=1|y)P(b2k=0|y),
P(b2k-1=1|y)P(b2k=1|y)
从前向/后向算法产生的概率值P(bj=0|p)和P(bj=1|p)被转换为LLR值,如使用对数函数的查找表。这些LLR值(“反馈LLR”)被提供给交织/增信删余过程335。
在一组实施例中,接收机120包括多处理器计算系统,被编程为执行图4指示的处理操作。该多处理器计算系统可以包括被互连形成网格的单元阵列。每个单元都包括处理单元(PE)以及一个或多个“数据存储器和路由单元”(DMR)。图8显示了多处理器计算系统的一个实施例,具有4×8个单元的阵列。分配和控制逻辑(DCL)710可以控制该阵列的操作,如方式为向阵列中的每个PE发送程序代码和/或数据。不仅如此,DCL 710还可以收集来自PE(或者PE的某子组)的结果,并且将这些结果转发给接收机120内的其他处理代理。每个PE都可以具有其自己的指令存储器,因此如果需要可以被编程为执行惟一的任务。DCL 710被显示仅仅连接到阵列的第一行。不过,对于将DCL 710连接到阵列的模式,也设想了各种各样的其他实施例。
在某些实施例中,多处理器计算系统可以被编程为:在阵列中第一子组PE上执行滤波器模块310;在阵列中第二子组PE上执行PDF模块315;在阵列中第三子组PE上执行解调过程320;在阵列中第四子组PE上执行去交织/解增信删余过程325;在阵列中第五子组PE上执行解码过程330;以及在阵列中第六子组PE上执行交织/增信删余过程335;其中第一、第二、第三、第四、第五和第六子组是阵列中不相交的PE子组。图9显示了一个这样的实施例并在以下进行介绍。
图9显示了图4处理操作的流水线化和并行化的组织,假设多处理器计算系统具有至少71个处理单元(PE)和78个数据存储器。流水线的每个阶段都可以被配置为运行N个时间单位。第一阶段包括输入过程305和滤波器模块310。使用一台处理单元(PE)和两个数据存储器可以执行滤波器模块310。第二阶段包括PDF模块315。使用2个PE和8个DMR就可以执行PDF模块315。2个PE可以并行地操作数据包中符号数据的相应部分。
第三阶段包括解调过程320、去交织/解增信删余过程325、解码过程330以及交织/增信删余过程335。使用32对PE/DMR可以执行解调过程320,它们并行地操作数据包中符号数据的相应部分。使用2个PE和2个DMR可以执行去交织/解增信删余过程325。使用32对PE/DMR可以执行解码过程330,它们并行地操作由过程325提供的软信息的相应部分。使用2个PE和2个DMR可以执行交织/增信删余过程335。以提高相应过程之间的通信效率的方式,可以将PE的不同子组在地理上布局。
最后阶段包括输出过程340,它执行硬限制以确定原始信息位ak的估计Ak
图10展示了在多处理器计算系统上的图4处理操作的另一个流水线化和并行化的组织。在这个实施例中,与在方框910所表明的相同32对PE/DMR上执行解调过程320和解码过程330。不仅如此,与在方框920所表明的相同组的两对PE/DMR上执行去交织/解增信删余过程325以及交织/增信删余过程335。
在某些实施例中,每个PE的指令存储器太小不能同时存储整个解调程序和整个解码程序。因此,在这些实施例中,多处理器计算系统的分配和控制逻辑可以被配置为将解调程序和解码程序交替地加载到方框910的32个PE的每个指令存储器中。
虽然按照流水线阶段处理模块中PE和DMR数目的具体值介绍了图8和图9,但是这些数目的每一个都可以取各种各样的其他值。因此,图8和图9应当被解释为在广泛类的可能实现中的两个特定实现。
在某些实施例中,序列xk的这些符号可以在发射机110发射以前连同训练符号一起被加载到数据包中。在一个实施例中,数据包具有图11所示的数据包。该数据包包括与有效负荷序列交替的训练序列(也称为“串行探头”)。每个训练序列的长度为32个符号。每个有效负荷序列的长度为328个字符。从符号1441到符号1472的训练序列被重新用作下一个数据包中的第一串行探头(即字符1到32)。因此,每个数据包实际上存在着1440个字符。本文介绍的发明原理并不依赖于以上给出的数据包长度的具体值、每个数据包的有效负荷序列数目、每个有效负荷序列的符号数目或者每个训练序列的符号数目。这些参数的每一个都可以取各种各样值的任何一个。
对于收到数据包中的每个有效负荷序列,解调过程320可以计算该有效负荷序列所对应的每个被发送符号的MAP估计。不是在整个有效负荷序列上执行前向/后向算法,而是可以将有效负荷序列的重叠部分分配给一组处理器,正如以上介绍,而且这些处理器可以在其相应部分上并行地执行前向/后向算法。从而可以在短得多的时间实现在整个有效负荷序列上的前向/后向算法的实际效果。本文将有效负荷序列的重叠部分称为窗口。
图12显示了覆盖所收到数据包的第一有效负荷序列的八个重叠窗口的实例。数据的八个窗口可以分别分配给八个处理器以并行地执行。该数据包的三个剩余有效负荷序列的每一个都可以类似地用八个窗口覆盖。因此,数据包中的全部有效负荷数据可以用32个窗口覆盖。这32个窗口可以分别分配给32个处理器并被并行地处理,正如以上介绍。每个处理器都可以在其分配的32个窗口之一上执行前向/后向算法。图12应当被解释为窗口结构的一个实例。设想了针对每有效负荷序列的窗口数目而具有不同值的各种各样的其他实施例。
如图12所示,在第一有效负荷序列中的窗口#1(从底部开始的第二个窗口)从符号位置73延伸至符号位置132。图13A展示了根据一个实施例窗口#1的前向计算区间,即在该其上执行前向穿过计算的符号位置的区间。它还显示了前向“运行开始”区间(本文也称为“前向收敛区间”)即初始区间,前向穿过计算在该区间上处于收敛过程中。在运行开始区间上算出的α向量不被用于计算输出LLR,因为它们被认为不可靠(或者不足够可靠)。在运行开始区间之后(右边)算出的α向量被认为可靠(即有效)。本文将前向运行开始区间之后的前向计算区间部分称为前向有效性区间。
图13B展示了窗口#1的后向计算区间,即在其上执行后向通过计算的符号位置的区间。它还显示了后向运行开始区间(本文也称为“后向收敛区间”)即初始区间,后向穿过计算在其上仍然收敛。在后向运行开始区间上算出的β向量不被用于计算输出LLR,因为它们被认为不可靠(或者不足够可靠)。在后向运行开始区间之后算出的β向量被认为可靠(即有效)。本文将后向运行开始区间之后(左边)的后向计算区间部分称为后向有效性区间。
虽然前向和后向运行开始区间在图13A和图13B被显示为长度为10个符号,但是各种各样的其他长度也是可能的。针对任何给定实施例所选择的长度值可以取决于SNR。具有高SNR的环境可能需要比具有低SNR环境更短的运行开始长度。同时注意,不要求前向运行开始区间和后向运行开始区间具有相同长度。设计了它们不同的实施例。
对前向有效性区间与后向有效性区间交集所对应的符号位置,计算了输出LLR。因此,对于图13A和图13B所展示的实例,将可能对从符号位置83到符号位置122计算输出LLR。
图14展示了用于两个连续窗口即窗口#1和窗口#2的运行开始区间与输出区域之间的关系。观察到两个窗口的输出区域是不相交的并且在它们之间没有间隙。窗口#1的输出区域从位置83延伸到位置122。窗口#2的输出区域从位置123延伸到位置162。同样,全部八个窗口的输出区域都互不相交并且覆盖了有效负荷序列的整个区域。
窗口#0(图12底部的窗口)和窗口#7(图12顶部的窗口)的不同之处在于它们除包含有效负荷符号外还包含了训练符号。窗口#0的第一个符号是训练符号。窗口#7的最后几个符号是训练符号。因为前向穿过计算能够根据已知的训练符号开始,所以窗口#0的前向穿过不需要运行开始区间。同样,因为后向穿过计算能够根据已知的训练符号数据开始,所以窗口#7不需要后向运行开始区间。
每个被发送符号的初始先验概率对于符号等于+1的概率被设置为0.5,对于符号等于-1的概率也被设置为0.5。由于训练序列是已知的,所以在训练序列中的每个符号的符号概率适当地被设置为一或零。所有32个符号的训练序列的第一个符号都依赖于被发送的数据,所以对接收机是未知的。因此,其概率将被设置为1/2。
解码过程330可以使用前向/后向算法对原始位流{bj}每位bj计算反馈概率P(bj=0|p)和P(bj=1|p)。所以,使用以上连同解调过程320介绍的重叠窗口策略,尽管没有训练信息也可以实现解码过程330。因此可以将去交织/解增信删余过程325产生的输入LLR{L(bk|y)}分配给一组重叠窗口,并且在这些窗口的每一个上可以并行地执行前向/后向算法,如以上连同图8和图9的介绍。在某些实施例中,解码过程330使用的窗口对应于解调过程320使用的窗口,不包括训练信息的解码窗口除外。
在某些实施例中,接收机120可以采用逐渐增加在解调过程320与解码过程330之间传递的软信息(LLR)中包括的本征信息量的机制。随着通路度量中置信度的改进,本征信息量(相对于非本征信息)被逐渐增加。本文将这种机制称为“渐变直接反馈”,因为该本征信息构成了直接反馈。根据实现可接受的误码性能所要求的迭代次数,在正被交换的消息中引入某些本征信息可能有助于加速收敛。不过,本征信息也有将收敛引向错误结果的可能。因此,在第一次或第二次迭代中可以忽略该本征信息,并且随着位可靠性改进而使用可变乘数λ∈[0,1]逐渐引入(表示法[a,b]表示封闭区间{x在实数线上:a≤x≤b}。)例如,由解调过程320产生的输出LLR{L(xk|y)}可以由下面的规则确定:
L(xk|y)=Lext(xk|y)+λi Lint(xk|y)
λi=(i-1)/N
其中Lext(xk|y)是给定接收的符号向量y时符号xk的非本征LLR,Lint(xk|y)是给定接收的符号向量y时符号xk的本征LLR,其中i是从1到N变化的迭代索引。
同样,由解码过程330产生的输出LLR{L(bk|p)}可以由下面的规则确定:
L(bk|p)=Lext(bk|p)+λi Lint(bk|p)
λi=(i-1)/N
变量λ与迭代索引i之间的函数关系有各种各样的可能性。虽然以上给出的线性关系计算迅速,但是也设想了各种各样的其他实施例。
在一组实施例中,可以执行图15A所示的处理所接收的符号以恢复发送的信息的方法。图9及其呈现的文本说明可以被解释为这种方法的一个实施例。
在1410,可以收到符号数据序列。例如,符号数据序列可以由滤波器模块310提供,正如以上连同图3和/或图9的说明。
在1415,第一组的两个或更多个处理器使用反馈数据序列的两个或多个对应的子序列,可以对该符号数据序列的两个或更多个对应的子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块。见比如图9的方框320。
在1420,第二组的两个或更多个处理器可以对从前馈信息的两个或更多个块所装配的第一合成序列执行解增信删余/去交织,以便产生修改的数据序列。见比如图9的方框325。
在1425,第三组的两个或更多个处理器可以对修改的数据序列的两个或更多个对应的子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块。见比如图9的方框330。
在1430,第四组的两个或更多个处理器可以对从反馈信息的两个或更多个块所装配的第二合成序列并行地执行交织和增信删余,以便产生反馈数据序列。见比如图9的方框335。
在1435,包括1415、1420、1425和1430的一组操作可以重复多次。在一个实施例中,重复的次数是预定的数目Nmax。在另一个实施例中,迭代的次数可以由符号概率相对于规定最小阈值的幅度确定。
在1440,第三组的两个或更多个处理器可以并行地运算,以便根据修改的数据序列的两个或更多个对应的子序列,产生原始信息位的软估计(如LLR)。
在某些实施例中,可以执行附加处理根据软估计形成接收消息。例如,可以对软估计进行硬限制以获得原始信息位的硬估计。硬估计可以作为输出提供给用户,或者发送到网络,或者存储以备后用。
在某些实施例中,可以使用硬估计产生输出信号,而该输出信号可以被用于构成用户数据包。
在某些实施例中,第一、第二、第三和第四组的处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D矩形网格(或更高维的网格)。优选情况下,第一、第二、第三和第四组的处理器是不相交的组。所述阵列的这些处理器可以被独立地编程。
在某些实施例中,由第一组处理器执行的解调过程产生关于被传送符号的本征和非本征信息;并且第一组处理器根据本征信息和非本征信息的混合产生前馈信息块。作为所述操作组的当前完成的重复次数的函数,可以增加所述混合中包括的本征信息量,正如以上的介绍。
在某些实施例中,由第三组处理器执行的解码过程产生关于编码位的本征和非本征信息;并且第三组处理器根据本征信息和非本征信息的混合产生反馈信息块。作为所述操作组的当前完成的重复次数的函数,可以增加所述混合中包括的本征信息量,正如以上的介绍。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,在此所述前向收敛区域被用于获得解调过程的前向网格遍历中的收敛,但是不用于产生前馈信息的对应数据块。见比如以上连同图13A的讨论。在一个实施例中,符号数据序列的两个或更多个子序列的每一个都包括前向收敛区域,第一个子序列除外,正如图12所示。
在某些实施例中,作为所述操作组的当前完成的重复次数的函数,前向收敛区域的长度被缩短。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,在此所述后向收敛区域被用于获得解调过程的后向网格遍历中的收敛,但是不用于产生前馈信息的对应数据块。见比如以上连同图13B的讨论。在一个实施例中,符号数据序列的两个或更多个子序列的每一个都包括后向收敛区域,最后一个子序列除外,正如图12所示。
在某些实施例中,作为所述操作组的当前完成的重复次数的函数,后向收敛区域的长度被缩短。
在某些实施例中,解增信删余的动作包括向修改的数据序列的增信删余位置注入先前算出的值,其中先前算出的值是来自在操作组的先前重复中(由解码过程)算出的反馈信息块中对应位置的分量(LLR成分)。例如,可以将先前迭代中由解码过程计算的反馈序列{L(bk|p)}中对应位置的这些值注入(充填)到序列{L(bk|y)}的增信删余位置。
在某些实施例中,解调过程包括第一组处理器的每个都执行前向穿过和后向穿过对应的解调网格,其中在第一组处理器的给定一个中,前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值,如值1/NS1,其中NS1是解调网格中的状态数。
在某些实施例中,解码过程包括第三组处理器的每个都执行前向穿过和后向穿过对应的解码网格,其中在第三组处理器的给定一个中,前向穿过包括:在给定的数据位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值,如值1/NS2,其中NS2是解码网格中的状态数。
在一组实施例中,系统1450可以被配置为如图15B所示。系统1450可以包括控制单元1455、第一组的两个或更多个处理器1460以及第二组的两个或更多个处理器1470。以上连同图7和图8所介绍的系统可以被解释为系统1450的实施例。
第一组的两个或更多个处理器1460可以配置有第一程序代码,其中第一程序代码由第一组的处理器执行时,使得第一组的处理器使用反馈数据序列的对应部分,对收到符号序列的重叠部分并行地执行解调过程,以便获得前馈信息。第一组的每个处理器都可以包括存储第一程序代码的指令存储器。
第二组的两个或更多个处理器1470可以配置有第二程序代码,其中第二程序代码由第二组的处理器执行时,使得第二组的处理器对前馈信息的去交织和增信删余形式的重叠部分并行地执行解码过程,以便获得反馈信息。反馈数据序列是反馈信息的交织和增信删余形式。第二组的每个处理器都可以包括存储第二程序代码的指令存储器。
控制单元1455可以被配置为以交替的方式,使得第一组的处理器执行第一程序代码而使得第二组的处理器执行第二程序代码。例如,控制单元可以包括控制处理器和存储器,其中存储器存储着由控制处理器可执行的程序指令。执行时,程序指令指挥控制单元引起第一组处理器与第二组处理器之间的交替。
第二组的处理器1470可以进一步被配置为对前馈信息的去交织/解增信删余形式的重叠部分并行地运算,以便产生原始信息位的估计,正如以上的多种介绍。
在某些实施例中,第一组的处理器1460可以被配置为作为包括解调过程和解码过程的一组操作的当前完成的重复次数的函数,增加在前馈信息中包括的本征信息量,正如以上的多种介绍。不仅如此,第二组的处理器1470可以被配置为作为当前完成的重复次数的函数,增加在反馈信息中包括的关于编码位的本征信息量,正如以上的多种介绍。
在某些实施例中,收到符号序列重叠部分的至少给定一部分包括前向计算区间,正如以上连同图13A的介绍。第一组处理器的给定一个(根据其指令存储器内存储的第一程序代码)被配置为在前向计算区间上,执行前向穿过计算作为解调过程的一部分。前向计算区间的初始部分被用于获得前向穿过计算的收敛,但是不用于确定前馈信息。见比如以上连同图13A介绍的前向运行开始区间。
在某些实施例中,给定处理器可以被配置为作为包括所述解调过程和所述解码过程的一组操作的当前完成的重复次数的函数,缩短前向计算区间的初始部分的长度,如以上的多种介绍。
在某些实施例中,收到符号序列重叠部分的给定一部分包括后向计算区间,正如以上连同图13B的介绍。第一组处理器的给定一个(根据其指令存储器中正存储的第一程序代码)被配置为在后向计算区间上,执行后向穿过计算作为解调过程的一部分。后向计算区间的初始部分被用于获得后向穿过计算的收敛,但是不用于确定前馈信息。见比如以上连同图13B介绍的后向运行开始区间。
在某些实施例中,系统1450可以包括第三组的一个或多个处理器1465,被配置为对前馈信息解增信删余和去交织,以便产生修改的数据序列。解增信删余的动作可以包括向修改的数据序列的增信删余位置注入先前算出的值,其中先前算出的值是作为解码过程的一部分第二组处理器先前算出的值,正如以上的多种介绍。
在某些实施例中,系统1450可以包括第四组的一个或多个处理器1475,被配置为对前馈信息交织和增信删余,以获得修改的反馈序列,正如以上的多种介绍。
在某些实施例中,交织/增信删余和解增信删余/去交织都由同一组的处理器负责。
在某些实施例中,第一程序代码由第一组处理器的给定一个(如任意一个)执行时,使得给定处理器执行前向穿过和后向穿过对应的解调网格作为解调过程的一部分,其中前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。
在某些实施例中,第一程序代码由第一组处理器的给定一个(如任意一个)执行时,使得给定处理器执行前向穿过和后向穿过对应的解调网格作为解调过程的一部分,其中后向穿过包括:在给定的符号位置计算β向量;以及响应所述β向量等于零向量的判断将设置β向量等于向量E,其中向量E的全部分量都等于小正值。
在一组实施例中,可以执行图16A所示的处理所接收的符号以恢复发送的信息的方法。图10及其呈现的文本说明可以被解释为这种方法的一个实施例。
在1510,可以收到符号数据序列。例如,符号数据序列可以由滤波器模块310提供,正如以上连同图3和/或图10的说明。
在1515,第一组的两个或更多个处理器使用反馈数据序列的两个或更多个对应的子序列,可以对该符号数据序列的两个或更多个对应的子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块。见比如图10的方框910。
在1520,第二组的两个或更多个处理器可以对从前馈信息的两个或更多个块所装配的第一合成序列执行解增信删余/去交织,以便产生修改的数据序列。见比如图10的方框920。
在1525,第一组的两个或更多个处理器可以对修改的数据序列的两个或更多个对应的子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块。见比如图10的方框910。
在1530,第二组的一个或多个处理器可以对从反馈信息的两个或更多个块所装配的第二合成序列并行地执行交织和增信删余,以便产生反馈数据序列。见比如图10的方框920。
在1535,包括1515、1520、1525和1530的一组操作可以重复多次。在一个实施例中,重复的次数是预定的数目Nmax。在另一个实施例中,迭代的次数可以由符号概率相对于规定最小阈值的幅度确定。
在1540,第一组的两个或更多个处理器可以并行地运算,以便根据修改的数据序列的两个或更多个对应的子序列,产生原始信息位的软估计(如LLR)。
在某些实施例中,可以执行附加处理根据软估计形成接收消息。例如,可以对软估计进行硬限制以获得原始信息位的硬估计。硬估计可以作为输出提供给用户,或者发送到网络,或者存储以备后用。
在某些实施例中,可以使用硬估计产生输出信号,而该输出信号可以被用于构成用户数据包。
在某些实施例中,第一和第二组的处理器选自处理器的阵列,在此所述阵列的处理器被互连以形成2D矩形网格(或更高维的网格),如以上的介绍。优选情况下,第一和第二组的处理器是不相交的组。所述阵列的这些处理器可以被独立地编程。
在某些实施例中,解调过程产生关于被传送符号的本征和非本征信息;并且第一组处理器根据本征信息和非本征信息的混合产生前馈信息块。作为所述操作组的当前完成的重复次数的函数,可以增加所述混合中包括的本征信息量,正如以上的介绍。
在某些实施例中,解码过程产生关于编码位的本征和非本征信息;并且第一组处理器根据本征信息和非本征信息的混合产生反馈信息块。作为所述操作组的当前完成的重复次数的函数,可以增加所述混合中包括的本征信息量,正如以上的介绍。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,在此所述前向收敛区域被用于获得解调过程的前向网格遍历中的收敛,但是不用于产生前馈信息的对应数据块。见比如以上连同图13A的讨论。
在某些实施例中,符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,在此所述后向收敛区域被用于获得解调过程的后向网格遍历中的收敛,但是不用于产生前馈信息的对应数据块。见比如以上连同图13B的讨论。
在某些实施例中,解增信删余的动作包括向修改的数据序列的增信删余位置注入先前算出的值,其中先前算出的值是来自在操作组的先前重复中由解码过程计算的反馈信息块中对应位置的分量。例如,可以将先前迭代中由解码过程计算的反馈序列{L(bk|p)}中对应位置的这些值注入(充填)到序列{L(bk|y)}的增信删余位置。
在某些实施例中,解调过程包括第一组处理器的每个都执行前向穿过和后向穿过解调网格,其中在第一组处理器的给定一个中,前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。例如,小正值可以是1/NS1,其中NS1是解调网格中的状态数。
在某些实施例中,解码过程包括第一组处理器的每个都执行前向穿过和后向穿过解码网格,其中在第一组处理器的给定一个中,前向穿过包括:在给定的数据位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。例如,小正值可以是1/NS2,其中NS2是解码网格中的状态数。
在某些实施例中,操作1515的重复包括将解调程序加载到第一组处理器的每一台的指令存储器中,其中所述解调程序由第一组的每个处理器执行时,使得该处理器对对应符号数据子序列以及反馈数据序列的对应的子序列执行前向/后向算法;而操作1525的每次重复包括将解码程序加载到第一组处理器的每一台的指令存储器中,其中所述解码程序由第一组的每个处理器执行时,使得该处理器对修改的数据序列的对应的子序列执行前向/后向算法。比如当每个处理器的指令存储器太小不能同时适应整个解调程序和整个解码程序时可以使用这些实施例。
在一组实施例中,系统1550可以被配置为如图16B所示。系统1550可以包括控制单元1555和第一组的处理器1560。以上连同图8和图9所介绍的系统可以被解释为系统1550的实施例。
第一组的两个或更多个处理器1560至少在第一计算阶段可以配置有第一程序代码,以及至少在第二计算阶段可以配置有第二程序代码。第一程序代码由第一组的处理器执行时,使得第一组的处理器使用反馈数据序列的对应部分,对收到符号序列的重叠部分并行地执行解调过程,以便获得前馈信息,正如以上的多种介绍。第二程序代码由第一组的处理器执行时,使得第一组的处理器对前馈信息的去交织和解增信删余形式的重叠部分并行地执行解码过程,以便获得反馈信息,正如以上的多种介绍。反馈数据序列是反馈信息的交织和增信删余形式。
控制单元1555可以被配置为使得第一组的处理器以交替方式执行第一程序代码和第二程序代码。例如,控制单元可以包括控制处理器和存储器,其中存储器存储着由控制处理器可执行的程序指令。执行时,程序指令指挥控制单元引起第一组处理器与第二组处理器之间的交替。
第一组的处理器1560可以进一步地被配置为对前馈信息的去交织/解增信删余形式的重叠部分并行地运算,以便产生原始信息位的估计,正如以上的多种介绍。
在某些实施例中,第一组的处理器1560可以被配置为作为包括解调过程和解码过程的一组操作的当前完成的重复次数的函数,增加在前馈信息中包括的本征信息量,正如以上的多种介绍。不仅如此,第一组的处理器可以被配置为作为当前完成的重复次数的函数,增加在反馈信息中包括的本征信息量,正如以上的多种介绍。
在某些实施例中,收到符号序列重叠部分的至少给定一部分包括前向计算区间,正如以上连同图13A的介绍。第一组处理器的给定一个(如根据给定处理器的指令存储器中存储的第一程序代码)可以被配置为在前向计算区间上,执行前向穿过计算作为解调过程的一部分。前向计算区间的初始部分被用于获得前向穿过计算的收敛,但是不用于确定前馈信息,如以上连同图13A的介绍。
在某些实施例中,给定处理器可以被配置为作为包括所述解调过程和所述解码过程的一组操作的当前完成的重复次数的函数,缩短前向计算区间的初始部分的长度,如以上的多种介绍。
在某些实施例中,收到符号序列重叠部分的给定一部分包括后向计算区间,正如以上连同图13B的介绍。第一组处理器的给定一个(如根据给定处理器的指令存储器中存储的第一程序代码)可以被配置为在后向计算区间上,执行后向穿过计算作为解调过程的一部分。后向计算区间的初始部分被用于获得后向穿过计算的收敛,但是不用于确定前馈信息,如以上连同图13B的介绍。
在某些实施例中,系统1550还可以包括第二组的一个或多个处理器,被配置为对前馈信息解增信删余和去交织,以便获得修改的数据序列,正如以上的多种介绍。解增信删余的动作可以包括向修改的数据序列的增信删余位置中注入先前算出的值,其中先前算出的值是作为解码过程的一部分,第一组处理器先前算出的值。
在某些实施例中,第一程序代码由第一组处理器的给定一个(如任意一台)执行时,使得给定处理器执行前向穿过和后向穿过解调网格作为解调过程的一部分。前向穿过包括:在给定的符号位置计算α向量;以及响应所述α向量等于零向量的判断将设置α向量等于向量E,其中向量E的全部分量都等于小正值。
在某些实施例中,第一程序代码由第一组处理器的给定一个(如任意一台)执行时,使得给定处理器执行前向穿过和后向穿过解调网格作为解调过程的一部分。后向穿过包括:在给定的符号位置计算β向量;以及响应所述β向量等于零向量的判断将设置β向量等于向量E,其中向量E的全部分量都等于小正值。
在某些实施例中,接收机120使用并行的处理器架构(如“Hyper-X”架构)可以执行以上介绍的重叠窗口方法。重叠窗口方法使在收到数据包的几个重叠窗口(子序列)上的迭代的消息传递算法并行化,正如以上的多种介绍。因为这些窗口的尺寸比接收的数据包小,所以显著缩短了等待时间,并且显著降低了中间路径度量的存储器需求。这种方式产生的结果类似于在整个接收的数据包上执行消息传递时所获得的结果(假设每个窗口都适宜地被初始化),代价为处理开销,因为在运行开始区间上算出的数据被丢弃。
在某些实施例中,每个PE(处理单元)的指令存储器都大到足以同时存储解调程序和解码程序。因此,方框910(见图10)的每个PE都可以在半迭代结尾时在解调程序与解码程序之间立即跳转,不必承受等待重新加载程序代码。
在其他实施例中,每个PE的指令存储器都太小不能同时存储解调程序和解码程序。因此,并行处理器架构的控制单元可以在若干半迭代之间重新加载指令存储器,即在半迭代结尾时在加载解调程序与加载解码程序之间交替。注意,以允许相应功能以最少重叠直接重用代码的这种方式参数化程序代码,能够减轻存储每个程序的全部内容的需求。
正如以上的讨论,只要增信删余器230丢弃数据,去交织/解增信删余过程325就可以插入零值。在一个替代实施例中,去交织/解增信删余过程325可以注入在消息传递算法的先前迭代中由解码过程330算出的适宜LLR值L(bk|p),而不是注入零值。在解增信删余过程中使用先前算出的信息的方法本文称为“回顾解增信删余”。目的是为了加速收敛,因为连续迭代中的解增信删余位的位置不需要从冷起点初始化,从而给出了机会回顾在前次迭代中对这些位的位置导出的估计。
回想解调过程和解码过程都执行前向计算和后向计算。在定点的实现中,有可能存在前向计算将导致全零状态即在给定符号位置算出的α向量将等于零向量的状态。只要这种状态发生,如果置之不理,随后的全部α向量也将等于零(由于一个α向量与下一个之间关系的线性性质)。对于后向计算也有类似的评论。因此,只要前向计算导致了等于零向量的α向量,该α向量就被设置为等于向量E,其分量全部等于ε,其中ε是小值。例如,在一个实施例中,ε=1/NS,其中NS是正被使用的网格的状态数。通过对α向量的所有分量求和,可以简单地实现对全零状态的测试,因为α向量的这些分量都是非负的。如果该总和等于零,全零状态就已经发生。(如果该总和不等于零,可以使用该总和规格化α向量。规格化可以确保该前向计算有效地使用α向量分量可用的动态范围。)
同样,只要后向计算导致了等于零向量的β向量,该β向量就被设置为等于向量E。同样通过对β向量的这些分量求和,可以执行全零状态发生的测试。(如果该总和不等于零,可以使用该总和规格化β向量。)
可以将接收机120的某些实施例配置为实施SLICE 2.1的士兵无线电波形。在一组实施例中,接收机120可以被配置为以一种或多种下列CC模式的非传播数据速率操作:2.64(CPM)、0.936(OBL-MSK)Mb/s。在另一组实施例中,接收机120可以被配置为以下列CC模式的传播数据速率操作:112.5、52.25 kb/s(DBPSK)。不过,应当指出,接收机120不限于这些或任何其他的限定组的数据速率。
在某些实施例中,接收机120被用作设计为满足SLICE 2.1链接需求的更大系统的一部分。图17是根据一组实施例,用于CC模式数据速率的SNR目标表。变量Eb表示每位的能量。变量Es表示每符号的能量。变量N0表示噪声功率频谱密度。Eb/N0是每位规格化的信噪比度量。
图18是框图,展示了处理系统的一个实施例,可用于并行化图4的方法。例如,该处理系统可以用于实现本文公开的所有方法,如图3、图8、图9、图14和图15中所公开的方法。在本说明书中,可以将该处理系统称为数学矩阵算法处理器(MMAP),尽管使用这个名称并非试图以任何方式限制本发明的范围。在展示的实施例中,MMAP 1710包括多个可动态配置的处理器(DCP)和多个可动态配置的发信机(DCC),也称“可动态配置的通信单元”,彼此连接以传播数据和指令。正如本文所用,DCP也可以被称为DCP节点,而DCC也可以被称为DCC节点。在某些实施例中,DCP可以用作以上连同图14和图15介绍的处理器;而DCC可以用作以上连同图14和图15介绍的DMR。
处理系统1710可以用在多种系统和应用的任何一种中,在这里通常使用了通用微处理器(GPMC)、DSP、FPGA或ASIC。从而例如,处理系统1710可以用在需要计算的多种类型的计算机系统或其他设备的任何一种中。
在一个实施例中,DCP可以包括一个或多个被配置为处理数据的算术-逻辑单元(ALU)、一个或多个被配置为控制ALU的指令处理单元(IPU)、一个或多个被配置为保存指令或数据的存储器以及多种类型的多路转换器和解码器。这样的实施例可以包括许多端口(“处理器端口”),其中的某一些可以被配置为连接DCC,而其他的可以被配置为连接其他的DCP。图20是DCP一个实施例的框图,并且以下被进一步介绍。
在一个实施例中,DCP可以包括一个或多个被配置为保存数据或指令的随机存取存储器、可配置的控制器、网络交换机比如纵横制交换机、若干寄存器以及若干多路转换器。这样的实施例可以包括多个端口,其中的某一些可以被配置为连接DCP(本文称DCP型端口),而其他的可以被配置为连接DCC(本文称DCC型端口)。图21是DCC一个实施例的框图,并且以下被进一步介绍。应当注意,对于任何给定端口,无论被配置为连接到DCC或DCP,还是连接自DCC或DCP,在特定时钟周期,通过这样的给定端口可传送的数据量在多个实施例中可以变化。例如,在一个实施例中,给定端口可以被配置为每个时钟周期传送一个字的数据,而在另一个实施例中,给定端口可以被配置为每个时钟周期传送多个字的数据。在再一个实施例中,给定端口时可以采用比如时分多路转换的技术,在多个时钟周期传送一个字的数据,从而减少了包括该端口的物理连接的数量。
在MMAP 1710的一个实施例中,每个DCP都可以包括为若干指令保留的少量本地存储器,并且可以包括非常少的本地数据存储器。在这样的实施例中,邻近每个DCP的若干DCC可以被配置为向给定的DCP提供操作数。在某特定实施例中,对于许多DCP指令,给定DCP可以在一个时钟周期中从邻近的DCC中读取操作数、执行ALU操作并将ALU结果存储到给定邻近DCC。从而可以使得来自一个DCP的ALU结果在紧随执行的时钟周期中对几个其他DCP可用。以这种方式产生结果能够使得邻近DCP的执行紧密地协调或“紧耦合”。这样的协调本文称为
正如本文使用,从给定DCC或DCP的观点,邻近DCC或DCP是指在特定等待时间内能够从给定DCC或DCP访问的DCC或DCP。在某些实施例中,定义邻近关系范围的等待时间可以随几个因素改变,比如时钟速度。另外,在某些实施例中,可以定义多个邻近等级,这些等级可以对应于不同的访问等待时间。例如,在一个实施例中,可以将“最近邻”定义为能够在被请求期间同一个时钟周期提供数据的设备,可以将“次最近邻”定义为能够在被请求后的一个时钟周期内提供数据的设备等等。在其他实施例中,也考虑了使用其他度量以量化邻近关系。
在给定MMAP实施例中,某些DCC和DCP可以其他DCC和DCP。正如本文使用,“逻辑上邻近”是指两个器件之间的关系,比如一个DCC与另一个DCC,或者一个DCC与一个DCP,使得一个器件的一个或多个端口直接连接到另一个器件的相应端口,而不穿过中介DCC或DCP。另外,在给定MMAP的实施例中,某些DCC和DCP可以其他DCC和DCP。正如本文使用,“物理上邻近”是指两个器件之间的关系,比如一个DCC与另一个DCC,或者一个DCC与一个DCP,使得没有其他的DCC或DCP在物理上位于两个器件之间。
在某些MMAP实施例中,在逻辑上和/或物理上邻近的器件比如DCC和DCP也是邻近的或邻居器件。不过,应当注意,在某些实施例中,给定器件之间的逻辑上和/或物理上的邻近并不伴随这些给定器件之间的邻近关系,或者邻近关系的特定等级。例如,在一个实施例中,一个DCC可以直接连接到位于相当远距离的另一个DCC。这样的一对可以在逻辑上邻近但是在物理上不邻近,从而从一个DCC到另一个DCC的信号传播时间可能太长而不能满足邻居间的等待时间要求。同样,在一个实施例中,一个DCC可以在物理上邻近另一个DCC,但是不与其直接连接,因此在逻辑上不与其邻近。从一个DCC到另一个DCC的访问可能穿过一个或多个中间节点,从而导致的转接延迟可能太长而不能满足邻居间的等待时间要求。
取决于MMAP 1710的给定实施例的技术和实施,DCC多个端口的具体数量以及DCC RAM的规模可以对照总的期望执行速度和DCC规模进行平衡。例如,一个DCC实施例可以包括4个DCP型端口、4个DCC型端口和4K字的存储器。这样的DCC实施例可以被配置为提供直接存储器访问(DMA)的机制。DMA机制可以允许在DCP正在计算若干结果的同时,给定的DCC将数据高效地复制到其他DCC或者从其他DCC复制数据。
在MMAP 1710的一个实施例中,可以以几种不同方式之一在这些DCC之间传送数据和指令。可以将串行总线提供给MMAP 1710中的所有存储器;这样的总线可以用于从外部存储器初始化MMAP1710,或者支持MMAP数据结构的测试。对于短距离的传送,可以对给定DCP进行编程以将数据直接地移动到或自其邻居DCC。为了在更长的距离上传送数据或指令,可以在DCC的网络中动态地创建和消灭通信路径。
为了这种更长距离数据传送的目的,在MMAP 1710内使DCC互连的网络可以构成用于通信路径的交换路由结构(SRF)。在这样的实施例中,可以有至少两种方法管理在SRF中的通信路径。第一种方法是通过全局编程,其中路径可以由软件控制选择(例如,或者通过程序员或者通过具有路由能力的编译器),并且可以把指令编码到DCC配置控制器之中以对纵横制交换机进行适当地编程。为了创建路径,沿着该路径的每一个DCC都可以被明确地编程为具有特定的路由功能。在频繁创建和消灭路径的动态环境中,可能需要大量的纵横制交换机配置代码,它们的存储又可能消耗可能有限的DCC RAM资源。
管理通信路径的第二种方法被称为“虫孔路由”。为了实现虫孔路由,每个DCC都可以包括一组操纵函数以及停止和重新开始穿过SRF的字序列进展(被称为虫)的机制。因为这些操纵函数可以被所有通信路径共同使用和重用,所以可能占据DCC RAM的配置代码量可以比以上介绍的全局编程方法小得多。对于虫孔路由方法,软件控制仍然可以用于选择被路径所使用的特定链接,但是也可以在具有最少软件干预的硬件中实现路径创建(本文也称为建立)和消灭/链接释放(本文也称为拆卸)的过程。
为了防止路径上数据字的潜在损失,MMAP 1710的实施例可以在接收者与发送者之间沿着路径实施数据流控制。数据流控制是指如果其对应接收者不能再接收数据可以停止发送者的机制,以及如果其对应接收者变为准备好接收数据可以重新启动发送者的机制。因为在路径上停止和重新开始数据流与在虫孔路由中停止和重新开始虫的进展具有许多相似点,所以在集成模式中可以将二者结合。
在一个实施例中,MMAP 1710可以包括多个DCP和DCC,这些DCP可以是一致的以及这些DCC可以是一致的,在均匀阵列中连接在一起。在均匀阵列中,大多数DCP可以是一致的并且大多数DCP的每一个都可以具有相同数目的到DCC的连接。同样,在均匀阵列中,大多数DCC可以是一致的并且大多数DCC的每一个都可以具有相同数目的到其他DCC和到DCP的连接。在一个MMAP实施例中DCP和DCC可以以基本上均一的形式散置。正如本文使用,基本上均一的散置是指在布局中DCP与DCC的比值在跨越阵列的大多数子区域都是一致的。
以基本上均一形式安排的均匀阵列可以具有某些优选特征,比如提供可预测的互连模式和使软件模块在该阵列上被重用。在一个实施例中,均匀阵列可以使设计和测试少量的DCP和DCC实例成为可能。然后通过制作包括DCC和DCP的单元并再重复或“平铺”这样的单元多次就可以装配为系统。这样的方案经过公共系统单元的重用可以降低设计和测试成本。
还应当注意,DCC和DCP的可配置性质可以允许变化很大的非均匀行为被编程以发生在物理上均匀的阵列上。不过,在替代实施例中,MMAP 1710也可以用均匀的DCC和DCP单元形成,它们可以被连接在规则的或规则的阵列中,甚至以随机的方式。在一个实施例中,DCC和DCP的互连可以实现为电路痕迹,例如在集成电路(IC)、陶瓷基底或印刷电路板(PCB)上。不过,在替代实施例中,这样的互连可以是各种各样小型通信链接的任何一种,比如电磁能(即无线电或光能)的波导、无线(即非引导的)能量、粒子(比如电子射束)或分子上的势能。
MMAP 1710可以实现在单集成电路上。在一个实施例中,可以将多个MMAP集成电路组合以产生更大的系统。使用硅集成电路(Si-IC)可以实现MMAP 1710的给定实施例,并且可以使用多种特征以说明这种技术的特定特征。例如,Si-IC芯片上的电路可以被限制到薄平面。相应地,MMAP 1710的给定实施例可以使用DCP和DCC的二维阵列,比如图18中的展示。不过,设想了包括DCP和DCC不同布局的替代MMAP实施例。
另外,Si-IC芯片上的可用布线密度可以比这些芯片之间的布线密度高得多,并且每个芯片可以具有专用输入/输出(I/O)电路的周边以连接片上信号和片外信号。相应地,MMAP 1710的给定实施例可以采用小范围的非均匀阵列,由芯片核心中DCP和DCC的均匀阵列以及沿着芯片周边修改的DCP/DCC单元组成。不过,设想了包括均匀的与修改后DCP/DCC单元的不同布局和组合的替代MMAP实施例。
同时,由Si-IC电路执行的计算操作可能产生热,它可以被IC封装除去。增加IC封装会要求附加的空间,并且穿过和绕过IC封装的互连可以招致正比于路径长度的延时。因此,正如以上指出,通过互连多个芯片可以构造非常大的MMAP。这样的多芯片MMAP实施例的编程可以考虑到芯片间信号时延要比芯片内时延长得多。
在给定Si-IC MMAP 1710的实施例中,在单一芯片上可以实现的DCP和DCC的最大数目可以对给定Si-IC技术以及每个DCP和DCC的复杂度可能的小型化确定。在这样的MMAP实施例中,DCP和DCC的电路复杂度可以最小化以达到计算吞吐量目标等级的条件。这些最小化的DCP和DCC本文可以称其为被简化。在一个MMAP1710实施例中,DCP的吞吐量目标等级可以比得上以相同Si-IC技术制作的最好数字信号处理器(DSP)的算术执行单元的等级。不过,也设想了其他的MMAP实施例,其中可以使用目标DCP吞吐量的选择性参考。
在某些实施例中,MMAP 1710可以采用DSP和FPGA架构的最佳特征。如同DSP,MMAP 1710可以是具有多个处理单元和片上存储器的可编程芯片。不过,相对于DSP,MMAP处理单元可以是简化的,它们可以有更多,并且可以以它们之间的数据移动以及片上和片外数据移动的带宽最大化的方式将它们互连。具有比DSP更多的处理单元,可以允许MMAP 1710每单位时间执行更多的乘法,并且简化的处理单元可以使能耗最小化。具有内部并行机制的许多DSP都可以是总线导向的架构。在某些实施例中,MMAP 1710可以不包括总线,而是可以包括近邻共享的本地存储器,比如在DCC中,嵌入在SRF中,可以提供比总线导向的架构高得多的总带宽。
与FPGA方案相比,某些MMAP实施例的粒度可以更粗。例如,在一个MMAP实施例中,操作可以具有自然字的长度(如16位),并且如果执行时使用的数据是自然字长度的倍数,计算可能最高效。在某些MMAP实施例中,DCP和DCC比在FPGA中实现的等效结构更密集,这可以引起更短的平均布线长度、更低的布线电容和更少的能耗。与FPGA实现相反,在某些MMAP实施例中,在MMAP中的每一个ALU都可以是处理器(即DCP)的一部分,这可以方便操作数的建立和将结果递送到DCC中围绕的最快存储器。
图18中展示的MMAP 1710通过如图所示在DCP之间散置DCC,可以为DCP提供到快速存储器的充足连接。相对于隔离(即非散置)布局,这样的布局可以缩短给定DCP访问DCC中存储器所需要的时间,并且本文可以将其称为散置网格布局。在图18的实施例中,DCP与DCC的比值为1:1。不过,也设想了可以包括不同DCP与DCC比值的其他MMAP实施例。
DCC与DCP之间的连接没有明确地显示在图18中,因为可以有许多种可能的连接模式。对于给定的MMAP实施例,几种可能的连接模式可以包括下列各项。
1.平面A——在这种模式下,每个DCP都可以连接到其四个邻居DCC,经由每个这样的邻居DCC上的DCP型端口。同样,每个DCC也都可以连接到其四个邻居DCC,经由每个这样的邻居DCC上的DCC型端口。每种连接类型都可以由一组并行的电路痕迹或布线组成。在均匀阵列中,连接类型中的布线数量在阵列上可以是均匀的。
2.平面B——这种模式与平面A模式相同,只不过为了从串联存储器中加载初始状态,在DCC之间可以以串行总线进行补充连接。
3.平面C——这种模式与平面B模式相同,只不过在被阵列的许多行和列所分开的DCC之间可以进行补充连接。这样的补充连接可以增加带宽和缩短更远的DCC之间的等待时间。
4.平面D——这种模式是平面C的子集,使得补充连接可以表示超立方体的边缘,其中每个DCC都是同一超立方体的顶点。
5.平面E——这种模式是平面C的子集,使得可以进行补充连接以许多连接将第二芯片联结到第一芯片,所以两个阵列可以被紧耦合。
6.堆叠A——这种模式是平面C的子集,使得补充连接可以支持三维矩阵。
应当注意,设想了若干补充连接模式,其中使用不同类型和数目的连接可以以不同的拓扑连接DCC和DCP。
图18是框图,展示了MMAP连接模式的一个实施例。MMAP连接模式1820包括多个DCC和DCP,并且可以展示图18的MMAP的一部分。在MMAP连接模式1820中,每个DCP都连接到四个邻居DCC,同时每个DCC都连接到四个邻居DCP以及四个邻居DCC。所以,MMAP连接模式1820可以展示以上讨论的平面A连接模式。
为了支持MMAP连接模式1820中的高带宽端口,若干端口之间的连接(DCP到DCC或DCC到DCC)可以是短距离的(即限于邻居)和字宽的,意味着连接的数据部分中的电导体(线)数可以与ALU操作数中使用的位数相同。DCP到DCC的连接可以包括若干地址线。DCC到DCC的连接可以未必具有地址线但是可以具有用于数据流控制的线。
通过保持DCP节点的简单,以适度的成本可以将大阵列(例如,在一个MMAP实施例中,16行乘以16列=256个DCP)放置在单一VLSI IC上。适合的VLSI技术可以包括但是不限于在硅或其他半导体中具有或没有双极晶体管的互补金属氧化物半导体(CMOS)场效应管。
在某些MMAP实施例中,节点之间的通信可以在程序员控制之下。在某MMAP中,每个DCP都可以与邻近DCC交换数据/指令,并且可选地经过这些DCC到其他DCC和DCP。为了移动小数据块,通过一系列传送——每DCP每次一个字,可以协作地使用若干DCP在阵列上移动数据。以这样的方法,从源节点到目的地节点路径中的第一个DCP,在时钟周期的读取相位期间可以从邻居DCC的存储器中读取,并且在时钟周期的写入相位期间可以写入到另一个邻居DCC。路径中的第二个DCP可以类似地读写数据,该过程可以继续到该数据到达了目的地节点。当数据沿着路径向其目的地节点传播时,还可以由给定DCP将其比例缩放或规格化。使用这种方法,编程可以在阵列上建立组桶式连线和树,将数据移动到需要它之处。不过,对于更长的距离和更大量的数据,可能需要多次移动以传送数据,因此许多DCP可能花费大多数周期仅仅移动数据而不是执行更多有用的运算。
对于更长距离的移动,某些MMAP实施例可以提供在DCC之间进行存储器到存储器传输的装置而不涉及DCP。DCP可以间接地访问邻居DCC中的DCC型端口,经过了与这些端口相关联的专用RAM地址。这可以允许DCP创建新的路径用于发送虫并在后来拆卸这样的路径,或者作为替代接收虫。DCP还可以在邻居DCC中的RAM中保存将被传输的数据块,然后指导邻居DCC经由与DMA操作相关联的专用RAM地址,开始这样的操作。这可以允许DCP继续进行其他的任务,同时邻居DCC协调数据的DMA传输。
MMAP的多种实施例可以为执行有用算法提供优选环境。所关注的算法(如图4的方法)可以被分解到若干ALU的流程图中。每个流程图都可以被映射到MMAP阵列上,作为树、点阵或任意网络,包括多条反馈/前馈路径。通过组合几个DCP和DCC,一个ALU的有限精度可以被扩展以获得多字精度的结果。将流程图映射到MMAP时,与DCP/DCC节点之间的距离成正比的节点之间的通信延迟可能增大。同时,如果通信队列大或者如果重新配置频繁,映射可能在每个节点需要更多的存储器。通过仔细地编程可以补偿这些因素,它可以考虑到通信延迟、队列和重新配置。
MMAP实施例可以具有每芯片许多处理器和MIMD架构,它可以被配置为仿真其他类型系统的操作,比如SIMD系统和分布式MIMD系统。在某些实施例中,MMAP可以在该芯片的不同区域同时运行不同的算法。同时,为了节省电源,在某些实施例中,程序员可以选择地启用或禁用到至少某些DCP和DCC的时钟信号,使得未使用的DCP和DCC被禁用。
图20是框图,展示了可动态配置的处理器(DCP)的一个实施例。DCP 1900可以展示图18和图19所示的DCP。DCP 1900包括指令处理单元(IPU)1910,被耦接以控制至少一个算术逻辑单元(ALU)1920。DCP 1900还包括多个数据输入端口1901,被耦接到多个多路转换器(本文也称为Mux),它又被耦接以为ALU 1920选择至少第一和第二操作数输入,以及为指令处理单元1910选择程序加载路径数据。DCP 1900进一步包括多个数据输出端口1902,被耦接为经由Mux接收来自ALU 1920的结果数据,以及包括多个地址端口1903,被耦接为接收来自指令处理单元1910的地址数据。
地址端口1903可以被配置为传送若干地址,用于读写邻近的可动态配置发信机(DCC)中包含的RAM数据。数据输入端口1901和数据输出端口1902可以被配置为对邻近DCC往返传送数据。在同步运算模式下,在一个时钟周期期间经由数据输出端口1902写入到邻近DCC的数据,在紧随的时钟周期期间便可以有效地经由邻近DCP1900的数据输入端口1901被读出,而没有附加的延迟或协调开销。
在展示的DCP 1900的实施例中,数据输入端口1901、数据输出端口1902和地址端口1903的每一个都包括四个端口。还显示了单ALU 1920。不过,也设想了替代实施例,其中提供了其他数目的数据输入端口、数据输出端口或地址端口,并且其中可以包括不同数目的ALU。在矩形阵列中包括DCP 1900多个实例的MMAP实施例中,比如图18中展示的MMAP实施例,多个端口可以最终围绕着每个DCP节点的四边分布。
DCP 1900可以被配置为对数据字执行算术/逻辑单元操作,其中所选定的操作取决于被IPU 1910所处理的当前指令。为了支持灵活的编程,IPU 1910可以包括至少一个指令存储器1912,该指令存储器1912包含多个可寻址位置、指令解码器1914和地址发生器1916,每个都经由各种各样的互连机制互连。在其他实施例中,设想了IPU1910可以包含多于一个指令存储器或可以包含附加功能。进一步设想了在其他实施例中,可以将在IPU 1910中展示的功能划分到不同类型的功能单元之中,或者在单个功能单元中实现。
IPU 1910可以被配置为经由耦接到数据输入端口1901的程序加载路径接收程序数据以存储在指令存储器1912中。指令存储器1912还可以通过全局串行总线(未显示)被写入和读出。取决于利用指令解码器1912的特定指令的解码,IPU 1910可以被配置为控制耦接到数据输入端口1901和数据输出端口1902的多个多路转换器,导引数据往返邻近DCC。IPU 1910可以进一步被配置为经由地址端口1903向邻近DCC传送由地址发生器1916所产生的地址,例如读取或写入位于其中的RAM。地址发生器1916还可以包括程序计数器寄存器(未显示),被配置为产生要从指令存储器1912取来的并被指令解码器1914解码的下一条指令的地址。
在一个实施例中,DCP 1900可以不包括用于数据操作数或结果数据的数据寄存器文件、数据高速缓存或者任何本地存储器。在这样的实施例中,DCP 1900可以被配置为利用直接连接DCP 1900的DCC中包括的存储器作为快速存储器介质,数据操作数可以从其读出,结果数据可以向其写入。在某些实施例中,给定的DCP可以同时地或在不同时间从不同的邻居DCC获得不同的数据。正如以下更详细的介绍,在某些实施例中,给定DCP也可以被配置为在不直接连接给定DCP的DCC中读写数据,方式为建立从这样的远程DCC到给定DCP的邻居DCC的路径。
由DCP 1900执行的指令可以支持算术和逻辑运算以及元指令。DCP指令的位长可以足够为两个操作数和一个结果进行存储器寻址,这可以允许这些值在一个时钟周期内被读写。在一个实施例中,DCP1900可以执行以下指令:加法(操作数地址、操作数地址、结果地址);减法(操作数地址、操作数地址、结果地址);乘法(操作数地址、操作数地址、结果地址);乘法并加到最后结果(操作数地址、结果地址);乘法并从最后结果减去(操作数地址、结果地址);求某数的反(类型、操作数地址、结果地址);求某数的绝对值(类型、操作数地址、结果地址);移位(类型、操作数地址、结果地址);异或(掩码地址、操作数地址、结果地址);反转(掩码地址、操作数地址、结果地址);跳转(条件、跨距、PC目的地);重复(开始、停止、跨距);循环(次数、PC块的开始);条件分支(测试、目的地)。
预指令是在地址发生器中设置索引寄存器的特殊指令。
存储索引(索引名、值)
跨距索引(索引名、值)
应当注意,也设想了其他实施例,其中DCP 1900可以实施附加指令或不同组的指令。在某些实施例中,在给定指令需要一个或多个数据操作数的执行期间,给定DCP可以被配置为直接访问邻近DCC中的存储器以存取所需要的操作数。
DCP 1900可以被配置为执行元指令。正如本文使用,元指令是指可以对在DCP指令存储器比如指令存储器1912中存储的指令执行运算的指令。基本元指令可以是从邻近DCC中的RAM加载指令存储器1912(即加载某重叠)。通过从DCC存储器加载指令存储器,可以由软件编程确定数据与指令之间的存储器划分。所以应用程序员可以优化其软件以最佳地使用可用的存储器。在某些实施例中,DCP1900可以包括其他的元指令,它们可以修改IPU指令存储器或在DCC存储器中保存指令存储器,以便例如进行测试、出错分析和/或出错恢复。
ALU 1920可以被配置为对至少定点数的系统执行算术运算,包括在特定DCP 1900实施例中支持的指令所定义的这些运算。例如,在一个实施例中,ALU 1920可以被配置为执行定点加法、减法、乘法、乘法累积、逻辑和移位运算。在某些实施例中,ALU 1920可以被配置为保留来自先前计算的进位结果,以支持扩展精度的算术运算。在其他实施例中,ALU 1920可以被配置为执行浮点算术运算或为实现特定的算法所选择的专用运算。
图21是框图,展示了可动态配置的发信机(DCC)的一个实施例。应当注意,本文可以互换地使用术语“可动态配置的发信机”和“可动态配置的通信单元”。DCC 2000可以展示图18和图19所示的DCC。DCC 2000包括多个DCP输入端口2001,经由耦接到SRAM控制2015的多个多路转换器连接到多端口静态RAM(SRAM)2025。多端口SRAM 2025被连接到多个地址解码器2020以及被连接到SRAM控制2015和多个DCP输出端口2002。地址解码器2020被耦接以经由多个多路转换器接收SRAM地址,多个多路转换器连接多个DCC端口解码器2010和连接SRAM控制2015。DCC端口解码器2010被连接以从多个DCP地址端口2003接收SRAM地址。
DCC 2000进一步包括多个DCC输入端口2004,经由多个多路转换器和多个输入寄存器2054连接到纵横制交换机2050和路由逻辑2035。纵横制交换机2050连接到路由逻辑2035,它又连接到通信控制器2030。通信控制器2030经由多个多路转换器连接到地址解码器2020以及经由程序加载通路连接到多端口SRAM 2025。纵横制交换机2050进一步经由多个输出寄存器2055连接到DCC输出端口2005。
输出寄存器2055经由多个多路转换器连接到多端口SRAM2025。DCP输入端口2001和多端口SRAM 2025的每一个都经由连接到路由逻辑2035的多个多路转换器并由输入寄存器2054连接到纵横制交换机2050。路由逻辑2035还连接到DCC端口解码器2010和输出寄存器2055。
DCP输入端口2001和DCP输出端口2002可以分别被配置为从DCC 2000的邻近DCP接收数据和向其发送数据。DCP地址端口2003可以被配置为从DCC 2000的邻近DCP接收地址。DCC输入端口2004和DCC输出端口2005可以分别被配置为从DCC 2000的邻近DCC接收数据和向其发送数据。在展示的DCC 2000的实施例中,DCP输入端口2001、DCP输出端口2002、地址端口2003、DCC输入端口2004和DCC输出端口2005的每一个都包括四个端口。不过,也设想了替代实施例,其中提供其他数目的DCP输入端口、DCP输出端口、地址端口、DCC输入端口或DCC输出端口。
多端口SRAM 2025可以包括多个可寻址的位置,并且可以被配置为向邻居DCP提供高带宽的数据传输。从而多端口SRAM 2025可以有效地担当共享寄存器堆栈,用于连接到DCC 2000的每个邻居DCP。多端口SRAM 2025可以进一步被配置为支持经由多个读、写和地址端口的多个并发的读写访问。在一个特定实施例中,多端口SRAM 2025可以被配置为基本上同时向多个邻居DCP提供在多个可寻址位置存储的多个值,以及基本上同时向多个可寻址位置写入从多个邻居DCP接收的多个值。
地址解码器2020可以被配置为将给定的存取地址解码为适合以高速与多端口SRAM 2025接口的格式,比如全解码后行和列的地址。SRAM控制2015可以被配置为控制多端口SRAM 2025在读写期间的行为,比如通过启用合适的读写端口。SRAM控制2015还可以被配置为控制向多端口SRAM 2025呈现的地址和数据的来源。对于多端口SRAM 2025的给定地址端口,SRAM控制2015可以指挥地址解码器2020使用或者由地址端口2003经由DCC端口解码器2010提供的地址,或者由通信控制器2030提供的地址。同样,对于多端口SRAM2025的给定写入端口,SRAM控制2015可以指挥多端口SRAM 2025或者从DCP输入端口2001或者从输出寄存器2055选择写入数据。
在展示的实施例中,DCC 2000包括单一多端口SRAM 2025。在其他实施例中,也设想了可以提供不止一个多端口SRAM,并且进一步设想了可以采用不同于静态RAM的存储器技术。在多个实施例中,使用任何数目的存储器结构组织都可以提供多端口SRAM的功能。例如,在一个实施例中,可以采用多存储体的存储器,其中每个存储体可以包括一个或多个端口。在另一个实施例中,在DCC中可以采用多个SRAM存储器,其中每个SRAM都可以具有不同数目的端口。在一个实施例中,DCC 2000还可以包括低带宽的串行端口(未显示),可以将其配置为加载或卸载多端口SRAM 2025。这样的串行端口例如对于启动加载器、测试和调试可能是有用的。
纵横制交换机2050可以包括多个输入端口和多个输出端口,并且可以被配置为将数据从任何输入端口引导到任何一个或多个输出端口。由纵横制交换机2050所执行的特定数据路由可以依赖于其包括的纵横制交换机配置寄存器(CCR)2051的状态,可以由路由逻辑2035根据在给定时间有效的特定路由功能而安排。通信控制器2030可以被配置为安排路由逻辑2035以实现特定的路由功能。通信控制器2030和路由逻辑2035的功能可以在本文统称为路由引擎。分等级地实现路由引擎,比如在所展示的实施例中,可以允许由路由逻辑2035所执行的路由功能快速地运算(如在时钟周期的几分之一内),同时通信控制器2030可以灵活性改变多个时钟周期上的路由参数。
在一个实施例中,CCR 2051可以被划分为若干位组,纵横制交换机2050的每个输出端口有一组。组中的位数可以至少足够选择纵横制交换机输入端口之一。如果所选定的输出寄存器2050通过了多路转换器(如在多个DCC链接当中选择),那么为了配置该多路转换器(即选择特定链接)可能需要每组的附加位。为了设置输出寄存器2055的透明度可以提供每组至少一个附加位。输出寄存器2055的透明度可以由从路由逻辑2035向输出寄存器2055传送的输出锁存器信号所控制,并且可用于缩短数据字经过DCC 2000传播的延迟。同样,输入寄存器2054的透明度也可以由从路由逻辑2035向输入寄存器2054传送的输入锁存器信号所控制,并且可用于提供MMAP中数据流控制的方法。在一个实施例中,CCR 2051可以包含用于每个输出寄存器2055的一个透明度位。在这样的实施例中,CCR 2051可以把每个输出寄存器2055映射到输入寄存器2054的相应一个,并且每个输出寄存器2055的透明度状态可以与其相应输入寄存器2053相关联。
可以按时钟周期的每个阶段的频度更新CCR 2051。CCR 2051可以经由通信控制器2030确定地安排,通信控制器2030通过程序加载路径被连接到多端口SRAM 2025。作为替代,对CCR 2051的安排可以由通过DCC输入端口2004到达的特殊控制字确定,输入端口2004被连接到路由逻辑2035。控制字可以由路由逻辑2035解释,它还可以将它们提供给通信控制器2030。
通信控制器2030可以指挥纵横制交换机2050将数据从一个或多个DCC输入端口2004引导到一个或多个DCC输出端口2005,从而可以通过MMAP阵列沿着某路径转播数据。DCC 2000可以提供数据的附加通信通道。在所展示的实施例中,多端口SRAM 2025可以经由多个mux即多路转换器在其写入端口处接收来自或者是DCP输入端口2001或者是输出寄存器2055的数据。多路转换器可以允许通信控制器2030在不访问多端口SRAM 2025使其有可能空闲的期间,访问多端口SRAM 2025。通信控制器2030可以被编程为引导要从多端口SRAM 2025发送到DCC输出端口2002之一的数据,或者引导从DCC输入端口2004之一读出的数据通过纵横制交换机2050被路由,并且写入多端口SRAM 2025中,其方式类似于通用微计算机(GPMC)的直接存储器存取(DMA)功能。程序加载路径可以允许通信控制器2030把程序重叠从多端口SRAM 2025动态地加载到通信控制器2030内部的指令RAM(未显示)中。
另外,在所展示的实施例中,DCC端口解码器2010可以用于检测某DCP已经向DCC输出端口写入了对路由逻辑2035的访问请求。如果DCC输出端口2005之一因此而被请求,路由逻辑2035就可以把经由DCP输入端口2001从请求DCP接收的数据字经由多个多路转换器引导到纵横制交换机2050。这种功能可以允许给定的DCP经由DCC输出端口2005向其他DCC发送数据,而不首先将该数据字存储在多端口SRAM 2025中。
以下条款描述了本发明的示范实施例:
1.一种方法,包括:
(a)从信道接收符号数据序列,其中,所述符号数据序列对应于由发射机发送到所述信道上的第二符号数据序列,所述第二符号数据序列由所述发射机根据相关联的信息位产生;
(b)第一组两个或更多个处理器并行地操作所述符号数据序列的两个或更多个重叠子序列,其中,所述符号数据序列的所述两个或更多个重叠子序列的每一个都对应于第一网格的相应部分,所述第一网格描述所述符号数据序列中的冗余,所述操作为所述相关联的信息位产生软估计;
其中,所述软估计用于形成对应于所述相关联的信息位的接收消息。
2.根据权利要求1的方法,其中,所述第一组的两个或更多个处理器选自处理器的阵列,所述阵列的处理器被互连以形成2D网格。
3.根据权利要求1的方法,进一步包括:
对多个所接收的符号数据序列的每一个执行(a)和(b);
对所述所接收的符号数据序列中的至少一个调整所述符号数据序列的两个或更多个重叠子序列的数目。
4.根据权利要求3的方法,
其中,根据所接收的符号数据序列的长度执行所述调整所述符号数据序列的两个或更多个重叠子序列的数目。
5.根据权利要求3的方法,进一步包括:
对所述所接收的符号数据序列中的至少一个调整所述符号数据序列的所述两个或更多个重叠子序列之间的重叠量。
6.根据权利要求1的方法,
其中,根据所述相关联的信息位的卷积编码产生所述第二符号数据序列,所述第一网格具有基于所述卷积编码的结构,
所述第一组两个或更多个处理器并行地操作所述符号数据序列的所述两个或更多个重叠子序列包括:对所述符号数据序列的所述两个或更多个重叠子序列并行地执行解码过程以实现所述符号数据序列的所述两个或更多个重叠子序列的每一个的维特比解码。
7.根据权利要求1的方法,
其中,所述第一网格具有基于所述符号数据序列与所述第二符号数据序列之间的给定线性关系的结构,
所述第一组两个或更多个处理器并行地操作所述符号数据序列的所述两个或更多个重叠子序列包括:对所述符号数据序列的所述两个或更多个重叠子序列并行地执行解调过程以对所述符号数据序列的所述两个或更多个重叠子序列的每一个实现维特比均衡。
8.根据权利要求1的方法,其中,所述发射机通过原始信息位的卷积编码以得到编码位以及通过所述编码位的交织,来产生所述相关联的信息位,其中(b)包括第一组的两个或更多个处理器使用所述编码位的软估计的交织形式的两个或更多个相应重叠子序列,并行地操作所述符号数据序列的两个或更多个重叠子序列,所述方法进一步包括:
(c)第二组的两个或更多个处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列,其中,去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分,所述第二网格具有对应于所述卷积编码的结构,对去交织形式的两个或更多个重叠子序列的所述并行操作为所述编码位产生软估计。
9.根据权利要求8的方法,进一步包括:
(d)多次重复(b)和(c)。
10.根据权利要求9的方法,进一步包括:
第二组的两个或更多个处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列以便产生所述原始信息位的软估计。
11.根据权利要求9的方法,其中(b)表示解调过程,(c)表示解码过程,(d)实现所述符号数据序列的加速均衡。
12.根据权利要求9的方法,其中(b)表示第一解码过程,(c)表示第二解码过程,(d)实现所述符号数据序列的加速解码。
13.根据权利要求9的方法,其中,根据所述编码位的软估计和所述相关联的信息位的软估计超出预定义的阈值,终止重复(b)和(c)。
14.根据权利要求9的方法,进一步包括:
对多个所接收的符号数据序列的每一个执行(a)-(d);
对所述多个所接收的符号数据序列中的至少一个调整所述第一组的两个或更多个处理器的数目。
15.根据权利要求9的方法,进一步包括:
对多个所接收的符号数据序列的每一个执行(a)-(d);
对所述多个所接收的符号数据序列中的至少一个调整所述第二组的两个或更多个处理器的数目。
16.根据权利要求9的方法,进一步包括:
对多个所接收的符号数据序列的每一个执行(a)-(d);
对所述所接收的符号数据序列中的至少一个调整所述符号数据序列的两个或更多个重叠子序列的数目;以及
对所述所接收的符号数据序列中的至少一个调整所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列的数目。
17.根据权利要求16的方法,
其中,根据所接收的符号数据序列的当前一个相对于所接收的符号数据序列的前一个的长度变化,执行所述调整所述符号数据序列的两个或更多个重叠子序列的数目以及所述调整去交织形式的两个或更多个重叠子序列的所述数目。
18.根据权利要求9的方法,进一步包括:
调整所述符号数据序列的所述两个或更多个重叠子序列之间的重叠量。
19.根据权利要求18的方法,其中,对所述多次重复(b)和(c)的至少一次执行所述调整所述符号数据序列的所述两个或更多个重叠子序列之间的所述重叠量。
20.根据权利要求9的方法,进一步包括:
调整所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列之间的重叠量。
21.根据权利要求20的方法,其中,对所述重复(b)和(c)的至少一次执行所述调整去交织形式的两个或更多个重叠子序列之间的所述重叠量。
22.根据权利要求9的方法,进一步包括:
调整所述符号数据序列的所述两个或更多个重叠子序列之间的重叠量;以及
调整所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列之间的重叠量。
23.根据权利要求22的方法,进一步包括:
其中,对所述重复(b)和(c)的至少一次执行所述调整所述符号数据序列的所述两个或更多个重叠子序列之间的所述重叠量;以及
对所述重复(b)和(c)的至少一次执行所述调整去交织形式的两个或更多个重叠子序列之间的所述重叠量。
24.根据权利要求9的方法,其中,所述符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,其中(b)包括第一组的每个处理器在第一网格的对应部分的每个时间步,在第一网格的对应部分上执行前向网格遍历以获得前向遍历值,所述前向收敛区域被用于获得所述前向网格遍历中的收敛。
25.根据权利要求24的方法,进一步包括作为(b)和(c)的所述多次重复的当前完成的次数的函数,缩短所述前向收敛区域的长度。
26.根据权利要求9的方法,其中,所述符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,其中(b)包括第一组的每个处理器在第一网格的对应部分的每个时间下标,在第一网格的对应部分上执行后向网格遍历以获得后向遍历值,所述后向收敛区域被用于获得所述后向网格遍历中的收敛。
27.根据权利要求26的方法,进一步包括作为(b)和(c)的所述多次重复的当前完成的次数的函数,缩短所述后向收敛区域的长度。
28.根据权利要求9的方法,其中(b)包括产生关于所述相关联的信息位的本征和非本征信息,所述第一组处理器基于所述本征信息和所述非本征信息的混合产生所述相关联的信息位的软估计,作为(b)和(c)的所述多次重复的当前完成的次数的函数,增加所述混合中包括的本征信息量。
29.根据权利要求9的方法,其中(c)包括产生关于所述编码位的本征和非本征信息,所述第二组处理器基于所述本征信息和所述非本征信息的混合产生所述编码位的软估计,作为(b)和(c)的所述多次重复的当前完成的次数的函数,增加所述混合中包括的本征信息量。
30.根据权利要求9的方法,进一步包括:
通过对所述相关联的信息位的软估计解增信删余和去交织,产生所述相关联的信息位的软估计的去交织形式,其中,所述解增信删余包括向输出序列的增信删余位置中注入先前计算的值,其中所述先前计算的值是在(c)的先前重复中由所述第二组处理器算出的所述编码位的软估计的指定的值。
31.根据权利要求9的方法,其中(b)包括第一组的每个处理器都执行前向穿过和后向穿过第一网格的对应部分,对于所述第一组的给定的一个处理器,所述前向穿过包括:
在给定的符号位置计算α向量;以及
响应所述α向量等于零向量的判断设置所述α向量等于向量E,所述向量E的全部分量都等于小正值。
32.根据权利要求9的方法,其中(c)包括第二组的每个处理器都执行前向穿过和后向穿过第二网格的对应部分,对于所述第二组的给定的一个处理器,所述前向穿过包括:
在给定的数据位置计算α向量;以及
响应所述α向量等于零向量的判断设置所述α向量等于所述向量E,所述向量E的全部分量都等于小正值。
33.根据权利要求9的方法,其中,所述第一组的两个或更多个处理器与所述第二组的两个或更多个处理器一致,其中(b)的每次重复都包括将第一程序代码加载到所述第一组的每个处理器的指令存储器中,所述第一程序代码由所述第一组的每个处理器执行时,使得所述处理器对所述符号数据序列的对应的子序列和所述编码位的软估计的交织形式的对应的子序列执行前向/后向算法,其中(c)的每次重复都包括将第二程序代码加载到所述第一组的每个处理器的所述指令存储器中,所述第二程序代码由所述第一组的每个处理器执行时,使得所述处理器对所述相关联的信息位的软估计的去交织形式的对应的子序列执行前向/后向算法。
34.根据权利要求1的方法,进一步包括:
根据所述原始信息位的软估计形成所述接收消息。
35.根据权利要求34的方法,进一步包括:
使用所述接收消息驱动输出设备。
36.一种用于对从信道接收的符号数据序列进行操作的系统,其中所述符号数据序列对应于由发射机发送到所述信道上的第二符号数据序列,所述第二符号数据序列根据相关联的信息位产生,所述系统包括:
第一组两个或更多个处理器,每一个处理器都配置有第一程序代码,所述第一程序代码由所述第一组的处理器执行时,使所述第一组的处理器(a)并行地操作所述符号数据序列的两个或更多个重叠子序列,所述符号数据序列的两个或更多个重叠子序列的每一个都对应于第一网格的相应部分,所述第一网格描述所述符号数据序列中的冗余,所述操作为所述相关联的信息位产生软估计;
所述软估计用于形成对应于所述相关联的信息位的接收消息。
37.根据权利要求36的系统,其中,所述第一组的两个或更多个处理器选自处理器的阵列,所述阵列的处理器被互连以形成2D网格。
38.根据权利要求36的系统,进一步包括:
用于对所述所接收的符号数据序列中的至少一个调整所述符号数据序列的所述两个或更多个重叠子序列之间的重叠量的装置。
39.根据权利要求36的系统,
其中,根据所述相关联的信息位的卷积编码产生所述第二符号数据序列,所述第一网格具有基于所述卷积编码的结构,
所述并行地操作所述符号数据序列的所述两个或更多个重叠子序列包括:对所述符号数据序列的所述两个或更多个重叠子序列并行地执行解码过程以实现所述符号数据序列的所述两个或更多个重叠子序列的每一个的维特比解码。
40.根据权利要求36的系统,
其中,所述第一网格具有基于所述符号数据序列与所述第二符号数据序列之间的给定线性关系的结构,
所述并行地操作所述符号数据序列的所述两个或更多个重叠子序列包括:对所述符号数据序列的所述两个或更多个重叠子序列并行地执行解调过程以对所述符号数据序列的所述两个或更多个重叠子序列的每一个实现维特比均衡。
41.根据权利要求36的系统,其中,所述发射机通过原始信息位的卷积编码以得到编码位以及通过所述编码位的交织,来产生所述相关联的信息位,其中(a)包括第一组的两个或更多个处理器使用所述编码位的软估计的交织形式的两个或更多个相应重叠子序列,并行地操作所述符号数据序列的两个或更多个重叠子序列,所述系统进一步包括:
配置有第二程序代码的第二组的两个或更多个处理器,所述第二程序代码由所述第二组的处理器执行时,使所述第二组的处理器(b)并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列,其中,去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分,所述第二网格具有对应于所述卷积编码的结构,对去交织形式的两个或更多个重叠子序列的所述并行操作为所述编码位产生软估计。
42.根据权利要求41的系统,其中,所述第一组的两个或更多个处理器以及所述第二组的两个或更多个处理器被编程为以交替方式分别执行(a)和(b)多次。
43.根据权利要求42的系统,其中,所述第二组的两个或更多个处理器的每一个都配置有附加程序代码,所述附加程序代码由所述第二组的处理器执行时,使所述第二组的处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列以便产生所述原始信息位的软估计。
44.根据权利要求42的系统,其中,所述第一组处理器以及所述第二组处理器被编程为响应所述编码位的软估计和所述相关联的信息位的软估计超出预定义的阈值,终止所述以交替方式执行(a)和(b)多次。
45.根据权利要求42的系统,其中,所述符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,其中(a)包括第一组的每个处理器在第一网格的对应部分的每个时间步,在第一网格的对应部分上执行前向网格遍历以获得前向遍历值,所述前向收敛区域被用于获得所述前向网格遍历中的收敛。
46.根据权利要求45的系统,其中,所述第一程序代码由所述第一组的处理器执行时,作为(a)和(b)的所述多次执行的当前完成的执行次数的函数,使所述第一组的处理器缩短所述前向收敛区域的长度。
47.根据权利要求42的系统,其中,所述符号数据序列的两个或更多个子序列中的至少一个包括后向收敛区域,其中(b)包括第一组的每个处理器在第一网格的对应部分的每个时间下标,在第一网格的对应部分上执行后向网格遍历以获得后向遍历值,所述后向收敛区域被用于获得所述后向网格遍历中的收敛。
48.根据权利要求47的系统,其中,所述第二程序代码由所述第二组的处理器执行时,作为(a)和(b)的所述多次执行的当前完成的执行次数的函数,使所述第二组的处理器缩短所述后向收敛区域的长度。
49.根据权利要求42的系统,其中(a)包括产生关于所述相关联的信息位的本征和非本征信息,所述第一程序代码由所述第一组的处理器执行时,使所述第一组的处理器基于所述本征信息和所述非本征信息的混合并行地产生所述相关联的信息位的软估计,作为(a)和(b)的所述多次执行的当前完成的执行次数的函数,增加所述混合中包括的本征信息量。
50.根据权利要求42的系统,其中(b)包括产生关于所述编码位的本征和非本征信息,所述第二程序代码由所述第二组的处理器执行时,使所述第二组的处理器基于所述本征信息和所述非本征信息的混合产生所述编码位的软估计,作为(a)和(b)的所述多次执行的当前完成的执行次数的函数,增加所述混合中包括的所述本征信息量。
51.根据权利要求42的系统,进一步包括:
第三组的一个或多个处理器,被配置为通过对所述相关联的信息位的软估计解增信删余和去交织,产生所述相关联的信息位的软估计的去交织形式,其中,所述解增信删余包括向输出序列的增信删余位置中注入先前计算的值,其中所述先前计算的值是在(b)的先前执行中由所述第二组处理器算出的所述编码位的软估计的指定的值。
52.根据权利要求42的系统,其中(a)包括第一组的每个处理器都执行前向穿过和后向穿过第一网格的对应部分,对于所述第一组的给定的一个处理器,所述前向穿过包括:
在给定的符号位置计算α向量;以及
响应所述α向量等于零向量的判断设置所述α向量等于向量E,所述向量E的全部分量都等于小正值。
53.根据权利要求42的系统,其中,所述第一组的两个或更多个处理器与所述第二组的两个或更多个处理器一致,所述第一组的每个处理器都被编程为在(a)的每次执行前加载第一程序代码以及在(b)的每次执行前加载第二程序代码。
54.一种方法,包括:
(a)从信道接收符号数据序列,其中,所述符号数据序列对应于被发送到所述信道上的第二符号数据序列,所述第二符号数据序列根据原始的信息位产生;
(b)第一组的两个或更多个处理器使用反馈信息交织形式的两个或更多个对应的子序列,对所述符号数据序列的两个或更多个重叠子序列并行地执行解调过程,以便产生前馈信息;
(c)第二组的两个或更多个处理器对前馈信息的去交织形式的两个或更多个重叠子序列并行地执行解码过程,以便产生反馈信息;
(d)重复包括(b)和(c)的一组操作;以及
(e)第三组的两个或更多个处理器并行地操作,以便从所述前馈信息的去交织形式的两个或更多个重叠子序列的非重叠部分产生所述原始信息位的软估计;
所述软估计用于形成与所述原始信息位对应的接收消息。
55.根据权利要求54的方法,其中,所述第三组处理器与所述第二组处理器一致。
56.根据权利要求54的方法,其中,所述第一组处理器与所述第二组处理器一致。
57.一种方法,包括:
(a)在信道上接收符号数据序列,其中,所述符号数据序列对应于被发送到所述信道上的第二符号数据序列,所述第二符号数据序列根据原始的信息位产生;
(b)第一组的两个或更多个处理器使用反馈数据序列的两个或更多个对应的子序列,对所述符号数据序列的两个或更多个重叠子序列并行地执行解调过程,以便产生前馈信息的两个或更多个对应块;
(c)第二组的一个或多个处理器对从前馈信息的所述两个或更多个对应块装配的第一合成序列执行去交织,以便产生修改的数据序列;
(d)第三组的两个或更多个处理器对所述修改的数据序列的两个或更多个重叠子序列并行地执行解码过程,以便产生反馈信息的两个或更多个对应块;
(e)第四组的一个或多个处理器对从反馈信息的所述两个或更多个块装配的第二合成序列执行交织,以便产生所述反馈数据序列;
(f)重复包括(b)、(c)、(d)和(e)的一组操作;以及
(g)所述第三组的两个或更多个处理器并行地操作从所述修改的数据序列的所述两个或更多个对应的子序列的非重叠区域产生所述原始信息位的软估计;
所述软估计用于形成与所述原始信息位对应的接收消息。
58.根据权利要求57的方法,其中,所述第一、第二、第三和第四组的处理器选自处理器的阵列,所述阵列的处理器被互连以形成2D网格。
59.根据权利要求57的方法,其中,所述第一、第二、第三和第四组的处理器是互不相交的组。
60.根据权利要求57的方法,其中,所述第一组的两个或更多个处理器与所述第三组的两个或更多个处理器一致。
61.根据权利要求57的方法,其中,所述第二组的一个或多个处理器与所述第四组的一个或多个处理器一致。
尽管以上已经相当详细地介绍了若干实施例,但是本领域的技术人员一旦充分认识到以上公开内容,无数变化和修改将变得显而易见。以下权利要求书意在被解释为涵盖一切这样的变化和修改。

Claims (19)

1.一种用于操作接收机的方法,所述方法包括:
(a)从信道接收符号数据序列,其中,所述符号数据序列包括由发射机发送到所述信道上的第二符号数据序列的信道失真形式,其中所述第二符号数据序列由所述发射机根据相关联的信息位产生;
(b)第一组两个或更多个处理器并行地操作所接收的符号数据序列的两个或更多个重叠子序列,其中,所接收的符号数据序列的所述两个或更多个重叠子序列的每一个都对应于第一网格的相应部分,其中所述第一网格描述所接收的符号数据序列中的冗余,其中所述操作为所述相关联的信息位产生软估计;
其中,所述软估计用于形成对应于所述相关联的信息位的接收消息。
2.根据权利要求1的方法,其中,所述第一组两个或更多个处理器选自处理器的阵列,所述阵列的处理器被互连以形成2D网格。
3.根据权利要求1的方法,进一步包括:
对多个符号数据序列的每一个执行(a)和(b);
对所述符号数据序列中的至少一个调整所接收的符号数据序列的两个或更多个重叠子序列的数目。
4.根据权利要求3的方法,
其中,根据所接收的符号数据序列的长度执行所述调整所接收的符号数据序列的两个或更多个重叠子序列的数目。
5.根据权利要求3的方法,进一步包括:
对所述符号数据序列中的至少一个调整所接收的符号数据序列的所述两个或更多个重叠子序列之间的重叠量。
6.根据权利要求1的方法,
其中,根据所述相关联的信息位的卷积编码产生所述第二符号数据序列,其中所述第一网格具有基于所述卷积编码的结构,
所述第一组两个或更多个处理器并行地操作所接收的符号数据序列的所述两个或更多个重叠子序列包括:对所接收的符号数据序列的所述两个或更多个重叠子序列并行地执行解码过程以实现所接收的符号数据序列的所述两个或更多个重叠子序列的每一个重叠子序列的维特比解码。
7.根据权利要求1的方法,
其中,所述第一网格具有基于所述符号数据序列与所述第二符号数据序列之间的给定线性关系的结构,
其中,所述第一组两个或更多个处理器并行地操作所接收的符号数据序列的所述两个或更多个重叠子序列包括:对所接收的符号数据序列的所述两个或更多个重叠子序列并行地执行解调过程以对所接收的符号数据序列的所述两个或更多个重叠子序列的每一个重叠子序列实现维特比均衡。
8.根据权利要求1的方法,其中,所述发射机通过原始信息位的卷积编码以得到编码位以及通过所述编码位的交织,来产生所述相关联的信息位,其中(b)包括第一组两个或更多个处理器使用所述编码位的软估计的交织形式的两个或更多个相应重叠子序列,并行地操作所接收的符号数据序列的两个或更多个重叠子序列,其中所述方法进一步包括:
(c)第二组两个或更多个处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列,其中,去交织形式的两个或更多个重叠子序列的每一个都对应于第二网格的相应部分,其中所述第二网格具有对应于所述卷积编码的结构,其中对去交织形式的两个或更多个重叠子序列的所述并行操作为所述编码位产生软估计。
9.根据权利要求8的方法,进一步包括:
(d)多次重复(b)和(c)。
10.根据权利要求9的方法,进一步包括:
第二组两个或更多个处理器并行地操作所述相关联的信息位的软估计的去交织形式的两个或更多个重叠子序列以便产生所述原始信息位的软估计。
11.根据权利要求9的方法,其中(b)表示解调过程,(c)表示解码过程,(d)实现所接收的符号数据序列的加速均衡。
12.根据权利要求9的方法,其中(b)表示第一解码过程,(c)表示第二解码过程,(d)实现所接收的符号数据序列的加速解码。
13.根据权利要求9的方法,其中,根据所述编码位的软估计和所述相关联的信息位的软估计超出预定义的阈值,来终止重复(b)和(c)。
14.根据权利要求9的方法,进一步包括:
对多个所接收的符号数据序列的每一个执行(a)-(d);
对多个所接收的符号数据序列中的至少一个调整所述第一组两个或更多个处理器的数目。
15.根据权利要求9的方法,进一步包括:
调整所接收的符号数据序列的所述两个或更多个重叠子序列之间的重叠量。
16.根据权利要求15的方法,其中,对所述多次重复(b)和(c)的至少一次执行所述调整所接收的符号数据序列的所述两个或更多个重叠子序列之间的所述重叠量。
17.根据权利要求9的方法,其中,所接收的符号数据序列的两个或更多个子序列中的至少一个包括前向收敛区域,其中(b)包括第一组的每个处理器在第一网格的对应部分的每个时间步,在第一网格的对应部分上执行前向网格遍历以获得前向遍历值,其中所述前向收敛区域被用于获得所述前向网格遍历中的收敛。
18.一种包括用于执行根据权利要求1-17中任意一项所述的方法的装置的系统。
19.一种计算机程序,包括用于实现根据权利要求1-17中任意一项所述的方法的指令。
CN201510086662.XA 2009-06-17 2010-06-17 基于格式结构方法的并行执行 Active CN104639181B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18781509P 2009-06-17 2009-06-17
US61/187,815 2009-06-17
CN201080026721.XA CN102804609B (zh) 2009-06-17 2010-06-17 基于格式结构方法的并行执行

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201080026721.XA Division CN102804609B (zh) 2009-06-17 2010-06-17 基于格式结构方法的并行执行

Publications (2)

Publication Number Publication Date
CN104639181A true CN104639181A (zh) 2015-05-20
CN104639181B CN104639181B (zh) 2018-06-08

Family

ID=42536883

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510086662.XA Active CN104639181B (zh) 2009-06-17 2010-06-17 基于格式结构方法的并行执行
CN201080026721.XA Active CN102804609B (zh) 2009-06-17 2010-06-17 基于格式结构方法的并行执行

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201080026721.XA Active CN102804609B (zh) 2009-06-17 2010-06-17 基于格式结构方法的并行执行

Country Status (5)

Country Link
US (4) US8644431B2 (zh)
EP (1) EP2443751A1 (zh)
JP (3) JP5406369B2 (zh)
CN (2) CN104639181B (zh)
WO (1) WO2010148166A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453761A (zh) * 2016-05-31 2017-12-08 展讯通信(上海)有限公司 Turbo码译码方法及Turbo码译码器

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042027B1 (en) * 2007-01-16 2011-10-18 Marvell International Ltd. BM/LLR computation for multi-dimensional TCM/BCM
EP2443751A1 (en) * 2009-06-17 2012-04-25 Coherent Logix Incorporated Parallel execution of trellis-based methods
US9509543B2 (en) * 2009-06-26 2016-11-29 Qualcomm Incorporated Method and apparatus that facilitates interference reduction in wireless systems
US8516333B1 (en) * 2009-11-19 2013-08-20 Viasat, Inc. Pre-interleaving for forward error correction codes
US8880866B2 (en) 2010-10-15 2014-11-04 Coherent Logix, Incorporated Method and system for disabling communication paths in a multiprocessor fabric by setting register values to disable the communication paths specified by a configuration
WO2012112872A1 (en) 2011-02-17 2012-08-23 Massachusetts Institute Of Technology Rateless and rated coding using spinal codes
CN102223263B (zh) * 2011-06-09 2016-12-28 中兴通讯股份有限公司 基于fpga的丢包率监测方法及装置
US8908808B2 (en) 2011-09-16 2014-12-09 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for demodulating a signal
KR101286019B1 (ko) * 2012-01-20 2013-07-19 주식회사 이노와이어리스 터보 인코더 장치
US9160399B2 (en) 2012-05-24 2015-10-13 Massachusetts Institute Of Technology System and apparatus for decoding tree-based messages
WO2014023355A1 (en) * 2012-08-09 2014-02-13 Telefonaktiebolaget L M Ericsson (Publ) A method and a node for detecting phase noise in mimo communication systems
US9224239B2 (en) 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9659398B2 (en) * 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9270412B2 (en) * 2013-06-26 2016-02-23 Massachusetts Institute Of Technology Permute codes, iterative ensembles, graphical hash codes, and puncturing optimization
US9641195B2 (en) * 2014-06-06 2017-05-02 Intel Corporation Trellis coded modulation
EP3175355B1 (en) * 2014-07-30 2018-07-18 Linear Algebra Technologies Limited Method and apparatus for instruction prefetch
RU2667501C1 (ru) * 2014-11-21 2018-09-21 Хуавэй Текнолоджиз Ко., Лтд. Способ, оборудование и устройство передачи информации
US10019223B2 (en) * 2015-09-03 2018-07-10 Shure Acquisition Holdings, Inc. Soft decision audio decoding system
CN106909452B (zh) * 2017-03-06 2020-08-25 中国科学技术大学 并行程序运行时参数优化方法
CN107547089B (zh) * 2017-07-20 2020-08-07 西北工业大学 一种低能耗水声数据压缩与重构方法
KR102497232B1 (ko) * 2018-06-18 2023-02-07 삼성전자주식회사 신호 수신 회로 및 그것의 동작 방법
US10944424B1 (en) * 2018-09-26 2021-03-09 Seagate Technology Llc Error correction with multiple LLR-LUTS for a single read
CN109462407B (zh) * 2018-12-13 2022-08-16 锐捷网络股份有限公司 维特比译码方法、设备及存储介质
CN110166061B (zh) * 2019-06-03 2021-06-08 天津大学 一种基于Viterbi译码器的选择性保护方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010046269A1 (en) * 2000-01-31 2001-11-29 Alan Gatherer MAP decoding with parallelized sliding window processing
CN1444352A (zh) * 2002-09-09 2003-09-24 西南交通大学 在混合自动重发请求系统中并行冗余发送与并行合并接收分组数据的方法
CN1742457A (zh) * 2002-10-15 2006-03-01 株式会社东芝 均衡装置和方法
CN102804609B (zh) * 2009-06-17 2015-04-01 相干逻辑公司 基于格式结构方法的并行执行

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459935B2 (ja) * 2000-08-21 2003-10-27 独立行政法人通信総合研究所 ディジタル無線通信用復調装置および復調方法
US7152151B2 (en) 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
JP3623185B2 (ja) * 2001-11-13 2005-02-23 三菱電機株式会社 受信データ復調機
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
GB0224023D0 (en) 2002-10-16 2002-11-27 Roysmith Graeme Reconfigurable integrated circuit
US20050102600A1 (en) * 2003-11-10 2005-05-12 Anand Anandakumar High data rate communication system for wireless applications
GB2408898B (en) * 2003-12-02 2006-08-16 Toshiba Res Europ Ltd Improved communications apparatus and methods
US7602838B2 (en) * 2005-12-22 2009-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Linear turbo equalization using despread values
US7929646B2 (en) * 2006-01-27 2011-04-19 Qualcomm Incorporated Map decoder with bidirectional sliding window architecture
US7810018B2 (en) * 2006-10-27 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Sliding window method and apparatus for soft input/soft output processing
JP4874312B2 (ja) * 2007-09-20 2012-02-15 三菱電機株式会社 ターボ符号復号装置、ターボ符号復号方法及び通信システム
JP2009105748A (ja) * 2007-10-24 2009-05-14 Nagoya Institute Of Technology Llrを用いたマルチモードブロック符号化変調方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010046269A1 (en) * 2000-01-31 2001-11-29 Alan Gatherer MAP decoding with parallelized sliding window processing
CN1444352A (zh) * 2002-09-09 2003-09-24 西南交通大学 在混合自动重发请求系统中并行冗余发送与并行合并接收分组数据的方法
CN1742457A (zh) * 2002-10-15 2006-03-01 株式会社东芝 均衡装置和方法
CN102804609B (zh) * 2009-06-17 2015-04-01 相干逻辑公司 基于格式结构方法的并行执行

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453761A (zh) * 2016-05-31 2017-12-08 展讯通信(上海)有限公司 Turbo码译码方法及Turbo码译码器
CN107453761B (zh) * 2016-05-31 2021-04-06 展讯通信(上海)有限公司 Turbo码译码方法及Turbo码译码器

Also Published As

Publication number Publication date
JP2014017888A (ja) 2014-01-30
CN102804609B (zh) 2015-04-01
US8644431B2 (en) 2014-02-04
US20100322358A1 (en) 2010-12-23
JP2012530476A (ja) 2012-11-29
CN104639181B (zh) 2018-06-08
WO2010148166A1 (en) 2010-12-23
JP2015008542A (ja) 2015-01-15
US9008242B2 (en) 2015-04-14
EP2443751A1 (en) 2012-04-25
CN102804609A (zh) 2012-11-28
JP5406369B2 (ja) 2014-02-05
US8761318B2 (en) 2014-06-24
US20150180607A1 (en) 2015-06-25
US9252920B2 (en) 2016-02-02
JP5873154B2 (ja) 2016-03-01
JP5635668B2 (ja) 2014-12-03
US20130121447A1 (en) 2013-05-16
US20140247910A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
CN102804609B (zh) 基于格式结构方法的并行执行
US8266493B1 (en) Low-density parity check decoding using combined check node and variable node
Fan et al. A low-latency list successive-cancellation decoding implementation for polar codes
US7908542B2 (en) Method of and apparatus for implementing a reconfigurable trellis-type decoding
EP3639376B1 (en) Polar decoder with llr-domain computation of f-function and g-function
Liang et al. Hardware efficient and low-latency CA-SCL decoder based on distributed sorting
US20150236723A1 (en) Parallel VLSI architectures for constrained turbo block convolutional decoding
CN107196737B (zh) 基于消息传递算法的scma译码方法
Ahmed et al. VLSI architectures for soft-decision decoding of Reed–Solomon codes
Ercan et al. Operation merging for hardware implementations of fast polar decoders
CN109981117B (zh) 一种四模前向纠错码处理器
CN103166648B (zh) 一种ldpc解码器及其实现方法
CN109995383A (zh) 译码方法、装置、存储介质和计算机程序产品
CN112636767B (zh) 一种具有单置换网络的分层半并行ldpc译码器系统
Yang et al. Efficient hardware architecture of deterministic MPA decoder for SCMA
CN110417509B (zh) 一种全并行scma译码器及其使用方法
Haroun et al. Vertical shuffle scheduling-based decoder for joint MIMO detection and channel decoding.
Abu et al. Reconfigurable Enhanced Path Metric Updater Unit for Space Time Trellis Code Viterbi Decoder
Che System Development and VLSI Implementation of High Throughput and Hardware Efficient Polar Code Decoder
CN109672454A (zh) 一种dsp小端模式下的高速维特比译码方法及其接收机
Deergha Rao et al. Convolutional Codes
Garga Flexible constraint length Viterbi decoders on large wire-area interconnection topologies

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant