In the UMTS (Universal Mobile Telecommunication System) use context, on the basis of the UTRA (UMTS Terrestrial Radio Access) specifications, such as the TS 3 GPP RAN 25.213 v3.6.0, June 2001) specification, one or more OVSF (Orthogonal Variable Spreading Factor) codes are allocated to each user in the “downlink” connections for channeling purposes.
Access with a higher data rate is made possible in two different ways: either by a single code using a lower spreading factor or by more codes, using the same spreading factor (multicode concept).
Supposing that—for the sake of treatment simplicity—each user is allocated a single OVSF code, it is possible to note that such codes are marked by the tree structure shown in FIG. 1.
To enable code identification, each code is allocated the number of a single layer or of a layer and of a branch number or branch, just as shown in FIG. 1.
For the sake of simplicity, should it be assumed that a service requiring a bit-rate equal to R bps, could be mapped into a code belonging to layer 1, a code belonging to layer M could be used to map a service requiring 2M−1·R bps.
This hypothesis is valid if the mapping of services are not considered in detail (that is the actual channel coding and/or the so-called puncturing function).
In any case, the management techniques of the codes treated here can be used also for allocating the codes for services, referring to their actual mapping as in the case of the solutions described in document IST-2000 ARROWS D04, “System Specification. Radio Resource Management Algorithms: Identification and requirements”.
Maximum spreading factor Nmax is equal to the overall number of codes in layer 1.
The following definitions will hereinafter be used, consistent with those presented in the work of Thit Minn and Kai-Yeung Siu, “Dynamic Assignment of Orthogonal Variable Spreading-Factor Codes in W-CDMA”, IEEE Journal on Selected Areas in Communications, Vol. 18, no. 8, August 2000, pages 1429-1440:                descendant codes: all the lower level codes generated starting from a higher level code;        mother codes: all the high level codes connecting a special code to the code corresponding to the tree root;        sibling codes: two codes generated by their immediately preceding mother code; and        leaves: the lowest level codes.        
Using this tree structure, it is possible to have all the codes belonging to the same level (and hence having the same length and the same spreading factor or SF) to be orthogonal to one another, that is having a cross-correlation equal to zero and a self correlation equal to one.
When a certain code is allocated, it is no longer possible to allocate any descendant code whatsoever or any corresponding mother code: these codes would not be orthogonal with one another.
It is then useful to define a branch in the form of a sub-tree of a code tree, the highest code level of which (called the branch root code) appears to be available as well as all the corresponding mother codes; should the branch root code belong to the layer x, the branch itself is called the layer x branch).
Based on the above mentioned considerations, it can be immediately noted that the advantage of the OVSF codes, just as used in a downlink UTRA connection, stays in their perfect squareness. There however remains the drawback given by the limited number of available codes. It is therefore important to be able to re-allocate the channeling code with an efficient way of proceeding, in order to avoid the phenomenon currently called “code blocking”.
This denomination shows the situation where:                based on the interference analysis as well as based on the coding tree spare capacity—it could be possible to accept a new call, but        due to the code allocation, which appears to be inefficient, this ability is not actually available, entailing that the new call must be blocked.        
This situation is schematically shown in FIG. 2. By adopting the same formalism as in FIG. 1, two different code allocation examples are shown here. In particular, in FIGS. 2a and 2b diagrams, the solid spots stand for the allocated codes, while the crosses highlight codes that are unavailable, and cannot be hence allocated, since they are blocked by other allocations.
In both cases the same services are supported; nevertheless in the example shown on the left side of the figure shown as 2a, no available code belonging to layer 3 is available. On the other hand, code (3,1) is available in the example shown on the right side of FIG. 2b this means that this last code allocation is more efficient than the first one.
About this matter it can be also noted that the “code blocking” phenomenon fully differs from a call block turning up when a new call cannot be accepted since the capacity available to the tree is not sufficient.
In order to oppose the code blocking phenomenon, allocation/re-allocation strategies have therefore been set to require a code passage or “code handover”, arranging by way of example that each current call using a certain code, should be forced to use a different code belonging to the same layer.
In general terms, a code allocation strategy aims at:
minimizing coding tree fragmentation,
keeping the largest possible number of high rate codes, and
eliminating the code blocking phenomenon.
By way of example, in the above-mentioned Minn and Siu works, there is the proposal of a strategy based on an OVSF code allocation diagram, wherein the re-allocation criteria enable the complete elimination of the code blocking phenomenon. This is an optimal strategy in the sense that it minimizes the number of OVSF codes to be re-allocated in order to be enabled to withstand a new call. This diagram minimizes the number of code handover phenomena together with the associated signaling overhead.
It is possible to prove that should the data rate required by a new input call, fall within the maximum tree capacity, the new call could be supported through code reallocation. Should the full tree capacity be unable to be allocated because of the limit given by the interference, the related strategy is able to remove in any case the code blocking phenomenon.
Supposing that a new call could be supported, it is necessary to allocate to such call a candidate code. For the above reasons, this operation could nevertheless require the re-allocation of the descendant codes occupied by a branch with respect to which the candidate code constitutes the root code. This could in turn require the re-allocation of codes busy in other branches, and so on. In other words, with an adequate re-allocation strategy, it is possible to eliminate the code-blocking phenomenon.
There however remains the necessity for setting criteria capable of minimizing the number of the necessary reallocations in order to be able to withstand a new call.
To this purpose it is possible, by way of example, to proceed by associating a cost function to each candidate branch, allocating thereafter to the new call the root code of a minimum cost branch.
By such a method it can be mainly forecast three successive steps.
At a first step it is checked whether the new call (supposed to be requiring an OVSF code having an SF spreading factor for a service having a bit-rate equal to kR) is eligible to be absorbed by the available tree capacity. If this is not the case, the call is blocked.
In the positive case, it is proceeded with seeking a minimum cost branch having a root code that can be associated to the input call. If necessary, the descendant codes occupied by the identified branch are re-allocated. It is proceeded starting from the highest level code appearing to be engaged, and substantially dealing with it as if it were a new call.
In particular, in Minn and Siu works it is proved that should a new call require a code belonging to layer x, the algorithm is still optimal even if only x layer branches are considered (that is without having to analyze the higher level branches).
The minimum cost branch setting can be achieved according to different techniques which need not be illustrated in detail herein.
Code dynamic allocation diagrams in W-CDMA type transmissions or similar, are described also in document WO 2000/024145 (US equivalent U.S. Pat. No. 6,163,524).