CN102281074A - 包括可重新配置计数器的可重新配置交织器 - Google Patents

包括可重新配置计数器的可重新配置交织器 Download PDF

Info

Publication number
CN102281074A
CN102281074A CN201110153798XA CN201110153798A CN102281074A CN 102281074 A CN102281074 A CN 102281074A CN 201110153798X A CN201110153798X A CN 201110153798XA CN 201110153798 A CN201110153798 A CN 201110153798A CN 102281074 A CN102281074 A CN 102281074A
Authority
CN
China
Prior art keywords
value
memory
interleaver
counter
reconfigurable
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.)
Pending
Application number
CN201110153798XA
Other languages
English (en)
Inventor
纳赫·恩靳
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN102281074A publication Critical patent/CN102281074A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2725Turbo interleaver for 3rd generation partnership project 2 [3GPP2] mobile telecommunication systems, e.g. as defined in the 3GPP2 technical specifications C.S0002
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2739Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供了一种可重新配置的交织器,被配置为产生交织地址序列,可配置用于至少两种不同的交织模式。可重新配置的交织器包括多个可重新配置的计数器111,121。计算器所计数的值的数目可配置为它们的起始值。交织器还包括多个存储器112,122,其中计数器表示存储器位置,使得可以获取值。计算元件130根据获取的值计算交织地址序列。通过重新配置计数器以及可能地改变存储器的内容,交织器可以配置用于不同的交织模式。

Description

包括可重新配置计数器的可重新配置交织器
发明领域
本发明涉及一种可重新配置的交织器,被配置为产生交织地址序列,可配置用于至少两种不同的交织模式。
本发明还涉及一种重新配置交织器的方法。本发明还涉及一种对应的计算机程序产品和一种对应的系统。
背景技术
turbo编码包括在很多广播和无线通信标准的物理层中。如标准所规定的,包括在物理层中的turbo解码器包括交织器。
turbo码与信道编码方案有关,信道编码方案例如使用无线通信和网络标准中,比如:通用移动电信系统(UMTS)、码分多址2000(CDMA2000)、全球微波互连接入(WiMax)、无线宽带(WiBro)、高速下行分组接入(HSDPA)协议等等。
例如,发送器使用turbo编码器将原始数据编码以用于传输,接收器使用turbo解码器将接收到的数据解码。在传输期间可能会发生错误。使用turbo编码器和turbo解码器允许校正错误。
无线标准的吞吐量需求在不断增加。新的标准(比如UMTS-LTE)需要超过100Mbps的峰值吞吐量。
Turbo解码器包括两个主要部件,软输入软输出(SISO)解码器和交织器。在执行期间,解码器对所谓的软数据进行操作。软数据给出了与原始发送的数据有关的概率信息。解码器和交织器在迭代处理中协同工作来校正接收到的数据帧中的错误。例如,首先,解码器校正数据中的少数错误。然后,对该帧进行交织并再次解码。以这种方式,在每次迭代中,更多的错误会被校正。
例如,在S.A.Barbulescu和S.S.Pietrobon,″Turbo codes:A tutorial ona new class of powerful error correcting coding schemes,Part 1:Codestructures and interleaver design″,J.Elec.and Electron.Eng.,Australia,vol.19,pp.129-142,Sep.1999;以及S.A.Barbulescu和S.S.Pietrobon,″Turbocodes:A tutorial on a new class of powerful error correcting coding schemes,Part 2:Decoder design and performance,″J.Elec.and Electron.Eng.,Australia,vol.19,pp.143-152,Sep.1999中描述了turbo解码器的结构和操作。
turbo解码器包括两个主要部件,软输入软输出(SISO)解码器和交织器。SISO将数据帧解码,校正一些错误。对该帧进行交织并且再次解码。以这种方式,每次更多的错误被校正。这些迭代重复预定次数,至到没有错误需要校正为止,或者至到满足一些其它预定停止标准为止。该迭代解码仅在数据被交织的情况下工作。交织规则在通信标准中指定并且被设计为以preudo-random方式移动(shuffle)数据。
当仅需要支持一个标准时,交织器也可以在专用硬件中实现交织器地址产生。然而,不同的标准指定了变化很大的turbo交织方案。
发明内容
一种支持多个交织模式的方法是将交织模式作为查找表存储在存储器中。该方法具有需要大量存储器的缺点。特别是,支持多种不同块长度的标准很难支持这种方法。另一种支持多个交织模式的方法是为每个交织模式创建专用硬件。虽然专用硬件需要较少的存储器,但是它需要大量的占地面积(footprint)来支持多种不同的交织标准。利用现有的硬件来支持新的标准是不可能的。
具有可以被重配为支持大量交织方案的交织器将是有益的。特别地,具有可以被重配为与多个turbo码标准一同使用的交织器将是有益的。
本发明提供一种可重新配置的交织器,包括:多个计数器,多个计数器中的每个计数器配置有总计数数目和起始值,总计数数目定义了要计数的多个值,起始值定义了从其开始进行计数的值;多个存储器,多个存储器中的每个存储器被配置为从存储器的存储器位置获取值,所述存储器位置由多个计数器中与存储器相关联的计数器指示;以及多个计算元件,被配置为对从多个存储器获取的值进行操作。可重新配置的交织器被配置为产生交织地址序列。交织地址中的下一个交织地址可以通过以下操作来获得:递增多个计数器中的至少一个计数器,以及计算元件对从与递增的计数器相关的存储器中获取的至少一个值进行操作。通过重新配置至少一个具有至少一个总计数数字和起始值的计数器,该可重新配置交织器配置为至少两种不同的交织形式之一。
通过重新配置计数器来使得与该计数器相关的存储器能从存储器中的不同位置获取不同的值,可以修改交织器的这个行为,因此也可以修改交织器所产生交织地址序列。这允许高度重用计算元件,从而提供一个可重新配置的交织器,该交织器相对于其配置性具有相对较小的占地面积。
在使用期间,可重新配置交织器的多个计数器被配置为对特定数目的值和总计数数目进行计数,并且从特定起始值开始计数。存储器可以在不同存储位置处包含不同值,因此,如果起始值改变,那么从存储器获取的值也会改变。相似地,如果总计数数目改变,则存储器将从更多或更少的存储器位置中获取。
可重新配置的交织器产生交织地址序列。典型地,该序列是在一系列周期中产生的,其中在每个周期中获得序列中地址中的一个地址。一个周期可以通过递增一个或者多个或者全部的计数器来开始。因此,与递增的计数器相关联的存储器将获取值。典型地,该值从新的存储器位置获取,因此会与先前从存储器获取的值不同。
一种针对灵活交织器不同的方法是使用大小足够大的查找表存储器。然后,能够在处理器上预先计算(比如其上使用交织器的应用的主机处理器)特定交织方案需要的所需的交织地址,以及在turbo解码开始之前将这些值加载到查找表存储器中。这种解决方案的缺点在于每次块大小改变时都需要进行预先计算和加载。处理器需要被要用于完整块的交织地址计算。尤其对较大的turbo块大小,交织地址的计算会花去主机处理器大量的计算时间。此外,需要加载完整块地址,这也意味着turbo解码的开始需要在进行上述操作之前停止,如果块大小规则变化,则解码的吞吐量降低。
可重新配置的交织器可以用于产生交织序列。交织器可以使用在任何领域,其中用于对数据序列或者地址等进行交织的交织器是令人期待的。当需要一个或多个高性能,低IC占地面积和高度可重新配置性时,交织器尤其有用。
多个计数器可以以硬件来实现。计数器可以包括:存储计数器的当前值的寄存器和用于递增计数器的递增装置。递增装置可以包括用于接收要被递增的计数器的信号的输入。例如,递增装置可以接收时钟信号,用于在每个时钟计时标记(tick)递增计数器。递增装置还可以包括用于存储总计数数目和起始值的存储装置。递增装置被配置为递增计数器直到计数了总计数数目个值为止。计数器也可以通过在存储器中存储计数器值来实现。计数器值由运行在处理器上的软件装置来递增。优选地,多个计数器是独立可重新配置的。
多个存储器可以是多个物理上不同的存储器。然而,存储器也可以对应于一个较大物理存储器的不同区域。例如,存储器管理器可以将较大存储器中的存储器区域映射到多个存储器。将单个存储器划分为多个存储器的另一个方法是将存储器划分为多个地址块以及为每个计数器配置一个起始值以使每个计数器在不同的地址块中产生地址。
从存储器中由计数器指示的存储器位置获取值可以通过硬件装置执行。例如,获取装置可以与存储器相关联,来从由关联的计数器所指示的存储器位置中获取值。然而,获取装置也可以通过软件装置实现,获取装置被配置为从存储在由软件装置可访问的位置(比如存储器或者寄存器)中的计数器中获取值。
在实施例中,每个存储器与不同的计数器相关联。在实施例中,单个计数器与多于一个存储器相关联。在实施例中,一个计数器正好与每个存储器相关联。在实施例中,多个计数器与单个存储器关联以从相同的存储器获取多个值。
计算元件可以以硬件来实现。计算元件也可以被组织为计算网络。网络中的计算元件在另一计算元件对存储器上的值执行操作之后,直接或间接接收来自于存储器的值。
可以使用IC技术进行硬件的实现。
在实施例中,多个计数器中的至少一个计数器被配置为在计数了总计数数目个值之后从起始值开始重复计数。计算交织序列所需的值典型地包含副本。为了节省存储器空间,可以对计数器进行编程以重复对重复值加以表示的值。
在实施例中,所有的计数器被配置为在计数了总计数数目个值之后从起始值开始重复计数。交织器可以被配置为重复计算相同的交织序列。以这种方式硬件不需重配置即可再次启动,使得解码器能够使用交织器来完成另一叠加。
在实施例中,计算元件被配置为接收从两个不同存储器获取的两个值,以及被配置为通过操作两个获取的值来产生值。计算可以通过多个相对简单的元件来执行,相对简单的元件被配置用于小操作。通过将计算网络中的这种元件进行组合,更复杂的计算可以通过它们的组合来实现。
例如,被配置为接收两个值的计算元件被配置为通过将两个获取的值相加或相乘来值。其它运算也是可能的,比如异或运算等等。
在实施例中,被配置为接收两个值的计算元件被配置为通过将两个获取的值相加来产生值,以及可重新配置的交织器配置为在至少两种不同的交织模式之一中,与包括至少一个零值的存储器相关的计数器被配置用于所述存储器,以仅获取值零。
在实施例中,配置来接收两个值的计算元件配置成通过将两个获取的值相乘来产生值,以及可重新配置的交织器配置为:在至少两种不同的交织模式其中之一的方式中,与包括至少一个值一(“1”)的存储器相关的计数器被配置用于所述存储器,仅获取值1。
当根据本发明重新配置交织器时,重新配置灵活性的某部分不需要执行当前的交织模式。取而代之关闭计数器和/或与它关联的存储器,计数器可以这种方式配置:从存储器获取的值不影响交织序列的其余计算。
例如,如果两个存储器连接到一个加法元件,则通过配置使存储器始终产生零(“0”),来绕过存储器之一的影响。加零对其它值没有影响。
例如,如果两个存储器连接到多个乘法元件,则通过配置使存储器始终产生一(“1”),来绕过存储器之一的影响。乘1对其它值没有影响。
在实施例中,总计数数目被设置为1,以及起始值被设置为表示根据需要包含0或1的存储器中的位置,计数器被配置为在计数了总计数数目个值之后重复其自身。
在实施例中,可重新配置的交织器包括至少一个选择元件(也被称作“MUX”)。选择元件被配置为接收选择比特、接收两个值以及根据选择比特输出两个值之一。多个计算元件中的至少一个计算元件被配置为接收选择元件的输出作为输入,或者选择元件被配置为从计算元件接收两个输入值之一。针对至少两种不同的交织模式之一对可重新配置交织器进行配置还依赖于选择比特。
为了进一步提高交织器的可配置性,经过计算元件的数据路由可以通过选择元件来修改。例如,如果某计算元件接收两个值的和作为输入,以用于一个交织模式,而接收两个值的乘积作为输入以用于另一交织模式,那么该计算元件就可通过选择元件连接到加法元件和乘法元件。如果交织器被配置用于一种交织模式,则选择元件被配置为转发传送加法结果,当交织器被配置用于另一交织模式时,则选择元件被配置为转发乘法结果。
在实施例中,可重新配置的交织器包括缓冲器元件,用于接收值和输出该值来由计算元件操作,以获取交织地址序列中的下一个交织地址。
对于某些交织模式来说,序列中的下一值取决于前一个值。缓冲器元件临时存储用于计算序列中下一个地址的计算结果。该缓冲器元件可以被配置为存储用于一次迭代的值,即存储用于计算下一地址的值。缓冲器元件也可以存储多个值。例如,缓冲器元件可以包括先输入先输出缓冲器(FIFO),也被称为队列。
在实施例中,可重新配置交织器包括可配置的限制元件。限制元件被配置为接收限制比特和限制值,以及接收限制输入值。对限制比特的一个值,限制元件被配置为使用限制值作为模数对限制输入值执行模运算并进行输出。对限制比特的另一值,限制元件被配置为利用限制值作为限制来对限制输出值执行限制操作,如果限制输入值小于限制值则输出限制输入值。针对至少两种不同的交织模式之一对可重新配置的交织器进行配置还取决于限制比特或限制值。
某些交织模式需要模运算或限制操作。这两种操作在某种程度上来说是相似的,实现了具有较少占地面积的有效的实现方式。例如,为了执行限制操作,可以将输入值与限制值比较,如果限制输入值高于限制值,那么限制单元能够采取一些动作,比如不输出值,输出0,设置对无效地址等加以表示的信号。额外的可能性是限制输出的比特数目,即,如果产生高于限制值的输出值,那么丢弃输出值的一些数目的比特。为了执行模运算,也可以将输入值与限制值比较,例如,从限制输入值减去模数。将限制输入值与限制值比较的方法可以在模运算和/或限制操作和/或丢弃操作之间共享。
在实施例中,使用配置有限制值和操作值的限制元件。操作值配置用于至少三种操作模式之一的限制元件。在一种操作模式下,限制元件使用限制值作为模数来执行模运算。在一种操作模式下,限制元件执行限制操作,如果输入大于限制值,则设置有效比特;如果输入小于或等于限制值,则重新设置有效比特。在一个操作模式下,限制元件执行丢弃操作,如果输入大于限制值,则输出被丢弃了某些数目比特的输入值,如果输入小于或等于限制值,则输出输入。
例如,丢弃操作可以通过输入预定数目的最低有效位,或者丢弃预定数目的最高有效位来实现。输出的比特数目是可配置的。
在实施例中,限制元件被配置为接收限制比特和限制值,以及接收限制输入值。对于限制比特的一个值,限制元件被配置为使用限制值作为模数,来对限制输入值执行模运算并进行输出。对于限制比特的另一值,限制元件被配置为使用限制值作为限制来对限制输入值执行丢弃操作,如果限制输入值小于限制值,则输出限制输入值,并且输出限制输入值的预定数目最低有效位。
交织器可以包括处理器,或者被布置用于与处理器相结合。例如处理器可以预先计算存储器的值,或者递增计数器。处理器可以获得在turbo解码算法中使用的交织地址。turbo解码器可以以硬件、软件或者它们的结合来实现。
根据本发明的交织器可以用于电子设备,尤其是移动电子设备。交织器可以用于计算机。交织器可以完全在专用硬件中实现。交织器可以以软件实现,或者使用专用硬件和通用硬件的组合来实现。
本发明还涉及turbo编码器或者解码器,包括前述权利要求中任一项所述的可重新配置的交织器。例如,turbo解码器可以用于移动电话,卫星接收机,机顶有线TV接收机等。交织器可以结合无线和有线接收而使用。交织器也可以用于传输系统(例如,对应于接收以上给出示例的传输系统)的turbo编码器。
本发明还涉及一种对交织器进行重新配置的方法。所述方法包括:利用总计数数目和起始值配置多个计数器,所述总计数数目定义了要计数的值的数目,起始值定义了从其开始进行计数的值;从多个存储器获取值,所述值通过存储器中的存储器位置获取,所述存储器位置由多个计数器中与存储器相关联计数器指示;对从多个存储器中获取的值进行操作;产生交织地址序列,交织地址序列中下一个交织地址是可通过以下操作来获得的:地址多个计数器的至少一个计数器,和通过计算元件操作从与递增的计数器相关联的存储器中获取的至少一个值。通过利用总计数数目和起始值中的至少一个来重新配置至少一个计数器,可重新配置的交织器被配置用于至少两种不同的交织模式之一。
根据本发明的方法可以作为计算机实现的方法在计算机上实现,或者以专用硬件或者以计算机和专用硬件的组合来实现。根据本发明方法的可执行代码可以存储在计算机程序产品中。计算机程序产品的示例包括存储器设备,光存储设备,集成电路,服务器等等。本发明也可以用于在线软件。
在优选实施例中,计算机程序包括当计算机程序在计算机上运行时,适于执行根据本发明的方法所有步骤的计算机程序代码装置。优选地,计算机程序在计算机可读介质上体现。
提供一种可重新配置的交织器,被配置为产生交织地址序列,可配置为至少两种不同的交织模式。可重新配置的交织器包括多个可重新配置的计数器。计数器所计数的值数目可配置为它们的起始值。交织器还包括计数器指示存储器位置使得可以获取值的存储器。计算元件依据获取的值计算交织的地址顺序。通过重新配置计数器,交织器可以配置用于不同的交织模式。
附图说明
参考附图,本发明将进一步以示例的方式详细阐述,其中:
图1示出了根据本发明的可重新配置交织器的第一实施例的框图,
图2示出了可重新配置计数器的框图,
图3示出了根据本发明的可重新配置交织器的第二实施例的框图,
图4示出了根据本发明的可重新配置交织器的第三实施例的框图,
图5示出了根据本发明的可重新配置交织器的第四实施例的框图,
图6示出了根据本发明的解码系统的实施例的框图,
图7详细说明了3GPP2交织器,
图8详细说明了UMTS turbo交织器,
图9示出了根据本发明的方法的流程图。
贯穿整个附图,相同的参考数字表示相似或者对应的特征。
图1至6的参考数字列表
100      可重新配置的交织器
111,121 可重新配置的计数器
112,122 存储器
130      计算元件
220      寄存器
210      总计数数目
230      起始值
240      递增装置
331,332 计算元件
340      选择元件
410      缓冲器
500      可重新配置的交织器
502,504 存储器
506      乘法器
508      比特选择器
510,512 存储器
514      选择元件
516      乘法器
518      加法器
520    选择元件
522    限制元件
524    缓冲器
526    加法器
528    存储器
530    选择元件
532    加法器
534    加法器
536    限制元件
538    缓冲器
600    解码系统
602    交织器
604    控制器
606    解码器
608    存储器
610    可重新配置的装置
612    用于写入到存储器的连接
614    用于从存储器读取的连接
具体实施方式
虽然本发明允许多种不同形式的实施例,但是这里在附图中示出并详细描述一个或者多个特定实施例,应该理解,本公开应被当作是本发明原理的示例而并非意在将本发明限制于所示和描述的特定实施例。
turbo编码为信道编码方案,用于无线广播,通信和网络标准中,例如DVB-SH、ETSI-SDR、UMTS、CDMA2000、UMTS和UMTS LTE。能够在下面的参考(标准文件)中找到这些包括这里使用的交织方案在内的标准的细节:
第3代合作伙伴计划。技术规范小组无线接入网络;复用和信道编码(FDD)。技术报告3G TS 25.212v3.3.0草案1,技术规范,2000年6月。
卫星服务到手持式设备(SH)在低于3GHz下的成帧结构、信道编码和调制,DVB文档A111 Rev.1,2007年7月,以及
3GPP TS 25.212V7.5.0(2007-5)技术规范第3代合作伙伴计划;技术规范小组无线接入网络;复用和信道编码(FDD)(版本7)。
不同的标准规定了差异很大的turbo交织方案。以下,将以示例给出少数标准的turbo交织方案。图7指定了用于CDMA2000、DVB-SH、ETSI-SDR和MediaFIo的3GPP2交织器。
虽然在这种情况下,交织地址的产生是在标准之间共享的,但是不同的标准的确指定了不同的块大小。相关块大小在下表中给出。
  标准 块大小   n
  ETS-SDR 762   5
  MediaFIo 994   5
  DVB-SH 1146   6
  ETSI-SDR,DVB-SH 12282   9
  CDMA2000 378,570,...,12282,20730  4,5,6,7,8,9,10
图8示出了UMTS turbo交织器。UMTS turbo交织器指定了一种块交织,其中数据以(假定的)矩阵的行写入,从(假定的)矩阵的列读出。此外移动矩阵的行和列。行的移动由在标准定义的参数T给出。列的移动由参数Ui(对于列i,每列的参数Ui不同)给出。在这种情况下,块大小可以采用40至5144之间的任何值。行的最大数目为20,列的最大数目为256。
UMTS LTE turbo交织器可以通过等式∏(i)=(f1·i+f2·i2)mod k来描述。其中∏(i)表示第i个交织符号的索引,参数f1和f2取决于块大小K并且在标准中给出。块大小可以采用从40到6144的不同值。
图1示意性地示出了根据本发明的可重新配置的交织器100的框图。
交织器100包括多个可重新配置的计数器。示出了可重新配置的计数器111和可重新配置的计数器121。交织器100包括多个存储器,示出了存储器112和存储器122。交织器100包括计算元件,示出了一个计算元件130。交织器100可以包括比图1所示更多的计数器、存储器,例如,2个、3个或更多。交织器100可以正好包括一个计算元件,或者多于1个的计算单元,例如2个、3个,或者更多。
存储器112与计数器111相关联,存储器122与计数器121相关联。尽管并非需要,但是为了方便起见,如果多个存储器和多个计数器被成对的组织,那么每个存储器正好与计数器之一相关联,以形成多个对,每个对包括彼此相关联的一个存储器和一个计数器。
多个计数器是可配置的。方便地是,如果每个计数器能够独立于其它计数器而配置,那么其它的构造方式是可能的。例如,所有的计数器被布置为从较大配置表中同时获得它们的配置。计数器可以包括用于接收配置数据的输入。
计数器对值进行计数。在实现方式中,计数器对连续的整数进行计数。值可以按照更复杂的顺序运行,例如,如果实现方便,仅为偶数。所计数的整数可以直接代表存储器位置,即地址。另一方面,所计数的整数也可指示存储器地址。例如,需要对计数器进行操作,比如,将基础值与所计数的值相加来获得地址。基础值可以存储在例如存储器、计数器等等中。
每个计数器可以配置有总计数数目和起始值,总计数数目定义了要计数的值的数目,起始值定义了从其开始进行计数的值。例如,计数器可以对值“起始值”、“起始值+1”、“起始值+2”进行计数,直到值达到“起始值+总计数数目-1”。当所计数的值的数目等于总计数数目时,计数器停止其所计数的整数序列的前进。当计数到总计数数目值时,计数器的值可以被称为结束值。计数器对总计数数目值进行计数时所采用的值序列开始于起始值,典型地包括不同的值。
已经发现非常便利的是,如果在计数器到达结束值之后,计数器自动地从起始值重新开始计数。以这种方式,只要计数器可操作,就继续计数,重复开始于起始值结束于结束值的总计算数目值的序列。计数器在接收到停止信号时停止。计数器在被重新配置时改变它的行为。例如,如果计数器被重新配置了一个新的起始值,那么该计数器将从新的起始值开始计数。例如,如果计数器被重新配置了一个新的总计数数目,那么该计数器对该值数目进行计数。起始值和总计数数目均是可配置的。应该注意的是对于本领域技术人员来说,使用起始值和结束值来代替使用起始值和总计数数目进行配置并不存在不同。
存储器112被配置为获取存储器112中在由计数器111所指示的存储器位置中存储的值。当更新计数器111时,存储器112获取新值。方便组织在操作周期(比如时钟计时标记)序列中的交织。在每一周期中,计数器产生一个值,并且关联的存储器获取一个值。存储器可为RAM存储器,这使得它们的内容可以被更新。存储器可以是在产生期间充满适合值的ROM存储器。
应该注意存储器可以通过对具有总计数数目为1的计数器进行编程而被设置为常值。
计算元件130连接到存储器112和122以分别接收从依据计数器111和121从存储器112和122获取的值。计算元件130对该值进行操作。例如,计算元件130可以是被编程为对该值进行操作的处理器。如果计算元件130以硬件实现并执行硬线(hardwired)操作(可能是在一个或者多个配置参数的影响下),则获得一种具有低占地面积的快速实现方式。
已经发现方便的是,多个计算元件形成计算网络,其中多个计算元件互相连接来从多个存储器接收值,以及对获取的值和在多个计算元件中产生的中间结果进行操作。
计算元件130例如可以是加法器,乘法器或者异或元件,以及分别地执行加法、乘法或者异或运算。
在操作期间,通过设置参数总计数数目和起始值来配置计数器,存储器充满适当的值。在序列中,计数器产生新值,根据该新值存储器获取新值。最后计算元件根据获取的值产生值。
计算元件130也示出了输出,指示交织操作的结果。典型地,在每个周期中,通过信号通知来递增所有的计数器以及产生一个交织地址。应该注意计数器可以例如在其总计数数目为1的情况下不递增。在某些情形下,周期可以不产生交织地址,例如在交织器使用了所谓的无效地址的情况下。在这种情况下,当已经产生了无效地址时,交织器可以产生无效信号。无效地址典型地落在预定范围之外,比如,地址大于块长度。当使用交织器的系统接收到无效信号时,该系统就指示暂时停止解码,并指示交织器产生新地址。
图2示出了可重新配置的计数器111的可能实施例。类似地,可以实现多个可重新配置的计数器中的其它计数器。
在这个特定实施例中,计数器111包括存储计数器当前值的寄存器220,用于递增寄存器220的递增装置240,另外两个寄存器:总计数数目寄存器210和起始值寄存器230。递增装置240可以包括用于接收计数器要被递增的信号的输入。例如,递增装置可以接收时钟信号,用于在每个时钟点递增计数器。递增装置240接收寄存器210和230中的值以及来自于寄存器220的当前计数值。递增装置将寄存器220的值加1,并将寄存器220中的新值与寄存器210和230中的值之和进行比较。如果值相等,那么寄存器220中的值变为起始值,并存于寄存器230中。将存储在当前值寄存器220中的值输出到关联的存储器,例如,存储器112。备选地,需要时从寄存器220中获取值。
图1或2示出的实施例可以以IC来实现,例如以CMOS技术来实现。
图3是示意性地示出了根据本发明的可重新配置交织器的另一方面的框图。图3示出了交织器300,交织器300是交织器100的完善。
交织器300包括如图1所示的计数器111和121、存储器112和122。图3进一步示出了两个计算元件,计算元件331和计算元件332。计算元件331和计算元件332分别接收来自存储器112和122的值。典型地,计算元件331和计算元件332被配置为以不同方式对接收到的值进行操作。
交织器300进一步包括选择元件340。选择元件340连接到计算元件331和332来接收由这些元件计算的值。选择元件140可配置为将分别接收自元件331和332的两个值之一转发至输出。例如,选择元件340可以被配置为接收配置比特(即选择比特)来配置选择元件340。
例如,选择元件340可以接收选择比特,该选择比特指示接收自元件331的值将被转发至输出。例如,选择元件340可以接收不同的选择比特,该不同的选择比特指示接收自元件332的值将被转发至输出。方便地是,选择元件具有2个输入和一个输入,但是,选择元件也可具有多个2个输入,例如3个或4个或更多,并且选择比特可以呈现相应更多的值。
因为选择元件允许在不同的计算元件之间选择,所以选择元件是有用的。例如,对于某些交织模式,适当地执行计算元件331的操作来代替元件332的操作。
注意计算元件的操作在其实现上可是硬线的和固定的,例如,固定在IC实现上。
图4是示意性地示出了根据本发明的可重新配置交织器的另一方面的框图。图4示出了交织器400,交织器400是交织器100和/或300的完善。
交织器400包括如图3的计算元件332和331,以及选择元件340。然而,计算元件332经由缓冲器410连接到选择元件340的输入。缓冲器410具有用于接收值的输入和用于输出值的输出。缓冲器410简单地将其输入转发至其输出,然而缓冲器410在输出值之前,在特定数目的周期上保持该值。例如,可以在下一周期输出缓冲器410接收到的值,以用于计算下一个交织地址。
优选地,缓冲器元件可配置有初始值。在计算第一交织地址期间,缓冲器输出其配置的初始值。在计算下一个交织地址期间,使用在上一周期期间缓存的值。被配置来缓存多个值的缓存器可以配置有对应的数目个初始值。
图5示出了可重新配置的交织器500。交织器500可以使用上述用于交织器100,300和400的元件来实现。除了缓冲器和选择元件以外,交织器500使用一些还未描述以及也可被其它交织器使用的计算元件,例如,限制元件和比特选择器元件。
为了方便,我们将以三个部分描述交织器500。每个部分代表一种将可重新配置的计数器与计算元件相组合的方法,并且每个部分有独立的价值。将进一步示出怎样通过重新配置交织器500的计数器和元件来使交织器能支持大量的交织模式。这些部分未在这个图5中示出。
可重新配置的计数器自身未在图5中示出,取而代之,每个存储器具有计数器的输出作为输入(直接或者间接地)。
交织器500的第一部分包括与计数器0(指示为cnt0)相关联的存储器502(M0),与计数器1(指示为cnt1)相关联的存储器504(M1),乘法器506和比特选择器508。比特选择器508配置有两个参数,比特数“n”和LSB指示。将LSB指示设置为例如“1”,就配置比特选择器508从比特选择器508的输入中选择“n”个最低有效位。将LSB指示设置为例如“0”,就配置比特选择器508从比特选择器508的输入中选择“n”个最高有效位。通过设置要被选择的比特数等于在交织器中使用的字长,可以避免比特选择的影响。例如,如果地址中的比特数为16,则要要选择的比特数也可设置为16,
在第一部分中,存储器502和存储器504均连接于乘法器506,乘法器506被配置为乘以输入。在这个实施例中,乘法器506为算术乘法;然后,在交织器的其它实施例中,可使用有限域中的乘法。输出乘法器506连接至比特选择器508,使得可以从乘法的结果中选择比特数。
交织器500的第二部分包括与计数器2(表示为cnt2)相关联的存储器510(M2),与计数器3(cnt3)相关联的存储器512(M3),选择元件514,乘法器516,加法器518,选择元件520,限制元件522和缓冲器524。
选择元件520接收来自乘法器516和加法器518的输入值。选择元件520可以配置有选择比特,用“sel0”表示。在这个实施例中,当sel0为0时,选择最低示出的输入(即,接收自加法器518的输入),如果sel0为1,则选择其它输入(即,接收自乘法器516的输入)。通过配置选择元件520,可以确定对选择元件520的输出进行操作的元件对加法结果进行操作还是对乘法结果进行操作。限制元件522接收选择元件520的输出作为输入。
限制元件(例如限制元件522)将它们的输入值(即,限制输入值)与限制值比较。限制元件可以被配置为执行纯限制操作,例如,如果输入大于限制值,则不转发结果,或者使用限制值作为模数来执行模运算。如果交织算法允许(即,如果限制输入值不会为限制值的两倍或者更大),则模运算可以实现为简单的减法。
限制元件522被配置为接收用Mod_limit_M表示的限制比特。如果限制比特为0,则执行限制操作,如果限制比特为1,则执行模运算。限制元件522也可以配置有限制值(图5中示为“M”)。限制元件的限制值典型地选作交织器的块长度(也被称作“Blength”)。通过将限制值(比如M)选择为利用值所使用的字长度来表示的最大值(也被称作MAXVAL),可以避免限制元件的影响。比如,如果使用的比特数为6,那么MAXVAL可设置为2^16-1。
如果限制元件522必须丢弃一个元件,即,如果限制元件522被编程用于限制,那么它将丢弃输入值的预定数目的最低有效位。
选择元件520的输出也连接到缓冲器524。在计算下一交织地址期间,缓冲器524保持接收到的值并输出该值。
选择元件514接收来自缓冲器524和存储器510的输入值。选择元件514可以配置有表示为“sel2”的选择比特。在这个实施例中,当sel2为0时,选择最低示出的输入,即,接收自存储器510的输入,当sel2为1,选择其它输入,即,接收自缓冲器524的输入。通过配置选择元件514,可以确定对选择元件514的输出进行操作的元件是对从存储器获取的值进行操作还是对存储在缓冲器524上的前一结果进行操作。
乘法器516和加法器518分别接收选择元件514的输出作为输入。乘法器516和加法器518也分别接收从存储器512获取的值作为输入。换句话说,乘法器518和加法器516对相同的输入值进行操作。然而,选择元件520确定在选择元件520之后的计算中(例如,在限制元件中)使用加法或者乘法两个结果中的哪一个。
交织器500包括加法器526。接收第一部分的输出(即比特选择器508的输出)和第二部分的输出(即,限制元件522的输出)作为加法器526的输入,加法器526产生第一部分的输出与第二部分的输出之和。
交织器500的第三部分包括与计数器4(表示为cnt4)相关联的存储器528(M4)、加法器532、选择元件530和缓冲器538。
缓冲器538被配置为接收交织器500的输出,即来自于将在下面描述的限制元件536的输出。缓冲器538立即存储用于下一交织地址计算的值。
选择元件530接收两个输入值,一个来自于缓冲器538,一个输入值固定为“0”。选择元件530能够配置有用“sel1”表示的选择比特。在这个实施例中,当sel1为0,选择最低示出的输入,即使用值0,如果sel1为1,则选择其它输入,即接收自缓冲器538的输入。通过配置选择元件530,可确定对选择元件530的输出进行操作的元件是对值0进行操作还是对存储在缓冲器538上的前一结果进行操作。
加法器532接收选择元件530的输出和从存储器528获取的值作为输入。
交织器500包括加法器534和限制元件536。第三部分的输出(即,加法器532的输出)和第一部分与第二部分的加法结果(即加法器526的输出)由加法器534接收。
加法器534的输出为用于限制元件536的输入。
限制元件536被配置为接收用Mod_limit_N表示的限制比特。如果限制比特为0,则执行限制操作,如果限制比特为1,则执行模运算。限制元件536也可以配置有限制值(在图5中示为“N”)。
限制元件536具有另一输出,表示产生的地址是否为有效的交织地址(在图5中示为“out”)。如果限制元件536配置用于限制(与模运算相反),限制元件将其输入与块大小比较,并且如果限制元件的输入小于块大小,则产生有效高,如果超过块大小,则产生有效低。当没有有效地址可用时,turbo解码器可以使用有效低和有效高信息来停止解码。
另一方面,模函数将产生的值与模数值(一般为块大小)比较,并且在输出值超过模数值时,从输出值减去模数值。该限制/模单元可以被配置用于限制或模行为。如果配置模运算,则限制元件536始终产生有效的指示作为其有效输出。
交织器500为紧凑的基于查找表(LUT)的可编程交织器。LUT数据分布在五个存储器(M0,M1,M2,M3和M4)之间。每个存储器通过计数器来寻址。如图所见,存储器连接到两个乘法器和两个加法器(加法器532,518和乘法器506和516)。这些单元的输出继而能够被求和来形成最后的结果。
使用来自于M0和M1数据的第一(上)部分仅能做乘法。连接至M2和M3的第二部分既能做乘法,也能做加法。第三部分可以从M4拾取数据,并具有将数据加到最后产生的地址的选项。此外,包括“限制单元”来支持具有模或者限制函数的标准。
交织器可通过以下任一操作来编程:复制新LUT值到存储器M0至M4,设置计数器cnt0至cnt4需要的值,以及其它控制值(参数),例如选择信号(sel0,sel1和sel2)以及模或者限制值(M,N,Mod_limit_N和Mod_limit_M)。
在开始解码之前,交织器的编程需要做一次,并且只要块大小不改变,相同的值可以被再使用。
计算元件形成计算网络,计算网络包括被配置为对从多个存储器中获取的值进行操作的多个计算元件。
在下表中给出控制值来配置多个给出标准的交织器。
Figure BDA0000067160400000191
用于在可编程交织器上编程不同标准的参数使用下面的惯例:select=0,选择较低MUX输入,Mod_limit=0,选择限制操作,以及Mod_limit=1,选择模操作。
这个表对于每个计数器以及对于交织模式的多个标准描述了,计数器是怎样配置的。示出的是init值(即起始值),rep值(即,具有重复计数器的总计数数目),inc,表示多少计数器必须被递增,以及lim,表示结束值的值。
此外,附加存储器的数量表示支持附加的交织标准。通过移除交织标准,存储器需求就降低了。
对于这个例子,假定不重新使用存储器空间,但是重新使用存储器空间也是可能的。
从DVB-SH开始,给出了每个新标准所需的附加存储器。应注意对多种标准的LUT的大小。如所见,虽然DVB-SH turbo交织器具有12282的最大块大小,需要14比特×12282字的LUT,但是本发明的交织器仅需要小的LUT,该小的LUT具有共8比特×162字。这对于其它标准更加的极端,例如,未包含在该表中的CDMA2000初始需要15比特×20000字,而同时能用相同量(8比特×162字)的存储器来实现。
应注意DVB-SH标准支持两个不同的块大小(Blength),1146和12282。这两个块大小需要使用不同的值(参见,标准)。因此,计数器(cnt1)对于交织的两种类型具有不同的起始值。
对于某些标准,需要较大尺寸的LUT,然而,即使在这种情况下,LUT的大小也小于完全基于查找表的解决方案需要的大小。比如,UMTS turbo交织器需要大小为8比特×5200字的LUT。然而,在基于LUT的解决方案的情形中,这可为13比特×5144字。
对于上表中给出的标准集合,总存储器大小变为:
M0:68×8比特
M1:98×8比特
M2:5583×8比特
M3:2×8比特
M4:2×8比特
可基于这些数字决定设计,例如实现较小存储器作为寄存器文件,对于较大存储器则包括嵌入式的存储器。此外,可包含某些灵活性使得处理单元能够从多个存储器读取,虽然这在某种程度上使得控制更复杂,但是它进一步降低了存储器需求。
因此,实现了支持多个标准并且相对较小的可配置的交织器。该交织器也能够支持现在还未知的新标准。
本发明包括用于交织器的专用硬件和用于查找表的存储器。
存储器中的值可以是预定的,例如,在制造期间,存储器可以实现为ROM。为了进一步减少需要的存储器大小或者提高灵活性,也可以根据需要计算存储器内容。例如,处理器能够计算存储器的值。存储器也可以由其它应用共享,例如,处理器可以运行移动电话软件来支持电信。因为LUT存储器较小以及仅需要在处理器上执行少量计算,与仅基于查找表的解决方案相比,计算时间较少。
下表中列出了存储器中的示例内容来支持上表中给出的交织参数。
Figure BDA0000067160400000211
参见以上标准文档中给出的参数n,T,C,f1,f2和LUTx。在标准3GPP中给出计算规则的情况下,参数U可以通过主计算机来计算。
例如,为了支持DVB-SH标准。存储器M1充满如标准(LUTx)中定义的查找表,而M0充满值1、2以及随后一直到2^(n-1),并紧跟0(这些值对应于图7中“加1和选择n个LSB”模块)。
M2包含0一直到2^5-1的比特反转的值。因为sel2为0,sel0为1,所以使用乘法器536的结果,并且避免缓冲器524。实质上部分2计算与2的幂的乘法。然后限制元件522执行最后的限制操作。应注意因为限制元件536被设置为限制MAXVAL,所以它对结果没有影响。
因为sel1为0,所以选择元件输出0,并且因为M4仅获取0,所以第三部分对在加法器534上的执行的加法没有影响。
如果稍后期望DVB-SH族的不同交织模式,则仅需改变上述表中示出的少数参数。
交织器可在用于广播接收、无线网络和无线通信的物理层处理中使用。通过使用描述的交织器,可以最小成本来构造非常灵活的turbo解码器。本发明描述了支持公知的广播和移动通信标准的灵活的turbo交织器。估计该(去)交织器占有基于LUT解决方案的面积的大约30%,该解决方案支持相同组的标准。此外,由于在该交织器单元内可执行多种计算,所以主机处理器需要的计算时间显著减少了。
在图6中示出了解码系统800的实施例。解码系统600可以是数据处理系统的一部分。
数据处理系统601包括解码系统600。解码系统600包括交织器602、控制器604、解码器606、存储器608和可重新配置的装置610。解码系统600适于解码turbo码。
解码器606典型地为SISO类型解码器。解码器606经由连接612和614连接到存储器608。连接614被解码器606用来响应地址以从存储器608读取。连接612被解码器606用来写入到存储器608。为了便于说明,用于写和读的连接在图6中以分开的附图标记612和614示出,尽管典型地从解码器606到存储器608的连接将实现为单个连接,其中单个连接均能用于读或写。例如,这种单个连接可以实现为总线。
解码器606从交织器602接收地址来从存储器608中读取。控制器604控制交织器602和解码器606。交织器602使用可重新配置装置610可重新配置。
在操作期间,解码系统600接收包括数据和冗余(即纠错信息)的帧。该帧能够存储于存储器608中或者附加输入缓冲器存储器中。解码器606以多次迭代的方式对出现在帧中的错误进行校正。每个这样的迭代包括第一半迭代和第二半迭代。
在第一半迭代中,解码器606使用连接614从存储器608读数据。典型地,读取随后进行,并不需要由交织器602产生的地址。接下来,解码器606继续校正数据。当解码器606完成这个校正步骤时,使用连接612,将解码器所产生的已校正的数据写入到存储器608。写入随后进行,并不需要来自于交织器602的地址。
在第二半迭代中,解码器606使用连接614从存储器608读取数据。读取从至少部分地由交织器602提供的交织地址执行。接下来,解码器606继续校正数据。当解码器606完成这个校正步骤时,使用连接612,将解码器所产生的已校正数据写入到存储器608。写入随后进行,并且不需要来自于交织器602的地址。
产生地址和校正数据可以组合。例如,可以产生一个或多个地址,在其后,执行某些校正。接着,可以产生一个或多个其他地址,其后,执行某些其他校正,以此类推,直到产生所有的地址,执行了特定半迭代的所有校正步骤。
半迭代处理典型地花费大量时钟周期。在每个时钟周期中,解码器606需要来自于存储器608的新信息项来工作。虽然这不是必要的,解码系统600也可异步工作,而不使用时钟,。
这样,在第一半迭代中使用连接614的读取随后执行,并且使用连接614的读取根据第二半迭代中由交织器602提供的地址。应注意,可替换地第一和第二半迭代的角色可以转换,即第一半迭代使用交织地址,第二半迭代使用线性地址。
迭代的次数可以使用所谓的停止规则静态和动态地确定。停止规则的概述由“Stopping Rules for Turbo Decoders”,TMO progress report 42-142;2000年8月15;A.Matache,S.Dolinar和F.Pollara提供。比如,可使用部分II中的停止规则定义。
可重新配置的装置610和交织器602可以根据以下讨论的其他实施例中的任一项来实现。
近来,提出了并行turbo解码器体系结构。并行的turbo解码器体系结构采用多个SISO解码器并行地对相同的接收到的数据帧进行操作。利用并行的turbo解码器,典型地使用无冲突的交织器。例如在Neeb,C.,Thul,M.J.and Wehn,N,2005,“Network-on-chip-centric approach to interleaving inhigh throughput channel decoders”,Circuits and Systems,ISCAS 2005,IEEE International Symposium on 23-26 May 2005,page(s):1766-1769 Vol.2中描述了冲突的交织器。本发明也可用于并行turbo解码器。
图9示出了根据本发明的方法900的流程图。
流程图示出了利用总计数数目和起始值配置910多个计数器,总计数数目定义要计数的值的数目,起始值定义从其开始进行计数的值;从多个存储器获取920值,值从存储器中的存储器位置获取,该存储器位置由多个计数器中与存储器相关联计数器指示;对从多个存储器获取的值进行操作930;以及产生940交织地址序列,交织地址序列中的下一个交织地址是通过以下操作可获得的:递增多个计数器中的至少一个计数器,以及计算元件对从与递增的计数器相关联的存储器中获取的至少一个值进行操作。
执行方法的多种不同方式是可能的,这对本领域技术人员来说是显而易见的。例如,步骤的顺序能够改变,或者某些步骤可以并行执行。而且,其它方法步骤可以插入到步骤之间。插入的步骤可以代表方法(例如此处描述的方法)的改进,或者可以与该方法无关。例如,步骤640至少部分地可以与其它步骤并行执行。而且,在下一步骤开始之前,指定步骤可能没有完全完成。
优选地,使用为执行方法专门配置地硬件来执行方法。例如,该方法可使用硬件实现的可重新配置的交织器,比如用CMOS技术来实现。例如,一个或多个计数器、和/或多个存储器和/或多个计算元件可以在专用硬件中实现。专用硬件是硬连接的,以执行其特定功能。
然而,软件可以与方法结合使用。例如,软件可以控制重配置,例如,通过写数据到存储器,或者配置计数器。
根据本发明的方法可使用软件来执行或控制或重新配置,软件包括指令来使处理器系统执行方法900。软件可以仅包括由系统的特定子实体执行的那些步骤。软件可以存储在适合的存储介质中,例如硬盘、软盘、存储器等。软件可以作为信号沿着有线,或无线,或数据网络(例如因特网)发送。软件可以用于下载和/或服务器上的远程使用。
应该理解本发明也扩展到了计算机程序,尤其在载体上或在载体内的计算机程序,适于将该发明用于实践。程序可以为源代码、目标代码、源代码和目标代码中间的代码(例如部分地编译形式)的形式,或者适于用来实现根据本发明的方法的任何其他形式。也应该理解这种程序可以具有很多不同的体系结构设计。比如。实现根据本发明方法或系统的功能的程序可被细划分为一个或多个子例程。在这些子程序之中分配功能的多种不同方式对于本领域技术人员来说是显而易见的。子例程可以一起存储在一个可执行文件中来形成自我包含的程序。这种可执行文件可以包括计算机可执行指令,例如,处理器指令和/或解释器指令(比如Java解释器指令)。备选地,一个或多个或所有的子例程可存储在至少一个外部库文件中以及静态或动态(比如在运行时间)链接到主程序。主程序包括到至少一个子例程的至少一个调用。同时,子例程可包含彼此的函数调用。与计算机程序产品相关的实施例包括对应于所述至少一个方法的每个处理步骤的计算机可执行指令。这些指令可以被细划分为子例程和/或存储在一个或多个可以静态或动态链接的文件中。与计算机程序产品相关的另一实施例包括对应于所述至少一个系统和/或产品的每个装置的计算机可执行指令。这些指令可以被细划分为子例程和/或存储在一个或多个可以静态或动态链接的文件中。
计算机程序的载体可以是能够承载程序的任何实体或设备。例如,载体可包括诸如ROM之类的存储介质,例如CD ROM或半导体ROM,或磁记录介质,例如,软盘或硬盘。此外,载体可以为可传输的载体,例如电信号或光信号,可以经由电缆或光缆传输或者通过无线电或其它装置传输。当程序嵌入在这种信号中时,载体可以由这种缆线或者其它设备或装置构成。备选地,载体可以为其中嵌入了程序的集成电路,集成电路适于执行相关方法,或用在相关方法的性能上。
应注意,上述实施例示出而非限制本发明,在不背离所附权利要求的范围的前提下,本领域技术人员将能够设计出许多备选实施例。在权利要求中,括号之间的任何附图标记不应构成对权利要求的限制。动词“包括”及其变型的使用并不排除权利要求所陈述的元件或步骤以外的其他元件或步骤的存在。元件之前的不定冠词“一”不排除存在多个这种元件。可以利用包括若干不同元件的硬件以及利用适当编程的计算机来实现本发明。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以由同一项硬件来实现。在互不相同的从属权利要求中阐述特定措施并不表示不能有利地使用这些措施的组合。

Claims (12)

1.一种可重新配置的交织器,包括:
多个计数器,所述多个计数器中的每个计数器配置有总计数数目和起始值,所述总计数数目定义要计数的值的数目,起始值定义从其开始进行计数的值;
多个存储器,所述多个存储器中的每个存储器被配置为从存储器的存储器位置获取值,所述存储器位置由多个计数器中与所述存储器相关联的计数器指示;
多个计算元件,被配置为对从多个存储器获取的值进行操作;
其中,所述可重新配置的交织器被配置为产生交织地址序列,所述交织地址序列中的下一个交织地址是通过以下操作可获得的:递增多个计数器中的至少一个计数器,以及通过计算元件对从与递增的计数器相关联的存储器中获取的至少一个值进行操作;
通过利用总计数数目和起始值中的至少一个来重新配置至少一个计数器,将所述可重新配置的交织器配置用于至少两种不同的交织模式之一。
2.根据权利要求1所述的可重新配置的交织器,其中,多个计数器中的至少一个计数器被配置为在计数了总计数数目个值之后,从起始值开始重复计数。
3.根据前述权利要求中任一项所述的可重新配置的交织器,其中,计算元件被配置为接收从两个不同的存储器获取的两个值,并且被配置为通过对两个获取的值进行操作来产生值。
4.根据权利要求3所述的可重新配置的交织器,其中,配置为接收两个值的计算元件被配置为通过将两个获取的值相加或相乘来产生值。
5.根据权利要求4所述的可重新配置的交织器,其中,
配置为接收两个值的计算元件,被配置为通过将两个获取的值相加来产生值,以及
可重新配置的交织器被配置为,在至少两种不同的交织模式之一中,与包含至少一个零的存储器相关联的计数器被配置用于所述存储器,以仅获取值0;
或者
配置为接收两个值的计算元件,通过将两个获取的值相乘来产生值,以及
可重新配置的交织器被配置为,在至少两种不同的交织模式之一中,与包括至少一个一(“1”)的存储器相关联的计数器被配置用于所述存储器,以仅获取值1。
6.根据前述权利要求中任一项所述的可重新的配置交织器,包括至少一个选择元件,其中,
选择元件被配置为接收选择比特,接收两个值并且根据选择比特输出两个值之一,
多个计算元件中的至少一个被配置为接收选择元件的输出作为输入,或者选择元件被配置为从计算元件接收两个输入值之一,以及
针对至少两种不同的交织模式之一对可重新配置的交织器的配置还取决于选择比特。
7.根据前述权利要求中任一项所述的可重新配置的交织器,包括:缓冲器元件,用于接收值和输出所述值,以由计算元件对所述值进行操作,从而获取交织地址序列中的下一个交织地址。
8.根据前述权利要求中任一项所述的可重新配置的交织器,包括:可配置的限制元件,该限制元件被配置为接收限制比特和限制值并且接收限制输入值,其中
限制元件被配置为,针对限制比特的一个值,使用限制值作为模数对限制输入值执行模运算并进行输出,以及
限制元件被配置为,针对限制比特的另一个值,使用限制值作为限制对限制输入值执行限制操作,如果限制输入值小于限制值,则输出限制输入值;
针对至少两种不同的交织模式之一对可重新配置的交织器的配置还取决于限制比特或限制值。
9.一种turbo编码器或解码器,包括前述权利要求中任一项所述的可重新配置的交织器。
10.一种重新配置交织器的方法,包括:
配置具有总计数数目和起始值的多个计数器,总计数数目定义要计数的值的数目,起始值定义从其开始进行计数的值,
从多个存储器获取值,值是从存储器的存储器位置获取的,所述存储器位置由多个计数器中与所述存储器相关联的计数器指示,以及
对从多个存储器获取的值进行操作,
产生交织地址序列,交织地址序列中的下一个交织地址是通过以下操作可获得的:递增多个计数器中的至少一个计数器,以及通过计算元件对从与递增的计数器相关联的存储器中获取的至少一个值进行操作,
通过利用总计数数目和起始值中的至少一个对至少一个计数器进行重新配置,将可重新配置的交织器配置用于至少两种不同的交织模式之一。
11.一种计算机程序,包括:计算机程序代码装置,适于当计算机程序在计算机上运行时,执行权利要求10中的所有步骤。
12.根据权利要求11所述的计算机程序,在计算机可读介质上实现。
CN201110153798XA 2010-06-10 2011-06-09 包括可重新配置计数器的可重新配置交织器 Pending CN102281074A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10165467.1A EP2395668B1 (en) 2010-06-10 2010-06-10 Reconfigurable interleaver comprising reconfigurable counters
EP10165467.1 2010-06-10

Publications (1)

Publication Number Publication Date
CN102281074A true CN102281074A (zh) 2011-12-14

Family

ID=42990207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110153798XA Pending CN102281074A (zh) 2010-06-10 2011-06-09 包括可重新配置计数器的可重新配置交织器

Country Status (3)

Country Link
US (1) US8874858B2 (zh)
EP (1) EP2395668B1 (zh)
CN (1) CN102281074A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112610202A (zh) * 2019-09-19 2021-04-06 中国石油化工股份有限公司 用于石油钻井系统的随钻测量总成的中央存储单元

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197473A (ja) * 2014-03-31 2015-11-09 ソニー株式会社 信号処理方法、表示装置、及び電子機器
US10277448B1 (en) 2017-11-02 2019-04-30 Nxp Usa, Inc. Method for hierarchical modulation with vector processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103839A1 (en) * 2001-01-19 2002-08-01 Kunihiko Ozawa Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
CN1784833A (zh) * 2003-03-21 2006-06-07 泰拉扬信息系统公司 纠错码交织器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996037050A1 (en) * 1995-05-15 1996-11-21 Advanced Hardware Architectures, Inc. Reconfigurable interleaver/deinterleaver and address generator for data streams interleaved according to one of a plurality of interleaving schemes
EP1593047A4 (en) * 2003-02-13 2010-06-09 Nokia Corp METHOD OF SIGNALING STREAMING QUALITY ADAPTATION AND CONTROL MCHANISMS IN MULTIMEDIA STREAMING
GB2409133A (en) * 2003-12-11 2005-06-15 Motorola Inc Interleaver for a turbo encoder and decoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103839A1 (en) * 2001-01-19 2002-08-01 Kunihiko Ozawa Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
CN1784833A (zh) * 2003-03-21 2006-06-07 泰拉扬信息系统公司 纠错码交织器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112610202A (zh) * 2019-09-19 2021-04-06 中国石油化工股份有限公司 用于石油钻井系统的随钻测量总成的中央存储单元

Also Published As

Publication number Publication date
US8874858B2 (en) 2014-10-28
EP2395668B1 (en) 2016-08-17
US20110307673A1 (en) 2011-12-15
EP2395668A1 (en) 2011-12-14

Similar Documents

Publication Publication Date Title
RU2235424C2 (ru) Перемежитель турбокода, использующий линейные конгруэнтные последовательности
CN111162797B (zh) 一种速率兼容的5g ldpc码的编码装置及编码方法
EP0981218A2 (en) Error-correcting encoding apparatus
EP3639374B1 (en) Low latency polar coding and decoding by merging of stages of the polar code graph
US20130322501A1 (en) Encoding/decoding processor and wireless communication apparatus
WO2003105001A1 (en) Data processor adapted for turbo decoding
WO2007032861A1 (en) Method and system for fast context based adaptive binary arithmetic coding
UA91513C2 (uk) Спосіб (варіанти) і кодер ldpc-кодування
US20150236723A1 (en) Parallel VLSI architectures for constrained turbo block convolutional decoding
CN110999095A (zh) 用于极化码的按块并行冻结位生成
CA2638318A1 (en) High rate, long block length, low density parity check encoder
JP4767266B2 (ja) 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法
CN101151806B (zh) 利用映射函数周期性的存储器有效的交织/去交织
KR100894234B1 (ko) 선형 블록 코드의 인코딩 방법 및 장치
CN102057580A (zh) 针对多标准的可重新配置的Turbo交织器
CN102037652A (zh) 包括存储器组的数据处理系统和数据重排
WO2008069231A1 (ja) 復号装置、復号方法
CN102281074A (zh) 包括可重新配置计数器的可重新配置交织器
US6978415B1 (en) Variable redundancy cyclic code encoders
TWI334280B (en) Efficient ctc encoders and methods
JP3628013B2 (ja) 信号送信装置および符号化装置
WO2011057887A1 (en) Improved harq
Kim et al. Novel bit manipulation unit for communication digital signal processors
Mamidi et al. Instruction set extensions for software defined radio
JP4308226B2 (ja) 誤り訂正符号化装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111214