METHOD AND APPARATUS FOR HANDLING DATA BLOCKS IN A MOBILE COMMUNICATIONS SYSTEM

Abstract

A method and apparatus for handling data blocks in a mobile communications system are disclosed. The method comprises receiving, at a receiving module, data blocks associated with a sequence number; determining, using a determining module, whether the sequence number of the received data blocks is outside a receiver window; comparing, using a comparing module, a next-expected transmission sequence number (NET) with a range of an updated receiver window when the sequence number of the received data blocks is determined to be outside the receiver window; and setting, using a setting module, the NET such that the NET is within the updated receiver window, if the NET is found to be outside that range of the updated receiver window as a result of the comparison.

Full Text

Description
Technical Field
[1] The present invention relates to wireless (radio) communications, and in particular,
to handling data blocks by updating a next-expected TSN and receiver window to
avoid stall conditions.
Background Art
[2] The present invention relates to controlling a reordering buffer by a user equipment
(UE) that employs a next-expected transmission sequence number (TSN) and a
receiver window for a HSDPA (High-Speed Downlink Packet Access) system in a
UMTS (Universal Mobile Telecommunications System), which is a European type
IMT-2000 system, and more particularly, to controlling the reordering buffer to
prevent stall conditions due to MAC-hs PDUs not being delivered to the upper layer
when the next-expected TSN Ms outside the receiver window range.
[3] The UMTS (Universal Mobile Telecommunications System) is a third generation
mobile communications system that evolved from the European GSM (Global System
for Mobile Communications) system, with the purpose of providing farther improved
mobile communications service based upon a GSM core network and W-CDMA
(Wideband Code Division Multiple Access) technology.
[4] Figure 1 depicts a typical UMTS network (100) architecture. The UMTS broadly
consists of user equipment (UE 110), a UMTS Terrestrial Radio Access Network
(UTRAN120), and a core network (CN130). The UTRAN consists of one or more
radio network sub-systems (RNS 121,122), and each RNS consists of one radio
network controller (RNC 123,124) and one or more base stations (Node Bs 125,126)
mat are managed by the RNC The Node B, being managed by the RNC, receives data
sent from a physical layer of the UE via the uplink and transmits data to the UE via the
downlink, to thus act as an access point of the UTRAN with respect to the UE The
RNC handles the allocation and management of radio resources, and acts as an access
point with the CN.
[5] An RNC that manages dedicated radio resources for a particular UE is called a
serving RNC (SRNC 123), and an RNC that manages common radio resources for a
plurality of UEs within one cell is called a controlling RNC (CRNC). Also, when the
UE moves, all RNCs that the UE goes through (excluding the SRNC) are called drift

RNCs (DRNCs 124). The drift RNCs 124 facilitate the routing of user data and
allocate codes as common resources.
[6] The interface between the RNC and the CN is called an Iu interface. The interface
between the SRNC and the DRNC is called an Iur interface. The interface between the
RNC and Node B is called an Iub interface. Each interface provides control data or
data transmission services via a transport bearer. For example, the bearer provided in
the Iub interface is called a Iub transport bearer, which provides control data or data
transmission services between the RNC and Node B.
[7] Figure 2 depicts a radio interface protocol architecture based upon a 3GPP radio
access network specification between the UE and the UTRAN. The radio interface
protocol of Figure 2 is divided horizontally into a physical layer, a data link layer, and
a network layer, and is divided vertically into a user plane for data information
transmissions and a control plane for transfer of control signaling. Namely, the user
plane is the region in which traffic information of the user (such as voice, IP (Internet
Protocol) packets, and the like) is transferred, while the control plane is the region in
which control information (such as the interface of the network, maintaining and
managing calls, and the like) is transferred. The protocol layers of Figure 2 may be
divided into a first layer (L1), a second layer (L2), and a third layer (L3) based upon
the lower three layers of an open system interconnection (OSI) model that is a well-
known in communications systems.
[8] Each layer depicted in Figure 2 will now be described in more detail. The first layer
(L1) is a physical layer (PHY) that provides information transfer service to upper
layers by using various radio transmission techniques, and is connected to a medium
access control (MAC) layer that is located thereabove via a transport channel through
which data travels between the MAC layer and the physical layer.
[9] The MAC layer provides data transfer, reallocation of radio resources and MAC
parameters. The MAC layer is connected to a radio link control (RLC) layer, which is
an upper layer, via a logical channel, and various logical channels are provided
depending upon the type of data that is transmitted.
[10] In general, when information of the control plane is transmitted, a control channel is
used. When information of the user plane is transmitted, a traffic channel is used.
[11] The MAC layer is sub-divided into a MAC-b sub-layer, a MAC-d sub-layer (310), a
MAC-c/sb sub-layer (320), and a MAC-hs sub-layer (330), according to the type of
transport channel that is managed.
[ 12] The MAC-b sub-layer manages a BCH (Broadcast Channel), which is a transport

channel handling the broadcasting of system information.
[13] The MAC-d sub-layer (310) manages a dedicated channel (DCH), which is a
dedicated transport channel for a specific terminal. Accordingly, the MAC-d sub-layer
of the UTRAN is located in a serving radio network controller (SRNC) that manages a
corresponding terminal, and one MAC-d sub-layer also exists within each UE
[14] The MAC-c/sh sub-layer (320) manages a common transport channel, such as a
forward access channel (FACH) or a downlink shared channel (DSCH), which is
shared by a plurality of terminals. In the UTRAN, the MAC-c/sh sub-layer exists for
each cell and is located in a controlling radio network controller (CRNC), and one
MAC-c/sh sub-layer exists in each UE
[ 15] The MAC-hs sub-layer (330) performs the functions related to HSDPA
(High-Speed Data Packet Access) such as packet scheduling, HARQ (Hybrid ARQ)
operations, and the like.
[16] The RLC layer supports reliable data transmissions, and performs a segmentation
and concatenation function on a plurality of RLC service data units (RLC SDUs)
delivered from an upper layer. When the RLC layer receives the RLC SDUs from the
upper layer, the RLC layer adjusts the size of each RLC SDU in an appropriate manner
upon considering processing capacity, and then creates certain data units with header
information added thereto. The created data units are called protocol data units
(PDUs), which are men transferred to the MAC layer via a logical channel.'The RLC
layer includes a RLC buffer for storing the RLC SDUs and/or the RLC PDUs.
[17] The BMC (Broadcast/Multicast Control) layer is located above the RLC layer, and
schedules cell broadcast messages (referred to as 'CB messages', hereinafter) received
from the core network, and broadcasts the CB messages to UEs located in a specific
cell(s).
[18] The PDCP (Packet Data Convergence Protocol) layer is located above the RLC
layer, and allows the data transmitted through a network protocol (such as an IPv4 or
IPv6) to be effectively transmitted on a radio interface with a relatively small
bandwidth. To achieve this, the PDCP layer performs the function of reducing un-
necessary control information used for a wire-line network, and this type of function is
called, header compression.
[ 19] There is a radio resource control (RRC) layer at a lowermost portion of the L3
layer. The RRC layer is defined only in the control plane, and handles the controlling
of logical channels, transport channels, and physical channels with respect to es-
tablishment, reconfiguration, and release of radio bearers (RBs). The radio bearer

service refers to a service that the second layer (L2) provides for data transmission
between the terminal and the UTRAN in order to guarantee a predetermined quality of
service by the UE and UTRAN. And in general, the radio bearer (RB) establishment
refers to regulating the protocol layers and the channel characteristics of the channels
required for providing a specific service, as well as respectively setting substantial
parameters and operation methods.
[20] When the RRC layer of a particular UE and that of the UTRAN are connected to
allow RRC messages to be sent and received therebetween, that UE is said to be in
RRC connected state. If there is no such connection, that UE is said to be in idle state.
[21] The HSDPA system is based on WCDMA, supports a maximum speed of 10 Mbps,
and provides shorter delay times and improved capacity compared to existing systems.
[22] Figure 3 shows a radio interface protocol structure for supporting a HSDPA system.
A terminal (UE) and a network (UTRAN) respectively contain corresponding protocol
layers. For example, the MAC layer is divided into a MAC-d sub-layer, a MAC c/sh
sub-layer, and a MAC-hs sub-layer. At the network, the MAC-hs sub-layer can be
positioned above the physical layer (PHY) of a Node B (base station). The MAC-c/sh
and the MAC-d sub-layers are located in the CRNC and the SRNC, respectively. A
new transmission protocol called the HS-DSCH frame protocol (FP) is used between
the RNC and the Node B, or among the RNCs for the delivery of HSDPA data.
[23] Figure 4 also shows a more detailed terminal side MAC architecture for supporting
the HSDPA system. As shown, the MAC layer is divided into a MAC-d sub-layer
(310), a MAC-c/sh sub-layer (320), and a MAC-hs sub-layer (330).
[24] The manner in which the MAC layer receives the data from the physical layer and
delivers it to the RLC layer will now be described. The data block (MAC-hs PDU)
delivered to the MAC-hs sub-layer (330) through the HS-DSCH (High-Speed
Downlink Shared Channel) is first stored in one of the HARQ processes within the
HARQ block (331). In which process the data block is stored can be known from the
HARQ process identifier included in the downlink control signal.
[25] The HARQ process, in which the data block is stored, transmits the NACK
(Negative Acknowledgement) to the UTRAN when there are errors in the data block
and requests the re-transmission of the data block. When no errors exist, the HARQ
process delivers the data block to a reordering buffer (shown in Figure 5) and transmits
the ACK (Acknowledgement) to the UTRAN. The reordering queue distribution block
(333) and the reordering blocks (334,335) are employed to handle the data blocks
delivered to the reordering buffer.

[26] Multiple reordering buffers can exist per priority level. The HARQ process delivers
the data block to the corresponding reordering buffer by using the Queue ID (identity)
included in the data block. A significant characteristic of the reordering buffer is that it
supports in-sequence delivery of data.
[27] Data blocks are sequentially delivered to an upper layer based on a transmission
sequence number (TSN). More specifically, when a data block is received while one or
more previous data blocks are missing, the data block is stored in the reordering buffer
and is not delivered to the upper layer. Rather, the stored data block is delivered to the
upper layer only when all previous data blocks are received and delivered to the upper
layer. The TSN is 6 bits in length and modulo operations are performed.
[28] Typically, because several HARQ processes operate, a reordering buffer may
receive data blocks out of sequence. Therefore, a reordering buffer must be employed
so that the data blocks can be delivered to the upper layer in sequence.
[29] When the data blocks (MAC-hs PDUs) are delivered to the upper layer, they are
sent to a disassembly block (336,337). This disassembly block disassembles the
MAC-hs PDU (formed by a plurality of MAC-d PDUs combined together) and thus
performs segmentation into MAC-d PDUs. Thereafter, the disassembly block delivers
the corresponding MAC-d PDUs to the MAC-d sub-layer (310). A transport channel
multiplexing block (312) in the MAC-d sub-layer (310) refers to the logical channel
identifier (C/T field) included in each MAC-d PDU to deliver the MAC-d PDU to the
RLC layer via the corresponding logical channel.
[30] Figure 5 depicts an exemplary transmission and reception procedure in a general
HSDPA system. Here, the MAC-d PDU is actually stored in the transmission buffer,
but for the sake of explanation, a MAC-hs PDU (= one or more MAC-d PDUs) is
depicted. Also, the size of each MAC-hs PDU may be different, but are conceptually
depicted to be of equal size Additionally, it is assumed mat there are eight (8) HARQ
processes.
[31] In more detail, Figure 5 depicts the procedures of transmission to the receiving side
(receiver) when MAC-hs PDU with TSN=13 through TSN=22 are stored in the
transmission buffer. First, the MAC-hs PDUs with relatively low TSN values are
delivered to an empty HARQ process. Here, the MAC-hs PDU with TSN=13 being
delivered to HARQ process #1, and the MAC-hs PDU with TSN=14 being delivered to
HARQ process #8 are shown by way of example. Namely, the TSN is not related to
the HARQ process number, and delivery to any empty HARQ process is performed.
[32] When the HARQ process receives an arbitrary data block (MAC-hs PDU), the

HARQ process transmits the data block to the receiving side in a specific TTI
(transmission time interval) and stores the data block for re-transmission that might be
performed later. Only one data block can be transmitted in a certain TTI. Accordingly,
only one HARQ process is activated in a single TTI. The HARQ process that
transmitted the data block informs the receiving side of its process number through a
downlink control signal which is transmitted through a different channel than that of
the data block.
[33] The reason for matching the HARQ process of the transmitting side (transmitter)
with the HARQ process of the receiving side is because a stop-and-wait ARQ method
is used by each HARQ process pair. That is, HARQ process #1 that transmitted MAC-
hs PDU with TSN=13 does not transmit another data block until this data block is suc-
cessfully transmitted. Because a receiving side HARQ process #1 can know that data is
transmitted thereto for a corresponding TTI through the downlink control signal, the
receiving side HARQ process #1 transmits the NACK to the transmitting side through
an uplink control signal when the data block is not successfully received within a
defined transmission time interval (TTI). In contrast, when a data block is successfully
received, the receiving side HARQ process #1 transmits the ACK to the transmitting
side, and at the same time delivers the corresponding data block to the reordering
buffer according to the priority (Queue ID).
[34] The multiple reordering buffers can exist per priority level. The HARQ process
checks the priority (Queue ID) included in the MAC-hs PDU and delivers this MAC-
hs PDU to the reordering buffer according to the priority. The data block delivered to
the reordering buffer is then delivered to the upper layer when all of the previous data
blocks are successfully received. However, when one or more previous data blocks are
not successfully received and delivered to the upper layer, the data block is stored in
the reordering buffer. That is, the reordering buffer must support in-sequence delivery
of data blocks to the upper layer. A data block that is not delivered to the upper layer is
stored in the reordering buffer.
[35] To illustrate the foregoing, Figure 5 shows that when the MAC-hs PDU with
TSN=14 is received but the MAC-hs PDU with TSN=13 is not received, the MAC-hs
PDU with TSN=14 is stored in the reordering buffer (420) until the MAC-hs PDU with
TSN=13 is received. When the MAC-hs PDU with TSN=13 is received, both data
blocks are delivered to the upper layer in the order of TSN=13 and TSN=14. When the
data blocks are delivered to the upper layer, they are disassembled in units of MAC-d
PDUs and are delivered as described above.

[36] However, during the transmission of data via radio (wireless) channels, certain
PDUs may not be properly delivered from the UTRAN to the UE despite numerous re-
transmissions. Particular MAC-hs PDUs that that are not delivered for a prolonged
period of time causes the problems of degrading transmission efficiency of the HSDPA
system. That is, although the HSDPA system was developed for high speed data com-
munications, if one MAC-hs PDU is not properly received for a long time or
permanently, this causes many subsequent MAC-hs PDUs remain in the MAC-hs
buffer for a prolonged period of time without delivery, and thus the overall data
transmission efficiency deteriorates and undermines the reasons for employing a
HSDPA system.
[37] In order to prevent the stalling of the MAC-hs PDUs, the HSDPA has adopted a
stall avoidance method employing a window technique.
[38] Before explaining the window-based stall avoiding method, the operation en-
vironment parameters used for the reordering buffer will first be explained.
[39] The next-expected TSN (referred to as NET hereafter) refers to the immediately
subsequent value after the TSN of the last PDU of the sequentially received MAC-hs
PDUs. Namely, the NET refers to the TSN of the first MAC-hs PDU to be sub-
sequently received in-sequence. Whenever a PDU having a TSN that equals the NET
is received, the NET is updated. The initial NET value is set to zero (0).
[40] The end point of the receive window (RcvWindow_UpperEdge) refers to the largest
TSN value in the receive window of the reordering buffer. When a MAC-hs PDU first
arrives at the receiving side, the end point (i.e., upper edge) is set as the value cor-
responding to the largest TSN among those of the received PDUs. The initial value of
the upper edge of the receive window is set to 63.
[41 ] The start point of the receiver window (RcvWindow_LowerEdge) refers to the
smallest TSN value in the receiver window of the reordering buffer. The start point
(i.e., lower edge) of the receiver window can be calculated by subtracting the receiver
window size from the end point of the receiver window and adding 1 thereto
(RcvWindow_LowerEdge = RcvWindow_UpperEdge - receiver window size + 1).
[42] The receiver window prescribes (regulates) the TSN values of the MAC-hs PDUs
that may be received when the window position does not change. The receiver window
includes the TSN values from the lower edge to the upper edge of the receiver
window.
[43] The size of the receiver window (Receive_Window_Size) refers to the range of the
receiver window, and is established by an upper layer of the MAC entity.

[44] In a window based stall avoidance method, the receiving side moves (updates) the
receiver window upon receiving a MAC-hs PDU having a TSN that is larger than the
RcvWindow_UpperEdge. For those MAC-hs PDUs with a TSN that is smaller than the
RcvWindow_LowerEdge of the updated receiver window, the receiving side no longer
waits (i.e., ends reception stand-by) for those MAC-hs PDUs that have not yet been
received and the MAC-hs PDUs previously received and stored in the reordering
buffer are delivered (transferred) to the upper layers, such that stall situations for the
MAC-hs PDUs can be prevented.
[45] Figure 6 depicts a more detailed operation, which can be summarized as follows:
[46] In step 510, a MAC-hs PDU with a transmission sequence number (TSN) having
the sequence number (SN) (= a random number) value is received.
[47] In step 520, the SN value is compared with the receiver window range, and if the
SN value is within the range, the following step 230 is performed, but if outside the
range, the following step 522 is performed.
[48] In step 530, when the SN value falls within the receiver window range, this SN
value is compared with the NET, and it is checked as to whether the MAC-hs PDU
corresponding to this SN had been previously received. If this SN is smaller than the
NET or if the MAC-hs PDU corresponding to this SN had been previously received,
the received MAC-hs PDU (in step 510) is discarded (step 540). If this SN equals to or
is greater than the NET, and if the MAC-hs PDU corresponding to this SN had not
been previously received, the corresponding MAC-hs PDU is stored in the location
indicated by the SN value (step 550). Then, the following step 560 is performed.
[49] In previous step 520, if the SN value falls outside the receiver window range, the
following steps (steps 522-528) are sequentially performed: The received MAC-hs
PDU is stored in the reordering buffer at a location indicated by the SN value that is
greater than the RcvWindowJLJpperEdge, and the RcvWindcw.UpperEdge value is
updated to the SN value. Then, among the MAC-hs PDUs stored in the reordering
buffer, those MAC-hs PDUs having a TSN value that is smaller than the
RcvWindow_LowerEdge are delivered from the reordering buffer to a disassembly
block. Also, the NET is updated to be the RcvWindow_LowerEdge, and the following
step 560 is performed.
[50] In step 560, all the MAC-hs PDUs starting from the MAC-hs PDU having a
TSN=NET and up to the MAC-hs PDU that immediately precedes the first MAC-hs
PDU that has not been received, are delivered to the disassembly block. Here, "the first
MAC-hs PDU that has not been received" refers to the MAC-hs PDU having the

smallest TSN among all the not received MAC-hs PDUs having a TSN that is equal to
or greater than the NET.
[51] In step 570, the NET is updated to equal the TSN of the first not received MAC-hs
PDU of the previous step 560.
[52] According to the related art stall avoidance method using a window, the receiving
side sets the NET value to 0 at the first initialization stage and the receiver window
upper edge is set to 60L Thus, assuming that if the receiver window size is 32, based
upon the definition of the receiver window, the initial receiver window is determined
to have TSN values from 32 to 63. For the first MAC-hs PDU transmitted from the
transmitting side, the TSN is set to 0 and for subsequently transmitted MAC-hs PDUs,
the TSN values of 1,2,3, etc. will be sequentially used. If mere are no losses in the
radio (wireless) region, the very first MAC-hs PDU arriving at the receiving side
would have a PDU with TSN=0.
[53] However, because this MAC-hs PDU is located outside the receiver window
defined previously, the receiving side advances the receiver window according to the
TSN of the MAC-hs PDU. Thus, according to Figure 6, the re-established (updated)
receiver window is set to have a TSN from 33 to 0. Also, even though the receiving
side actually expects to receive a MAC-hs PDU with TSN=1 (i.e., NET=1), there is a
problem with the related art because the NET will be set to 33.
[54] Additionally, an even greater problem occurs because even though a received
MAC-hs PDU can be immediately delivered to the upper layer, such MAC-hs PDUs
are not delivered to the upper disassembly block, but are accumulated in the reordering
buffer, thus causing unnecessary delivery delays. Here, in order to deliver the MAC-hs
PDU to the upper layer, all of the MAC-hs PDUs having a TSN that is smaller than the
receiver window lower edge value (i.e., those MAC-hs PDUs with TSN=33 through
63) must be received, or alternatively, if the receiver window is moved due to a sub-
sequently received MAC-hs-PDU, and the MAC-hs PDU with TSN=0 must be located
at a point smaller (less) than the receiver window lower edge. This situation will also
occur whenever a MAC-hs PDU having a relatively small TSN (such as TSN=0,1,2,
3, etc.) arrives at the receiving side during the initial operation of the receiver window.
Accordingly, those MAC-hs PDUs that are sequentially received and that can be
delivered to the upper layer unnecessarily remain in the reordering buffer to thus cause
undesirable delivery delay situations.
[55] Such unnecessary delivery delay situations do not only occur during the initial
stages of HSDPA system operation.

[56] If all the MAC-hs PDUs falling within the receiver window were properly
received, the receiver window does not move and the NET is updated to be
RcvWindow_UpperEdge + 1. When the NET refers to RcvWindow_UpperEdge + 1,
and a MAC-hs PDU with NET= RcvWindow_UpperEdge + 1 arrives at the receiving
side, the receiving side newly adjusts the receiver window range (because this MAC-
hs PDU falls outside the current receiver window range) such that the NET is updated
to RcvWindowJLowerEdge, and this received MAC-hs PDU is stored in the
reordering buffer. Even though this PDU was sequentially received and can thus be
immediately delivered to the upper layer, the receiver window operation according to
the related art does not deliver this MAC-hs PDU to the disassembly block, but stores
it in the reordering buffer, causing an unnecessary delivery delay situation.
[57] The above problematic situation is caused by the NET value being outside the
receiver window. Also, the previously explained problem during the initial operation at
the receiving side is caused by the NET value being outside the receiver window,
whereby NET=0 but the receiver window range is set as TSN=32 to 63.
[58] Whenever the NET value falls outside the receiver window, the receiving side
stores the received MAC-hs PDU in the reordering buffer even though such may be
immediately delivered to the upper layer, resulting in a delay in delivering the MAC-hs
PDU. [59] Such delivery delays cause errors in the upper layer and/or result in severe service
quality degradation.
Disclosure of Invention
Technical Solution
[60] A gist of the present invention involves the recognition by the present inventors of
the drawbacks in the related art. Namely, the present invention has been developed to
address and/or solve the problems of the related art, such that the NET value always
falls within the receiver window to prevent unnecessary delivery delays of MAC-hs
PDUs that occur in the related art, in order to achieve rapid data transmission ca-
pabilities for a HSDPA system.
[61] To achieve this, the present invention adjusts the initial range of the receiver
window such that the NET falls within the receiver window from the start of protocol
operations. If the NET or receiver window is updated and the NET falls outside the
receiver window, the NET or receiver window is re-updated such that the NET again
falls within the receiver window. More specifically, the initial value of the receiver
window upper edge is not set to be 63, but changed to 0 (such as the NET value) such

that the NET falls within the receiver window range. Also, upon updating of the
receiver window, if the NET value becomes smaller than the receiver window lower
edge, the NET is re-updated to the TSN value of the receiver window lower edge, and
if the NET value becomes larger man the receiver window upper edge, the NET is re-
updated to the TSN value of the receiver window upper edge.
[62] Here, it should be noted that if the NET becomes greater man the receiver window
upper edge due to the initial protocol operation or upon NET updating, the non-
limiting exemplary embodiment of the present invention provides that the receiver
window upper edge is to be set as the NET. However, this is not mandatory, as the
receiver window may be updated to various appropriate positions as long as the NET
falls within the receiver window range. Namely, the setting of the receiver window
upper edge to equal the NET is merely one example, as me receiver window lower
edge may be set as the NET, and other values within the receiver window range may
also be set as the NET.
Brief Description of the Accompanying Drawings
[63] The features and advantages of the present invention will become more apparent
from the following detailed description of the non-limiting exemplary embodiment(s)
of the invention taken in conjunction with the drawings.
[64] Figure 1 depicts a general UMTS network architecture.
[65] Figure 2 depicts a radio (wireless) protocol structure.
[66] Figure 3 depicts a radio mterface protocol stnrture for supporting a HSDPA
system.
[67] Figure 4 depicts a MAC architecture in the UE for supporting HSDPA.
[68] Figure 5 depicts an example of a process for transmitting and receiving MAC-hs
PDUs in a HSPDA system.
[69] Figure 6 depicts a window-based stall avoidance method according to the related
art
[70] Figure 7 depicts a window-based stall avoidance method according to one non-
limiting exemplary embodiment of the present invention.
[71] Figure 8 depicts an exemplary situation where the NET has become smaller man
the receiver window lower edge value, according to one non-limiting exemplary
embodiment of the present invention.
[72] Figure 9 depicts an exemplary situation where all PDUs within the receiver
window have been successfully received and the NET is greater man the receiver
window upper edge value, according to one non-limiting exemplary embodiment of

the present invention.
Mode for Invention
[73] The present invention is described as being implemented in a W-CDMA mobile
communications system. However, the present invention may also be adapted and im-
plemented in communications systems operating under other types of communications.
[74] A non-limiting exemplary embodiment of the present invention is depicted in
Figure 7, which is an improvement over the related art procedures shown in Figure 6
[75] In step 610, a MAC-hs PDU with a transmission sequence number (TSN) having
the sequence number (SN) (= a random number) value is received.
[76] In step 620, the SN value is compared with the receiver window range, and if the
SN value is within the range, the following step 630 is performed, but if outside the
range, the following step 622 is performed.
[77] In step 630, when the SN value falls within the receiver window range, this SN
value is compared with the NET, and it is checked as to whether the MAC-hs PDU
corresponding to this SN had been previously received. If this SN is smaller than the
NET or if the MAC-hs PDU corresponding to this SN had been previously received,
the received MAC-hs PDU (in step 610) is discarded (step 640). If this SN equals to or
is greater than the NET, and if the MAC-hs PDU corresponding to this SN had not
been previously received, the corresponding MAC-hs PDU is stored in the reordering
buffer at a location indicated by the SN value (step 650). Then, the following step 660
is performed.
[78] In previous step 620, if the SN value falls outside the receiver window range, the
following steps (622-628) are sequentially performed: The received MAC-hs PDU is
stored in the reordering buffer at a location indicated by the SN value that is greater
than the RcvWindow_UpperEdge, and the RcvWindow_UpperEdge value is updated
to the SN. Then, among the MAC-hs PDUs stored in the reordering buffer, those
MAC-hs PDUs having a TSN that is smaller than the RcvWindow_LowerEdge arc
delivered from the reordering buffer to a disassembly block. Also, the NET is
compared with the RcvWindowJLowerEdge, and the NET is updated to be the
RcvWindow_LowerEdge only when the NET is smaller than the
RcvWindowJLowerEdge, and then the following step 660 is performed.
[79] In step 660, all the MAC-hs PDUs starting from the MAC-hs PDU having a
TSN=NET and up to the MAC-hs PDU that immediately precedes the first MAC-hs
PDU that has not been received, are delivered to the disassembly block. Here, "the first
MAC-hs PDU that has not been received" refers to the MAC-hs PDU having the

smallest TSN among all the not received MAC-hs PDUs having a TSN that is equal to
or greater than the NET.
[80] In step 670, the NET is updated to equal the TSN of the first not received MAC-hs
PDU of the previous step 660.
[81] In step 680, the updated NET is compared with the receiver window upper edge
value, and the receiver window is updated (step 690) only if the NET is greater than
the receiver window upper edge value so that the receiver window upper edge value is
matched with the NET, and the steps are completed.
[82] In the above step 690, when the receiver window is updated, the receiver window
upper edge can be set as the NET, but also, other points within the receiver window
range can be set as the NET to achieve updating.
[83] Figure 8 depicts the situation where the receiver window is moved due to the
reception of a new PDU and the NET is smaller than the receiver window lower edge.
Here, the exemplary situation assumes the receiver window size to be 5, the NET=4,
and a MAC-hs PDU with TSN=10 is received, while a MAC-hs PDU with TSN=5 and
a MAC-hs PDU with TSN=7 have already been received.
[84] During the situation shown in Figure 8-(a), a MAC-hs PDU with TSN=10 arrives.
Here, because the PDU with TSN=10 falls outside the receiver window, the receiver
window is moved as shown in Figure 8-(b).
[85] Any previously received PDU that falls-outside the moved receiver window (i.e., a
received PDU with TSN
movement, namely, the MAC-hs PDU with TSN=5, is delivered to the upper layer.
Also, because the NET is smaller than the receiver window lower edge value (i.e.,
NET
[86] Figure 9 depicts the situation where all PDUs within the receiver window have
been successfully received and the NET is greater than the receiver window upper
edge value. Here, it is also assumed that the receiver window size is 5, the NET=4, and
a MAC-hs PDU with TSN=4 is received while the MAC-hs PDUs with TSN=5,6,7,8
have been received.
[87] During the situation shown in Figure 9-(a), a MAC-hs PDU with TSN=4 arrives.
This MAC-hs PDU with TSN=4 is stored at position 4 in the reordering buffer as
shown in Figure 9-(b), and those PDUs starting from the MAC-hs PDU with TSN=4
up to the MAC-hs PDU with TSN=8 (which is the MAC-hs PDU just prior to the first
MAC-hs PDU that has not yet been received (i.e., MAC-hs PDU with TSN=9)) are
delivered to the disassembly block. Also, the NET is updated to 9.

[88] As in Figure 9-(c), if the NET is greater than the receiver window upper edge
value, the receiver window upper edge value is updated to the NET, and the receiver
window is moved as shown in Figure 9-(d).
[89] When using the related art for HSDPA, even if the UE could immediately deliver
the received MAC-hs PDU to the upper layer, prolonged storage in the reordering
buffer causes unnecessary data delivery delays to occur. However, when the UE
employs the present invention to update the NET value and the receiver window, and
processes the MAC-hs PDUs accordingly, unnecessary data delivery delays are
prevented, and thus data transmission errors can be avoided and high speed data
transmissions are made possible.
[90] The present invention provides a method of handling data blocks, comprising:
receiving data blocks associated with a sequence number; processing the received data
blocks in a receiver window; comparing a next-expected transmission sequence
number (NET) with a range of the receiver window; and setting the NET or the
receiver window such that the NET is within the receiver window, if the NET is found
to be outside that range of the receiver window as a result of the comparison.
[91] In the above method, the NET is a transmission sequence number (TSN) following
the TSN of the last in-sequence data block received. Here, the TSN is an identifier for
the transmission sequence number on the HS-DSCH, and the TSN is used for
reordering purposes to support in-sequence delivery to a higher layer.
[92] If the NET is above a receiver window upper edge, the NET is set as the receiver
window upper edge, or the NET is set as any appropriate position within the receiver
window range. If the NET is above the receiver window, the receiver window is
updated to any appropriate position as long as the NET falls within the receiver
window range.
[93] If me NET is below a receiver window lower edge, the NET is set as the receiver
window lower edge. If the NET is below the receiver window, setting the NET =
receiver window upper edge value - receiver window size + 1. Here, the NET is a
variable managed by the receiving side, and the NET is updated upon the delivery to
the disassembly entity of the data block with TSN equal NET. In the above method,
the initial value of the NET is zero (0), and the data blocks are MAC-hs PDUs
(protocol data units).
[94] In the above method, the steps are performed for a HSDPA (high-speed downlink
packet access) system, and the steps are performed to avoid stall conditions. Also, if
the received data block associated with the sequence number had been previously

received, the received data block is discarded.
[95] The present invention also provides a method of processing data blocks,
comprising: a first step of receiving a data block (PDU) having a sequence number
(SN); a second step of comparing the SN with a receiver window range; a third step of
delivering certain PDUs stored in the buffer, starting from the PDU having the NET up
to the PDU just prior to the PDU not yet received, to a disassembly block; and a fourth
step of updating the NET to equal the SN of the first PDU not yet received.
[96] In the second step, if the SN is within the receiver window range, and if SN
(a next expected SN) or the PDU had been previously received, then discarding the
PDU, and processing is ended, but if SN (NET or the PDU had not been previously
received, then storing the PDU in a buffer at location specified by the SN, and
proceeding to a third step.
[97] If the SN is not within the receiver window range, storing the PDU in a buffer at
the location specified by the SN, updating the receiver window such that its upper edge
= SN, delivering all PDUs with SN
disassembly block, and checking whether the NET
window; if so, updating the NET to equal the lower edge of the receiver window, and
proceeding to a third step, if not, proceeding to a third step.
[98] The above method further comprising: after the fourth step, checking whether the
updated NET > the upper edge of the receiver window, if so, setting the NET = the
upper edge of the receiver window, and if not, processing is ended or repeating the
procedures from the first step.
[99] To implement the above procedures, the present invention can employ various
types of hardware and/or software components (modules). For example, different
hardware modules may contain various circuits and components necessary to perform
the steps of the above method Also, different software modules (executed by
processors and other hardware) may contain various codes and protocols necessary to
perform the steps of the above method.
[100] Namely, as shown in Figures 1 through 5, the present invention provides an
apparatus to handle data blocks, comprising: a receiving module to receive data blocks
associated with a sequence number; a processing module to process the received data
blocks in a receiver window; a comparing module to compare a next-expected
transmission sequence number (NET) with a range of the receiver window; and a
setting module to set the NET or the receiver window such that the NET is within the
receiver window, if the NET is found to be outside that range of the receiver window

as a result of the comparison by the comparing module.
[101] Preferably, the modules are part of a MAC entity. Preferably, the modules are part
of a MAC-hs entity. Preferably, the modules are part of a mobile station, a wireless
handset, a network, a base station, a Node B or a RNC (radio network controller).
[ 102] This specification describes various illustrative embodiments of the present
invention. The scope of the claims is intended to cover various modifications and
equivalent arrangements of the illustrative embodiments disclosed in the specification.
Therefore, the following claims should be accorded the reasonably broadest inter-
pretation to cover modifications, equivalent structures, and features that are consistent
with the spirit and scope of the invention disclosed herein.
Industrial Applicability
[103] Certain embodiments of the present invention can be applied to a mobile commu-
nications system, such as a HSDPA (High-Speed Downlink Packet Access) system in
a UMTS (Universal Mobile Telecommunications System), and the disclosed methods
and apparatuses can be part of a MAC entity, preferably, part of a MAC-hs entity, for a
mobile station, a wireless handset, a network, a base station, a Node B or a RNC (radio
network controller).

WE CLAIM :
1. A method of handling data blocks in a mobile communications
system, comprising:
receiving data blocks associated with a sequence number;
determining whether the sequence number of the received data
blocks is outside a receiver window;
comparing a next-expected transmission sequence number (NET)
with a range of an updated receiver window when the sequence number of
the received data blocks is determined to be outside the receiver window;
and
setting the NET such that the NET is within the updated receiver
window, if the NET is found to be outside that range of the updated receiver
window as a result of the comparison.
2. The method as claimed in claim 1, wherein the NET is a transmission
sequence number (TSN) following the TSN of the last in-sequence data
block received.
3. The method as claimed in claim 2, wherein the TSN is an identifier for
the transmission sequence number on a HS-DSCH (High Speed Downlink
Shared Channel).
4. The method as claimed in claim 2, wherein the TSN is used for
reordering purposes to support in-sequence delivery to a higher layer.
5. The method as claimed in claim 1, wherein if the NET is above the
updated receiver window upper edge, the NET is set as the updated receiver
window upper edge.

6. The method as claimed in claim 1, wherein if the NET is above the
updated receiver window upper edge, the NET is set as any appropriate
position within the updated receiver window range.
7. The method as claimed in claim 1, wherein if the NET is above the
updated receiver window, the receiver window is advanced to any
appropriate position as long as the NET falls within the updated receiver
window range.
8. The method as claimed in claim 1, wherein if the NET is below the
updated receiver window lower edge, the NET is set as the updated receiver
window lower edge.
9. The method as claimed in claim 1, wherein if the NET is below the
updated receiver window, setting the NET=receiver window upper edge
value-receiver window size+1.
10. The method as claimed in claim 1, wherein the NET is a variable
managed by a receiving side.
11. The method as claimed in claim 1, wherein the NET is updated upon
a delivery to a disassembly entity of the data block with TSN equal to the
NET.
12. The method as claimed in claim 1, wherein the initial value of the NET
is zero (0).
13. The method as claimed in claim 1, wherein the data blocks are MAC-
hs (Medium Access Control-high speed) PDUs (protocol data units).
14. The method as claimed in claim 1, wherein the steps are performed

for a HSDPA (high-speed downlink packet access) system.
15. The method as claimed in claim 1, wherein the steps are performed to
avoid stall conditions.
16. The method as claimed in claim 1, wherein the received data block is
discarded if the received data block associated with the sequence number
had been previously received.
17. An apparatus to handle data blocks in a mobile communications
system, the apparatus comprising:
a receiver for receiving data blocks associated with a sequence
number;
a comparing module to compare a next-expected transmission
sequence number (NET) with a range of an updated receiver window;
a setting module to set the NET, such that the NET is within the
updated receiver window, if the NET is found to be outside the range of the
updated receiver window as a result of a comparison performed by the
comparing module; and
a processor to process the received data blocks in a receiver window,
control the comparing module to perform the comparison, and control the
setting module to set the NET.
18. The apparatus as claimed in claim 17, wherein the NET, which is
handled by the modules, is a transmission sequence number (TSN)
following the TSN of the last in-sequence data block received.
19. The apparatus as claimed in claim 18, wherein the TSN is an identifier
for the transmission sequence number on the HS-DSCH (High Speed
Downlink Shared Channel).

20. The apparatus as claimed in claim 18, wherein the TSN is used for
reordering purposes to support in-sequence delivery to a higher layer.
21. The apparatus as claimed in claim 17, wherein if the NET, which is
handled by the modules, is above the updated receiver window upper edge,
the NET is set as the updated receiver window upper edge.
22. The apparatus as claimed in claim 17, wherein if the NET is above the
updated receiver window upper edge, the NET is set as any appropriate
position within the updated receiver window range.
23. The apparatus as claimed in claim 17, wherein if the NET is above the
updated receiver window, the receiver window is advanced to any
appropriate position as long as the NET falls within the updated receiver
window range.
24. The apparatus as claimed in claim 17, wherein if the NET, which is
handled by the modules, is below a the updated receiver window lower
edge, the NET is set as the receiver window lower edge.
25. The apparatus as claimed in claim 17, wherein if the NET, which is
handled by the modules, is below the updated receiver window, setting the
NET=receiver window upper edge value-receiver window size+1.
26. The apparatus as claimed in claim 17, wherein the NET, which is
handled by the modules, is a variable managed by a receiving side.
27. The apparatus as claimed in claim 17, wherein the NET is updated
upon the delivery to the disassembly entity of the data block with TSN equal
NET.

28. The apparatus as claimed in claim 17, wherein the initial value of the
NET is zero (0).
29. The apparatus as claimed in claim 17, wherein the data blocks, which
are handled by the modules, are MAC-hs (Medium Access Control-high
speed) PDUs (protocol data units).
30. The apparatus as claimed in claim 17, wherein the modules operate
for a HSDPA (high-speed downlink packet access) system.
31. The apparatus as claimed in claim 17, wherein the modules operate
to avoid stall conditions.
32. The apparatus as claimed in claim 17, wherein if the received data
block associated with the sequence number had been previously received,
the received data block is discarded.
33. The apparatus as claimed in claim 17, wherein the modules are part
of a MAC entity.
34. The apparatus as claimed in claim 17, wherein the modules are part
of a MAC-hs entity.
35. The apparatus as claimed in claim 17, wherein the modules are
implemented in a mobile station.
36. The apparatus as claimed in claim 17, wherein the modules are part
of a wireless handset.
37. The apparatus as claimed in claim 17, wherein the modules are part
of a network.

38. The apparatus as claimed in claim 17, wherein the modules are part
of a base station.
39. The apparatus as claimed in claim 17, wherein the modules are part
of a Node B.
40. The apparatus as claimed in claim 17, wherein the modules are part
of a RNC (radio network controller).

ABSTRACT

METHOD AND APPARATUS FOR HANDLING DATA BLOCKS
IN A MOBILE COMMUNICATIONS SYSTEM
A method and apparatus for handling data blocks in a mobile
communications system are disclosed. The method comprises receiving, at a
receiving module, data blocks associated with a sequence number; determining,
using a determining module, whether the sequence number of the received data
blocks is outside a receiver window; comparing, using a comparing module, a
next-expected transmission sequence number (NET) with a range of an updated
receiver window when the sequence number of the received data blocks is
determined to be outside the receiver window; and setting, using a setting module,
the NET such that the NET is within the updated receiver window, if the NET is
found to be outside that range of the updated receiver window as a result of the
comparison.