DESCRIPTION
METHOD OF, AND APPARATUS FOR, TRANSMITTING DATA, AND A COMMUNICATION SYSTEM
The invention relates to a method of transmitting data comprising a plurality of data types, to an apparatus for transmitting data comprising a plurality of data types, and to a communication system comprising such an apparatus. The invention can be applied in particular, but not exclusively, in mobile communication systems such as UMTS (Universal Mobile Telecommunication System) and cdma2000, and in cordless telephone systems and wireless local area networks.
There is a requirement for a data transmission apparatus to transmit a plurality of types of data using multiplexed transmission resources. The data types may comprise, for example, control information, user voice information, streamed user data, conversational user data and background services. The different types of data may employ, for example, different data rates, different coding and different transmission powers. The transmission resources may comprise, for example, time, spreading code and power.
In one known technique, the different types of data may be time multiplexed, with time periods of fixed duration being allocated for the transmission of each data type. A problem with such a fixed allocation of time periods is that if the proportion of one type of data increases beyond the proportion of time allocated for transmission of that data type, the transmission delay increases and the quality of service degrades for that data type.
In another known technique, there may be a flexible allocation of time periods, with, for example, real time speech being given highest priority, and any variable remaining time being used for the transmission of non-real-time data. A problem with such a flexible allocation of time periods is that if the proportion of high priority data increases, the lower priority data may be
starved of transmission time and the quality of service degrades for that data type.
As a further example, transmission power may be allocated first to a first type of data transmitted on a first logical channel, and then any left over power is used for a second type of data transmitted on a second logical channel. A problem with this approach is that when there is a large amount of the first type of data to be transmitted, the second logical channel is starved of transmission power and the quality of service degrades for that data type.
US Patent Publication 2003/0099250 discloses a queue scheduling mechanism in a data packet transmission system. The mechanism includes a set of queue devices respectively associated with a set of priorities, each defined by a priority rank for storing each data packet transmitted by a transmission device into the queue device corresponding to its priority rank. A queue scheduler reads, at each packet cycle, a packet in one of the queue determined by a normal priority pre-emption algorithm. The queue scheduling mechanism includes a credit device that provides at each packet cycle a value N defining the priority rank to be considered by the queue scheduler whereby a data packet is read by the queue scheduler from the queue device corresponding to the priority N instead of the queue determined by the normal priority pre-emption algorithm. The queue device guarantees a bandwidth for any priority bandwidth but lacks flexibility in a starvation situation.
US Patent Publication 2003/0118044 A1 discloses a variant of the above-mentioned system in which in order to avoid a lower priority given by the credit device pre-empting the highest priority or several of the highest priorities, a switch engine is provided with an exhaustive priority register that registers or records, exhaustive priorities. At each packet cycle, the exhaustive priority register is read by the queue scheduler to determine whether there is a data packet having an exhaustive priority which is waiting to be transmitted. It is only when there is no such data packet that a data packet of the priority rank pointed in the credit device may be transmitted.
An object of the present invention is to enhance the transmission of data by reducing queue starvation.
According to a first aspect of the invention there is provided a method of operating a data transmission system in which multiple data streams of different significance are transmitted in a predetermined order in which data streams of higher significance have preference over data streams of lower significance, characterised by monitoring at least one of the multiple data streams having a lower significance for starvation and in response to detecting starvation, pre-empting the transmission of a data stream of higher significance by transmission of a data stream experiencing queue starvation. In one embodiment of the communication system the monitoring of the at least one of the multiple data streams is carried-out by a transmitting station and in another embodiment of the communication system the monitoring of the at least one of the multiple data streams is carried-out by a receiving station and detection of queue starvation is reported back to the transmitting station.
In one implementation of the method in accordance with the present invention the respective data streams are assigned to logical channels having respective priorities ranging from high to low and in response to detecting queue starvation in a lower priority channel its priority is changed temporarily to enable the lower priority channel to pre-empt the transmission of a higher priority channel.
In another implementation of the method in accordance with the present invention the transmission of data is in accordance with a delay criterion for each data type. The quality of service for each data type is manifest as a constrained delay which may be different for each data type.
The scheduling of the portions of data for transmission may be monitored for an overload condition that prevents at least one of the delay targets from being met, and in response to detecting an overload condition, altering at least one other of the delay targets such that the resulting delay targets are met. By adjusting the delay target for one or more data types in response to an overload condition, any further degradation in quality of service can be apportioned between the data types in a controlled manner, thereby
ensuring a fair apportionment of the degradation. The overload condition may be the result of, for example, an increase in the amount of data to be transmitted, an increase in the number of types of data to be transmitted, or a decrease in the resources available for transmitting the data. In further implementation of the method in accordance with the present invention the respective data streams have respective delay targets ranging from low to high and the scheduling of transmission of the data streams is such that the time of transmission of the respective data streams is within its delay target. , Optionally, the monitoring for queue starvation may be performed at the transmitting station. Such a mode of operation enables a fast adaptation of the delay targets.
Optionally, the monitoring for the overload condition may be performed at a receiving station and an indication of the queue starvation is transmitted back to the station transmitting the data. Such a mode of operation may be advantageous if, for example, the station transmitting the data is a mobile station and the station receiving the data is a base station in a mobile communication network, as it enables the base station to maintain some control over the delay targets operated by a population of mobile stations. The indication of the overload may comprise merely a flag to indicate that the queue starvation has occurred, or may comprise an indication of a value of an altered delay target for the station transmitting the data to employ.
Optionally, the scheduling of the data portions for transmission may comprise selecting a portion of one type of data, which may be of a different type to a previous portion, to transmit after transmission of the previous portion has been completed.
Optionally, the scheduling of the data portions for transmission may comprise interrupting the transmission of a portion of one type of data before its transmission is complete in order to transmit a portion of a different type of data, and subsequently transmitting the remainder of the interrupted portion. Such a mode of operation enables a fast adaptation to changes in the data to be transmitted.
Optionally, a limit on the amount of interruption may be imposed, for example in order to limit any degradation in the quality of service of the interrupted data, or to limit any inefficiency incurred by interruption. For example, the interruption may be limited to a predetermined duration, a predetermined percentage of time, a predetermined elapsed time since a previous interruption, or predetermined amount of deferred data.
According to a second aspect of the invention there is provided apparatus for transmitting multiple data streams, the apparatus comprising means for assigning a relative higher or lower significance to respective data streams, transmitter means for transmitting the data streams, means for prioritising the data streams to be transmitted such that streams of a higher significance normally have priority over data streams of a lower significance, pre-empting means responsive to detecting queue starvation in a data stream of lower significance for pre-empting the transmission of a data stream of higher significance by transmission of a data stream experiencing queue starvation.
According to a third aspect of the invention there is provided a communication system comprising a first apparatus in accordance with the second aspect of the invention and a second apparatus comprising receiver means for receiving the transmitted data. The second apparatus may transmit values of the delay targets to the first station. The second apparatus may monitor the received data for queue starvation, and the transmission of the values of the delay targets may be responsive to the queue starvation, in order to alter the delay targets stored by the first apparatus.
The invention will now be described, by way of example, with reference to the accompanying drawings wherein;
Figure 1 is a diagrammatic block schematic diagram of a Universal Mobile Telephone System (UMTS), Figure 2 is a flow chart illustrating an embodiment of the method in accordance with the present invention,
Figure 3 is a flow chart of one embodiment of a method of transmitting data comprising a plurality of data types, and Figure 4 is a block schematic diagram of an embodiment of a wireless communication system for carrying out the method in accordance with the present invention.
In the drawings the same reference numerals have been used to indicate corresponding features.
For convenience of description the present invention will be described with respect to UMTS which is a third generation mobile communication system providing voice and information services to mobile users. UMTS can provide mobile users with high bit rate connections for them to access rich multimedia services.
Referring to Figure 1 , the system comprises at least one base station BS1 and a plurality of user equipments (UEs) which may be hand portable terminals UE1 , UE2 and UE3. The base station BS1 comprises an antenna 260 coupled to a transceiver 250/280 which in turn is coupled to a processing means 270 for controlling the operation of the base station in accordance with pre-stored system parameters. The terminals UE1 , UE2 and UE3 are substantially the same and for convenience of description the terminal UE1 will be described in greater detail. The terminal UE1 comprises an antenna 160 coupled to a transceiver 150/180. The transceiver 150/180 is coupled to a control means 170. A scheduling means 120 having inputs 130 for multiple data streams is coupled to the control means 170 and to storage means 140, for example a random access memory, the latter also being connected to the control means 170.
UMTS will not be described in detail because the information, including submissions to the various working groups (WGs), is available on the world wide web. With respect to the subject matter of the present invention the current state of the art is described in various input documents to 3GPP RAN WG2, which describe various proposals for an Enhanced Uplink (Enhanced Dedicated Channel (E-DCH)). Only packet transmission on the uplink is
considered here, but a person skilled in the art will understand that the same techniques are equally applicable to the downlink. Under current proposals when a UE sends a packet on the uplink this would use a new channel, the E- DCH. It is intended that the E-DCH typically carries information data bits and physical signalling information such as data format or requests for uplink transmission. This control information can be code or time multiplexed with the data. The packet duration is either 2ms or 10ms.
In the proposed E-DCH, transmission power is allocated first to a Dedicated Channel (DCH), and any left over power is used for the E-DCH. A problem with this approach is that it may result in starvation of the transmission of the low priority logical channels carried on the E-DCH. The problem is more significant for the E-DCH as only a single transport channel is allowed to be transmitted per Time Transmission Interval (TTI).
Starvation can happen in several circumstances where certain Radio Access Bearer (RAB) combinations exist. In particular the combination of conversational and streaming RABs with interactive background services could be a problem. The starvation of interactive services in this scenario would have a serious, if not fatal, result, on the user experience.
In accordance with the present invention when starvation of a low priority logical channel is detected, a UE can use pre-emption for the lower priority channels to prevent starvation. Pre-emption is where an ongoing transmission is interrupted to allow other data to be sent. In the case of the present invention pre-emption for the lower priority channels would be at the expense of delaying higher priority logical channels. In the present specification the references to logical channels may refer to multiplexes of data from different logical channels in such a way as to group data with, for example, similar Quality of Service (QoS) attributes into a single logical channel.
In order to minimise the impact of the pre-emption, the high priority channels may be divided into sub-classes and certain of the sub-classes cannot be pre-empted at all whilst other sub-classes can be pre-empted. For those sub-classes that can be pre-empted, the amount of pre-emption may be
tightly controlled. Otherwise it may be possible for a lower priority channel to cause significant delays to the delay-sensitive high priority channels. The mechanism for controlling pre-emption would be a predefined or signalled parameter that defined the amount of pre-emption that was allowed. The flow chart shown in Figure 2 illustrates one embodiment of implementing the method in accordance with the present invention. Block 10 relates to allocating data packages to logical channels according to their priority. High priority may be assigned to interactive services and real time data such as video and audio and a low priority may assigned to non-real time data such as background data. Block 12 relates to the transmission of data packages from high priority logical channels. Block 14 relates to monitoring low priority logical channels for queue starvation. The monitoring will be of one or more factors affecting QoS such as the level of buffered data exceeding a threshold value, transmission delay reaching a threshold value, and the time elapsed since the transmission by a low priority logical channel exceeding a threshold value.
Block 16 relates to checking if starvation has been detected. If it has not been detected (N) the flow chart reverts to the input to the block 14. Alternatively if starvation has been detected (Y) then a pre-emption process is brought into effect. In block 20 a check is made to see if the current high priority logical channel can be pre-empted. If it cannot (N), block 22 denotes continued transmission of the high priority logical channel. If pre-emption is possible (Y), block 24 indicates the process of pre-empting the high priority logical channel. Block 26 denotes the transmission from the low priority logical channel.
Block 28 denotes checking if a limit on the pre-emption of the high priority channel has been reached. If the limit has been reached (Y), block 32 indicates interrupting the transmission from the starved logical channel and the transmission from high priority logical channels in accordance with the block 12. If a limit has not been reached (N), the flow chart progresses to a block 30 which relates to checking if the transmission by the starved logical channel is
complete. If it is complete (Y) the flow chart reverts to the block 12 and if it is not complete (N) the flow chart reverts to the block 26.
Variations from the method described with reference to Figure 2 will now be described. In implementing the method in accordance with the present invention on the UMTS system it is proposed that the logical MAC (Medium Access Layer) multiplexing should allow for sending both high and low priority data, while preventing low priority queue starvation. This is accomplished by allowing for the possibility of pre-emption of the high priority data by the lower priority data, in certain circumstances. The key aspects typically include:
1. Defining an upper limit to the amount of pre-emption which each logical channel may perform. (Typically, a high priority logical channel might be permitted to pre-empt other logical channels up to 80% of the time, while a low priority logical channel might be permitted to pre-empt other logical channels up to 10% of the time).
2. Defining an upper limit to the amount of pre-emption which may be performed on each logical channel. (Typically, a high priority logical channel might be pre-empted by other logical channels up to 10% of the time, while a low-priority logical channel might be pre-empted by other logical channels by up to 90% of the time.)
These limits on pre-emption and pre-empting will be referred to in the following as pre-emption parameters.
In some embodiments the pre-emption parameters may behave stochastically, so on a given occasion (that is, for a given packet or transmission interval) pre-emption may occur with a certain probability. In some other embodiments, the probability that one logical channel may pre¬ empt another may be derived as a function of the amount of pre-emption which may occur on the pre-emptied channel and the amount of pre-emption which may be carried-out by the pre-empting channel. This function may for example be simple multiplication. For example, if logical channel A is assigned an upper limit of 0.8 on its ability to pre-empt, and logical channel B is assigned an upper limit of 0.2 on its ability to be pre-empted, then when logical
channel a wishes to pre-empt logical channel B, it may do so with a probability of 0.16.
In another embodiment, the pre-emption parameters may be adjusted on a short-term basis to give one logical channel a temporarily-increased ability to pre-empt other channels, or to give one logical channel a temporarily- increased protection against being pre-empted.
Such temporary changes in pre-emption parameters may be triggered in response to detection by either the transmitter or the receiver that a certain predetermined QoS (Quality of Service) condition has occurred. In one embodiment, where the pre-emption parameters are constrained to being either 0 or 1 , the values may be toggled temporarily to give a logical channel which is not normally permitted to pre-empt other channels, an opportunity to do so. Typical QoS conditions might include the detection of starvation is occurring on one logical channel, that one logical channel has reached a threshold amount of buffered data at the transmitter, that the transmission delay for one logical channel has reached a threshold value, that the time since the last transmission of data from one logical channel has reached a threshold value, or some other condition.
The pre-emption parameters may be predetermined, or signalled by the receiving station to the transmitting station.
The pre-emption parameters may be in terms of a percentage of time, data bits, data packets, or an arbitrary scale.
When pre-emption occurs, it may take the form of aborting an ongoing
HARQ (Hybrid Automatic Repeat) retransmission process on a pre-empted channel, or using the next available TTI (Time Transmission Interval) of a
HARQ process for the pre-empting channel in order to free up resource for the low priority channel.
The mechanism for limiting the amount of pre-emption of the high priority channels ensures that the low priority channel data is not allowed to degrade the QoS of the high priority channel significantly.
Figures 3 and 4 respectively relate to a flow chart and to a wireless communication system in which transmission delay is used for indicating queue starvation.
Referring to Figure 3, the steps illustrated are performed for each portion of data transmitted. At step 40, for each data type awaiting transmission, a time period is calculated, relative to a time reference, that the data has been waiting for transmission. The time reference may be common between data types, or may be specific to the data type. Each calculated time period is compared with a stored delay target. The stored delay target may be common between data types, or may be specific to the data type.
Optionally at step 40 a check for an overload condition may be made. The check may comprise, for example, determining whether the delay target has been exceeded for any of the data types, or alternatively is close to being exceeded. If such an overload condition is determined for one or more of the data types, the delay target for at least one other of the data types may be altered such that the resulting delay targets are met by subsequently transmitted portions, that is, the delay targets are the same, or at least compliance with the delay targets are improved.
At step 50 the results of the comparisons are used to select the data type that is closest to exceeding its respective delay target.
At step 60 a portion of the selected data type is transmitted.
At step 70 the process reverts to step 40 to prepare for selection and transmission of the next data portion, which may be of the same type or a different type, according to the outcome of steps 10 and 20. The wireless communication system shown in Figure 4 comprises a first station 100 for transmitting data comprising a plurality of data types and a second station 200 for receiving the data. There may be a plurality of the first stations. The first station 100 may be, for example, a UE such as a mobile terminal in a mobile communication network and the second station 200 may be a base station (BS).
The first station 100 comprises a plurality of inputs 130 for receiving data, each input receiving data of a different type. The inputs are coupled to a
scheduling means 120, which may be implemented for example in a processor. A generator means 110, for example a clock, is coupled to provide a time reference signal to the scheduling means 120. A storage means 140, such as a memory, is coupled to the scheduling means 120, and stores a set of delay target values, one for each data type.
The scheduling means 120 is adapted to schedule portions of each data type for transmission such that the time of transmission of each portion is within the delay target stored in the storage means 140 for the respective data type. For this purpose, the scheduling means may perform the steps 40 and 50 of Figure 3 as described above.
An output of the scheduling means 120 is coupled to a transmitter 150 for transmission of the scheduled data portions via an antenna 160.
The second station 200 comprises an antenna 260 coupled to a receiver 280 for receiving the data. An output of the receiver 280 is coupled to a processing means 270 for processing the received data according to the data type and application. As this processing is not material to the understanding of the present invention it will not be described further in this specification.
The first station 100 may comprise a control means 170 coupled to the storage means 140 for altering the values of the delay targets stored in the storage means 140. Such altered values of the delay targets may be transmitted to the first station by the second station 200 and received by a receiver 180. This enables the first station 100 to be upgraded to cater for new data types or new quality of service requirements. The scheduling means 120 may perform the optional task of checking for an overload condition as described above with reference to step 40 of Figure 3. The scheduling means 120 is coupled to report an overload condition to the control means 170, which then alters one or more of the delays target values stored in the storage means 140, as described above with reference to step 40 of Figure 3.
Alternatively, the processing means 270 of the second station 200 may perform the optional task of checking for an overload condition as described
above with reference to step 40 of Figure 3, and, by means of a transmitter 250, either report an overload condition to the control means 170 or transmit one or more altered delay target values to the control means 170, which then alters one or more of the delay target values stored in the storage means 140. Optionally the delay target for one or more of the data types may comprise a minimum and a maximum value. In this way the data may be transmitted at times having a predetermined maximum amount of jitter.
Optionally different values of the delay target may be employed for a given data type, dependent on the combination of data types being transmitted. In this way the delays of different data types may be optimised to suit different combinations of data types required for different applications.
In addition to using the delay criterion for scheduling the transmission of data portions, the scheduling means 120 may employ other criteria. For example, there may be a finite size buffer available for storing each type of data awaiting transmission. If the buffer occupancy for one type of data exceeds a predetermined occupancy threshold, then the scheduling means 120 may select that data type for transmission in order to reduce the buffer occupancy. As another example, if the delay criterion yields two data types that are eligible for transmission, a buffer occupancy criterion may be used to select one of these data types for transmission.
The wireless communication system shown in Figure 4 may be adapted to perform the scheduling based on a buffer occupancy criterion instead of a delay criterion. In this case, a buffer occupancy threshold may be stored for each data type, instead of a delay target, and scheduling may be performed by the scheduling means 120 to maintain the buffer occupancy within the buffer occupancy threshold. Monitoring for an overload condition may comprise monitoring for a buffer exceeding a buffer occupancy threshold, and instead of altering delay targets in case of overload, the buffer occupancy threshold values may be altered and the buffer resources re-apportioned between the different data types.
In the present specification and claims the word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements.
Further, the word "comprising" does not exclude the presence of other elements or steps than those listed.
The inclusion of reference signs in parentheses in the claims is intended to aid understanding and is not intended to be limiting.
From reading the present disclosure, other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the art of data transmission and which may be used instead of or in addition to features already described herein.