用于并行涡轮解码器的多址访问的制作方法

文档序号:7515418阅读:153来源:国知局
专利名称:用于并行涡轮解码器的多址访问的制作方法
技术领域
本发明示例性而非限制性的实施方式总体上涉及无线通信系 统、方法、设备和计算机程序产品,并且更具体地,涉及对用于前 向纠错的信道码进行解码的技术。
背景技术
在无线通信系统的操作期间,在传输数据时,需要对用于前向
纠4晉的各种信道码进行解码。典型的信道码(例如在3G系统以及 WiMAX中使用的那些)是涡轮码(turbo code )、双涡轮码(duo-turbo code)以及低密度奇偶校验(LDPC)码。
较高的传输数据率意味着在接收机处要存在较快的信道解码 器。满足这一需求的一个简单的解决方案是提高接收机解码器的时 钟频率,从而实现所需的数据率。然而,使用高时钟频率需要解码 器(例如,在诸如ASIC的集成电路中实现的解码器)消耗较多的功 率,在便携式电池供电的设备中这是明显的缺点。
另一可能的解决方案是将并行处理用于解码。然而,该方法导 致了以两种不同访问顺序的多址数据访问相关的问题。尽管可以直 接设计用于一个访问顺序的多址访问方案,但是在涡轮码和低密度 奇偶校验码的情况下,多址访问方案必须可以在没有访问沖突的情 况下可用于至少两个独立的访问顺序。
解决多址访问问题的一种可能的技术是在没有内部多址访问能 力的情况下实现涡轮解码器的行或者组。当数据率不高(例如,小 于20Mbps)时,该技术可能是足够的。
建立并行处理的另 一 种可能技术是设计码交织器,使得交织器 支持某些类型的多址访问方案。此类方法的一个示例由Takeshita的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元组蝶式网络的输入管脚到输出管脚转换的表。
图IO是示出了如何确定4比特宽的控制信号的值的概念图。
图11是8元组蝶式网络的示意图,该蝶式网络具有布置在3列中的12个交换器以及用于该网络的8个输入和8个输出管脚。
图12是示出针对从输入管脚0到1的所有允许的转换、到图11的交换器的3比特控制信号的表。
图13是示出对于图11的8元组蝶式网络如何从多址访问函数Fn来导出所有12个控制比特的概念图。
图14是按照本发明示例性实施方式的方法的逻辑流程图。
具体实施例方式
用于3G移动设备(例如,cdma2000、 WCDMA)的某些涡轮解码器每个比特使用22个周期,以便在IO轮期间解码涡轮编码的数据。使用阶为2、 4和8的多址访问规则,周期效率分别约为10轮时每比特ll、 5.5和2.75个周期。本发明的示例性实施方式提供设计与较高的数据率(诸如那些未来的通信标准预期的数据率)结合使用、且具有合理低功耗的高速涡轮解码器的能力。本发明的实施
14方式可以在例如使用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。每个交换器能够创建直接连接(b。=0)或者交叉连接(b0=l)。此示例性蝶式网络的控制信号是4比特的(b3, b2,b,,bo)。数据可以从左至右或者从右至左通过蝶式网络。
参考图2,作为示例,如果并行处理的度为4,则第一(地址)蝶式网络18接收用以访问四个存储器(存储器—0、存储器_1、存储器—2、存储器_3)的组19的输入; 一组控制比特20 (4比特,例如b3, b2, b', bo);以及四个地址add0、 addl、 add2、 add3。四个地址通过蝶式网络18并且应用于连接至蝶式网络18的输出管脚的存储器组19。四个数据值从存储器组19并行地被读取(从每个存储器存储器—0、存储器一1、存储器—2、存储器一3读取一个数据值),并且按照与四个地址相同的方式、但是相反的方向被路由到第二 (数据)蝶式网络22。四个地址可以按照线性顺序或者交织顺序生成。控制比特2 0是顺序和位置特定的,并且按照本发明的示例性实施方式生成,这将在下文讨论。
对存储器组19的写与读类似,其中控制比特20、 4个写地址以及4个数据值被馈送到地址蝶式网络18和数据蝶式网络22。
控制信号20的比特可以按照线性顺序和交织顺序生成。控制信号20的比特可以在解码开始之前生成,并且被存储在辅助存储器緩沖器24中。例如,可以将相同的蝶式网络用于使用一组控制比特、按照线性顺序来将数据存储在存储器中和/或从存储器中获取数据,以及使用另 一组控制比特、按照交织顺序来将数据存储在存储器中和/或从存储器中获取数据。对于给定的并行度,两组控制比特是相同的宽度。用于2元组蝶式网络的控制信号是1比特宽,用于4元组蝶式网络的控制信号是4比特宽,而用于8元组蝶式网络的控制信号是12比特宽。 一般地,2m元组蝶式网络需要n^2""1比特宽的控制信号。
所示的实施方式非常适于但不限于用于度为2、 4和8的WCDMA涡轮码。注意,通过"f吏用蝶式网络18和22而成为可能的并行处理而不依赖于任何系统交织器。在更为一般性的描述中,针对n-2m的n元组生成用于允许线性顺序和交织顺序的两个并行访问的多址访问函数。图2中的存储器组的地址空间的总长度由N表示。存储组的组成存储器的长度为N/n。地址空间{0, 1,2,...,N-l》上的交织器由T表示,并且其逆交织器由T"表示。交织器的逆成为解交织器。从地址空间{0, 1,2, ...,N-1}到组成存储器地址空间{0, 1,2,...,11-1}的多址访问函数由F表示。具有地址K=0, 1, 2, N-l的数据值在存储组的组成存储器F(k)中。
在线性顺序中,对于k二O, 1,2,…N/n-l,数据具有n元组访问Pn(k)二 (ao(k), a,(k),…,a^(k",其中分量函数a」(k)描述每次应用哪些地址,而N表示地址空间的长度。假设,分量函数aj的值应当彼此不同,也即,对于Wj以及索引空间{0, 1, 2,…,N/n-l〉中的所有r和k,ai(r)^a」(k)。在交织顺序中,数据具有经由交织器T的其他n元组访问(T(a。(k)), T(a,(k)),…,T(a^,。为了使蝶式网络可行且可用于针对两个不同访问顺序而定义的并行访问,必须找到满足以下要求的多址访问函数F:
(i) F(aj(k)) # F(a』(k)),对于i^j以及所有k = 0,1, 2, ... , N/n國l(线性顺序)。
(ii) F(T(aj(k))) # F(T(a」(k)))对于的以及所有k = 0, 1, 2,...,N/n-l (交织顺序)。
(iii) 函数F生成用于线性顺序和交织顺序的度为r^2m的蝶式网络的控制比特。
基于2m元组蝶式网络的多址访问方案可以从较低度2m"迭代地设计。因此,4元组多址访问方案是才艮据其2元组对应项(counter part)导出的,并且过程可以更为一般地应用。设计过程开始于l元组,也即,通过每次访问一个数据值。从该设计过程可以得出获得的多址访问函数F适于蝶式网络的排列。
接下来,并行处理的度为2,并且并行处理的规则定义为P2(k)={a0(k), ai(k)}, k=0,l,2,…N/2-l, N表示存储器的长度,并且其交织并行对应访问是(T(a。(k)), T(ai(k))}。并且从地址空间0,1,2,...,N-1到两个存储器0和1的函数F具有初始值FCJ^0,^0,1,2,…,N-1。换言之, 开始,假设所有数据位于存储器0中。下面的算法将一半O替换为1。
算法
assign k = 0; Repeat
If F(ao(k)) - 0 and F(ai(k)) = 0 then start - ai(k); "a"k); Repeat assign F(j) = 1;
If T"1①=ao(n) for some n then a = a"n);
else
a = ao(n);
endif
if T(a) = a0(m) for some m then next j 二 ai(m)
else
next j = ao(ni)
endif j = nextj Until j = start;
cndif k = next k; Until all k's have been treated.
以上算法的广义概念是,在线性地址空间与交织地址空间之间 前后移动。从线性地址空间移动到交织地址空间的规则是基于以下
事实m^T(T"(m))^T(k),其中l^T"(m)。从交织地址空间移动到 线性地址空间的^L则是T(a)-b。在这两个地址空间中,应用并行访 问,见则分量函数a。(k)和a"k)来从一个地址移动到其并行配对地址。 也即,在线性地址空间中从a。(k)到a"k)或者从a,(k)到aQ(k),以及在 交织地址空间中从T(a。(k))到T(a,(k))以及从T(a,(k))到T(a0(k))。
在执行以上算法之后,可以保证,对于所有的k, F(a。(k))不等于 F(a"k)),以及F(T(a。(k)))不等于F(T(a(k))),其中k的范围取决于并 行访问》见则,例如k=0,l,2,...,N/2-l。由此可得,可以在没有存储器 访问冲突的情况下,利用线性顺序和交织顺序的两个并行访问来处 理数据。具有地址j的数据值在存储器F(j)中。而且,可以使用2元
18组蝶式网络来路由去往和来自两个存储器的数据。线性地址空间上
的蝶式网络的控制比特是F(ao(k))。在交织地址空间的情况下,蝶式 网络的控制比特是F(T(a"k)))。
可以按照多种方式来构建2元组并行访问规则P2。三个非限制 性示例包括
* 将地址空间划分为奇地址和偶地址,a。(k)通过所有偶地址 而a!(k)通过所有奇地址,也即,a。(k)=2*k而a,(k)=2*k+l;
* 作为备选,从开始和末尾来处理数据aQ(k)=k,且 a"k^N-l曙k, k=0,l,2,...,N/2-l;
* 备选地,对数据的处理从开始和中间进行ao(k)=k,且 a"k一N/2+k, k=0,l,2,...,N/2-l。
通过再次将每个子地址空间划分为两组,较高度的并行处理从 其较低度的对应项导出。例如,4元组多址访问函数是从2元组多址 访问函数导出的。构建的思想是将两个地址存储器空间都分为两 个,以便获得四个新的地址存储器空间。通过将存储器0的地址与 存储器0和2相关联来将其分为两组地址。同样,通过利用存储器l 和3重新分配存储器1的地址将其分为两组地址。为此,必须定义 如何形成2元组配对的^L则。为此,将2元组并行访问^L则定义为 P2(k) = {a0(k), a(k)}, k=0,l,2,...,N/2-l。继而,需要将所有2元组关 联为配对的函数,以便形成用于并行访问的4元组。定义配对函数 q2(k) = {b0(k),b(k)},其中b , k=l,2,3,...,N/4-l。最后,定 义4元组函数P4: P4(k) = {P2(b0(k)), P2(b(k)", k=l,2,3,...,N/4-l。 这得到
P4(k) = (P2(b。(k)),P2(b,
=(ao(b。(k)), ai(b0(k)), a。(b!(k)), a'(b, ={c0(k),Cl(k),c2(k),C3(k)}。 函数P4描述了 4元组并行访问规则。
可以按照多种方式来构建并行规则P4。三个非限制性示例包括
* 将地址空间划分为4个4的余数0、 1、2和3。继而在并行访问中处理4个连续的数据值。在此情况下P4(k) = (4k, 4k+l, 4k+2,4k+3), k = 1,2, 3,…,N/4曙l 。所以c。(k) = 4*k, c,(k) =4*k+l, c2(k) = 4*k+2,且c3(k) = 4*k+3。
* 作为备选,从开始和末尾来处理数据,使得每次处理来自 两个地址的两个数据值cQ(k) = 2*k, Cl(k) = N-l-2*k, c2(k)= 2*k+l, JLc3(k) = N-2-2*k, k = 0,1,2,..., N/4-1,也即,P4(k)二 (2*k, N-l-2*k, 2*k+l, N-2-2*k);
* 备选地,对数据的处理在四个大小相等的数据帧窗口上进 行c。(k)^k,c'(k)二N/4+k,C2(k)二N/2+k,且c3(k)= 3*N/4+k, k = 0,1,2,.. .N/4-l,换言之,P4(k) = (k, N/4+k, N/2+k, 3*N/4+k)。
下面的算法示出了如何将存储器0的地址存储器空间分为两个 地址存储器空间存储器0和存储器2。通过在执行算法之前指定 old=l和new=3,以同样的方式来对待存储器1的地址存储器空间。
算法
assign old = 0; assign new = 2; assign k = 0; Repeat
If (F(co(k)) = old or F(ci(k)) = old) and (F(c2(k)) = old or F(c3(k)) = old) then start == c2(k); j = c2(k); m = k; P = 2; Repeat If(F(j)^old)then j = Cp+加);
endif
assign F(j) = new;
If (T匿1 (j) = Cj(n) for some n) and (i<2 for some i) then a = c2(n); index = 2;
20200880018622.X
说明书第ll/24页
else
a = c0(n); index = 0;
endif
If (F(T(a)) # old) then endif
if (T(a) = ct(m) for some m) and (t<2 for some t) then next j = C2(m); P = 2;
else
next j = co(m》 p = 0;
endif j = nextj Until j = start;
endif
k next k;
Until all k's have been treated from 0 to N/4-1 ■
作为总结,用于构建4元组多址访问函数F的步骤是
* 执行第44自然段的算法,以获得基于选定的2元组多址访 问规则P2(k) = (a。(k), a柳,k = 0, 1,2, ... N/2-1的2元组多 址访问函数F;
* 执行第51自然段的算法,其中old=0且new=2,应用选定 的4元组多址访问规则P4(k) = {c0(k), Cl(k), c2(k), c3(k)}, k = 0, 1, 2,...,N/4-l;
* 第二次执行第51自然段的算法,其中old=l且new=3,再 次应用相同的4元组多址访问规则P4(k) = (co(k), d(k), c2(k), c3(k)}, k = 0, 1, 2,…,N/4國l 。
因为多数情况下仅需实现一个2元组并行访问规则和一个4元 组并4亍访问失见则,因此利用该特定2元组和4元组^L则的特殊属性 来简化第44自然段和第51自然段的算法是有益的。
接下来,将示出如何构建用于8元组蝶式网络的多址访问函数F。 8元组多址访问函数是通过将两个4元组合并为一个8元组来实现 的。首先,必须确定如何将4元组合并为8元组。为此,定义配对 函数r2: r2(k)=(s0(k), s"k))以及s0(k)#Sl(k), k = 0,1,2,…,N/8-1 。 8元组多址访问规则函数Ps定义为P8(k)= {P4(s0(k)), P4(Sl(k))}, k=0, 1, 2,…,N/8-l。换言之,
P8(k) = {P4(s0(k)),P4(Sl(k))}
={ c。(So(k)), c"s。(k)), c2(s0(k)), c3(s0(k)), c。(s,(k)), q(s'(k)),
c2(Sl(k)), c3(Sl(k))} ={d0(k), d,(k), d2(k), d3(k), d4(k), d5(k), d6(k), d7(k)}。 函数Ps描述了 8元组并行访问规则。因此,函数Ps指明了并行使用 哪8个地址。Ps的简单示例是针对8个连续数据值的并行访问规则 P8(k) = (8k, 8k+l, 8k+2, 8k+3, 8k+4, 8k+5, 8k+6, 8k+7), k = 0,1,2,..., N/8-1 。
用于4元组的多址访问函凄t F具有四个值0、 1、 2和3。用于8 元组的多址访问函数F是通过4安照以下描述倍增四个值而从给定的 4值多址访问函数导出的将与O相关联的一半地址映射到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(d,(k))-old or F(d2(k))=old or F(d3(k))-oW) 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 =錄); m = k; t = 4; Repeat
While , # old) dot = 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 = cLt(n); index = 4;
else
a = d0(n); ■index = 0;
endif
While (F(T(a)) # old) do
index = index + 1;
a = dindet(n); endwhile
■If (T(a) = d《m) for some m) and (r<4 for some r) then nextj = d4(m); t = 4;
else
nextj = do(m); t = 0;
endif j = nextj; Until j — start;
endif
Until all k,s have been treated from 0 to N/8-1;
作为总结,用以构建用于8元组并行访问的多址访问函数F的 正式步骤是
* 执行第44自然段的算法,以获得基于选定的2元组多址访 问规则P2(k),o(k),a,(k)), k = 0, 1,2,…N/2-l的2元组多 址访问函数F;
* 执行第51自然段的算法,其中old=0且new=2,应用选定 的4元组多址访问规则P4(k) = (co(k), d(k), c2(k), c3(k)}, k =
230, 1, 2,…,N/4-l;
* 第二次执行第51自然段的算法,其中old=l且new^,第 二次应用相同的4元组多址访问规则P4(k) = {co(k), d(k), c2(k), c3(k)}, k = 0, 1, 2,...,N/4-1;
* 首次执行第56自然段的算法,其中0ld二0且new二4,应用 选定的8元组访问访问规则P8(k) = {d0(k), d,(k), d2(k), d3(k), d=(k), d5(k), d6(k), d7(k)}, k=0,l,2,..適-l;
* 第二次执行第56自然段的算法,其中old=l且new二5,再 次应用相同的选定8元组访问访问规则P8(k) = {d0(k), d"k), d2(k), d3(k), d=(k), d5(k), d6(k), d7(k)}, k=0,l,2, ...N/8-1;
* 第三次执行第56自然段的算法,其中。ld-2且new二6,再 次应用相同的选定8元组访问访问规则P8(k) = {d0(k), d,(k), d2(k), d3(k), d=(k), d5(k), d6(k), d7(k)}, k=0,l,2,"扁-l;
* 第四次执行第56自然段的算法,其中old=3且new==7,再 次应用选定的8元组访问访问失见则P8(k) = {d"k),山(k), d2(k), d3(k), d=(k), d5(k), d6(k), d7(k)}, k=0,l,2,…N/8-l。
在执行所列出的步骤之后,针对8元组并行访问规则的多址访 问函数F满足要求第41自然段的要求(i)、 (ii)和(iii),其中n-8。
一般地,用于2m元组蝶式网络的多址访问函数可以迭代地根据 用于2"^元组蝶式网络的较低度多址访问函数来进行设计。与子存 储器t (其中t-0,l,2,…,2m"-l )相关联的一半地址被重新指派给新的 子存储器(t十201—1)。
接下来,给出三个数字示例来示出如何应用本发明的方法来建 立针对给定并行访问规则的蝶式网络的多址访问函数和控制比特二 者。三个并行访问是2元组、4元组和8元组的。数据帧分别分为2 个、4个和8个大小相等的子帧,并且经由蝶式网络将其作为2元组、 4元组和8元組来并行访问。帧长度是104,并且交织器是具有长度 104的WCDMA涡轮码的交织器。104比特长的WCDMA涡轮码交 织器的值在图3A/表1中列出。针对两个大小相等的子帧的2元组并行访问MJ'j由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))须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,l, 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(IO) =11,也即,11DEC= lOllBN作为4比特二进制数。值BNL(lO)二ll 是根据图10中所示的多址访问函数F的四个值F( 10) =FQ, F(62) = F,, 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元组并行访问规则Ps定义为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。当 利用多址访问规则Ps执行第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 = 1011 0010 1011腦作为12比特的二进制数字。图3E/表5中的多址 访问函数F的值是按照交织顺序的,并且其生成了用于8元组蝶式 网络的不同的控制比特集合。例如,在交织访问顺序中,在I^9处, 控制比特是BNI(9) = 1030DEC = 0100 0000 0110wN作为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来表示。 接下来,使用解交织器T1,算法从线性访问顺序(左侧)移动303 到交织访问顺序(右侧)。实线箭头示出了图3F中的移动。在此步 骤,算法以交织访问顺序从二元组移动303到其由4元组多址访问 规则定义的并行配对2元组,如框304所示。在此之后,算法查找2 元组的哪个分量具有O。继而,算法使用交织器在框306从交织访问 顺序移动回305线性访问顺序。虛线示出了这些移动。在框306,算 法使用线性访问顺序在4元组内部从一个2元组移动到其并行配对。 算法查找哪个2元组分量具有0,并且将0替换为2,这从框306的 2元组之一可见。继而,算法再次应用解交织器T",以便从框306 处的线性访问顺序移动到框308处的交织访问顺序。该过程继续,
26直到算法最后回到图的进入和退出节点302。在此之后,最外层 Reapeat循环309继续查找下一个可能的进入节点。
在使用期间,可以通过标识线性访问顺序和交织访问顺序来开 始。接下来,确定并行处理的度2、 4、 8或者更高;以及确定并行 处理的类型在并行访问中使用哪些地址。继而,应用算法来构建 多址访问函数,其将每个地址与一个存储器相关联。最后,针对线 性访问顺序和交织访问顺序二者,根据多址访问函数导出用于蝶式 网络18和22的控制比特20。
还如图2所示,本发明的示例性实施方式至少可以部分地利用 数据处理器(DP)26来实现,该DP26与存储用于执行上述算法的 指令的程序存储器(PROG—MEM) 28耦合。如上所述,在开始解码 操作之前,可以将根据函数导出的、表示控制信号20的得到的比特 存储在緩沖器24中。
请注意,在涡轮解码器实现于移动电话或者其他类型用户终端 或者设备中、或者当其包含在诸如基站或节点B等网元中的实施方 式中,至少还将存在适当类型的无线通信接收机30,用于接收将要 进行涡轮解码的数据。在包括具有多个存储器的存储器装置(诸如, 存储器组)的设备这一特定实施方式中,第一交换装置(诸如,第 一蝶式网络)耦合至存储器装置,并且配置用于将存储器地址应用 于存储器装置;第二交换装置(诸如,第二蝶式网络)耦合至存储 器装置,并且配置用于传递去往或者来自存储器组的数据;以及处 理装置,诸如存储器。处理装置具有耦合至第一和第二交换装置的 控制输出,并且配置用于按照多址访问规则为第 一和第二交换装置 生成控制信号,以允许在没有存储器访问冲突的情况下按照线性顺 序和交织顺序之 一 支持对存储器组进行并行访问。
在3G网络的情况下,存在用于信道码的5075个交织器。已经 针对所有的5075中使用情况验证了前述算法的使用。已经发现,对 于并行度2、 4和8,通过最初将地址空间分割为偶地址和奇地址、 分割为2个、4个或者8个大小相等的子地址空间或者分割为镜像地址空间,本发明的示例性实施方式适用于所有3G涡轮交织器。
现在,将详细描述蝶式网络及其控制信号的特定示例。图4示 出了包含两个子存储器的简单存储器组19,其中一个交换器IO控制 读和写访问。当并行地将偶存储器地址和奇存储器地址中的输入数 据值作为配对取回时,需要线性访问顺序和交织访问顺序二者,并 且对于所有k=0,l,2,..,(N/2)-l,两对地址(2k,2k+l》以及(T[2k], T[2k+1])被逐对应用于两个存储器。使用 一个控制比特20来控制该 访问的顺序,这是因为仅使用了一个交换器10。用于线性访问的控 制比特表示为Xk,而用于交织访问的控制比特表示为Yk。由于在存 储器组19中存在两个存储器地址用于存储两个数据值,所以图4表 示的是2元组实现。继而,从上文算法可得用于交换器的控制比 特可以定义如下
图5类似于图4,但是存储器19包含4个子存储器。在此网络 中,并行地取回连续存储器地址中每一个中的四个数据值作为4元 组,并且k的范围是k-0,l,2,…(N/4)-l。用于线性访问的4比特宽控 制信号是Xk= (xk3, xk2, xkl, xko),而用于交织访问的是Yk= (yk3, yk2, ykl,yk。)。图5中所示的是,线性访问控制信号的每一比特应用于交 换器10、 12、 14、 16中不同的一个。交织访问的控制比特类似地应 用。
请注意,从索引集合{0, 1,2,…,N/4-l〉到存储器集合(Mem0, Mem 1, Mem 2, Mem 3}的函数F是这样的对于{0, 1,2, ...,N/4-l} 中的所有k以及m-O, 1,2, 3和j-O, 1,2,3以及m^j, F(4k+m) # F(4k+j)以及F(T[4k+m]) # F(T[4k+j])。图5所示的4度蝶式网络仅能 生成24=4!之外的16个不同排列。幸运的是,所给出的构建多址访 问函数的一般性概念确保了所获得的函数仅应用蝶式网络的排列。
0 如果,(7124=存储器0;
1 否则;
Ar = 0,l,2,...iV/2 — l因此,存在多址访问函数F,使得该函数应用4度蝶式网络的排列。 这是通过使用镜像2元组访问方案来实现的,如图6-图7所示。 2元组的配对是(k, N-l-k〉以及(T[k〗,T[N-k-l]〉, k=0,l,2,3,…,N/2-l。在 这种情况下,可以令索引k取地址空间中的所有值。考虑图6。无沖 突的镜像2元组访问方案是基于从索引集和{0, 1, 2, 3,...,N/2-l)到存 储器组19 (MemO, Mem 1 )的函数F,其具有如下属性对于{0, 1, 2,…,N/4-l》中的所有k, F(k)^F(N-l-k)以及F(T[k])^F(T[N-l-k])。 用于2阶蝶式网络的控制比特20按照与上文针对图4详细描述的相 同方式根据函数F导出。
对于图7网络的4元组多址访问,倍速解码器的实现使用了镜 像4元组访问方案。4元组的配对现在是(2k,N-l-2k, 2k+l, N-2-2k》和 {T[2k],T[N-l-2k],T[2k+l],T[N-2-2k]}, k = 0,1,2,…,N/4國1 。因为索引 编制是对称的,因此可以令索引k取从0到N/2-l的值。
无沖突的镜像4元组访问方案得自从索引集合{0, 1,2,3,..., N/4-l》到存储器组19{MemO, Mem 1, Mem 2, Mem 3}的函数F,其具 有属性
(i) 对于{0,1,2,3,..., N/4醫l}中的所有k, F(2k)、 F(N國l-2k)、 F(2k+1) 和F(N-2-2k)互不相等
(ii) 对于{0, 1,2, 3,…,N/4画1〉中的所有k, F(T[2k])、 F(T[N画l-2k])、 F(T[2k+l ])和F(T[N-2-2k])互不相等
(iii) 函数F应用4度蝶式网络的排列。
与针对图5描述的连续4元组访问方案相同,线性顺序4元组 (2k,N-l-2k,2k+l,N画2國2k〉具有控制信号Xk= (xk3, xk2, xkl, xk0),而交 织4元组(T[2k], T[N-l-2k], T[2k+1], T[N-2-2k]〉具有控制信号Yk =
(yk3, yk2, yki, yko).
通过以上从图6的2元组镜像访问方案到图7的4元组镜像访
问方案的扩展可见,基于2m元组蝶式网络的多址访问方案可以从较 低阶的2m-元组迭代地设计。
现在将进一步详细讨论控制信号。如上所述,多址访问函数为相应的蝶式网络提供控制信号。值F(k)是适合第k个数据值的存储
器索引。蝶式网络将数据值及其地址映射到F(k)所指向的存储器。
蝶式网络的度确定了在一个时钟周期内进行多少并行访问。
图8是示出具有线性地址和交织地址的虫莱式网络和多址访问函 数F的输入和输出管脚(用于交换器10、 12、 14、 16)的表。使用 不同的符号来区分所使用的不同水平的并行度。利用这些符号,蝶 式网络将输入管脚y处第k个元组的数据值重新路由到输出管脚 以用于线性寻址,并将其重新路由到输出管脚FT&以用于交织寻址。 F^和Fw的范围是0,l,2,…2m-l,其中2"表示并行处理的度。
如上所述,用于2元组蝶式网络的控制信号是1比特宽。要构 建两类控制信号, 一类用于线性寻址,另一类用于交织寻址。它们 是
XA=/^以及K=F , k = 0,1,2,…N/2-l 这不是唯一的解决方案。当然可以选择F^和FTk,用于控制。在涡轮 解码开始之前计算这两个信号并将其存储在存储器(例如,图2的 緩冲器24)中。存储器的字长是2,而长度是N/2。要指出的是,在 根据多址访问函数F构建控制信号时,没有信息消失。 一旦已经生 成了两个控制信号,则可以忽略多址访问函数F的值。
用于4元组蝶式网络的控制信号Xk= (xk3, xk2, xkl, Xk。)是4比特 宽的。4比特宽的字的数量是N/4。每个2度蝶式网络存在1个控制 比特。比特和蝶式网络如图5所示的关联。图9示出了对于4度蝶 式网络而言所有允许的输入-输出转变的访问控制比特。 一个输入管 脚到输出管脚的迁移影响2个控制比特。2个比特值等于输入管脚号 与输出管脚号的异或(XOR)。从图9可知,可以通过Xko-Fko模 2, Xkl = Fk2模2, Xk2 = (1 — Xk。) * (Fk。/2) + Xk。 * (Fk,/2)以及Xk3 = Xk0*(Fk()/2) + (1 - Xko"(Fk!/2)来设置用于线性寻址的控制比特Xk = (Xk3, Xk2, Xkl, Xk0)。以相同的方式,可以通过Yk。 = FTk。模2, Ykl = FTk2 模2, Yk2 = (1 — Yk。) * (FTk。/2) + Yk。 * (F化/2)以及Yk3 = Yk。*(FTk0/2) + (1画Yko"(F丁k,/2)来指派用于交织寻址的控制比特Yk= (Yk3, Yk2, Ykl,Yk0)。将控制比特Xk和Yk存储在8比特宽的字、并具有长度N/4的 存储器(緩冲器24或者地址18)中。
图IO是示出了用于设置4比特宽控制信号的比特值的公式的概 念图。因为4度蝶式网络能够进行24种可能排列中的16种排列, 因此仅3个输出管脚值Fo、 F,和F2确定4个控制比特的值。请注意, 4个控制比特是根据输出管脚的4个比特导出的,使得输入管脚n 与输出管脚Fn的异或(nXORFn)不改变这4个比特。
用于8元组蝶式网络的控制信号是12比特宽。如图ll所示,8 度蝶式网络包括12个交换器(控制它们的线性访问控制比特表示为 X。到X ),或者12个2度蝶式网络。输入管脚从上到下编号为0, 1, 2, 3,4, 5, 6和7,并且输出管脚类似地编号为0, 1, 2, 3, 4, 5, 6和7。 例如,如果在图8中,在k处应用线性并行访问并且Fk^7,则8元 组蝶式网络将来自输入管脚2的数据路由至输出管脚7。因此,控制 比特X,、 X6和Xu分别具有值1、 0和1。
图12是示出用于从输入管脚0和1的所允许路由的控制比特的 表。图12中标为nXFn的列表示(nXORFn)。如图11和图8所示, 对于线性访问和交织访问,输入管脚n分别连接至输出管脚Fn = Fkn 和输出管脚Fn = FTkn。多址访问函数F的每个值是3比特的二进制数。 ("XORF")的最低有效位指派了 2度蝶式网络的最左列的控制比 特(X0, Xl5 X2或X3)之一。(n XOR Fn)的中间位是2度蝶式网络 的中间列中的控制比特(X4, X5, X6或X7)之一。(nXORFn)的最 高有效位构成了 2度蝶式网络的最右列的控制值(X8, X9, X1Q或X,!) 之一。例如,对于8元组i菜式网络的交织访问顺序而言,在图3E/ 表5中示出,在k4处,输入管脚6具有输出管脚F6-FT,,6-4。换 言之,8元组蝶式网络将输入管脚6连接至输出管脚4。现在,6=110BIN 且4=100画,这可得(110BINXOR100BIN) = 010BIN。 010腦的最低有
效位0控制输入管脚6的路由,因此乂3=0。 二进制数010B!n的中间
位l贡献Xs: X5 = l。 010bw的最高有效位0携带Xs的值。在图3E/ 表5中,BNI (l)的值是563=0010 0011 0011BIN,其中三个黑体字指示010bw的比特在12比特控制信号中的位置。使用图12的(nXFn) 的3比特字段来通过图11的8元组网络,将给出源起11=0或n=l到 Fn所指的任何输出管脚的、穿过网络的每个可能路径,其中所指示 的比特通过0指示直线路径,而通过1指示通过交换器XQ, X,, ..., Xu 的交换路径。(nXFJ的3比特值的每一个指示通过图11的网络的一 列中的一个交换器的路径。
图13示出了如何根据多址访问函数F的值导出所有12个控制 比特的示意图。示出了输入管脚n=0,l,...,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中所示的各个框可以视作方法步骤或者源自计算 机程序代码操作的操作。
一般地,可以通过硬件或者专用电路、软件、逻辑或者其任何 组合来实现各种示例性实施方式。例如, 一些方面可以通过硬件实 现,而其它方面可以用可以通过可由硬件如控制器、微处理器或者 其它计算设备执行的软件或固件来实现,当然,本发明并不限于此。 尽管本发明的各种方面可以图示和描述为框图、流程图或者使用一 些其它图形表示来图示和描述,但是可以理解,作为非限制性示例, 这里描述的这些框、装置、系统、技术或者方法可以通过硬件、软 件、固件、专用电路或者逻辑、通用硬件或者控制器或者其它计算 设备或其某些组合来实现。
由此,本发明的实施方式可以通过各种部件如集成电路模块来 实现。集成电路的设计基本上是高度自动化的过程。复杂而强大的
和形成的半导体电路设计。这样的软件工具可以使用完善的设计规 则以及预存设计模
33部件进行定位。
一旦已经完成用于半导体电路的设计,可以将标准
化电子格式(例如Opus、 GDSII等)的所得设计发送到半导体制作 设施,以制造为一个或多个集成电路器件。
当结合附图和所附权利要求书来阅读以上描述时,各种修改和 适应对于本领域技术人员而言可以变得易见。作为某些示例,本领
域技术人员可以尝试将示例性实施方式用于非涡轮编码的数据,因 为一般而言,示例性实施方式可以适用于任意类型的迭代解码器。 然而,对本发明教导的任何和所有修改仍将落入本发明非限制实施 方式的范围内。
此外,尽管已经在例如3G系统的上下文中描述了示例性实施 方式,但是应当理解,本发明的示例性实施方式不限于仅与一种特 定类型的无线通信系统结合使用,而是可以用来改进其他无线通信 系统,包括3.9G (EUTRAN)以及未来类型的系统。
而且,可以利用本发明的示例的某些特征,而无需相应使用其 他特征。由此,上文描述应当理解为仅仅是对本发明的原理、教导、 示例和示例性实施方式的说明,而非对其的限制。
权利要求
1.一种方法,包括提供包括多个存储器的存储器组,配置用于将存储器地址应用于所述存储器组的第一蝶式网络,以及配置用于传递去往或者来自所述存储器组的数据的第二蝶式网络;以及按照多址访问规则为所述第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对所述存储器组进行并行访问。
2. 根据权利要求1所述的方法,其中线性顺序数据具有并行n 元组访问规则,n=2m, (ao(k),a,(k),a2(k),…,an-"k",并且交织顺序数 据具有并行n元组访问规则(T(a。(k)), T(a"k)), T(a2(k)),…,T(an-,(k)", k=0, 1,…,N/n-l,其中m是至少为l的整数,而N是所述存储器组 的地址空间的长度。
3. 根据权利要求2所述的方法,其中多址访问配对表达为 将所述地址空间分割为奇地址和偶地址a。(k) = 2*k适用于所有偶地址,且a"k) = 2*k+l适用于所有奇地址。
4. 根据权利要求2所述的方法,其中所述多址访问规则表达为 从所述存储器组的开始和末尾将数据作为配对(a。(k), a(k) }来处理a。(k)-k且a,(k)-N-l-k, k=0, 1, 2,…,N/2-l,并且m二l。
5. 根据权利要求2所述的方法,其中所述多址访问规则表达为 从所述存储器组的开始和中间将数据作为配对{ao(k), at(k) }来处理ao(k)二k且a"k)-N/2+k, k=0, 1, 2,…,N/2画l,并且m爿。
6. 根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为4个连续数据值来并行处理(a。(k), a!(k), a2(k), a3(k)},a0(k) = 4*k, a(k) = 4*k+l, a2(k) = 4*k+2以及a3(k) = 4*k+3, k=0, 1,2, ..., N/4-1,并且m=2。
7,根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为4个数据值来并行处理,使得两个值从所述存储器的开始和末尾是连续的,a。(k) = 2*k, a(k) = 2*k+l, a2(k)=N-2-2*k以及 a3(k) = N-l-2*k, k=0, 1, 2,…,N/4-l,并且m=2。
8. 根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为4个数据值来并行处理,使得数据帧被分为4个大小相等的子帧,a。(k) = k, a"k) = N/4+k, a2(k) = N/2+k以及a3(k)= 3*N/4+k, k = 0, 1, 2,…,N/4画l,并且m=2。
9. 根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为2m个连续的数据值来并行处理,ap(k"1^2m + p, p=0,l,..., 2m-l,其中k = 0, 1, 2, ...,N/2m-l。
10. 根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为2m个数据值来并行处理,使得从所述存储器的开始和末尾,2"V2个值是连续的,对于p=0, 1,...,2m"-l, ap(k)二1^2m" + p, 而对于p:2m",2"^+l,…,2m画l, ap(k"N画k承2m-'-(2气p),其中k-O, 1, 2,…,N/2m-l。
11. 根据权利要求2所述的方法,其中所述多址访问规则表达为 将数据作为2m个数据值来并行处理,使得数据帧被分为2巾个大小相等的子帧,ap(k)=p*N*2-m + k, p=0,l,...2m-l,其中k:0,1,2,…, N/2m-l。
12. 根据权利要求1所述的方法,其中交织器表示为T,其中T 的逆表示为T",其中所述多址访问规则表示为P2(k) = (a"k),a,(k)〉 以及a{T(a0(k)), T(a(k)", k=0,l,..., N/2-1 ,其中N表示所述存储器 组的地址空间的长度,其中从地址空间0, 1,…,N-1到两个存储器分 量0和1的函数F具有初始值F(j)二O,ji, 1,2, ...,N-l,使得所有数 据最初处于存储器分量0中,并且其中所述控制信号作为以下内容 执行的结果而生成assign k = 0; RepeatIf F(a。(k)) = 0 and F(a卿=0 then start - ai(k); j = a,(k); Repeat assign F①=1;If T1①=ao(n) for some n then a = ai(n);elsea = ao(n);endifif T(a) : a。(m) for some m then nextj = ai(m)elsenextj = ao(m)endif j = next j Until j = start;endifk = next k; Until all k,s have been treated,其中对于线性访问顺序和交织访问顺序,所述控制信号分别是xk =F(ao(k))以及Yk = F(T(a()(k)))。
13. 根据权利要求1所述的方法,还包括将子存储器仁1=0, 1, 2, ..., 2m"-1的地址空间划分为所述地址空间的两个大小相等的子 集,所述子集之一与子存储器t相关联,而所述子集的另一个与子存 储器(t + 2m")相关联,从而根据较低阶的2"^对应项导出较高阶的2m 并行处理。
14. 根据权利要求1所述的方法,其中生成包括标识线性访 问顺序和交织访问顺序,标识并行处理较高的度以及并行处理的类 型,构建将每个地址与一个存储器相关联的函数,以及根据所述函 数导出所述控制信号。
15. 根据权利要求1所述的方法,其中进行解码的所述数据是 涡轮编码数据。
16. —种机器可读的指令程序,包含在有形存储器上,并且可由 数字数据处理器执行,用以执行涉及控制存储器访问的动作,所述 动作包括按照多址访问规则为第 一蝶式网络和第二蝶式网络生成控制信 号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对存储器组进行并行访问;将所述控制信号发送至所述第一和第二蝶式网络; 其中所述存储器组包括多个存储器,所述第一蝶式网络配置用于将存储器地址应用于所述存储器组,以及所述第二蝶式网络配置用于传递去往或者来自所述存储器组的数据。
17. 根据权利要求16所述的程序,其中线性顺序数据具有并行n元组访问,n=2m, {aQ(k), a"k), a2(k),…,an.,(k)),并且交织顺序数据 具有并行n元组访问规则(T(a。(k)), T(a"k)), T(a2(k)),…,T(a^,, k=0, 1, ...,N/n-l,其中m是至少为l的整数,而N是所述存储器组 的地址空间的长度。
18. 根据权利要求17所述的程序,其中多址访问规则表达为 将所述地址空间分割为奇地址和偶地址a。(k) = 2*k适用于所有偶地址,且a,(k)二24k+l适用于所有奇地址。
19. 根据权利要求17所述的程序,其中所述多址访问规则表达为从所述存储器组的开始和末尾将数据作为配对(ao(k), a(k) }来 处理ao(k)-k且a"k)-N-l画k, k=0, 1, 2,…,N/2画l,并且m二l。
20. 根据权利要求17所述的程序,其中所述多址访问规则表达为从所述存储器组的开始和中间对数据进行处理ao(k) = k且a,(k) =N/2+k, k=0, 1, 2,…,N/2-l,并且m:l。
21. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为4个连续数据值来并行处理(ao(k), ai(k), a2(k), a3(k)}, a0(k) = 4*k, ai(k) = 4*k+l, a2(k) = 4*k+2以及a3(k) = 4*k+3, k=0, 1, 2, N/4-1,并且m=2。
22. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为4个数据值来并行处理,使得两个值从所述存储器的 开始和末尾是连续的,a。(k) = 2*k, a!(k) = 2*k+l, a2(k)=N-2-2*k以及 a3(k) = N-l-2*k, k=0, 1, 2,…,N/4画l,并且m=2。
23. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为4个数据值来并行处理,使得数据帧被分为4个大小 相等的子帧,a。(k) = k, a!(k) = N/4+k, a2(k) = N/2+k以及a3(k)= 3*N/4+k, k = 0, 1,2,…,N/4-l,并且m=2。
24. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为2m个连续的数据值来并行处理,对于p=0, l,...,2m-l, ap(k)=k*2m + p,其中k = 0, 1,2, ...,N/2m-l。
25. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为2m个数据值来并行处理,使得从所述存储器的开始 和末尾,2"72个值是连续的,对于p=0, l,...^"1-^, ap(k)-1^2"^ + p, 而对于p:2m",2"^+l,…,2"1-1, ap(k卜N-1^2"^画(2m-p),其中k-O, 1, 2, ...,N/2m-l。
26. 根据权利要求17所述的程序,其中所述多址访问规则表达为将数据作为2m个数据值来并行处理,使得数据帧被分为2"个大小相等的子帧,ap(k)=p*N*2-m + k, p=0,l, ...2m-l,其中k^0,1,2,…, N/2m-l。
27. 根据权利要求16所述的程序,其中交织器表示为T,其中 T的逆表示为T",其中所述多址访问规则表示为P2(k) = {a0(k), a,(k)〉 以及(T(ao(k)),T(a,,k二O,l,..., N/2-1,其中N表示所述存储器组 的地址空间的长度,其中从地址空间0, 1, ...,N-l到两个存储器分量 0和1的函数F具有初始值F(j)-O,j-O, 1,2,…,N-1,使得所有数据最初处于存储器分量0中,并且其中所述控制信号作为以下内容执行的结果而生成assign k = 0;If F(ao(k)) = 0 and F(a卿=0 then start = a!(k);Repeat assign F(j) = 1;If T" (j) = ao(n) for some n then a = a"n);elsea = a。(n);endifif T(a) 二 ao(m) for some m then next j = ai(m)elsenextj 二 ao(m)endif j = next j Until j - start;endif k = next kj Until all k's have been treated,其中对于线性访问顺序和交织访问顺序,所述控制信号分别是xk =F(ao(k))以及Yk = F(T(a0(k)))。
28. 根据权利要求16所述的程序,所述动作还包括将子存储 器t, t=0, 1,2, ...,2m"-l的地址空间划分为所述地址空间的两个大小 相等的子集,所述子集之一与子存储器t相关联,而所述子集的另一 个与子存储器(t + 2"^)相关联,从而根据较低阶的2""对应项导出较 高阶的2""并行处理。
29. 根据权利要求16所述的程序,其中生成包括标识线性访 问顺序和交织访问顺序,标识并行处理4交高的度以及并行处理的类 型,构建将每个地址与一个存储器相关联的函数,以及根据所述函 数导出所述控制信号。
30. 根据权利要求16所述的程序,其中进行解码的所述数据是 涡轮编码数据。
31. —种装置,包括存储器组,其包括多个存储器;第一蝶式网络,其耦合至所述存储器组,并且配置用于将存储 器地址应用于所述存储器组;第二蝶式网络,其耦合至所述存储器组,并且配置用于传递去 往或者来自所述存储器组的数据;以及处理器,其具有耦合至所述第一和第二蝶式网络的控制输出, 配置用于按照多址访问规则为所述第 一和第二蝶式网络生成控制信 号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织 顺序之一对所述存储器组进行并行访问。
32. 根据权利要求31所述的装置,其中线性顺序数据具有并行 n元组访问规则,n=2m, {ao(k),ai(k), a2(k),…,a^(k",并且交织顺序 数据具有并行n元组访问规则,n=2m, {T(a0(k)), T(a"k)), T(a2(k)),…,T(an—(k)", k=0, 1,…,N/n-l,其中m是至少为1的整数, 而N是所述存储器组的地址空间的长度。
33. 根据权利要求32所述的装置,其中多址访问规则表达为 将所述地址空间分割为奇地址和偶地址aQ(k) = 2*k适用于所有偶地址,且a!(k)-2申k+l适用于所有奇地址。
34. 根据权利要求32所述的装置,其中所述多址访问规则表达为从所述存储器组的开始和末尾对数据进行处理aQ(k) = k且a"k) =N-l-k, k=0, 1, 2,…,N/2-l,并且m:l。
35. 根据权利要求32所述的装置,其中所述多址访问规则表达为从所述存储器组的开始和中间对数据进行处理ao(k) = k且a!(k) =N/2+k, k=0, 1,2,…,N/2-1,并且m-l。
36. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为4个连续数据值来并行处理(ao(k), a!(k), a2(k), a3(k)}, a0(k) = 4*k, a!(k) = 4*k+l, a2(k) = 4*k+2以及a3(k) = 4*k+3,
37. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为4个数据值来并行处理,使得两个值从所述存储器 的开始和末尾是连续的,a。(k) = 2*k, a(k) = 2*k+l, a2(k)=N-2-2*k以 及a3(k) =N-l-2*k, k=0, 1, 2,…,N/4-1,并且m=2。
38. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为4个数据值来并行处理,使得数据帧被分为4个大 小相等的子帧,a0(k) = k, a,(k) = N/4+k, a2(k) = N/2+k以及a3(k)= 3*N/4+k, k = 1 N/4-l,并且m=2。
39. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为2m个连续的数据值来并行处理,对于p=0, l,...,2m-l, ap(k)=k*2m + p,其中k = 0, 1,2, ...,N/2m-l。
40. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为2m个数据值来并行处理,使得从所述存储器的开始和末尾,2"V2个值是连续的,对于p=0, 1,...,2m"-l, ap(k)-1^2m" + p, 而对于p-2"^,2m-'+l,…,2m誦l, ap(k)二N-k承2^'-(2m-p),其中k二
41. 根据权利要求32所述的装置,其中所述多址访问规则表达为将数据作为2m个数据值来并行处理,使得数据帧被分为2"个大小相等的子帧,ap(k)=p*N*2-m + k, p=0,l,...2m-l,其中k-0,1,2,…, N/2m-l。
42. 根据权利要求31所述的装置,其中交织器表示为T,其中 T的逆表示为T",其中所述多址访问规则表示为P2(k) = (ao(k), a(k)} 以及(T(a。(k)),T(ai(k)", k=0,l,..., N/2-l,其中N表示所述存储器组的地址空间的长度,其中从地址空间0, 1,…,N-1到两个存储器分量0和1的函数F具有初始值F(j)二O,j二O, 1,2, ...,N-l,使得所有数据最初处于存储器分量0中,并且其中所述控制信号作为以下内容执行的结果而生成<formula>formula see original document page 10</formula>其中对于线性访问顺序和交织访问顺序,所述控制信号分别是Xk = F(a0(k))以及Yk = F(T(a0(k))), k=0, 1 , 2,…,N/2匿1 。
43. 根据权利要求31所述的装置,其中所述处理器配置用于如下生成所述控制信号将子存储器t,t二O, l,2,...,2m—的地址空间划分为所述地址空间的两个大小相等的子集,所述子集之一与子存储器t相关联,而所述子集的另一个与子存储器(t + 2m")相关联,从而根据较低阶的2""对应项导出较高阶的2m并行处理。
44. 根据权利要求31所述的装置,其中所述处理器配置用于如下生成所述控制信号标识线性访问顺序和交织访问顺序,标识并行处理较高的度以及并行处理的类型,构建将每个地址与一个存储器相关联的函数,以及根据所述函数导出所述控制信号。
45. 根据权利要求31所述的装置,其中进行解码的所述数据是涡轮编码数据。
全文摘要
存储器组,其包括多个存储器;第一蝶式网络,其配置用于将存储器地址应用于所述存储器组;第二蝶式网络,其配置用于传递去往或者来自所述存储器组的数据。按照多址访问规则为所述第一和第二蝶式网络生成控制信号,以允许在没有存储器访问冲突的情况下,按照线性顺序和交织顺序之一对所述存储器组进行并行访问。所述方法和装置在涡轮解码中使用特别有益。
文档编号H03M13/29GK101682338SQ200880018622
公开日2010年3月24日 申请日期2008年6月3日 优先权日2007年6月4日
发明者E·涅米南 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1