Patent Description:
Many communications systems employ automatic repeat request (ARQ) techniques that allow a transmitter to confirm that data transmissions have been received successfully by an intended receiver. A typical ARQ technique involves the receiver responding to the transmitter with acknowledgment information for each received data block, with the acknowledgment information identifying the data block being acknowledged. The acknowledgment information may include a positive acknowledgment (referred to herein as an "ACK") indicating that reception of the data block was successful, a negative acknowledgment (referred to herein as a "NACK") indicating that reception of the data block was unsuccessful, as well as any other appropriate acknowledgment information. For example, in an enhanced general packet radio service (EGPRS) communication system, a receiver can acknowledge receipt of radio link control (RLC) data blocks using RLC/MAC control messages (where MAC refers to medium access control), such as an EGPRS packet downlink ACK/NACK (PDAN) control message or a packet uplink ACK/NACK control message.

In the case of a bidirectional communications system, such as an EGPRS system, the latency associated with using separate control messages to send acknowledgment information can be reduced (without significantly decreasing the bandwidth available for data transmission) by including such acknowledgment information with data blocks to be transmitted in the opposite direction. For example, EGPRS supports such latency reduction through its fast ACK/NACK reporting (FANR) procedure. The FANR procedure allows acknowledgment information to be piggy-backed with an RLC/MAC data block subsequently sent from a receiving unit to a transmitting unit through use of a piggy-backed ACK/NACK (PAN) field. EGPRS mobile stations can support two types of FANR procedures, namely, polled FANR and event-based FANR. Additionally, EGPRS mobile stations are able to respond to polls requesting acknowledgment information to be sent using PDAN control messages instead of PAN fields. In some scenarios, a conventional EGPRS mobile station will send duplicate acknowledgment information generated by these different acknowledgment procedures.

Document <CIT> discloses a poll and event based transmission.

Methods and apparatus to avoid mobile station transmission of duplicate event-based and polled acknowledgments are disclosed herein. A first example duplicate acknowledgment avoidance technique disclosed herein involves an example mobile station being configured to send event-based acknowledgment information (e.g., acknowledgment information generated proactively to report unreported missing downlink data blocks). The technique then involves the mobile station classifying a downlink (DL) data block as unreported (e.g., when the mobile station initially determines that the DL data block is missing). The technique also involves the mobile station receiving a poll from a network requesting the mobile station to send polled acknowledgment information (e.g., acknowledgment information sent in response to the poll from the network) during a period (e.g., such as a radio block period). Furthermore, this technique involves the mobile station refraining from sending during the period event-based acknowledgment information for the DL data block classified as unreported.

In a second example duplicate acknowledgment avoidance technique disclosed herein, an example mobile station includes an event-based acknowledgment processor to generate event-based acknowledgment for a DL data block classified as unreported. The mobile station implementing this technique also includes a polled acknowledgment processor to generate polled acknowledgment information in response to a poll received from a network. Furthermore, the mobile station implementing this technique includes an acknowledgment transmission unit to refrain from sending the event-based acknowledgment information during the period when the polled acknowledgment information is also to be sent during the period.

As described in greater detail below, in a particular example implementation of either of the preceding techniques, the mobile station and the network may support EGPRS FANR, which includes a polled FANR procedure and an event-based FANR procedure. In such an example EGPRS implementation, the network may poll the mobile station to respond with acknowledgment information for DL data blocks previously sent by the network to the mobile station. The DL acknowledgment information may take the form of a reported bitmap (RB) field including a set of acknowledgment bits, with each bit providing an ACK or NACK indication for a respective received data block being acknowledged by the RB.

In an EGPRS implementation conforming to third generation partnership project (3GPP) Release <NUM>, the network may implement the poll by setting bits in a combined EGPRS supplementary/polling (CES/P) field included with a DL data block sent to the mobile station. The bits in the CES/P field are set to indicate whether the DL acknowledgment information is to be provided via a PAN field generated using the polled FANR procedure and sent with an uplink (UL) data block destined for the network, or via a PDAN control message. The CES/P field can also be used to indicate during which radio block period the mobile station should respond with the polled acknowledgment information.

Additionally or alternatively, the mobile station in such an example EGPRS implementation may be commanded by the network to use the event-based FANR procedure to proactively send DL acknowledgment information regardless of whether a poll is received from the network. In fact, if the event-based FANR procedure is enabled, the mobile station is generally expected to report any missing DL data blocks at the earliest opportunity using a PAN field sent with an UL data block destined for the network. For example, the mobile station is able to determine whether DL data blocks transmitted by the network are missing (e.g., not received, received out-of-order, received with errors, etc.) by decoding a block sequence number (BSN) transmitted with each data block. The mobile station classifies missing data blocks as either UNREPORTED or REPORTED. A missing data block is classified as UNREPORTED when the missing data block has been initially detected and its acknowledgment status has not yet been reported to the network. The missing data block is then classified as REPORTED when its acknowledgment status is reported to the network in any manner (e.g., via a polled PAN, an event-based PAN, a PDAN control message, etc.). If event-based FANR is enabled, the mobile station is generally required to report DL acknowledgment information (e.g., such as in the form of an RB field) via PAN fields generated by the event-based FANR procedure and sent with associated UL data blocks destined for the network while any missing DL data blocks are classified as UNREPORTED. Furthermore, if event-based FANR is enabled, the mobile station is required to send an event-based PAN reporting a particular UNREPORTED missing DL data block during the second radio block period following the block period in which the particular DL data block was initially detected as missing.

As described in greater detail below, mobile stations supporting the EGPRS FANR feature along with the example duplicate acknowledgment avoidance techniques described herein exhibit substantial benefits over conventional mobile stations. For example, a conventional EGPRS mobile station conforming to 3GPP Release <NUM> with event-based FANR enabled typically sends an event-based PAN when any missing DL data blocks are classified as UNREPORTED regardless of whether the acknowledgment status of these missing DL data blocks will also be reported during the same radio block period by a polled PAN or a PDAN control message sent in response to a network poll. Such conventional operation can result in redundant acknowledgment information being sent to the network during the same radio block period, thereby wasting precious bits/bandwidth that could otherwise be used for UL data transmission.

Unlike such conventional implementations, an EGPRS mobile station supporting the example duplicate acknowledgment avoidance techniques described herein can refrain from sending an event-based PAN (or an event-based PDAN control message generated when there is no UL data to send with the event-based PAN) to report any missing DL data blocks being classified as UNREPORTED if the mobile station determines that the acknowledgment status of these missing DL data blocks will also be timely reported (or the acknowledgment status has a substantial likelihood of also being timely reported) by a polled PAN or a PDAN control message sent in response to a network poll. Using the techniques described herein to refrain from sending the duplicate acknowledgment information that would have been conveyed by the event-based PAN frees valuable bits/bandwidth that can be used to send more UL RLC/MAC data or existing UL RLC/MAC data more robustly (e.g., with a higher error correction coding rate, such as corresponding to a EGPRS lower modulation and coding scheme (MCS)). In this way, the example duplicate acknowledgment avoidance techniques described herein are able to improve UL spectral efficiency as compared to conventional acknowledgment processing techniques.

Turning to the figures, a block diagram of an example EGPRS communication system <NUM> capable of supporting the duplicate acknowledgment avoidance techniques described herein is illustrated in <FIG>. The EGPRS system <NUM> includes an example mobile station <NUM> in communication with an example network element <NUM>. The mobile station <NUM> may be implemented by any type of mobile station or user endpoint equipment, such as a mobile telephone device, a fixed telephone device, a personal digital assistant (PDA), etc. The network element <NUM> may be implemented by any type of network communication device, such as a base station system, a radio access network, etc. As described in greater detail below, the mobile station <NUM> implements duplicate acknowledgment avoidance as described herein to refrain from sending duplicate DL acknowledgment information generated via an event-based FANR procedure when the acknowledgment information is also to be timely reported or has a substantial likelihood of also being timely reported via a polled FANR procedure or a PDAN control message sent in response to a network poll. Although only one mobile station <NUM> and one network element <NUM> are illustrated in <FIG>, the EGPRS system <NUM> can support any number of mobile stations <NUM> and network elements <NUM>.

The mobile station <NUM> of <FIG> includes an example RLC/MAC transmitter <NUM> and an example RLC/MAC receiver <NUM>, each communicatively coupled to an antenna <NUM>. Similarly, the network element <NUM> of <FIG> includes an example RLC/MAC transmitter <NUM> and an example RLC/MAC receiver <NUM>, each communicatively coupled to an antenna <NUM>. The RLC/MAC transmitter <NUM> included in the mobile station <NUM> sends UL RLC and MAC information wirelessly via the example antenna <NUM> for reception via the example antenna <NUM> by the RLC/MAC receiver <NUM> included in the network element <NUM>. As illustrated in <FIG>, the UL RLC and MAC information transmitted by the RLC/MAC transmitter <NUM> to the RLC/MAC receiver <NUM> includes UL RLC/MAC control messages <NUM> (e.g., such as EGPRS PDAN control messages <NUM> discussed in greater detail below) transmitted via corresponding UL physical control channels <NUM>, or UL RLC/MAC data blocks <NUM> transmitted via corresponding UL physical data channels <NUM>. Although <FIG> depicts transmission of only one UL RLC/MAC data block <NUM>, depending on a particular operating scenario, one or more UL RLC/MAC data blocks <NUM> may be transmitted via the appropriate UL physical data channel <NUM>. Additionally, an RLC/MAC header (not shown) including, for example, the BSN(s) of the one or more UL RLC/MAC data blocks <NUM> may also be transmitted with the one or more UL RLC/MAC data blocks <NUM>. Furthermore, an optional PAN field <NUM> described in greater detail below may be transmitted with the one or more UL RLC/MAC data blocks <NUM>.

Referring again to <FIG>, the RLC/MAC transmitter <NUM> included in the network element <NUM> sends DL RLC and MAC information wirelessly via the antenna <NUM> for reception via the antenna <NUM> by the example RLC/MAC receiver <NUM> included in the mobile station <NUM>. As illustrated in <FIG>, the DL RLC and MAC information transmitted by the RLC/MAC transmitter <NUM> to the RLC/MAC receiver <NUM> includes DL RLC/MAC control messages <NUM> (e.g., such as packet uplink ACK/NACK control messages <NUM>) transmitted via corresponding DL physical control channels <NUM>, or DL RLC/MAC data blocks <NUM> transmitted via corresponding DL physical data channels <NUM>. Although <FIG> depicts transmission of only one DL RLC/MAC data block <NUM> depending on a particular operating scenario, one or more DL RLC/MAC data blocks <NUM> may be transmitted via the appropriate DL physical data channel <NUM>. Additionally, an RLC/MAC header (not shown) including, for example, the BSN(s) of the one or more DL RLC/MAC data blocks <NUM>, as well as a CES/P field described in greater detail below, may also be transmitted with the one or more DL RLC/MAC data blocks <NUM>. Furthermore, an optional PAN field <NUM> described in greater detail below may be transmitted with the one or more DL RLC/MAC data blocks <NUM>.

The EGPRS system <NUM> implements various ARQ techniques to confirm that a transmitted RLC/MAC data block is received successfully by its intended recipient. Accordingly, to acknowledge DL transmissions, one of the UL RLC/MAC control messages <NUM> capable of being sent by the mobile station's RLC/MAC transmitter <NUM> is an EGPRS PDAN control message <NUM> providing ACK indications for DL RLC/MAC data blocks <NUM> received successfully by the mobile station's RLC/MAC receiver <NUM>. Additionally, the EGPRS PDAN control message <NUM> sent by the mobile station's RLC/MAC transmitter <NUM> provides NACK indications for DL RLC/MAC data blocks <NUM> not received successfully by the mobile station's RLC/MAC receiver <NUM>.

Similarly, to acknowledge UL transmissions, one of the DL RLC/MAC control messages <NUM> capable of being sent by the network element's RLC/MAC transmitter <NUM> is a packet uplink ACK/NACK control message <NUM> providing ACK indications for UL RLC/MAC data blocks <NUM> received successfully by the network element's RLC/MAC receiver <NUM>. Additionally, the packet uplink ACK/NACK control message <NUM> sent by the network element's RLC/MAC transmitter <NUM> provides NACK indications for UL RLC/MAC data blocks <NUM> not received successfully by the network element's RLC/MAC receiver <NUM>.

The EGPRS system <NUM> also implements the FANR feature to provide acknowledgment information with reduced latency. Without FANR, all acknowledgements of received RLC/MAC data blocks would need to be sent using control messages, such as EGPRS PDAN control messages <NUM>, packet uplink ACK/NACK control messages <NUM>, etc. Such control messages do not include any RLC data, although they may include other RLC/MAC control information besides acknowledgement information. The disadvantage of using only control messages to send acknowledgment information is that such an approach can be quite inefficient, particularly when acknowledgement information needs to be sent quickly (e.g. in order to allow fast retransmissions of erroneously received blocks) or when the status of very few blocks needs to be indicated (e.g. in low bandwidth transmissions). In such scenarios, the amount of acknowledgement information that is actually useful is very small compared to the capacity of an RLC/MAC control message.

To reduce latency, the FANR feature allows acknowledgment information to be transmitted in a PAN field included with the transmission of an RLC/MAC data block. In the illustrated example of <FIG>, acknowledgment information for reception of the DL RLC/MAC data blocks <NUM> is included in an UL PAN field <NUM> (also referred to herein as an UL PAN <NUM>) transmitted with the corresponding UL RLC/MAC data block <NUM>. Similarly, acknowledgment information for reception of the UL RLC/MAC data blocks <NUM> is included in a DL PAN field <NUM> (also referred to herein as a DL PAN <NUM>) transmitted with the corresponding DL RLC/MAC data block <NUM>. As specified by the EGPRS standards, the UL PAN <NUM> includes an RB field providing a set of acknowledgment bits, with each bit providing an ACK or NACK indication for a respective received DL data block being acknowledged by the RB. The UL PAN <NUM> also includes a short starting sequence number (ShortSSN) related to the BSN of the DL data block corresponding to the first data block included in the set of DL data blocks covered by the RB field. The UL PAN <NUM> further includes a beginning of window (BOW) field to indicate whether the ShortSSN field indicates the identity of the DL data block corresponding to the beginning of the receive window maintained by the receiver providing the acknowledgment information.

As specified by the EGPRS standards, the DL PAN <NUM> can employ SSN-based encoding or time-based coding. In the case of SSN-based encoding, the DL PAN <NUM> includes an RB field, a ShortSSN field and a BOW field as described above for the UL PAN <NUM>. In the case of time-based encoding, the DL PAN <NUM> includes the RB field, with the particular UL data blocks being acknowledged determined based on the time the DL PAN <NUM> is sent.

To support FANR, the mobile station <NUM> of <FIG> implements both the polled FANR procedure and the event-based FANR procedure specified in 3GPP Release <NUM> as mentioned above. In an example polled FANR operation, the network element <NUM> polls the mobile station <NUM> to provide DL acknowledgment information in the UL PAN <NUM> accompanying a subsequent UL RLC/MAC data block <NUM> (e.g., to allow transmitted DL blocks NACK'ed by the mobile station to be quickly retransmitted). (When generated by the polled FANR procedure in response to a network poll, an UL PAN is referred to herein as a polled PAN. ) Then, after completing transmission of the DL data blocks in its transmit window, the network element <NUM> polls the mobile station <NUM> to provide DL acknowledgment information in a separate EGPRS PDAN control message <NUM> to confirm successful receipt of the DL data blocks. Furthermore, when the mobile station <NUM> is polled to provide DL acknowledgment information in a polled PAN <NUM>, but the mobile station <NUM> has no UL RLC/MAC data blocks <NUM> to send, the mobile station <NUM> can respond to the poll with a PDAN control message <NUM> instead of the polled PAN <NUM>, thereby providing early confirmation of the DL data blocks and allowing the network element <NUM> to advance its transmit window.

As mentioned above, the network element <NUM> can implement its polls for DL acknowledgment information by setting bits in CES/P fields included with DL RLC/MAC data blocks <NUM> sent to the mobile station <NUM>. For example, the network element <NUM> can configure the CES/P fields of one or more DL RLC/MAC data blocks <NUM> to indicate that the DL acknowledgment information is to be provided via a polled PAN <NUM> generated using the polled FANR procedure and sent with an UL data block <NUM> destined for the network element <NUM>. Alternatively, the network element <NUM> can configure the CES/P fields of one or more DL RLC/MAC data blocks <NUM> to indicate that the DL acknowledgment information is to be provided via an EGPRS PDAN control message <NUM>. The network element <NUM> can also use the CES/P fields to indicate during which radio block period after transmission of the associated one or more DL RLC/MAC data blocks <NUM> the mobile station <NUM> is to respond with the requested polled PAN <NUM> or EGPRS PDAN control message <NUM>.

Additionally, the mobile station <NUM> implements the event-based FANR procedure to proactively send DL acknowledgment information regardless of whether a poll is received from the network element <NUM>. In particular, the mobile station <NUM> is able to determine whether DL RLC/MAC data blocks <NUM> transmitted by the network element <NUM> are missing (e.g., not received, received out-of-order, received with errors, etc.) by decoding a BSN transmitted with each data block <NUM>. The mobile station <NUM> maintains a receive state array, V(N), to track the status of DL RLC/MAC data blocks <NUM>, with each element in the receive state array V(N) associated with a respective DL RLC/MAC data block <NUM>. For example, when a DL RLC/MAC data block <NUM> is received successfully, the mobile station <NUM> classifies the state of the DL RLC/MAC data block <NUM> as RECEIVED by setting the element in the receive state array V(N) associated with the DL RLC/MAC data block <NUM> to a value representative of the RECEIVED state. A missing DL RLC/MAC data block <NUM> is classified by the mobile station <NUM> as having a state of either UNREPORTED or REPORTED by setting the element in the receive state array V(N) associated with the missing DL RLC/MAC data block <NUM> to either a value representative of the UNREPORTED state or a value representative of the REPORTED state.

For example, the mobile station <NUM> classifies a missing DL RLC/MAC data block <NUM> as UNREPORTED when the missing data block is initially detected as missing and its acknowledgment status has not yet been reported to the network element <NUM>. The missing DL RLC/MAC data block <NUM> is then classified as REPORTED when the mobile station <NUM> reports its acknowledgment status to the network element <NUM> (e.g., via an UL PAN <NUM>, a PDAN control message <NUM>, etc.). If event-based FANR is enabled, the mobile station <NUM> proactively reports DL acknowledgment information while any DL RLC/MAC data blocks <NUM> are classified as UNREPORTED in the receive state array V(N), with the DL acknowledgment information being reported via an UL PAN <NUM> generated by the event-based FANR procedure and sent with associated UL RLC/MAC data blocks <NUM> destined for the network element <NUM>. (When generated proactively by the event-based FANR procedure, an UL PAN is referred to herein as an event-based PAN. ) Generally, the mobile station <NUM> operates to send such an event-based PAN <NUM> reporting a particular UNREPORTED missing DL RLC/MAC data block <NUM> during the second radio block period following the block period in which the particular DL data block was initially detected as missing. Furthermore, when the mobile station <NUM> generates event-based DL acknowledgment information to be provided in the event-based PAN <NUM>, but the mobile station <NUM> has no UL RLC/MAC data blocks <NUM> to send, the mobile station <NUM> can send the event-based DL acknowledgment information via a PDAN control message <NUM> instead of the event-based PAN <NUM>.

The mobile station <NUM> also implements one or more of the duplicate acknowledgment avoidance techniques described herein to refrain from sending duplicate DL acknowledgment information generated via the event-based FANR procedure and generated in response to a poll from the network element <NUM>. As mentioned above, a conventional EGPRS mobile station typically sends an event-based PAN (or event-based PDAN control message instead of the event-based PAN) when any missing DL data blocks are classified as UNREPORTED regardless of whether the acknowledgment status of these missing DL data blocks will also be reported during the same radio block period by a polled PAN or a PDAN control message sent in response to a network poll. In contrast, the mobile station <NUM> avoids sending such duplicate acknowledgment information, at least in some circumstances, by not sending an event-based PAN <NUM> (or an event-based PDAN control message <NUM> instead of the event-based PAN <NUM>) if the mobile station <NUM> determines that the acknowledgment status of the UNREPORTED missing DL data blocks is to be timely reported by a polled PAN <NUM> or a PDAN control message <NUM> sent in response to a poll received from the network element <NUM>.

In a first example, the mobile station <NUM> refrains from sending such an event-based PAN <NUM> so long as a polled PAN <NUM> or a PDAN control message <NUM> is to be sent by the mobile station <NUM> during the same radio block period as the event-based PAN <NUM> would have been sent. In a second example, the mobile station <NUM> evaluates one or more acknowledgment omission criteria to determine whether to refrain from sending an event-based PAN <NUM> that duplicates acknowledgment information to be sent by a polled PAN <NUM> or a PDAN control message <NUM> in the same radio block period. An example implementation of duplicate acknowledgment avoidance in the mobile station <NUM> is illustrated in <FIG> and discussed in greater detail below.

Although the duplicate acknowledgment avoidance methods and apparatus disclosed herein are described in the context of the EGPRS system <NUM> of <FIG>, these example methods and apparatus can be readily adapted for use in any communication system in which acknowledgment information can be provided both proactively via an event-based procedure and also in response to a poll requesting acknowledgment information. Furthermore, although the example methods and apparatus disclosed herein are described from the perspective of implementation by the mobile station <NUM>, in a communication system in which the mobile station <NUM> can poll the network element <NUM> for acknowledgment information, the disclosed example methods and apparatus could also be implemented by the network element <NUM> due the symmetry of the RLC/MAC transmitters and receivers included in the mobile station <NUM> and the network element <NUM>.

A block diagram of an example implementation of the mobile station <NUM> included in the EGPRS system <NUM> of <FIG> is illustrated in <FIG>. In particular, <FIG> illustrates example implementations of the mobile station's RLC/MAC transmitter <NUM> and the mobile station's RLC/MAC receiver <NUM>. In the illustrated example of <FIG>, and with reference to <FIG>, the mobile station's RLC/MAC receiver <NUM> includes a polling decoder <NUM> to decode polling messages received from a network element (e.g., such as the network element <NUM>) requesting that the mobile station <NUM> provide acknowledgment status for DL data blocks (e.g., such as the DL RLC/MAC data block <NUM>) previously transmitted by the network. For example, to implement the EGPRS polled FANR feature, the polling decoder <NUM> may decode a received poll-for-PAN message <NUM> requesting that the mobile station <NUM> provide such acknowledgment information in a polled PAN field <NUM> (e.g., corresponding to the PAN field <NUM>) accompanying UL data blocks <NUM> (e.g., such as the UL RLC/MAC data blocks <NUM>) to be transmitted to the network. As another example, the polling decoder <NUM> may decode a received poll-for-PDAN message <NUM> requesting that the mobile station <NUM> provide such acknowledgment information in a separate EGPRS PDAN control message <NUM> (e.g., corresponding to the EGPRS PDAN control message <NUM>). In an example implementation, the poll-for-PAN message <NUM> and the poll-for-PDAN message <NUM> are implemented by the CES/P fields included with DL data blocks, as described above.

The RLC/MAC receiver <NUM> of <FIG> also includes a receive state array <NUM> to track the status of a set (e.g., a sequence) of DL data blocks (e.g., such as the DL RLC/MAC data blocks <NUM>) sent to the mobile station <NUM> by the network. As described above, each element of the receive state array <NUM> (also referred to as V(N) herein and in the figures) is associated with a respective DL data block in the set of DL data blocks sent to the mobile station <NUM> by the network. An element of the receive state array <NUM> can take on a value representative of at least one of the following states: a RECEIVED state, an UNREPORTED state and a REPORTED state. A particular element of the receive state array <NUM> is set to RECEIVED when the DL data block associated with the array element is received successfully by the mobile station <NUM>. Conversely, the particular element of the receive state array <NUM> is initially set to UNREPORTED when the associated DL data block is expected to be received from the network (e.g., based on tracking BSNs included with DL data blocks) but is initially detected as missing and acknowledgment information (e.g., such as a NACK) has not yet been reported to the network. This element of the receive state array <NUM> is then set to REPORTED when the acknowledgment information (e.g., such as a NACK) for the associated missing DL data block is subsequently reported to the network.

The mobile station's RLC/MAC transmitter <NUM> of <FIG> includes a polled acknowledgment processor <NUM> to process received polling messages decoded by the polling decoder <NUM> and to generate appropriate polled responses. When a poll-for-PDAN message <NUM> is decoded by the polling decoder <NUM>, the polled acknowledgment processor <NUM> evaluates the status information maintained by the receive state array <NUM> and generates appropriate DL polled acknowledgment information for inclusion in a PDAN control message <NUM> to be sent in response to the network's poll. For example, the polled acknowledgment processor <NUM> may generate DL polled acknowledgment information in the form of an ACK/NACK field that reports ACKs for all DL data blocks whose associated elements of the receive state array <NUM> are set to RECEIVED, and NACKs for all DL data blocks whose associated elements of the receive state array <NUM> are set to UNREPORTED or REPORTED. In an EGPRS implementation, the ACK/NACK reported bitmap for both polled PAN and PDAN responses starts at the BSN equal to V(Q)+<NUM>, where V(Q) denotes the lowest BSN not yet received and, thus, indicates the start of the mobile station's received window. Additionally, the polled acknowledgment processor <NUM> schedules the generated PDAN control message <NUM> for transmission during an UL radio block period indicated by the decoded poll-for-PDAN message <NUM>.

However, when a poll-for-PAN message <NUM> is decoded by the polling decoder <NUM>, the polled acknowledgment processor <NUM> in an example implementation implements the EGPRS polled FANR procedure. In such an example, the polled acknowledgment processor <NUM> evaluates the status information maintained by the receive state array <NUM> and generates appropriate DL polled acknowledgment information for inclusion in a polled PAN <NUM> to be sent in response to the network's poll. For example, the polled acknowledgment processor <NUM> may generate DL polled acknowledgment information in the form of an RB field for inclusion in the polled PAN <NUM>. As described above, the RB field includes a set of acknowledgment bits, with each bit providing an ACK indication for a respective received DL data block and a NACK indication for a respective missing DL data block being acknowledged by the RB. Along with generating the RB field, the polled acknowledgment processor <NUM> may also generate the appropriate SSN and BOW fields for inclusion in the polled PAN <NUM>. Additionally, the polled acknowledgment processor <NUM> schedules the generated polled PAN <NUM> for transmission during an UL radio block period indicated by the decoded poll-for-PAN message <NUM>.

The RLC/MAC transmitter <NUM> of <FIG> further includes an event-based acknowledgment processor <NUM> to proactively send DL acknowledgment information regardless of whether a poll (e.g., such as a poll-for-PAN message <NUM> or a poll-for-PDAN message <NUM>) is received from the network. In an example implementation, the event-based acknowledgment processor <NUM> implements the EGPRS event-based FANR procedure. In such an example, the event-based acknowledgment processor <NUM> automatically processes the receive state array <NUM> after it is updated at the end of a preceding DL radio block period to determine whether any DL data blocks are classified as UNREPORTED. If event-based FANR is enabled in the mobile station <NUM>, the event-based acknowledgment processor <NUM> automatically evaluates the status information maintained by the receive state array <NUM> and generates appropriate DL event-based acknowledgment information for inclusion in an event-based PAN <NUM> (e.g., corresponding to the PAN field <NUM>) accompanying UL data blocks <NUM> (e.g., such as the UL RLC/MAC data blocks <NUM>) to be transmitted to the network. Alternatively, the event-based acknowledgment processor <NUM> can generate the appropriate DL event-based acknowledgment information for inclusion in an event-based PDAN control message <NUM> if the mobile station <NUM> has no UL data block <NUM> to send.

For example, similar to operation of the polled acknowledgment processor <NUM>, the event-based acknowledgment processor <NUM> may generate DL event-based acknowledgment information in the form of an RB field for inclusion in the event-based PAN <NUM> (or the event-based PDAN control message <NUM>), with each bit in the RB providing an ACK indication for a respective received DL data block and a NACK indication for a respective missing DL data block being acknowledged by the RB. Along with generating the RB field, the event-based acknowledgment processor <NUM> may also generate the appropriate ShortSSN and BOW fields for inclusion in the event-based PAN <NUM> (or the event-based PDAN control message <NUM>). Additionally, the event-based acknowledgment processor <NUM> schedules the generated PAN <NUM> (or the event-based PDAN control message <NUM>) for transmission during the second (or some other specified) UL radio block period after initially determining that the receive state array <NUM> classified at least one DL data block as UNREPORTED.

The RLC/MAC transmitter <NUM> included in the mobile station <NUM> of <FIG> also includes an acknowledgment transmission unit <NUM> to implement duplicate acknowledgment avoidance as described herein. For example, for a given uplink radio block period, the acknowledgment transmission unit <NUM> obtains from the event-based acknowledgment processor <NUM> any event-based PAN field <NUM> (or any event-based PDAN control message <NUM>) to be sent during the given uplink radio block period. Additionally, the acknowledgment transmission unit <NUM> obtains from the polled acknowledgment processor <NUM> any polled response, such as any polled PAN <NUM> or PDAN control message <NUM>, to be sent during the given uplink radio block period. If an event-based PAN field <NUM> (or an event-based PDAN control message <NUM>) is scheduled to be sent during the given uplink radio block period, the acknowledgment transmission unit <NUM> implements duplicate acknowledgment avoidance as follows. Although the following description focuses on processing an event-based PAN field <NUM> is described, the following description is also applicable to processing an event-based PDAN control message <NUM>.

In an example implementation, if an event-based PAN field <NUM> is scheduled to be sent during the given uplink radio block period, the acknowledgment transmission unit <NUM> determines whether the DL event-based acknowledgment information to be reported via the event-based PAN field <NUM> (e.g., reporting one or more UNREPORTED missing DL data blocks) will remain unreported at the end of the given uplink radio block period if the event-based PAN field <NUM> is not sent. To make such a determination, the acknowledgment transmission unit <NUM> determines whether the DL event-based acknowledgment information (e.g., RB field) to be reported via the event-based PAN field <NUM> is also included in any DL polled acknowledgment information (e.g., RB field) to be reported via a polled response, such as any polled PAN <NUM> or PDAN control message <NUM>, scheduled to be sent during the given uplink radio block period. If such a polled response is not scheduled to be sent during the given radio block period, the acknowledgment transmission unit <NUM> determines that the DL event-based acknowledgment information would remain unreported and, thus, causes the event-based PAN field <NUM> containing the DL event-based acknowledgment information to be sent during the given radio block period. However, if such a polled response is also scheduled to be sent during the given radio block period, the acknowledgment transmission unit <NUM> refrains from sending (e.g., blocks) the event-based PAN field <NUM> containing the DL event-based acknowledgment information and causes only the polled PAN <NUM> or PDAN control message <NUM> containing the DL polled acknowledgment information to be sent during the given radio block period. (In some examples, the acknowledgment transmission unit <NUM> also refrains from sending the event-based PAN field <NUM> if a polled response sending duplicate acknowledgment information is scheduled to be sent during a later radio block period.

In at least some example implementations, the acknowledgment transmission unit <NUM> further evaluates one or more acknowledgment omission criteria to determine whether to refrain from sending an event-based PAN <NUM> containing event-based acknowledgment information that is duplicated in polled acknowledgment information to be sent by a polled PAN <NUM> or a PDAN control message <NUM>. For example, such acknowledgment omission criteria can further characterize the likelihood of DL polled acknowledgment information duplicating DL event-based acknowledgment information not being received completely by the network by the end of the given uplink radio block period if only the polled PAN field <NUM> containing the DL polled acknowledgment information is sent. In such example implementations, although DL event-based acknowledgment information to be sent via an event-based PAN field <NUM> is also scheduled to be sent by a polled response (e.g., such as a polled PAN <NUM> or a PDAN control message <NUM>) during the given uplink radio block period, the acknowledgment transmission unit <NUM> causes the event-based PAN field <NUM> to still be sent if the evaluated acknowledgment omission criteria indicate a substantial likelihood that all of the DL polled acknowledgment information (e.g., containing acknowledgment indications reporting one or more UNREPORTED missing DL data blocks) will not be received by the network. Conversely, the acknowledgment transmission unit <NUM> refrains from sending (e.g., blocks) the event-based PAN field <NUM> in the given UL radio block period if the evaluated acknowledgment omission criteria indicate a substantial likelihood that all of the DL polled acknowledgment information (in which the DL event-based acknowledgment information is duplicated) scheduled to be transmitted via the polled response is substantially likely to be received by the network.

Examples of the acknowledgment omission criteria to be evaluated by the acknowledgment transmission unit <NUM> include, but are not limited to: (<NUM>) a channel quality criterion indicating whether an estimated UL channel quality satisfies a threshold; (<NUM>) a polled response type criterion indicating whether the DL polled acknowledgment information is to be transmitted via a polled PAN <NUM> or a PDAN control message <NUM>; (<NUM>) a remaining acknowledgment amount criterion indicating whether the amount of remaining acknowledgment information to be sent exceeds a threshold; (<NUM>) a downlink channel assignment criterion indicating whether the downlink channel assignment exceeds a threshold data rate or bandwidth; (<NUM>) a polled response scheduling criterion indicating whether the DL polled acknowledgment information including the DL event-based acknowledgment information is scheduled to be transmitted in the given radio block period or a later radio block period; etc. The acknowledgment transmission unit <NUM> may be configured to evaluate any one, any combination, or all of the preceding acknowledgment omission criteria.

For example, the channel quality criterion indicates that the DL polled acknowledgment information has a substantial likelihood of not being received by the network if the uplink channel quality does not meet (e.g., is less than) a specified threshold quality because the DL polled acknowledgment information may become corrupted during transmission, whereas the DL polled acknowledgment information has a substantial likelihood of being reported if the uplink channel quality meets (e.g., is greater than or equal to) the specified threshold quality. The uplink channel quality can be determined via any appropriate signal measurements, as well as inferred based on the modulation and coding scheme used to transmit the acknowledgment information.

The polled response type criterion can be used to further characterize the channel quality criterion under the scenario when the uplink channel quality does not meet (e.g., is less than) the specified threshold quality. Acknowledgment information provided by a PAN field (e.g., such as the polled PAN <NUM>) is typically expected to be less reliable than the acknowledgment information provided by a packet ACK/NACK control message (e.g., such as the PDAN control message <NUM>). The reduced reliability of the PAN field generally results from less error detection and correction, less robust encoding, or both, being employed for the PAN field than for a control message. Because of a resulting higher probability of false positive detections, PAN fields are generally treated with caution (e.g., by requiring confirmation via an appropriate packet ACK/NACK control message as described above) to avoid the possibility of any serious failure arising in case of such a false positive detection.

Due to the reduced reliability of PAN fields relative to control messages, and because PAN fields typically cannot send as much acknowledgment information as control messages, the polled response type criterion further indicates that the DL polled acknowledgment information has a substantial likelihood of not being received by the network when the DL polled acknowledgment information is to be reported by a polled PAN <NUM> and the uplink channel quality does not meet (e.g., is less than) the specified threshold quality. Conversely, the polled response type criterion indicates that the DL polled acknowledgment information has a substantial likelihood of being received by the network when this information is to be reported by a PDAN control message <NUM>, even though the uplink channel quality does not meet (e.g., is less than) the specified threshold quality.

Taking the other acknowledgment omission criteria in turn, the remaining acknowledgment amount criterion indicates that the DL polled acknowledgment information duplicating the DL event-based acknowledgment information has a substantial likelihood of not being received completely by the network by the end of the given radio block period if the amount of unreported DL acknowledgment information exceeds a threshold. This is because all of the DL acknowledgment information (including the information that would have been reported by the event-based PAN <NUM>) remaining to be reported may not be fully included in the polled PAN <NUM> or PDAN control message <NUM> sent during the given radio block period.

The downlink channel assignment criterion indicates that the DL polled acknowledgment information duplicating the DL event-based acknowledgment information has a substantial likelihood of not being received completely by the network by the end of the given radio block period if the downlink channel assignment exceeds a threshold data rate or bandwidth. This is because a large channel assignment may yield an amount of acknowledgment information that cannot be fully included in the DL polled acknowledgment information to be reported by the polled PAN <NUM> or PDAN control message <NUM> during the given radio block period.

The polled response scheduling criterion indicates that DL event-based acknowledgment information has a substantial likelihood of remaining unreported at the end of a first radio block period when this information is to be included (e.g., duplicated) in DL polled acknowledgment information to be reported in a later second radio block period. This is because the DL event-based acknowledgment information could be reported in the earlier first radio block period if the corresponding event-based PAN <NUM> was sent. This polled response scheduling criterion has applicability primarily in systems in which the acknowledgment transmission unit <NUM> can also refrain from sending the event-based PAN field <NUM> if a polled response sending duplicate acknowledgment information is scheduled to be sent during a later radio block period.

As noted above, the acknowledgment transmission unit <NUM> may be configured to evaluate any one, any combination or all of the preceding acknowledgment omission criteria. For example, the acknowledgment transmission unit <NUM> may be configured to cause an event-based PAN field <NUM> containing the DL event-based acknowledgment information to be sent during a given radio block period if one or more of the acknowledgment omission criteria indicate that there is a substantial likelihood that all of the DL polled acknowledgment information duplicating the DL event-based acknowledgment information will not be received completely by the network by the end of the given uplink radio block period. However, if the acknowledgment omission criteria evaluated by the acknowledgment transmission unit <NUM> indicate that there is a substantial likelihood that all of the DL polled acknowledgment information duplicating the DL event-based acknowledgment information will be received completely by the network, the acknowledgment transmission unit <NUM> refrains from sending (e.g., blocks) the event-based PAN field <NUM> to avoid transmission of duplicate acknowledgment information.

Additionally or alternatively, the acknowledgment transmission unit <NUM> may evaluate different acknowledgment criteria depending upon whether the DL event-based acknowledgment information is to be sent via an event-based PAN <NUM> or an event-based PDAN control <NUM>. For example, as mentioned above, receiving DL acknowledgment information via an event-based PDAN control message <NUM> allows the network element <NUM> to advance its transmit window, whereas the network element <NUM> cannot advance its transmit window if the DL acknowledgment information is received via an event-based PAN <NUM> (due to the lower reliability of the event-based PAN <NUM>). Accordingly, the acknowledgment transmission unit <NUM> may evaluate the polled response type criterion and then determine that the DL event-based acknowledgment information should be sent even if duplicate DL polled acknowledgment information is to be sent if the DL event-based acknowledgment information is to be sent via the event-based PDAN control message <NUM> and the DL polled acknowledgment information is to be reported via a polled PAN <NUM>.

While an example manner of implementing the example mobile station <NUM> of <FIG> has been illustrated in <FIG>, one or more of the elements, processes and/or devices illustrated in <FIG> may be combined, divided, rearranged, omitted, eliminated and/or implemented in any other way. Further, the example RLC/MAC transmitter <NUM>, the example RLC/MAC receiver <NUM>, the example polling decoder <NUM>, the example receive state array <NUM>, the example polled acknowledgment processor <NUM>, the example event-based acknowledgment processor <NUM>, the example acknowledgment transmission unit <NUM> and/or, more generally, the example mobile station <NUM> of <FIG> may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example RLC/MAC transmitter <NUM>, the example RLC/MAC receiver <NUM>, the example polling decoder <NUM>, the example receive state array <NUM>, the example polled acknowledgment processor <NUM>, the example event-based acknowledgment processor <NUM>, the example acknowledgment transmission unit <NUM> and/or, more generally, the example mobile station <NUM> could be implemented by one or more circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)), etc. When any of the appended claims are read to cover a purely software and/or firmware implementation, at least one of the example mobile station <NUM>, the example RLC/MAC transmitter <NUM>, the example RLC/MAC receiver <NUM>, the example polling decoder <NUM>, the example receive state array <NUM>, the example polled acknowledgment processor <NUM>, the example event-based acknowledgment processor <NUM> and/or the example acknowledgment transmission unit <NUM> are hereby expressly defined to include a tangible medium such as a memory, digital versatile disk (DVD), compact disk (CD), etc., storing such software and/or firmware. Further still, the example mobile station <NUM> of <FIG> may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in <FIG>, and/or may include more than one of any or all of the illustrated elements, processes and devices.

Example message sequence diagrams <NUM>, <NUM> and <NUM> that further illustrate operation of the mobile station <NUM> of <FIG> or <FIG>, or both, in the EGPRS communication system <NUM> are depicted in <FIG>, <FIG> and <FIG>, respectively. For reference, the message sequence diagram <NUM> depicts example conventional acknowledgment processing that could be performed by the mobile station <NUM> instead of the duplicate acknowledgment avoidance techniques described herein. Message sequence diagrams <NUM> and <NUM> then depict example duplicate acknowledgment avoidance techniques implemented by the mobile station <NUM>, thereby illustrating at least some of the benefits of these techniques over the conventional acknowledgment processing depicted in the message sequence diagram <NUM>.

Turning to <FIG>, and with reference to <FIG> and <FIG>, the message sequence diagram <NUM> begins with the mobile station <NUM> receiving a DL RLC/MAC data block <NUM> sent by the network element <NUM> during time slot <NUM> of the Nth radio block period. The DL RLC/MAC data block <NUM> has a BSN set to <NUM>, and this data block is decoded correctly by the mobile station <NUM>. Accordingly, the element of the receive state array <NUM> associated with the received DL RLC/MAC data block <NUM> is set to RECEIVED.

Next, the mobile station <NUM> receives a DL RLC/MAC data block <NUM> sent by the network element <NUM> during time slot <NUM> of the Nth radio block period. The DL RLC/MAC data block <NUM> has a BSN set to <NUM>, and this data block is decoded correctly by the mobile station <NUM>. Accordingly, the element of the receive state array <NUM> associated with the received DL RLC/MAC data block <NUM> is set to RECEIVED.

Next, the mobile station <NUM> receives a DL RLC/MAC data block <NUM> sent by the network element <NUM> during time slot <NUM> of the Nth radio block period. In the illustrated example, the header of the DL RLC/MAC data block <NUM> is decoded correctly by the mobile station <NUM> and includes a CES/P field sending an acknowledgment poll to the mobile station <NUM>. The acknowledgment poll included with the DL RLC/MAC data block <NUM> can correspond to a poll-for-PAN message <NUM> or a poll-for-PDAN message <NUM>. The poll included with the DL RLC/MAC data block <NUM> also indicates that the response to the poll (e.g., such as a polled PAN <NUM> or a PDAN control message <NUM>) is to be sent in radio block period N+<NUM> (e.g., two radio block periods after the poll is received).

In the illustrated example, the mobile station <NUM> also incorrectly decodes the RLC data portion of the DL RLC/MAC data block <NUM> (which is represented by a large "X" through the directed line labeled <NUM>), although the mobile station <NUM> does correctly decode the header, which indicates the BSN is set to <NUM>. The mobile station <NUM> treats the incorrectly decoded DL RLC/MAC data block <NUM> as missing. Accordingly, the element of the receive state array <NUM> associated with the missing DL RLC/MAC data block <NUM> is set to UNREPORTED, because the acknowledgment status (e.g., NACK) of this block has not yet been reported to the network element <NUM>.

The event-based FANR procedure implemented by the mobile station <NUM> causes an event-based PAN (e.g., such as the event-based PAN <NUM>) to be generated proactively (e.g., automatically) for inclusion with an UL RLC/MAC data block <NUM> to be transmitted to the network element <NUM> during time slot <NUM> of radio block period N+<NUM> (i.e., which is two radio block periods after determining that the incorrectly decoded DL RLC/MAC data block <NUM> having BSN=<NUM> is a missing block). For example, because the element of the receive state array <NUM> associated with the missing DL RLC/MAC data block <NUM> is set to UNREPORTED, the event-based FANR procedure implemented by the mobile station <NUM> automatically generates an event-based PAN having an RB field to report, among other acknowledgment indications, a NACK for the DL RLC/MAC data block <NUM>. In the context of the message sequence diagram <NUM>, the mobile station <NUM> implements conventional acknowledgment processing that does not avoid sending duplicate acknowledgments according to the techniques described herein. Therefore, the mobile station <NUM> automatically sends the generated event-based PAN with the UL RLC/MAC data block <NUM> without checking whether the acknowledgment information included in the event-based PAN will also be reported in response to the poll included with the DL RLC/MAC data block <NUM>.

Then, during time slot <NUM> of radio block period N+<NUM>, the mobile station <NUM> also sends a polled acknowledgment response <NUM> to the network element <NUM>. The polled acknowledgment response <NUM> can be, for example, a polled PAN <NUM> sent in response to a poll-for-PAN message <NUM> included with the DL RLC/MAC data block <NUM>, or a PDAN control message <NUM> sent in response to a poll-for-PDAN message <NUM> included with the DL RLC/MAC data block <NUM>. Because the polled acknowledgment response <NUM> is sent in the same radio block period as the UL RLC/MAC data block <NUM> including the event-based PAN, the network element <NUM> will not have had time to respond to the NACK indication provided in the event-based PAN for the missing DL RLC/MAC data block <NUM>. Thus, the polled acknowledgment information included in the polled acknowledgment response <NUM> will also include a NACK for the DL RLC/MAC data block <NUM>, duplicating the event-based acknowledgment information provided by the event-based PAN included with the UL RLC/MAC data block <NUM>. The message sequence diagram <NUM> then ends.

In an implementation conforming to 3GPP Release <NUM> EGPRS, an event-based PAN, such as the event-based PAN <NUM>, has a size of <NUM> bits. In the example message sequence diagram <NUM>, sending the duplicate event-based acknowledgment information in the event-based PAN included with the UL RLC/MAC data block <NUM> wastes transmission of bits that could be better allocated to sending more UL RLC/MAC data or existing RLC/MAC data more robustly (e.g., with more coding gain).

The message sequence diagram <NUM> of <FIG> illustrates a first example duplicate acknowledgment avoidance technique implemented by the mobile station <NUM>. Operation of the message sequence diagram <NUM> from receiving the DL RLC/MAC data block <NUM> to receiving the DL RLC/MAC data block <NUM> is substantially the same as for the message sequence diagram <NUM> of <FIG>, which is described in detail above. In the interest of brevity, the details of the operation of the message sequence diagram <NUM> from receiving the DL RLC/MAC data block <NUM> to receiving the DL RLC/MAC data block <NUM> are not duplicated here.

Turning to <FIG>, and as described above in connection with the message sequence diagram <NUM>, after receiving the DL RLC/MAC data block <NUM>, the mobile station <NUM> illustrated in the message sequence diagram <NUM> has classified the DL RLC/MAC data block <NUM> as missing (e.g., by setting its associated element in the receive state array <NUM> to UNREPORTED). The mobile station <NUM> has also been instructed by the network element <NUM> to provide DL polled acknowledgment information in radio block N+<NUM>. However, unlike the message sequence diagram <NUM> of <FIG>, the mobile station <NUM> in the message sequence diagram <NUM> does not generate an event-based PAN for inclusion with an UL RLC/MAC data block <NUM> to be sent to the network element during time slot <NUM> of the radio block period N+<NUM> because the mobile station <NUM> in this example implements duplicate acknowledgment avoidance.

In particular, prior to the start of radio block N+<NUM>, the mobile station <NUM> determines that any DL event-based acknowledgment information (e.g., reporting a NACK for the DL RLC/MAC data block <NUM>) that would have been reported via an event-based PAN included with the UL RLC/MAC data block <NUM> is also to be reported via the DL polled acknowledgment information conveyed by the polled acknowledgment response <NUM>. Thus, the mobile station <NUM> prevents its event-based FANR procedure from generating or at least sending an event-based PAN with the UL RLC/MAC data block <NUM>. In a 3GPP EGPRS Release <NUM> implementation, such duplicate acknowledgment avoidance saves <NUM> bits in the UL RLC/MAC data block <NUM> that can be allocated to sending more UL RLC/MAC data or existing RLC/MAC data more robustly (e.g., with more coding gain).

The message sequence diagram <NUM> of <FIG> illustrates a second example duplicate acknowledgment avoidance technique implemented by the mobile station <NUM>. With reference to <FIG> and <FIG>, the message sequence diagram <NUM> begins with the mobile station <NUM> receiving an acknowledgment poll <NUM> from the network element <NUM> requesting DL acknowledgment status. The acknowledgment poll <NUM> is received by the mobile station <NUM> during or before the Nth radio block period, and indicates that the mobile station <NUM> is to respond to the poll in radio block period N+<NUM> or some later radio block period. The acknowledgment poll <NUM> can correspond to a poll-for-PAN message <NUM> or a poll-for-PDAN message <NUM> implemented by, for example, one or more CES/P fields included with DL RLC/MAC data blocks sent by the network element <NUM> to the mobile station <NUM>.

During or before the Nth radio block period, the mobile station <NUM> also detects a missing DL RLC/MAC data block (represented by the directed line labeled <NUM> in <FIG>). Accordingly, the element of the receive state array <NUM> associated with the missing data block <NUM> is set to UNREPORTED, because the acknowledgment status (e.g., NACK) of this block has not yet been reported to the network element <NUM>. Although the missing data block <NUM> is depicted as being detected after receipt of the acknowledgment poll <NUM> in <FIG>, the relative ordering of these events can be reversed provided the acknowledgment poll <NUM> is received by the mobile station <NUM> before it sends an event-based PAN in response detecting the missing block <NUM>.

Next, the mobile station <NUM> processes the acknowledgment poll <NUM> (with such processing represented by the directed line labeled <NUM>) to prepare appropriate DL polled acknowledgment information to be returned to the network element <NUM> via a polled acknowledgment response <NUM>. The polled acknowledgment response <NUM> is sent by the mobile station <NUM> to the network element <NUM> in the appropriate radio block period ≥N+<NUM> indicated in the acknowledgment poll <NUM>. As described above, the polled acknowledgment response <NUM> can be, for example, a polled PAN <NUM> sent in response to the acknowledgment poll <NUM> corresponding to a poll-for-PAN message, or a PDAN control message <NUM> sent in response to the acknowledgment poll <NUM> corresponding to a poll-for-PDAN message <NUM>. In the illustrated example, the DL polled acknowledgment information conveyed by the polled acknowledgment response <NUM> includes the acknowledgment status (e.g., NACK) of the missing data block <NUM> because the element of the receive state array <NUM> associated with the missing data block <NUM> is set to UNREPORTED.

Additionally, in preparation for sending an UL RLC/MAC data block <NUM> during radio block period N+<NUM>, the mobile station <NUM> performs event-based FANR and duplicate acknowledgment avoidance processing (with such processing represented by the directed line labeled <NUM>). Because the element of the receive state array <NUM> associated with the missing data block <NUM> is set to UNREPORTED, the event-based FANR procedure would typically generate an event-based PAN proactively (e.g., automatically) for inclusion with the UL RLC/MAC data block <NUM>. However, using the techniques described herein, the duplicate acknowledgment avoidance procedure implemented by the mobile station <NUM> determines that the acknowledgment status (e.g., NACK) of the missing data block <NUM> is also to be reported (or has a substantial likelihood of being reported) by the polled acknowledgment response <NUM>. As such, the mobile station <NUM> prevents its event-based FANR procedure from generating or at least sending an event-based PAN with the UL RLC/MAC data block <NUM>, thereby improving bandwidth utilization and spectral efficiency (e.g., by saving <NUM> data bits in a 3GPP EGPRS Release <NUM> implementation).

Flowcharts representative of example processes that may be executed to implement any, some or all of the example EGPRS communication system <NUM>, the example mobile station <NUM>, the example RLC/MAC transmitter <NUM>, the example RLC/MAC receiver <NUM>, the example polling decoder <NUM>, the example receive state array <NUM>, the example polled acknowledgment processor <NUM>, the example event-based acknowledgment processor <NUM> and the example acknowledgment transmission unit <NUM> are shown in <FIG> and <FIG>.

In these examples, the process represented by each flowchart may be implemented by one or more programs comprising machine readable instructions for execution by: (a) a processor, such as the processor <NUM> shown in the example processing system <NUM> discussed below in connection with <FIG>, (b) a controller, and/or (c) any other suitable device. The one or more programs may be embodied in software stored on a tangible medium such as, for example, a flash memory, a CD-ROM, a floppy disk, a hard drive, a DVD, or a memory associated with the processor <NUM>, but the entire program or programs and/or portions thereof could alternatively be executed by a device other than the processor <NUM> and/or embodied in firmware or dedicated hardware (e.g., implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.). For example, any one, some or all of the example EGPRS communication system <NUM>, the example mobile station <NUM>, the example RLC/MAC transmitter <NUM>, the example RLC/MAC receiver <NUM>, the example polling decoder <NUM>, the example receive state array <NUM>, the example polled acknowledgment processor <NUM>, the example event-based acknowledgment processor <NUM> could be implemented by any combination of software, hardware, and/or firmware. Also, some or all of the processes represented by the flowcharts of <FIG> and <FIG> may be implemented manually.

Further, although the example processes are described with reference to the flowcharts illustrated in <FIG> and <FIG>, many other techniques for implementing the example methods and apparatus described herein may alternatively be used. For example, with reference to the flowcharts illustrated in <FIG> and <FIG>, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, combined and/or subdivided into multiple blocks.

An example process <NUM> that may be executed to implement duplicate acknowledgment avoidance in the example mobile unit <NUM> of <FIG> or <FIG>, or both, is illustrated in <FIG>. The process <NUM> may be executed at predetermined intervals (e.g., such as prior to a next UL radio block period), based on an occurrence of a predetermined event (e.g., such as detection of a missing DL data block), as a background process, etc., or any combination thereof. With reference to <FIG> and <FIG>, the process <NUM> of <FIG> begins execution at block <NUM> of <FIG> at which the RLC/MAC receiver <NUM> in the mobile station <NUM> decodes any DL RLC/MAC data blocks <NUM> received from the network element <NUM> during one or more radio block period(s) prior to a given radio block period in which the mobile station <NUM> is to transmit data. Then, at block <NUM> the polling decoder <NUM> in the mobile station <NUM> decodes any acknowledgment polls received from the network element <NUM> during one or more radio block period(s) prior to a given radio block period in which the mobile station <NUM> is to transmit data. For example, at block <NUM> the polling decoder <NUM> can decode a poll-for-PAN message <NUM> or a poll-for-PDAN message <NUM> requesting polled DL acknowledgment information from the mobile station <NUM>.

Then, control proceeds to block <NUM> at which the RLC/MAC transmitter <NUM> in the mobile station <NUM> determines whether transmit processing for a given radio block period is to begin. For example, at block <NUM> the RLC/MAC transmitter <NUM> can use any combination of polling or interrupt-driven processing to determine when to begin transmit processing for the given radio block period. When transmit processing is to begin, control proceeds to block <NUM> at which the polled acknowledgment processor <NUM> in the mobile station <NUM> determines whether any polling messages requesting DL polled acknowledgment information to be sent during the given radio block period were decoded at block <NUM>.

Control then proceeds to block <NUM> at which the event-based acknowledgment processor <NUM> in the mobile station <NUM> identifies any DL RLC/MAC data blocks identified as missing during the decoding performed at block <NUM> and that have not yet been reported to the network element <NUM>. For example, at block <NUM> the event-based acknowledgment processor <NUM> implements event-based FANR and processes the receive state array <NUM> used to track the status of DL RLC/MAC data blocks. As described above, a missing DL RLC/MAC data block is associated with an element in the receive state array <NUM> that is set to the UNREPORTED state when the data block is initially detected as missing and has not yet been reported to the network element <NUM>. Thus, at block <NUM> the event-based acknowledgment processor <NUM> determines whether the receive state array <NUM> has any elements set to the UNREPORTED state.

Next, control proceeds to block <NUM> at which the event-based acknowledgment processor <NUM> determines whether an event-based PAN <NUM> is to be transmitted during the given radio block period. For example, at block <NUM> the event-based acknowledgment processor <NUM> implements event-based FANR and determines whether the processing at block <NUM> identified any missing DL data blocks whose elements in the receive state array <NUM> are set to the UNREPORTED state. If no such UNREPORTED missing DL data blocks were identified at block <NUM>, the event-based acknowledgment processor <NUM> determines that no event-based PAN <NUM> is to be transmitted during the given radio block period (block <NUM>), and control proceeds to block <NUM> of <FIG>.

At block <NUM> of <FIG>, the polled acknowledgment processor <NUM> determines whether the processing at block <NUM> determined that DL polled acknowledgment information was requested by a poll from the network element <NUM> and is to be sent during the given radio block period. If DL polled acknowledgment information is to be sent during the given radio block period (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> in the acknowledgment transmission unit <NUM> determines that only polled acknowledgment information is to be sent and, therefore, no duplicate acknowledgment avoidance is required. As such, the acknowledgment transmission unit <NUM> causes the DL polled acknowledgment information to be sent using, for example, a polled PAN field <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PAN message <NUM>, or a PDAN control message <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PDAN message <NUM> or the mobile station has no uplink data to transmit. After the DL polled acknowledgment information is caused to be sent at block <NUM>, or if no DL polled acknowledgment information is to be sent (block <NUM>), execution of the example process <NUM> then ends.

Returning to block <NUM> of <FIG>, if one or more UNREPORTED missing DL data blocks were identified at block <NUM>, the event-based acknowledgment processor <NUM> determines that an event-based PAN <NUM> is to be transmitted during the given radio block period (block <NUM>), and control proceeds to block <NUM>. At block <NUM> the polled acknowledgment processor <NUM> determines whether the processing at block <NUM> determined that DL polled acknowledgment information was requested by a poll from the network element <NUM> and is also to be sent during the given radio block period. If DL polled acknowledgment information is not to be sent during the given radio block period (block <NUM>), control proceeds to block <NUM> of <FIG>.

At block <NUM> of <FIG>, the acknowledgment transmission unit <NUM> determines that only event-based acknowledgment information is to be sent and, therefore, no duplicate acknowledgment avoidance is required. As such, the acknowledgment transmission unit <NUM> causes the DL event-based acknowledgment information to be sent using, for example, an event-based PAN field <NUM>. After processing at block <NUM> completes, execution of the example process <NUM> ends.

Returning to block <NUM> of <FIG>, if DL polled acknowledgment information is to be sent during the given radio block period, control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> implements a duplicate acknowledgment avoidance procedure and evaluates any associated acknowledgment omission criteria because duplicate event-based and polled acknowledgments are scheduled to be sent in the given radio block period being processed. In the illustrated example, the acknowledgment transmission unit <NUM> is able to refrain from sending the duplicate DL event-based acknowledgment information so long as the DL polled acknowledgment information is to be sent in the same radio block period regardless of whether the event-based and polled acknowledgment information are scheduled to be sent in different time slots of the radio block period. In other words, although the DL polled acknowledgment information may be scheduled to be sent during a different time slot of the given radio block period than the time slot during which the DL polled acknowledgment information is to be sent, control can proceed to block <NUM> so long as both the event-based and polled acknowledgment information are scheduled to be sent in the same radio block period. In general, the duplicate acknowledgment avoidance procedure implemented at block <NUM> refrains from sending (e.g., blocks) an event-based PAN <NUM> carrying event-based acknowledgment information if such acknowledgment information is to also be timely reported by a polled PAN <NUM> or PDAN control message <NUM> carrying polled acknowledgment information. An example procedure for implementing the processing at block <NUM> is illustrated in <FIG> and described in greater detail below.

After the duplicate acknowledgment avoidance procedure of block <NUM> completes, control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> determines whether the event-based acknowledgment information scheduled to be transmitted is duplicated by the polled acknowledgment information to be reported and, thus, can be omitted. If the event-based acknowledgment information scheduled to be transmitted can be omitted (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> causes only the DL polled acknowledgment information to be sent using, for example, polled PAN field <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PAN message <NUM>, or a PDAN control message <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PDAN message <NUM>. After the DL polled acknowledgment information is caused to be sent at block <NUM>, execution of the example process <NUM> ends.

However, if the event-based acknowledgment information scheduled to be transmitted cannot be omitted because it is not duplicative or there is a substantial likelihood it would remain unreported if not sent (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> causes the DL event-based acknowledgment information to be sent using, for example, an event-based PAN field <NUM>. Control then proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> causes the DL polled acknowledgment information to be sent using, for example, polled PAN field <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PAN message <NUM>, or a PDAN control message <NUM> if the corresponding acknowledgment poll decoded at block <NUM> was a poll-for-PDAN message <NUM>. After the DL acknowledgment information is caused to be sent at blocks <NUM> and <NUM>, execution of the example process <NUM> ends.

An example procedure <NUM> to implement the duplicate acknowledgment avoidance processing and associated acknowledgment omission criteria evaluation at block <NUM> of <FIG> is illustrated in <FIG>. With reference to <FIG> and <FIG>, the example procedure <NUM> of <FIG> begins under a condition that an event-based PAN <NUM> carrying DL event-based acknowledgment information is scheduled to be transmitted during a given radio block period being processed, and either a polled PAN <NUM> or a PDAN control message <NUM> carrying DL polled acknowledgment information is also scheduled to be transmitted during the given period. With that in mind, the procedure <NUM> of <FIG> begins execution at block <NUM> at which the acknowledgment transmission unit <NUM> in the mobile station <NUM> determines whether evaluation of any acknowledgment omission criteria is enabled. If acknowledgment omission criteria evaluation is not enabled (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> defaults to indicating that the DL event-based acknowledgment information to be carried by the event-based PAN <NUM> can be omitted because it is duplicative of DL polled acknowledgment information to be carried by either the polled PAN <NUM> or the PDAN control message <NUM>, and all of the DL polled acknowledgment information is substantially likely to be received by the network element <NUM>. Execution of the example procedure <NUM> then ends.

However, if acknowledgment omission criteria evaluation is enabled (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> evaluates a channel quality criterion indicating whether an estimated UL channel quality satisfies a threshold. If the estimated UL channel quality does not satisfy (e.g., is not greater than or equal to) the specified threshold (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> evaluates a polled response type criterion indicating whether the DL polled acknowledgment information is to be transmitted via a polled PAN <NUM> or a PDAN control message <NUM>. If the DL polled acknowledgment information is to be transmitted via the polled PAN <NUM> (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> indicates that the DL event-based acknowledgment information to be carried by the event-based PAN <NUM> cannot be omitted because there is a substantial likelihood it will not be received by the network element <NUM> if the event-based PAN <NUM> is not sent and only the DL polled acknowledgment information is sent by either the polled PAN <NUM> or the PDAN control message <NUM>. Execution of the example procedure <NUM> then ends.

If, however, the DL polled acknowledgment information is to be transmitted via the PDAN control message <NUM> (block <NUM>), or if the estimated UL channel quality does satisfy (e.g., is greater than or equal to) the specified threshold (block <NUM>), control proceeds to block <NUM> at which the acknowledgment transmission unit <NUM> evaluates a remaining acknowledgment amount criterion indicating whether the amount of remaining acknowledgment information to be sent exceeds a threshold. If the remaining acknowledgment information to be sent (characterized, for example, by the difference between the highest BSN of all blocks received successfully and the lowest BSN of all blocks not yet received successfully) exceeds the specified threshold (block <NUM>), control proceeds to block <NUM> whose operation is described above. However, if the remaining acknowledgment information to be sent does not exceed the specified threshold (block <NUM>), control proceeds to block <NUM>.

At block <NUM>, the acknowledgment transmission unit <NUM> evaluates a downlink channel assignment criterion indicating whether the downlink channel assignment exceeds a threshold data rate or bandwidth. If the downlink channel assignment exceeds the specified threshold (block <NUM>), control proceeds to block <NUM> whose operation is described above. However, if the downlink channel assignment does not exceed the specified threshold (block <NUM>), control proceeds to block <NUM>.

At block <NUM>, the acknowledgment transmission unit <NUM> evaluates a polled response scheduling criterion indicating whether the DL polled acknowledgment information is scheduled to be transmitted in the given radio block period during which the DL event-based acknowledgment information is scheduled to be transmitted, or a later radio block period. The polled response scheduling criterion has applicability primarily in systems in which the acknowledgment transmission unit <NUM> can also refrain from sending the DL event-based acknowledgment information if a polled response sending duplicate acknowledgment information is scheduled to be sent during a radio block period later than the given radio block period. If the DL polled acknowledgment information is scheduled to be transmitted during a later radio block period (block <NUM>), control proceeds to block <NUM> whose operation is described above. However, if the DL polled acknowledgment information is scheduled to be transmitted during the same radio block period as the DL event-based acknowledgment information (block <NUM>), control proceeds to block <NUM> whose operation is described above.

As shown in <FIG>, in an example implementation, any, some or all of the criterion represented by blocks <NUM>, <NUM>, <NUM>, <NUM> and <NUM> may be evaluated to determine whether the DL event-based acknowledgment information to be carried by the event-based PAN <NUM> can be omitted because it is duplicative and has a substantial likelihood of being reported by the DL polled acknowledgment information to be carried by either the polled PAN <NUM> or the PDAN control message <NUM>.

As yet another example, the duplicate acknowledgment avoidance techniques described herein can be implemented in a communication system conforming to 3GPP EGPRS Release system by appropriately modifying 3GPP Technical Specification (TS) <NUM>, V7. <NUM> (May <NUM>), which is hereby incorporated by reference in its entirety. An example modification to 3GPP TS <NUM> to support the duplicate acknowledgment avoidance techniques described herein is to replace the existing second paragraph of section <NUM>. <NUM> with the following text:.

"If the RLC endpoint receiver is the mobile station, event-based FANR is enabled for this temporary block flow (TBF) and the mobile station has at least one assigned TBF in the uplink direction, the mobile station shall insert one PAN field in an EGPRS RLC/MAC block for data transfer transmitted during a given radio block period for that uplink TBF if the state of any element in the receive state array V(N) is UNREPORTED and would otherwise remain UNREPORTED if no event-based PAN was transmitted, taking into account any ACK/NACK information transmitted during the radio block period in response to a poll (either for a PAN, for an EGPRS PACKET DOWNLINK ACK/NACK message, or for an EGPRS PACKET DOWNLINK ACK/NACK TYPE <NUM> message). The mobile station may continue to insert PAN fields in subsequent EGPRS RLC/MAC data blocks sent in the same radio block period as long as there exists one or more elements in the receive state array V(N) whose state is UNREPORTED.

<FIG> is a block diagram of an example processing system <NUM> capable of implementing the apparatus and methods disclosed herein. The processing system <NUM> can correspond to, for example, a mobile station processing platform, a network element processing platform, a server, a personal computer, a personal digital assistant (PDA), an Internet appliance, a mobile phone, or any other type of computing device.

The system <NUM> of the instant example includes a processor <NUM> such as a general purpose programmable processor, an embedded processor, a microcontroller, etc. The processor <NUM> includes a local memory <NUM>, and executes coded instructions <NUM> present in the local memory <NUM> and/or in another memory device. The processor <NUM> may execute, among other things, machine readable instructions to implement the processes represented in <FIG> or <FIG>, or both. The processor <NUM> may be any type of processing unit, such as one or more microprocessors from the Intel® Centrino® family of microprocessors, the Intel® Pentium® family of microprocessors, the Intel® ltanium® family of microprocessors, and/or the Intel® XScale® family of processors, one or more microcontrollers from the ARM® family of microcontrollers, the PIC® family of microcontrollers, etc. Of course, other processors from other families are also appropriate.

The processor <NUM> is in communication with a main memory including a volatile memory <NUM> and a non-volatile memory <NUM> via a bus <NUM>. The volatile memory <NUM> may be implemented by Static Random Access Memory (SRAM), Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. Access to the main memory <NUM>, <NUM> is typically controlled by a memory controller (not shown).

The computer <NUM> also includes an interface circuit <NUM>. The interface circuit <NUM> may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a third generation input/output (3GIO) interface.

One or more input devices <NUM> are connected to the interface circuit <NUM>. The input device(s) <NUM> permit a user to enter data and commands into the processor <NUM>. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, an isopoint and/or a voice recognition system.

One or more output devices <NUM> are also connected to the interface circuit <NUM>. The output devices <NUM> can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT)), by a printer and/or by speakers. The interface circuit <NUM>, thus, typically includes a graphics driver card.

The interface circuit <NUM> also includes a communication device such as a modem or network interface card to facilitate exchange of data with external computers via a network (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system such as an EGPRS-compliant system, etc.).

The computer <NUM> also includes one or more mass storage devices <NUM> for storing software and data. Examples of such mass storage devices <NUM> include floppy disk drives, hard drive disks, compact disk drives and digital versatile disk (DVD) drives. The mass storage device <NUM> may store the receive state array V(N) <NUM>. Alternatively, the volatile memory <NUM> may store the receive state array V(N) <NUM>.

As an alternative to implementing the methods and/or apparatus described herein in a system such as the device of <FIG>, the methods and or apparatus described herein may be embedded in a structure such as a processor and/or an ASIC (application specific integrated circuit).

Claim 1:
A method for a mobile station (<NUM>) capable of sending event-based acknowledgment information, the method comprising:
classifying a first downlink data block as unreported;
determining whether a poll is received from a network (<NUM>) requesting the mobile station to send acknowledgment information during a period;
determining whether to send during the period event-based acknowledgment information for the first downlink data block classified as unreported based on whether the mobile station is also to send during the period polled acknowledgment information for the first downlink data block classified as unreported;
sending during the period the event-based acknowledgment information for the first downlink data block classified as unreported if the mobile station is not to send during the period any polled acknowledgment information for the first downlink data block classified as unreported; and
refraining from sending during the period the event-based acknowledgment information for the first downlink data block classified as unreported if the mobile station is to send during the period the polled acknowledgment information for the first downlink data block classified as unreported.