CN102084346A - 用于存储器的多路访问的地址生成 - Google Patents

用于存储器的多路访问的地址生成 Download PDF

Info

Publication number
CN102084346A
CN102084346A CN2009801256614A CN200980125661A CN102084346A CN 102084346 A CN102084346 A CN 102084346A CN 2009801256614 A CN2009801256614 A CN 2009801256614A CN 200980125661 A CN200980125661 A CN 200980125661A CN 102084346 A CN102084346 A CN 102084346A
Authority
CN
China
Prior art keywords
tuple
order
address
memory
control signal
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
CN2009801256614A
Other languages
English (en)
Other versions
CN102084346B (zh
Inventor
E·涅米南
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102084346A publication Critical patent/CN102084346A/zh
Application granted granted Critical
Publication of CN102084346B publication Critical patent/CN102084346B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/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/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient 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/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)

Abstract

存储器组具有多个存储器。在一个实施方式中,前向单元以前向双重访问顺序向存储器组应用逻辑存储器地址,后向单元以后向双重访问顺序向存储器组应用逻辑存储器地址,以及至少半蝶形网络(至少半蝶形网络,在八元组实施方式中还有桶式移位器),其位于存储器组与前向单元和后向单元之间。生成控制信号的集合,以向至少半或更多蝶形网络(以及,在存在的情况下,向桶式移位器)应用该控制信号的集合,以便在第一实例中利用线性顺序以及在第二实例中利用二次多项式顺序、以n元组并行性来访问存储器组,其中n=2,4,8,16,32...。此访问针对逻辑地址的任何n元组,而不存在存储器访问冲突。以此方式,存储器访问可以由数据解码进行控制。

Description

用于存储器的多路访问的地址生成
技术领域
此处的教导总体上涉及无线通信系统、用于该无线通信系统的方法、设备/装置和计算机软件,以及示例性实施方式涉及turbo解码器存储器访问和用于这种turbo解码器的架构。
背景技术
E-UTRAN是从通用移动电信系统(UMTS)陆地无线电接入网络系统演进而来的无线通信系统。如目前在3GPP(第三代合作伙伴计划)TS 36.212中提出的,针对turbo码将存在188个不同的turbo帧。在发射设备处应用信道码,以便针对由无线空中接口信道中的干扰因素所引起的各种错误而建立对数据(用户数据或控制数据)的保护。继而,需要在接收器处对已编码数据进行解码,以在接收机处恢复原始数据。Turbo码通常用于两个或更多通信设备(如,移动电话、网络接入节点(例如,e节点B、节点B、基站、无线局域网接入点))之间的数据保护。这种设备使用turbo解码器来解码此已编码数据。
E-UTRAN(尽管不仅局限于该无线协议)的一个元素在于使用高速数据链路(例如,数据传输速度高于约20Mbps)。在这种高速度下以及尤其通过如上针对3GPP TS 36.212所注意到的大数量信道码的情况下,接收机/turbo解码器需要以相当高的速率进行处理,从而随着已编码数据正在被接收而以实时或接近实时的方式进行正确的解码。
针对这种高速turbo解码,通常存在两种简单的方案:在实施了turbo解码器的ASIC(专用集成电路)上采用较高的时钟速率以跟上传入数据速率,或者使用并行处理,该并行处理允许在并行流中的每一个流上进行较慢处理,而不会落后于该传入数据。
较高的ASIC时钟速率受到以下的限制:较高功耗、用来制作该ASIC的半导体技术的局限,以及具有高时钟速率ASIC的设备的较高终端用户价格。并行处理支持更快速的解码器,同时避免了上述限制中的一些。尤其是在便携式无线设备(例如,移动台或其他便携式用户设备UE)中,功耗成为重要的设计考虑。
与这些教导有关的是与此处详述的本发明相同的发明人的两篇文献:2007年9月18日授权的、名称为“NOISE AND QUALITY DETECTOR FOR USE WITH TURBO CODED SIGNALS”的美国专利号7,272,771(下文中,称为Noise and Quality Detector参考);和2007年6月4日提交的、名称为“MULTIPLE ACCESS FOR PARALLEL TURBO DECODER”的共同未决美国专利申请序列号11/810,199(下文中,称为Multiple Access Decoder参考)。通过参考,在此并入这些文献中每一个的全文。
以下详细描述的本发明实施方式可以简化在上述两篇参考中详述的某些操作,并且因此对于高速数据链路(其中,特别是如3PP TS 36.212中所述,存在大量不同的turbo帧的情况)而言尤其有益。
发明内容
根据本发明的一个实施方式的是一种方法,其控制在数据解码期间的存储器访问。在此实施方式中,提供具有多个存储器的存储器组、配置用于以前向双重访问顺序向存储器组应用逻辑存储器地址的前向单元、配置用于以后向双重访问顺序向存储器组应用逻辑存储器地址的后向单元,以及位于存储器组与前向单元和后向单元之间的至少半蝶形网络。此外,在此实施方式中,根据该方法,生成控制信号的集合,该控制信号的集合被应用到该至少半蝶形网络和桶式移位器,以便利用针对逻辑地址的任何n元组的、以线性顺序或二次多项式顺序中选择的一个顺序的n元组并行性来访问存储器组,而不存在存储器访问冲突,其中n是2的非零整数次幂(例如,n=2,4,8,16,32...)。
根据本发明另一实施方式的是一种装置,其包括:存储器组,具有多个存储器;前向单元,配置用于以前向双重访问顺序向存储器组应用逻辑存储器地址;后向单元,配置用于以后向双重访问顺序向存储器组应用逻辑存储器地址;至少半蝶形网络,其位于存储器组与前向单元和后向单元之间。这一示例性装置进一步包括:处理器,配置用于生成控制信号的集合,该控制信号的集合被应用到该至少半蝶形网络,以便利用针对逻辑地址的任何n元组的、以线性顺序或二次多项式顺序中选择的一个顺序的n元组并行性来访问存储器组,而不存在存储器访问冲突,其中n是2的非零整数次幂。另外,此示例性装置包括解码器,配置用于使用利用n元组并行性从存储器组提取的值来对接收的数据进行解码。
根据本发明另一实施方式的是一种机器可读指令的程序,其实现在有形存储器上并可由数字数据处理器执行,以执行针对控制存储器访问的动作。根据此示例性实施方式,所述动作包括:生成控制信号的集合,并向置于包括多个存储器的存储器组与逻辑存储器地址端口组之间的至少半蝶形网络应用生成的控制信号的集合,以便利用针对逻辑地址的任何n元组的、以线性顺序和二次多项式顺序中选择的一个顺序的n元组并行性来访问存储器组,而不存在存储器访问冲突。在此实施方式中,n是2的非零整数次幂。所述动作进一步包括使用利用n元组并行性从存储器组提取的值来对接收的数据进行解码。
根据本发明又一实施方式的是一种设备,其包括:存储装置,包括外部存储位置;逻辑地址装置,用于以前向双重访问顺序和后向双重访问顺序来向存储器组应用逻辑存储器地址;切换装置,位于存储装置和逻辑地址装置之间,用于选择性地将个体逻辑地址节点耦合到个体外部存储位置;计算装置,用于生成控制信号的集合,并向切换装置应用生成的控制信号的集合,以便利用针对逻辑地址节点的任何n元组的、以线性顺序和二次多项式顺序中选择的一个顺序的n元组并行性来访问存储装置,而不存在外部存储位置之间的冲突;以及解码装置,其使用利用n元组并行性从存储装置提取的值来对数据进行解码。在此实施方式中,n是2的非零整数次幂。对于n为4或8的情况,切换装置还包括移位装置。在特定实施方式中,存储装置是被寻址的存储器位置的存储器组;逻辑地址装置是与存储器组相关联的地址生成器单元;切换(和移位)装置是晶体管或其他开关的阵列,通常称为至少半个蝶形网络(桶式移位器作为移位装置);计算装置是位于专用集成电路上的处理器;以及解码装置是turbo解码器。
在下文详述本发明的这些和其他方面。
附图说明
当结合附图阅读时,这些教导的前述和其他方面将在以下详细描述中变得更加清楚。
图1描绘了具有四个总线的示例性蝶形网络,并且是所并入的Multiple Access Decoder参考的图1的复本。
图2示出了与用于实现四度并行处理的两个蝶形网络相耦合的存储器组,以及可操作以生成用于蝶形网络的控制信号的数据处理器,并且是所并入的Multiple Access Decoder参考的图2的复本。
图3示出了根据本发明一个示例性实施方式的、针对数据帧中点对称访问该数据帧。
图4是示出了两个地址和存储器空间以及控制位的示意图,其中该控制位控制交叉开关以将不同的总线路由到用于描述在下文详述的本发明实施方式的空间和地址中的任意一个。
图5是示出了四个地址和存储器空间、半蝶形网络和两个控制位的示意图。
图6与图5类似,除了根据本发明的一个示例性实施方式、在存储器空间和开关之间放置了两个桶式移位器。
图7是八元组半蝶形网络和八个存储器空间(或子存储器)的示意图。
图8与图7类似,除了根据本发明的一个示例性实施方式,具有两个桶式移位器。
图9是与图7类似的示意图,其根据本发明的一个示例性实施方式具有不同的切换布置并同样具有用于使用两个不同的访问顺序来并行访问八个存储器的前向单元和后向单元。
图10是根据本发明一个示例性实施方式、示出用于访问存储器的元素的过程流示意图。
图11示出了适用于实施本发明的示例性实施方式的各种电子设备的简化框图。
具体实施方式
上述Multiple Access Decoder参考的一般方法可以应用于具有用于内部交织的二次置换多项式交织器的turbo码。另一方面,利用二次置换多项式的特性,可以简化和优化并行处理访问方案。具体地,存储器和turbo解码器之间的路由网络变得简单,并且控制位可以随需(on the fly)生成。在此处的示例性实施方式中描述的并行访问方案依赖于二次置换多项式。
本发明的实施方式可以在例如使用3G、WiMAX、LTE(3.9G或UTRAN的长期演进)、HSDPA/HUSPA(高速下行链路/上行链路分组接入)和其他无线协议进行操作的网络中使用。本发明的实施方式并不限于特定无线协议,而是可以在移动设备/用户设备和/或网络元件(诸如,基站/节点B等)中使用。
首先,总结一下Multiple Access Decoder参考中的一些教导,以便理解下文新提出的教导所带来的优势。作为Multiple Access Decoder参考的背景,用于3G移动设备(例如,cdma2000、WCDMA)的某些turbo解码器使用每比特22周期用于在十个循环期间对turbo编码的数据进行解码。利用阶为2、4和8的多路访问规则,周期效率在十个循环处分别为每比特11、5.5和2.75个周期。本发明的示例性实施方式提供了设计用于与较高数据速率(诸如将来通信标准所期望的)一起使用的高速turbo解码器而同时具有合理的低功耗的能力。Multiple Access Decoder参考描述了这样的实施方式,其中并行处理的度是2的幂:2,4,8等。这源于本发明人针对问题所采取的底层方式,并且此处新提出的教导继续该底层方式,并且提供了针对八重(eight-fold)并行性的优势。
Multiple Access Decoder参考详述了这样的显式算法和方法,用于根据存储器集合的地址空间构建函数F,使得可以以两个独立顺序来并行地访问数据,而没有访问冲突。函数F将每个地址与一个存储器相关联。在二次置换多项式的情况中,函数F可以被选择为独立于二次多项式。因而,用于构建函数F的显式算法对于二次置换交织器而言是多余的。另一结果是,所需的具有二次置换多项式的路由网络比Multiple Access Decoder参考的路由网络要简单。
图1和图2复制自Multiple Access Decoder参考中相同附图编号的附图,并且示出了可以与turbo解码器架构一起操作以实现Multiple Access Decoder参考的实施方式的电路。尽管下文描述特定于四元组或八元组并行性,但是这些教导可以容易地扩展至针对2的任何整数次幂的n元组并行性。
公知的是,Benes网络能够生成由数目的阶乘给出的所有顺序,但是其针对该网络的控制位的计算是非常复杂的任务。在图1和图2中,蝶形网络应用至并行turbo解码以作为数据路由器。尽管蝶形网络不能生成像Benes网络那么多的顺序,但是所生成的顺序数目足以为感兴趣的turbo解码顺序建立并行处理。
图1描绘了具有四个总线的示例性蝶形网络,并且是并入的Multiple Access Decoder参考的图1的复本。蝶形网络包括四个开关10、12、14和16。每个开关能够创建直接连接(b0=0)或交叉连接(b0=1)。此示例性蝶形网络的控制信号是4位:(b3,b2,b1,b0)。数据可以从左到右或从右到左通过蝶形网络。
参考图2,例如,如果并行处理度是4,则第一(地址)蝶形网络18为了访问四个存储器(存储器0,存储器1,存储器2,存储器3)的组19而接收以下作为输入:控制位20的集合(4位,例如,b3,b2,b1,b0);和四个地址:add0(地址0)、add1(地址1)、add2(地址2)、add3(地址3)。四个地址通过蝶形网络18,并应用至与蝶形网络18的输出管脚连接的存储器组19。并行从存储器组19读取四个数据值(每一个数据来自存储器0,存储器1,存储器2,存储器3中的一个),并以与四个地址相同的方式但相反的方向路由至第二(数据)蝶形网络22。四个地址可以按照线性顺序或交织顺序生成。控制位20是顺序和位置特定的,并且是根据Multiple Access Decoder参考的实施方式生成的。
控制位20、4个写入地址和4个数据值被馈送至地址蝶形网络18和数据蝶形网络22,以进行向同一存储器组19的写入操作,其中该写入操作和读取操作使用相同的硬件和控制线。
根据Multiple Access Decoder参考,以线性顺序和交织顺序来生成控制信号20的位。控制信号20的位可以在解码开始之前生成,并存储至辅助存储器缓冲器24中。例如,同一蝶形网络可以用于使用一个控制位集合以线性顺序,和使用另一控制位集合以交织顺序,来将数据存储在存储器中,和/或从存储器中获取数据。这两个控制位集合针对给定并行性度可以具有相同宽度。用于二元组蝶形网络的控制信号是1位宽,用于四元组蝶形网络的控制信号是4位宽,以及用于八元组蝶形网络的控制信号是12位宽。通常,2m元组蝶形网络需要m*2m-1位宽的控制信号。注意,通过使用蝶形网络18和22可能实现的并行处理独立于任何系统交织器。
本发明的实施方式可以利用地址生成器单元来替换控制位20的辅助存储器缓冲器,该地址生成器单元可以向路由网络提供依赖于所需时间的控制位。共享的地址生成器单元可以用于线性顺序n元组访问和交织顺序n元组访问。这种实施方式可以简化turbo解码器和用于外部值的子存储器的存储器组之间的路由网络。例如,Multiple Access Decoder参考针对八元组蝶形网络具有12位宽的控制信号,而在示例性实施方式中,针对比蝶形网络小的路由网络,仅存在4位宽的依赖于时间的控制信号。
如图2中的存储器组的地址空间总长度由N表示,并且假设N是8的倍数。存储器组的分量存储器长度是N/n,其中n=2m,m=1,2,3等。地址空间{0,1,2,...,N-1}上的交织器由T表示,并且其逆交织器由T-1(交织器的逆称为解交织器)表示。二次置换多项式交织器由T(k)=a*k2+b*k+c(modulo(模)N)表示,其中k=0,1,2,...,N-1。在2005年1月、IEEE TRANSACTIONS ON INFORMTION THEORY,VOL.51,NO.1,第101-119页上、J.Sun和O.Y.Takeshita的题目为“Interleavers for Turbo Codes Using Permutation Polynomials Over Integer Rings”的论文(以下称为Takeshita)中,示出了如何验证给定数目a、b、c和N是否定义了二次置换多项式。具体地,当N是8的倍数时,a总是偶数,b是奇数。以下符号在下文描述示例性实施方式时使用。从地址空间{0,1,2,...,N-1}到分量存储器空间{0,1,2,...,n-1}的多路访问函数由Fn表示,而地址为k=0,1,2,...,N-1的数据值位于存储器组的分量存储器Fn(k)中。
对于k=0,1,2,...,N/n-1,线性顺序n元组数据访问Pn由Pn(k)=(a0(k),a1(k),a2(k),...,an-1(k))定义,其中分量函数aj(k)描述同时并行应用了哪些地址,N代表地址空间的长度。假设,分量函数aj的值应当彼此不同,即,对于i≠以及在索引空间{0,1,2,...,N/n-1}中的所有r和k,ai(r)≠aj(k)。交织顺序n元组数据访问PT n经由交织器T发生:PT n(k)=(T(a0(k)),T(a1(k)),T(a2(k)),...,T(an-1(k)))。线性顺序意味着分量函数aj(k)按照如在Pn(k)中那样使用,而交织顺序意味着分量函数aj(k)经由PT n(k)中的交织器T:T(aj(k))使用。实际上,在使用线性n元组访问方案时,第j个数据总线使用由aj(k)生成的地址,而当使用交织的n元组访问方案时,第j个数据总线使用由T(aj(k))生成的地址。例如,在图7中,数据总线从左侧起编号为从0到7,并且由此索引j的值为从0到7。
二次置换多项式交织器不会混合属于n的不同余数分类的地址;即,如果Add0≠Add1 modulo n,则T(Add0)≠T(Add1)modulo n。这一事实意味着:替代于用算法求解多路访问函数Fn的值Fn(k),可以通过简单公式来设置值
Fn(k)=k modulo n,其中k=0,1,2,...,N-1        [1]
换言之,具有逻辑地址k的数据值位于子存储器Fn(k)中,并且其物理地址为(k div n),其中div表示整除。如果对于i≠j,ai(k)≠aj(k)(modulo n),则Fn的种类满足下述要求:
对于i≠j,并且对于所有k=0,1,2,...,N/n-1,Fn(ai(k))≠Fn(aj(k))(线性顺序)。
对于i≠j,并且对于所有k=0,1,2,...,N/n-1,Fn(T(ai(k)))≠Fn(T(aj(k)))(交织顺序)。
所以,多路访问函数Fn(k)同时针对两个n元组数据访问方法Pn和PT n生成对n个存储器的存储器组的无冲突访问。继而,出现了一个自然而然的问题:需要哪种路由网络来通过使用两个不同的访问方法Pn和PT n而在turbo解码器与n个子存储器的存储器组之间路由数据的n元组。第二个问题在于如何在解码数据期间控制路由网络。第三个问题在于如何选择分量函数aj来为turbo解码器建立n重并行处理。接下来,针对n=2,4和8来讨论这些问题,并提供答案。例如,在n=16或2的其他更大次幂的情况下,假设数据帧的长度N是n的倍数。
如果Add0=Add1 modulo(n/2)且Add0≠Add1 modulo n,那么位于地址的n元组内的两个地址Add0和Add1可以与依赖于公共时间的交叉开关耦合。在turbo解码器与用于外部值的子存储器的存储器组之间构建路由网络即基于这一事实。除了依赖于时间的交叉开关之外,路由网络还包括独立于时间的交叉开关。其遵守二次置换多项式交织器的如下特性:如果Add0=Add1 modulo(n/2)且Add0≠Add1 modulo n,则同样,T(Add0)=T(Add1)modulo(n/2)并且T(Add0)≠T(Add1)modulo n。
在Multiple Access Decoder参考中,通过将每个子地址空间再次划分成两个集合,较高度的并行处理从其较低度的对等体被派生出来。在与二次置换多项式交织器结合的情况下,可以使用类似的方式。由于这样的特性“如果Add0≠Add1 modulo n,则T(Add0)≠T(Add1)modulo n”,可以划分线性地址空间中的地址,并且也可以对交织器地址空间做同样的划分。因此,不需要为了求解多路访问函数的值而在线性地址空间和交织地址空间之间来回移动。为了说明地址空间划分的新方式,将地址空间划分成偶数地址和奇数地址:用(2p,2p+1)替换k,因为k=2p(偶数)或k=2p+1(奇数)和p中的任一是正整数或0。具有偶数地址的数据值被放入存储器0中,而具有奇数地址的数据值被放入存储器1中。在两种情况下,逻辑地址为2p或2p+1的数据值的物理地址是子存储器中的p。图4示出了用于路由网络的交叉开关31和对应的存储器布置。现在,只要T是二次置换多项式交织器,则T(2p)≠T(2p+1)modulo 2。
接着,考虑备选分量函数a0和a1,其实际实现用于双重二元组并行访问方案。一旦使用了一次处理两个连续格状列(trellis column)(偶数和奇数)的turbo解码器,那么对于前向处理的k=0,1,2,...,N/2-1,以及对于后向处理的k=N/2-1,N/2-2,...,1,0,分量函数可以是a0(k)=2k以及a1(k)=2k+1。所以,具有用于线性顺序访问机制的地址二元组P2,以及具有用于二次多项式置换顺序访问机制的其他二元组PT 2,诸如以下分别由[A2a]和[B2a]示出的:
P2(k)=(2k,2k+1);       [A2a]
PT 2(k)=(T(2k),T(2k+1));[B2a]
其中,索引k=0,1,2,1,..,N/2-1,并且N是turbo交织器的长度。另一种可能性是从两端同时前向和后向地处理数据帧:对于k=0,1,2,...,N-1,a0(k)=k并且a1(k)=N-k-1。实际上,(k)≠(N-k-1)modulo 2,并且T(k)≠T(N-k-1)modulo 2。继而,
P2(k)=(k,N-k-1);                                   [A2b]
PT 2(k)=(T(k),T(N-k-1)),其中k=0,1,2,...,N-1    [B2b]
由于二次多项式是二阶多项式,所以其值可以由二阶差值生成。本发明的线性地址方法可以与也由二阶差值表示的平面中的线匹配。这意味着,可以通过根据所应用的访问方案(线性顺序或交织顺序)重置二阶差值来使用二阶差值生成存储器组的物理地址。作为副产品,得到了针对交叉网络的控制位。根据给定值gk,gk+1,和gk+2来计算二阶差值D0、D1和D2,如下:
D0=gk
D1=gk+1-gk(modulo N);
D2=gk+2-2*gk+1+gk=gk+2-gk+1-(gk+1-gk)=(gk+2-gk+1)-D1(modulo N).
针对每个数据总线使用一个三元组二阶差值到所生成的物理地址。由于将相同的多项式用于两个总线,所以第三项D2对于总线是相等的,并且由此将其称为公共项,并由CT表示。因此,两个总线共享第三项D2。D0的下一值通过以下递归计算为:
D0=D0+D1(modulo N);
D1=D1+CT(modulo N),并且CT=D2是常数。
等式[A2a]中的线性顺序二元组数据访问P2导致两对二阶差值:一个用于2k,另一个用于2k+1。总线0的地址是0,2,4,6等,并且总线1使用地址1,3,5,7等。继而,g0=0,g1=2,以及g2=4,并且由此A00=0,A10=2-0=2(modulo N),并且公共项CT=4-2*2+0=0(modulo N)。由此,总线0的地址生成器的重置值是(A00,A10)=(0,2),并且CT=0。总线1的地址生成器的重置值以相同的方式来计算,并且为(A01,A11)=(1,2)。总线0的地址等于(A00/2),以及交叉开关的控制位等于(A00 modulo 2)。两个总线使用公共的控制位。在此特定情况下,控制位恒定为0。总线1的地址是(A01/2)。
等式[B2a]中的二次置换多项式交织的顺序二元组访问PT 2具有两种二阶差值:针对总线0是A00=T(0),A10=T(2)-T(0)(modulo N),针对总线1是A01=T(1),A11=T(3)-T(1)(modulo N)。公共项CT=T(4)-2*T(2)+T(0)(modulo N)=8*a(modulo N)。实际数字值取决于二次置换多项式。
当像在等式[A2b]和[B2b]中那样使用双重二元组访问规则时,地址生成器单元的二阶差值可以根据期望的访问规则(线性的或交织的)进行重置。总线0在线性访问和交织访问中的地址分别为0,1,2,3,...,和T(0),T(1),T(2),...。所以,总线0的二阶差值在线性访问和交织访问中可以分别利用(A00,A10)=(0,1)和(A00,A10)=(T(0),T(1)-T(0))(modulo N)进行重置。更宽泛地说,根据用于线性顺序n元组访问的分量函数值或二次多项式置换在用于交织的顺序n元组访问的分量函数值处的值来对二阶差值进行重置。其中,n是2的幂(但不等于0)。总线1在线性访问和交织访问中的地址分别是N-1,N-2,N-3,N-4...,和T(N-1),T(N-2),T(N-3),...。总线1的二阶差值的两个项在线性访问和交织访问中分别由(A01,A11)=(N-1,-1)和(A01,A11)=(T(N-1),T(N-2)-T(N-1))(modulo N)重置。总线的地址生成器的公共项针对线性访问和交织访问的初始值分别为CT=0和CT=T(2)-2*T(1)+T(0)=2*a(modulo N)。在所示的示例性访问情况中,总线0的物理地址等于(A00/2),并且交叉开关的控制位等于(A00 modulo 2)。两个总线使用公共的控制位。总线1的地址是(A01/2)。
针对二元组线性访问方案P2(k)=(a0(k),a1(k))的地址生成器的重置可以如下进行。对于j=0和1,指派
A0j=aj(0);
A1j=aj(1)-aj(0)modulo N;
CT=a0(2)-2*a0(0)-a0(0)modulo N
用以针对二元组交织的访问方案PT 2(k)=(T(a0(k)),T(a1(k)))重置地址生成器的公式可以是
A0j=T(aj(0));
A1j=T(aj(1))-T(aj(0))nodulo N;
CT=T(a0(2))-2*T(a0(0))-T(a0(0))modulo N,其中j=0和1。
对分量函数所进行的索引是否也从N/2-1开始向下进行并且继而三个值为N/2-1,N/2-2和N/2-3可以取决于所选择的并行方法。
总之,至此,可知二阶差值提供了为两个数据总线生成物理地址以及为交叉开关生成(依赖于时间的)控制位的可行方法。共享的地址生成器单元可以用于以一致方式进行线性访问和交织访问。
为了将二元组并行访问扩展到四元组并行访问,可以通过利用以下公式将地址与存储器0,1,2和3相关联来将二元组的地址空间划分成四元组的地址空间
对于k=0,1,2,...,N-1,F4(k)=k modulo 4。
由于二次置换交织器的if(如果)特性:“如果Add0≠Add1 modulo 4,则T(Add0)≠T(Add1)modulo4”,上述公式在线性顺序和交织顺序中产生了无竞争的四元组数据访问。以下表1示出了数据值如何位于四个子存储器的存储器组中的示例。表1中的每个存储器单元保有该存储器单元的地址。
Figure BPA00001284507600131
表1
为了构建路由网络,如果ai(k)=aj(k)modulo 2,其中i≠j,并且i和j位于{0,1,2,3}中,则从四个(a0(k),a1(k),a2(k),a3(k))中确定两个并行地址来共享交叉开关(例如,图5和图6中的X0或X1)。图5和图6中的总线0和2的X0的交叉控制满足ai(k)=aj(k)=0 modulo 2的两个分量函数。类似地,图5和图6中总线1和3的X1的交叉控制满足ai(k)=aj(k)=1 modulo 2的两个分量函数。具有索引i和j并且i=j modulo 2的两个存储器构成一对。因此,与共享交叉开关的两个地址匹配的两个存储器是一对。而且,与总线0和2的X0的交叉连接的两个分量函数在图5和图6中分别由a0(k)和a2(k)表示。同样地,与总线1和3的X1的交叉连接的两个分量函数在图5和图6中分别由a1(k)和a3(k)表示。图6中的控制位b0是与四元组线性访问有关的0。
交织的四元组(T(a0(k)),T(a1(k)),T(a2(k)),T(a3(k)))通过交织的分量函数T(aj(k))的索引j与总线0,1,2和3相关联。一旦使用了交织的四元组访问,则图6中的控制位b0取决于二次置换多项式T(k)=a*k2+b*k+c(modulo N),其中k=0,1,2,...,N-1:系数c影响b0。图5示出了图6中的与c=0的二次置换交织器对应的特殊情况。将图5的路由网络称为半蝶形网络。图6中的路由网络是利用两个桶式移位器33和34进行了扩展的半蝶形网络。图6的网络基本上与图1的网络相同。
由此,使得将本发明的示例性实施方式应用至四元组并行存储器访问。多路访问函数F4将具有地址(k)的数据值映射至子存储器(k modulo 4),并且在该子存储器中,该数据值位于(k div 4)处。可以使用任何种类的四个分量函数aj(k),j=0,1,2,3只要其满足下式即可:
对于j=0和1,aj(k)=aj+2(k)=j modulo 2;
对于i≠j,i和j=0,1,2和3,ai(k)≠aj(k)modulo 4
具体地,a0(k)≠a2(k)modulo 4以及a1(k)≠a3(k)modulo 4。继而,根据二次置换多项式交织器的特殊特性得出:四个交织的分量函数T(aj(k)),j=0,1,2,3满足
对于j=0和1,T(ai(k))=T(ai+2(k))modulo 2;
对于i≠j,i和j=0,1,2,和3,T(ai(k))≠T(aj(k))modulo 4。
例如,有用的分量函数由aj(k)=4k+j定义。由此,双重四元组并行访问方案对于线性四元组并行访问和交织四元组并行访问分别为
P4(k)=(4k,4k+1,4k+2,4k+3);             [A4a]
PT 4(k)=(T(4k),T(4k+1),T(4k+2),T(4k+3));[B4a]
其中,索引k=0,1,2,1...,N/4-1。现在,a0(k)=a2(k)=0(modulo 2)并且a1(k)=a3(k)=1(modulo 2)。因此,[A4a]的线性顺序四元组并行访问方案P4从四个存储器中形成两对存储器。由于二次置换多项式的特定特征,a0(k)=a2(k)=0(modulo 2)并且a1(k)=a3(k)=1(modulo 2)。所以,[B4a]的交织的顺序四元组访问机制PT 4也遵循四个存储器的配对规则。在通过一个存储器访问内的四个格状列在前向和后向二者中计算路径度量时,可以使用这种双重四元组并行访问机制。
如在n=2的情况中,另一可能性在于从两端同时前向和后向地处理数据帧:对于k=0,1,2,...,N-1,a0(k)=2k,a1(k)=2k+1,a2(k)=N-2(k+1),a3(k)=N-2(k+1)+1。实际上,aj(k)modulo 4=j,因此对于j≠i,T(aj(k))≠T(ai(k))modulo 4。继而,针对线性四元组并行访问和针对交织四元组并行访问分别为
P4(k)=(2k,2k+1,N-2(k+1),N-2(k+1)+1);             [A4b]
PT 4(k)=(T(2k),T(2k+1),T(N-2(k+1)),T(N-2(k+1)+1));[B4b]
其中,k=0,1,2,...,N/2-1。镜像的双重四元组访问方案对于这样的turbo解码器可以是有用的,该解码器将四个总线0和1连接至前向单元,将另外的四个总线2和3连接到后向单元;参见图5和图6。这种turbo解码器能够针对每个数据访问解码四个格状列。
图5示出了在二次置换多项式交织器由公式T(k)=a*k2+b*k(modulo N)给出时,换言之,c=0时,存储器布置和用于双重四元组访问的路由网络的半蝶形网络32。控制位X0和X1是依赖于时间的。分别从总线0和1的地址次最低有效位推导出X0和X1的值。
一旦c≠0,两个桶式移位器用于在半蝶形网络和四个子存储器之间路由数据。在这种情况下,桶式移位器仅是交叉开关,并且这一网络可以与图1的网络相同。图6描绘了具有两个桶式移位器33,34的四元组半蝶形网络。两个桶式移位器的控制位b0针对交织顺序访问是常数c的最低有效位c0,而针对线性顺序访问是0。
使用就像在n=2的情况中那样的二阶差值来生成总线0,1,2和3的地址,只不过现在存在四个地址生成器。单独将二阶项D2存储为公共项,因为四个地址生成器的二阶项相同。例如,在将等式[A4a]的并行访问规则用于数据访问时,将四个地址单元重置如下。总线0,1,2,3的地址生成器的重置值分别为(A00,A10)=(0/2,(4-0)/2)=(0,2),(A01,A11)=(1/2,(5-1)/2)=(0,2),(A02,A12)=(2/2,(6-2)/2)=(1,2),和(A03,A13)=(3,(7-3)/2)=(1,2),其中公共项为CT=0。换言之,通过将对应的逻辑地址除以2得到重置值。每个总线j的物理地址是A0j/2,而控制位X0是A00 modulo 2,并且控制位X1是A01 modulo 2。针对线性顺序访问,控制位b0=0。A0j的下一值通过以下递归式计算出:
A0j=A0j+A1j(modulo N);
A1j=A1j+CT(modulo N),并且CT为常数。
在等式[B4a]的并行访问规则的情况下,四个地址生成器的重置值由(A00,A10)=(T(0)/2,(T(4)-T(0))/2),(A01,A11)=(T(1)/2,(T(5)-T(1))/2),(A02,A12)=(T(2)/2,(T(6)-T(2))/2),和(A03,A13)=(T(3)/2,(T(7)-T(3))/2)设置,其中公共项CT=(T(8)-2*T(4)+T(0))/2。即CT=32*a/2=16*a modulo N。针对交织顺序访问,控制位b0=c0,即,二次置换多项式的较低阶项的最低有效位。在两种情况下,以相同的方式向将四个地址生成器应用至四个子存储器的存储器组。
由[A4b]和[B4b]给出的双重并行访问机制可以与等式[A4a]和[B4a]进行类似处理。针对等式[A4b]的四元组并行访问规则的四个地址生成器可以重置如下:(A00,A10)=(0/2,(2-0)/2)=(0,1),(A01,A11)=(1/2,(3-1)/2)=(0,1),(A02,A12)=((N-2)/2,(N-4-N+2)/2)=(N/2-1,-1),和(A03,A13)=((N-1)/2,(N-3-N-1)/2)=(N/2-1,-1),其中公共项CT=0。针对等式[A4b]生成控制位b0=0。在等式[B4b]的四元组访问规则的示例情况下,针对四个地址生成器的重置值由以下公式给出:(A00,A10)=(T(0)/2,(T(2)-T(0))/2),(A01,A11)=(T(1)/2,(T(3)-T(1))/2),(A02,A12)=(T(N-2)/2,(T(N-4)-T(N-2))/2),和(A03,A13)=(T(N-1)/2,(T(N-3)-T(N-1))/2),其中公共项CT=(T(4)-2*T(2)+T(0))/2=16*a/2=8*a modulo N。四个地址生成器用于生成四元组路由网络的物理地址和控制位,如在等式[A4a]和[B4a]中那样。控制位b0=c0,即,二次置换多项式的较低阶项的最低有效位。
如果二次置换多项式具有c=0,则至少可以使用图5的半蝶形网络32。如果c≠0,则至少可以应用图6中具有两个桶式移位器33,34的半蝶形网络,以用于在turbo解码器和四个子存储器的存储器组之间路由数据。在n=4的情况下,具有两个桶式移位器的至少半蝶形网络可以与图1的蝶形网络相同。针对线性顺序访问,两个桶式移位器的控制位b0为0,而针对交织访问顺序,其值是二次置换多项式的较低阶项的最低有效位。
以下为重置用于四元组线性访问方案P4(k)=(a0(k),a1(k),a2(k),a3(k))的地址生成器的示例。对于j=0,1,2和3,指派
A0j=aj(0)div 2;
A1j=(aj(1)-aj(0))div 2 modulo N;
CT=(a0(2)-2*a0(0)-a0(0))div 2 modulo N。
如果存在的话,控制位b0被设置为0。针对四元组交织访问方案pT 4(k)=(T(a0(k)),T(a1(k)),T(a2(k)),T(a3(k)))的相同公式为
A0j=T(aj(0))div 2;
A1j=(T(aj(1))-T(aj(0)))div 2 modulo N;
CT=(T(a0(2))-2*T(a0(0))-T(a0(0)))div 2 modulo N,其中j=0,1,2和3。
控制位b0被设置为(c modulo 2)。分量函数所进行的索引是否也从N/4-1开始向下进行并且继而三个值为N/4-1,N/4-2和N/4-3可以取决于所选择的并行方法。将四个地址生成器的重置值除以2,以保留一位来控制图4、图5和图6中的交叉开关X0和X1
简言之,二阶差值提供了为路由网络的四个数据总线生成物理地址以及为交叉开关31、33、34生成(依赖于时间的)控制位的可行方法。相同的四个地址生成器单元可以以统一方式用于线性访问和交织访问。四个地址生成器单元的初始值取决于四元组并行访问规则(线性或交织)、帧长度(图3)和二次置换多项式。地址单元的二阶项是相等的,并且存在一个公共项,其用作用以计算四个总线的下一物理地址的二阶项。
接下来描述本发明的某些示例性实施方式,其实施方式也针对八元组存储器访问进行考虑。但是,尽管Multiple Access Decoder参考根据线性顺序和交织顺序中的规则、在不存在存储器访问冲突的情况下进行访问,但本发明的实施方式根据线性顺序(具体地,升序)和二次多项式顺序(具体地,以二次多项式置换顺序)中的规则、在不存在存储器访问冲突的情况下进行访问。
使用二次置换多项式的双重八元组并行访问机制也来源于这样的事实:即,如果aj(k)≠ai(k)modulo 8,j≠i,则T(aj(k))≠T(ai(k))modulo 8。不需要求解多路访问函数,其可以从n=8的公式[1]得出:具有地址k的数据值在子存储器(k modulo 8)中位于子存储器地址(k div 8)处。存储器(mem0,mem1,mem2等)可以形成存储器空间的配对,使得如果两个存储器的索引i和j满足i=j modulo 4,则两个存储器空间是一对。如果ap(k)=aq(k)=j modulo 4,那么八个总线(在图7、8和9的左侧)上的八个逻辑地址中的两个逻辑地址ap(k)和aq(k)可以使用公共交叉Xj(例如,X0,X1,X2,或X3)。用ap(k)和ap+4(k)来表示交叉Xp所控制的两个地址ap(k)和aq(k)。所以,交叉Xp控制的地址满足ap(k)=ap+4(k)=p modulo 4,其中p=0,1,2和3。换言之,八个分量函数aj(k),j=0,1,2,...,7满足
aj(k)=aj+4(k)=j  modulo 4,其中j=0,1,2和3;
ai(k)≠aj(k)  modulo 8,其中i≠j,i和j=0,1,2,...7。
因此,与共享交叉开关的两个地址相匹配的两个存储器是一对。图7、图8和图9中的控制位X4针对八元组线性访问等于0。而且,图8中的两个控制位b1b0结合八元组线性访问时等于0。
交织八元组(T(a0(k)),T(a1(k)),T(a2(k)),T(a3(k)),T(a4(k)),T(a5(k)),T(a6(k)),T(a7(k)))通过交织分量函数T(aj(k))的索引j与总线0、1、2、3、4、6和7相关联。由于二次置换多项式交织器的特殊特性,八个交织分量函数T(aj(k)),j=0,1,2,...7满足
T(ai(k))=T(ai+4(k))modulo 4,其中i=0,1,2和3;
T(ai(k))≠T(aj(k))modulo 8,其中i≠j,以及i和j=0,1,2,...,7。
一旦利用了交织的八元组访问,图7、图8中的控制位X4和图9中的0以及b1b0依赖于二次置换多项式T(k)=a*k2+b*k+c(modulo N),其中k=0,1,2,...,N-1:系数a和b影响X4,系数c影响b1b0。控制位X4不是依赖于时间的,但是对于交织顺序访问其值等于sum(a+b)module N的次最低有效位。图7示出了与图8中c=0的二次置换交织器对应的特定情况。将图7的路由网络称为用于八元组的半蝶形网络。图8中的路由网络是利用两个桶式移位器37和38扩展的半蝶形网络。
具有线性八元组访问P8和交织八元组访问PT 8的镜像双重八元组并行访问机制由下式定义:
P8(k)=(4k,4k+1,4k+2,4k+3,N-4(k+1),N-4(k+1)+1,N-4(k+1)+2,N-4(k+1)+3);[A8]
PT 8(k)=(T(4k),T(4k+1),T(4k+2),T(4k+3),T(N-4(k+1)),T(N-4(k+1)+1),
        T(N-4(k+1)+2),T(N-4(k+1)+3));                                      [A8]
其中,索引k=0,1,2,1...,N/4-1,以及N是作为8的倍数的turbo交织器的长度。实际上,现在aj(k)=j modulo 8,其中j=0、1、2、3、4、5、6和7。因此,镜像双重八元组并行访问方案针对线性访问和交织访问二者而言是无竞争的。镜像的双重八元组访问机制对于这样的turbo解码器而言是有用的,该解码器将从0到3的四个总线连接至前向单元,而将从4到7的其他四个总线连接至后向单元,如图9所示。这种turbo解码器能够解码每个数据访问的八个格状列:如图3中的四个前向和八个后向。
一旦二次置换多项式的较低阶项为0,即,c=0,则可以使用半蝶形网络以在turbo解码器和八个子存储器的存储器组之间对数据进行路由。图7示出了八元组半蝶形网络35和八个子存储器36。
而在二次置换多项式的较低阶项不等于0,即,c≠0的情况下,四个总线的两个桶式移位器37、38位于半蝶形网络35和八个子存储器36之间,以负责实现路由网络。图8示出了包括八元组半蝶形网络35和两个桶式移位器37、38的路由网络。两个桶式移位器由共享信号控制,该共享信号对于交织顺序访问是二次置换多项式的较低阶项的两个最低有效位。四个数据总线的桶式移位器能够针对数据总线做四次循环移位:(A,B,C,D)、(D,A,B,C)、(C,D,A,B)和(B,C,D,A),其分别与控制位(00)、(01)、(10)和(11)匹配。
八元组进行的数据访问需要八个地址生成器单元,每一个针对每个数据总线。二阶差值提供了实现地址生成器单元的良好实现方法。地址生成器单元的二阶差值根据应用的并行访问规则重置,其或者是线性八元组访问规则P8或者是交织八元组访问规则PT 8。针对等式[A8]中定义的线性访问规则,按如下重置八个地址生成器单元。
(A0j,A1j)=(j/4,(4+j-j)/4)=(0,1),其中j=0,1,2和3。
其他为:
(A04,A14)=((N-4)/4,(N-8-(N-4))/4)=(N/4-1,-1);
(A05,A15)=((N-3)/4,(N-7-(N-3))/4)=(N/4-1,-1);
(A06,A16)=((N-2)/4,(N-6-(N-2))/4)=(N/4-1,-1),以及
(A07,A17)=((N-1)/4,(N-5-(N-1))/4)=(N/4-1,-1)
八个地址生成器单元针对二阶项具有公共值:CT=8-2*4+0=0。
等式[B8]中的交织访问规则PT 8具有另一种八个地址生成器单元重置:
(A00,A10)=(T(0)/4,(T(4)-T(0))/4);
(A01,A11)=(T(1)/4,(T(5)-T(1))/4);
(A02,A12)=(T(2)/4,(T(6)-T(2))/4);
(A03,A13)=(T(3)/4,(T(7)-T(3))/4);
(A04,A14)=(T(N-4)/4,(T(N-8)-T(N-4))/4);
(A05,A15)=(T(N-3)/4,(T(N-7)-T(N-3)))/4);
(A06,A16)=(T(N-2)/4,(T(N-6)-T(N-2))/4);
(A07,A17)=(T(N-1)/4,(T(N-5)-T(N-1))/4);
公共项的重置值为CT=(T(8)-2*T(4)+T(0))/4=32*a/4=8*a(modulo N)。由于通信系统实际上具有有限数量的不同二次置换多项式要支持,所以可以预先计算需要的重置值,这些重置值作为数组存储在本地存储器中。继而,重置步骤变得非常快速和容易。
八个地址生成器单元的使用独立于重置:每个数据总线的物理地址是(A0j/2),其中j=0,1,2,3,4,5,6和7。八元组半蝶形网络的四个控制位X0,X1,X2,和X3是通过从四个地址单元A00,A01,A02,和A03中取得最低有效位而从其中导出的:Xj,=A0j modulo 2,其中j=0,1,2和3。A0j的下一值是通过以下递归计算出的:
A0j=A0j+A1j(modulo N);
A1j=A1j+CT(modulo N)并且CT是常数。
一旦使用了线性顺序访问,则控制位X4=0,以及两个桶式移位器的两个控制位为0:b0b1=00。在交织顺序访问中,X4是sum(a+b)modulo N的次最低有效位,并且两个桶式移位器的两个控制位等于二次置换多项式的较低阶项的两个最低有效位:b0b1=c0c1
在八元组存储器访问的情况下,数据值位于子存储器36中,使得具有逻辑地址k的数据值在子存储器(k modulo 8)中位于地址(k div 8)处。以下的表2示出了数据值如何位于八个子存储器的存储器组中。表1中的每个存储器单元保有存储器单元36的逻辑地址。例如,子存储器7中的数字23描述了具有逻辑地址23的数据值在子存储器7中位于地址2处。
Figure BPA00001284507600221
表2
图3示出了访问方法。在其中示出的线性顺序中,访问在前向方向和后向方向二者中朝着数据帧的中点进行,其中在上述N为8的倍数情况下,该前向方向在顺序等式[A8]中表示为前四个条目,该后向方向在顺序等式[A8]中表示为后四个条目。
最后,重置用于八元组线性访问方案P8(k)=(a0(k),a1(k),a2(k),a3(k),a4(k),a5(k),a6(k),a7(k))的地址生成器的通用原理如下。对于j=0,1,2,3,4,5,6和7,指派
A0j=aj(0)div 4;
A1j=(aj(1)-aj(0))div 4 modulo N;
CT=(a0(2)-2*a0(0)-a0(0))div 4 modulo N。
控制位X4和b1b0设置为0。对于八元组交织访问机制PT 8(k)=(T(a0(k)),T(a1(k)),T(a2(k)),T(a3(k)),T(a4(k)),T(a5(k)),T(a6(k)),T(a7(k)))的相同公式为:
A0j=T(aj(0))div 4;
A1j=(T(aj(1))-T(aj(0)))div 4 modulo N;
CT=(T(a0(2))-2*T(a0(0))-T(a0(0)))div 4 modulo N,其中j=0,1,2,3,4,5,6和7。
控制位X4等于从(T(1)modulo 4)div 2获得的一位。控制位b1b0被设置为(c modulo 4)。对分量函数进行的索引是否也从N/8-1开始向下进行并且继而三个值为N/8-1,N/8-2和N/8-3取决于所选择的并行方法。八个地址生成器的重置值除以4,以保留用于控制图7、图8和图9中的交叉开关X0,X1,X2,和X3的一位。
在Multiple Access Decoder参考的交织顺序上简化二次顺序的一个原因在于二次多项式置换的特定特性。所以,本发明的实施方式对于turbo码而言是有用的,其向turbo交织应用了二次多项式置换,并且3GPP TS 36.212(在背景技术中提到的)描绘了这种turbo帧。
本发明的实施方式向turbo解码器提供了用于利用更加内部的并行处理的装置。
根据本发明第一实施方式的是一种方法,其用于生成并行地址的八元组,以便以线性顺序或二次多项式置换顺序来访问八个外部存储器,而在被访问的存储器空间中完全不存在任何访问冲突。考虑如上述针对turbo帧存在八个并行地址的情况。此实施方式应用根据二次多项式置换的值重置的二阶差值,以便得到那些访问的地址,本发明人发现这些二阶差值产生了用于生成地址的简单递归。
二阶差值可以根据以下过程针对D0、D1和D2进行更新(利用软件编程语言),其中D2是某个公共项:
Figure BPA00001284507600231
根据本发明另一方面的是一种方法,其用于通过半蝶形网络和可选的两个桶式移位器来在八个并行外部存储器(存储器空间,每个存储器空间具有唯一地址)之间路由数据。半蝶形网络的四个控制位等于所生成地址的最低有效位。剩余的控制位取决于应用的并行访问规则(线性或交织)和使用的二次置换多项式。
如果
(Add0 mod 4)=(Add1 mod 4)并且
Add0≠Add1 modulo 8,
那么地址和存储器的配对产生了无竞争访问。
降序访问符合这一要求,因为Add0=4k+j并且Add1=N-4(k+1)+j,其中N是8的倍数。对于二次多项式T(x)=a*x2+b*x+c也是如此,因为系数b是奇数。继而,Add0=T(4k+j)和Add1=T(N-4(k+1)+j))形成无论是利用线性顺序访问还是用二次多项式顺序访问都不存在竞争的存储器地址配对。
本发明的示例性实施方式可以实现在专用集成电路ASIC中,并且看来当实现在尤其是E-UTRAN系统中的调制解调器(调制器/解调器)中时尤其有用,因为,如上所述,调制解调器期望高数据速率。地址生成器的差值初始化可以利用软件实现。在图7-图9中可见的半蝶形网络的四个控制位利用地址随需生成。第五控制位对于给定的二次多项式是常数。
图9示出了半蝶形网络中交叉的另一布置,其中不具有桶式移位器。图9的设备包括存储器组40,其具有多个存储器42。前向单元44是节点的布置,其中向这些节点应用逻辑存储器地址以通过前向线性顺序(例如,假设不存在切换,而是水平线通过X4的两个开关)或前向交织顺序来一个元组接着一个元组地访问存储器组40。后向单元46通过后向线性顺序或后向交织顺序来一个元组接着一个元组地向存储器组40应用其节点处的逻辑存储器地址。从图9可见,半蝶形网络48是切换阵列,其置于存储器组40与前向单元44和后向单元46之间,以针对线性顺序访问和二次多项式访问实现数据值的切换。
存在处理器(例如,图2中的数字处理器),其生成控制信号集合并向蝶形网络48应用生成的控制信号集合,以便利用针对前向单元44和后向单元46处的任何八个逻辑地址的、以线性顺序或二次多项式顺序的八元组并行性来访问存储器组,而不存在存储器访问冲突。这些控制信号被应用至开关X0、X1、X2和X4,在ASIC实施方式中,其可以是简单的晶体管。而且存在解码器,其配置用于使用利用八元组并行性从存储器组40提取的值对接收的数据进行解码。
图10示出了用于实现本发明方面的方法步骤。在框50处,提供了一种具有多个存储器的存储器组、配置用于以前向双重访问顺序向该存储器组应用逻辑存储器地址的前向单元、配置用于以后向双重访问顺序向该存储器组应用逻辑存储器地址的后向单元,以及位于该存储器组与前向单元和后向单元之间的蝶形网络和桶式移位器。在框52处,生成控制信号的集合,并向半蝶形网络应用该控制信号的集合,以便利用针对任何八个逻辑地址的、以线性顺序或二次多项式顺序中选择的一个顺序的八元组并行性来访问该存储器组,而不存在存储器访问冲突。
如果帧长度是16的倍数,那么可以将turbo解码器的内部并行处理度从8提高到16。E-UTRAN文档36.212确定turbo帧的188个不同长度。所有188个turbo帧长度是8的倍数,并且二次置换多项式交织器由T(k)=a*k2+b*k(modulo N)定义,其中k=0,1,2,...,N-1,常数项为0。然而,其中的129个也是16的倍数。继而,可以将Multiple Access Decoder参考中给出的一般性方法与本发明的多路访问函数结合起来使用。
现在参考图11,其示出了适于在实现本发明示例性实施方式中使用的各种电子设备的简化框图。在图11中,无线网络61适于节点B(e节点B)62与UE 60通信。网络61可以包括网关GW/服务移动性实体MME/无线电网络控制器RNC 64或其他无线电控制器功能,其在不同无线通信系统中以各种术语而公知。UE 60包括数据处理器(DP)60A、存储程序(PROG)60C的存储器(MEM)60B、以及合适的射频(RF)收发器60D,其耦合至一个或多个天线60E(示出了一个),用于经由一个或多个无线链路70与节点B 62进行双向无线通信。
术语“连接”、“耦合”或其任何变体意味着两个或更多元件之间直接或间接的任何连接或耦合,并且可以涵盖在“连接”或“耦合”在一起的两个元件之间存在一个或多个中间元件的情况。元件之间的耦合或连接可以是物理的、逻辑的或其组合。如此处使用的,两个元件可以视为通过使用一个或多个导线、线缆或印刷电气连接,以及通过使用具有射频区域、微波区域和光(可见和不可见)区域中波长的电磁能量之类的电磁能量“连接”或“耦合”在一起,这些是非限制性示例。
节点B 62也包括DP 62A、存储PROG 62C的MEM 62B以及合适的RF收发器62D,其耦合至一个或多个天线62E。节点B 62可以经由数据通路80(例如,Iub或S1接口)耦合至服务或其他GW/MME/RNC 64。GW/MME/RNC 64包括DP 64A、存储PROG 64C的MEM 64B以及合适的调制解调器和/或收发器(未示出),用于通过Iub链路80与节点B 62通信。
在节点B 62中单独示出的是ASIC 12F(当然,其同样可以出现在UE 60和/或GW 64中),其具有以上详述的蝶形网络、前向单元和反向单元以及存储器空间。在ASIC 12F中的是微处理器,其用于控制处理器上的功能,以及存储器,其上存储有用于实现本发明方面的软件。尽管为了便于说明而单独示出,但是ASIC可以进一步实现调制解调器(其是收发器60D、62D的一部分,并且也存在于GW 64中),使得该调制解调器中的turbo解码器根据这些教导在全功能集成电路芯片中进行解码。
假设PROG 60C、62C和64C中的至少一个包括程序指令,当相关联的DP执行程序指令时,该程序指令使得电子设备能够根据本发明的示例性实施方式进行操作,如上详述。DP 60A、62A和64A以及ASIC 62F中固有的是时钟,用于支持在八元组并行处理与ASIC芯片片下操作之间的同步性。
PROG 60C、62C、64C可以在适当的情况下利用软件、固件和/或硬件实现。通常本发明的示例性实施方式可以利用存储在UE 60的MEM 60B中并可由DP 60A执行的计算机软件实现,或者类似地利用存储在节点B 62的其他MEM 62B中并可由DP 62A执行的计算机软件实现,或者由硬件实现,或者由所示设备的任一或全部中的软件和/或固件和硬件的组合实现。
通常,UE 60的各种实施方式可以包括但不限于移动台、蜂窝电话、具有无线通信功能的个人数字助理(PDA)、具有无线通信功能的便携式计算机、具有无线通信功能的图像捕获设备(诸如数字照相机)、具有无线通信功能的游戏设备、具有无线通信功能的音乐存储和回放设备、允许无线因特网访问和浏览的因特网设备、以及合并此类功能组合的便携式单元或终端。
MEM 60B、62B和64B可以是适合本地技术环境的任何类型,并且可以使用任何合适的数据存储技术实现,诸如基于半导体的存储器设备、磁性存储器设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。DP 60A、62A和64A可以是适合本地技术环境的任何类型,作为非限制性示例,其可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个。存储器组可以置于ASIC 12F的存储器中、主存储器62B中,或者集合在一起或分散布置在个体设备60、62、64内的任何存储器中。
本发明的实施方式可以由节点B 62的数据处理器(诸如所示出的处理器62A)可执行的计算机软件、硬件或硬件和软件的组合实现。类似地,本发明的实施方式可以利用UE 60的数据处理器(诸如所示处理器60A)可执行的计算机软件、硬件或硬件和软件的组合实现。此外,就这一点,应当注意,以上诸如针对图10描述的各种逻辑步骤描述可以代表程序步骤或互连的逻辑电路、框和功能,或程序步骤和逻辑电路、框和功能的组合。
通常,各种实施方式可以以硬件或专用电路、软件(具体化在计算机可读介质上的计算机可读指令)、逻辑或其任何组合来实现。例如,某些方面可以以硬件实现,而其他方面可以以固件或可由控制器、微处理器或其他计算设备执行的软件来实现,但本发明不限于此。虽然本发明的示例性实施方式的各种方面可以示出和描述为框图、流程图或通过使用一些其他图示表示,但是应该理解,此处描述的这些框、设备、系统、技术或方法可以通过作为非限制性示例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某些组合来实现。
本发明的示例性实施方式可以以各种组件实施,诸如集成电路模块。集成电路的设计很大程度上是高度自动的过程。复杂和强大的软件工具可用于将逻辑级设计转换为准备在半导体衬底上蚀刻和形成的半导体电路设计。
诸如加利福尼亚州、Mountain View市的Synopsys Inc.和加利福尼亚州、San Jose市的Cadence Design公司所提供程序之类的程序使用已建立的良好设计规则和预先存储的设计模块库来自动规划导体并将组件定位在半导体芯片上。一旦完成了对半导体电路的设计,则作为结果的标准电子格式设计(例如,Opus、GDSII等)可以传送到半导体制造设备或者用于制造的“加工”。
在结合附图进行阅读时,各种修改和调整对于借鉴了前述描述的相关领域技术人员而言会变得明显。然而,本发明教导的任何和所有修改仍落入本发明非限制性实施方式的范围内。
尽管在特定实施方式的上下文中进行了描述,但是对于本领域技术人员而言显然的是,可以对这些教导做出许多修改和各种改变。由此,尽管已经特别示出了本发明并针对其一个或多个实施方式进行了描述,但是本领域技术人员应当理解,在不脱离以上给出的本发明范围或者所附权利要求的范围的前提下,可以在此做出某些修改或改变。

Claims (33)

1.一种方法,包括:
提供包括多个存储器的存储器组、配置用于以前向双重访问顺序向所述存储器组应用逻辑存储器地址的前向单元、配置用于以后向双重访问顺序向所述存储器组应用逻辑存储器地址的后向单元,以及位于所述存储器组与所述前向单元和后向单元之间的至少半蝶形网络;以及
生成控制信号的集合,并向所述至少半蝶形网络应用生成的控制信号的集合,以便利用针对逻辑地址的任何n元组的、以线性顺序或二次多项式顺序中选择的一个顺序的n元组并行性来访问所述存储器组,而不存在存储器访问冲突,其中n是2的非零整数次幂。
2.如权利要求1的方法,其中桶式移位器与所述至少半蝶形网络一起置于所述存储器组与所述前向单元和后向单元之间;所述方法包括:生成所述控制信号的集合,并向所述至少半蝶形网络和所述桶式移位器应用所述生成的控制信号的集合,以利用所述n元组并行性访问所述存储器组。
3.如权利要求2的方法,其中生成用于所述至少半蝶形网络和所述桶式移位器的控制信号的集合以便访问所述存储器组包括:应用二阶差值以生成针对所述存储器组的所述n元组并行性访问的所述存储器物理地址。
4.如权利要求1的方法,进一步包括:将所述逻辑地址配对,使得如果Add0=Add1 modulo(n/2),则两个逻辑地址Add0和Add1成对。
5.如权利要求4的方法,其中每个配对的逻辑地址包括在所述前向单元处的第一逻辑地址,和在所述后向单元处的第二逻辑地址。
6.如权利要求4的方法,其中应用所述生成的控制信号集合包括将所述配对的逻辑地址的每一个路由通过所述至少半蝶形网络的开关,使得所述开关的每一个仅将所述逻辑地址的一个配对路由通过。
7.如权利要求1的方法,进一步包括:将所述逻辑地址配对,使得共享所述至少半蝶形网络的交叉开关的任何两个存储器是一对存储器。
8.如权利要求1的方法,用于控制在turbo解码器进行数据解码期间的存储器访问,其中至少四个总线将所述turbo解码器耦合至所述前向单元,至少四个总线将所述turbo解码器耦合至所述后向单元,以便针对所述存储器组的每个数据访问解码至少四个格状列。
9.如权利要求1的方法,其中所述控制信号的集合包括所述存储器组的存储器的地址的最低有效位。
10.如权利要求9的方法,其中所述控制信号的集合的一部分是从二次多项式的系数生成的。
11.如权利要求1的方法,其中:
所述前向单元配置用于以所述线性访问顺序4k、4k+1、4k+2、4k+3来访问所述存储器;
所述后向单元配置用于以所述线性访问顺序N-4(k+1)、N-4(k+1)+1、N-4(k+1)+2、N-4(k+1)+3来访问所述存储器;
以及所述至少半蝶形网络配置用于以八元组线性访问顺序4k、4k+1、4k+2、4k+3、N-4(k+1)、N-4(k+1)+1、N-4(k+1)+2、N-4(k+1)+3来访问所述存储器;
其中k是整数索引k=0,1,2,1...,N/4-1,以及N是turbo交织器的长度,并且等于8的整数倍。
12.如权利要求1的方法,其中:
所述前向单元配置用于以交织访问顺序T(4k)、T(4k+1)、T(4k+2)、T(4k+3)来访问所述存储器;
所述后向单元配置用于以交织访问顺序T(N-4(k+1))、T(N-4(k+1)+1)、T(N-4(k+1)+2)、T(N-4(k+1)+3)来访问所述存储器;
以及所述至少半蝶形网络配置用于以八元组交织访问顺序T(4k)、T(4k+1)、T(4k+2)、T(4k+3)、T(N-4(k+1))、T(N-4(k+1)+1)、T(N-4(k+1)+2)、T(N-4(k+1)+3)来访问所述存储器;
其中k是整数索引k=0,1,2,1...,N/4-1,以及N是turbo交织器的长度,并且等于8的整数倍。
13.如权利要求1的方法,其中生成用于所述至少半蝶形网络的控制信号的集合以便访问所述存储器组包括:应用二阶差值以生成针对所述存储器组的所述n元组并行性访问的所述存储器的物理地址。
14.如权利要求13的方法,其中:
所述二阶差值是D0、D1和D2,并且根据给定值gk、gk+1和gk+2按如下进行计算:
D0=gk
D1=gk+1-gk;以及
D2=(gk+2-gk+1)-D1
项LENGTH是交织器的长度;以及
通过将D1与D0相加来更新D0,并且当LENGTH≤D0+D1时,通过从D0减去LENGTH来进一步更新D0;以及
通过将D2与D 1相加来更新D1,并且当LENGTH≤D1+D2时,通过从D1减去LENGTH来进一步更新D1。
15.如权利要求13的方法,其中所述二阶差值的一个项针对物理地址生成器的n元组是公共的。
16.一种装置,包括:
存储器组,包括多个存储器;
前向单元,配置用于以前向双重访问顺序向所述存储器组应用逻辑存储器地址;
后向单元,配置用于以后向双重访问顺序向所述存储器组应用逻辑存储器地址;
至少半蝶形网络,其位于所述存储器组与所述前向单元和后向单元之间;以及
处理器,配置用于生成控制信号的集合,并向所述至少半蝶形网络应用所述生成的控制信号的集合,以便利用针对逻辑地址的任何n元组的、以线性顺序或二次多项式顺序中选择的一个顺序的n元组并行性来访问所述存储器组,而不存在存储器访问冲突,其中n是2的非零整数次幂;以及
解码器,配置用于使用利用所述n元组并行性从所述存储器组提取的值来对接收的数据进行解码。
17.如权利要求16的装置,其中对于n是8的非零整数倍的情况,所述装置进一步包括桶式移位器,其与所述至少半蝶形网络一起置于所述存储器组与所述前向单元和后向单元之间;所述处理器进一步配置用于:生成所述控制信号的集合,并向所述至少半蝶形网络和所述桶式移位器应用所述生成的控制信号的集合,以利用n元组并行性访问所述存储器组。
18.如权利要求17的装置,其中所述处理器配置用于通过应用二阶差值以及根据二次多项式置换的值重置所述二阶差值以生成针对所述存储器组的所述n元组并行性访问的所述存储器的物理地址,从而用于生成用于所述至少半蝶形网络和所述桶式移位器的控制信号的集合以便访问所述存储器组。
19.如权利要求16的装置,其中所述处理器配置用于通过将所述逻辑地址配对,使得如果Add0=Add1 modulo(n/2),则任何两个逻辑地址Add0和Add1配对,从而用于生成用于所述至少半蝶形网络的控制信号的集合。
20.如权利要求19的装置,其中每个配对的逻辑地址包括在所述前向单元处的第一逻辑地址,和在所述后向单元处的第二逻辑地址。
21.如权利要求19的装置,其中所述生成的控制信号集合将所述配对的逻辑地址的每一个路由通过所述至少半蝶形网络的开关,使得所述开关的每一个仅将所述逻辑地址的一个配对路由通过。
22.如权利要求16的装置,其中所述处理器配置用于将所述逻辑地址配对,使得共享所述至少半蝶形网络的交叉开关的任何两个存储器是一对存储器。
23.如权利要求16的装置,进一步包括turbo解码器,其经由至少四个总线耦合至所述前向单元,经由至少四个总线耦合至所述后向单元,并且布置用于针对所述存储器组的每个数据访问解码至少四个格状列。
24.如权利要求16的装置,其中所述控制信号的集合包括所述存储器组的存储器的物理地址的最低有效位。
25.如权利要求24的装置,其中所述处理器配置用于从二次多项式的系数生成控制位的集合。
26.如权利要求16的装置,其中:
所述前向单元配置用于以顺序4k、4k+1、4k+2、4k+3来访问所述存储器;
所述后向单元配置用于以顺序N-4(k+1)、N-4(k+1)+1、N-4(k+1)+2、N-4(k+1)+3来访问所述存储器;
以及所述至少半蝶形网络配置用于以顺序T(4k)、T(4k+1)、T(4k+2)、T(4k+3)、T(N-4(k+1))、T(N-4(k+1)+1)、T(N-4(k+1)+2)、T(N-4(k+1)+3)来访问所述存储器;
其中k是整数索引k=0,1,2,1...,N/4-1,以及N是turbo交织器的长度,并且等于为8的非零整数倍的n。
27.如权利要求16的装置,其中:
所述前向单元配置用于以交织访问顺序T(4k)、T(4k+1)、T(4k+2)、T(4k+3)来访问所述存储器;
所述后向单元配置用于以交织访问顺序T(N-4(k+1))、T(N-4(k+1)+1)、T(N-4(k+1)+2)、T(N-4(k+1)+3)来访问所述存储器;
以及所述至少半蝶形网络配置用于以八元组交织访问顺序T(4k)、T(4k+1)、T(4k+2)、T(4k+3)、T(N-4(k+1))、T(N-4(k+1)+1)、T(N-4(k+1)+2)、T(N-4(k+1)+3)来访问所述存储器;
其中k是整数索引k=0,1,2,1...,N/4-1,以及N是turbo交织器的长度,并且等于为8的非零整数倍的n。
28.如权利要求16的装置,其中所述处理器配置用于通过应用二阶差值而生成所述控制信号的集合,以及根据二次多项式置换的值重置所述二阶差值以生成针对所述存储器组的所述n元组并行性访问的所述存储器的物理地址。
29.如权利要求28的装置,其中:
所述处理器配置用于根据给定值gk、gk+1和gk+2按如下计算所述二阶差值:
D0=gk
D1=gk+1-gk;以及
D2=(gk+2-gk+1)-D1;
项LENGTH是交织器的长度;以及
所述处理器配置用于通过将D1与D0相加来更新D0,并且当LENGTH≤D0+D1时,通过从D0减去LENGTH来进一步更新D0;以及
通过将D2与D1相加来更新D1,并且当LENGTH≤D1+D2时,通过从D1减去LENGTH来进一步更新D1。
30.如权利要求28的装置,其中所述二阶差值的一个项对于针对n的物理地址生成器的n元组是公共的。
31.一种机器可读指令的程序,具体化在有形存储器上并可由数字数据处理器执行,以实施针对控制存储器访问的动作,所述动作包括:
生成控制信号的集合,并向至少半蝶形网络应用所述生成的控制信号的集合,以便利用针对逻辑地址的任何n元组的、以线性顺序和二次多项式顺序中选择的一个顺序的n元组并行性来访问所述存储器组,而不存在存储器访问冲突,其中n是2的非零整数次幂,所述至少半蝶形网络置于包括多个存储器的存储器组与逻辑存储器地址端口组之间;以及
使用利用所述n元组并行性从所述存储器组提取的值来对接收的数据进行解码。
32.一种装置,包括:
存储装置,包括外部存储位置;
逻辑地址装置,用于以前向双重访问顺序和后向双重访问速率来向所述存储器组应用逻辑存储器地址;
至少切换装置,位于所述存储装置和所述逻辑地址装置之间,用于选择性地将个体逻辑地址节点耦合到个体外部存储位置;
计算装置,用于生成控制信号的集合,并向所述切换装置应用所述生成的控制信号的集合,以便利用针对逻辑地址节点的任何n元组的、以线性顺序和二次多项式顺序中选择的一个顺序的n元组并行性来访问所述存储装置,而不存在外部存储位置冲突,其中n是2的非零整数次幂;以及
使用利用所述n元组并行性从所述存储装置提取的值来对数据进行解码。
33.如权利要求32的装置,其中:
所述存储装置包括被寻址的存储器位置的存储器组;
所述逻辑地址装置,包括与所述存储器组相关联的地址生成器单元;
切换装置,包括至少半蝶形网络,以及对于n是8的非零整数倍的情况,所述切换装置进一步包括桶式移位器;
所述计算装置包括位于专用集成电路上的处理器;以及
所述解码装置包括turbo解码器。
CN200980125661.4A 2008-07-03 2009-07-02 用于存储器的多路访问的地址生成 Expired - Fee Related CN102084346B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/217,333 2008-07-03
US12/217,333 US8090896B2 (en) 2008-07-03 2008-07-03 Address generation for multiple access of memory
PCT/IB2009/006145 WO2010001239A2 (en) 2008-07-03 2009-07-02 Address generation for multiple access of memory

Publications (2)

Publication Number Publication Date
CN102084346A true CN102084346A (zh) 2011-06-01
CN102084346B CN102084346B (zh) 2014-07-02

Family

ID=41465218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980125661.4A Expired - Fee Related CN102084346B (zh) 2008-07-03 2009-07-02 用于存储器的多路访问的地址生成

Country Status (4)

Country Link
US (1) US8090896B2 (zh)
EP (1) EP2313824A4 (zh)
CN (1) CN102084346B (zh)
WO (1) WO2010001239A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399827A (zh) * 2013-07-25 2013-11-20 华为技术有限公司 存储装置、执行访问操作的系统和方法
CN104168032A (zh) * 2014-08-16 2014-11-26 复旦大学 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器
CN105264525A (zh) * 2013-06-04 2016-01-20 马维尔国际贸易有限公司 内部搜索引擎架构
JP2020184095A (ja) * 2019-04-26 2020-11-12 株式会社アクセル 情報処理装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414991B (zh) 2009-04-24 2014-11-05 诺基亚公司 用于解码器的数据重排
TWI381653B (zh) * 2009-09-11 2013-01-01 Ind Tech Res Inst 二階重排多項式交織器位址產生裝置與方法
US8811452B2 (en) * 2009-12-08 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing turbo decoder
US20120030544A1 (en) * 2010-07-27 2012-02-02 Fisher-Jeffes Timothy Perrin Accessing Memory for Data Decoding
TW201209711A (en) * 2010-08-19 2012-03-01 Ind Tech Res Inst Address generation apparatus and method for quadratic permutation polynomial interleaver
JP5692780B2 (ja) * 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
GB2492249B (en) * 2012-06-29 2013-11-06 Renesas Mobile Corp Method, apparatus and computer program for solving control bits of butterfly networks
US20140310503A1 (en) * 2013-04-12 2014-10-16 Texas Instruments Incorporated Memory interleaving on memory channels
US9418041B2 (en) 2014-01-16 2016-08-16 Qualcomm Incorporated Sample process ordering for DFT operations
CN106330481B (zh) * 2015-06-17 2019-11-15 深圳市中兴微电子技术有限公司 一种数据重排方法及装置
US11170294B2 (en) * 2016-01-07 2021-11-09 Intel Corporation Hardware accelerated machine learning
US11120329B2 (en) 2016-05-07 2021-09-14 Intel Corporation Multicast network and memory transfer optimizations for neural network hardware acceleration
US10817802B2 (en) 2016-05-07 2020-10-27 Intel Corporation Apparatus for hardware accelerated machine learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995017787A1 (en) * 1993-12-23 1995-06-29 British Telecommunications Public Limited Company Message routing
CN1347200A (zh) * 2001-07-06 2002-05-01 清华大学 地面数字电视广播系统中的Turbo码纠错编码器
CN101060339A (zh) * 2006-04-20 2007-10-24 北京信威通信技术股份有限公司 一种在SCDMA系统中实现Turbo编译码方案的装置和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081575A (en) * 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
US5938790A (en) * 1997-03-04 1999-08-17 Silicon Systems Research Ltd. Sequence error event detection and correction using fixed block digital sum codes
US6205533B1 (en) * 1999-08-12 2001-03-20 Norman H. Margolus Mechanism for efficient data access and communication in parallel computations on an emulated spatial lattice
US7302621B2 (en) * 2000-01-03 2007-11-27 Icoding Technology, Inc. High spread highly randomized generatable interleavers
US6654927B1 (en) * 2000-01-10 2003-11-25 Lg Electronics Inc. Iterative error-correction for turbo code decoding
US6898254B2 (en) * 2000-01-31 2005-05-24 Texas Instruments Incorporated Turbo decoder stopping criterion improvement
JP2002111512A (ja) * 2000-09-29 2002-04-12 Sony Corp 復号装置及び方法、並びにデータ受信装置及び方法
JP3683497B2 (ja) * 2000-11-30 2005-08-17 松下電器産業株式会社 復号装置および復号方法
KR100713331B1 (ko) * 2000-12-23 2007-05-04 삼성전자주식회사 부호분할다중접속 이동통신시스템의 반복복호 중지 장치 및 방법
US6950977B2 (en) * 2001-03-15 2005-09-27 3G.Com, Inc. Mechanism for turbo decoding when CRC for partial blocks is provided
US7272771B2 (en) * 2003-10-30 2007-09-18 Nokia Corporation Noise and quality detector for use with turbo coded signals
US8051239B2 (en) * 2007-06-04 2011-11-01 Nokia Corporation Multiple access for parallel turbo decoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995017787A1 (en) * 1993-12-23 1995-06-29 British Telecommunications Public Limited Company Message routing
CN1347200A (zh) * 2001-07-06 2002-05-01 清华大学 地面数字电视广播系统中的Turbo码纠错编码器
CN101060339A (zh) * 2006-04-20 2007-10-24 北京信威通信技术股份有限公司 一种在SCDMA系统中实现Turbo编译码方案的装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIGHDIMENSION LTD 等: "A network-oriented inter-block permutation to enhance Rel’6 turbo coding throughput", 《3GPP DRAFT;R1-062153》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105264525A (zh) * 2013-06-04 2016-01-20 马维尔国际贸易有限公司 内部搜索引擎架构
CN103399827A (zh) * 2013-07-25 2013-11-20 华为技术有限公司 存储装置、执行访问操作的系统和方法
CN103399827B (zh) * 2013-07-25 2015-11-25 华为技术有限公司 存储装置、执行访问操作的系统和方法
US9483428B2 (en) 2013-07-25 2016-11-01 Huawei Technologies Co., Ltd. Storage apparatus, and system and method for executing access operations
CN104168032A (zh) * 2014-08-16 2014-11-26 复旦大学 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器
JP2020184095A (ja) * 2019-04-26 2020-11-12 株式会社アクセル 情報処理装置
JP7069455B2 (ja) 2019-04-26 2022-05-18 株式会社アクセル 情報処理装置

Also Published As

Publication number Publication date
EP2313824A4 (en) 2012-06-06
US8090896B2 (en) 2012-01-03
WO2010001239A3 (en) 2010-04-15
CN102084346B (zh) 2014-07-02
WO2010001239A2 (en) 2010-01-07
US20100005221A1 (en) 2010-01-07
EP2313824A2 (en) 2011-04-27

Similar Documents

Publication Publication Date Title
CN102084346B (zh) 用于存储器的多路访问的地址生成
CN109379086B (zh) 低复杂度的码率兼容的5g ldpc编码方法和编码器
CN101682338B (zh) 用于并行涡轮解码器的多址访问
WO2009034517A2 (en) Electronic device, barrel shifter unit and method of barrel shifting
Krainyk et al. Hardware-oriented turbo-product codes decoder architecture
JP2012503927A (ja) 復号化回路及び符号化回路
Pandita et al. Design and implementation of a Viterbi decoder using FPGAs
Ajaz et al. Reduced‐complexity local switch based multi‐mode QC‐LDPC decoder architecture for Gbit wireless communication
CN101114834A (zh) 一种ldpc码的编码器装置及编码方法
Sun et al. FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11 a for OFDM
Thul et al. Enabling high-speed turbo-decoding through concurrent interleaving
Nieminen On quadratic permutation polynomials, turbo codes, and butterfly networks
CN105515588B (zh) 一种ldpc‑cc高速译码器
AU2012237118B2 (en) Apparatus and method for mapping and demapping signals in a communication system using a low density parity check code
CN114629507B (zh) 一种Turbo和LDPC码速率匹配和交织器共享存储设计方法
Huo et al. Design and Implementation of Shared Memory for Turbo and LDPC Code Interleaver
Sharifi Tehrani et al. Tracking forecast memories for stochastic decoding
Zhang et al. High‐Throughput Fast‐SSC Polar Decoder for Wireless Communications
EP4224720A1 (en) Decoding method and apparatus
Yang et al. Network-on-chip for turbo decoders
Fan et al. Two‐dimensional sorting algorithm for high‐throughput K‐best MIMO detection
CN111641417A (zh) 一种基于fpga的完成矩阵列置换交织的装置
Chen et al. A 6.72-Gb/s 8 pJ/bit/iteration IEEE 802.15. 3c LDPC Decoder Chip
US8327033B2 (en) Method and device for interleaving data
CN102136879A (zh) 一种数据解交织方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160113

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140702

Termination date: 20190702