CN101682338A - 用于并行涡轮解码器的多址访问 - Google Patents
用于并行涡轮解码器的多址访问 Download PDFInfo
- Publication number
- CN101682338A CN101682338A CN200880018622A CN200880018622A CN101682338A CN 101682338 A CN101682338 A CN 101682338A CN 200880018622 A CN200880018622 A CN 200880018622A CN 200880018622 A CN200880018622 A CN 200880018622A CN 101682338 A CN101682338 A CN 101682338A
- Authority
- CN
- China
- Prior art keywords
- data
- multiple access
- memory
- parallel processing
- access
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 162
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 82
- 238000012545 processing Methods 0.000 claims description 50
- 230000009471 action Effects 0.000 claims description 5
- 241001269238 Data Species 0.000 claims 3
- 230000006386 memory function Effects 0.000 claims 3
- 238000013461 design Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 239000004065 semiconductor Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003079 width control Methods 0.000 description 2
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 101150060298 add2 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006748 scratching Methods 0.000 description 1
- 230000002393 scratching effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/276—Interleaving address generation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
- H03M13/2775—Contention or collision free turbo code internal interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6525—3GPP LTE including E-UTRA
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/653—3GPP HSDPA, e.g. HS-SCCH or DS-DSCH related
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6544—IEEE 802.16 (WIMAX and broadband wireless access)
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6558—3GPP2
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
存储器组,其包括多个存储器;第一蝶式网络,其配置用于将存储器地址应用于所述存储器组;第二蝶式网络,其配置用于传递去往或者来自所述存储器组的数据。按照多址访问规则为所述第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对所述存储器组进行并行访问。所述方法和装置在涡轮解码中使用特别有益。
Description
技术领域
本发明示例性而非限制性的实施方式总体上涉及无线通信系统、方法、设备和计算机程序产品,并且更具体地,涉及对用于前向纠错的信道码进行解码的技术。
背景技术
在无线通信系统的操作期间,在传输数据时,需要对用于前向纠错的各种信道码进行解码。典型的信道码(例如在3G系统以及WiMAX中使用的那些)是涡轮码(turbo code)、双涡轮码(duo-turbocode)以及低密度奇偶校验(LDPC)码。
较高的传输数据率意味着在接收机处要存在较快的信道解码器。满足这一需求的一个简单的解决方案是提高接收机解码器的时钟频率,从而实现所需的数据率。然而,使用高时钟频率需要解码器(例如,在诸如ASIC的集成电路中实现的解码器)消耗较多的功率,在便携式电池供电的设备中这是明显的缺点。
另一可能的解决方案是将并行处理用于解码。然而,该方法导致了以两种不同访问顺序的多址数据访问相关的问题。尽管可以直接设计用于一个访问顺序的多址访问方案,但是在涡轮码和低密度奇偶校验码的情况下,多址访问方案必须可以在没有访问冲突的情况下可用于至少两个独立的访问顺序。
解决多址访问问题的一种可能的技术是在没有内部多址访问能力的情况下实现涡轮解码器的行或者组。当数据率不高(例如,小于20Mbps)时,该技术可能是足够的。
建立并行处理的另一种可能技术是设计码交织器,使得交织器支持某些类型的多址访问方案。此类方法的一个示例由Takeshita的“On maximum contention-free interleavers and permutation polynomialsover integer rings”,IEEE Trans.Inform.Theory,vol.52,no.3,pp1249-1253,2006年3月描述。该技术的一个弱点在于,其不适用于现有系统。另一弱点是,并行处理的类型取决于码的交织器,并且此后无法修改它。
另一种多址访问技术由Benedetto等人的″Design issues on theparallel implementation of versatile,high-speed iterative decoders″,Turbo-Coding-2006,2006年4月3-7日,Munich描述。还可以参考由Tarable等人的″Mapping Interleaving Laws to Parallel Turbo andLDPC Decoder Architectures″,IEEE Transactions on InformationTheory,Vol.50,No.9,2004年9月描述的方法。
Tarable等人构建了映射,使得可以按照线性顺序以及交织顺序二者来并行地处理数据,而不会引起访问冲突。而且,他们的解决方案是独立于交织器的,也即,他们的方法可以无限制地适用于任何交织器。然而,此方法的一个缺点在于,其实现需要非常大的交换器(多路器)。另一缺点在于,该方法必须能够将任意顺序的数据记录为任意顺序。例如,为了完成4度并行处理,解码器需要生成4!=1*2*3*4=24个顺序。如果并行处理的度为8,则要生成8!=40320种情况。
很明显,该方法的缺陷在于,用来生成映射函数的算法十分复杂。而且,该算法并不能确保用于路由数据的简单网络。
发明内容
按照本发明的示例性而非限制性实施方式,上述以及其他问题能够得以解决,并且可以实现其他优点。
按照本发明的一个实施方式是一种方法。提供存储器组,其包括多个存储器;提供第一蝶式网络,其配置用于将存储器地址应用于存储器组;以及提供第二蝶式网络,其配置用于将数据传递到存储器组或者从存储器组传递数据。此外,在该方法中,按照多址访问规则为第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对存储器组进行并行访问。
按照本发明的另一实施方式是一种机器可读的指令程序,其包含在有形的存储器中并且可由数字数据处理器来执行,以便执行涉及控制存储器访问的动作。在此实施方式中,所述动作包括:按照多址访问规则为第一蝶式网络和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对存储器组进行并行访问;以及将所述控制信号发送给第一和第二蝶式网络。存储器组包括多个存储器;第一蝶式网络配置用于将存储器地址应用于存储器组;以及第二蝶式网络配置用于将数据传递到存储器组或者从存储器组传递数据。
按照本发明的又一实施方式是一种装置,其包括:具有多个存储器的存储器组;第一和第二蝶式网络;以及处理器。第一蝶式网络耦合至存储器组,并且配置用于将存储器地址应用于存储器组。第二蝶式网络耦合至存储器组,并且配置用于将数据传递到存储器组或者从存储器组传递数据。处理器具有控制输出,其耦合至第一和第二蝶式网络,并且配置用于按照多址访问规则为第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对存储器组进行并行访问。
附图说明
当结合附图阅读下文详细描述时,本发明的教导的上述以及其他方面将更为易见。
图1描绘了具有四条总线的示例性蝶式网络。
图2示出了按照本发明的示例性实施方式与两个蝶式网络耦合以实现4度并行处理的存储器组,以及可操作用于为蝶式网络生成控制信号的处理器。
图3A-图3E是示出了按照在此描述的详细示例的多址访问函数和访问顺序的值的表,图3F是示出了在线性访问顺序与交织访问顺序之间进行转换以用于4元组多址访问函数的算法的执行的流程图。
图4是耦合至2元组蝶式网络的、大小为2的存储器组,其示出了作为使用不同控制信号的线性或交织的奇偶访问。
图5类似于图4,但是其中大小为4的存储器组耦合至4元组蝶式网络,其中线性访问控制信号的各个比特应用于网络的各个交换器。
图6类似于图4,但是其示出了镜像2元组多址访问。
图7类似于图5,但是其示出了镜像4元组多址访问。
图8是示出各种n元组蝶式网络中的交换器的输入管脚与输出管脚的符号的表。
图9是示出用于4元组蝶式网络的输入管脚到输出管脚转换的表。
图10是示出了如何确定4比特宽的控制信号的值的概念图。
图11是8元组蝶式网络的示意图,该蝶式网络具有布置在3列中的12个交换器以及用于该网络的8个输入和8个输出管脚。
图12是示出针对从输入管脚0到1的所有允许的转换、到图11的交换器的3比特控制信号的表。
图13是示出对于图11的8元组蝶式网络如何从多址访问函数Fn来导出所有12个控制比特的概念图。
图14是按照本发明示例性实施方式的方法的逻辑流程图。
具体实施方式
用于3G移动设备(例如,cdma2000、WCDMA)的某些涡轮解码器每个比特使用22个周期,以便在10轮期间解码涡轮编码的数据。使用阶为2、4和8的多址访问规则,周期效率分别约为10轮时每比特11、5.5和2.75个周期。本发明的示例性实施方式提供设计与较高的数据率(诸如那些未来的通信标准预期的数据率)结合使用、且具有合理低功耗的高速涡轮解码器的能力。本发明的实施方式可以在例如使用3G、WiMAX、LTE(UTRAN长期演进或3.9G)、HSDPA/HSUPA(高速下行链路/上行链路分组接入)以及其他无线协议进行操作的网络中使用。本发明的实施方式不限于特定的无线协议,并且可以在移动设备/用户设备和/或诸如基站/节点B等网元中使用。
在上面的背景技术小节中总结了某些现有技术的方法。与上文引用的Takeshita的技术不同,本发明的实施方式提供一种针对给定的交织器允许多种不同类型的并行处理方案的解决方案。Benedetto等以及Tarable等用于构建映射函数的算法是一般性的。例如,其算法可以在并行处理的度为5时应用。本发明的示例性实施方式具体要求并行处理的度为2的幂:2、4、8等等。这是根据对于该问题的不同基础方法得到的,因此本发明的实施方式并不要求上文用于Benedetto等和Tarable等方法的大型多路器或者计算负担。
本发明的示例性实施方式在其一方面中提供一种显式算法和方法,用于根据一组存储器的地址空间来构造函数F,使得可以在没有访问冲突的情况下按照两个独立的顺序来并行访问数据。函数F将每个地址和一个存储器相关联。此外,函数F为用于实现多址访问的蝶式网络提供控制信号。
在进一步详细描述本发明的示例性实施方式之前,可以参考图1和图2以便示出可以利用一个示例性而非限制性涡轮解码器架构操作、并且可以与示例性实施方式结合使用的电路。
首先请注意,Benes网络能够生成由数字阶乘给出的所有顺序,这是公知的。然而,Benes网络的不足之处在于:对Benes网络的控制比特的计算是非常复杂的任务。
在图1和图2所示的实施方式中,蝶式网络被应用于并行的涡轮解码作为数据路由器。尽管蝶式网络无法生成与Benes网络同样多的顺序,但是所生成的顺序的数量足以建立用于感兴趣的涡轮解码的顺序的并行处理。
图1示出了4条总线的蝶式网络。蝶式网络包含四个交换器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、add1、add2、add3。四个地址通过蝶式网络18并且应用于连接至蝶式网络18的输出管脚的存储器组19。四个数据值从存储器组19并行地被读取(从每个存储器存储器_0、存储器_1、存储器_2、存储器_3读取一个数据值),并且按照与四个地址相同的方式、但是相反的方向被路由到第二(数据)蝶式网络22。四个地址可以按照线性顺序或者交织顺序生成。控制比特20是顺序和位置特定的,并且按照本发明的示例性实施方式生成,这将在下文讨论。
对存储器组19的写与读类似,其中控制比特20、4个写地址以及4个数据值被馈送到地址蝶式网络18和数据蝶式网络22。
控制信号20的比特可以按照线性顺序和交织顺序生成。控制信号20的比特可以在解码开始之前生成,并且被存储在辅助存储器缓冲器24中。例如,可以将相同的蝶式网络用于使用一组控制比特、按照线性顺序来将数据存储在存储器中和/或从存储器中获取数据,以及使用另一组控制比特、按照交织顺序来将数据存储在存储器中和/或从存储器中获取数据。对于给定的并行度,两组控制比特是相同的宽度。用于2元组蝶式网络的控制信号是1比特宽,用于4元组蝶式网络的控制信号是4比特宽,而用于8元组蝶式网络的控制信号是12比特宽。一般地,2m元组蝶式网络需要m*2m-1比特宽的控制信号。
所示的实施方式非常适于但不限于用于度为2、4和8的WCDMA涡轮码。注意,通过使用蝶式网络18和22而成为可能的并行处理而不依赖于任何系统交织器。
在更为一般性的描述中,针对n=2m的n元组生成用于允许线性顺序和交织顺序的两个并行访问的多址访问函数。图2中的存储器组的地址空间的总长度由N表示。存储组的组成存储器的长度为N/n。地址空间{0,1,2,...,N-1}上的交织器由T表示,并且其逆交织器由T-1表示。交织器的逆成为解交织器。从地址空间{0,1,2,...,N-1}到组成存储器地址空间{0,1,2,...,n-1}的多址访问函数由F表示。具有地址K=0,1,2,...,N-1的数据值在存储组的组成存储器F(k)中。
在线性顺序中,对于k=0,1,2,...N/n-1,数据具有n元组访问Pn(k)={a0(k),a1(k),...,an-1(k)},其中分量函数aj(k)描述每次应用哪些地址,而N表示地址空间的长度。假设,分量函数aj的值应当彼此不同,也即,对于i≠j以及索引空间{0,1,2,...,N/n-1}中的所有r和k,ai(r)≠aj(k)。在交织顺序中,数据具有经由交织器T的其他n元组访问:{T(a0(k)),T(a1(k)),...,T(an-1(k))}。为了使蝶式网络可行且可用于针对两个不同访问顺序而定义的并行访问,必须找到满足以下要求的多址访问函数F:
(i)F(ai(k))≠F(aj(k)),对于i≠j以及所有k=0,1,2,...,N/n-1(线性顺序)。
(ii)F(T(ai(k)))≠F(T(aj(k)))对于i≠j以及所有k=0,1,2,...,N/n-1(交织顺序)。
(iii)函数F生成用于线性顺序和交织顺序的度为n=2m的蝶式网络的控制比特。
基于2m元组蝶式网络的多址访问方案可以从较低度2m-1迭代地设计。因此,4元组多址访问方案是根据其2元组对应项(counter part)导出的,并且过程可以更为一般地应用。设计过程开始于1元组,也即,通过每次访问一个数据值。从该设计过程可以得出:获得的多址访问函数F适于蝶式网络的排列。
接下来,并行处理的度为2,并且并行处理的规则定义为P2(k)={a0(k),a1(k)},k=0,1,2,...N/2-1,N表示存储器的长度,并且其交织并行对应访问是{T(a0(k)),T(a1(k))}。并且从地址空间0,1,2,...,N-1到两个存储器0和1的函数F具有初始值F(j)=0,j=0,1,2,...,N-1。换言之,开始,假设所有数据位于存储器0中。下面的算法将一半0替换为1。
算法
assign k=0;
Repeat
If F(a0(k))=0 and F(a1(k))=0 then
start=a1(k);
j=a1(k);
Repeat
assignF(j)=1;
If T-1(j)=a0(n)for some n then
a=a1(n);
else
a=a0(n);
endif
ifT(a)=a0(m)for some m then
nextj=a1(m)
else
nextj=a0(m)
endif
j=nextj
Untilj=start;
cndif
k=nextk;
Until all k′s have been treated.
以上算法的广义概念是,在线性地址空间与交织地址空间之间前后移动。从线性地址空间移动到交织地址空间的规则是基于以下事实:m=T(T-1(m))=T(k),其中k=T-1(m)。从交织地址空间移动到线性地址空间的规则是T(a)=b。在这两个地址空间中,应用并行访问规则分量函数a0(k)和a1(k)来从一个地址移动到其并行配对地址。也即,在线性地址空间中从a0(k)到a1(k)或者从a1(k)到a0(k),以及在交织地址空间中从T(a0(k))到T(a1(k))以及从T(a1(k))到T(a0(k))。
在执行以上算法之后,可以保证,对于所有的k,F(a0(k))不等于F(a1(k)),以及F(T(a0(k)))不等于F(T(a1(k))),其中k的范围取决于并行访问规则,例如k=0,1,2,...,N/2-1。由此可得,可以在没有存储器访问冲突的情况下,利用线性顺序和交织顺序的两个并行访问来处理数据。具有地址j的数据值在存储器F(j)中。而且,可以使用2元组蝶式网络来路由去往和来自两个存储器的数据。线性地址空间上的蝶式网络的控制比特是F(a0(k))。在交织地址空间的情况下,蝶式网络的控制比特是F(T(a0(k)))。
可以按照多种方式来构建2元组并行访问规则P2。三个非限制性示例包括:
●将地址空间划分为奇地址和偶地址,a0(k)通过所有偶地址而a1(k)通过所有奇地址,也即,a0(k)=2*k而a1(k)=2*k+1;
●作为备选,从开始和末尾来处理数据:a0(k)=k,且a1(k)=N-1-k,k=0,1,2,...,N/2-1;
●备选地,对数据的处理从开始和中间进行:a0(k)=k,且a1(k)=N/2+k,k=0,1,2,...,N/2-1。
通过再次将每个子地址空间划分为两组,较高度的并行处理从其较低度的对应项导出。例如,4元组多址访问函数是从2元组多址访问函数导出的。构建的思想是:将两个地址存储器空间都分为两个,以便获得四个新的地址存储器空间。通过将存储器0的地址与存储器0和2相关联来将其分为两组地址。同样,通过利用存储器1和3重新分配存储器1的地址将其分为两组地址。为此,必须定义如何形成2元组配对的规则。为此,将2元组并行访问规则定义为P2(k)={a0(k),a1(k)},k=0,1,2,...,N/2-1。继而,需要将所有2元组关联为配对的函数,以便形成用于并行访问的4元组。定义配对函数q2(k)={b0(k),b1(k)},其中b0(k)≠b1(k),k=1,2,3,...,N/4-1。最后,定义4元组函数P4:P4(k)={P2(b0(k)),P2(b1(k))},k=1,2,3,...,N/4-1。这得到:
P4(k)={P2(b0(k)),P2(b1(k))}
={a0(b0(k)),a1(b0(k)),a0(b1(k)),a1(b1(k))}
={c0(k),c1(k),c2(k),c3(k)}。
函数P4描述了4元组并行访问规则。
可以按照多种方式来构建并行规则P4。三个非限制性示例包括:
●将地址空间划分为4个4的余数0、1、2和3。继而在并行访问中处理4个连续的数据值。在此情况下:P4(k)=(4k,4k+1,4k+2,4k+3),k=1,2,3,...,N/4-1。所以c0(k)=4*k,c1(k)=4*k+1,c2(k)=4*k+2,且c3(k)=4*k+3。
●作为备选,从开始和末尾来处理数据,使得每次处理来自两个地址的两个数据值:c0(k)=2*k,c1(k)=N-1-2*k,c2(k)=2*k+1,且c3(k)=N-2-2*k,k=0,1,2,...,N/4-1,也即,P4(k)=(2*k,N-1-2*k,2*k+1,N-2-2*k);
●备选地,对数据的处理在四个大小相等的数据帧窗口上进行:c0(k)=k,c1(k)=N/4+k,c2(k)=N/2+k,且c3(k)=3*N/4+k,k=0,1,2,...N/4-1,换言之,P4(k)=(k,N/4+k,N/2+k,3*N/4+k)。
下面的算法示出了如何将存储器0的地址存储器空间分为两个地址存储器空间存储器0和存储器2。通过在执行算法之前指定old=1和new=3,以同样的方式来对待存储器1的地址存储器空间。
算法
assign old=0;
assign new=2;
assign k=0;
Repeat
If(F(c0(K))=old or F(c1(k))=old)and(F(c2(k))=old orF(c3(k))=old)then
start=c2(k);
j=c2(k);
m=k;
p=2;
Repeat
If(F(j)≠old)then
j=cp+1(m);
endif
assign1F(j)=new;
If(T-1(j)=ci(n)for some n)and(i<2 for some i)then
a=c2(n);
index=2;
else
a=c0(n);
index=0;
endif
If(F(T(a))≠old)then
a=cindex+1(n);
endif
if(T(a)=ct(m)for some m)and(t<2 for some t)then
nextj=c2(m);
p=2;
else
nextj=c0(m);
p=0;
endif
j=nextj
Untilj=start;
endif
k=nextk;
Until all k′s have been treated from 0 to N/4-1.
作为总结,用于构建4元组多址访问函数F的步骤是:
●执行第44自然段的算法,以获得基于选定的2元组多址访问规则P2(k)=(a0(k),a1(k)},k=0,1,2,...N/2-1的2元组多址访问函数F;
●执行第51自然段的算法,其中old=0且new=2,应用选定的4元组多址访问规则P4(k)={c0(k),c1(k),c2(k),c3(k)},k=0,1,2,...,N/4-1;
●第二次执行第51自然段的算法,其中old=1且new=3,再次应用相同的4元组多址访问规则P4(k)={c0(k),c1(k),c2(k),c3(k)},k=0,1,2,...,N/4-1。
因为多数情况下仅需实现一个2元组并行访问规则和一个4元组并行访问规则,因此利用该特定2元组和4元组规则的特殊属性来简化第44自然段和第51自然段的算法是有益的。
接下来,将示出如何构建用于8元组蝶式网络的多址访问函数F。8元组多址访问函数是通过将两个4元组合并为一个8元组来实现的。首先,必须确定如何将4元组合并为8元组。为此,定义配对函数r2:r2(k)=(s0(k),s1(k))以及s0(k)≠s1(k),k=0,1,2,...,N/8-1。8元组多址访问规则函数P8定义为P8(k)={P4(s0(k)),P4(s1(k))},k=0,1,2,...,N/8-1。换言之,
P8(k)={P4(s0(k)),P4(s1(k))}
={c0(s0(k)),c1(s0(k)),c2(s0(k)),c3(s0(k)),c0(s1(k)),c1(s1(k)),
c2(s1(k)),c3(s1(k))}
={d0(k),d1(k),d2(k),d3(k),d4(k),d5(k),d6(k),d7(k)}。
函数P8描述了8元组并行访问规则。因此,函数P8指明了并行使用哪8个地址。P8的简单示例是针对8个连续数据值的并行访问规则:P8(k)=(8k,8k+1,8k+2,8k+3,8k+4,8k+5,8k+6,8k+7),k=0,1,2,...,N/8-1。
用于4元组的多址访问函数F具有四个值0、1、2和3。用于8元组的多址访问函数F是通过按照以下描述倍增四个值而从给定的4值多址访问函数导出的:将与0相关联的一半地址映射到4,将与1相关联的一半地址映射到5,将与2相关联的一半地址映射到6,以及将与3相关联的一半地址映射到7。该替换过程类似于第51自然段的过程。下面的算法通过图的循环在8元组上将每个其他的0改变为4。
算法
assign old=0;
assign new=4;
assign k=0;
Repeat
If(F(d0(k)=old or F(d1(k))=old or F(d2(k))=old or F(d3(k))=old)and
(F(d4(k)=old or F(d5(k))=old or F(d6(k))=old or F(d7(k))=old)then
start=d4(k);
j=d4(k);
m=k;
t=4;
Repeat
While(F(j)≠old)do
t=t+1;
j=dt(m);
endwhile
assign F(j)=new;
If(T-1(j)=di(n)for some n)and(i<4 for some i)then
a=d4(n);
index=4;
else
a=d0(n);
index=0;
endif
While(F(T(a))≠old)do
index=index+1;
a=dindex(n);
endwhile
If(T(a)=d1(m)for some m)and(r<4for some r)then
nextj=d4(m);
t=4;
else
nextj=d0(m);
t=0;
endif
j=nextj;
Until j=start;
endif
Until all k’s have been treated from 0to N/8-1;
作为总结,用以构建用于8元组并行访问的多址访问函数F的正式步骤是:
●执行第44自然段的算法,以获得基于选定的2元组多址访问规则P2(k)=(a0(k),a1(k)},k=0,1,2,...N/2-1的2元组多址访问函数F;
●执行第51自然段的算法,其中old=0且new=2,应用选定的4元组多址访问规则P4(k)={c0(k),c1(k),c2(k),c3(k)},k=0,1,2,...,N/4-1;
●第二次执行第51自然段的算法,其中old=1且new=3,第二次应用相同的4元组多址访问规则P4(k)={c0(k),c1(k),c2(k),c3(k)},k=0,1,2,...,N/4-1;
●首次执行第56自然段的算法,其中old=0且new=4,应用选定的8元组访问访问规则P8(k)={d0(k),d1(k),d2(k),d3(k),d=(k),d5(k),d6(k),d7(k)},k=0,1,2,...N/8-1;
●第二次执行第56自然段的算法,其中old=1且new=5,再次应用相同的选定8元组访问访问规则P8(k)={d0(k),d1(k),d2(k),d3(k),d=(k),d5(k),d6(k),d7(k)},k=0,1,2,...N/8-1;
●第三次执行第56自然段的算法,其中old=2且new=6,再次应用相同的选定8元组访问访问规则P8(k)={d0(k),d1(k),d2(k),d3(k),d=(k),d5(k),d6(k),d7(k)},k=0,1,2,...N/8-1;
●第四次执行第56自然段的算法,其中old=3且new=7,再次应用选定的8元组访问访问规则P8(k)={d0(k),d1(k),d2(k),d3(k),d=(k),d5(k),d6(k),d7(k)},k=0,1,2,...N/8-1。
在执行所列出的步骤之后,针对8元组并行访问规则的多址访问函数F满足要求第41自然段的要求(i)、(ii)和(iii),其中n=8。
一般地,用于2m元组蝶式网络的多址访问函数可以迭代地根据用于2m-1元组蝶式网络的较低度多址访问函数来进行设计。与子存储器t(其中t=0,1,2,...,2m-1-1)相关联的一半地址被重新指派给新的子存储器(t+2m-1)。
接下来,给出三个数字示例来示出如何应用本发明的方法来建立针对给定并行访问规则的蝶式网络的多址访问函数和控制比特二者。三个并行访问是2元组、4元组和8元组的。数据帧分别分为2个、4个和8个大小相等的子帧,并且经由蝶式网络将其作为2元组、4元组和8元组来并行访问。帧长度是104,并且交织器是具有长度104的WCDMA涡轮码的交织器。104比特长的WCDMA涡轮码交织器的值在图3A/表1中列出。
针对两个大小相等的子帧的2元组并行访问规则由P2(k)={k,N/2+k}={k,52+k},k=0,1,2,...,51、N=104来定义。在执行第44自然段的算法之后,多址访问函数如图3B/表2。用于线性访问的2元组蝶式网络的控制信号是F(k),用于交织访问的是F(T(K)),k=0,1,2,...,51。图3B/表2示出,对于线性访问,F(k)≠F(52+5),并且对于交织访问,F(T(k))≠F(T(52+k)),k=0,1,2,...,51。因此,可以在没有访问冲突的情况下,以线性顺序和交织顺序二者来经由2元组蝶式网络访问两个存储器。
继而,通过配对函数q2(k)={k,26+k},k=0,1,2,...,25,根据P2(k)={k,52+k}导出针对四个大小相等的子帧的4元组并行访问规则。换言之,2元组P2(k)和P2(26+k)构成了4元组。因此,4元组并行访问规则P4定义为P4(k)={P2(k),P2(26+k)}={k,52+k,26+k,78+k},k=0,1,2,...,25,N=104。图3C/表3示出了针对线性和交织访问顺序的并行访问规则P4的多址访问函数F的值。例如,对于线性访问顺序,在k=10处,F的4个值是F(10)=3,F(62)=0,F(36)=1,以及F(88)=2。在k=10处,4元组蝶式网络的控制比特是BNL(10)=11,也即,11DEC=1011BN作为4比特二进制数。值BNL(10)=11是根据图10中所示的多址访问函数F的四个值F(10)=F0,F(62)=F1,F(36)=F2,以及F(88)=F3导出的。
针对8个大小相等的子帧的8元组并行访问规则是使用其他配对函数r2(k)={k,13+k},k=0,1,2,...,12从P4(k)={k,52+k,26+k,78+k}导出的。因此,4元组P4(k)和P4(13+k)构成了8元组。因此,8元组并行访问规则P8定义为P8(k)={P4(k),P4(13+k)}={k,52+k,26+k,78+k,13+k,65+k,39+k,91+k},k=0,1,2,...,12,N=104。当利用多址访问规则P8执行第57自然段中说明的步骤之后,便具有了图3D/表4和图3E/表5中分别针对线性访问顺序和交织访问顺序而列出的多址访问函数F和用于P8的8元组蝶式网络的控制比特。例如,当k=9时,对于线性访问顺序,多址访问函数F在9、61、35、87、22、74、48和100处分别具有值4、7、6、2、5、3、0。在k=9处,对于线性访问顺序而言,8元组蝶式网络的控制比特是2859DEC=101100101011BIN作为12比特的二进制数字。图3E/表5中的多址访问函数F的值是按照交织顺序的,并且其生成了用于8元组蝶式网络的不同的控制比特集合。例如,在交织访问顺序中,在k=9处,控制比特是BNI(9)=1030DEC=010000000110BIN作为12比特的二进制数。图13示出了多址访问函数的8个值如何映射到8元组蝶式网络的控制比特。
通过查看图3D/表4以及图3E/表5可以看到,对于每个k,F的所有8元组在每一行上具有8个不同的值。通过研究BNL和BNI的靠近值,已得出结论:可以通过具有12比特宽度的控制信号的8元组蝶式网络生成F的所有8元组。由此,所构造的多址访问函数F确保了按照线性顺序以及交织顺序的无冲突8元组访问。特别地,多址访问函数F支持度为8的蝶式网络的排列。
图3F示出了用于构造多址访问函数F的算法如何将一半0替换为2。在这种情况下,多址访问函数F从2元组多址访问函数更新为4元组多址访问函数。第51自然段的算法的最外层Repeat循环搜索具有2个0的4元组。在两个分量2元组302a、302b中必然存在一个0。这样的4元组称为图3F中循环的进入和退出节点302。继而,将一个0替换为2,这通过划去分量2以及元组302b上的2来表示。接下来,使用解交织器T-1,算法从线性访问顺序(左侧)移动303到交织访问顺序(右侧)。实线箭头示出了图3F中的移动。在此步骤,算法以交织访问顺序从二元组移动303到其由4元组多址访问规则定义的并行配对2元组,如框304所示。在此之后,算法查找2元组的哪个分量具有0。继而,算法使用交织器在框306从交织访问顺序移动回305线性访问顺序。虚线示出了这些移动。在框306,算法使用线性访问顺序在4元组内部从一个2元组移动到其并行配对。算法查找哪个2元组分量具有0,并且将0替换为2,这从框306的2元组之一可见。继而,算法再次应用解交织器T-1,以便从框306处的线性访问顺序移动到框308处的交织访问顺序。该过程继续,直到算法最后回到图的进入和退出节点302。在此之后,最外层Reapeat循环309继续查找下一个可能的进入节点。
在使用期间,可以通过标识线性访问顺序和交织访问顺序来开始。接下来,确定并行处理的度:2、4、8或者更高;以及确定并行处理的类型:在并行访问中使用哪些地址。继而,应用算法来构建多址访问函数,其将每个地址与一个存储器相关联。最后,针对线性访问顺序和交织访问顺序二者,根据多址访问函数导出用于蝶式网络18和22的控制比特20。
还如图2所示,本发明的示例性实施方式至少可以部分地利用数据处理器(DP)26来实现,该DP 26与存储用于执行上述算法的指令的程序存储器(PROG_MEM)28耦合。如上所述,在开始解码操作之前,可以将根据函数导出的、表示控制信号20的得到的比特存储在缓冲器24中。
请注意,在涡轮解码器实现于移动电话或者其他类型用户终端或者设备中、或者当其包含在诸如基站或节点B等网元中的实施方式中,至少还将存在适当类型的无线通信接收机30,用于接收将要进行涡轮解码的数据。在包括具有多个存储器的存储器装置(诸如,存储器组)的设备这一特定实施方式中,第一交换装置(诸如,第一蝶式网络)耦合至存储器装置,并且配置用于将存储器地址应用于存储器装置;第二交换装置(诸如,第二蝶式网络)耦合至存储器装置,并且配置用于传递去往或者来自存储器组的数据;以及处理装置,诸如存储器。处理装置具有耦合至第一和第二交换装置的控制输出,并且配置用于按照多址访问规则为第一和第二交换装置生成控制信号,以允许在没有存储器访问冲突的情况下按照线性顺序和交织顺序之一支持对存储器组进行并行访问。
在3G网络的情况下,存在用于信道码的5075个交织器。已经针对所有的5075中使用情况验证了前述算法的使用。已经发现,对于并行度2、4和8,通过最初将地址空间分割为偶地址和奇地址、分割为2个、4个或者8个大小相等的子地址空间或者分割为镜像地址空间,本发明的示例性实施方式适用于所有3G涡轮交织器。
现在,将详细描述蝶式网络及其控制信号的特定示例。图4示出了包含两个子存储器的简单存储器组19,其中一个交换器10控制读和写访问。当并行地将偶存储器地址和奇存储器地址中的输入数据值作为配对取回时,需要线性访问顺序和交织访问顺序二者,并且对于所有k=0,1,2,..,(N/2)-1,两对地址{2k,2k+1}以及{T[2k],T[2k+1]}被逐对应用于两个存储器。使用一个控制比特20来控制该访问的顺序,这是因为仅使用了一个交换器10。用于线性访问的控制比特表示为Xk,而用于交织访问的控制比特表示为Yk。由于在存储器组19中存在两个存储器地址用于存储两个数据值,所以图4表示的是2元组实现。继而,从上文算法可得:用于交换器的控制比特可以定义如下:
图5类似于图4,但是存储器19包含4个子存储器。在此网络中,并行地取回连续存储器地址中每一个中的四个数据值作为4元组,并且k的范围是k=0,1,2,...(N/4)-1。用于线性访问的4比特宽控制信号是Xk=(xk3,xk2,xk1,xk0),而用于交织访问的是Yk=(yk3,yk2,yk1,yk0)。图5中所示的是,线性访问控制信号的每一比特应用于交换器10、12、14、16中不同的一个。交织访问的控制比特类似地应用。
请注意,从索引集合{0,1,2,...,N/4-1}到存储器集合{Mem 0,Mem 1,Mem 2,Mem 3}的函数F是这样的:对于{0,1,2,...,N/4-1}中的所有k以及m=0,1,2,3和j=0,1,2,3以及m≠j,F(4k+m)≠F(4k+j)以及F(T[4k+m])≠F(T[4k+j])。图5所示的4度蝶式网络仅能生成24=4!之外的16个不同排列。幸运的是,所给出的构建多址访问函数的一般性概念确保了所获得的函数仅应用蝶式网络的排列。因此,存在多址访问函数F,使得该函数应用4度蝶式网络的排列。
这是通过使用镜像2元组访问方案来实现的,如图6-图7所示。2元组的配对是{k,N-1-k}以及{T[k],T[N-k-1]},k=0,1,2,3,...,N/2-1。在这种情况下,可以令索引k取地址空间中的所有值。考虑图6。无冲突的镜像2元组访问方案是基于从索引集和{0,1,2,3,...,N/2-1}到存储器组19(Mem 0,Mem 1)的函数F,其具有如下属性:对于{0,1,2,...,N/4-1}中的所有k,F(k)≠F(N-1-k)以及F(T[k])≠F(T[N-1-k])。用于2阶蝶式网络的控制比特20按照与上文针对图4详细描述的相同方式根据函数F导出。
对于图7网络的4元组多址访问,倍速解码器的实现使用了镜像4元组访问方案。4元组的配对现在是{2k,N-1-2k,2k+1,N-2-2k}和{T[2k],T[N-1-2k],T[2k+1],T[N-2-2k]},k=0,1,2,...,N/4-1。因为索引编制是对称的,因此可以令索引k取从0到N/2-1的值。
无冲突的镜像4元组访问方案得自从索引集合{0,1,2,3,...,N/4-1}到存储器组19{Mem 0,Mem 1,Mem 2,Mem 3}的函数F,其具有属性:
(i)对于{0,1,2,3,...,N/4-1}中的所有k,F(2k)、F(N-1-2k)、F(2k+1)和F(N-2-2k)互不相等
(ii)对于{0,1,2,3,...,N/4-1}中的所有k,F(T[2k])、F(T[N-1-2k])、F(T[2k+1])和F(T[N-2-2k])互不相等
(iii)函数F应用4度蝶式网络的排列。
与针对图5描述的连续4元组访问方案相同,线性顺序4元组{2k,N-1-2k,2k+1,N-2-2k}具有控制信号Xk=(xk3,xk2,xk1,xk0),而交织4元组{T[2k],T[N-1-2k],T[2k+1],T[N-2-2k]}具有控制信号Yk=(yk3,yk2,yk1,yk0).
通过以上从图6的2元组镜像访问方案到图7的4元组镜像访问方案的扩展可见,基于2m元组蝶式网络的多址访问方案可以从较低阶的2m-1元组迭代地设计。
现在将进一步详细讨论控制信号。如上所述,多址访问函数为相应的蝶式网络提供控制信号。值F(k)是适合第k个数据值的存储器索引。蝶式网络将数据值及其地址映射到F(k)所指向的存储器。蝶式网络的度确定了在一个时钟周期内进行多少并行访问。
图8是示出具有线性地址和交织地址的蝶式网络和多址访问函数F的输入和输出管脚(用于交换器10、12、14、16)的表。使用不同的符号来区分所使用的不同水平的并行度。利用这些符号,蝶式网络将输入管脚j处第k个元组的数据值重新路由到输出管脚Fkj以用于线性寻址,并将其重新路由到输出管脚FTkj以用于交织寻址。Fkj和FTkj的范围是0,1,2,...2m-1,其中2m表示并行处理的度。
如上所述,用于2元组蝶式网络的控制信号是1比特宽。要构建两类控制信号,一类用于线性寻址,另一类用于交织寻址。它们是:
Xk=Fk0以及Yk=FTk0,k=0,1,2,...N/2-1
这不是唯一的解决方案。当然可以选择Fk1和FTk1用于控制。在涡轮解码开始之前计算这两个信号并将其存储在存储器(例如,图2的缓冲器24)中。存储器的字长是2,而长度是N/2。要指出的是,在根据多址访问函数F构建控制信号时,没有信息消失。一旦已经生成了两个控制信号,则可以忽略多址访问函数F的值。
用于4元组蝶式网络的控制信号Xk=(xk3,xk2,xk1,xk0)是4比特宽的。4比特宽的字的数量是N/4。每个2度蝶式网络存在1个控制比特。比特和蝶式网络如图5所示的关联。图9示出了对于4度蝶式网络而言所有允许的输入-输出转变的访问控制比特。一个输入管脚到输出管脚的迁移影响2个控制比特。2个比特值等于输入管脚号与输出管脚号的异或(XOR)。从图9可知,可以通过Xk0=Fk0模2,Xk1=Fk2模2,Xk2=(1-Xk0)*(Fk0/2)+Xk0*(Fk1/2)以及Xk3=Xk0*(Fk0/2)+(1-Xk0)*(Fk1/2)来设置用于线性寻址的控制比特Xk=(Xk3,Xk2,Xk1,Xk0)。以相同的方式,可以通过Yk0=FTk0模2,Yk1=FTk2模2,Yk2=(1-Yk0)*(FTk0/2)+Yk0*(FTk1/2)以及Yk3=Yk0*(FTk0/2)+(1-Yk0)*(FTk1/2)来指派用于交织寻址的控制比特Yk=(Yk3,Yk2,Yk1,Yk0)。将控制比特Xk和Yk存储在8比特宽的字、并具有长度N/4的存储器(缓冲器24或者地址18)中。
图10是示出了用于设置4比特宽控制信号的比特值的公式的概念图。因为4度蝶式网络能够进行24种可能排列中的16种排列,因此仅3个输出管脚值F0、F1和F2确定4个控制比特的值。请注意,4个控制比特是根据输出管脚的4个比特导出的,使得输入管脚n与输出管脚Fn的异或(n XOR Fn)不改变这4个比特。
用于8元组蝶式网络的控制信号是12比特宽。如图11所示,8度蝶式网络包括12个交换器(控制它们的线性访问控制比特表示为X0到X11),或者12个2度蝶式网络。输入管脚从上到下编号为0,1,2,3,4,5,6和7,并且输出管脚类似地编号为0,1,2,3,4,5,6和7。例如,如果在图8中,在k处应用线性并行访问并且Fk2=7,则8元组蝶式网络将来自输入管脚2的数据路由至输出管脚7。因此,控制比特X1、X6和X11分别具有值1、0和1。
图12是示出用于从输入管脚0和1的所允许路由的控制比特的表。图12中标为nXFn的列表示(n XOR Fn)。如图11和图8所示,对于线性访问和交织访问,输入管脚n分别连接至输出管脚Fn=Fkn和输出管脚Fn=FTkn。多址访问函数F的每个值是3比特的二进制数。(n XOR Fn)的最低有效位指派了2度蝶式网络的最左列的控制比特(X0,X1,X2或X3)之一。(n XOR Fn)的中间位是2度蝶式网络的中间列中的控制比特(X4,X5,X6或X7)之一。(n XOR Fn)的最高有效位构成了2度蝶式网络的最右列的控制值(X8,X9,X10或X11)之一。例如,对于8元组蝶式网络的交织访问顺序而言,在图3E/表5中示出,在k=1处,输入管脚6具有输出管脚F6=FT1,6=4。换言之,8元组蝶式网络将输入管脚6连接至输出管脚4。现在,6=110BIN且4=100BIN,这可得:(110BIN XOR 100BIN)=010BIN。的最低有效位0控制输入管脚6的路由,因此X3=0。二进制数的中间位1贡献X5:X5=1。的最高有效位0携带X8的值。在图3E/表5中,BNI(1)的值是其中三个黑体字指示010BIN的比特在12比特控制信号中的位置。使用图12的(nXFn)的3比特字段来通过图11的8元组网络,将给出源起n=0或n=1到Fn所指的任何输出管脚的、穿过网络的每个可能路径,其中所指示的比特通过0指示直线路径,而通过1指示通过交换器X0,X1,...,X11的交换路径。(nXFn)的3比特值的每一个指示通过图11的网络的一列中的一个交换器的路径。
图13示出了如何根据多址访问函数F的值导出所有12个控制比特的示意图。示出了输入管脚n=0,1,...,7;以及对应于每个n的输出管脚Fn,其表示为3比特控制字,其示出了通过8元组网络的路径。选定来自于Fn的比特:使得n与Fn之间的异或(XOR)不影响控制比特。除了图13所示之外,其他解决方案也是可能的。请注意,在将多址访问函数F的值转换为2个12比特宽的控制信号(一个用于顺序访问,一个用于交织访问)时,没有信息消失。一旦求解出了用于线性寻址和交织寻址的控制比特,便不再需要多址访问函数F。用于各线性和交织寻址的控制比特存储在存储器(18)中,并且用于存储器存储和访问,而函数本身无需重新执行。
通过使用本发明的实施方式可以获得的优点包括但不限于:能够在不增加时钟频率的情况下实现具有较高解码能力的涡轮解码器;以及能够实现具有增强解码速度的涡轮解码器,同时与通过提高时钟频率而获得的相同速度提高相比消耗较低的功率。
一般地,移动设备的各种实施方式可以包括但不限于:蜂窝电话、具有无线通信能力的个人数字助理(PDA)、具有无线通信能力的便携计算机、具有无线通信能力的图像捕获设备(诸如数码相机)、具有无线通信能力的游戏设备、具有无线通信能力的音乐存储和回放装置、允许无线因特网访问和浏览的因特网装置以及包含这些功能的组合的便携单元或者终端。
本发明的示例性实施方式可以通过可由DP 26、硬件或者软件和硬件的结合来执行的计算机软件来实现。
存储器0-3、24以及28可以是适于本地技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,诸如基于半导体的存储器设备、磁性存储器设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。DP 26可以是适于本地技术环境的任何类型,并且作为非限制性示例,可以包括以下一个或多个:通用计算机、专用计算机、数字信号处理器(DSP)以及基于多核处理器架构的处理器。
图14示出了说明用于在数据解码期间控制存储器访问的创新方法的逻辑流程图。该方法包括:在框14A,提供包括多个存储器的存储器组,配置用于将存储器地址应用于该存储器组的第一蝶式网络,以及配置用于传递去往或者来自该存储器组的数据的第二蝶式网络;以及在框14B,按照多址访问规则为第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下按照线性顺序和交织顺序之一对存储器组进行并行访问。
请注意,图14中所示的各个框可以视作方法步骤或者源自计算机程序代码操作的操作。
一般地,可以通过硬件或者专用电路、软件、逻辑或者其任何组合来实现各种示例性实施方式。例如,一些方面可以通过硬件实现,而其它方面可以用可以通过可由硬件如控制器、微处理器或者其它计算设备执行的软件或固件来实现,当然,本发明并不限于此。尽管本发明的各种方面可以图示和描述为框图、流程图或者使用一些其它图形表示来图示和描述,但是可以理解,作为非限制性示例,这里描述的这些框、装置、系统、技术或者方法可以通过硬件、软件、固件、专用电路或者逻辑、通用硬件或者控制器或者其它计算设备或其某些组合来实现。
由此,本发明的实施方式可以通过各种部件如集成电路模块来实现。集成电路的设计基本上是高度自动化的过程。复杂而强大的软件工具可用于将逻辑级设计转换成准备好将在半导体衬底上蚀刻和形成的半导体电路设计。这样的软件工具可以使用完善的设计规则以及预存设计模块库在半导体芯片上自动地对导体进行布线和对部件进行定位。一旦已经完成用于半导体电路的设计,可以将标准化电子格式(例如Opus、GDSII等)的所得设计发送到半导体制作设施,以制造为一个或多个集成电路器件。
当结合附图和所附权利要求书来阅读以上描述时,各种修改和适应对于本领域技术人员而言可以变得易见。作为某些示例,本领域技术人员可以尝试将示例性实施方式用于非涡轮编码的数据,因为一般而言,示例性实施方式可以适用于任意类型的迭代解码器。然而,对本发明教导的任何和所有修改仍将落入本发明非限制实施方式的范围内。
此外,尽管已经在例如3G系统的上下文中描述了示例性实施方式,但是应当理解,本发明的示例性实施方式不限于仅与一种特定类型的无线通信系统结合使用,而是可以用来改进其他无线通信系统,包括3.9G(EUTRAN)以及未来类型的系统。
而且,可以利用本发明的示例的某些特征,而无需相应使用其他特征。由此,上文描述应当理解为仅仅是对本发明的原理、教导、示例和示例性实施方式的说明,而非对其的限制。
Claims (45)
1.一种方法,包括:
提供包括多个存储器的存储器组,配置用于将存储器地址应用于所述存储器组的第一蝶式网络,以及配置用于传递去往或者来自所述存储器组的数据的第二蝶式网络;以及
按照多址访问规则为所述第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对所述存储器组进行并行访问。
2.根据权利要求1所述的方法,其中线性顺序数据具有并行n元组访问规则,n=2m,{a0(k),a1(k),a2(k),...,an-1(k)},并且交织顺序数据具有并行n元组访问规则{T(a0(k)),T(a1(k)),T(a2(k)),...,T(an-1(k))},k=0,1,...,N/n-1,其中m是至少为1的整数,而N是所述存储器组的地址空间的长度。
3.根据权利要求2所述的方法,其中多址访问配对表达为:
将所述地址空间分割为奇地址和偶地址:a0(k)=2*k适用于所有偶地址,且a1(k)=2*k+1适用于所有奇地址。
4.根据权利要求2所述的方法,其中所述多址访问规则表达为:
从所述存储器组的开始和末尾将数据作为配对{a0(k),a1(k)}来处理:a0(k)=k且a1(k)=N-1-k,k=0,1,2,...,N/2-1,并且m=1。
5.根据权利要求2所述的方法,其中所述多址访问规则表达为:
从所述存储器组的开始和中间将数据作为配对{a0(k),a1(k)}来处理:a0(k)=k且a1(k)=N/2+k,k=0,1,2,...,N/2-1,并且m=1。
6.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为4个连续数据值来并行处理{a0(k),a1(k),a2(k),a3(k)},a0(k)=4*k,a1(k)=4*k+1,a2(k)=4*k+2以及a3(k)=4*k+3,k=0,1,2,...,N/4-1,并且m=2。
7.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得两个值从所述存储器的开始和末尾是连续的,a0(k)=2*k,a1(k)=2*k+1,a2(k)=N-2-2*k以及a3(k)=N-1-2*k,k=0,1,2,...,N/4-1,并且m=2。
8.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得数据帧被分为4个大小相等的子帧,a0(k)=k,a1(k)=N/4+k,a2(k)=N/2+k以及a3(k)=3*N/4+k,k=0,1,2,...,N/4-1,并且m=2。
9.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为2m个连续的数据值来并行处理,ap(k)=k*2m+p,p=0,1,...,2m-1,其中k=0,1,2,...,N/2m-1。
10.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得从所述存储器的开始和末尾,2m/2个值是连续的,对于p=0,1,...,2m-1-1,ap(k)=k*2m-1+p,而对于p=2m-1,2m-1+1,...,2m-1,ap(k)=N-k*2m-1-(2m-p),其中k=0,1,2,...,N/2m-1。
11.根据权利要求2所述的方法,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得数据帧被分为2m个大小相等的子帧,ap(k)=p*N*2-m+k,p=0,1,...2m-1,其中k=0,1,2,...,N/2m-1。
12.根据权利要求1所述的方法,其中交织器表示为T,其中T的逆表示为T-1,其中所述多址访问规则表示为P2(k)={a0(k),a1(k)}以及a{T(a0(k)),T(a1(k))},k=0,1,...,N/2-1,其中N表示所述存储器组的地址空间的长度,其中从地址空间0,1,...,N-1到两个存储器分量0和1的函数F具有初始值F(j)=0,j=0,1,2,...,N-1,使得所有数据最初处于存储器分量0中,并且其中所述控制信号作为以下内容执行的结果而生成:
assign k=0;
Repeat
IfF(a0(k))=0 and F(a1(k))=0then
start=a1(k);
j=a1(k);
Repeat
assignF(j)=1;
IfT-1(j)=a0(n)for some n then
a=a1(n);
else
a=a0(n);
endif
ifT(a)=a0(m)for some m then
nextj=a1(m)
else
nextj=a0(m)
endif
j=nextj
Untilj=start;
endif
k=nextk;
Until all k′s have been treated,
其中对于线性访问顺序和交织访问顺序,所述控制信号分别是Xk=F(a0(k))以及Yk=F(T(a0(k)))。
13.根据权利要求1所述的方法,还包括:将子存储器t,t=0,1,2,...,2m-1-1的地址空间划分为所述地址空间的两个大小相等的子集,所述子集之一与子存储器t相关联,而所述子集的另一个与子存储器(t+2m-1)相关联,从而根据较低阶的2m-1对应项导出较高阶的2m并行处理。
14.根据权利要求1所述的方法,其中生成包括:标识线性访问顺序和交织访问顺序,标识并行处理较高的度以及并行处理的类型,构建将每个地址与一个存储器相关联的函数,以及根据所述函数导出所述控制信号。
15.根据权利要求1所述的方法,其中进行解码的所述数据是涡轮编码数据。
16.一种机器可读的指令程序,包含在有形存储器上,并且可由数字数据处理器执行,用以执行涉及控制存储器访问的动作,所述动作包括:
按照多址访问规则为第一蝶式网络和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对存储器组进行并行访问;
将所述控制信号发送至所述第一和第二蝶式网络;
其中所述存储器组包括多个存储器,所述第一蝶式网络配置用于将存储器地址应用于所述存储器组,以及所述第二蝶式网络配置用于传递去往或者来自所述存储器组的数据。
17.根据权利要求16所述的程序,其中线性顺序数据具有并行n元组访问,n=2m,{a0(k),a1(k),a2(k),...,an-1(k)},并且交织顺序数据具有并行n元组访问规则{T(a0(k)),T(a1(k)),T(a2(k)),...,T(an-1(k))},k=0,1,...,N/n-1,其中m是至少为1的整数,而N是所述存储器组的地址空间的长度。
18.根据权利要求17所述的程序,其中多址访问规则表达为:
将所述地址空间分割为奇地址和偶地址:a0(k)=2*k适用于所有偶地址,且a1(k)=2*k+1适用于所有奇地址。
19.根据权利要求17所述的程序,其中所述多址访问规则表达为:
从所述存储器组的开始和末尾将数据作为配对{a0(k),a1(k)}来处理:a0(k)=k且a1(k)=N-1-k,k=0,1,2,...,N/2-1,并且m=1。
20.根据权利要求17所述的程序,其中所述多址访问规则表达为:
从所述存储器组的开始和中间对数据进行处理:a0(k)=k且a1(k)=N/2+k,k=0,1,2,...,N/2-1,并且m=1。
21.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为4个连续数据值来并行处理{a0(k),a1(k),a2(k),a3(k)},a0(k)=4*k,a1(k)=4*k+1,a2(k)=4*k+2以及a3(k)=4*k+3,k=0,1,2,...,N/4-1,并且m=2。
22.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得两个值从所述存储器的开始和末尾是连续的,a0(k)=2*k,a1(k)=2*k+1,a2(k)=N-2-2*k以及a3(k)=N-1-2*k,k=0,1,2,...,N/4-1,并且m=2。
23.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得数据帧被分为4个大小相等的子帧,a0(k)=k,a1(k)=N/4+k,a2(k)=N/2+k以及a3(k)=3*N/4+k,k=0,1,2,...,N/4-1,并且m=2。
24.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为2m个连续的数据值来并行处理,对于p=0,1,...,2m-1,ap(k)=k*2m+p,其中k=0,1,2,...,N/2m-1。
25.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得从所述存储器的开始和末尾,2m/2个值是连续的,对于p=0,1,...,2m-1-1,ap(k)=k*2m-1+p,而对于p=2m-1,2m-1+1,...,2m-1,ap(k)=N-k*2m-1-(2m-p),其中k=0,1,2,...,N/2m-1。
26.根据权利要求17所述的程序,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得数据帧被分为2m个大小相等的子帧,ap(k)=p*N*2-m+k,p=0,1,...2m-1,其中k=0,1,2,...,N/2m-1。
27.根据权利要求16所述的程序,其中交织器表示为T,其中T的逆表示为T-1,其中所述多址访问规则表示为P2(k)={a0(k),a1(k)}以及{T(a0(k)),T(a1(k))},k=0,1,...,N/2-1,其中N表示所述存储器组的地址空间的长度,其中从地址空间0,1,...,N-1到两个存储器分量0和1的函数F具有初始值F(j)=0,j=0,1,2,...,N-1,使得所有数据最初处于存储器分量0中,并且其中所述控制信号作为以下内容执行的结果而生成:
assign k=0;
Repeat
If F(a0(k))=0and F(a1(k))=0then
start=a1(k);
j=a1(k);
Repeat
assignF(j)=1;
If T-1(j)=a0(n)for some n then
a=a1(n);
else
a=a0(n);
endif
ifT(a)=a0(m)for some m then
nextj=a1(m)
else
nextj=a0(m)
endif
j=nextj
Untilj=start;
endif
k=nextk;
Until all k′s have been treated,
其中对于线性访问顺序和交织访问顺序,所述控制信号分别是Xk=F(a0(k))以及Yk=F(T(a0(k)))。
28.根据权利要求16所述的程序,所述动作还包括:将子存储器t,t=0,1,2,...,2m-1-1的地址空间划分为所述地址空间的两个大小相等的子集,所述子集之一与子存储器t相关联,而所述子集的另一个与子存储器(t+2m-1)相关联,从而根据较低阶的2m-1对应项导出较高阶的2m并行处理。
29.根据权利要求16所述的程序,其中生成包括:标识线性访问顺序和交织访问顺序,标识并行处理较高的度以及并行处理的类型,构建将每个地址与一个存储器相关联的函数,以及根据所述函数导出所述控制信号。
30.根据权利要求16所述的程序,其中进行解码的所述数据是涡轮编码数据。
31.一种装置,包括:
存储器组,其包括多个存储器;
第一蝶式网络,其耦合至所述存储器组,并且配置用于将存储器地址应用于所述存储器组;
第二蝶式网络,其耦合至所述存储器组,并且配置用于传递去往或者来自所述存储器组的数据;以及
处理器,其具有耦合至所述第一和第二蝶式网络的控制输出,配置用于按照多址访问规则为所述第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对所述存储器组进行并行访问。
32.根据权利要求31所述的装置,其中线性顺序数据具有并行n元组访问规则,n=2m,{a0(k),a1(k),a2(k),...,an-1(k)},并且交织顺序数据具有并行n元组访问规则,n=2m,{T(a0(k)),T(a1(k)),T(a2(k)),...,T(an-1(k))},k=0,1,...,N/n-1,其中m是至少为1的整数,而N是所述存储器组的地址空间的长度。
33.根据权利要求32所述的装置,其中多址访问规则表达为:
将所述地址空间分割为奇地址和偶地址:a0(k)=2*k适用于所有偶地址,且a1(k)=2*k+1适用于所有奇地址。
34.根据权利要求32所述的装置,其中所述多址访问规则表达为:
从所述存储器组的开始和末尾对数据进行处理:a0(k)=k且a1(k)=N-1-k,k=0,1,2,...,N/2-1,并且m=1。
35.根据权利要求32所述的装置,其中所述多址访问规则表达为:
从所述存储器组的开始和中间对数据进行处理:a0(k)=k且a1(k)=N/2+k,k=0,1,2,...,N/2-1,并且m=1。
36.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为4个连续数据值来并行处理{a0(k),a1(k),a2(k),a3(k)},a0(k)=4*k,a1(k)=4*k+1,a2(k)=4*k+2以及a3(k)=4*k+3,k=0,1,2,...,N/4-1,并且m=2。
37.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得两个值从所述存储器的开始和末尾是连续的,a0(k)=2*k,a1(k)=2*k+1,a2(k)=N-2-2*k以及a3(k)=N-1-2*k,k=0,1,2,...,N/4-1,并且m=2。
38.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为4个数据值来并行处理,使得数据帧被分为4个大小相等的子帧,a0(k)=k,a1(k)=N/4+k,a2(k)=N/2+k以及a3(k)=3*N/4+k,k=0,1,2,...,N/4-1,并且m=2。
39.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为2m个连续的数据值来并行处理,对于p=0,1,...,2m-1,ap(k)=k*2m+p,其中k=0,1,2,...,N/2m-1。
40.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得从所述存储器的开始和末尾,2m/2个值是连续的,对于p=0,1,...,2m-1-1,ap(k)=k*2m-1+p,而对于p=2m-1,2m-1+1,...,2m-1,ap(k)=N-k*2m-1-(2m-p),其中k=0,1,2,...,N/2m-1。
41.根据权利要求32所述的装置,其中所述多址访问规则表达为:
将数据作为2m个数据值来并行处理,使得数据帧被分为2m个大小相等的子帧,ap(k)=p*N*2-m+k,p=0,1,...2m-1,其中k=0,1,2,...,N/2m-1。
42.根据权利要求31所述的装置,其中交织器表示为T,其中T的逆表示为T-1,其中所述多址访问规则表示为P2(k)={a0(k),a1(k)}以及{T(a0(k)),T(a1(k))},k=0,1,...,N/2-1,其中N表示所述存储器组的地址空间的长度,其中从地址空间0,1,...,N-1到两个存储器分量0和1的函数F具有初始值F(j)=0,j=0,1,2,...,N-1,使得所有数据最初处于存储器分量0中,并且其中所述控制信号作为以下内容执行的结果而生成:
assign k=0;
Repeat
If F(a0(k))=0and F(a1(k))=0then
start=a1(k);
j=a1(k);
Repeat
assignF(j)=1;
If T-1(j)=a0(n)for somenthen
a=a1(n);
else
a=a0(n);
endif
ifT(a)=a0(m)for some m then
nextj=a1(m)
else
nextj=a0(m)
endif
j=next j
Untilj=start;
endif
k=next k;
Until all k′s have been treated,
其中对于线性访问顺序和交织访问顺序,所述控制信号分别是Xk=F(a0(k))以及Yk=F(T(a0(k))),k=0,1,2,...,N/2-1。
43.根据权利要求31所述的装置,其中所述处理器配置用于如下生成所述控制信号:将子存储器t,t=0,1,2,...,2m-1-1的地址空间划分为所述地址空间的两个大小相等的子集,所述子集之一与子存储器t相关联,而所述子集的另一个与子存储器(t+2m-1)相关联,从而根据较低阶的2m-1对应项导出较高阶的2m并行处理。
44.根据权利要求31所述的装置,其中所述处理器配置用于如下生成所述控制信号:标识线性访问顺序和交织访问顺序,标识并行处理较高的度以及并行处理的类型,构建将每个地址与一个存储器相关联的函数,以及根据所述函数导出所述控制信号。
45.根据权利要求31所述的装置,其中进行解码的所述数据是涡轮编码数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/810,199 | 2007-06-04 | ||
US11/810,199 US8051239B2 (en) | 2007-06-04 | 2007-06-04 | Multiple access for parallel turbo decoder |
PCT/IB2008/052165 WO2008149290A1 (en) | 2007-06-04 | 2008-06-03 | Multiple access for parallel turbo decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101682338A true CN101682338A (zh) | 2010-03-24 |
CN101682338B CN101682338B (zh) | 2013-10-16 |
Family
ID=39795799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880018622.XA Active CN101682338B (zh) | 2007-06-04 | 2008-06-03 | 用于并行涡轮解码器的多址访问 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8051239B2 (zh) |
EP (1) | EP2160838A1 (zh) |
CN (1) | CN101682338B (zh) |
WO (1) | WO2008149290A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104584441A (zh) * | 2012-06-29 | 2015-04-29 | 美国博通公司 | 为并行turbo解码确定蝴蝶网络的控制位 |
CN105518632A (zh) * | 2013-09-27 | 2016-04-20 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN107302371A (zh) * | 2016-04-14 | 2017-10-27 | 联芯科技有限公司 | 一种turbo码译码系统及译码方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8194640B2 (en) | 2004-12-31 | 2012-06-05 | Genband Us Llc | Voice over IP (VoIP) network infrastructure components and method |
US9060047B2 (en) * | 2005-12-21 | 2015-06-16 | Genband Us Llc | Media stream management |
GB2456775B (en) * | 2008-01-22 | 2012-10-31 | Advanced Risc Mach Ltd | Apparatus and method for performing permutation operations on data |
US8090896B2 (en) * | 2008-07-03 | 2012-01-03 | Nokia Corporation | Address generation for multiple access of memory |
US7839310B2 (en) * | 2009-02-19 | 2010-11-23 | Nokia Corporation | Extended turbo interleavers for parallel turbo decoding |
EP2422452A4 (en) | 2009-04-24 | 2013-07-24 | Nokia Corp | DATA RENEWAL FOR THE DECODER |
JP5476902B2 (ja) * | 2009-09-30 | 2014-04-23 | 富士通株式会社 | ターボ復号装置及び通信装置 |
JP2011097245A (ja) * | 2009-10-28 | 2011-05-12 | Sony Corp | 受信装置、受信方法、プログラム、および受信システム |
US8255759B2 (en) * | 2009-10-29 | 2012-08-28 | Qualcomm Incorporated | APP (a priori probability) storage design for LTE turbo decoder with quadratic permutation polynomial interleaver |
US8406128B1 (en) * | 2010-06-29 | 2013-03-26 | Amazon Technologies, Inc. | Efficient highly connected data centers |
US20120030544A1 (en) * | 2010-07-27 | 2012-02-02 | Fisher-Jeffes Timothy Perrin | Accessing Memory for Data Decoding |
WO2012167231A1 (en) * | 2011-06-03 | 2012-12-06 | Exelis Inc. | Method and system for a programmable parallel computation and data manipulation accelerator |
US9268744B2 (en) * | 2011-12-31 | 2016-02-23 | Institute Of Automation, Chinese Academy Of Sciences | Parallel bit reversal devices and methods |
US20130262787A1 (en) * | 2012-03-28 | 2013-10-03 | Venugopal Santhanam | Scalable memory architecture for turbo encoding |
US9256531B2 (en) | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
US9418041B2 (en) | 2014-01-16 | 2016-08-16 | Qualcomm Incorporated | Sample process ordering for DFT operations |
TWI719745B (zh) * | 2019-12-09 | 2021-02-21 | 瑞昱半導體股份有限公司 | 記憶體資料存取裝置及其方法 |
Family Cites Families (12)
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 |
US5504743A (en) | 1993-12-23 | 1996-04-02 | British Telecommunications Public Limited Company | Message routing |
US5938790A (en) * | 1997-03-04 | 1999-08-17 | Silicon Systems Research Ltd. | Sequence error event detection and correction using fixed block digital sum codes |
US6604166B1 (en) * | 1998-12-30 | 2003-08-05 | Silicon Automation Systems Limited | Memory architecture for parallel data access along any given dimension of an n-dimensional rectangular data array |
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 |
US7139862B2 (en) * | 2003-02-24 | 2006-11-21 | Nokia Corporation | Interleaving method and apparatus with parallel access in linear and interleaved order |
-
2007
- 2007-06-04 US US11/810,199 patent/US8051239B2/en active Active
-
2008
- 2008-06-03 CN CN200880018622.XA patent/CN101682338B/zh active Active
- 2008-06-03 EP EP08763175A patent/EP2160838A1/en not_active Withdrawn
- 2008-06-03 WO PCT/IB2008/052165 patent/WO2008149290A1/en active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104584441A (zh) * | 2012-06-29 | 2015-04-29 | 美国博通公司 | 为并行turbo解码确定蝴蝶网络的控制位 |
CN105518632A (zh) * | 2013-09-27 | 2016-04-20 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN105518632B (zh) * | 2013-09-27 | 2019-07-09 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN107302371A (zh) * | 2016-04-14 | 2017-10-27 | 联芯科技有限公司 | 一种turbo码译码系统及译码方法 |
CN107302371B (zh) * | 2016-04-14 | 2020-10-27 | 联芯科技有限公司 | 一种turbo码译码系统及译码方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080301383A1 (en) | 2008-12-04 |
EP2160838A1 (en) | 2010-03-10 |
WO2008149290A1 (en) | 2008-12-11 |
CN101682338B (zh) | 2013-10-16 |
US8051239B2 (en) | 2011-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101682338B (zh) | 用于并行涡轮解码器的多址访问 | |
CN102084346B (zh) | 用于存储器的多路访问的地址生成 | |
US20180241504A1 (en) | Path sort techniques in a polar code successive cancellation list decoder | |
CN104040504B (zh) | 生成用于从存储介质读取数据的软信息值的方法和装置 | |
CN103262425B (zh) | 无竞争存储访问的系统和方法 | |
CN102543209B (zh) | 多通道闪存控制器的纠错装置、方法及多通道闪存控制器 | |
US10615824B2 (en) | Diagonal anti-diagonal memory structure | |
Krainyk et al. | Hardware-oriented turbo-product codes decoder architecture | |
US20150236723A1 (en) | Parallel VLSI architectures for constrained turbo block convolutional decoding | |
Tan et al. | Optimal cyclic locally repairable codes via cyclotomic polynomials | |
CN105356968A (zh) | 基于循环置换矩阵的网络编码的方法及系统 | |
Su | Optimal pliable fractional repetition codes that are locally recoverable: A bipartite graph approach | |
Nieminen | On quadratic permutation polynomials, turbo codes, and butterfly networks | |
Buzaglo et al. | Consecutive switch codes | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
EP4224720A1 (en) | Decoding method and apparatus | |
CN107688506A (zh) | 一种流水结构的bch译码系统 | |
Kang et al. | Low‐Complexity Multi‐size Cyclic‐Shifter for QC‐LDPC Codes | |
Zhou et al. | Flexible and high-efficiency turbo product code decoder design | |
Black | Algorithms and architectures for high-speed Viterbi decoding | |
US20160048449A1 (en) | Parallel turbine ternary content addressable memory for high-speed applications | |
Jiang et al. | Toward Lower Repair Bandwidth and Optimal Repair Complexity of Piggybacking Codes with Small Sub-packetization | |
Ji et al. | Pipelined implementations for belief propagation polar decoder: From formula to hardware | |
Kavitha et al. | High performance Viterbi decoder design | |
Su | Optimal pliable fractional repetition codes |
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: 20160112 Address after: Espoo, Finland Patentee after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Patentee before: Nokia Oyj |