The present disclosure relates generally to communications systems, and more particularly, to a device configured to request an uplink grant based on buffer occupancy.
Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcasts. Typical wireless communication systems may employ multiple-access technologies capable of supporting communication with multiple users by sharing available system resources. Examples of such multiple-access technologies include code division multiple access (CDMA) systems, time division multiple access (TDMA) systems, frequency division multiple access (FDMA) systems, orthogonal frequency division multiple access (OFDMA) systems, single-carrier frequency division multiple access (SC-FDMA) systems, and time division synchronous code division multiple access (TD-SCDMA) systems.
These multiple access technologies have been adopted in various telecommunication standards to provide a common protocol that enables different wireless devices to communicate on a municipal, national, regional, and even global level. An example telecommunication standard is 5G New Radio (NR). 5G NR is part of a continuous mobile broadband evolution promulgated by Third Generation Partnership Project (3GPP) to meet new requirements associated with latency, reliability, security, scalability (e.g., with Internet of Things (IoT)), and other requirements. 5G NR includes services associated with enhanced mobile broadband (eMBB), massive machine type communications (mMTC), and ultra reliable low latency communications (URLLC). Some aspects of 5G NR may be based on the 4G Long Term Evolution (LTE) standard. There exists a need for further improvements in 5G NR technology. These improvements may also be applicable to other multi-access technologies and the telecommunication standards that employ these technologies.
The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.
In some aspects, a user equipment (UE) may request an uplink grant and receive that uplink grant in order to send data (e.g., to a base station). The UE may send the uplink grant request based on data (e.g., packet bytes) available in a buffer of a physical (PHY) layer, such as a buffer of a modem. For example, the UE may send the uplink grant request when the modem buffer reaches an occupancy level that satisfies (e.g., meets or exceeds) a maximum threshold.
When the modem buffer is consistently relatively high (e.g., approaching the maximum threshold), the UE may receive an uplink grant that is commensurate with the buffer occupancy, and this uplink grant may be approximately equal to the maximum uplink grant with which the UE may be scheduled. When the UE maintains this relatively high buffer occupancy, the UE may correspondingly maintain relatively highly occupied buffers at other layers of the UE (e.g., an application layer). Therefore, the UE may consistently have outstanding data that is queued in the UE to be transmitted over a network.
When the UE maintains relatively highly occupied buffers, the memory consumption at the UE may commensurately increase. As an effect of such memory consumption, the UE may experience cache inefficiencies (e.g., at one or more processors) and larger fluctuations in flow control as highly occupied buffers often take longer to be emptied and filled again. Further, the UE may drop packets, which then may be retransmitted, when the one or more buffers are highly occupied and the UE is unable to empty the one or more buffers at a sufficient rate.
In view of the foregoing, a need exists for an improved approach to sending uplink data that is buffered by a UE. In such an improved approach, the occupancy of buffer(s) of the UE may be reduced and/or the uplink data transmission by the UE may occur at a relatively consistent rate (e.g., when an application of the UE generates a large amount of data to be transmitted). Accordingly, memory efficiency at the UE may be improved and/or the number of dropped packets may be reduced.
In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus may determine, at a first layer of a protocol stack, a first data size associated with a second layer of the protocol stack. The first data size may exceed a first queue threshold associated with the first layer. The apparatus may send an uplink grant request over a wireless network, and the uplink grant request may be based on the first data size. The apparatus may receive, over the wireless network, at least two uplink grants based on the uplink grant request. The apparatus may send, over the wireless network, first data in a first transmission time interval (TTI) based on one of the at least two uplink grants. The apparatus may send, over the wireless network, second data in a second TTI based on another of the at least two uplink grants.
In one aspect, each of the at least two uplink grants indicates a peak transport block (TB) size per TTI available for uplink communication by the apparatus. In one aspect, the first data and the second data are of equal size. In one aspect, the uplink grant request indicates a sum of at least the first data size, a second data size associated with a first queue of the first layer, and a third data size associated with a second queue of the first layer.
In one aspect, the apparatus may further send, from the first layer to the second layer, a first flow control (FC) message indicating a requested data size, and the requested data size may be based on the first queue threshold. The apparatus may further receive, at the first layer from the second layer based on the first FC message, a second FC message indicating the first data size. In one aspect, the apparatus may further receive, at the first layer from the second layer based on the first FC message, at least a portion of the first data or the second data, and the at least the portion of the first data or the second data may have a size equal to the requested data size. In one aspect, the requested data size is further based on a variable associated with packet transmission from the second layer to the first layer.
In one aspect, the apparatus may further determine a time between sending the first FC message and receiving the at least the portion of the first data or the second data. The apparatus may further determine the variable associated with packet transmission from the second layer to the first layer based on the determined time. In one aspect, the first layer may include at least one of a PHY layer or a medium access control (MAC) layer, and the second layer may include an application layer.
To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
Several aspects of telecommunications systems will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
By way of example, an element, or any portion of an element, or any combination of elements may be implemented as a “processing system” that includes one or more processors. Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, systems on a chip (SoC), baseband processors, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
Accordingly, in one or more example aspects, the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
The base stations 102 configured for 4G LTE (collectively referred to as Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN)) may interface with the EPC 160 through backhaul links 132 (e.g., S1 interface). The base stations 102 configured for 5G NR (collectively referred to as Next Generation RAN (NG-RAN)) may interface with core network 190 through backhaul links 184. In addition to other functions, the base stations 102 may perform one or more of the following functions: transfer of user data, radio channel ciphering and deciphering, integrity protection, header compression, mobility control functions (e.g., handover, dual connectivity), inter-cell interference coordination, connection setup and release, load balancing, distribution for non-access stratum (NAS) messages, NAS node selection, synchronization, radio access network (RAN) sharing, multimedia broadcast multicast service (MBMS), subscriber and equipment trace, RAN information management (RIM), paging, positioning, and delivery of warning messages. The base stations 102 may communicate directly or indirectly (e.g., through the EPC 160 or core network 190) with each other over backhaul links 134 (e.g., X2 interface). The backhaul links 134 may be wired or wireless.
The base stations 102 may wirelessly communicate with the UEs 104. Each of the base stations 102 may provide communication coverage for a respective geographic coverage area 110. There may be overlapping geographic coverage areas 110. For example, the small cell 102′ may have a coverage area 110′ that overlaps the coverage area 110 of one or more macro base stations 102. A network that includes both small cell and macrocells may be known as a heterogeneous network. A heterogeneous network may also include Home Evolved Node Bs (eNBs) (HeNBs), which may provide service to a restricted group known as a closed subscriber group (CSG). The communication links 120 between the base stations 102 and the UEs 104 may include uplink (UL) (also referred to as reverse link) transmissions from a UE 104 to a base station 102 and/or downlink (DL) (also referred to as forward link) transmissions from a base station 102 to a UE 104. The communication links 120 may use multiple-input and multiple-output (MIMO) antenna technology, including spatial multiplexing, beamforming, and/or transmit diversity. The communication links may be through one or more carriers. The base stations 102/UEs 104 may use spectrum up to Y MHz (e.g., 5, 10, 15, 20, 100, 400, etc. MHz) bandwidth per carrier allocated in a carrier aggregation of up to a total of Yx MHz (x component carriers) used for transmission in each direction. The carriers may or may not be adjacent to each other. Allocation of carriers may be asymmetric with respect to DL and UL (e.g., more or fewer carriers may be allocated for DL than for UL). The component carriers may include a primary component carrier and one or more secondary component carriers. A primary component carrier may be referred to as a primary cell (PCell) and a secondary component carrier may be referred to as a secondary cell (SCell).
Certain UEs 104 may communicate with each other using device-to-device (D2D) communication link 158. The D2D communication link 158 may use the DL/UL WWAN spectrum. The D2D communication link 158 may use one or more sidelink channels, such as a physical sidelink broadcast channel (PSBCH), a physical sidelink discovery channel (PSDCH), a physical sidelink shared channel (PSSCH), and a physical sidelink control channel (PSCCH). D2D communication may be through a variety of wireless D2D communications systems, such as for example, FlashLinQ, WiMedia, Bluetooth, ZigBee, Wi-Fi based on the IEEE 802.11 standard, LTE, or NR.
The wireless communications system may further include a Wi-Fi access point (AP) 150 in communication with Wi-Fi stations (STAs) 152 via communication links 154 in a 5 GHz unlicensed frequency spectrum. When communicating in an unlicensed frequency spectrum, the STAs 152/AP 150 may perform a clear channel assessment (CCA) prior to communicating in order to determine whether the channel is available.
The small cell 102′ may operate in a licensed and/or an unlicensed frequency spectrum. When operating in an unlicensed frequency spectrum, the small cell 102′ may employ NR and use the same 5 GHz unlicensed frequency spectrum as used by the Wi-Fi AP 150. The small cell 102′, employing NR in an unlicensed frequency spectrum, may boost coverage to and/or increase capacity of the access network.
A base station 102, whether a small cell 102′ or a large cell (e.g., macro base station), may include an eNB, gNodeB (gNB), or another type of base station. Some base stations, such as gNB 180 may operate in a traditional sub 6 GHz spectrum, in millimeter wave (mmW) frequencies, and/or near mmW frequencies in communication with the UE 104. When the gNB 180 operates in mmW or near mmW frequencies, the gNB 180 may be referred to as an mmW base station. Extremely high frequency (EHF) is part of the RF in the electromagnetic spectrum. EHF has a range of 30 GHz to 300 GHz and a wavelength between 1 millimeter and 10 millimeters. Radio waves in the band may be referred to as a millimeter wave. Near mmW may extend down to a frequency of 3 GHz with a wavelength of 100 millimeters. The super high frequency (SHF) band extends between 3 GHz and 30 GHz, also referred to as centimeter wave. Communications using the mmW/near mmW radio frequency band (e.g., 3 GHz-300 GHz) has extremely high path loss and a short range. The mmW base station 180 may utilize beamforming 182 with the UE 104 to compensate for the extremely high path loss and short range.
The base station 180 may transmit a beamformed signal to the UE 104 in one or more transmit directions 182′. The UE 104 may receive the beamformed signal from the base station 180 in one or more receive directions 182″. The UE 104 may also transmit a beamformed signal to the base station 180 in one or more transmit directions. The base station 180 may receive the beamformed signal from the UE 104 in one or more receive directions. The base station 180/UE 104 may perform beam training to determine the best receive and transmit directions for each of the base station 180/UE 104. The transmit and receive directions for the base station 180 may or may not be the same. The transmit and receive directions for the UE 104 may or may not be the same.
The EPC 160 may include a Mobility Management Entity (MME) 162, other MMEs 164, a Serving Gateway 166, a Multimedia Broadcast Multicast Service (MBMS) Gateway 168, a Broadcast Multicast Service Center (BM-SC) 170, and a Packet Data Network (PDN) Gateway 172. The MME 162 may be in communication with a Home Subscriber Server (HSS) 174. The MME 162 is the control node that processes the signaling between the UEs 104 and the EPC 160. Generally, the MME 162 provides bearer and connection management. All user Internet protocol (IP) packets are transferred through the Serving Gateway 166, which itself is connected to the PDN Gateway 172. The PDN Gateway 172 provides UE IP address allocation as well as other functions. The PDN Gateway 172 and the BM-SC 170 are connected to the IP Services 176. The IP Services 176 may include the Internet, an intranet, an IP Multimedia Subsystem (IMS), a PS Streaming Service, and/or other IP services. The BM-SC 170 may provide functions for MBMS user service provisioning and delivery. The BM-SC 170 may serve as an entry point for content provider MBMS transmission, may be used to authorize and initiate MBMS Bearer Services within a public land mobile network (PLMN), and may be used to schedule MBMS transmissions. The MBMS Gateway 168 may be used to distribute MBMS traffic to the base stations 102 belonging to a Multicast Broadcast Single Frequency Network (MBSFN) area broadcasting a particular service, and may be responsible for session management (start/stop) and for collecting eMBMS related charging information.
The core network 190 may include an Access and Mobility Management Function (AMF) 192, other AMFs 193, a Session Management Function (SMF) 194, and a User Plane Function (UPF) 195. The AMF 192 may be in communication with a Unified Data Management (UDM) 196. The AMF 192 is the control node that processes the signaling between the UEs 104 and the core network 190. Generally, the AMF 192 provides QoS flow and session management. All user Internet protocol (IP) packets are transferred through the UPF 195. The UPF 195 provides UE IP address allocation as well as other functions. The UPF 195 is connected to the IP Services 197. The IP Services 197 may include the Internet, an intranet, an IP Multimedia Subsystem (IMS), a PS Streaming Service, and/or other IP services.
The base station may also be referred to as a gNB, Node B, evolved Node B (eNB), an access point, a base transceiver station, a radio base station, a radio transceiver, a transceiver function, a basic service set (BSS), an extended service set (ESS), a transmit reception point (TRP), or some other suitable terminology. The base station 102 provides an access point to the EPC 160 or core network 190 for a UE 104. Examples of UEs 104 include a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a laptop, a personal digital assistant (PDA), a satellite radio, a global positioning system, a multimedia device, a video device, a digital audio player (e.g., MP3 player), a camera, a game console, a tablet, a smart device, a wearable device, a vehicle, an electric meter, a gas pump, a large or small kitchen appliance, a healthcare device, an implant, a sensor/actuator, a display, or any other similar functioning device. Some of the UEs 104 may be referred to as IoT devices (e.g., parking meter, gas pump, toaster, vehicles, heart monitor, etc.). The UE 104 may also be referred to as a station, a mobile station, a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a user agent, a mobile client, a client, or some other suitable terminology.
Although the present disclosure and accompanying drawings may be focused on 5G New Radio (NR), the concepts described herein may be applicable to other similar areas, such as LTE, LTE-Advanced (LTE-A), Code Division Multiple Access (CDMA), Global System for Mobile communications (GSM), and/or other wireless/radio access technologies.
Referring again to
Based on the uplink grant request 198, the UE 104 may receive at least two uplink grants 199. The at least two uplink grants 199 may indicate a peak transport block (TB) size per transmission time interval (TTI) available for uplink communication by the UE 104. Responsive to the at least two uplink grants 199, the UE 104 may send, over the wireless network, first data in a first TTI and second data in a second TTI.
Other wireless communication technologies may have a different frame structure and/or different channels. A frame (10 ms) may be divided into 10 equally sized subframes (1 ms). Each subframe may include one or more time slots. Subframes may also include mini-slots, which may include 7, 4, or 2 symbols. Each slot may include 7 or 14 symbols, depending on the slot configuration. For slot configuration 0, each slot may include 14 symbols, and for slot configuration 1, each slot may include 7 symbols. The symbols on DL may be cyclic prefix (CP) OFDM (CP-OFDM) symbols. The symbols on UL may be CP-OFDM symbols (for high throughput scenarios) or discrete Fourier transform (DFT) spread OFDM (DFT-s-OFDM) symbols (also referred to as single carrier frequency-division multiple access (SC-FDMA) symbols) (for power limited scenarios; limited to a single stream transmission). The number of slots within a subframe is based on the slot configuration and the numerology. For slot configuration 0, different numerologies 0 to 5 allow for 1, 2, 4, 8, 16, and 32 slots, respectively, per subframe. For slot configuration 1, different numerologies 0 to 2 allow for 2, 4, and 8 slots, respectively, per subframe. Accordingly, for slot configuration 0 and numerology μ, there are 14 symbols/slot and 2μ slots/subframe. The subcarrier spacing and symbol length/duration are a function of the numerology. The subcarrier spacing may be equal to 2μ*15 kHz, where μ is the numerology 0 to 5. As such, the numerology μ=0 has a subcarrier spacing of 15 kHz and the numerology μ=5 has a subcarrier spacing of 480 kHz. The symbol length/duration is inversely related to the subcarrier spacing.
A resource grid may be used to represent the frame structure. Each time slot includes a resource block (RB) (also referred to as physical RBs (PRBs)) that extends 12 consecutive subcarriers. The resource grid is divided into multiple resource elements (REs). The number of bits carried by each RE depends on the modulation scheme.
As illustrated in
As illustrated in
The transmit (TX) processor 316 and the receive (RX) processor 370 implement layer functionality associated with various signal processing functions. Layer 1, which includes a physical (PHY) layer, may include error detection on the transport channels, forward error correction (FEC) coding/decoding of the transport channels, interleaving, rate matching, mapping onto physical channels, modulation/demodulation of physical channels, and MIMO antenna processing. The TX processor 316 handles mapping to signal constellations based on various modulation schemes (e.g., binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), M-phase-shift keying (M-PSK), M-quadrature amplitude modulation (M-QAM)). The coded and modulated symbols may then be split into parallel streams. Each stream may then be mapped to an OFDM subcarrier, multiplexed with a reference signal (e.g., pilot) in the time and/or frequency domain, and then combined together using an Inverse Fast Fourier Transform (IFFT) to produce a physical channel carrying a time domain OFDM symbol stream. The OFDM stream is spatially precoded to produce multiple spatial streams. Channel estimates from a channel estimator 374 may be used to determine the coding and modulation scheme, as well as for spatial processing. The channel estimate may be derived from a reference signal and/or channel condition feedback transmitted by the UE 350. Each spatial stream may then be provided to a different antenna 320 via a separate transmitter 318TX. Each transmitter 318TX may modulate an RF carrier with a respective spatial stream for transmission.
At the UE 350, each receiver 354RX receives a signal through its respective antenna 352. Each receiver 354RX recovers information modulated onto an RF carrier and provides the information to the receive (RX) processor 356. The TX processor 368 and the RX processor 356 implement layer 1 functionality associated with various signal processing functions. The RX processor 356 may perform spatial processing on the information to recover any spatial streams destined for the UE 350. If multiple spatial streams are destined for the UE 350, they may be combined by the RX processor 356 into a single OFDM symbol stream. The RX processor 356 then converts the OFDM symbol stream from the time-domain to the frequency domain using a Fast Fourier Transform (FFT). The frequency domain signal comprises a separate OFDM symbol stream for each subcarrier of the OFDM signal. The symbols on each subcarrier, and the reference signal, are recovered and demodulated by determining the most likely signal constellation points transmitted by the base station 310. These soft decisions may be based on channel estimates computed by the channel estimator 358. The soft decisions are then decoded and deinterleaved to recover the data and control signals that were originally transmitted by the base station 310 on the physical channel. The data and control signals are then provided to the controller/processor 359, which implements layer 3 and layer 2 functionality.
The controller/processor 359 can be associated with a memory 360 that stores program codes and data. The memory 360 may be referred to as a computer-readable medium. In the UL, the controller/processor 359 provides demultiplexing between transport and logical channels, packet reassembly, deciphering, header decompression, and control signal processing to recover IP packets from the EPC 160. The controller/processor 359 is also responsible for error detection using an ACK and/or NACK protocol to support HARQ operations.
Similar to the functionality described in connection with the DL transmission by the base station 310, the controller/processor 359 provides RRC layer functionality associated with system information (e.g., MIB, SIBs) acquisition, RRC connections, and measurement reporting; PDCP layer functionality associated with header compression/decompression, and security (ciphering, deciphering, integrity protection, integrity verification); RLC layer functionality associated with the transfer of upper layer PDUs, error correction through ARQ, concatenation, segmentation, and reassembly of RLC SDUs, re-segmentation of RLC data PDUs, and reordering of RLC data PDUs; and MAC layer functionality associated with mapping between logical channels and transport channels, multiplexing of MAC SDUs onto TBs, demultiplexing of MAC SDUs from TBs, scheduling information reporting, error correction through HARQ, priority handling, and logical channel prioritization.
Channel estimates derived by a channel estimator 358 from a reference signal or feedback transmitted by the base station 310 may be used by the TX processor 368 to select the appropriate coding and modulation schemes, and to facilitate spatial processing. The spatial streams generated by the TX processor 368 may be provided to different antenna 352 via separate transmitters 354TX. Each transmitter 354TX may modulate an RF carrier with a respective spatial stream for transmission.
The UL transmission is processed at the base station 310 in a manner similar to that described in connection with the receiver function at the UE 350. Each receiver 318RX receives a signal through its respective antenna 320. Each receiver 318RX recovers information modulated onto an RF carrier and provides the information to a RX processor 370.
The controller/processor 375 can be associated with a memory 376 that stores program codes and data. The memory 376 may be referred to as a computer-readable medium. In the UL, the controller/processor 375 provides demultiplexing between transport and logical channels, packet reassembly, deciphering, header decompression, control signal processing to recover IP packets from the UE 350. IP packets from the controller/processor 375 may be provided to the EPC 160. The controller/processor 375 is also responsible for error detection using an ACK and/or NACK protocol to support HARQ operations.
According to various aspects of the present disclosure, at least one of the TX processor 368, the RX processor 356, and/or the controller/processor 359 may be configured to perform aspects in connection with
Based on the uplink grant request 198, the RX processor 356 of the UE 350 may receive at least two uplink grants 199. The at least two uplink grants 199 may indicate a peak TB size per TTI available for uplink communication by the UE 104. Responsive to the at least two uplink grants 199, the TX processor 368 may send, over the wireless network, first data in a first TTI and second data in a second TTI.
In some aspects, a UE, such as the UE 350, may request an uplink grant and receive the uplink grant in order to send data (e.g., to a base station). Some UEs may send the uplink grant request based only on data (e.g., packet bytes) available in a buffer of a lower layer (e.g., a PHY layer, a MAC layer, etc.), such as a buffer of a modem and/or a Layer 2 (L2) buffer. For example, the UE may send the uplink grant request when the L2 buffer reaches an occupancy level that reaches (e.g., meets or exceeds) a specific threshold.
When the L2 buffer is consistently relatively high (e.g., approaching the specific threshold), a UE may request and receive an uplink grant that is commensurate with the buffer occupancy, and this uplink grant may be approximately equal to the peak uplink grant with which the UE may be scheduled. When the UE maintains this relatively high buffer occupancy, the UE may correspondingly maintain relatively highly occupied buffers at other layers of the UE (e.g., an application layer). Therefore, the UE may consistently have outstanding data that is queued in the UE to be transmitted over a wireless network.
When the UE maintains relatively highly occupied buffers across at least two layers of a protocol stack of the UE, memory consumption may commensurately increase. As an effect of such memory consumption, the UE may experience memory (e.g., cache) inefficiencies and/or relatively large fluctuations in data flow between layers because highly occupied buffers often take longer to be emptied and filled again. Further, the UE may drop packets (which then should be resent) when the one or more buffers are highly occupied and the UE is unable to empty the one or more buffers at a sufficient rate.
As a further consequence of frequent high buffer occupancy, over-the-air signaling may increase as the UE sends a new BSR every time the L2 buffer is refilled after being drained based on an uplink grant. The increased over-the-air signaling may increase consumption of network resources and/or increase overhead of UE operation (e.g., increased over-the-air signaling may increase power consumption by the UE and/or may consume clock cycles of a processor of the UE that may otherwise be allocated to other UE operations).
The present disclosure may provide an improved approach to sending uplink data that is buffered by a UE, for example, by managing flow control between layers of a protocol stack of the UE and by requesting an uplink grant based on data at higher layer(s) of the UE that is not buffered at lower layer(s) of the UE when the uplink grant is requested. According to the present disclosure, frequent high occupancy of buffer(s) of the UE may be reduced and/or the uplink data transmission by the UE may occur at a relatively consistent rate (e.g., when an application of the UE generates a large amount of data to be sent). Thus, memory efficiency at the UE may be improved, the number of dropped packets may be reduced, and/or over-the-air signaling may be reduced.
The first layer 402 may include L2 functionality, such as a PDCP layer, an RLC layer, and/or a MAC layer. For example, the first layer 402 may include a MAC component 410, which may implement various functionality of the MAC layer. In some aspects, the first layer 402 may include more than one layer, including Layer 3 (L3), L2, and/or Layer 1 (L1) (e.g., L1 may include a PHY layer). For example, the first layer 402 may represent one or more layers that are procedurally below the second layer 404 in the protocol stack of the architecture of the UE 400.
Illustratively, the first layer 402 may include a flow control (FC) component 414. The FC component 414 may be implemented in hardware, software, firmware, or a combination thereof. The FC component 414 may manage at least a portion of the data flow between the first layer 402 and the second layer 404. For example, the FC component 414 may control the flow of packets from the second layer 404 to the first layer 402.
The first layer 402 may further include a MAC component 410. The MAC component 410 may be implemented in hardware, software, firmware, or a combination thereof. The MAC component 410 may encapsulate data (e.g., packets) from an uplink buffer 412 in TBs sent during TTIs scheduled according to an uplink grant.
The second layer 404 may include at least one layer that is procedurally implemented above the first layer 402. For example, the second layer 404 may include an application layer. Accordingly, the second layer 404 may include an application 444, the instructions of which may be executed by an application processor (AP) 440.
Each of the first layer 402 and the second layer 404 may include memory in which to queue data for transmission over a wireless network. According to various aspects, the first layer 402 may include an uplink buffer 412, a retransmission queue 462, and an L2 pipeline queue 464. The uplink buffer 412 may include an L2 buffer and/or modem buffer that may queue data for encapsulation in MAC TBs and, therefore, the uplink buffer 412 may be configured to queue data received from a higher layer (e.g., the second layer 404) to be transmitted over the wireless network. The retransmission queue 462 may be configured to queue data that is to be retransmitted, such as packets that are dropped, corrupted, and/or negatively acknowledged (e.g., NACK'ed). The L2 pipeline queue 464 may be configured to queue data of lower layer(s) (e.g., the first layer 402) that is to be transmitted over the wireless network, such as uplink control information, HARQ ACK/NACK data, etc. The aggregate data in the uplink buffer 412, the retransmission queue 462, and the L2 pipeline queue 464 may be collectively referred to as L2 data.
At the second layer 404, the AP 440 may be communicatively coupled with an AP-accessible memory 442. The AP-accessible memory 442 may queue data (e.g., packets) that is to be transmitted over the wireless network, e.g., for the application 444. Data queued in the AP-accessible memory 442 may include application data 476 generated in association with execution of the application 444 by the AP 440.
The AP-accessible memory 442 may have a capacity that is greater than the uplink buffer 412. For example, the AP-accessible memory 442 may be configured to queue approximately two or three megabytes (MB) of data, whereas the uplink buffer 412 may be configured to queue approximately 512 kilobytes (kB) of data. However, other capacities are possible in other aspects.
In one aspect, the AP-accessible memory 442 may include double data rate (DDR) synchronous dynamic random-access memory (SDRAM) 446a. The DDR SDRAM 446a may be attached to a system cache 446b. The AP 440 may be configured to queue application data 476 in the system cache 446b, and defer queuing application data 476 in the DDR SDRAM 446a (e.g., until the system cache 446b is flushed).
In one aspect, the AP-accessible memory 442 may additionally or alternatively include on-chip memory 446c. The AP 440 may be configured to queue application data 476 in the on-chip memory 446c. If the system cache 446b is limited (e.g., due to current operations, such as video/graphics processing by the UE 400), then the on-chip memory 446c may be used as an addition and/or alternative to the system cache 446b. For example, the on-chip memory 446c may provide overflow support when the system cache 446b is at or near capacity. That is, the AP 440 may queue application data 476 in the system cache 446b until the system cache 446b is at or near capacity, and then the AP 440 may switch to queuing application data 476 in the on-chip memory 446c (e.g., until the system cache 446b is flushed).
A size of data queued in memory may be referred to as a watermark (WM). Each WM may be expressed in a byte size (e.g., bytes, kB, and/or MB) and a respective WM may correspond to a data size currently queued in one of the AP-accessible memory 442, the uplink buffer 412, the retransmission queue 462, or the L2 pipeline queue 464. For example, the data size in the uplink buffer 412 may be referred to as an uplink WM 470, and the uplink WM 470 may fluctuate as the uplink buffer 412 is drained and refilled.
In some aspects, multiple thresholds may be configured in association with the uplink buffer 412. For example, the uplink buffer 412 may be configured with a high threshold 420a, a low threshold 420b, and/or a do not exceed (DNE) threshold 420c. One or more of these thresholds 420a-c may be configured by a 3GPP mode handler based on an RRC configuration that is indicated to the UE 400 (e.g., via RRC signaling) and/or may be dynamically configured (e.g., based on observing historical trends associated with draining and refilling the uplink buffer 412). The thresholds 420a-c may be compared with the uplink WM 470.
According to an aspect, the FC component 414 may monitor and manage one or more of the thresholds 420a-c. For example, when the DNE threshold 420c is reached (e.g., the uplink WM 470 is equal to or exceeds the DNE threshold 420c), the FC component 414 may signal the AP 440 to cease sending data to the uplink buffer 412. Therefore, the AP 440 may continue to queue data that is to be sent over the wireless network (e.g., data from the application 444) at AP-accessible memory 442 and/or the AP 440 may allocate other memory in which to queue the data while the uplink buffer 412 is emptied. When the DNE threshold 420c is reached, data sent from the AP 440 may be dropped because the uplink buffer 412 is at or near capacity.
In another example, when the low threshold 420b is reached (e.g., the uplink WM 470 is equal to or below the low threshold 420b), the FC component 414 may signal the AP 440 to resume sending data to the uplink buffer 412, e.g., from the AP-accessible memory 442.
In another example, when the high threshold 420a is reached (e.g., the uplink WM 470 is equal to or above the high threshold 420a), the FC component 414 may determine that no additional data should be queued in the uplink buffer 412. The FC component 414 may generate an FC message indicating that no more data should be sent to the first layer 402 to be queued in the uplink buffer 412. The FC component 414 may send such an FC message to the second layer 404 in order to instruct the AP 440 to refrain some sending additional data to the first layer 402.
In various aspects, the low threshold 420b may be configured to be approximately equal to a data size needed to serve T milliseconds (ms) worth of uplink peak rate transmission. By way of illustration, T may be equal to four ms, each TTI may be equal to 200 microseconds (μs), and the peak MAC TB size per TTI may be equal to eight kB. Therefore, the low threshold 420b may be configured as 160 kB, which is equal to T ms divided by the TTI duration multiplied by the peak TB size or, equivalently in this example, (4 ms/200 μs)*8 kB. In some aspects, the low threshold 420b may be configured to be greater than the data size needed to serve T ms worth of uplink peak rate transmission—e.g., the low threshold 420b may be configured as 200 kB.
The high threshold 420a may be configured to be greater than the low threshold 420b. For example, the high threshold 420a may be configured to be twice the low threshold, such as 400 kB. The DNE threshold 420c may be configured to be greater than the high threshold 420a. For example, the DNE threshold 420c may be configured to be 100 kB or 200 kB greater than the high threshold 420a. The thresholds 420a-c may be configured to have different values in other aspects.
When the uplink buffer 412 includes data, the uplink buffer 412 may be emptied. The MAC component 410 may determine the uplink WM 470 that indicates the data size currently queued in the uplink buffer 412. For example, the MAC component 410 may periodically poll the uplink buffer 412 to receive the uplink WM 470. In another example, the FC component 414 may indicate to the MAC component 410 that the uplink WM 470 has reached at least one of the high threshold 420a or the DNE threshold 420c, and the MAC component 410 may determine the uplink WM 470 based on the indication from the FC component 414.
Based on the uplink WM 470, the MAC component 410 may send, to a base station, an uplink grant request 422 in order to obtain an uplink grant for sending the data queued in the uplink buffer 412. The uplink grant request 422 may include a BSR or buffer occupancy report. For example, the uplink grant request 422 may be based on the uplink WM 470.
In addition to the uplink WM 470, the MAC component 410 may generate an uplink grant request 422 based on data (e.g., packets) in the retransmission queue 462 and/or the L2 pipeline queue 464. Thus, the MAC component 410 may generate the uplink grant request 422 based on the sum of the uplink WM 470, a WM of the AP-accessible memory 442, a WM of the retransmission queue 462, and a WM of the L2 pipeline queue 464.
As the AP 440 executes the instructions of the application 444, application data 476 may be generated to be sent over a wireless network. In order to send the application data 476 over the wireless network, the AP 440 may provide the data to the first layer 402 so that the MAC component 410 may send the data over the wireless network according to a schedule provided by at least two uplink grants received from a base station. However, the size of the application data 476 generated by the AP 440 may exceed the high threshold 420a and/or the DNE threshold 420c of the uplink buffer 412. Therefore, the AP 440 may refrain from sending, to the first layer 402, application data 476 of a size that may otherwise cause the DNE threshold 420c to be exceeded. For example, the AP 440 may queue data to be sent over the wireless network by the MAC component 410.
Application data 476 queued in the AP-accessible memory 442 may still be sent over the wireless network, even though not yet queued in the uplink buffer 412. Thus, requesting an uplink grant that is based on the WM of the AP-accessible memory 442, in addition to the WMs of the uplink buffer 412, the retransmission queue 462, and the L2 pipeline queue 464, may be more efficient than various existing approaches, such as approaches in which an uplink grant is requested based on memory allocated to a MAC layer.
According to some existing network approaches, for example, a request for an uplink grant (e.g., a BSR) may be triggered when a WM of an uplink buffer (e.g., L2 buffer) reaches a reporting threshold. Triggering a BSR based on a reporting threshold of an uplink buffer may cause a UE to frequently send BSRs, as the uplink buffer is drained based on an uplink grant and then refilled after all or most of the data in the uplink buffer is de-queued.
Frequently sending BSRs in this manner may increase consumption of over-the-air resources and result in bursty uplink traffic as the UE sends data when the uplink buffer nears capacity, then does not send data while the uplink buffer is refilled, then sends another BSR when the uplink buffer is refilled to a reporting threshold, and again drains the uplink buffer when another uplink grant is received. Moreover, bursty uplink communication may prevent the UE from receiving a peak uplink grant.
In contrast to this approach, the UE 400 described in the present disclosure may send fewer BSRs and/or consistently send data because the UE 400 may receive a number of peak uplink grants over a number of TTIs sufficient to send application data 476 queued in the AP-accessible memory 442 in addition to queued L2 data (e.g., in the uplink buffer 412). Thus, the UE 400 would need to send one BSR to obtain one or more uplink grants for the accumulation of queued L2 data and application data 476, as opposed to sending multiple BSRs triggered every time an uplink buffer is filled to a reporting threshold and then drained in response to an uplink grant.
In addition, the UE 400 described in the present disclosure may manage memory more efficiently than some existing approaches. For example, when an uplink buffer (e.g., L2 buffer) of a UE is frequently exceeded, other memory may be reallocated from a higher layer(s) to the MAC layer of the UE, e.g., to prevent packet loss when the capacity of the uplink buffer is exceeded. When the other memory is reallocated, the MAC layer may be able to access the reallocated memory and generate a BSR based on data queued in the reallocated memory. However, the reallocated memory may be unavailable to be returned to the higher layer(s), and so the reallocated memory may be unused when unnecessary for queuing data by the MAC layer. Disuse of the reallocated memory may be inefficient and may decrease performance of the UE, e.g., when the reallocated memory is needed for other operations.
In contrast, the UE 400 of the present disclosure may refrain from reallocating memory to the first layer 402. Since the FC component 414 may enable communication with higher layer(s), including the second layer 404, the first layer 402 may be able to generate an uplink grant request based on the WM of the AP-accessible memory 442 without reallocating the AP-accessible memory 442 to the first layer 402. Accordingly, the AP-accessible memory 442 may be efficiently used and may remain available to the higher layer(s), including the second layer 404.
The first layer 402 (e.g., the MAC component 410 and/or the FC component 414) may be configured to monitor the status of the uplink buffer 412 and refill the uplink buffer 412 (e.g., when the uplink WM 470 reaches the low threshold 420b). Accordingly, the first layer 402 may determine the uplink WM 470 indicating the data size that is currently queued in the uplink buffer 412.
Based on the uplink WM 470, the first layer 402 (e.g., the MAC component 410 and/or the FC component 414) may determine a data size that may be additionally queued in the uplink buffer 412. For example, the first layer 402 may compare the uplink WM 470 to the high threshold 420a, and the difference between the high threshold 420a and the uplink WM 470 may be a size of additional data that may be queued in the uplink buffer 412.
To add additional data to the uplink buffer 412, the first layer 402 may generate a first FC message 472 to send to the second layer 404 (e.g., the AP 440). The first layer 402 may generate the first FC message 472 based on the uplink WM 470 (e.g., based on the difference between the high threshold 420a and the uplink WM 470). In one aspect, the first FC message 472 may indicate a requested data size, which may be a data size that may be additionally queued in the uplink buffer 412.
In addition to the high threshold 420a (e.g., the difference between the high threshold 420a and the uplink WM 470), the first layer 402 may determine the requested data size based on the low threshold 420b. For example, the FC component 414 may determine the requested data size to prevent the uplink WM 470 from reaching (e.g., falling below) the low threshold 420b. In other words, the FC component 414 may calculate the requested data size in order to maintain the uplink WM 470 between the high threshold 420a and the low threshold 420b.
In order to maintain the uplink WM 470 between the high threshold 420a and the low threshold 420b, the first layer 402 may determine the requested data size further based on a delta variable. For example, the delta variable may be a heuristic value that may be determined by the FC component 414.
The delta variable may prevent the uplink WM 470 from reaching the low threshold 420b. Specifically, the first layer 402 may use the delta variable to anticipate the rate at which data is to be requested from the second layer 404 (e.g., the AP 440). Thus, the first layer 402 may request a data size from the second layer 404 that would otherwise exceed the high threshold 420a when aggregated with the current uplink WM 470. However, the uplink WM 470 may be assumed to decrease as data in the uplink buffer 412 is de-queued during the time between sending an FC message requesting additional application data 476 from the second layer 404 and actually receiving that additional application data 476 from the second layer 404. Thus, the delta variable may contribute to maintaining the uplink WM 470 between the high threshold 420a and the low threshold 420b. By maintaining the uplink WM 470 between the high threshold 420a and the low threshold 420b, the first layer 402 may consistently receive and fulfill peak uplink grants, which may prevent bursty uplink communication and/or prevent the uplink WM 470 from reaching the DNE threshold 420c (e.g., to avoid dropping packets from the second layer 404).
In some aspects, the first layer 402 (e.g., the FC component 414) may determine the delta variable. For example, the first layer 402 may determine 528 a time between sending the first FC message 472 and receiving the application data 476 (up to the requested data size) in response to the first FC message 472. Further, the first layer 402 may determine 530 the delta variable based on the determined time between sending the first FC message 472 and receiving the application data 476 (up to the requested data size). The first layer 402 may calculate the delta variable based on the determined time in order to anticipate the rate at which the uplink buffer 412 is refilled by application data 476 in order to maintain the uplink WM 470 between the high threshold 420a and the low threshold 420b.
In some aspects, the first layer 402 may dynamically determine the delta variable by determining multiple time periods between sending a respective FC message indicating a requested data size and receiving data from the second layer 404 in response to each respective FC message. The first layer 402 may then determine the delta variable based on the determined one or more time periods (e.g., based on the average of the one or more time periods).
The first layer 402 (e.g., the FC component 414) may send the first FC message 472 to the second layer 404 (e.g., to the AP 440). Thus, the first FC message 472 may be indicate that the flow of data is enabled (up to the requested data size) from the second layer 404 to the first layer 402.
When the second layer 404 (e.g., the AP 440) receives the first FC message 472, the second layer 404 may generate a second FC message 474. The second FC message 474 may include an indication of an acknowledgement (ACK) of the first FC message 472.
Further, the second layer 404 may generate the second FC message 474 to indicate a WM of application data 476 queued in the AP-accessible memory 442. The second layer 404 may generate the second FC message 474 to indicate the WM of the AP-accessible memory 442 based on the requested data size. For example, the data size indicated in the second FC message 474 may be a difference between the current WM of the AP-accessible memory 442 and the requested data size, because application data 476 up to the requested data size will be de-queued from the AP-accessible memory 442 and sent to the first layer 402 in response to the first FC message 472. The second layer 404 may send the second FC message 474 to the first layer 402.
In addition to the second FC message 474, the second layer 404 (e.g., the AP 440) may send application data 476 currently queued in the AP-accessible memory 442 up to the requested data size. For example, if the requested data size indicates 300 kB, then the second layer 404 may send up to 300 kB of application data 476 in response to the first FC message 472. If the AP-accessible memory only includes 200 kB of application data 476, however, then the second layer 404 may send all 200 kB of application data 476 to the first layer 402.
The first layer 402 (e.g., the FC component 414 and/or the MAC component 410) may determine 526 a first data size associated with the second layer 404. The first layer 402 may determine 526 the first data size based on the second FC message 474. For example, the first data size may be the WM of the AP-accessible memory 442 (after sending the application data 476 up to the requested data size), as indicated by the second FC message 474.
In various aspects, the first data size may exceed the high threshold 420a and/or the DNE threshold 420c, and/or the aggregation of the first data size and the uplink WM 470 may exceed the high threshold 420a and/or the DNE threshold 420c. Consequently, the uplink buffer 412 may be unable to further queue all application data 476 queued in the AP-accessible memory 442. Nonetheless, the application data 476 in the AP-accessible memory 442 should be sent to the base station 502, in addition to the L2 data currently in the uplink buffer 412, the retransmission queue 462, and the L2 pipeline queue 464. Thus, uplink communication by the UE 400 may occur at an improved rate if the application data 476 queued in the AP-accessible memory 442 is considered when requesting an uplink grant.
Accordingly, the first layer 402 (e.g., the MAC component 410) may generate an uplink grant request 422 based on the first data size determined 526 by the first layer 402. For example, the first layer 402 may generate the uplink grant request 422 to indicate an aggregated data size that is the sum of the first data size (e.g., the WM of the AP-accessible memory 442) and the WMs of the L2 data (e.g., the sum of the uplink WM 470 including the portion of application data 476 received in response to the first FC message 472, the WM of the retransmission queue 462, and the WM of the L2 pipeline queue 464). Illustratively, the aggregated data size indicated in the uplink grant request 422 may appreciably exceed the capacity of the uplink buffer 412—e.g., the uplink grant request 422 may indicate an aggregated data size of greater than two or three MB, even though the uplink buffer 412 has a capacity of 512 kB.
The first layer 402 may generate the uplink grant request 422 as a BSR, buffer occupancy report, or another similar message configured to solicit an uplink grant. The first layer 402 may then send the uplink grant request 422 to the base station 502.
In response to the uplink grant request 422, the first layer 402 (e.g., the MAC component 410) may receive at least two uplink grants 532 from the base station 502. Each of the at least two uplink grants 532 may be a peak uplink grant that indicates a peak TB size per TTI available for uplink communication by the UE 400. That is, each of the at least two uplink grants 532 may allocate a maximum amount of resources for uplink communication by the UE 400 and/or may schedule the UE 400 on the largest possible amount of resources. The peak uplink grant may be determined by the base station 502, e.g., based on network capabilities and/or network standards.
In various aspects, each of the at least two uplink grants 532 may include multiple uplink grants over multiple TTIs. That is, each of the at least two uplink grants 532 may include a first uplink grant indicating a peak TB size for a first set of TTIs, a second uplink grant indicating the peak TB size for a second set of TTIs that follow the first set of TTIs, a third uplink grant indicating the peak TB size for a third set of TTIs that follow the second set of TTIs, and so forth. In total, the at least two uplink grants 532 may allocate a set of resources over a set of TTIs that is sufficient for uplink communication of all data queued in the AP-accessible memory 442, the uplink buffer 412, the retransmission queue 462, and the L2 pipeline queue 464.
Based on the at least two uplink grants 532, the first layer 402 (e.g., the MAC component 410) may de-queue data in the uplink buffer 412 for uplink transmission. For example, the MAC component 410 may encapsulate packets from the uplink buffer 412 in MAC TBs up to the peak TB size (e.g., eight kB per TTI), and the MAC component 410 may send a first set of TBs 534 (including the encapsulated data) in a first set of TTIs that correspond to resources allocated by one of the at least two uplink grants 532.
Because the aggregated data size may exceed the peak MAC TB per TTI and the uplink grant request 422 may be based on the WM of the application data 476 that remains queued in the AP-accessible memory 442, the at least two uplink grants 532 may allocate resources to the UE 400 for multiple peak MAC TBs over multiple TTIs sufficient to additionally de-queue the application data 476 remaining in the AP-accessible memory 442. For example, after the first layer 402 sends the L2 data encapsulated in the first set of MAC TBs 534, the first layer 402 may de-queue the application data 476 remaining in the AP-accessible memory 442. The first layer 402 (e.g., the MAC component 410) may encapsulate the application data 476 remaining in the AP-accessible memory 442 in MAC TBs up to the peak TB size (e.g., eight kB per TTI), and the first layer 402 may send a second set of TBs 536 (including the encapsulated application data 476) in a second set of TTIs that correspond to resources allocated by another of the at least two uplink grants 532.
When the first layer 402 receives the at least two uplink grants 532, all of the data corresponding to the aggregated data size indicated by the uplink grant request 422 may already be queued at the first layer 402 and the second layer 404. Therefore, the first layer 402 may consistently send peak MAC TBs carrying the maximum size of data as data is encapsulated by the first layer 402. Thus, each of the first set of TBs 534 and the second set of TBs 536 may include data (e.g., L2 data and application data 476, respectively) of approximately a same size. (At least one TB may include a smaller data size when the aggregated data size is not evenly divisible by the peak MAC TB size.) Because the first set of TBs 534 and the second set of TBs 536 may include data of approximately a same size (due to the peak TB size allocated by the at least two uplink grants 532), uplink communication by the UE may be smoother and/or less bursty.
In one aspect, the first layer 402 may de-queue the application data 476 from the AP-accessible memory 442 and queue the application data 476 in the uplink buffer 412 after sending the first set of TBs 534. For example, the application data 476 may be de-queued from the AP-accessible memory 442 and then re-queued in the uplink buffer 412 so that the application data 476 may be encapsulated in MAC TBs by the MAC component 410. In other words, data may flow from the AP-accessible memory 442 to the uplink buffer 412 to refill the uplink buffer 412 as the uplink buffer 412 is drained by encapsulating data in MAC TBs for uplink transmission according to a first of the at least two uplink grants 532.
In some aspects, the first layer 402 may generate and send another first FC message, indicating a requested data size, to the second layer 404 as the uplink buffer 412 is being drained according to a first of the at least two uplink grants 532. Responsive to the other first FC message, the second layer 404 may send additional application data 476 queued in the AP-accessible memory 442 up to the requested data size and, therefore, the first layer 402 may encapsulate that additional application data 476 in MAC TBs for uplink transmission according to a second of the at least two uplink grants 532.
In an optional aspect, at operation 602, a UE may send, at a first layer of a protocol stack of the UE, a first FC message to a second layer of the protocol stack. The first FC message may indicate a requested data size, and the requested data size may be based on a first queue threshold. In some aspects, the requested data size may be further based on a variable associated with packet transmission from the second layer to the first layer. In the context of
In an optional aspect, at operation 604, the UE may receive, at the first layer of the protocol stack, a second FC message from the second layer based on the first FC message. The second FC message may acknowledge the first FC message and may indicate a first data size associated with the second layer. For example, the first data size may indicate a size of data queued at the second layer. In the context of
At operation 606, the UE may determine the first data size associated with the second layer. For example, the first layer of the protocol stack may identify information indicating the first data size included in the second FC message, and the first layer of the protocol stack may compare the first data size to a first queue threshold. The first layer of the protocol stack may determine that the first data size exceeds the first queue threshold associated with the first layer. In the context of
In an optional aspect, at operation 608, the UE may receive, at the first layer of the protocol stack, at least a portion of first data or second data based on the first FC message. The at least the portion of the first data or the second data may include application data and may have a size approximately equal to the requested data size. In the context of
In an optional aspect, at operation 610, the UE may determine a time between sending the first FC message and receiving the at least the portion of the first data or the second data. For example, the UE may determine a first time at which the first FC message was sent, and may determine a second time at which the at least the portion of the first data or the second data was received. The UE may compare the determined first time with the determined second time to determine the difference. In the context of
In an optional aspect, at operation 612, the UE may determine a variable associated with packet transmission from the second layer to the first layer based on the determined time. For example, the first layer of the protocol stack may dynamically determine the variable by determining multiple time periods between sending a respective FC message indicating a requested data size and receiving data from the second layer of the protocol stack in response to each respective FC message. The first layer 402 may then determine the variable based on the determined one or more time periods (e.g., based on the average of the one or more time periods). In some aspects, the requested data size indicated in the first FC message may be further based on the determined variable. In the context of
At operation 614, the UE may send an uplink grant request over a wireless network. The uplink grant request may be based on the first data size. The uplink grant request may indicate a sum of at least the first data size, a second data size associated with a first queue of the first layer, and a third data size associated with a retransmission queue. In the context of
At operation 616, the UE may receive, over the wireless network, at least two uplink grants based on the first data size indicated in the uplink grant request. Each of the at least two uplink grants may indicate a peak TB size per TTI available for uplink communication by the UE. In the context of
At operation 618, the UE may send, over the wireless network, first data in a first TTI based on a first of the at least two uplink grants. For example, the UE may encapsulate data buffered in an uplink buffer in a first set of MAC TBs, and the UE may send the first set of MAC TBs in a first set of TTIs allocated by the first of the at least two uplink grants. In the context of
At operation 620, the UE may send, over the wireless network, second data in a second TTI based on a second of the at least two uplink grants. For example, the UE may retrieve data queued at a higher layer (e.g., application layer), and the UE may encapsulate the retrieved data in a second set of MAC TBs. The UE may send the second set of MAC TBs in a second set of TTIs allocated by the second of the at least two uplink grants. In one aspect, the first data encapsulated in the first set of MAC TBs and the second data encapsulated in the second set of MAC TBs may be of approximately a same size. In the context of
The apparatus 702 may include a first layer component 706 and a second layer component 708. The first layer component 706 may include one or more of L1 and/or L2 functionality. The second layer component 708 may include an application layer.
The first layer component 706 may send a first FC message to the second layer component 708. The first FC message may indicate a requested data size, and the requested data size may be based on a first queue threshold associated with a first queue of the first layer component 706. In some aspects, the requested data size may be further based on a delta variable associated with packet transmission from the second layer component 708 to the first layer component 706.
The first layer component 706 may receive, from the second layer component 708, a second FC message. The second FC message may acknowledge the first FC message. Further, the second FC message may indicate a first data size that is associated with data queued by the second layer component 708. The first layer component 706 may determine the first data size based on the second FC message, and the first data size may exceed the first queue threshold.
In addition, the first layer component 706 may receive at least a portion of first data or second data from the second layer component 708 based on the first FC message. The at least the portion of the first data or the second data may have a size approximately equal to the requested data size indicated by the first FC message.
In some aspects, the first layer component 706 may determine a time between sending the first FC message to the second layer and receiving the at least the portion of the first data or the second data based on the first FC message. The first layer component 706 may then determine the delta variable associated with packet transmission from the second layer to the first layer based on the determined time.
The first layer component 706 may generate an uplink grant request. The uplink grant request may request an allocation of resources for uplink communication based on the first data size. For example, the uplink grant request may request an allocation of resources sufficient for uplink communication of a data size that is approximately equal to a sum of at least the first data size, a second data size associated with the first queue of the first layer component 706, a third data size associated with a retransmission queue of the first layer component 706, and a fourth data size associated with a pipeline queue of the first layer component 706. The transmission component 710 may send the uplink grant request to the base station 750 over a wireless network.
The reception component 704 may receive, from the base station 750 over the wireless network, at least two uplink grants based on the uplink grant request. Each of the at least two uplink grants may allocate resources for uplink communication, and may indicate a peak TB size per TTI available for the uplink communication.
The first layer component 706 may encapsulate the first data in a first set of TBs based on a first of the at least two uplink grants. In some aspects, the first data may include data queued in the first queue of the first layer component 706, data queued in the second queue of the first layer component 706 (e.g., a retransmission queue), and/or data queued in the third queue of the first layer component 706 (e.g., an L2 pipeline queue). The transmission component 710 may send the first set of TBs in a first set of TTIs based on the first of the at least two uplink grants.
Further, the first layer component 706 may encapsulate the second data in a second set of TBs based on a second of the at least two uplink grants. In some aspects, the second data may include application data that was queued by the second layer component 708 when the uplink grant request was transmitted. The transmission component 710 may send the second set of TBs in a second set of TTIs based on the second of the at least two uplink grants. In some aspects, each of the first set of TTIs and the second set of TTIs may include data encapsulated in TBs of approximately a same size (e.g., a peak TB size, as indicated by the at least two uplink grants).
The apparatus may include additional components that perform each of the blocks of the algorithm in the aforementioned flowcharts of
The processing system 814 may be coupled to a transceiver 810. The transceiver 810 is coupled to one or more antennas 820. The transceiver 810 provides a means for communicating with various other apparatus over a transmission medium. The transceiver 810 receives a signal from the one or more antennas 820, extracts information from the received signal, and provides the extracted information to the processing system 814, specifically the reception component 704. In addition, the transceiver 810 receives information from the processing system 814, specifically the transmission component 710, and based on the received information, generates a signal to be applied to the one or more antennas 820. The processing system 814 includes a processor 804 coupled to a computer-readable medium/memory 806. The processor 804 is responsible for general processing, including the execution of software stored on the computer-readable medium/memory 806. The software, when executed by the processor 804, causes the processing system 814 to perform the various functions described supra for any particular apparatus. The computer-readable medium/memory 806 may also be used for storing data that is manipulated by the processor 804 when executing software. The processing system 814 further includes at least one of the components 704, 706, 708, 710. The components may be software components running in the processor 804, resident/stored in the computer readable medium/memory 806, one or more hardware components coupled to the processor 804, or some combination thereof. The processing system 814 may be a component of the UE 350 and may include the memory 360 and/or at least one of the TX processor 368, the RX processor 356, and the controller/processor 359. Alternatively, the processing system 814 may be the entire UE (e.g., see 350 of
The apparatus 702/702′ may include a protocol stack having at least a first layer and a second layer. In one configuration, the apparatus 702/702′ for wireless communication includes means for determining, at the first layer of the protocol stack, a first data size associated with the second layer of the protocol stack, and the first data size may exceed a first queue threshold associated with the first layer. The apparatus 702/702′ may include means for sending an uplink grant request over a wireless network, and the uplink grant request may be based on the first data size. The apparatus 702/702′ may include means for receiving, over the wireless network, at least two uplink grants based on the uplink grant request. The apparatus 702/702′ may include means for sending, over the wireless network, first data in a first TTI based on one of the at least two uplink grants. The apparatus 702/702′ may include means for sending, over the wireless network, second data in a second TTI based on another of the at least two uplink grants.
In one aspect, each of the at least two uplink grants may indicate a peak TB size per TTI available for uplink communication by the apparatus 702/702′. In one aspect, the first data and the second data are of equal size. In one aspect, the uplink grant request indicates a sum of at least the first data size, a second data size associated with a first queue of the first layer, and a third data size associated with a second queue of the first layer.
In one aspect, the apparatus 702/702′ may further include means for sending, from the first layer of the protocol stack to the second layer of the protocol stack, a first FC message indicating a requested data size. The requested data size may be based on the first queue threshold. The apparatus 702/702′ may further include means for receiving, at the first layer from the second layer, a second FC message based on the first FC message. The second FC message may indicate the first data size. The apparatus 702/702′ may further include means for receiving, at the first layer from the second layer, at least a portion of the first data or the second data based on the first FC message. The at least the portion of the first data or the second data may have a size that is equal to the requested data size.
In one aspect, the requested data size may be further based on a variable associated with packet transmission from the second layer to the first layer. The apparatus 702/702′ may further include means for determining a time between sending the first FC message and receiving the at least the portion of the first data or the second data. The apparatus 702/702′ may further include means for determining the variable associated with packet transmission from the second layer to the first layer based on the determined time.
In some aspects, the first layer may include at least one of a PHY layer and/or a MAC layer. In some aspects, the second layer may include an application layer.
The aforementioned means may be one or more of the aforementioned components of the apparatus 702 and/or the processing system 814 of the apparatus 702′ configured to perform the functions recited by the aforementioned means. As described supra, the processing system 814 may include the TX Processor 368, the RX Processor 356, and the controller/processor 359. As such, in one configuration, the aforementioned means may be the TX Processor 368, the RX Processor 356, and the controller/processor 359 configured to perform the functions recited by the aforementioned means.
It is understood that the specific order or hierarchy of blocks in the processes/flowcharts disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes/flowcharts may be rearranged. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects. Unless specifically stated otherwise, the term “some” refers to one or more. Combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C. Specifically, combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. The words “module,” “mechanism,” “element,” “device,” and the like may not be a substitute for the word “means.” As such, no claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for.”
This application claims the benefit of U.S. Provisional Application Ser. No. 62/756,516, entitled “SYSTEM AND METHOD FOR FLOW CONTROL AND BUFFER STATUS REPORT” and filed on Nov. 6, 2018, which is expressly incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62756516 | Nov 2018 | US |