正交可变扩频因子码树状态存储、分配和释放方法及装置的制作方法

文档序号:7595910阅读:263来源:国知局
专利名称:正交可变扩频因子码树状态存储、分配和释放方法及装置的制作方法
技术领域
本发明涉及一种宽带码分多址通信方法和装置,特别涉及一种用于宽带码分多址通信系统的正交可变扩频因子码树状态存储、分配和释放方法和装置。
背景技术
正交可变扩频因子码(Orthogonal Variable Spreading Factor-OVSF)是宽带码分多址(WCDMA)通信系统中用于提供可变的数据速率以及保持信道间正交的技术手段。作为系统中数目有限的稀缺性资源,对于OVSF码的合理使用关系到整个WCDMA通信系统的性能。
参照3GPP TS 25.213 OVSF码树的定义表现为二叉树的形式,如图1所示。
在图1中,假设WCDMA的下行OVSF码表示为CSF,NCode,其中SF表示该码的扩频因子长度,虽然在图1中表示为SF=1、SF=2、...,但是根据3GPP的标准,下行的OVSF扩频码的SF的取值范围是4~512中2的n次幂。NCode表示该码在码树上该子层的码序号,取值范围为0~SF-1。则CSF,NCode可以提供的数据速率为512/SF×R,其中R是基本码率。
在实际对码树的使用过程中采用何种形式来表示OVSF码树使用状态,决定了实际码管理方法的使用效率。
现有的对于OVSF码树的管理方法多是基于码树的二叉树数据接口表示形式,即采用二维数组或链表的数据结构形式。
无论是采用二维数组还是链表的数据结构来表示当前的OVSF码树使用状态,都会在数据信息的存储空间上造成一定的浪费。
例如采用二维数组的形式来表示当前的码树使用状态,首先在数据存储空间上就会造成很大的浪费。因为对于一棵完整的二叉树,其节点数目一共有2n-1,其中n为二叉树的层数。而一个二维数组要表示表示n层的完整二叉树则需要定义n×2n-1个数据,因此该二维数组的空间利用率只有(2n-1)/n×2n-1。对于当前的WCDMA系统采用的OVSF码树,其下行的OVSF扩频码的取值范围是4~512,即此时的n=10。此时的二维数组结构在存储OVSF码树信息时其空间利用率只有(210-4)/8×29≈0.25,可见数据存储空间利用率很低。一般一个无线网络控制器(RNC)要管理几百个小区,每个小区都对应有这样一张OVSF码树状态数据结构,则在RNC的内存结构中会造成较大的浪费。
另外,由于OVSF码的正交特性,采用现有的二维数组或链表的数据结构形式保存OVSF码树状态,在进行码管理的实际操作过程中也会导致处理的复杂度增高。因为每次出现一个码的分配或释放,都会导致对于该码的上下父子辈码的状态信息修改,就会需要对涉及的码树子层进行遍历查询操作,增加了处理的复杂度。

发明内容
为了避免OVSF码状态的存储空间的浪费和简化和加速OVSF码的分配和释放。在本发明中提出了一种高效的OVSF码树使用状态存储、分配和释放方法以及使用这种方法的装置。
根据本发明的一个方面,在此提供一种可变扩频因子码树状态存储方法,其中包括如下步骤分配分别存储可变扩频因子码树的叶子节点的状态的多个存储单元;把所述存储单元初始化为可用状态;在分配该可变扩频因子码树中的一个码时,把对应于作为所述被分配码的所有叶子节点的存储单元的设置为不可用状态;以及在释放一个码时,把对应于作为所述被释放码的所有叶子节点的存储单元设置为可用状态。
根据本发明的另一个方面,在此提供一种可变扩频因子码分配方法,其中包括如下步骤预先使用根据本发明的可变扩频因子码树状态存储方法来存储可变扩频因子码树状态;根据请求的数据传输速率,计算应该分配的码的扩频因子长度;根据所计算码的长度,查找是否存在这样一个具有所计算的扩频因子长度的码,使得对应于该码的所有叶子码的状态都为可用;以及如果找到这样具有所计算的扩频因子长度的码,则分配该码,并且把存储对应于被分配的码的所有叶子节点的状态的存储单元的数值设置为不可用,否则返回不能分配的信息。
根据本发明的再一个方面,在此提供一种可变扩频因子码释放方法,其中包括如下步骤预先使用根据本发明的可变扩频因子码树状态存储方法来存储可变扩频因子码树状态;当释放一个已分配的码之后,把对应于所述被释放的码的所有叶子节点的状态设置为不可用状态。
本发明还提供一种采用上述可变扩频因子码树状态存储方法来存储可变扩频因子码树状态的装置。
本发明还提供一种采用上述可变扩频因子码分配方法来分配可变扩频因子码的装置。
本发明还提供一种采用上述可变扩频因子码释放方法来释放已分配的可变扩频因子码的装置。
根据本发明的OVSF码树状态存储方法可以极大的节省码树状态信息的数据存储空间,并降低了例如OVSF码的分配和释放这样的对码树基本管理功能的方法实现复杂度,提高工作效率。


从下文参照附图的详细描述中,本发明的目的和优点将变得更加清楚,其中图1示出OVSF码生成树结构;图2示出根据本发明的基于基本码率的OVSF码树状态表示结构示例;
图3示出根据本发明的原理的存储OVSF码树状态的方法的流程图;图4示出根据本发明的原理的分配所需的码的处理方法的流程图;图5示出根据本发明的一个实施例的单码分配处理方法的流程图;图6示出根据本发明的一个实施例的单码释放处理方法的流程图。
具体实施例方式
下面参照附图描述根据本发明的原理及其优选实施例。
根据本发明的基于基本码率的OVSF码树使用状态存储方法是根据OVSF码的生成原理、OVSF各层码之间所能提供的数据速率关系、OVSF码的基本分配准则,提出来的一种高效利用存储空间效率,利于简化处理流程和降低处理复杂度的OVSF码树管理使用方法。
OVSF码的生成原理表明了各个不同长度码的子层上所能提供的码数就等于该层的OVSF码长度,例如OVSF码树一共可以提供8个SF=8的OVSF码。这里表明了码的个数与码的长度之间的关系。
而整个OVSF码树所能提供的总的码个数在理论上是4+8+...+256+512=1020个,但是由于OVSF码的基本分配准则和OVSF码之间的正交性要求,则同时一棵码树能够提供的码的个数将大大减少。根据OVSF码的基本分配准则,即当一个码被分配使用后,为了保持码间的正交性,它的上溯到OVSF码树根的父辈码和下溯到码树叶的子码都不能被再使用。并利用码树生成原理,我们可以得到已分配的码与被阻塞的不能被再使用的码之间存在着一定的对应关系。
另外在OVSF码树中各层码所能提供的数据速率都可以转化为码树最底层的叶子节点所提供的速率(基本码率)的倍数,并且它们之间还满足如下的关系第n层(2≤n≤9)的OVSF码(即SF=2n)所提供的数据速率是叶子节点的OVSF码(即SF=512)所提供的数据速率(基本码率R)的29-n倍。并且整个码树所能提供的最大数据速率就是叶子节点的OVSF码所提供的基本码率的总和,即512×R,其中R为基本码率。
本发明利用一个一维的512个布尔型数据的数组结构CTree[512]来表示一个小区的OVSF码树状态,将整个码树对应到以基本码率为基准的一维数组上。
假设WCDMA的下行OVSF码表示为CSF,NCode,其中SF表示该码的扩频因子长度,取值范围为4~512,NCode表示该码在码树上该子层的码序号,取值范围为0~SF-1。则CSF,NCode可以提供的数据速率为512/SF×R。
对于一个OVSF码的状态有可用(Free)、占用(Occupied)、阻塞(Blocked)三种,但其对于后续的使用都只是表现为可用和不可用两种,所以我们用布尔值TRUE和FALSE表示的该位置所对应的码的可用和不可用状态。我们利用一个一维的512个布尔型数据的数组结构CTree[512]来表示一个小区的OVSF码树状态,将整个码树对应到以基本码率为基准的一维数组上。
为了简单地说明本发明的原理,在图2中示出一个5层、最大SF=16的OVSF码树状态与其对应的基于基本码率的一维数组表示示例。
在图中黑色的圆圈表示已经占用的码树节点、灰色的圆圈表示被阻塞的码树节点、以及白色的圆圈表示可用的码树节点。
除了最底层的叶子节点(即SF=16的层)之外,其他每个节点都有两个子节点。根据上文所述的原则,为了保持码间的正交性,被占用码的所有父辈码和它的所有子码都不能被再使用,我们把这些节点用灰色圆圈来表示。
建立一个与最底层的叶子节点的状态一一对应的一维数组,判断该数组的各个单元对应叶子节点是否为被占用或被阻塞的节点,如果为被占用或阻塞的节点,则把相应的数组单元的数值设置为“F”(False),或者设置为“0”,表示该叶子节点不可用;而把对应于可用叶子节点的数组单元的数值设置为“T”(True),或者设置为“1”,来表示该节点可用。
从图中可以看出,如果一个父辈节点可用,则它所对应的所有叶子节点都处于可用状态,对应于一个父辈节点的所有叶子节点的编号是连续的,并且与一个父辈节点相对应的所有叶子节点的数目与该父辈节点的层数具有一定的数值关系。
图3示出根据本发明原理的存储OVSF码树状态的方法的流程图。如图3中所示,为了存储码树中的各个码的可用状态,首先在步骤301中设置用于存储OVSF码树的叶子码的可用状态的存储单元,并且把该存储单元所存储的数值初始化为可用状态(T);在步骤302中,在分配该OVSF码树中的每个码时,把对应于作为被占用码的叶子节点的存储单元的数值设置为不可用状态以及在释放每个码时,把对应于作为被释放码的叶子节点的存储单元的数值设置为可用状态;最后在步骤303中获得表示整个码树的使用状态的存储单元,并且用于随后的码分配和释放处理。在下文中,该存储单元用数组来表示。
根据WCDMA标准,总共有512个叶子节点,可以用一个单元数为512的一维数组CTree[]来表示整个码树的状态。
根据本发明的码树状态表示的一种方法是●OVSF码树中的每一个码在该数组中都占有512/SF个连续的存储空间来表示它当前的使用状态。
●没有被占用和阻塞的可用码,其状态表示为可用(T)●已经被占用或阻塞的不可用码,其状态表示为占用(F)。
●当长度为L的SF码被分配后,对应到基本码率的512/L连续存储空间状态表示为阻塞不可用(F)。
这样在一维数组CTree[]中包含了完整的码树使用状态信息。
对于每一个码CSF,NCode,如果在CTree[]中的起始位置为CTree[NCode×512/SF],并且从CTree[NCode×512/SF]开始的连续512/SF个单元数据的取值为“可用(T)”,则表示该码CSF,NCode的状态为可用;否则如果从CTree[NCode×512/SF]开始的连续512/SF个单元数据的取值中有一个单元数据的取值为“不可用(F)”,表示CSF,NCode码的状态为不可用。
初始的状态整个码树都可用,则数组CTree[]中的取值都为T。
当有码被分配CSF,NCode时,则把数组CTree[]中从CTree[NCode×512/SF]开始的512/SF个连续单元的取值为F,表示此时由于分配了CSF,NCode码,导致底层的512/SF个叶子节点码被阻塞,占用了R×512/SF的速率。
对于支持单码分配的基本码树管理功能,如码的分配、码的释放等,在该数据结构中都能够十分简单的实现。
图4示出根据本发明的原理的分配所需的码的处理方法的流程图。首先在步骤401,根据所需的数据传输速率,计算应该分配的码的长度;接着在步骤402中,根据所计算码的长度,利用存储码树状态的数组,查找是否存在这样一个具有所计算的长度的码,使得对应于该码的所有叶子码的状态都为“可用”;如果找到这样具有所计算的长度的码,则分配该码,把表示对应于该码的所有叶子节点的状态设置为不可用(步骤403),并且结束分配处理(步骤404);否则返回未找到所需长度的码的信息(步骤405)。
图5更加详细地示出根据本发明的一个实施例的单码分配处理方法的流程图。如该图所示,在步骤501,以基本码率为基准计算新请求的数据速率要求,结果表示为基本码率的倍数关系,即m×R;在步骤502,根据得到的m×R计算需要分配的SF码的长度,因为SF=512长度的码率为R,而其他长度的码率与基本码率之间是2指数幂的关系,所以所需请求的m×R转化为基本码率的2指数幂的最小整数倍即为 则需要分配的SF码的长度为 即SF=L的码。
长度为L的SF码在系统中最多也就只有L个,则以下进行L阶的循环处理,检索码树状态数组,查找可用的长度L的SF码。
在步骤503中,把码个数循环处理变量初值设置为i=0。
在步骤504中,从i=0到L-1进行循环查找处理。如果循环到i=L退出,则表示没有找到可用的SF=L的码,直接跳到步骤515,退出处理。
对于每一次SF=L的码查找,需要以i×512/L为码树状态数组起点,判断其后是否存在连续512/L个取值为T的数据单元。如果其中存在有取值为F的数据的单元,则表示该SF=L的码已经不可用,进行下一个i的码查找循环。
在步骤505,把码树状态数组的查找可用单元循环处理变量的初值设置为j=0。并且把本次循环处理中标志是否存在已经被占用或阻塞的码状态标志设置为K=0。如果循环处理过程中存在取值为F的数据单元,则修改K的值为1,表示本组单元所对应的SF=L的码已经不可用。
在步骤506,对于每一个i×512/L为起点的SF=L码对应的数组单元组,当循环变量j没有超过单元组长度512/L,并且没有发现取值为F的数据单元时,继续进行下一个数据单元的判断处理,即循环条件为j<512/L并且K=0。
在步骤507,对期间的每个数据单元判断其值是否为T。
步骤508,如果其值不为T表示该数据单元对应的码已经被占用或阻塞,则将K设置为1,在循环回到条件判断时自然跳出本次循环处理,表示本次的i×512/L对应的SF=L的第i号码CL,i不可用。
在步骤509,继续将循环处理变量j值加1,进行回到步骤506进行下一次循环处理的条件判断。
在步骤510,当退出本次CL,i码的可用性判断循环处理后,需要检查是否已经找到了所需要分配的码,即检查可用标志K的值是否仍旧为0。
在步骤511,如果K不等于0表示CL,i码已经被占用或阻塞不可用,将码个数的循环计数器i加1,回到步骤504继续进行下一个CL,i码的判断处理。
在步骤512,如果K=0表示该CL,i码就是满足我们要求的码,则中止码个数循环的处理,跳出循环。
在步骤513,找到了需要分配的SF=L的码,就是码状态数组下标为i×512/L对应的SF=L的i号码CL,i。
在步骤514,对找到了需要分配的SF=L码后对码树状态数组CTree[]的数据进行更新处理,记录当前分配完成后的码树状态。从数组的下标i×512/L单元开始修改CTree[]的数据单元值,需要修改CTree[i×512/L]~CTree[(i+1)×512/L-1]这512/L个数据单元的值为F,表示当前在分配完SF=L的第i号码CL,i后,对应到SF=512的这512/L个叶子码都为阻塞不可用状态。
在步骤515,如果码个数循环处理到i=L而退出循环,则表示所有SF=L的码都不可用,所以当前系统不能够提供SF=L的码,当前系统不能支持该新请求。
在上述图5的步骤中,步骤501~502是对应于图4中的步骤401的具体实施方式
;步骤503~512是对应于图4中的步骤402的具体实施方式
;步骤513~514是对应于图4中的步骤403的具体实施方式
;以及步骤515对应于图4中的步骤405。
本领域的普通技术人员显然可以看出,除了图5所示的具体实施例之外,还可以用其他方式来实现图4中所示的本发明的方法。例如,在图5中所用的搜索方法是先判断对应于符合所需码率的一个码(即,SF=L层的码)的第一个叶子节点是否为可用状态,如果该第一个叶子节点可用,则依次判断随后连续512/L个叶子节点是否都为可用状态,如果都为可用状态则判断它们所对应的SF=L层的码为可用,否则选择下一个SF=L层的码执行同样的判断;但是也可以先判断对应于符合所需码率的一个码(即,SF=L层的码)的最后一个叶子节点是否为可用状态,如果该最后一个叶子节点可用,则依次判断之前的连续512/L个叶子节点是否都为可用状态。
下面描述码的释放处理方法。该释放处理方法比较简单,主要是根据释放的码SF长度与码序号信息更新码树状态数组,以备该码给后续请求使用,其基本处理流程如图6所示。
在步骤601中,释放SF=L层中的码序号为K的码CL,K;在步骤602~605中,把对应于所释放的码的所有叶子码的数组的数值都设置为“可用(T)”,表示被释放的码的可用状态,以便于随后重新分配。
具体来说,在步骤602中,把循环变量的初值设置为i=0;在步骤603中,判断循环变量是否满足i<512/L;如果不满足i<512/L的条件,则认为还没有把所释放的码的所有叶子码的状态变为可用状态,从而转到步骤604,把对应于所释放的码的下一个叶子码变为可用状态,即CTree[K*512/L+i]=T;接着在步骤605中把循环变量加1,并且返回到步骤603判断是否结束循环;如果在步骤603中判断循环结束,则完成码的释放处理。
释放的SF码CL,K其SF长度L与码序号K在确定码树状态数组的数据单元对应上存在着一定的关系。对于码CL,K,其状态体现在码树状态数组的下标为K×512/L到(K+1)×512/L-1的这512/L个连续的数据单元上,所以在图6的处理流程中对于该段连续数据单元的值修改为表示可用的“T”。
虽然在上述实施例中以依次连续的方式存储各个叶子码的状态,但是只要能够确定各个码与叶子码之间的对应关系,也可以用不连续的存储单元来存储各个叶子码的状态,同样能够实现本发明的目的。
根据本发明的可变扩频因子码的存储方法、分配方法和释放方法,可以设计出相应的可变扩频因子码存储、分配和/或释放装置,该存储、分配和/或释放装置可以由一个整体的装置或多个分立的装置来实现。
例如根据本发明的可变扩频因子码存储、释放和/或分配装置可以包括存储器、计算单元和判断单元。该装置的存储器具有多个存储单元,其中分别存储对应于可变扩频因子码树的叶子码的状态信息。当接收到分配请求时,计算单元根据所需的码率计算出要分配的码的长度,判断单元通过判断与具有所需长度的码相对应的所有叶子码是否都可用,如果存在其所有叶子码都可用的所需长度的码,则分配该码;在分配一个码之后,该计算单元根据所分配的码的长度和码序号计算出与该码相对应的一个或多个存储单元的位置,并且把与被分配的码相对应的存储单元的数值变为不可用状态;在释放一个码时,该计算单元计算与被释放的码所对应的叶子码的存储单元的位置,并且把该对应的存储单元的数值变为可用状态。
综上所述,本发明的保护范围不限于在说明书中公开的具体实施方式
,而是由所附权利要求来限定。本领域的普通技术人员在可以在本发明的启发下作出各种变型和改进而不脱离权利要求书限定的保护范围。
权利要求
1.一种可变扩频因子码树状态存储方法,其中包括如下步骤分配分别存储可变扩频因子码树的叶子节点的状态的多个存储单元;把所述存储单元初始化为可用状态;在分配该可变扩频因子码树中的一个码时,把对应于作为所述被分配码的所有叶子节点的存储单元的设置为不可用状态;以及在释放一个码时,把对应于作为所述被释放码的所有叶子节点的存储单元设置为可用状态。
2.根据权利要求1所述的方法,其中所述存储单元为一个连续编号的数组,并且该数组的每个单元依次存储相应的一个叶子节点的状态。
3.根据权利要求1所述的方法,其中根据被分配或释放的码的扩频因子的长度和其码序号来确定与所述被分配或释放的码相对应的存储单元的位置和个数。
4.根据权利要求3所述的方法,其中所述被分配或释放的码的扩频因子的长度为L,取值范围是4~512中2的整数次幂,码序号为i,取值范围为0~L-1,并且所述叶子节点的编号为0~511,则与所述被分配或释放的码相对应的叶子节点的编号为i×512/L~(i+1)×512/L-1。
5.一种可变扩频因子码分配方法,其中包括如下步骤预先根据权利要求1所述的方法来存储可变扩频因子码树状态;根据请求的数据传输速率,计算应该分配的码的扩频因子长度;根据所计算码的长度,查找是否存在这样一个具有所计算的扩频因子长度的码,使得对应于该码的所有叶子码的状态都为可用;以及如果找到这样具有所计算的扩频因子长度的码,则分配该码,并且把存储对应于被分配的码的所有叶子节点的状态的存储单元的数值设置为不可用,否则返回不能分配的信息。
6.根据权利要求5所述的方法,其中根据被分配的码的扩频因子长度和其码序号来确定与所述被分配的码相对应的存储单元的位置和个数。
7.根据权利要求6所述的方法,其中所述被分配的码的扩频因子的长度为L,取值范围是4~512中2的整数次幂,码序号为i,取值范围为0~L-1,并且所述叶子节点的编号为0~511,则与所述被分配的码相对应的叶子节点的编号为i×512/L~(i+1)×512/L-1。
8.一种可变扩频因子码释放方法,其中包括如下步骤预先根据权利要求1所述的方法来存储可变扩频因子码树状态;当释放一个已分配的码之后,把对应于所述被释放的码的所有叶子节点的状态设置为不可用状态。
9.根据权利要求8所述的方法,其中根据被释放的码的扩频因子长度和其码序号来确定与所述被释放的码相对应的存储单元的位置和个数。
10.根据权利要求9所述的方法,其中所述被释放的码的扩频因子的长度为L,取值范围是4~512中2的整数次幂,码序号为i,取值范围为0~L-1,并且所述叶子节点的编号为0~511,则与所述释放的码相对应的叶子节点的编号为i×512/L~(i+1)×512/L-1。
11.一种采用权利要求1~4中的任何一项所述的存储方法来存储可变扩频因子码树状态的装置。
12.一种采用权利要求5~7中的任何一项所述的分配方法来分配可变扩频因子码的装置。
13.一种采用权利要求8~10中的任何一项所述的释放方法来释放已分配的可变扩频因子码的装置。
全文摘要
本发明提供一种可变扩频因子码树状态存储方法,其中包括如下步骤分配分别存储可变扩频因子码树的叶子节点的状态的多个存储单元;把所述存储单元初始化为可用状态;在分配该可变扩频因子码树中的一个码时,把对应于作为所述被分配码的所有叶子节点的存储单元的设置为不可用状态;以及在释放一个码时,把对应于作为所述被释放码的所有叶子节点的存储单元设置为可用状态。本发明还提供一种基于上述存储方法的可变扩频因子码分配和释放方法及其装置。本发明的方法和装置能够高效利用存储空间,简化处理流程和降低处理复杂度,并且加速分配和释放可变扩频因子码的处理。
文档编号H04J11/00GK1756137SQ20041006687
公开日2006年4月5日 申请日期2004年9月29日 优先权日2004年9月29日
发明者王河, 徐欣, 陈宇 申请人:上海贝尔阿尔卡特股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1