Embodiments described herein generally relate to the field of wireless communication systems and methods, and more particularly, to wireless communication systems and methods employing data transmission with Hybrid Automatic Repeat reQuest (HARQ).
In modern wireless communication systems, such as Long Term Evolution (LTE), two mechanisms typically cooperate to detect and correct errors due to channel impairments: Hybrid Automatic Repeat reQuest (HARQ) and Automatic Repeat reQuest (ARQ). The HARQ process is generally implemented at the Medium Access Control (MAC) layer to correct error packets in the physical (PHY) layer while the ARQ process is performed at the Radio Link Control (RLC) layer to correct any residual HARQ errors.
Once a packet is sent as part of a HARQ process implemented at a transmitter (e.g. User Equipment (UE) for uplink transmissions), the transmitter buffers the transmitted data and the HARQ process waits for acknowledgement information from the receiver (e.g. a base station). Receivers typically send acknowledgements (ACKs) or negative-acknowledgements (NACKs) to indicate whether or not a previous transmission was successfully decoded. When previous transmissions are not successfully decoded (e.g. a NACK is sent by the receiver), the transmitter resends the original transmission (or forward error correction (FEC) bits related thereto) via HARQ operation. The transmitter will retransmit the data until it receives an ACK from the receiver. Once an ACK is received, the transmission is emptied from the transmitter's transmit buffer and the HARQ process is made available for a new transport block. In protocols that do not provide reliable delivery of upper layer packets, the transmitter may move on to transmitting the next transport block even if the receiver has not successfully decoded the previous transport block. A secondary level of ARQ, which is provided in the RLC layer, is therefore required in the upper protocol layers to ensure that lost data bits are actually delivered.
The above-mentioned error detection and correction process is limited by the delay between transmission of a packet and receipt of an acknowledgement. In order to overcome this issue, multiple parallel stop-and-wait processes may be provided as part of the HARQ mechanism implemented at the transmitter. However, HARQ signaling overhead and memory requirements grow with the number of parallel processes. In addition, failed HARQ processes may prove difficult to recover without an increase in delay and reduction in throughput.
Therefore, there is a need for an improved communication system and method employing data transmission with HARQ.
In accordance with one aspect, a method is provided for requesting data retransmission. The method comprises, at a receiving node, determining that retransmission of a previously acknowledged data unit is required and sending a revocation of a previous receipt acknowledgement associated with the data unit to a transmitting node requesting the transmitting node to retransmit the data unit.
In some example embodiments, an explicit acknowledgement of the receipt of the data unit may have previously been sent to the transmitting node.
In some example embodiments, determining that retransmission of the data unit is required may comprise detecting a failure to decode the data unit.
In some example embodiments, determining that retransmission of the data unit is required may comprise detecting a failure to route the data unit upstream.
In some example embodiments, determining that retransmission of the data unit is required may comprise receiving from a control unit instructions to request retransmission of the data unit.
In accordance with another aspect, a receiving node is provided comprising at least one processor and a non-transitory memory for storing instructions for execution by the processor. The instructions, when executed, configure the receiving node to determine that retransmission of a previously acknowledged data unit is required and send a revocation of a previous receipt acknowledgement associated with the data unit to the transmitting node requesting the transmitting node to retransmit the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to send to the transmitting node, prior to determining that retransmission of the data unit is required, an explicit acknowledgement of the receipt of the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to detect a failure to decode the data unit and accordingly determine that retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to detect a failure to route the data unit upstream and accordingly determine that retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to receive, from a control unit, instructions to request retransmission of the data unit and accordingly determine that retransmission of the data unit is required.
In accordance with another aspect, a method is provided for data retransmission, the method comprising at a transmitting node, receiving a revocation of a previous transmission acknowledgement and retransmitting a data unit associated with the revoked transmission acknowledgement.
In some example embodiments, the method may further comprise, prior to receiving the revocation, receiving the transmission acknowledgement explicitly indicating successful receipt of the data unit at a receiving node.
In some example embodiments, the method may further comprise, prior to receiving the revocation, determining that an indication of unsuccessful receipt of the data unit has not been received within a predefined time period and inferring the transmission acknowledgement accordingly.
In some example embodiments, the method may further comprise, prior to receiving the revocation, storing in a memory copies of all data units transmitted within a predetermined time period, wherein retransmitting the data unit comprises retrieving a copy of the data unit from the memory and transmitting the retrieved copy of the data unit.
In some example embodiments, retransmitting the data unit may comprise assembling a new data unit containing the data unit associated with the revoked transmission acknowledgement and transmitting the new data unit.
In accordance with another aspect, a transmitting node is provided comprising at least one processor and a non-transitory memory for storing instructions for execution by the processor. The instructions, when executed, configure the transmitting node to receive a revocation of a previous transmission acknowledgement and retransmit a data unit associated with the revoked transmission acknowledgement.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to, prior to receiving the revocation, receive the transmission acknowledgement explicitly indicating successful receipt of the data unit at a receiving node.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to, prior to receiving the revocation, determine that an indication of unsuccessful receipt of the data unit has not been received within a predefined time period and infer the transmission acknowledgement accordingly.
In some example embodiments, the transmitting node may further comprise a retransmission buffer, and the instructions, when executed by the processor, may configure the transmitting node to store in the retransmission buffer, prior to receiving the revocation, copies of all data units transmitted within a predetermined time period, and to retransmit the data unit comprising retrieving a copy of the data unit from the retransmission buffer and transmitting the retrieved copy of the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to assemble a new data unit containing the previously-transmitted data unit associated with the revoked transmission acknowledgement and transmit the new data unit.
In accordance with another aspect, a method for requesting data retransmission is provided. The method comprises, at a receiving node, determining that an assessment as to whether retransmission of a data unit is required is inconclusive, and requesting the transmitting node to delay retransmission of the data unit until the receiving node ascertains whether retransmission of the data unit is required.
In some example embodiments, determining that the assessment as to whether retransmission of the data unit is required is inconclusive may comprise evaluating a parameter comprising at least one of a probability of successfully decoding the data unit, a noise level of the data unit, and a current condition of a channel used to route the data unit, comparing the parameter to a predetermined threshold value, and if the probability is not within the threshold value, identifying a likelihood that retransmission of the data unit is required.
In some example embodiments, the transmitting node may be requested to store the data unit in a memory and to proceed with data transmission assuming that a positive acknowledgement of receipt of the data unit is sent by the receiving node.
In some example embodiments, the method may further comprise establishing that retransmission of the data unit is required, and sending a revocation of the assumed positive acknowledgement to the transmitted node requesting the transmitting node to retransmit the data unit.
In some example embodiments, establishing that retransmission of the data unit is required may comprise detecting a failure to decode the data unit.
In some example embodiments, establishing that retransmission of the data unit is required may comprise detecting a failure to route the data unit upstream.
In some example embodiments, establishing that retransmission of the data unit is required may comprise receiving from a control unit instructions to request retransmission of the data unit.
In accordance with another aspect, a receiving node is provided comprising at least one processor and a non-transitory memory for storing instructions for execution by the processor. The instructions, when executed, configure the receiving node to determine that an assessment as to whether retransmission of a data unit is required is inconclusive, and request the transmitting node to delay retransmission of the data unit until the receiving node ascertains whether retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to evaluate a parameter comprising at least one of a probability of successfully decoding the data unit, a noise level of the data unit, and a current condition of a channel used to route the data unit, compare the parameter to a predetermined threshold value, and if the probability is not within the threshold value, identify a likelihood that retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to establish that retransmission of the data unit is required and send a negative acknowledgement of receipt of the data unit requesting the transmitting node to retransmit the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to establish that retransmission of the data unit is not required, and send a positive acknowledgement of receipt of the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to request the transmitting node to store a copy of the data unit in a memory and proceed with data transmission assuming that a positive acknowledgement of receipt of the data unit is sent by the receiving node.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to establish that retransmission of the data unit is required, and send a revocation of the assumed positive acknowledgement to the transmitting node requesting the transmitting node to retransmit the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to detect a failure to decode the data unit and accordingly establish that retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to detect a failure to route the data unit upstream and accordingly establish that retransmission of the data unit is required.
In some example embodiments, the instructions, when executed by the processor, may configure the receiving node to receive from a control unit instructions to request retransmission of the data unit and accordingly establish that retransmission of the data unit is required.
In accordance with another aspect, a method for data retransmission is provided. The method comprises, at a transmitting node, receiving a request for the transmitting node to delay retransmission of a data unit until a receiving node ascertains whether retransmission of the data unit is required; and delaying retransmission of the data unit accordingly.
In some example embodiments, the method may further comprise receiving from the receiving node a negative acknowledgement of receipt of the data unit and retransmitting the data unit accordingly.
In some example embodiments, the method may further comprise storing a copy of the data unit in a memory in response to receiving the request and removing the copy of the data unit from the memory upon receiving from the receiving node a negative acknowledgement of receipt of the data unit.
In some example embodiments, the method may further comprise, in response to receiving the request, storing a copy of the data unit in a memory and proceeding with data transmission assuming that a positive acknowledgement of receipt of the data unit is sent by the receiving node.
In some example embodiments, the method may further comprise receiving a revocation of the assumed positive acknowledgement and retransmitting the data unit accordingly.
In some example embodiments, retransmitting the data unit may comprise retrieving the copy of the data unit from the memory and transmitting the retrieved copy of the data unit.
In some example embodiments, retransmitting the data unit may comprise retrieving the copy of the data unit from the memory, assembling a new data unit containing the retrieved copy of the data unit, and transmitting the new data unit.
In some example embodiments, the method may further comprise, in response to receiving the request, deactivating an HARQ process through which the data unit was previously transmitted.
In some example embodiments, the method may further comprise, in response to receiving the revocation, reactivating the HARQ process, retrieving the copy of the data unit from the memory, and retransmitting the retrieved copy of the data unit through the reactivated HARQ process.
In accordance with another aspect, a transmitting node is provided comprising at least one processor and a non-transitory memory for storing instructions for execution by the processor. The instructions, when executed, configure the transmitting node to receive a request for the transmitting node to delay retransmission of a previously-transmitted data unit until a receiving node ascertains whether retransmission of the data unit is required, and delay retransmission of the data unit accordingly.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to receive from the receiving node a negative acknowledgement of receipt of the data unit and retransmit the data unit accordingly.
In some example embodiments, the transmitting node may further comprise a retransmission buffer and the instructions, when executed by the processor, may configure the transmitting node to store a copy of the data unit in the retransmission buffer in response to receiving the request and remove the copy of the data unit from the retransmission buffer upon receiving from the receiving node a negative acknowledgement of receipt of the data unit.
In some example embodiments, the transmitting node may further comprise a retransmission buffer and the instructions, when executed by the processor, may configure the transmitting node to, in response to receiving the request, store a copy of the data unit in the retransmission buffer and proceed with data transmission assuming that a positive acknowledgement of receipt of the data unit is sent by the receiving node.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to receive a revocation of the assumed positive acknowledgement and retransmitting the data unit accordingly.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to retrieve the copy of the data unit from the retransmission buffer and transmit the retrieved copy of the data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to retrieve the copy of the data unit from the retransmission buffer, assemble a new data unit containing the retrieved copy of the data unit, and transmit the new data unit.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to, in response to receiving the request, deactivate an HARQ process through which the data unit was previously transmitted.
In some example embodiments, the instructions, when executed by the processor, may configure the transmitting node to, in response to receiving the revocation, reactivate the HARQ process, retrieve the copy of the data unit from the retransmission buffer, and retransmit the retrieved copy of the data unit through the reactivated HARQ process.
Many further features and combinations thereof concerning the present improvements will appear to those skilled in the art following a reading of the instant disclosure.
In the figures,
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
Referring now to
The first network device 102 may be a User Equipment (UE) that represents any one of a plurality of suitable end user devices, including, but not limited to, a wireless transmit/receive unit, mobile station, fixed or mobile subscriber unit, laptop, personal computer (PC), pager, personal digital assistant (PDA), tablet, touchpad, e-reader, smart phone, cellular phone, wireless sensor, consumer electronics device, or the like, configured to communicate with the second network devices 104A and 104B. The first network device 102 may have a network interface in order to communicate with other components, to access and connect to network resources, to serve an application and other applications, and perform other computing applications by connecting to a network (or multiple networks), capable of carrying data. It should be understood that although a single first network device 102 is illustrated for sake of simplicity, the system 100 may comprise a plurality of first network devices as in 102.
The second network devices 104A, 104B may be any type of devices configured to wirelessly interface with the first network device 102 to facilitate access to one or more communication networks (not shown), such as a Public Switched Telephone Network, or a data network such as the Internet. Each second network device 104A, 104B is a base station (BS) that may include (or be) one or more network devices, such as a base transceiver station (BTS), a Node-B (NodeB), an evolved NodeB (eNodeB), a Home NodeB, a Home eNodeB, a site controller, an access point (AP), or a wireless router. While the second network devices 104A, 104B are each depicted as a single element, it should be understood that the second network devices 104A, 104B may include any number of interconnected base stations and/or network elements.
The first network device 102 and the second network devices 104A, 104B may communicate over an air interface (not shown), which may be any suitable wireless communication link, including, but not limited, to radio frequency (RF), microwave, and the like. The air interface may be established using any suitable radio access technology and the communications system 100 may be a multiple access system employing one or more channel access schemes, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-Carrier Frequency Division Multiple Access (SC-FDMA), and the like. Accordingly, technologies including, but not limited to the following may be implemented by the first network device 102 and the second network devices 104A, 104B: wideband CDMA (WCDMA), High-Speed Packet Access (HSPA), Evolved HSPA (HSPA+), High-Speed Downlink Packet Access (HSDPA), High-Speed Uplink Packet Access (HSUPA), Long Term Evolution (LTE), LTE-Advanced (LTE-A), Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), Evolved UMTS Terrestrial Radio Access (E-UTRA), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 IX, CDMA2000 EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile communications (GSM), Enhanced Data rates for GSM Evolution (EDGE), GSM EDGE (GERAN), and the like.
Each one of the first network device 102 and the second network devices 104A, 104B may include at least one processor (not shown) connected to a memory (not shown). The processor may be connected to a transceiver (not shown) configured to transmit and receive data frames through an antenna (not shown). The transceiver may include any suitable hardware structure for generating signals for wireless transmission and/or processing signals received wirelessly. A Coder-Decoder (CODEC) (not shown) may also be provided and configured to encode and decode a digital data frame. The CODEC may be implemented by software programs, hardware chips (including digital signal processor and buffers), or a combination of hardware and software. The CODEC may implement coding schemes for Forward Error Correction (FEC), channel security, or other purposes. In an embodiment, the CODEC may be used at any one of the first network device 102 and the second network devices 104A, 104B to add error correction to a frame received from upper layers.
The memory accessible by the processor may receive and store data. The memory may be a main memory, such as a high speed Random Access Memory (RAM), or an auxiliary storage unit, such as a hard disk, flash memory, or a magnetic tape drive. The memory may be any other type of memory, such as a Read-Only Memory (ROM), Erasable Programmable Read-Only Memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), Ferroelectric RAM (FRAM), or optical storage media such as a videodisc and a compact disc. In an embodiment, the memory may be used to buffer data. The processor may access the memory to retrieve data. The processor may be any device that can perform operations on data. Examples are a central processing unit (CPU), a front-end processor, a microprocessor, a field programmable gate array (FPGA), a reconfigurable processor, and a network processor. Applications may be running on the processor and configured to perform various tasks. An output may be provided to the first network device 102, e.g. via a suitable output device, including but not limited to a display device, a touchscreen, or the like.
As can be seen in
In the illustrated example, each RLC layer 2081 or 2082 comprises an RLC entity (not shown) that performs the RLC layer functions, e.g. concatenation, segmentation, re-segmentation, duplicate detection, in-sequence delivery of units of data, recovery, and data unit discarding. In particular, RLC entities perform Automatic Repeat reQuest (ARQ) functions, whereby, when a missing unit of data is detected, retransmission by the ARQ function is used to guarantee lossless transmission. The ARQ functions of each RLC layer 2081 or 2082 are performed to correct any residual errors following Hybrid Automatic Repeat reQuest (HARQ) processes implemented at the MAC layers 2101, 2102 to correct error packets in the PHY layers 2121, 2122.
It should be understood that, although the term “data unit” or “packet” is often used in higher protocol layers to refer to data bits while the term “transport block” (TB) is sometimes used in lower layers, the terms frame, packet, transport block, and data unit are used interchangeably herein to designate data bits which are delimited with a clear start and end in the physical layer or higher layers.
Referring now to
The transmitter 202 receives data units (referred to as service data units (SDUs)) from upper layers (e.g. PDCP or RRC). The received data consists of new data or retransmitted data. The segmentation/concatenation module 302 may then segment and concatenate the SDUs into Packet Data Units (PDUs). The multiplexer 308 performs multiplexing between the segmented data received from the segmentation/concatenation module 302 and data retrieved from the retransmission buffer 306. The transmission buffer 310 then stores the multiplexer's output until a transmission opportunity is indicated by a MAC scheduler (not shown). One new PDU is typically permitted per transmission opportunity. A copy of the transmission buffer 310 may further be stored in the retransmission buffer 306 for possible retransmission. Data from the transmission buffer 310 is then sent to the transmitter HARQ module 312 for transmission to the receiver 204 over the air.
Each HARQ module 312, 320 handles HARQ functionality and may run multiple parallel HARQ processes. At the transmitter HARQ module 312, packets are assigned sequential transmission sequence numbers and are sent towards the receiver 204. At the receiver HARQ module 320, the data transmissions are received and decoded to recover each transmitted packet. The receiver HARQ module 320 then indicates to the receiver retransmission management module 318a whether the data was received properly and generates acknowledgement feedback signals (ACK/NACK) accordingly. Acknowledgements may be sent to the transmitter 202 periodically or upon request by the transmitter 202. It should be understood that the transmitter HARQ module 312 may also indicate to the transmitter retransmission management module 304 whether the data was transmitted properly after the data exited the transmission buffer 310. The receiver HARQ module 320 then provides the recovered packets to higher layers in the proper order. Because HARQ operation may cause out-of-sequence reception of packets due to multiple HARQ processes running in parallel, the reception buffer 316 may implement a reordering function to reorder the received packets and guarantee in-order delivery. The reassembly module 314 then reassembles upper layer data units (e.g. SDUs) if receipt of the PDUs completes assembly of the upper layer data units. Assembled data units are then passed to the upper layer (e.g. PDCP and RRC).
If a NACK is sent to the transmitter 202 (or no ACK is received before a predetermined time period elapses), the transmitter 202 concludes to unsuccessful transmission of the corresponding packet and retransmits the packet through a HARQ process implemented by the transmitter HARQ module 312, provided the number of allowed retransmissions for the packet is below a predetermined threshold. If no NACK is sent to the transmitter 202, the transmitter HARQ module 312 discards the packet, which is handled by an ARQ process performed at the RLC layer (reference 2041 in
However, a drawback of the above-mentioned ACK/NACK mechanism is its reliance on synchronization between two elements, namely, a transmitter (e.g. UE 102 for uplink) and a receiver (e.g. BS 104A for uplink). Those skilled in the art will appreciate that a UE is the receiver for the downlink case. Although various solutions have been proposed to overcome this issue, these solutions have disadvantages. One such solution is to increase the number of HARQ processes performed at the MAC layer. However, this would increase the signaling overhead used to identify HARQ processes. Another solution may be to use a large RLC transmission window, meaning that the ARQ process would take longer. This would, however, decrease ARQ reaction time, which is undesirable because it makes it difficult to achieve the high data rates of the Transmission Control Protocol (TCP). Also, HARQ gains would be independent of ARQ windows, unless the amount of resources/transmission used for HARQ is reduced as well. Another option is to indicate to the RLC entity when to retransmit lower layer packets, but this approach would require a new type of RLC message.
In order to overcome these issues, and as will be discussed further below, it is proposed herein to recover HARQ processes, e.g. previously-acknowledged HARQ processes, and related data. This may be achieved by introducing new HARQ feedback information values or signals, referred to herein as ALMOST-ACK and RENACK. The ALMOST-ACK and RENACK feedbacks may be sent to the transmitter retransmission management module 304 by at least one of the receiver retransmission management modules 318a and 318b. The RENACK feedback is used to indicate to the transmitter 202 that previously-transmitted data, for which a transmission acknowledgement was previously received (or inferred by the transmitter), is to be retransmitted. In one embodiment, receipt of the transmission acknowledgement causes the transmitter to make the previously-transmitted data inaccessible to a scheduler (e.g. through a given HARQ process) while receipt of the RENACK feedback causes the transmitter to make the previously-transmitted data accessible to the scheduler for retransmission.
The ALMOST-ACK feedback is used to indicate to the transmitter that the receiver has not fully determined whether retransmission is required and that retransmission of the previously-transmitted data is to be delayed until it is established that retransmission is required. In some embodiments, the ALMOST-ACK feedback indicates to the transmitter that the upper layer (e.g. RLC) processes should carry on as if the data had been acknowledged but the previously-transmitted data should remain buffered, e.g. in case a future retransmission is requested. In some embodiments, the retransmission may be requested by RENACK. Receipt of the ALMOST-ACK feedback may cause the transmitter to render the previously-transmitted data inaccessible to a scheduler through the given HARQ process. The RENACK feedback would then cause the transmitter to make the previously-transmitted data accessible to the scheduler. The data to be retransmitted may be made inaccessible to the scheduler because the data was previously positively acknowledged (e.g. through an ACK). Still, it should be understood that under various situations, messages may cause data to become inaccessible to the scheduler. For instance, the data may become inaccessible to the scheduler (and accordingly may require subsequent retransmission using the RENACK) as a result of a handover, a transition into idle mode, or a control channel being received for scheduling grants (using the given HARQ process). Other control messages may cause the data to become inaccessible to the scheduler.
As will be discussed further below, the RENACK feedback information value may be used alone or in combination with the ALMOST-ACK feedback information value. For example, RENACK may be used without ALMOST-ACK in cases where RENACK feedback is not frequent, to enhance throughput by making assumptions as to the detection success rate at a higher aggregation point. The ALMOST-ACK feedback information value may also be used alone or in combination with the RENACK feedback information value. For example, ALMOST-ACK may be used without RENACK in cases where a receiver wishes to delay retransmission of a previously-transmitted data unit that was interpreted by the transmitter as unsuccessfully transmitted (e.g. due to the receiver failing to send a receipt acknowledgement before expiry of a timeout).
As illustrated in
For example, in one embodiment, only the first retransmission management module 318a is provided at the receiver 204 and is used to transmit ALMOST-ACK and RENACK feedback signals to the transmitter 202. This may be the case when the communication system (reference 100 in
In another embodiment, only the second retransmission management module 318b is provided and used to transmit ALMOST-ACK and RENACK feedback signals to the transmitter 202. This may be the case, for example, in joint processing embodiments where there is coordination between multiple entities (e.g. base stations as in 104A and 104B in
In other embodiments, both receiver retransmission management modules 318a and 318b may be provided. For example, the receiver 204 may comprise the first retransmission management module 318a and the second retransmission management module 318b may also be provided at a higher level. As another example, the second retransmission management module 318b may be provided in a different node of the network, the node receiving data plane from the receiver 204. The receiver 204 may determine (e.g. using the first retransmission management module 318a) that it needs to request retransmission because it failed to decode the data received from the transmitter 202. However, the RENACK may be requested at the higher level, e.g. by the second retransmission management module 318b. The second retransmission management module 318b may then communicate with the first retransmission management module 318a, asking the first retransmission management module 318a to send the RENACK signal to the transmitter 202. Such an embodiment may occur, for example, in the case where the RLC functionalities are not only provided in a single receiver as in 204 but also at a gateway (not shown) aggregating data from multiple receivers. One example is multipoint reception. In multiple reception, every receiver attempts to decode and forward data but a central entity (e.g. a central RLC entity) aggregates the data. The central entity might ask to recover a PDU from an access point as well as have the access point send a RENACK signal if the access point also failed to decode the data.
It should be understood that other embodiments may apply.
Referring to
It should be understood that the manner in which the transmitter determines (at step 404) that data transmission was successful depends on the communication protocol in place between the transmitter and the receiver. Referring to
Referring to
Referring to
Receipt of the ALMOST-ACK signal indicates to the transmitter that the previously-acknowledged data and the corresponding HARQ process may have to be recovered (e.g. upon the transmitter receiving the RENACK signal) and that the data and corresponding HARQ process should therefore not be discarded. As a result, in one embodiment illustrated at step 804, the transmitter deactivates the given HARQ process, thereby no longer allowing the transmitter to transmit in this HARQ process. The data is therefore rendered inaccessible to a scheduler through the HARQ process. Other HARQ processes may continue transmitting the same stream of data as the deactivated HARQ process. The deactivation may be effected by the transmitter retransmission management module (reference 304 in
At step 806, the transmitter may further store in memory (e.g. in the retransmission buffer) data related to the deactivated HARQ process, when an ALMOST-ACK is received for the data. In some embodiments, if, following the ALMOST-ACK signal (e.g. after a given time interval elapses), the transmitter receives no RENACK signal, the transmitter may discard the retransmission buffer. This may occur when the buffer size is limited. In other embodiments this may be implicit from the signaling used. For instance, if a message to reactivate a deactivated HARQ process only has a fixed number of five (5) bits, then at most 32 (2̂5) additional HARQ processes need to be stored. When a deactivated HARQ process can no longer be referenced by the signaling, the deactivated HARQ process may be flushed from memory. It should therefore be understood that the process of discarding the retransmission buffer depends on implementation. After the transmitter deactivates the given HARQ process at step 804 and buffers the data, the transmitter may use a new HARQ process to carry on with data transmission (e.g. as if a positive acknowledgement had been received).
Referring now to
If the transmitter determined at step 902 that no RENACK feedback signal is received from the receiver, the transmitter accordingly discards the data from memory (e.g. from the retransmission buffer) at step 910. The transmitter then updates the received sequence number(s) at step 912 to advance the sliding window and allow transmission of new packets.
Referring to
Referring to
It should be understood that each one of the ALMOST-ACK and RENACK signals may be used alone or in combination, as discussed above. Therefore, the method 1200 of
The ALMOST-ACK signal may be sent at the receiver by the retransmission management module (reference 318a or 318b in
As discussed above, by sending the ALMOST-ACK signal, the receiver informs the transmitter that the receiver has not fully determined whether previously-transmitted data can be routed to its ultimate destination and, accordingly, whether retransmission of the data is required. For example, the receiver has not fully determined whether it can decode the data. In other cases, the receiver has not fully determined whether network issues (e.g. backhaul network failure) can prevent routing of the data. By sending the ALMOST-ACK signal, the receiver can prevent the transmitter from resending the given data unit until the receiver has determined whether retransmission is needed. In some embodiments, receipt of the ALMOST-ACK signal may indicate to the transmitter that the transmitter may receive from the receiver a request for retransmission (in the form of a RENACK signal) of previously-acknowledged data.
It should be understood that, depending on the implementation, various configurations may apply for signaling the RENACK signal. The RENACK signal may be sent at the receiver by the retransmission management module 318a or 318b, which may be implemented at the RLC layer. The RENACK signal may also be signaled through a special control message sent at any time (within reasonable delays) current RRC signaling occurs. The RENACK signal may also be sent through lower layers (e.g. at the MAC layer by the receiver HARQ module 320), where the timing of the RENACK signal would depend on lower layer messages. It should be understood that the RENACK signal may be sent through higher layer (e.g. RRC) messages.
In some embodiments, the receiver sends the RENACK signal periodically until the HARQ process, having sent the previously-acknowledged data, is restored and the previously-acknowledged data is received at its destination. In other embodiments, the receiver may only send the RENACK signal once. Other embodiments may apply.
The receiver may completely reactivate a given HARQ process through RENACK. Alternatively, the receiver may send the RENACK signal requesting retransmission for a specific RLC sequence number, which would be inferred from decoded data before and after that sequence number. The transmitter would then, upon receiving the RENACK signal, choose the HARQ process that transmitted the given RLC sequence number. Alternatively, temporal indication may be provided in the RENACK signal (e.g. indicating that data transmitted a given number of transmission time intervals (TTIs) ago should be retransmitted). Temporal indication may also be provided in a specified frame number. Also, the RENACK signal may refer to a sequence of HARQ processes, e.g. indicate that data transmitted a given number of successful HARQ processes ago should be retransmitted. Other embodiments may apply.
Moreover, in some cases, such as when the receiver makes assumptions as to whether data can be decoded, both the RENACK signal and the ALMOST-ACK signal may be generated by introducing one or more extra bits into the structure of data packets. As discussed above, higher layer (e.g. RRC) signaling may be used for RENACK, such that the RENACK signal may be routed towards the transmitter in the regular data channel (rather than in a dedicated channel). In other cases, every ACK signal may be considered as an ALMOST-ACK until a second ACK (or “Full” ACK) is subsequently received for the data at hand. The second ACK would serve as a confirmation that the data has indeed been received correctly. Alternatively, every ACK could be considered as an ALMOST-ACK until a timeout (having a predetermined value) expires.
Referring to
For example, in the case of soft combining by a central processor provided at the receiver, the receiver may assess the quality (e.g. noise level) of the received signal and compare the signal quality to a pre-determined threshold. If it is determined that the signal quality is not within the threshold (e.g. the noise level exceeds the noise level threshold value), the ALMOST-ACK signal is generated to indicate that the data may ultimately need to be resent. For example, the receiver may determine on the basis of the comparison that the received signal is noisy and that additional processing time is required to decode the signal.
Alternatively, the receiver may re-evaluate a previously estimated channel and determine that the channel conditions are worse than expected, e.g. the channel has changed and/or was poorly estimated. The receiver would accordingly send an ALMOST-ACK signal to the transmitter.
In another example, the receiver may determine that the probability that it will fully decode the data previously-transmitted by the transmitter is sufficiently high (e.g. above a predetermined threshold) but it still needs to have a recovery process in place in case decoding fails. In this case, by sending an ALMOST-ACK to the transmitter, the receiver may (implicitly) acknowledge the data but cause the transmitter to retain the data in memory in case the receiver is not able to fully decode the data. In one embodiment, receipt of the ALMOST-ACK causes the transmitter to keep a copy of the HARQ process associated with the previously-transmitted data in a separate pool of memory. If the receiver ends up being unable to decode the data, the receiver would then send a RENACK signal to the transmitter to cause retransmission of the previously-acknowledged data.
In another example, the receiver may determine that the backhaul network might fail when pushing data upstream and may accordingly send an ALMOST-ACK signal to the transmitter.
In other embodiments, such as when joint reception is used, the receiver may determine that it will not be able to decode if a neighboring node does not send the data to the receiver (e.g. before a given time period elapses). The receiver may accordingly send an ALMOST-ACK signal to the transmitter, followed by a RENACK signal if the neighboring node ultimately fails to transmit the data and decoding fails.
In other embodiments, the transmitting node may, after sending a data unit to the receiving node, wait for a receipt acknowledgement (e.g. ACK) from the receiving node. If no such receipt acknowledgement is received after a predetermined time period has elapsed, the transmitting node may assume that the data unit was not properly received and conclude that the transmission was unsuccessful. The transmitting node may therefore prepare for retransmission. However, the receiving node may determine that it needs to delay retransmission of the data (e.g. to compute additional information). The receiving node may therefore send an ALMOST-ACK signal to the transmitting node to prevent the transmitting node from retransmitting the data until a given time period has elapsed (e.g. until the receiving node is done computing the additional information).
It should be understood that these examples are illustrative only and that various situations may result in the receiver sending ALMOST-ACK signals.
Referring now to
In one example, RENACK signals may be sent in case of node failure, as detected at step 1402. In another example, data may be sent by a UE and received at base stations. However, the base stations may not be able to fully decode the received data. The base stations may therefore positively acknowledge the data (by the HARQ entity sending an ACK signal accordingly) yet pass the received data to upper protocol layers for further processing. If, after further processing, the base stations are still unable to decode the data, the base stations may send a RENACK feedback signal to the UE to indicate that the previously-acknowledged data is to be retransmitted. As a result, the UE would place the data in its transmission buffer for retransmission to the base stations, which would then be able continue to decode the data.
In another example, the receiver may detect (step 1404) a failure to route the data upstream. For example, the receiver (e.g. base station) may properly receive a data unit (e.g. a PDU), and accordingly send an ACK signal to the transmitter. However, the receiver may receive information from a backhaul network indicating that the data unit was dropped, for example, due to the multi-drop nature of the backhaul. The receiver would then send a RENACK signal to the transmitter to cause retransmission of the previously-acknowledged data unit. The RENACK signal may be sent to the transmitter without the receiver having to wait for information to be received from the TCP layer. Therefore, it is possible for the receiver to recover from the failure more quickly, e.g. before a TCP recovery process is even initiated.
In yet another example, a first base station (e.g. base station A) may properly receive a data packet and accordingly send an ACK signal to the transmitter. However, base station A may be unable to push the data upstream due to backhaul limitations. If base station B decoded the packet properly but is also unable to push data upstream, both base stations A and B may request retransmission of the packet so the packet can be received at a third point (e.g. base station C). In this case, base stations A and/or B (and/or possibly base station C) would send a RENACK signal to the transmitter.
In another example, the receiver may be configured to expect an ACK signal from a higher level entity, e.g. a virtual RLC aggregator. If the ACK is not received (or a NACK is received), as detected at step 1406, the receiver may then send a RENACK signal to the transmitter.
Alternatively, the receiver may send a RENACK signal according to instructions received from the higher level entity (step 1408).
It should be understood that the examples above are illustrative only and that other situations may result in the receiver outputting RENACK signals. Still, the receiver, in most cases, determines at step 1206 that data is to be resent and, accordingly, requests retransmission of the data by sending a RENACK signal to the transmitter. In one embodiment, the RENACK signal is typically sent if 1) the receiver determines that an acknowledgement was previously sent for the data (or inferred at the transmitter); and 2) the data was unsuccessfully decoded after one or more internal decoding processes have been exhausted or a time interval has elapsed.
Referring to
In the example of
The receiver then positively acknowledges the second packet and the transmitter accordingly sends a third packet (labelled with the numeral “3”). The transmitter also stores a copy of the third packet in the retransmission buffer 306. Shortly thereafter, the transmitter receives (from the receiver) a RENACK signal associated with the first packet. As discussed above, the RENACK signal may be received after a short delay and the timing of the RENACK signaling may depend on configuration requirements. In response to receiving the RENACK signal, the transmitter retrieves the copy of the first packet from the retransmission buffer 306 and retransmits the data to the receiver. If the transmitter was already preparing another data transmission when the RENACK signal is received, the transmitter may send this next transmission first before reacting to the received RENACK signal. Once the receiver positively acknowledges receipt of the re-transmitted first packet, the transmitter removes the first packet from the retransmission buffer 306 (if the buffer window is exceeded). The process may then continue, with a fourth packet (labelled with the numeral “4”) being transmitted to the receiver.
Using the data retransmission methods and systems described above, it is possible to recover failed (e.g. previously-acknowledged) HARQ processes using the RENACK feedback signal. As a result, alternate routes may be used to forward data in multipoint reception. This, in turn, implies using alternate receivers. As a result, delay is decreased and throughput increased. Also, using the ALMOST-ACK feedback signal removes the need for waiting for hard detection of a given transport block to be made and for an ACK signal to be transmitted from an aggregation point (e.g. a final detection point provided above the base station(s)) back to the UE. This in turn prevents an increase in the number of parallel HARQ processes required for data transmission in addition to reducing signaling overhead and memory requirements.
The above description is meant to be exemplary only, and one skilled in the relevant arts will recognize that changes may be made to the embodiments described without departing from the scope of the invention disclosed. For example, the blocks and/or operations in the flowcharts and drawings described herein are for purposes of example only. There may be many variations to these blocks and/or operations without departing from the teachings of the present disclosure. For instance, the blocks may be performed in a differing order, or blocks may be added, deleted, or modified.
While illustrated in the block diagrams as groups of discrete components communicating with each other via distinct data signal connections, it will be understood by those skilled in the art that the present embodiments are provided by a combination of hardware and software components, with some components being implemented by a given function or operation of a hardware or software system, and many of the data paths illustrated being implemented by data communication within a computer application or operating system. Based on such understandings, the technical solution of the present invention may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be a compact disk read-only memory (CD-ROM), USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present invention. The structure illustrated is thus provided for efficiency of teaching the present embodiment. The present disclosure may be embodied in other specific forms without departing from the subject matter of the claims.
Also, one skilled in the relevant arts will appreciate that while the systems, methods and computer readable mediums disclosed and shown herein may comprise a specific number of elements/components, the systems, methods and computer readable mediums may be modified to include additional or fewer of such elements/components. The present disclosure is also intended to cover and embrace all suitable changes in technology. Modifications which fall within the scope of the present invention will be apparent to those skilled in the art, and, in light of a review of this disclosure, such modifications are intended to fall within the appended claims.