專利名稱:正交可變擴頻因子碼樹狀態(tài)存儲、分配和釋放方法及裝置的制作方法
技術領域:
本發(fā)明涉及一種寬帶碼分多址通信方法和裝置,特別涉及一種用于寬帶碼分多址通信系統(tǒng)的正交可變擴頻因子碼樹狀態(tài)存儲、分配和釋放方法和裝置。
背景技術:
正交可變擴頻因子碼(Orthogonal Variable Spreading Factor-OVSF)是寬帶碼分多址(WCDMA)通信系統(tǒng)中用于提供可變的數(shù)據(jù)速率以及保持信道間正交的技術手段。作為系統(tǒng)中數(shù)目有限的稀缺性資源,對于OVSF碼的合理使用關系到整個WCDMA通信系統(tǒng)的性能。
參照3GPP TS 25.213 OVSF碼樹的定義表現(xiàn)為二叉樹的形式,如圖1所示。
在圖1中,假設WCDMA的下行OVSF碼表示為CSF,NCode,其中SF表示該碼的擴頻因子長度,雖然在圖1中表示為SF=1、SF=2、...,但是根據(jù)3GPP的標準,下行的OVSF擴頻碼的SF的取值范圍是4~512中2的n次冪。NCode表示該碼在碼樹上該子層的碼序號,取值范圍為0~SF-1。則CSF,NCode可以提供的數(shù)據(jù)速率為512/SF×R,其中R是基本碼率。
在實際對碼樹的使用過程中采用何種形式來表示OVSF碼樹使用狀態(tài),決定了實際碼管理方法的使用效率。
現(xiàn)有的對于OVSF碼樹的管理方法多是基于碼樹的二叉樹數(shù)據(jù)接口表示形式,即采用二維數(shù)組或鏈表的數(shù)據(jù)結構形式。
無論是采用二維數(shù)組還是鏈表的數(shù)據(jù)結構來表示當前的OVSF碼樹使用狀態(tài),都會在數(shù)據(jù)信息的存儲空間上造成一定的浪費。
例如采用二維數(shù)組的形式來表示當前的碼樹使用狀態(tài),首先在數(shù)據(jù)存儲空間上就會造成很大的浪費。因為對于一棵完整的二叉樹,其節(jié)點數(shù)目一共有2n-1,其中n為二叉樹的層數(shù)。而一個二維數(shù)組要表示表示n層的完整二叉樹則需要定義n×2n-1個數(shù)據(jù),因此該二維數(shù)組的空間利用率只有(2n-1)/n×2n-1。對于當前的WCDMA系統(tǒng)采用的OVSF碼樹,其下行的OVSF擴頻碼的取值范圍是4~512,即此時的n=10。此時的二維數(shù)組結構在存儲OVSF碼樹信息時其空間利用率只有(210-4)/8×29≈0.25,可見數(shù)據(jù)存儲空間利用率很低。一般一個無線網(wǎng)絡控制器(RNC)要管理幾百個小區(qū),每個小區(qū)都對應有這樣一張OVSF碼樹狀態(tài)數(shù)據(jù)結構,則在RNC的內(nèi)存結構中會造成較大的浪費。
另外,由于OVSF碼的正交特性,采用現(xiàn)有的二維數(shù)組或鏈表的數(shù)據(jù)結構形式保存OVSF碼樹狀態(tài),在進行碼管理的實際操作過程中也會導致處理的復雜度增高。因為每次出現(xiàn)一個碼的分配或釋放,都會導致對于該碼的上下父子輩碼的狀態(tài)信息修改,就會需要對涉及的碼樹子層進行遍歷查詢操作,增加了處理的復雜度。
發(fā)明內(nèi)容
為了避免OVSF碼狀態(tài)的存儲空間的浪費和簡化和加速OVSF碼的分配和釋放。在本發(fā)明中提出了一種高效的OVSF碼樹使用狀態(tài)存儲、分配和釋放方法以及使用這種方法的裝置。
根據(jù)本發(fā)明的一個方面,在此提供一種可變擴頻因子碼樹狀態(tài)存儲方法,其中包括如下步驟分配分別存儲可變擴頻因子碼樹的葉子節(jié)點的狀態(tài)的多個存儲單元;把所述存儲單元初始化為可用狀態(tài);在分配該可變擴頻因子碼樹中的一個碼時,把對應于作為所述被分配碼的所有葉子節(jié)點的存儲單元的設置為不可用狀態(tài);以及在釋放一個碼時,把對應于作為所述被釋放碼的所有葉子節(jié)點的存儲單元設置為可用狀態(tài)。
根據(jù)本發(fā)明的另一個方面,在此提供一種可變擴頻因子碼分配方法,其中包括如下步驟預先使用根據(jù)本發(fā)明的可變擴頻因子碼樹狀態(tài)存儲方法來存儲可變擴頻因子碼樹狀態(tài);根據(jù)請求的數(shù)據(jù)傳輸速率,計算應該分配的碼的擴頻因子長度;根據(jù)所計算碼的長度,查找是否存在這樣一個具有所計算的擴頻因子長度的碼,使得對應于該碼的所有葉子碼的狀態(tài)都為可用;以及如果找到這樣具有所計算的擴頻因子長度的碼,則分配該碼,并且把存儲對應于被分配的碼的所有葉子節(jié)點的狀態(tài)的存儲單元的數(shù)值設置為不可用,否則返回不能分配的信息。
根據(jù)本發(fā)明的再一個方面,在此提供一種可變擴頻因子碼釋放方法,其中包括如下步驟預先使用根據(jù)本發(fā)明的可變擴頻因子碼樹狀態(tài)存儲方法來存儲可變擴頻因子碼樹狀態(tài);當釋放一個已分配的碼之后,把對應于所述被釋放的碼的所有葉子節(jié)點的狀態(tài)設置為不可用狀態(tài)。
本發(fā)明還提供一種采用上述可變擴頻因子碼樹狀態(tài)存儲方法來存儲可變擴頻因子碼樹狀態(tài)的裝置。
本發(fā)明還提供一種采用上述可變擴頻因子碼分配方法來分配可變擴頻因子碼的裝置。
本發(fā)明還提供一種采用上述可變擴頻因子碼釋放方法來釋放已分配的可變擴頻因子碼的裝置。
根據(jù)本發(fā)明的OVSF碼樹狀態(tài)存儲方法可以極大的節(jié)省碼樹狀態(tài)信息的數(shù)據(jù)存儲空間,并降低了例如OVSF碼的分配和釋放這樣的對碼樹基本管理功能的方法實現(xiàn)復雜度,提高工作效率。
從下文參照附圖的詳細描述中,本發(fā)明的目的和優(yōu)點將變得更加清楚,其中圖1示出OVSF碼生成樹結構;圖2示出根據(jù)本發(fā)明的基于基本碼率的OVSF碼樹狀態(tài)表示結構示例;
圖3示出根據(jù)本發(fā)明的原理的存儲OVSF碼樹狀態(tài)的方法的流程圖;圖4示出根據(jù)本發(fā)明的原理的分配所需的碼的處理方法的流程圖;圖5示出根據(jù)本發(fā)明的一個實施例的單碼分配處理方法的流程圖;圖6示出根據(jù)本發(fā)明的一個實施例的單碼釋放處理方法的流程圖。
具體實施例方式
下面參照附圖描述根據(jù)本發(fā)明的原理及其優(yōu)選實施例。
根據(jù)本發(fā)明的基于基本碼率的OVSF碼樹使用狀態(tài)存儲方法是根據(jù)OVSF碼的生成原理、OVSF各層碼之間所能提供的數(shù)據(jù)速率關系、OVSF碼的基本分配準則,提出來的一種高效利用存儲空間效率,利于簡化處理流程和降低處理復雜度的OVSF碼樹管理使用方法。
OVSF碼的生成原理表明了各個不同長度碼的子層上所能提供的碼數(shù)就等于該層的OVSF碼長度,例如OVSF碼樹一共可以提供8個SF=8的OVSF碼。這里表明了碼的個數(shù)與碼的長度之間的關系。
而整個OVSF碼樹所能提供的總的碼個數(shù)在理論上是4+8+...+256+512=1020個,但是由于OVSF碼的基本分配準則和OVSF碼之間的正交性要求,則同時一棵碼樹能夠提供的碼的個數(shù)將大大減少。根據(jù)OVSF碼的基本分配準則,即當一個碼被分配使用后,為了保持碼間的正交性,它的上溯到OVSF碼樹根的父輩碼和下溯到碼樹葉的子碼都不能被再使用。并利用碼樹生成原理,我們可以得到已分配的碼與被阻塞的不能被再使用的碼之間存在著一定的對應關系。
另外在OVSF碼樹中各層碼所能提供的數(shù)據(jù)速率都可以轉化為碼樹最底層的葉子節(jié)點所提供的速率(基本碼率)的倍數(shù),并且它們之間還滿足如下的關系第n層(2≤n≤9)的OVSF碼(即SF=2n)所提供的數(shù)據(jù)速率是葉子節(jié)點的OVSF碼(即SF=512)所提供的數(shù)據(jù)速率(基本碼率R)的29-n倍。并且整個碼樹所能提供的最大數(shù)據(jù)速率就是葉子節(jié)點的OVSF碼所提供的基本碼率的總和,即512×R,其中R為基本碼率。
本發(fā)明利用一個一維的512個布爾型數(shù)據(jù)的數(shù)組結構CTree[512]來表示一個小區(qū)的OVSF碼樹狀態(tài),將整個碼樹對應到以基本碼率為基準的一維數(shù)組上。
假設WCDMA的下行OVSF碼表示為CSF,NCode,其中SF表示該碼的擴頻因子長度,取值范圍為4~512,NCode表示該碼在碼樹上該子層的碼序號,取值范圍為0~SF-1。則CSF,NCode可以提供的數(shù)據(jù)速率為512/SF×R。
對于一個OVSF碼的狀態(tài)有可用(Free)、占用(Occupied)、阻塞(Blocked)三種,但其對于后續(xù)的使用都只是表現(xiàn)為可用和不可用兩種,所以我們用布爾值TRUE和FALSE表示的該位置所對應的碼的可用和不可用狀態(tài)。我們利用一個一維的512個布爾型數(shù)據(jù)的數(shù)組結構CTree[512]來表示一個小區(qū)的OVSF碼樹狀態(tài),將整個碼樹對應到以基本碼率為基準的一維數(shù)組上。
為了簡單地說明本發(fā)明的原理,在圖2中示出一個5層、最大SF=16的OVSF碼樹狀態(tài)與其對應的基于基本碼率的一維數(shù)組表示示例。
在圖中黑色的圓圈表示已經(jīng)占用的碼樹節(jié)點、灰色的圓圈表示被阻塞的碼樹節(jié)點、以及白色的圓圈表示可用的碼樹節(jié)點。
除了最底層的葉子節(jié)點(即SF=16的層)之外,其他每個節(jié)點都有兩個子節(jié)點。根據(jù)上文所述的原則,為了保持碼間的正交性,被占用碼的所有父輩碼和它的所有子碼都不能被再使用,我們把這些節(jié)點用灰色圓圈來表示。
建立一個與最底層的葉子節(jié)點的狀態(tài)一一對應的一維數(shù)組,判斷該數(shù)組的各個單元對應葉子節(jié)點是否為被占用或被阻塞的節(jié)點,如果為被占用或阻塞的節(jié)點,則把相應的數(shù)組單元的數(shù)值設置為“F”(False),或者設置為“0”,表示該葉子節(jié)點不可用;而把對應于可用葉子節(jié)點的數(shù)組單元的數(shù)值設置為“T”(True),或者設置為“1”,來表示該節(jié)點可用。
從圖中可以看出,如果一個父輩節(jié)點可用,則它所對應的所有葉子節(jié)點都處于可用狀態(tài),對應于一個父輩節(jié)點的所有葉子節(jié)點的編號是連續(xù)的,并且與一個父輩節(jié)點相對應的所有葉子節(jié)點的數(shù)目與該父輩節(jié)點的層數(shù)具有一定的數(shù)值關系。
圖3示出根據(jù)本發(fā)明原理的存儲OVSF碼樹狀態(tài)的方法的流程圖。如圖3中所示,為了存儲碼樹中的各個碼的可用狀態(tài),首先在步驟301中設置用于存儲OVSF碼樹的葉子碼的可用狀態(tài)的存儲單元,并且把該存儲單元所存儲的數(shù)值初始化為可用狀態(tài)(T);在步驟302中,在分配該OVSF碼樹中的每個碼時,把對應于作為被占用碼的葉子節(jié)點的存儲單元的數(shù)值設置為不可用狀態(tài)以及在釋放每個碼時,把對應于作為被釋放碼的葉子節(jié)點的存儲單元的數(shù)值設置為可用狀態(tài);最后在步驟303中獲得表示整個碼樹的使用狀態(tài)的存儲單元,并且用于隨后的碼分配和釋放處理。在下文中,該存儲單元用數(shù)組來表示。
根據(jù)WCDMA標準,總共有512個葉子節(jié)點,可以用一個單元數(shù)為512的一維數(shù)組CTree[]來表示整個碼樹的狀態(tài)。
根據(jù)本發(fā)明的碼樹狀態(tài)表示的一種方法是●OVSF碼樹中的每一個碼在該數(shù)組中都占有512/SF個連續(xù)的存儲空間來表示它當前的使用狀態(tài)。
●沒有被占用和阻塞的可用碼,其狀態(tài)表示為可用(T)●已經(jīng)被占用或阻塞的不可用碼,其狀態(tài)表示為占用(F)。
●當長度為L的SF碼被分配后,對應到基本碼率的512/L連續(xù)存儲空間狀態(tài)表示為阻塞不可用(F)。
這樣在一維數(shù)組CTree[]中包含了完整的碼樹使用狀態(tài)信息。
對于每一個碼CSF,NCode,如果在CTree[]中的起始位置為CTree[NCode×512/SF],并且從CTree[NCode×512/SF]開始的連續(xù)512/SF個單元數(shù)據(jù)的取值為“可用(T)”,則表示該碼CSF,NCode的狀態(tài)為可用;否則如果從CTree[NCode×512/SF]開始的連續(xù)512/SF個單元數(shù)據(jù)的取值中有一個單元數(shù)據(jù)的取值為“不可用(F)”,表示CSF,NCode碼的狀態(tài)為不可用。
初始的狀態(tài)整個碼樹都可用,則數(shù)組CTree[]中的取值都為T。
當有碼被分配CSF,NCode時,則把數(shù)組CTree[]中從CTree[NCode×512/SF]開始的512/SF個連續(xù)單元的取值為F,表示此時由于分配了CSF,NCode碼,導致底層的512/SF個葉子節(jié)點碼被阻塞,占用了R×512/SF的速率。
對于支持單碼分配的基本碼樹管理功能,如碼的分配、碼的釋放等,在該數(shù)據(jù)結構中都能夠十分簡單的實現(xiàn)。
圖4示出根據(jù)本發(fā)明的原理的分配所需的碼的處理方法的流程圖。首先在步驟401,根據(jù)所需的數(shù)據(jù)傳輸速率,計算應該分配的碼的長度;接著在步驟402中,根據(jù)所計算碼的長度,利用存儲碼樹狀態(tài)的數(shù)組,查找是否存在這樣一個具有所計算的長度的碼,使得對應于該碼的所有葉子碼的狀態(tài)都為“可用”;如果找到這樣具有所計算的長度的碼,則分配該碼,把表示對應于該碼的所有葉子節(jié)點的狀態(tài)設置為不可用(步驟403),并且結束分配處理(步驟404);否則返回未找到所需長度的碼的信息(步驟405)。
圖5更加詳細地示出根據(jù)本發(fā)明的一個實施例的單碼分配處理方法的流程圖。如該圖所示,在步驟501,以基本碼率為基準計算新請求的數(shù)據(jù)速率要求,結果表示為基本碼率的倍數(shù)關系,即m×R;在步驟502,根據(jù)得到的m×R計算需要分配的SF碼的長度,因為SF=512長度的碼率為R,而其他長度的碼率與基本碼率之間是2指數(shù)冪的關系,所以所需請求的m×R轉化為基本碼率的2指數(shù)冪的最小整數(shù)倍即為 則需要分配的SF碼的長度為 即SF=L的碼。
長度為L的SF碼在系統(tǒng)中最多也就只有L個,則以下進行L階的循環(huán)處理,檢索碼樹狀態(tài)數(shù)組,查找可用的長度L的SF碼。
在步驟503中,把碼個數(shù)循環(huán)處理變量初值設置為i=0。
在步驟504中,從i=0到L-1進行循環(huán)查找處理。如果循環(huán)到i=L退出,則表示沒有找到可用的SF=L的碼,直接跳到步驟515,退出處理。
對于每一次SF=L的碼查找,需要以i×512/L為碼樹狀態(tài)數(shù)組起點,判斷其后是否存在連續(xù)512/L個取值為T的數(shù)據(jù)單元。如果其中存在有取值為F的數(shù)據(jù)的單元,則表示該SF=L的碼已經(jīng)不可用,進行下一個i的碼查找循環(huán)。
在步驟505,把碼樹狀態(tài)數(shù)組的查找可用單元循環(huán)處理變量的初值設置為j=0。并且把本次循環(huán)處理中標志是否存在已經(jīng)被占用或阻塞的碼狀態(tài)標志設置為K=0。如果循環(huán)處理過程中存在取值為F的數(shù)據(jù)單元,則修改K的值為1,表示本組單元所對應的SF=L的碼已經(jīng)不可用。
在步驟506,對于每一個i×512/L為起點的SF=L碼對應的數(shù)組單元組,當循環(huán)變量j沒有超過單元組長度512/L,并且沒有發(fā)現(xiàn)取值為F的數(shù)據(jù)單元時,繼續(xù)進行下一個數(shù)據(jù)單元的判斷處理,即循環(huán)條件為j<512/L并且K=0。
在步驟507,對期間的每個數(shù)據(jù)單元判斷其值是否為T。
步驟508,如果其值不為T表示該數(shù)據(jù)單元對應的碼已經(jīng)被占用或阻塞,則將K設置為1,在循環(huán)回到條件判斷時自然跳出本次循環(huán)處理,表示本次的i×512/L對應的SF=L的第i號碼CL,i不可用。
在步驟509,繼續(xù)將循環(huán)處理變量j值加1,進行回到步驟506進行下一次循環(huán)處理的條件判斷。
在步驟510,當退出本次CL,i碼的可用性判斷循環(huán)處理后,需要檢查是否已經(jīng)找到了所需要分配的碼,即檢查可用標志K的值是否仍舊為0。
在步驟511,如果K不等于0表示CL,i碼已經(jīng)被占用或阻塞不可用,將碼個數(shù)的循環(huán)計數(shù)器i加1,回到步驟504繼續(xù)進行下一個CL,i碼的判斷處理。
在步驟512,如果K=0表示該CL,i碼就是滿足我們要求的碼,則中止碼個數(shù)循環(huán)的處理,跳出循環(huán)。
在步驟513,找到了需要分配的SF=L的碼,就是碼狀態(tài)數(shù)組下標為i×512/L對應的SF=L的i號碼CL,i。
在步驟514,對找到了需要分配的SF=L碼后對碼樹狀態(tài)數(shù)組CTree[]的數(shù)據(jù)進行更新處理,記錄當前分配完成后的碼樹狀態(tài)。從數(shù)組的下標i×512/L單元開始修改CTree[]的數(shù)據(jù)單元值,需要修改CTree[i×512/L]~CTree[(i+1)×512/L-1]這512/L個數(shù)據(jù)單元的值為F,表示當前在分配完SF=L的第i號碼CL,i后,對應到SF=512的這512/L個葉子碼都為阻塞不可用狀態(tài)。
在步驟515,如果碼個數(shù)循環(huán)處理到i=L而退出循環(huán),則表示所有SF=L的碼都不可用,所以當前系統(tǒng)不能夠提供SF=L的碼,當前系統(tǒng)不能支持該新請求。
在上述圖5的步驟中,步驟501~502是對應于圖4中的步驟401的具體實施方式
;步驟503~512是對應于圖4中的步驟402的具體實施方式
;步驟513~514是對應于圖4中的步驟403的具體實施方式
;以及步驟515對應于圖4中的步驟405。
本領域的普通技術人員顯然可以看出,除了圖5所示的具體實施例之外,還可以用其他方式來實現(xiàn)圖4中所示的本發(fā)明的方法。例如,在圖5中所用的搜索方法是先判斷對應于符合所需碼率的一個碼(即,SF=L層的碼)的第一個葉子節(jié)點是否為可用狀態(tài),如果該第一個葉子節(jié)點可用,則依次判斷隨后連續(xù)512/L個葉子節(jié)點是否都為可用狀態(tài),如果都為可用狀態(tài)則判斷它們所對應的SF=L層的碼為可用,否則選擇下一個SF=L層的碼執(zhí)行同樣的判斷;但是也可以先判斷對應于符合所需碼率的一個碼(即,SF=L層的碼)的最后一個葉子節(jié)點是否為可用狀態(tài),如果該最后一個葉子節(jié)點可用,則依次判斷之前的連續(xù)512/L個葉子節(jié)點是否都為可用狀態(tài)。
下面描述碼的釋放處理方法。該釋放處理方法比較簡單,主要是根據(jù)釋放的碼SF長度與碼序號信息更新碼樹狀態(tài)數(shù)組,以備該碼給后續(xù)請求使用,其基本處理流程如圖6所示。
在步驟601中,釋放SF=L層中的碼序號為K的碼CL,K;在步驟602~605中,把對應于所釋放的碼的所有葉子碼的數(shù)組的數(shù)值都設置為“可用(T)”,表示被釋放的碼的可用狀態(tài),以便于隨后重新分配。
具體來說,在步驟602中,把循環(huán)變量的初值設置為i=0;在步驟603中,判斷循環(huán)變量是否滿足i<512/L;如果不滿足i<512/L的條件,則認為還沒有把所釋放的碼的所有葉子碼的狀態(tài)變?yōu)榭捎脿顟B(tài),從而轉到步驟604,把對應于所釋放的碼的下一個葉子碼變?yōu)榭捎脿顟B(tài),即CTree[K*512/L+i]=T;接著在步驟605中把循環(huán)變量加1,并且返回到步驟603判斷是否結束循環(huán);如果在步驟603中判斷循環(huán)結束,則完成碼的釋放處理。
釋放的SF碼CL,K其SF長度L與碼序號K在確定碼樹狀態(tài)數(shù)組的數(shù)據(jù)單元對應上存在著一定的關系。對于碼CL,K,其狀態(tài)體現(xiàn)在碼樹狀態(tài)數(shù)組的下標為K×512/L到(K+1)×512/L-1的這512/L個連續(xù)的數(shù)據(jù)單元上,所以在圖6的處理流程中對于該段連續(xù)數(shù)據(jù)單元的值修改為表示可用的“T”。
雖然在上述實施例中以依次連續(xù)的方式存儲各個葉子碼的狀態(tài),但是只要能夠確定各個碼與葉子碼之間的對應關系,也可以用不連續(xù)的存儲單元來存儲各個葉子碼的狀態(tài),同樣能夠實現(xiàn)本發(fā)明的目的。
根據(jù)本發(fā)明的可變擴頻因子碼的存儲方法、分配方法和釋放方法,可以設計出相應的可變擴頻因子碼存儲、分配和/或釋放裝置,該存儲、分配和/或釋放裝置可以由一個整體的裝置或多個分立的裝置來實現(xiàn)。
例如根據(jù)本發(fā)明的可變擴頻因子碼存儲、釋放和/或分配裝置可以包括存儲器、計算單元和判斷單元。該裝置的存儲器具有多個存儲單元,其中分別存儲對應于可變擴頻因子碼樹的葉子碼的狀態(tài)信息。當接收到分配請求時,計算單元根據(jù)所需的碼率計算出要分配的碼的長度,判斷單元通過判斷與具有所需長度的碼相對應的所有葉子碼是否都可用,如果存在其所有葉子碼都可用的所需長度的碼,則分配該碼;在分配一個碼之后,該計算單元根據(jù)所分配的碼的長度和碼序號計算出與該碼相對應的一個或多個存儲單元的位置,并且把與被分配的碼相對應的存儲單元的數(shù)值變?yōu)椴豢捎脿顟B(tài);在釋放一個碼時,該計算單元計算與被釋放的碼所對應的葉子碼的存儲單元的位置,并且把該對應的存儲單元的數(shù)值變?yōu)榭捎脿顟B(tài)。
綜上所述,本發(fā)明的保護范圍不限于在說明書中公開的具體實施方式
,而是由所附權利要求來限定。本領域的普通技術人員在可以在本發(fā)明的啟發(fā)下作出各種變型和改進而不脫離權利要求書限定的保護范圍。
權利要求
1.一種可變擴頻因子碼樹狀態(tài)存儲方法,其中包括如下步驟分配分別存儲可變擴頻因子碼樹的葉子節(jié)點的狀態(tài)的多個存儲單元;把所述存儲單元初始化為可用狀態(tài);在分配該可變擴頻因子碼樹中的一個碼時,把對應于作為所述被分配碼的所有葉子節(jié)點的存儲單元的設置為不可用狀態(tài);以及在釋放一個碼時,把對應于作為所述被釋放碼的所有葉子節(jié)點的存儲單元設置為可用狀態(tài)。
2.根據(jù)權利要求1所述的方法,其中所述存儲單元為一個連續(xù)編號的數(shù)組,并且該數(shù)組的每個單元依次存儲相應的一個葉子節(jié)點的狀態(tài)。
3.根據(jù)權利要求1所述的方法,其中根據(jù)被分配或釋放的碼的擴頻因子的長度和其碼序號來確定與所述被分配或釋放的碼相對應的存儲單元的位置和個數(shù)。
4.根據(jù)權利要求3所述的方法,其中所述被分配或釋放的碼的擴頻因子的長度為L,取值范圍是4~512中2的整數(shù)次冪,碼序號為i,取值范圍為0~L-1,并且所述葉子節(jié)點的編號為0~511,則與所述被分配或釋放的碼相對應的葉子節(jié)點的編號為i×512/L~(i+1)×512/L-1。
5.一種可變擴頻因子碼分配方法,其中包括如下步驟預先根據(jù)權利要求1所述的方法來存儲可變擴頻因子碼樹狀態(tài);根據(jù)請求的數(shù)據(jù)傳輸速率,計算應該分配的碼的擴頻因子長度;根據(jù)所計算碼的長度,查找是否存在這樣一個具有所計算的擴頻因子長度的碼,使得對應于該碼的所有葉子碼的狀態(tài)都為可用;以及如果找到這樣具有所計算的擴頻因子長度的碼,則分配該碼,并且把存儲對應于被分配的碼的所有葉子節(jié)點的狀態(tài)的存儲單元的數(shù)值設置為不可用,否則返回不能分配的信息。
6.根據(jù)權利要求5所述的方法,其中根據(jù)被分配的碼的擴頻因子長度和其碼序號來確定與所述被分配的碼相對應的存儲單元的位置和個數(shù)。
7.根據(jù)權利要求6所述的方法,其中所述被分配的碼的擴頻因子的長度為L,取值范圍是4~512中2的整數(shù)次冪,碼序號為i,取值范圍為0~L-1,并且所述葉子節(jié)點的編號為0~511,則與所述被分配的碼相對應的葉子節(jié)點的編號為i×512/L~(i+1)×512/L-1。
8.一種可變擴頻因子碼釋放方法,其中包括如下步驟預先根據(jù)權利要求1所述的方法來存儲可變擴頻因子碼樹狀態(tài);當釋放一個已分配的碼之后,把對應于所述被釋放的碼的所有葉子節(jié)點的狀態(tài)設置為不可用狀態(tài)。
9.根據(jù)權利要求8所述的方法,其中根據(jù)被釋放的碼的擴頻因子長度和其碼序號來確定與所述被釋放的碼相對應的存儲單元的位置和個數(shù)。
10.根據(jù)權利要求9所述的方法,其中所述被釋放的碼的擴頻因子的長度為L,取值范圍是4~512中2的整數(shù)次冪,碼序號為i,取值范圍為0~L-1,并且所述葉子節(jié)點的編號為0~511,則與所述釋放的碼相對應的葉子節(jié)點的編號為i×512/L~(i+1)×512/L-1。
11.一種采用權利要求1~4中的任何一項所述的存儲方法來存儲可變擴頻因子碼樹狀態(tài)的裝置。
12.一種采用權利要求5~7中的任何一項所述的分配方法來分配可變擴頻因子碼的裝置。
13.一種采用權利要求8~10中的任何一項所述的釋放方法來釋放已分配的可變擴頻因子碼的裝置。
全文摘要
本發(fā)明提供一種可變擴頻因子碼樹狀態(tài)存儲方法,其中包括如下步驟分配分別存儲可變擴頻因子碼樹的葉子節(jié)點的狀態(tài)的多個存儲單元;把所述存儲單元初始化為可用狀態(tài);在分配該可變擴頻因子碼樹中的一個碼時,把對應于作為所述被分配碼的所有葉子節(jié)點的存儲單元的設置為不可用狀態(tài);以及在釋放一個碼時,把對應于作為所述被釋放碼的所有葉子節(jié)點的存儲單元設置為可用狀態(tài)。本發(fā)明還提供一種基于上述存儲方法的可變擴頻因子碼分配和釋放方法及其裝置。本發(fā)明的方法和裝置能夠高效利用存儲空間,簡化處理流程和降低處理復雜度,并且加速分配和釋放可變擴頻因子碼的處理。
文檔編號H04J11/00GK1756137SQ20041006687
公開日2006年4月5日 申請日期2004年9月29日 優(yōu)先權日2004年9月29日
發(fā)明者王河, 徐欣, 陳宇 申請人:上海貝爾阿爾卡特股份有限公司