# Patent

## Title
Dynamic bandwidth allocation for multiple access communications using buffer urgency factor

## Abstract

A code division multiple access (CDMA) user device configured to dynamically allocating at least at least one wireless communication channel to permit a more efficient allocation of wireless communication channels when providing high speed data service. The CDMA user device is configured to receive data traffic from at least one data buffer in a base station. The CDMA user device is dynamically allocated at least one wireless communication channel based on an urgency factor. The urgency factor indicates the urgency of traffic data to be transmitted from the at least one data buffer in the base station to the CDMA user device.

## Background
RELATED APPLICATIONS
This application is a continuation of Ser. No. 10/345,810 filed on Jan. 16, 2003, which is a continuation of Ser. No. 09/773,252 filed on Jan. 31, 2001, now a U.S. Pat. No. 6,542,481, which is a continuation-in-part of Ser. No. 09/088,527 filed on Jun. 1, 1998, now a U.S. Pat. No. 6,388,999, wherein the entire contents of U.S. Pat. Nos. 6,542,481 and 6,388,999 identified above are incorporated herein by reference.


FIELD OF THE INVENTION
The present field relates to the filed of communications, and in particular, to a wireless communication system.
BACKGROUND 
The increasing use of wireless telephones andpersonal computers has led to a corresponding demand for advanced telecommunication services that were once thought to only be meant for use in specialized applications. In the 1980's, wireless voice communication became widely available through the cellular telephone network. Such services were at first typically considered to be the exclusive province of the business person because of expected high subscriber costs. The same was also true for access to remotely distributed computer networks, whereby until very recently, only business people and large institutions could afford the necessary computers and wireline access equipment.
As a result of the widespread availability of both technologies, the general population now increasingly wishes to not only have access to networks such as the Internet and private intranets, but also to access such networks in a wireless fashion as well. This is particularly of concern for the users of portable computers, laptop computers, hand-held personal digital assistants (PDAs) and the like who would prefer to access such networks without being tethered to a telephone line.
There still is no widely available satisfactory approach for providing low cost, high speed access to the Internet, private intranets, and other networks using the existing wireless infrastructure. This situation is most likely an artifact of several unfortunate circumstances. For one, the typical manner of providing high speed data service in the business environment over the wireline network is not readily adaptable to the voice grade service available in most homes or offices. Such standard high speed data services also do not lend themselves well to efficient transmission over standard cellular wireless handsets.
Furthermore, the existing cellular network was originally designed to deliver voice services. As a result, the emphasis in present day digital wireless communication schemes lies with voice, although certain schemes such as CDMA do provide some measure of asymmetrical behavior for the accommodation of data transmission. For example, the data rate on an IS-95 forward traffic channel can be adjusted in increments from 1.2 kilobits per second (kbps) up to 9.6 kbps for so-called Rate Set 1, and in increments from 1.8 kbps up to 14.4 kbps for Rate Set 2. On the reverse link traffic channel, however, the data rate is fixed at 4.8 kbps.
The design of such existing systems therefore typically provides a radio channel which can accommodate maximum data rates only in the range of 14.4 kilobits per second (kbps) at best in the forward direction. Such a low data rate channel does not lend itself directly to transmitting data at rates of 28 or even 56.6 kbps that are now commonly available using inexpensive wire line modems, not to mention even higher rates such as the 128 kbps which are available with Integrated Services Digital Network (ISDN) type equipment. Data rates at these levels are rapidly becoming the minimum acceptable rates for activities such as browsing web pages. Other types of data networks using higher speed building blocks such as Digital Subscriber Line (xDSL) service are just now coming into use in the United States. However, their costs have only been recently reduced to the point where they are attractive to the residential customer.
Although such networks were known at the time that cellular systems were originally deployed, for the most part, there is no provision for providing higher speed ISDN- or xDSL-grade data services over cellular network topologies. Unfortunately, in wireless environments, access to channels by multiple subscribers is expensive and there is competition for them. Whether the multiple access is provided by the traditional Frequency Division Multiple Access (FDMA) using analog modulation on a group of radio carriers, or by newer digital modulation schemes the permit sharing of a radio carrier using Time Division Multiple Access (TDMA) or Code Division Multiple Access (CDMA), the nature of the radio spectrum is that it is a medium that is expected to be shared. This is quite dissimilar to the traditional environment for data transmission, in which the wireline medium is relatively inexpensive to obtain, and is therefore not typically intended to be shared.
Other considerations are the characteristics of the data itself. For example, consider that access to web pages in general is burst-oriented, with asymmetrical data rate transmission requirements. In particular, the user of a remote client computer first specifies the address of a web page to a browser program. The browser program then sends this web page address data, which is typically 100 bytes or less in length, over the network to a server computer. The server computer then responds with the content of the requested web page, which may include anywhere from 10 kilobytes to several megabytes of text, image, audio, or even video data. The user then may spend at least several seconds or even several minutes reading the content of the page before requesting that another page be downloaded. Therefore, the required forward channel data rates, that is, from the base station to the subscriber, are typically many times greater than the required reverse channel data rates.
In an office environment, the nature of most employees' computer work habits is typically to check a few web pages and then to do something else for extended period of time, such as accessing locally stored data or to even stop using the computer altogether. Therefore, even though such users may expect to remain connected to the Internet or private intranet continuously during an entire day, the actual overall nature of the need to support a required data transfer activity to and from a particular subscriber unit is actually quite sporadic.
Furthermore, prior art wireless communication systems provide a continuous bandwidth to individual subscribers. That is, in such networks, during a communication session the bandwidth available at all times is constant and has been designed, as noted above, primarily for voice grade use.
SUMMARY OF THE INVENTION
In view of the foregoing background, an object of the present invention is to more efficiently transmit digital signals in a wireless digital communication system.
This and other objects, advantages and features in accordance with the present invention are provided by a base station providing wireless communication of digital signals, with the digital signals being communicated in frames using a radio frequency channel via Code Division Multiple Access (CDMA) modulated radio signals.
The base station may include a wireless transceiver for establishing communication sessions over the plurality of digital communication paths, a bandwidth management module connected to the wireless transceiver for allocating a code channel within the radio frequency channel for the digital communication path to exchange digital signals during the communication session, and a plurality of buffers for storing data to be transmitted by the wireless transceiver. Each buffer may be associated with a particular digital communication path and may have at least one threshold associated with a level of data stored therein.
A transmission processor may allocate a plurality of code channels within the at least one radio frequency channel to transmit the stored data during the communication sessions. A channel resource assignor may be connected to the transmission processor for monitoring a level of data stored in each buffer and for computing an urgency factor for each buffer based upon the at least one threshold associated therewith. The urgency factor may represent a relative need for transmitting the stored data over the particular digital communication path associated with that buffer. The channel resource assignor may compare the computed urgency factor for the plurality of buffers for determining how many code channels are to be allocated to each digital communication path.
The present invention advantageously provides high speed data and voice service over standard wireless connections via a unique integration of protocols and existing cellular signaling, such as is available with Code Division Multiple Access (CDMA) type systems. The invention achieves high data rates through more efficient allocation of access to the CDMA channels.
The at least one threshold associated with each buffer may comprise a plurality of thresholds. The computed urgency factors may represent how full the plurality of buffers are. The computed urgency factor for each buffer may also be based upon a number of code channels currently allocated to the particular digital communication path associated therewith.
The computed urgency factor for each buffer is also based upon how much time has passed since stored data has been transmitted therefrom. The computed urgency factor for each buffer may also be based upon a quality of service of the communication sessions. The quality of service may be based upon at least one of throughput, data rate, latency and jitter.
The digital signals may comprise at least one of voice and data signals. The wireless communication of digital signals may be performed with a plurality of subscriber units over the plurality of digital communication paths. The at least one radio frequency channel may comprise a first and second radio frequency channels. The first radio frequency channel establishes forward code channels between the wireless transceiver and the plurality of subscriber units, with the stored data from the plurality of buffers being transmitted by the wireless transceiver on the forward code channels. The second radio frequency channel establishes reverse code channels between the plurality of subscriber units and the wireless transceiver.
Each subscriber unit may comprise a buffer for storing data to be transmitted to the wireless transceiver, and has at least one threshold associated with a level of data stored therein. Each subscriber unit may transmit to the wireless transceiver on a reverse code channel the level of data stored in its buffer with respect to the threshold associated therewith. The channel resource assignor also computes an urgency factor for each subscriber unit.
The forward and reverse code channels may be multiplexed on a single radio frequency channel. Alternatively, the forward and reverse code channels may be on different radio frequency channels.
Another aspect of the present invention is directed to a subscriber unit for providing wireless communication of digital signals between terminal equipment connected therewith and a digital communication path, with the digital signals being communicated using at least one radio frequency channel via Code Division Multiple Access (CDMA) modulated radio signals.
The subscriber unit may comprise a wireless transceiver transmission processor for receiving over the digital communication path at least one allocated code channel within the at least one radio frequency channel to transmit the data stored in the buffer during the respectivecommunication session.
The wireless transceiver may transmit a lever of data stored in the buffer with respect to the at least one threshold associated therewith. The transmission processor may receive over the digital communication path an adjustment in a number of atleast one allocated code channel within the at least one radio frequency channel received based upon an urgency factor. The urgency factor may be computed for representing a relative need for transmitting the data stored in the buffer over the digital communication path.
Yet another aspect of the present invention is directed to a digital communication system comprising a plurality of subscriber units as defined above for providing wireless communication of digital signals, and a base station as defined above for establishing communication sessions with the plurality of subscriber units over a plurality of digital communication paths.
Prior art methodologies for transmission of data over wireless networks this suffer numerous problems. As noted above, the bandwidth available for a single subscriber unit channel is typically fixed in size. However, data communications tend to be bursty in nature, often requiring a need for large amounts of bandwidth at certain times, while requiring very little amounts, or even none, at other times. These wide swings in bandwidth requirements can be very close together in time.
For example, when browsing a web site using HyperText Transfer Protocol (HTTP), the user typically selects pages by selecting or clicking a single link to a page causing the client computer to send a small page request packet to the web server. The request packet in the receive link direction requires very little bandwidth. In response to the request, the server typically delivers one or more web pages ranging in size from 10 to 100 kilobits (kB) or more to the client in the forward link direction. To receive the pages, the bandwidth requirements are much greater than to request the pages. The optimum bandwidth needed to acceptably receive the pages is rarely realized due to the inefficiency of the present wireless protocols that only offer maximum data rates of about 9600 bps under optimal conditions. This results in the server having to hold back some of the requested data until the network can “catch up” with the data delivery and also results in frustrated users having slow response and page loading times. In essence, the bandwidth to send a request is more than is needed, and the bandwidth to receive the pages is not enough to deliver the data at acceptable rates.
Another problem with prior art systems is that the difference between the time which the page request message leaves the wireless network and becomes wirebound, and the time when the pages of requested data enter the wireless portion of the data communications session is often quite long. This time-from-request to time-of-receipt delay is a function of how congested the network and the server are.
The present invention is based in part on the observation that bandwidth is being wasted during periods of time when waiting for data from the wireline network. Prior art wireless communications systems maintain the constant availability of the full bandwidth of the 9600 bps wireless connection for that entire data communication session, even though the wireless client may be waiting for return pages. This bandwidth which is effectively unused is therefore wasted because there is no way to allocate the channel resources in use for this data communication session to another session needing more bandwidth. That is, if other concurrent wireless data communications sessions are taking place for other subscriber units, these concurrent sessions have no way in the prior art systems to take advantage of any unused bandwidth allocated to the client merely waiting for return pages, as in this example.
The present invention provides high speed data and voice service over standard wireless connections via an unique integration of protocols and existing cellular signaling, such as is available with Code Division Multiple Access (CDMA) type systems. The invention achieves high data rates through more efficient allocation of access to the CDMA channels.
Specifically, the invention provides a scheme for determining an efficient allocation of N fixed rate data channels amongst M users. The invention addresses the problem of how to allocate these channels in the most effective manner between users competing for channel use. For example, when more users exist than channels, the invention determines a set of probabilities for which users will require channel access at which times, and assigns channel resources accordingly. The invention can also dynamically take away or deallocate channels (i.e., bandwidth) from idle subscribers and provide or allocate these freed-up channels to subscribers requiring this bandwidth.
Channel resources are allocated according to a buffer monitoring scheme provided on forward and reverse links between a base station and multiple subscriber units. Data buffers are maintained for each connection between a base station and a subscriber unit. Each buffer is monitored over time for threshold levels of data to be transmitted in that buffer. In essence, the thresholds measure the “fullness” of buffers over time for each respective subscriber unit are monitored. For each buffer, a probability is calculated that indicates how often that a specific buffer for a specific subscriber will need to transmit data and how much data will be transmitted. This probability takes into account the arrival rates of data into the buffer, as well as which thresholds within the buffer are exceeded, as well as which resources in the form of channels are already allocated to the subscriber unit. Based on this probability, channel resources for data transmission can be either allocated or deallocated to subscriber units depending upon a forecasted need.



BRIEF DESCRIPTION OF THE DRAWING(S)
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. 
FIG. 1 is a block diagram of an example wireless communication system making use of a bandwidth management scheme according to the invention.
FIG. 2 is a diagram showing how channels are assigned within a given radio frequency (RF) channel.
FIG. 3 is a block diagram illustrating the internal components of a base station and subscriber units that provide the dynamic bandwidth allocation mechanism.
FIG. 4 illustrates the structure of the buffers used in either the base station or subscriber units.
FIG. 5 is a block diagram of an example wireless communication system making use of a bandwidth management scheme according to the invention.
FIG. 6 is a diagram showing how channels are assigned within a given radio frequency (RF) channel.
FIG. 7 is a diagram illustrating the protocol layers of a wireless communication system.
FIG. 8 illustrates the structure of session queues and data buffers used in the base station.
FIG. 9 is a buffer level diagram.
FIG. 10 is a buffer level diagram when resources are being added.
FIG. 11 is a buffer level diagram when resources are being taken away.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)
Referring to FIGS. 1-4, these figures describe a dynamic bandwidth allocation process for multiple access communications using a buffer urgency factor.
Turning attention now to the drawings, FIG. 1 is a block diagram of a system 100 for providing high speed data service over a wireless connection by seamlessly integrating a digital data protocol such as, for example, Integrated Services Digital Network (ISDN) with a digitally modulated wireless service such as Code Division Multiple Access (CDMA).
The system 100 comprises two different types of components, including subscriber units 101, 102, and 103 (collectively subscribers 101) as well as one of more base stations 104 to provide the functions necessary in order to achieve the desired implementation of the invention. The subscriber units 101 provide wireless data and/or voice services and can connect devices such as, for example, laptop computers, portable computers, personal digital assistants (PDAs) or the like through base station 104 to a network 105 which can be a Public Switched Telephone Network (PSTN), a packet switched computer network, or other data network such as the Internet or a private intranet.
The base station 104 may communicate with the network 105 over any number of different efficient communication protocols such as primary rate ISDN, or other LAPD based protocols such as IS-634 or V5.2, or even TCP/IP if network 105 is an Ethernet network such as the Internet. The subscriber units 101 may be mobile in nature and may travel from one location to another while communicating with the base station 104.
FIG. 1 illustrates one base station 104 and three mobile subscriber units 101 by way of example only and for ease of description of the invention. The invention is applicable to systems in which there are typically many more subscriber units communicating with one or more base stations.
It is also to be understood by those skilled in the art that FIG. 1 may be a standard cellular type communication system such as a CDMA, TDMA, GSM or other system in which the radio channels are assigned to carry between the base stations 104 and subscriber units 101. This invention, however, applies more particularly to non-voice transmissions, and preferably to digital data transmissions of varying bandwidths. Thus, in a preferred embodiment, FIG. 1 is a CDMA-like system, using code division multiplexing principles for the air interface. However, it is also to be understood that the invention is not limited to using standardized CDMA protocols such as IS-95B.The invention is also applicable to other multiple access techniques.
In order to provide data and voice communications between the subscriber units 101 and base station 104, wireless transmission of data over a limited number of radio channel resources is provided via forward communication channels 110-a through 110-c,and reverse communication channels 111-a through 111-c. The invention provides dynamic bandwidth management of these limited channel resources on an as needed basis for each subscriber unit 101. It should also be understood that data signals travel bidirectionally across the CDMA radio channels 110 and 111, i.e., data signals originating at the subscriber units 101 are coupled to the network 105, and data signals received from the network 105 are coupled to the subscriber units 101.
FIG. 2 provides an example of how dynamic allocation of radio bandwidth may take place in an example system 101. First a typical transceiver within a subscriber unit 101 or the base station 104 can be tuned on command to any 1.25 MegaHertz (MHZ) channel within a much larger bandwidth, such as up to 30 MHZ in the case of the radio spectrum allocated to cellular Telephony. This bandwidth is typically made available in the range of from 800 to 900 MHZ in the United States. For PCS type wireless systems, a 5 or 10 MHZ bandwidth is typically allocated in the range from about 1.8 to 2.0 GigaHertz (GHz). In addition, there are typically two matching bands active simultaneously, separated by a guard band, such as 80 MHZ. The two matching bands form a forward and reverse full duplex link between the base station 104 and the subscriber units 101.
For example, within the subscriber unit 101 and the base station 104, transmission processors (i.e., transceivers) are capable of being tuned at any given point in time to a given 1.25 MHZ radio frequency channel. It is generally understood that such 1.25 MHZ radio frequency carrier provides, at best, a total equivalent of about a 500 to 600 kbps maximum data rate transmission speed within acceptable bit error rate limitations.
In the prior art, it was thus generally understood that in order to support an ISDN type like connection which may contain information at a rate of 128 kbps that, at best, only about (500 kbps/128 kbps) or only three (3) ISDN subscriber units could be supported at best.
In contrast to this, the present invention subdivides the available approximately 500 to 600 kbps data rate among a relatively large number of channels and then provides a way to determine how to allocate these channels to best transmit data between the base station 1804 and each of the subscriber units 1801, and vice versa. In the illustrated example in FIG. 2, the bandwidth is divided into sixty-four (64) subchannels, each providing an 8 kbps data rate. It should be understood herein that within a CDMA type system, the subchannels may be defined within a single CDMA radio frequency (RF) carrier by using different orthogonal Walsh codes for each defined subchannel. The subchannels are also referred to as “channels” in the following discussion, and the two terms are used interchangeably herein.
As mentioned above, the channels are allocated only as needed. For example, multiple channels are granted during times when a particular subscriber unit 101 is requesting that large amounts of data be transferred. In this instance and in the preferred embodiment, the single subscriber unit 101 may be granted as many as 20 of these channels in order to allow data rates of up to 160 kbps (20*8 kbps) for this individual subscriber unit 101. These channels are then released lightly loaded. The invention determines the way in which the limited number of channels are divided at any moment in time among the subscriber units 101.
Before discussing how the channels are preferably allocated and deallocated, it will help to understand the general architecture of relevant parts of a typical subscriber unit 101 and base station 104 in greater detail. Turning attention now to FIG. 3, the base station 104 accepts data from incoming data sources 201 through 203. Each data source 201 through 203 represents any type of data source that is sending data to one or more of the subscriber units 101. For example, data source 202 may be web server software on network 105 serving web pages to a client web browser operating in conjunction with subscriber unit 101-1, while data source 203 may be an ISDN terminal on network 105 that is sending voice and data to subscriber unit 101-3.
For each subscriber unit 101 that is in communication with this particular base station 104, the base station 104 establishes and allocates a respective data buffer 211 through 213. Data buffers 211 through 213 store the data that is to be transmitted to their respective subscriber units 101. That is, in a preferred embodiment, there is a separate data buffer in the base station 104 for each respective subscriber unit 101. As subscriber units enter into and exit out of communication sessions or connections with base station 104, the number of buffers may change. There is always a one-to-one correspondence between the number of buffers 211 through 213 allocated to the number of subscriber units 101 communicating with base station 104. The buffers 211 through 213 may be, for example, queues or other memory structures controlled by software, or may be hardware controlled fast cache memory.
As data is queued up in the buffers 211 through 213, transmission processor 210 transmits the data from the base station 104 to the respective subscriber units 101. In the case of forward link transmission (from the base station 104 to the subscriber units 101), a selection of a limited number of forward link channels 110a through 110c are used. As will be explained, the invention is able to accommodate greater bandwidth for one particular subscriber unit 101, as more and more data is queued at the base station 104. That is, as the transmission processor 210 in the base station 104 accepts data from each buffer 211 through 213 for transmission to that buffers' respective subscriber unit 101, the transmission processor 210 uses only the allocated number of forward link 110 resources assigned to that particular respective subscriber unit. To determine how these channel resources are assigned, the invention provides a channel resource assignor 209 which implements a unique algorithm according to the invention that monitors buffer usage to determine an urgency characteristic of each subscriber unit 101 in order to dynamically assign an optimum number of channel resources to be allocated to each subscriber unit.
In the reverse direction, each subscriber unit 101 also contains a respective data source 221 through 223 that provides data to data buffers 225 through 227. The data stored in buffers 225 through 227 is data to be transmitted on one or more of the reverse links 111a-c back to the base station 104, for eventual transmission to processes or devices on network 105 that are connected at a network session layer with the subscriber units 101. Each subscriber unit 101 also contains a transmission processor 231 through 233 for controlling the transmission of data from buffers 225 through 227 back to base station 104. As in the base station 104, the transmission processors 231 through 233 only use an allocated number of reverse channel 111a-c resources assigned to that particular respective subscriber unit 101.
In a preferred embodiment of the invention, the channel resource assignor 2009 in the base station also monitors the usage of buffers 225 through 227 within subscriber units 101. This is accomplished via buffer monitors 235 through 237 in each subscriber unit 101 which periodically report buffer characteristics back to base station 104. The buffer characteristics reports may be piggybacked onto the regular transmission of data on the reverse links 111a-c. 
Upon receipt of this buffer characteristic information, the channel resource assignor 209 then determines an urgency factor representing the relative need for each subscriber unit 101 to transmit data on the reverse links 111a-c from their respective buffers 225 through 227. Using these urgency factors, the channel resource assignor 209 can then dynamically assign an optimum number of channel resources which each subscriber unit may use on the reverse links 111a-c. This channel assignment information sent back to the subscriber units 101 on the forward links 110, so that the transmission processors 231 through 233 know their currently allocated channels at all times.
The channel resource assignor 209 is thus a bandwidth management function that includes the dynamic management of the bandwidth allocated to a particular network layer session connection. Before a further description of the channel assignor 209 is given, it should be first understood that no matter what bandwidth allocation is given to a particular subscriber unit 101, a network layer communication session will be maintained even though wireless bandwidth initially allocated for transmission is reassigned to other connections when there is no information to transmit. One manner of maintaining network layer communication sessions during periods of reduced allocation of bandwidth for a particular subscriber unit is discussed in detail in the above-referenced U.S. patents, which are assigned to the current assignee of the present invention, and the entire contents of which are hereby incorporated by reference in their entirety.
In general, bandwidth assignments are made for each network layer session based upon measured short term data rate needs as determined by buffer statistics. One or more channels are then assigned based upon these measurements and other parameters such as amount of data in the buffer, the present resources allocated to a subscriber unit, and probabilities of a requirement of a subscriber unit to transmit data or priority of service as assigned by the service provider. In addition, when a given session is idle, a connection is preferably still maintained end to end, although with a minimum number of channel resources allocated, such as a single subchannel being assigned. This single subchannel may eventually be dropped after a predetermined minimum idle time is observed.
FIG. 4 illustrates a buffer 360 in detail. Buffer 360 can be any one of the buffers 211 through 213 or 225 through 227 in either the subscriber units 101 or base station 104. The buffer 360 accepts data 365 and stores this data while awaiting transmission on forward links 110 from the base station 104 to a respective subscriber unit 101, or on reverse links 111 from one of the subscriber units to the base station 104. Each buffer has associated with it L thresholds, which in this example are labeled 1, 2, . . . L and numbered 361, 362, and 363 respectively. These L thresholds are an indication of how much data is currently stored in the buffer 360. That is, the thresholds are “characteristics” in the sense that they provide an indication of how much buffer memory is currently in use.
As data 365 enters and fills buffer 360, until transmission of this data takes place, the data may fill buffer 360 so much so as to cross certain of the thresholds 361 through 363. For instance, in FIG. 4, data blocks 365-a through 365-d have just filled buffer 360 enough to approach the first threshold 361. The last block of data 365-n exists between thresholds 361 and 362 and so the buffer 360 has stored data in an amount exceeding the first threshold 361. In other words, buffer 360 as shown has a threshold level of “1”, corresponding to the first threshold 361.
As explained above, the channel resource assignor 209 in base station 104 obtains an indication of the threshold level for each buffer 225 through 227 in each respective subscriber unit 101 through 103. By determining how much data is in each buffer, the resulting data arrival rates of data to each buffer, and the resources currently allocated to transmit data from a buffer, an urgency factor for each data source attempting to transmit on the reverse links 111 is computed. A similar computation takes place for each data transmitter on the forward links 110.
More particularly, an urgency factor is calculated for each buffer based on these buffer characteristics, that indicates the relative need to empty the buffer for that particular receiver as compared to the buffers in other receivers. Given urgency factors for each buffer having data queued for transmission to a waiting receiver, the invention is able to determine how to allocate the available channels to best transmit this data.
The urgency factor for buffer 360, for example, is based on statistical information gathered for the accumulation of data 365. The statistical information is used to compute probabilities of when data 365 exceeds or does not exceed certain of the L discrete data thresholds 361, 362, and 363. Thus, as data 365 enters buffer 360 and exceeds the first threshold 361, the urgency factor for that buffer, and hence for the receiver associated with that buffer (i.e., for example, one of the subscriber units 101 for which data 365 in buffer 360 is destined) increases.
The urgency factor for buffer 360 is also based upon conditional probabilities of how much time has passed since buffer 360 has had data 365 transmitted from the buffer to its intended receiver, as well as how much time has passed since data 365 has been received at the buffer 360 for storage until transmission may occur. The urgency factor depends partly on the history of the time that the data level in the buffer exists between each threshold in the buffer and on the number of times each threshold, including the maximum buffer capacity, is exceeded.
The urgency factor is also based on how close data 365 is to the last threshold L 363, which indicates that the buffer is reaching maximum capacity. The urgency factor therefore also accounts for the probability of exceeding the capacity of buffer 360, based on exceeding the maximum threshold L 363.
The channel resource allocator 209 therefore calculates an urgency factor, U, for each of M buffers, where M is the total number of buffers used in the reverse 111 and forward 110 links. The urgency factor for the buffers servicing the forward links 110 are calculated independently of urgency factors for the other buffers servicing the reverse links 111, and the buffers servicing each transmission direction of a particular connection between a particular one of the subscriber units 101 and the base station 104 are independent of one another.
At any given time, a given buffer J has a number of channels, NJ, which is the number of channels already allocated to that particular buffer J. Accordingly, NJ must range from 1<NJ<NMAX, where NMAX is the maximum number of channel resources that may be assigned to any one particular buffer, and hence to any one link. In the preferred embodiment, NMAX can be as high as 20 channels, with each channel operating at approximately 8.55 kilobits per second (kbps) or at 13.3 kbps, depending upon a rate selection as determined by which CDMA standard is used. Thus, if a particular buffer is assigned the maximum number of channels to accommodate data transfers for high bandwidth applications, instantaneous data rates may be achieved as high as from about 171 kbps to 260 kbps.
The urgency factor U for a given buffer is equal to the sum of weighted conditional probabilities. Each conditional probability represents the chance of exceeding the last threshold L, within a time frame, TS given that the data in the buffer has already exceeded a particular threshold Ei. The time frame TS corresponds to the maximum time needed to reallocate a resource. The probabilities for an urgency factor U for a single buffer are all computed in a similar manner, but are based upon different thresholds within that buffer. Thus, as the probabilities for each threshold change with the various demands for service, the urgency factor for that particular buffer also changes.
In a preferred embodiment, the probability of exceeding a particular threshold EL in time TS given that another threshold Ei is exceeded is given by:




  
    
      P
      EL
    
    ⁡
    
      (
      
        
          T
          S
        
        |
        
          E
          i
        
      
      )
    
  
  =
  
    
      
        
          P
          EL
        
        ⁡
        
          (
          
            E
            i
          
          )
        
      
      ·
      
        
          P
          EL
        
        ⁡
        
          (
          
            T
            S
          
          )
        
      
    
    
      
        P
        EL
      
      ⁡
      
        (
        
          E
          i
        
        )
      
    
  




Threshold Ei is used in the above equation when computing the probability of exceeding a threshold EL, in a time period TS, given that the data level in the buffer has already crossed threshold Ej. Since this is an indirect computation, it may be derived from the formula:





  
    ∑
    
      (
      
        
          P
          EL
        
        ⁢
        
          
        
        ⁢
        within
        ⁢
        
          
        
        ⁢
        
          T
          S
        
        ⁢
        
          
        
        ⁢
        of
        ⁢
        
          
        
        ⁢
        
          
            E
            i
          
          /
          
            ∑
            
              (
              
                
                  E
                  i
                
                ⁢
                
                  
                
                ⁢
                for
                ⁢
                
                  
                
                ⁢
                
                  T
                  S
                
              
              )
            
          
        
      
    
  
  
    
      P
      EL
    
    ⁡
    
      (
      
        E
        j
      
      )
    
  




The probabilities that make up the urgency factor U for a particular buffer are also weighted before they are summed, such as

U=ΣiPEL(TS|Ei)·Wi(N)

The weight Wi (N) for each probability is selected to optimize the resource allocation. For example, the weight is selected based upon which threshold is crossed and therefore effects the urgency factor for that buffer by increasing the weight of the summed probabilities used to compute that urgency factor for that buffer.

Once an urgency factor U for each buffer has been computed, the channel resource assignor 2009 determines how to allocate the available channels among the buffers. This is accomplished in a preferred embodiment by determining which buffer has the highest urgency factor and which one has the lowest. Next, the highest and lowest urgency factors must exceed respective high and low urgency thresholds. If this is true, one resource channel is deallocated from the buffer with the lowest urgency factor and is reallocated to the buffer with the highest urgency factor. In this manner, the channel resources for buffers may change over time based upon the urgency factors of the buffers.
Also, when NJ is 1, there is only one channel allocated to a particular buffer. In this state, the assigned channel resource may be reallocated (i.e., taken away) to another buffer if there is no data in buffer and if the probability of exceeding the buffer capacity within the time it takes to reassign this initial resource, PEL (TS|EO), is less than the probability of reaching the buffer overflow limit P(EL), which is a predetermined constant.
Referring to FIGS. 5-11, these figures describe a dynamic bandwidth allocation process for multiple access communications using session queues.
More specifically, FIG. 5 is a block diagram of a system 500 for providing high speed data service over a wireless connection by seamlessly integrating a wired digital data protocol such as, for example, Transmission Control Protocol/Internet Protocol (TCP/IP) with a digitally modulated wireless service such as Code Division Multiple Access (CDMA).
The system 500 consists of two different types of components, including subscriber units 501-1, 501-2, . . . , 501-n (collectively subscribers 501) as well as one or more base stations 504 to provide the functions necessary in order to achieve the desired implementation of the invention. The subscriber units 501 provide wireless data and/or voice services and can connect devices such as, for example, laptop computers, portable computers, personal digital assistants (PDAs) or the like through base station 504 to a network 505 which can be a Public Switched Telephone Network (PSTN), a packet switched computer network, or other data network such as the Internet or a private intranet. The base station 504 may communicate with the network 505 over any number of different efficient communication protocols such as primary rate ISDN, or other LAPD based protocols such as IS-634 or V5.2, or even TCP/IP if network 505 is an Ethernet network such as the Internet. The subscriber units 501 may be mobile in nature and may travel from one location to another while communicating with base station 504.
FIG. 5 illustrates one base station 504 and three mobile subscriber units 501 by way of example only and for ease of description of the invention. The invention is applicable to systems in which there are typically many more subscriber units 501 communicating with one or more base stations 504.
It is also to be understood by those skilled in the art that Fig. 5 may be a standard cellular type communication system such as a CDMA, TDMA, GSM or other system in which the radio channels are assigned to carry between the base stations 504 and subscriber units 501. This invention, however, applies more particularly to non-voice transmissions, and preferably to digital data transmissions of varying bandwidths. Thus, in a preferred embodiment, FIG. 5 is a CDMA-like system, using code division multiplexing principles for the air interface. However, it is also to be understood that the invention is not limited to using standardized CDMA protocols such as IS-95, or the newer emerging CDMA protocol referred to as IS-95B. The invention is also applicable to other multiple access techniques.
In order to provide data and voice communications between the subscriber units 501 and base station 504, wireless transmission of data over a limited number of radio channel resources is provided via forward communication channels 510 which carry information from the base station 504 to the subscriber units 501, and reverse communication channels 511 which carry information from the subscriber units 501 to the base station 504. The invention provides dynamic bandwidth management of these limited channel resources on an as needed basis for each subscriber unit 501. It should also be understood that data signals travel bidirectionally across the CDMA radio channels 510 and 511, i.e., data signals originating at the subscriber units 501 are coupled to the network 505, and data signals received from the network 505 are coupled to the subscriber units 501.
FIG. 6 provides an example of how dynamic allocation of radio bandwidth may take place in system 500. First, a typical transceiver within a subscriber unit 501 or the base station 504 can be tuned on command to any 1.25 MegaHertz (MHz) channel within a much larger bandwidth, such as up to 30 MHz in the case of the radio spectrum allocated to cellular telephony. This bandwidth is typically made available in the range of from 800 to 900 MHz in the United States. For PCS type wireless systems, a 5 or 10 MHz bandwidth is typically allocated in the range from about 1.8 to 2.0 GigaHertz (GHz). In addition, there are typically two matching bands active simultaneously, separated by a guard band, such as 80 MHz; the two matching bands form a forward and reverse full duplex link between the base station 504 and the subscriber units 501.
Within the subscriber unit 501 and the base station 504 transmission processors (i.e., transceivers) are capable of being tuned at any given point in time to a given 1.25 MHz radio frequency channel. It is generally understood that such 1.25 MHz radio frequency carrier provides, at best, a total equivalent of about a 500 to 600 kbps maximum data rate transmission speed within acceptable bit error rate limitations. In the prior art, it was thus generally thought that in order to support an XDSL type connection which may contain information at a rate of 128 kbps that, at best, only about (500 kbps/128 kbps) or only three (3) subscriber units 501 could be supported at best on each radio channel.
In contrast to this, the present system 500 subdivides the available radio channel resources into a relatively large number of subchannels and then provides a way to determine how to allocate these subchannels to best transmit data between the base station 504 and each of the subscriber units 501 and vice versa. In the illustrated example in FIG. 6, the bandwidth is allocated to sixty-four (64) subchannels. It should be understood herein that within a CDMA type system, the subchannels are physically implemented by encoding a data transmissionwith one of a number of different pseudorandom (PN) or orthogonal channel codes. For example, the subchannels may be defined within a single CDMA radio frequency (RF) carrier by using different orthogonal codes for each defined subchannel. (The subchannels are also referred to as “channels” in the following discussion, and the two terms are used interchangeably from this part onward).
As mentioned above, the channels are allocated only as needed. For example, multiple channels are granted during times when a particular subscriber unit 501 is requesting that large amounts of data be transferred. In the preferred embodiment, the single subscriber unit 501 may be granted as many as 28 of these channels in order to allow data rates of up to about 5 Mega bits per second for an individual subscriber unit 501. These channels are then released during times when the subscriber unit 501 is relatively lightly loaded.
Maximum flexibility can be obtained by adjusting coding rates and modulation types used for each connection, such as the number of channels. One particular scheme for assigning channel codes, Forward Error Correction (FEC) code rate, and symbol modulation types is described in a co-pending U.S. patent application Ser. No. 09/773,253 filed Jan. 31, 2001 entitled “Maximizing Data Rate by Adjusting Code and Coding Rates in CDMA System”, which is assigned to Tantivy Communications, Inc., the same assignee of the present application, which is also hereby incorporated by reference.
Before discussing how the channels are preferably allocated by the base station 504 referring to FIGS. 5 and 8 the base station 504 establishes and allocates a respective data buffer 840-1 through 840-3. Data buffers 840-1 through 840-3 store the data that is to be transmitted their respective subscriber units 501. That is, in a preferred embodiment, there is a separate data buffer in the base station 504 for each respective subscriber unit 501. As subscriber units enter into and exit out of communication sessions or connections with base station 504 the number of buffers may change. There is always a one-to-one correspondence between the number of buffers 840-1 through 840-3 allocated to the number of subscriber units 501 communicating with base station 504. The buffers 840-1 through 840-3 may be, for example, queues or other memory structures controlled by software, or may be hardware controlled fast cache memory.
The particular process which determines how channels are allocated and deallocated may reside in a data services function disposed within the upper layers of the protocols implemented in the base station 504 and subscriber units 501.
Specifically now, referring to FIG. 7, there is shown a protocol layer diagram such as typically associated with third generation (3G) wireless communication services. The protocol layers follow the open system interconnect (OSI) layered model with a physical layer 720 media access control sub layer 730 link access control (LAC) sub layer, 740 and upper communication layers 750. The physical layer 720 provides physical layer of processing such as coding and modulation of the individual logical channels. Access to the logical channels is controlled by the various functions in the MAC sub layer 730 including channel multiplex sub layer 732 multiplex control channel multiplex sub layer 731 radio link protocol sub layer 733 and SRPB 734. The signaling link access control functionality 741 is provided in the LAC sub layer 740.
Upper layers processing 750 includes upper layer signaling 751 data services 752 and voice services 753. The particular decision processes to allocate or deallocate channels to particular network layer connections resides therefore in a data services functionality 752 in the upper layers 750. The data services functionality 752 communicates with the radio link protocol 733 in the MAC sub layer 730 in order to perform functions such as to send messages to allocate and deallocate channels from end to end as demand requires.
Turning attention now to FIG. 8, various components of the base station 504 and subscriber units 501 will be described now in greater detail in connection with the process for determining when channels should be allocated or deallocated.
FIG. 8 is a more detailed diagram of the implementation of the session oriented buffering scheme implemented in the data services function 752. In particular, FIG. 8 shows how this is implemented in the base station 504. Network layer traffic is routed to the base station 504 using typical network routing protocols such as Transmission Control Protocol/Internet Protocol (TCP/IP). At the base station 504 incoming traffic is separated into individual traffic flows destined for separate subscriber units 501-1, 501-2, . . . , 501-n . The traffic flows may be separated such as by examining a destination address field in the TCP/IP header. The individual traffic flows are delivered first to transport modules 801-1, 801-2, . . . . , 801-n with a transport module 801 corresponding to each of the intended subscriber units 501. A given transport module 801 is the first step in a chain of processing steps that is performed on the data intended for each subscriber unit 501. This processing chain includes not only the functionality implemented by the transport module 801 but also a number of session queues 810, a session multiplexer 820 and transmission buffers 840. The outputs of the various transmission buffers 840-1, 840-2, . . . , 840-n are then assembled by a transmit processor 850 that formats the data for transmission over the forward radio links 510.
Returning attention now to the top of the FIG. 8 again, each transport module 801 has the responsibility of either monitoring the traffic flow in such a way that it stores data belonging to different transport layer sessions in specific ones of the session queues 810 associated with that transport module 801. For example, transport module 801-1 assigned to handle data intended to be routed to subscriber unit 501-1 has associated with it a number, m, of session queues 810-1-1, 810-1-2, . . . , 810-1-m. In the preferred embodiment, a given session is characterized by a particular transport protocol in use. For example, in a session oriented transport protocol, a session queue 810 is assigned to each session. Such session transport oriented protocols include, or example, Transmission Control Protocol. In sessionless transport protocols, a session queue 810 is preferably assigned to each stream. Such sessionless protocols may for example be the User Datagram Protocol (UDP). Thus traffic destined for a particular subscriber unit 501-1 is not simply routed to the subscriber unit 501-1. First, traffic of different types are from the perspective of the transport layer are first routed to individual session queues 810-1-1, 810-1-2, . . . , 810-1-m, associated with that particular connection.
Another key function performed by the transport module 801-1 is to assign priorities to the individual queues 810-1 associated with it. It will later be understood that depending upon the bandwidth available to a particular subscriber unit 501 traffic of higher priority will be delivered to the transmission buffer 840-1 before those of lower priority. This may include traffic that is not session oriented, for example, real time traffic or streaming protocols that may be carrying voice andlor video information.
More particularly, the transport module 801-1 reports the priorities of each of the individual session queues 801-1 to its associated session multiplexer 820. Traffic of higher priority will be selected by the session multiplexer 820 for loading into the transmit buffer 840-1 for loading traffic of lower priority, in general. Traffic of equal priority will either be fairly selected such as using techniques known as weighted fair queuing (WFQ) or other schemes such as oldest queued data loaded first.
Priorities associated with each session queue may be obtained from information such as a profile data record kept for each user. For example, some users may have specified that they desire web page traffic traveling on TCP type session connections to have lower priority than streaming audio information carried on UDP type connections. Prioritization may also be based on other aspects of the data content being transmitted. For example, traffic being forwarded from a private data network may be given priority over traffic being forwarded from public networks.
Each of the session multiplexers 820-1, 820-2 . . . , 820-n, reports indications to a session manager 830 of the states of all of the session queues 810 that it is currently managing. The session manager 830 also receives indications of the present forward channel assignments given to each individual subscriber unit 501 by the channel assigner 809. The channel assigner 809 monitors the usage of the transmit buffers 840 in the base station. Upon receipt of characteristic information concerning the state of how much data is queued in respect to transmit buffers 840 the channel resource assigner 809 then determines an urgency factor representing the relative need for each subscriber unit 501 to receive data on the available forward link radio channels 510. Using these urgency factors, the channel resource assigner 809 can then dynamically assign an optimum number of channel resources to be allocated to each subscriber unit 501. Specific discussion of urgency factors in the allocation of channels is described in further detail below.
To estimate how much data may be transversing the wired network at any particular instant in time, the session manager 830 also needs to maintain a running estimate of the latency or the back call network 505 to any particular server at the other end of a transport layer session. The transport modules 801 therefore watch individual session flows from various network servers located in the wired network 505 and are therefore capable of estimating latencies such as by determining typical TCP round-trip time estimations. The transport modules 801 report this information to the session manager 830.
The session manager 830 containing all of this information can then send channel requests to the channel resource assigner 809 when it perceives that the present incoming data flow from the wired network for a particular individual subscriber unit 501-1 is greater than the data rate allowed to that subscriber unit by its present channel configuration. Recalled from above that the channel configuration may include the number of channels assigned, coding rate, and symbol modulation rate for each specific channel. Likewise, the session manager 830 notifies the channel resource assigner 809 when it is possible to release channel resources for a particular subscriber unit 501-1 if the incoming data flow from the wired network 505 is less than the maximum data rate that is presently assigned to its forward link.
If split connection transport approaches are employed, as described in RFC 2757-Long Thin Networks, of the Internet Engineering Task Force (EETF), the session manager 830 is capable of sending requests to the transport modules 801 that pause data flow for any particular session or sessions. If the session is a TCP session, the transport modules 801 can then actively place the TCP senders at the other end of the network 505 into a so-called persist mode, thereby pausing all further session flow. If the session is a streaming or unreliable protocol such as UDP, a loss profile will determine the nature of how the queued and incoming data is lost. Session information will be paused or lost if the session manager 2530 requests that more forward bandwidth should be assigned to a particular subscriber unit 2201-1 and the request denied.
If channel requests are denied, the session manager 830 then determines which session information to regulate, pause, or lose data based on content priority information. As previously mentioned, the transport session managers 830 maintain information to allow them to prioritize their individual session queues 810 based on content so these transport modules 801 can therefore choose the correct session queues to enable andlor disable based on priority.
The transmission buffers 840 are each marked with levels that are used to calculate urgency factors-for each respective buffer 840. The urgency factors are used to determine channel allocation by the channel assigner 809 on a per subscriber per content basis. The levels, indicated in FIG. 8 as L1, L2, and L3, represent demarcation points for channel allocation and/or deallocation. Specifically, when the transmission buffers 840-1 is filling and a level is traversed, an indication is sent to the channel resource assigner 809 that the subscriber unit 501-1 is likely to need more forward link bandwidth assigned. If the request is denied, the channel resource assigner 809 then sends this  indication to the session manager 830.
Conversely, when the transmission buffer 840-1 is emptying, and a level is traversed, an indication is sent to the channel resource assigner 809 that the associated subscriber unit 501-1 may have forward traffic channels taken away from or deallocated without affecting end to end performance.
The levels L1, L2, ... , L3, may therefore be termed under flow thresholds. The levels basically represent permetations of available code rate and channel code assignments for an individual subscriber unit 501. Two requirements are needed to determine the threshold levels. First, the route trip transfer time on the wired network either needs to be estimated or initial approximation needs to be set. For TCP sessions, a running round-trip time (RTT) estimation is made. For streaming oriented sessions such as UDP, another approximation can be made which for example may be a function of how much data may be queued to optimize the user's experience for a particular real time application using the UDP protocol.
Secondly, the data rate over the air interface needs to be determined. This is a function of the present code rate (CR) and number of assigned channels (NCH) allocated to a particular subscriber unit. These are the values determined by the channel resource assigner 809.
Coding rates are assigned to subscriber units 501 determined by the quality of the radio connection. For each assigned coding rate, the subscriber may also be assigned a number of channels. One scheme, therefore, allocates a Level to each available assigned channel. Thus levels L1-LC, where C indicates the number of assigned channels are available at any given instant in time to service the connection. Thus the levels, L1-LC, change each time the number of channels are assigned  as well as each time the coding rate changes. Specifically, the particular buffer level associated with each L will change depending upon the available coding rate.
A graphical representation of a particular transmit buffer 840 is illustrated in FIG. 9. With knowledge of the round-trip transfer time in the network 505 and the current available data rate over the forward link radio channels 510 allocated to the particular subscriber unit 501 the levels L1-LC may be calculated as follows:

Ln=Underfiow Threshold=DRAir(code rate & channel configuration)* Δt,

where DRAir is the data rate across the air interface, and the round-trip transfer time is either the estimated time or the set round-trip time over the wired network 505. Δt is the time granularity used to monitor incoming data flows. If this scheme is used only to optimize TCP connection oriented sessions, At can be said to either the maximum or average of all round-trip times estimated by the TCP end points, depending upon the available buffer space.

The condition for sending a request for more bandwidth to be allocated to a particular subscriber unit 501 is described by the following relationship:




  
    [
    
      
        BC
        
          Δ
          ⁢
          
            
          
          ⁢
          t
        
      
      +
      
        (
        
          
            ∑
            
              i
              =
              1
            
            max
          
          ⁢
          
            
          
          ⁢
          
            
              Fin
              i
            
            *
            Δ
            ⁢
            
              
            
            ⁢
            t
          
        
        )
      
    
    ]
  
  >
  
    L
    ⁡
    
      (
      
        n
        +
        1
      
      )
    
  




where Δt is the time granularity used to monitor the incoming data flows, BCΔt represents the current transmission buffer capacity at the beginning of a particular timeframe, Fin1 minus Finmax represents all incoming data flows from sessions or streams to the transmission buffer 840 and L(n+1) is the amount of data that can be sent over the radio forward links 510 in time At for the next increasing channel configuration.

Note that for session oriented TCP streams that the maximum FinSubi is equal to the maximum advertised received window divided by the round-trip transfer time. This condition occurs  when the combination of all incoming flows for a specific time interval is greater than the amount of data that can be transmitted during one time interval Δt at the next increasing channel capacity assignment.
FIG. 1O represents this case graphically with the block arrow in the Figure representing the amount of flow incoming for the time frame Δt.
The condition for sending a channel deallocation request for a subscriber unit is given by the relationship:




  
    [
    
      
        BC
        
          Δ
          ⁢
          
            
          
          ⁢
          t
        
      
      +
      
        (
        
          
            ∑
            
              i
              =
              1
            
            max
          
          ⁢
          
            
          
          ⁢
          
            
              Fin
              i
            
            *
            Δ
            ⁢
            
              
            
            ⁢
            t
          
        
        )
      
    
    ]
  
  <
  
    L
    ⁡
    
      (
      
        n
        +
        1
      
      )
    
  




where L(n) is the amount of data that can be sent over the assigned forward link channels 510 in time Δt for the current channel configuration. This condition occurs when the combination of all incoming flows for a specific time interval, Δt is less than the amount of data that can be transmitted during that time interval at the current channel capacity assignment. This situation is represented in the diagram of FIG. 11 with the block arrow representing the amount of flow incoming during time Δt.

Note that in an actual implementation, the transmission buffers 840 may only be theoretical queues represented by a data structure within the session manager 830 or session multiplexers 820. The transmission buffers 840 are actually the combination of all data residing in all session queues 810 for any particular subscriber unit 501. This same logic applies when determining urgency factors and levels for the transmission buffer data structures namely that such logic can be implemented within the session manager 830 and/or session multiplexers 820 rather than as a separate physical data storage structure and associated logic.
The present invention therefore provides an advantageous way in which transmission queues may be loaded and how additional resources may be requested and/or may be allocated and/or deallocated on a per subscriber basis. Individual transmission queues intended for particular subscribers may therefore be monitored for data level and channels assigned or deassigned depending upon observed buffer filling rates. The channel resource assigner 809 therefore has knowledge of the types of traffic flow through the base station based upon application content. This allows more intelligent efficient channel allocation when there is competition for the available resources. Thus by having transport layer aware channel allocation and deallocation coupled with calculation of overflow and underfiow threshold based upon current configured forward link radio channel capacity, the connection between the base station and the subscriber unit in the forward link direction may be optimized.
While this present invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Those skilled in the art will recognize or be able to  ascertain using no more than routine experimentation, may equivalents to the specific embodiments of the invention described specifically herein. Such equivalents are intended to be encompassed in the scope of the claims.
When referred to hereafter, the terminology “wireless transmit/receive unit (WTRU)” includes but is not limited to a user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a pager, a cellular telephone, a personal digital assistant (PDA), a computer, or any other type of user device capable of operating in a wireless environment. When referred to hereafter, the terminology “base station” includes but is not limited to a Node-B, a site controller, an access point (AP), or any other type of interfacing device capable of operating in a wireless environment.
Although the features and elements of the present invention are described in the preferred embodiments in particular combinations, each feature or element can be used alone without the other features and elements of the preferred embodiments or in various combinations with or without other features and elements of the present invention. The methods or flow charts provided in the present invention may be implemented in a computer program, software, or firmware tangibly embodied in a computer-readable storage medium for execution by a general purpose computer or a processor. Examples of computer-readable storage mediums include a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
Suitable processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), and/or a state machine.
A processor in association with software may be used to implement a radio frequency transceiver for use in a wireless transmit receive unit (WTRU), user equipment (UE), terminal, base station, radio network controller (RNC), or any host computer. The WTRU may be used in conjunction with modules, implemented in hardware and/or software, such as a camera, a video camera module, a videophone, a speakerphone, a vibration device, a speaker, a microphone, a television transceiver, a hands free headset, a keyboard, a Bluetooth® module, a frequency modulated (FM) radio unit, a liquid crystal display (LCD) display unit, an organic light-emitting diode (OLED) display unit, a digital music player, a media player, a video game player module, an Internet browser, and/or any wireless local area network (WLAN) module.

## Claims

1. A method for use in a code division multiple access (CDMA) user device, the method comprising:
transmitting first data to a base station over a plurality of wireless channels;
receiving second data from at least one data buffer in the base station over a plurality of data traffic channels;
receiving data indicative of a data rate associated with the plurality of data traffic channels over a channel; and
wherein the CDMA user device is dynamically assigned the plurality of data traffic channels for receiving data based on an urgency factor, wherein the urgency factor is based on the data present in the data buffer.

2. The method of claim 1, wherein the data received over the plurality of data traffic channels is associated with at least one priority.

3. The method of claim 1, wherein the urgency factor is used to determine channel allocation based on data source type.

4. The method of claim 1, wherein the received first data comprises packet data corresponding to a particular data attribute.

5. A cellular network device comprising:
a plurality of data queues associated with a plurality of user devices; data of each data queue being associated with at least one logical channel and being associated with at least one priority; and
the network device configured to transmit data indicative of a data rate associated with a plurality of physical code division multiple access (CDMA) channels to a particular user device over a physical CDMA channel; wherein the network device is further configured to schedule data flows from data of the data queues based on the associated at least one priority; wherein the network device is further configured to transmit the scheduled data flows using the plurality of physical CDMA channels; wherein the network device is further configured to combine data from a plurality of logical channels for the particular user device into at least one data flow; wherein a number of the physical channels of the plurality of physical CDMA channels is dynamically assigned.

6. The cellular network device of claim 5 wherein data of the scheduled data flows is associated with one of a number of different assignable codes.

7. The cellular network device of claim 5 wherein the network device is configured to dynamically assign the plurality of physical CDMA channels based on time granularity used to monitor incoming data flows, transmission buffer capacity at the beginning of a particular timeframe, and the amount of data that can be sent over the plurality of logical channels in a determined time period.

8. A method comprising:
allocating a plurality of data queues for communication with a plurality of user devices, data of each data queue being associated with at least one logical channel and being associated with at least one priority; and
transmitting, via a network, data indicative of a data rate associated with a plurality of physical code division multiple access (CDMA) channels to a particular user device over a physical CDMA channel; wherein the network device schedules data flows from data of the data queues based on the associated at least one priority; wherein the network device transmits the scheduled data flows using the plurality of physical CDMA channels; wherein the network device combines data from a plurality of logical channels for the particular user device into at least one data flow; wherein a number of the physical channels of the plurality of physical CDMA channels is dynamically assigned.

9. The method of claim 8 wherein data of the scheduled data flows is associated with one of a number of different assignable codes.

10. The method of claim 8 wherein the plurality of physical CDMA channels are dynamically assigned based on time granularity used to monitor incoming data flows, transmission buffer capacity at the beginning of a particular timeframe, and the amount of data that can be sent over the plurality of logical channels in a determined time period.

11. A code division multiple access (CDMA) user device comprising: a transceiver configured to communicate over a plurality of wireless channels with a base station; a buffer configured to buffer data, the data being associated with at least one channel and having an associated priority;
the transceiver is further configured to transmit scheduling information to the base station indicating an amount of data associated with the buffer; wherein the scheduling information is transmitted with data on a plurality of wireless channels;
the transceiver is further configured to receive a signal with a resource allocation; and
the transceiver is further configured in response to the resource allocation to transmit data over a plurality of wireless channels; wherein a number of the plurality of wireless channels is based on at least the resource allocation.

12. The CDMA user device according to claim 11 wherein the buffer is configured to buffer packet data.

13. The CDMA user device according to claim 12 wherein transceiver is configured to transmit buffer characteristics as the scheduling information.

14. The CDMA user device according to claim 12 wherein the plurality of wireless channels includes logical channels.

15. The CDMA user device according to claim 12 wherein the packet data is transmitted with one of a number of different assignable codes.

16. The CDMA user device according to claim 11 wherein priority information is used in order to define a session queue to enable or disable.

17. The CDMA user device according to claim 11 wherein the number of the wireless channels are dynamically changed based on at least the resource allocation.

18. The CDMA user device according to claim 11 wherein the transceiver is further configured to change a coding associated with the wireless channels based on at least the resource allocation.

19. The CDMA user device according to claim 11 wherein the priority of the buffered data of the at least one channel is a highest priority.

20. A method of code division multiple access (CDMA) communication performed by a user device to communicate with a base station via wireless channels, the method comprising:
storing data in a buffer, the data being associated with at least one channel and having an associated priority;
transmitting scheduling information to the base station indicating an amount of data associated with the buffer; wherein the scheduling information is transmitted with data on a plurality of wireless channels;
receiving a signal with a resource allocation; and
in response to the resource allocation, transmitting data over a plurality of wireless channels; wherein a number of the plurality of wireless channels is based on at least the resource allocation.

21. The method according to claim 20 wherein packet data is stored in the buffer.

22. The method according to claim 21 wherein buffer characteristics are transmitted as the scheduling information.

23. The method according to claim 21 wherein the plurality of wireless channels includes logical channels.

24. The method according to claim 21 wherein the packet data is transmitted with one of a number of different assignable codes.

25. The method according to claim 20 wherein the resource allocation is received in response to a request.

26. The method according to claim 20 wherein: priority information is used in order to define a session queue to enable or disable.

27. The method according to claim 20 wherein the number of the wireless channels is dynamically changed based on at least the resource allocation.

28. The method according to claim 20 further comprising:
changing a coding associated with the wireless channels based on at least the resource allocation.

29. The method according to claim 20 wherein the priority of the buffered data of the at least one channel is a highest priority.