User equipment (UE) uplink data transmission management
By using uplink resource permission timing information in user equipment (UE), data transmission timing is optimized, the problem of large data transmission delay in the prior art is solved, and the performance and efficiency of communication services are improved.
Patent Information
- Application Number
- CN202380051818.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-12
- Filing Date
- 2023-05-23
- Publication Date
- 2025-02-28
AI Technical Summary
The prior art is difficult to effectively reduce communication delays in the transmission of data by user equipment (UE) to the communication network, resulting in a degradation in performance of real-time audio and video communication services and computing-intensive services.
By using uplink resource permission timing information received from the radio access network (RAN), the UE can reduce the delay in data transmission, enabling the application to send data to the RAN during the uplink transmission timing. Specific measures include providing uplink resource permission timing information, including uplink periods and offset values, and receiving and processing this information through a modem to optimize data transmission.
By reducing data transmission delay, the performance of real-time audio and video communication services and computing-intensive services is improved, the power consumption of mobile devices is reduced, and data communication efficiency is improved.
Smart Images

Figure CN119547550A_ABST
Abstract
Description
[0001] This application claims priority to U.S. Non-Provisional Application No. 17 / 812,113, filed on July 12, 2022; the entire contents of which are incorporated herein by reference. Background Art
[0002] Long Term Evolution (LTE), Fifth Generation (5G) New Radio (NR) and other communication technologies enable improved communication and data services. One such service is real-time audio and video communication services, such as Voice over Internet Protocol (VoIP), WhatsApp, Facetime, and the like. Another such service is computationally intensive services, such as extended reality (XR) applications, in which computing operations for applications are distributed between mobile devices and network computing devices (e.g., servers). Applications executed on user equipment (UE) connected to these services must send and receive threshold levels of data to provide a threshold level of performance, otherwise the performance of these applications will degrade. In addition, these applications are configured to reduce the power consumption of mobile devices. Summary of the invention
[0003] Various aspects include systems and methods for uplink transmission performed by a user equipment (UE) to send data (e.g., data from an information flow) to a communication network. In some embodiments, the UE may receive uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity. The UE may provide the uplink resource grant timing information to an application executing in a processor of the UE. The UE may receive data from the application for transmission to the RAN during the uplink transmission opportunity, and may send data to the RAN during the uplink transmission opportunity.
[0004] In some aspects, the uplink resource grant timing information provided to the application may include an uplink period and an offset value within the uplink period, which enables the application to send data for transmission to the RAN during the uplink transmission opportunity. In some aspects, receiving the uplink resource grant timing information from the RAN may include: receiving the uplink resource grant timing information via radio resource control (RRC) signaling. In some aspects, receiving the uplink resource grant timing information from the RAN may include: receiving an indication of the uplink period and receiving downlink control information (DCI) indicating the offset value within the uplink period via RRC signaling. In some aspects, receiving the uplink resource grant timing information from the RAN may include: receiving an uplink grant having a pattern indicating the uplink period and the offset within the uplink period in the DCI.
[0005] In some aspects, receiving data from an application for transmission to the RAN during an uplink transmission opportunity may include receiving first application data at a first time and storing the first application data, and receiving second application data at a second time. In these aspects, sending the first application data to the RAN during the uplink transmission opportunity may include sending the second application data and an uplink transmission request associated with the first application data during the uplink transmission opportunity.
[0006] Some aspects may also include: receiving an indication from an application regarding permission to store the first application data, wherein receiving the first application data at a first time and storing the first application data may include: storing the first application data after receiving the indication regarding permission to store the first application data. Some aspects may also include: receiving a storage duration for the first application data from the application, and sending a scheduling request associated with the first application data when the storage duration ends before an uplink transmission opportunity. In these aspects, sending data to the RAN during the uplink transmission opportunity may include: sending the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity when the uplink transmission opportunity occurs before the storage duration ends.
[0007] In some aspects, receiving data from an application for transmission to the RAN during an uplink transmission opportunity may include: receiving, from the application at a time prior to the uplink transmission opportunity, first application data generated at a first data time and second application data generated at a second data time. In these aspects, sending data to the RAN during the uplink transmission opportunity may include: sending the first application data and an uplink transmission request associated with the second application data during the uplink transmission opportunity. In some aspects, providing uplink resource grant timing information to an application executing on a processor of the UE may include: providing the uplink resource grant timing information to the application via a modem application program interface (API) configured to communicate the uplink resource grant timing information to the application. In these aspects, receiving data from the application for transmission to the RAN during the uplink transmission opportunity may include: receiving data from the application for transmission to the RAN via an API associated with the uplink resource grant timing information. In some aspects, receiving data from the application for transmission to the RAN via an API associated with the uplink resource grant timing information may include: receiving data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information. These aspects may include: providing timing adjustment to the application via an API associated with receiving data for transmission to the RAN at a time that meets a timing drift threshold with the uplink resource grant timing information; and receiving second data from the application via the API for transmission to the RAN at a time within the timing drift threshold with the uplink resource grant timing information.
[0008] Further aspects include a UE having a processor configured to perform one or more operations of any of the methods outlined above. Further aspects include processor devices for use in a UE, the processing devices being configured with processor-executable instructions to perform the operations of any of the methods outlined above. Further aspects include a non-transitory processor-readable medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of the UE to perform the operations of any of the methods outlined above. Further aspects include a UE having a unit for performing the functions of any of the methods outlined above. Further aspects include a system on a chip for use in a UE, the UE including a processor configured to perform one or more operations of any of the methods outlined above. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1A is a system block diagram illustrating an exemplary communication system suitable for implementing any of the various embodiments.
[0010] Figure 1B is a system block diagram illustrating an exemplary decomposed base station architecture suitable for implementing any of the various embodiments.
[0011] Figure 2 is a component block diagram illustrating an exemplary computing and wireless modem system suitable for implementing any of the various embodiments.
[0012] Figure 3 is a component block diagram illustrating a software architecture including a wireless protocol stack for user plane and control plane in wireless communications suitable for implementing any of the various embodiments.
[0013] Figure 4 is a component block diagram illustrating elements of a UE 400 configured in accordance with various embodiments.
[0014] Figure 5A is a timeline diagram illustrating transmission of uplink data by a UE without aligning the data transmission with granted uplink resources.
[0015] Figure 5B is a timeline diagram illustrating a method of uplink data transmission according to various embodiments.
[0016] Figure 5C is a timeline diagram illustrating transmission of uplink data by a UE without aggregating data from different data streams.
[0017] Figure 5D is a timeline diagram illustrating a method of uplink data transmission according to various embodiments.
[0018] Figure 6A-6D is a data flow diagram illustrating a method for uplink data transmission according to various embodiments.
[0019] Fig. 7A is a data flow diagram illustrating transmission of uplink data by a UE without aggregating data from different data streams.
[0020] Figure 7B and Figure 7C is a data flow diagram illustrating a method of uplink data transmission according to various embodiments.
[0021] Fig.7D is a timing diagram illustrating the timing of various message and data transmissions and reception of different application data streams by a modem of a UE in accordance with various embodiments.
[0022] Fig. 8A and Figure 8B is a data flow diagram illustrating a method for uplink data transmission according to various embodiments.
[0023] Fig.9Ais a process flow diagram illustrating a method 900a for uplink data transmission according to various embodiments.
[0024] Figure 9B-9F Operations that may be performed as part of a method for uplink data transmission in accordance with various embodiments are illustrated.
[0025] Fig.10 is a component block diagram of a UE suitable for use with the various embodiments.
[0026] Fig.11 is a component block diagram of a network device suitable for use with the various embodiments. DETAILED DESCRIPTION
[0027] Various embodiments will be described in detail with reference to the accompanying drawings. Whenever possible, the same reference numerals will be used throughout the drawings to refer to the same or similar components. References to specific examples and implementations are for illustrative purposes and are not intended to limit the scope of the claims.
[0028] Various embodiments enable a UE to reduce communication latency for data transmission to a RAN by using uplink resource grant timing information received from the RAN, so that an application executed by a processor in the UE can provide data to a modem for transmission to the RAN based on the uplink resource grant timing information. The uplink resource grant timing information received from the RAN may include the timing of the grant of uplink transmission resources. The data for transmission to the RAN may include application data and / or one or more service flows. Various embodiments also enable the UE to improve the efficiency of sending data to the RAN by delaying the transmission of some data (e.g., first application data or a first service flow) to the RAN until the UE sends other data (e.g., second application data or a second service flow) to the RAN.
[0029] The term "User Equipment (UE)" as used herein refers to any or all of the following: wireless communication devices, wireless appliances, cellular phones, smart phones, portable computing devices, personal or mobile multimedia players, laptop computers, tablet computers, smartbooks, ultrabooks, handheld computers, wireless email receivers, multimedia Internet-enabled cellular phones, wireless router devices, medical devices and equipment, biosensors / devices, wearable devices (including smart watches, smart clothing, smart glasses, smart wristbands, smart jewelry (e.g., smart rings and smart bracelets)), entertainment devices (e.g., wireless game controllers, music and video players, satellite wireless devices, etc.), wireless network-enabled Internet of Things (IoT) devices (including smart meters / sensors), industrial manufacturing equipment, large and small machines and appliances for home or business use, wireless communication elements within autonomous and semi-autonomous automobiles, wireless devices attached to or integrated into various mobile platforms, and similar electronic devices including memory, wireless communication components and programmable processors.
[0030] The term "system on chip" (SOC) is used herein to refer to a single integrated circuit (IC) chip containing multiple resources or processors integrated on a single substrate. A single SOC may contain circuits for digital, analog, mixed signal, and radio frequency functions. A single SOC may also include any number of general or special processors (digital signal processors, modem processors, video processors, etc.), memory blocks (e.g., ROM, RAM, flash memory, etc.), and resources (e.g., timers, voltage regulators, oscillators, etc.). The SOC may also include software for controlling the integrated resources and processors and for controlling peripheral devices.
[0031] The term "system in package" (SIP) may be used herein to refer to a single module or package that includes multiple resources, computing units, cores, or processors on two or more IC chips, substrates, or SOCs. For example, a SIP may include a single substrate on which multiple IC chips or semiconductor dies are stacked in a vertical configuration. Similarly, a SIP may include one or more multi-chip modules (MCMs) on which multiple ICs or semiconductor dies are packaged into a unified substrate. A SIP may also include multiple independent SOCs coupled together via high-speed communication circuits and packaged adjacently (e.g., packaged on a single motherboard or in a single wireless device). The proximity of the SOCs facilitates high-speed communication and sharing of memory and resources.
[0032] As used herein, the terms "network", "system", "wireless network", "cellular network" and "wireless communication network" may interchangeably refer to a portion or all of an operator's wireless network associated with a wireless device and / or a subscription on a wireless device. The techniques described herein may be used for various wireless communication networks, such as code division multiple access (CDMA), time division multiple access (TDMA), FDMA, orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), and other networks. In general, any number of wireless networks may be deployed in a given geographic area. Each wireless network may support at least one radio access technology that may operate on one or more frequencies or frequency ranges. For example, a CDMA network may implement Universal Terrestrial Radio Access (UTRA) (including Wideband Code Division Multiple Access (WCDMA) standards), CDMA2000 (including IS-2000, IS-95 and / or IS-856 standards), and the like. In another example, a TDMA network may implement Enhanced Data Rates Global System for Mobile Communications (GSM) Evolution (EDGE). In another example, an OFDMA network may implement Evolved UTRA (E-UTRA) (including the LTE standard), Institute of Electrical and Electronics Engineers (IEEE) 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash OFDM Etc. Reference may be made to wireless networks using the LTE standard, and thus the terms "Evolved Universal Terrestrial Radio Access," "E-UTRAN," and "eNodeB" may also be used interchangeably herein to refer to a wireless network. However, these references are provided merely as examples, and are not intended to exclude wireless networks using other communication standards. For example, although various third generation (3G) systems, fourth generation (4G) systems, and fifth generation (5G) systems are discussed herein, these systems are referenced only as examples, and future generation systems (e.g., sixth generation (6G) or higher systems) may be substituted in various examples.
[0033] Applications executed in a processor of a UE that provides real-time audio and video communication services (e.g., Voice over Internet Protocol (VoIP), WhatsApp, Facetime, etc.) typically send and receive data at a threshold level to provide performance at a threshold level. In the absence of data at a threshold level, the performance of these applications may degrade over time. Similarly, extended reality (XR) applications (e.g., including virtual reality (VR), augmented reality (AR), and other similar services and applications) may be configured to share, exchange, or coordinate competing tasks with a network computing device (e.g., a server). In some applications, a "split XR" application or service may divide or allocate competing tasks between a network computing device and a UE. For example, UE or user gesture information may be sent to a network computing device that renders a video frame in an uplink communication link, and the network computing device may send a rendered video frame to the UE in a downlink communication link for display on the UE's display device. These applications are often referred to as "delay-sensitive" because the ability to provide performance at a threshold level requires relatively low uplink and / or downlink latency, otherwise the performance of these applications may degrade. In addition, these applications are configured to reduce power consumption of mobile devices that are typically battery-powered.
[0034] In order to reduce data latency for transmitting data to a communication network in a power efficient manner, the UE may perform operations to align the timing of a traffic flow with an uplink transmission opportunity (e.g., a periodic uplink grant) received from the communication network (e.g., from a network element of a radio access network (RAN), such as a base station). In some embodiments, the UE may be configured so that a modem of the UE receives data for transmission to the RAN at a time coordinated with the uplink transmission opportunity. Configuring the modem to receive data for transmission to the RAN at a time coordinated with the uplink transmission opportunity is sometimes referred to herein as "aligning" traffic flows or application data with uplink communication resources or uplink transmission opportunities. If uplink traffic is aligned with uplink communication resources or uplink transmission opportunities, latency in these data transmissions is reduced. For example, in some cases, data for transmission to the RAN may be received by the modem "instantly" from an application for the modem to process these data for transmission to the RAN.
[0035] In order to improve data communication efficiency and reduce power consumption of the UE, the UE may perform operations to store (e.g., buffer) application data from a first service flow, and then send the stored application data from the first service flow at a later time when sending second application data to the RAN. These operations are sometimes referred to herein as "aggregating" service flows or application data for transmission to the RAN. In some embodiments, the UE may delay the transmission of information from a non-delay-sensitive service flow until the UE sends information from a delay-sensitive service flow, thereby aggregating the transmission of data from the non-delay-sensitive service flow with data from the delay-sensitive service flow. In various embodiments, the aggregation of service flows or application data for transmission to the RAN may be performed within an application executed in an application processor of the UE or within a modem of the UE.
[0036] In some embodiments, an application executed in an application processor in the UE that sends a service flow to a modem for transmission to the RAN may perform operations for aggregating service flows. In these embodiments, the application may pass information from the aggregated flow to the modem of the UE substantially simultaneously with data of the aligned service flows. For example, the application may store information from a first service flow until the modem is scheduled to send information from a second service flow to the RAN. Since the delivery of information from a first non-delay-sensitive service flow to the modem may trigger the modem to send a scheduling request to the RAN, the storage of information from the first service flow by the application avoids triggering the modem to send a scheduling request. The application may deliver the stored information from the first service flow to the modem at a later time when the modem is scheduled to send information from a second delay-sensitive service flow to the RAN.
[0037] In some embodiments, the modem of the UE may perform operations for the aggregated traffic flow. In these embodiments, the modem may buffer data from the aggregated traffic flow and transmit the data from the aggregated traffic flow substantially simultaneously with data from the aligned traffic flow.
[0038] In some embodiments, the UE (e.g., a modem in the UE) may receive uplink resource grant timing information indicating an uplink transmission opportunity from the RAN and provide the uplink resource grant timing information to an application executed in a processor of the UE. In response, the UE (e.g., a modem in the UE) may receive data from the application for transmission to the RAN during the uplink transmission opportunity, thereby enabling the UE to send data to the RAN during the uplink transmission opportunity without delay.
[0039] For example, when an application is started on a UE, the UE may begin to perform operations for a session establishment procedure, including sending a session establishment request. A network element of a communication network (e.g., in a core network) may accept the session establishment request and may configure the RAN, including a quality of service (QoS) profile of a service flow, such as information of a data service or application. The RAN may configure wireless communication link resources for sending and receiving information of the service flow, for example, based on a configuration message received from the core network.
[0040] In some embodiments, the RAN can identify the timing of the expected uplink traffic from the UE, for example, by scheduling the periodic timing of the uplink traffic, and can appropriately configure the wireless communication link resources (e.g., periodic communication link resources). In some embodiments, the configuration of the periodic resources can be full or partial.
[0041] When establishing a communication session, the modem of the UE may receive a grant of uplink communication resources from the RAN, which grant may include uplink resource grant timing information indicating an upcoming uplink transmission opportunity for the UE to send application data to the RAN in the uplink. The modem of the UE may provide an indication to the application that the modem is ready to send uplink data traffic and send, report or otherwise provide uplink resource grant timing information to the application. Providing the uplink resource grant timing information to the application may enable the application to schedule or control data provided for transmission to the modem according to or based on the uplink resource grant timing information. The modem may then send data on the uplink resources (e.g., periodic uplink resources).
[0042] In some embodiments, the uplink resource grant timing information provided to the application may include an uplink period (a time during which the modem may send data to the RAN) and an offset value within the uplink period, which enables the application to send data for transmission to the RAN during the uplink transmission opportunity. In some embodiments, the offset value may include a time value, a time slot offset, or another time value that the application may use to send application data to the modem.
[0043] In some embodiments, a UE (e.g., a modem) may receive uplink resource grant timing information from a RAN via radio resource control (RRC) signaling. In some embodiments, the UE may receive uplink resource grant timing information via RRC signaling and may receive downlink control information (DCI) indicating an offset value within an uplink period. In some embodiments, the uplink period and the offset value may be explicitly signaled to the UE by the RAN, for example, in a message that explicitly provides an uplink. In some embodiments, the UE may determine the uplink period and the offset value using one or more aspects of an uplink grant message that may not include explicit signaling of the uplink period or the offset value. For example, the UE may receive an uplink grant from the RAN in a DCI having a pattern indicating an uplink period and an offset value within the uplink period.
[0044] In some embodiments, the uplink resource grant may include a periodic uplink resource grant.The periodic uplink resource grant may include a configured grant (CG) type 1, a CG type 2, and a dynamic grant.
[0045] In CG Type 1, the RAN may provide an indication of the uplink period and offset value via RRC signaling (eg, an RRC signal or an RRC message). In some embodiments, the UE may identify periodic uplink resource grants from a CG Type 1 configuration in an RRC signal or message.
[0046] In CG type 2, the RAN may provide partial configuration of uplink resource grants, such as an indication of an uplink period, but without an indication of an offset value, via RRC signaling. The RAN may provide information or signals indicating an offset value during an activation period using a DCI scrambled by a configured scheduling radio network temporary identifier (CS-RNTI) (e.g., DCI format 0_1).
[0047] In some embodiments, the UE can identify periodic uplink resource grants from a CG type 2 configuration (e.g., an uplink period) in which an RRC message is signaled, and can identify an offset value based on the time (e.g., time slot) in which a DCI encrypted by the CS-RNTI is received.
[0048] In dynamic grants, the RAN may periodically send uplink resource grants via DCI scrambled by a cell RNTI (C-RNTI). In some embodiments, the UE may determine a periodic pattern of the received DCI scrambled by the C-RNTI (e.g., by applying an algorithm to analyze the periodic pattern of the received DCI). For example, the UE may recognize that some uplink resource grants with similar transport block sizes (TBS) are periodically received.
[0049] In some embodiments, the UE may aggregate the traffic flows or application data for transmission to the RAN by storing application data (including the first application data) from the first traffic flow, and later sending the stored (first) application data to the RAN together with the second application data. In some embodiments, the UE may receive the first application data and store the first application data at a first time, and receive the second application data at a second time, and then send the second application data and an uplink transmission request associated with the first application data during an uplink transmission opportunity. The UE may receive an uplink resource grant to send the first application data, and may use the granted uplink resources to send the first application data. In some embodiments, the uplink transmission request may include a scheduling request (SR), a buffer status report (BSR), or another suitable request for uplink resources. In some embodiments, storing the first application data avoids or prevents the modem from sending an uplink transmission request associated with the first application data, which enables the modem to remain in a simple sleep mode or a simple low power mode (e.g., a discontinuous reception (DRX) sleep period), thereby saving battery power of the UE.
[0050] In some embodiments, the modem may receive an indication from an application that the modem may store the first application data (i.e., an indication about allowing the first application data to be stored). For example, the first application data may be non-delay sensitive data that may be stored and sent to the RAN at a later time without degrading the performance of the application. In these embodiments, the modem may store the first application data based on or in response to (e.g., associated with) an indication from the application that allows the first application data to be stored. For example, the modem may receive from the application an indication or identification of which application data the modem is allowed to store or should store for delayed transmission. The application may provide such signaling or identification at application startup or at any time while the application is executing. The application may also provide signaling or indications to change whether certain application data should or is allowed to be stored for delayed transmission by the modem. In some embodiments, the modem may include an application program interface (API) configured to enable sending and receiving of such indication or identification information.
[0051] In some embodiments, the stored first application data may not be associated with an indication that the data is available for transmission to the RAN, and in the absence of such an indication, the modem may not send a scheduling request for the first application data to the RAN. In some embodiments, the modem may receive a storage duration for or associated with the first application data from the application. In these embodiments, when an uplink transmission opportunity occurs before the end of the storage duration (e.g., in response to determining that the storage duration has not ended before the uplink transmission opportunity), the modem may send the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity. In the event that the storage duration ends before the uplink transmission opportunity (e.g., in response to determining that the storage duration ends before the uplink transmission opportunity), the modem may send a scheduling request (SR) associated with the stored first application data to the RAN to request uplink communication resources to enable the modem to send the first application data to the RAN. In some embodiments, the modem may include an API configured to enable sending and receiving information including the storage duration.
[0052] The application generating the application data may have a better ability than the modem (e.g., based on greater access to all aspects of the application data) to determine whether the generated application data is delay sensitive. In some embodiments, the application may determine certain application data for temporary storage (e.g., buffered by the application) and certain application data for sending to the modem for transmission to the RAN. In some embodiments, the application may send both the most recently generated data (e.g., first application data) and the stored application data (e.g., second application data) to the modem for transmission to the RAN. In some embodiments, the modem may receive first application data generated at a first data time and second application data generated at a second data time from the application at a time prior to the uplink transmission opportunity. In these embodiments, the modem may send the first application data and an uplink transmission request associated with the second application data during an uplink transmission opportunity (e.g., a periodic uplink grant).
[0053] As mentioned above, in some embodiments, the modem may be configured with an API that enables the transmission of information (e.g., uplink resource grant timing information, uplink period information, offset values, indications of permitted storage of application data, storage duration information of application data, and similar information) between the modem and the application. In some embodiments, the modem may provide the uplink resource grant timing information to the application via the modem API, and the modem may receive data from the application via the API based on (e.g., associated with) the uplink resource grant timing information for transmission to the RAN. In some embodiments, the API may include a semi-static API, via which the modem provides the uplink resource grant timing information (e.g., uplink period information and / or offset values) to the application. In these embodiments, the application may be configured to accurately determine the timing of the uplink resource grant, and the application may select application data or data streams for transmission to the modem, and may select the timing at which the application sends the application data to the modem.
[0054] In some embodiments, the API may include a dynamic API by which the modem may provide timing adjustment information to the application, which the application may use to adjust the timing of the application sending application data to the modem. In some embodiments, the application may not be configured to accurately determine the timing of the uplink resource grant, and the modem may monitor the time when the application data is received from the application to discover timing drift from the uplink resource grant timing information. For example, the modem may determine whether the application data is received. The modem may determine whether the application data is received.
[0055] In some embodiments, the modem may provide a timing adjustment to the application so that the application may adjust the timing of the application sending application data to the modem forward or backward. In some embodiments, the modem may receive data from the application at a time that meets a timing drift threshold with the uplink resource grant timing information. In these embodiments, the modem may provide a timing adjustment to the application via an API associated with receiving data for transmission to the RAN at a time that meets the timing drift threshold with the uplink resource grant timing information. The modem may receive second data from the application via an API for transmission to the RAN at a time within the timing drift threshold with the uplink resource grant timing information. In some embodiments, the application may send an identifier or signal to the modem indicating that the modem is allowed to monitor the timing of one or more business flows or application data.
[0056] Various embodiments improve wireless communications by enabling a UE to reduce communication delays for data transmission to a RAN by using timing information received from the RAN (e.g., timing of a grant of uplink transmission resources) to enable an application executing on the UE to provide data (e.g., application data, or one or more service flows) for transmission to the RAN to a modem for transmission to the RAN. Various embodiments also improve wireless communications by enabling the UE to delay transmission of some data (e.g., first application data, or a first service flow) to the RAN until the UE sends other data (e.g., second application data, or a second service flow) to the RAN.
[0057] Figure 1A 1 is a system block diagram illustrating an exemplary communication system 100 suitable for implementing any of the various embodiments. The communication system 100 may be a 5G New Radio (NR) network or any other suitable network, such as a Long Term Evolution (LTE) network. Figure 1A A 5G network is shown, but subsequent generation networks may also include the same or similar elements. Therefore, references to 5G networks and 5G network elements in the following description are for illustrative purposes and are not intended to be limiting.
[0058] The communication system 100 may include a heterogeneous network architecture including a core network 140 and various UEs (shown as Figure 1AUE 120a-120e in the communication system 100). The communication system 100 may also include multiple network devices 110a, 110b, 110c and 110d and other network entities, such as base stations and network nodes. The network device is an entity that communicates with the UE, and in various embodiments may be referred to as a Node B, an LTE evolved Node B (eNodeB or eNB), an access point (AP), a radio head, a transmit receive point (TRP), a new radio base station (NR BS), a 5G Node B (NB), a next generation Node B (gNodeB or gNB), etc. In various communication network implementations or architectures, the network device may be implemented as an aggregated base station, a decomposed base station, an integrated access and backhaul (IAB) node, a relay node, a side link node, etc., such as a virtualized radio access network (vRAN) or an open radio access network (O-RAN). In addition, in various communication network implementations or architectures, the network device (or network entity) may be implemented in an aggregated or monolithic base station architecture, or alternatively may include one or more of a centralized unit (CU), a distributed unit (DU), a wireless unit (RU), a near real-time (RT) RAN intelligent controller (RIC), or a non-real-time RIC in a decomposed base station architecture. Each network device can provide communication coverage for a specific geographic area. In 3GPP, depending on the context in which the term "cell" is used, the term "cell" can refer to a coverage area or a combination thereof of a network device or a network device subsystem (wherein the network device or network device subsystem serves the coverage area). The core network 140 can be any type of core network, such as an LTE core network (e.g., an evolved packet core (EPC) network), a 5G core network, and the like.
[0059] The network devices 110a-110d may provide communication coverage for a macro cell, a micro cell, a femto cell, another type of cell, or a combination thereof. A macro cell may cover a relatively large geographic area (e.g., a radius of several kilometers) and may allow unrestricted access to UEs with service subscriptions. A micro cell may cover a relatively small geographic area and may allow unrestricted access to UEs with service subscriptions. A femto cell may cover a relatively small geographic area (e.g., a home) and may allow restricted access to UEs associated with the femto cell (e.g., UEs in a closed subscriber group (CSG)). A network device for a macro cell may be referred to as a macro node or a macro base station. A network device for a micro cell may be referred to as a micro node or a micro base station. A network device for a femto cell may be referred to as a femto node, a femto base station, a home node, or a home network device. In the example shown in FIG. 1 , network device 110a may be a macro node for macro cell 102a, network device 110b may be a pico node for pico cell 102b, and network device 110c may be a femto node for femto cell 102c. Network devices 110a-110d may support one or more (e.g., three) cells. The terms “network device,” “network node,” “eNB,” “base station,” “NR BS,” “gNB,” “TRP,” “AP,” “Node B,” “5G BS,” and “cell” may be used interchangeably herein.
[0060] In some examples, the cell may not be fixed, and the geographic area of the cell may move depending on the location of the network device (e.g., a network node or a mobile network device). In some examples, the network devices 110a-110d may be interconnected to each other and to one or more other network devices (e.g., a base station or a network node (not shown)) in the communication system 100 via various types of backhaul interfaces (e.g., direct physical connections, virtual networks, or combinations thereof using any suitable transport networks).
[0061] The network devices 110a-110d may communicate with the core network 140 over a wired or wireless communication link 126. The UEs 120a-120e may communicate with the network nodes 110a-110d over a wireless communication link 122. The wired communication link 126 may use various wired networks (e.g., Ethernet, TV cable, telephone, fiber optic, and other forms of physical network connections) that may use one or more wired communication protocols, such as Ethernet, point-to-point protocol, high-level data link control (HDLC), high-level data communications control protocol (ADCCP), and transmission control protocol / Internet protocol (TCP / IP).
[0062] The communication system 100 may also include a relay station (e.g., relay network device 110d). A relay station is an entity capable of receiving a data transmission from an upstream station (e.g., a network device or UE) and sending the data transmission to a downstream station (e.g., a UE or network device). A relay station may also be a UE capable of relaying transmissions for other UEs. Figure 1A In the example shown in FIG. 1 , a relay station 110d may communicate with macro network device 110a and UE 120d to facilitate communication between network device 110a and UE 120d. A relay station may also be referred to as a relay network device, a relay base station, a relay, or the like.
[0063] The communication system 100 may be a heterogeneous network including different types of network devices (e.g., macro network devices, pico network devices, femto network devices, relay network devices, etc.). These different types of network devices may have different transmit power levels, different coverage areas, and different effects on interference in the communication system 100. For example, a macro node may have a high transmit power level (e.g., 5 to 40 watts), while a pico network device, a femto network device, and a relay network device may have a lower transmit power level (e.g., 0.1 to 2 watts).
[0064] The network controller 130 may be coupled to a set of network devices and may provide coordination and control for these network devices. The network controller 130 may communicate with the network devices via a backhaul. The network devices may also communicate with each other, for example directly or indirectly, via a wireless or wired backhaul.
[0065] UEs 120a, 120b, 120c may be dispersed throughout the communication system 100, and each UE may be fixed or mobile. UE may also be referred to as an access terminal, terminal, mobile station, subscriber unit, station, wireless device, etc.
[0066] The macro network device 110a may communicate with the communication network 140 over a wired or wireless communication link 126. The UEs 120a, 120b, 120c may communicate over a wireless communication link 122 with the network devices 110a-110d.
[0067] The wireless communication links 122 and 124 may include multiple carrier signals, frequencies or frequency bands, each of which may include multiple logical channels. The wireless communication links 122 and 124 may utilize one or more radio access technologies (RATs). Examples of RATs that may be used in wireless communication links include 3GPP LTE, 3G, 4G, 5G (e.g., NR), GSM, code division multiple access (CDMA), wideband code division multiple access (WCDMA), Worldwide Interoperability for Microwave Access (WiMAX), time division multiple access (TDMA), and other mobile phone communication technology cellular RATs. Further examples of RATs that may be used in one or more of the wireless communication links within the communication system 100 include medium-range protocols (e.g., Wi-Fi, LTE-U, LTE Direct, LAA, MuLTEfire) and relatively short-range RATs (e.g., ZigBee, Bluetooth, and Bluetooth Low Energy (LE)).
[0068] Some wireless networks (e.g., LTE) utilize orthogonal frequency division multiplexing (OFDM) on the downlink and single carrier frequency division multiplexing (SC-FDM) on the uplink. OFDM and SC-FDM divide the system bandwidth into multiple (K) orthogonal subcarriers, which are also commonly referred to as tones, frequency bands, etc. Each subcarrier can be modulated with data. Typically, modulation symbols are sent in the frequency domain using OFDM and in the time domain using SC-FDM. The spacing between adjacent subcarriers can be fixed, and the total number of subcarriers (K) can depend on the system bandwidth. For example, the spacing of the subcarriers can be 15kHz, and the minimum resource allocation (referred to as a "resource block") can be 12 subcarriers (or 180kHz). Therefore, for system bandwidths of 1.25, 2.5, 5, 10, or 20 megahertz (MHz), the nominal fast Fourier transform (FFT) size can be equal to 128, 256, 512, 1024, or 2048, respectively. The system bandwidth may also be partitioned into subbands. For example, a subband may cover 1.08 MHz (ie, 6 resource blocks), and there may be 1, 2, 4, 8, or 16 subbands for system bandwidths of 1.25, 2.5, 5, 10, or 20 MHz, respectively.
[0069] Although the description of some implementations may use terms and examples associated with LTE technology, some implementations may be applicable to other wireless communication systems, such as new radio (NR) or 5G networks. NR can utilize OFDM with a cyclic prefix (CP) on the uplink (UL) and downlink (DL), and includes support for half-duplex operation using time division duplex (TDD). A single component carrier bandwidth of 100 MHz can be supported. NR resource blocks can span 12 subcarriers with a subcarrier bandwidth of 75 kHz over a duration of 0.1 milliseconds (ms). Each radio frame may include 50 subframes with a length of 10 ms. Therefore, each subframe may have a length of 0.2 ms. Each subframe may indicate a link direction (ie, DL or UL) for data transmission, and the link direction of each subframe may be switched dynamically. Each subframe may include DL / UL data and DL / UL control data. Beamforming may be supported and the beam direction may be dynamically configured. Multiple-input multiple-output (MIMO) transmission with precoding may also be supported. MIMO configuration in DL can support up to 8 transmit antennas with multi-layer DL transmission of up to 8 streams and up to 2 streams per UE. Multi-layer transmission of up to 2 streams per UE can be supported.
[0070] Aggregation of multiple cells (with up to 8 serving cells) may be supported. Alternatively, NR may support different air interfaces other than the OFDM-based air interface.
[0071] Some UEs may be considered as machine type communication (MTC) or evolved or enhanced machine type communication (eMTC) UEs. MTC and eMTC UEs include, for example, robots, drones, remote control devices, sensors, meters, monitors, location tags, etc., which may communicate with a network device, another device (e.g., a remote control device), or some other entity. A wireless computing platform may provide connectivity, for example, to or to a network (e.g., a wide area network such as the Internet or a cellular network) via a wired or wireless communication link. Some UEs may be considered as Internet of Things (IoT) devices or may be implemented as NB-IoT (narrowband Internet of Things) devices. UE 120a-120e may be included in a housing that houses components of UE 120a-120e, such as a processor component, a memory component, a similar component, or a combination thereof.
[0072] Typically, any number of communication systems and any number of wireless networks can be deployed in a given geographic area. Each communication system and wireless network can support a specific radio access technology (RAT) and can operate on one or more frequencies. RAT can also be referred to as a radio technology, an air interface, etc. Frequency can also be referred to as a carrier, a frequency channel, etc. Each frequency can support a single RAT in a given geographic area to avoid interference between communication systems of different RATs. In some cases, 4G / LTE and / or 5G / NR RAT networks can be deployed. For example, a 5G non-standalone (NSA) network can utilize both the 4G / LTE RAT on the 4G / LTE RAN side of a 5G NSA network and the 5G / NR RAT on the 5G / NR RAN side of a 5G NSA network. Both the 4G / LTE RAN and the 5G / NR RAN can be connected to each other and to a 4G / LTE core network (e.g., an EPC network) in a 5G NSA network. Other exemplary network configurations may include a 5G standalone (SA) network, in which a 5G / NR RAN is connected to a 5G core network.
[0073] In some implementations, two or more UEs 120a-120e (e.g., shown as UE 120a and UE 120e) may communicate directly (e.g., without using network nodes 110a-110d as an intermediary to communicate with each other) using one or more side link channels 124. For example, UEs 120a-120e may communicate using peer-to-peer (P2P) communication, device-to-device (D2D) communication, a mesh network, or a similar network, a vehicle-to-everything (V2X) protocol (which may include a vehicle-to-vehicle (V2V) protocol, a vehicle-to-infrastructure (V2I) protocol, etc.), or a combination thereof. In this case, UEs 120a-120e may perform scheduling operations, resource selection operations, and other operations as performed by network nodes 110a-110d as described elsewhere herein.
[0074] The deployment of a communication system (e.g., a 5G NR system) can be arranged in a variety of ways with various components or parts. In a 5G NR system or network, a network node, a network entity, a mobility element of a network, a radio access network (RAN) node, a core network node, a network element, or a network device (e.g., a base station (BS), or one or more units (or components) performing base station functions) can be implemented in an aggregated or decomposed architecture. For example, a base station (e.g., a node B (NB), an evolved NB (eNB), an NR BS, a 5G NB, an access point (AP), a transmit receive point (TRP), or a cell, etc.) can be implemented as an aggregated base station (also referred to as an independent BS or a monolithic BS) or as a decomposed base station.
[0075] The aggregated base station can be configured to utilize a wireless protocol stack physically or logically integrated within a single RAN node. The decomposed base station can be configured to utilize a protocol stack physically or logically distributed in two or more units (e.g., one or more central or centralized units (CUs), one or more distributed units (DUs), or one or more wireless units (RUs)). In some aspects, the CU can be implemented within a RAN node, and one or more DUs can be co-located with the CU, or alternatively can be geographically or virtually distributed in one or more other RAN nodes. The DU can be implemented to communicate with one or more RUs. Each of the CU, DU, and RU can also be implemented as a virtual unit, referred to as a virtual central unit (VCU), a virtual distributed unit (VDU), or a virtual wireless unit (VRU).
[0076] Base station type operations or network designs may take into account the aggregated nature of base station functionality. For example, a disaggregated base station may be used in an integrated access backhaul (IAB) network, an open radio access network (O-RAN) (e.g., a network configuration sponsored by the O-RAN Alliance), or a virtualized radio access network (vRAN, also known as a cloud radio access network (C-RAN)). Decomposition may include distributing functionality across two or more units at various physical locations, as well as virtually distributing functionality for at least one unit, which may enable flexibility in network design. Individual units of a disaggregated base station or disaggregated RAN architecture may be configured for wired or wireless communication with at least one other unit.
[0077] Figure 1B is a system block diagram illustrating an exemplary decomposed base station 160 suitable for implementing any of the various embodiments. Figure 1A and Figure 1B , the decomposed base station 160 architecture may include one or more central units (CU) 162 that can communicate directly with the core network 180 via a backhaul link, or indirectly with the core network 180 through one or more decomposed base station units (e.g., a near real-time (Near-RT) RAN intelligent controller (RIC) 164 linked via E2, or a non-near real-time (Non-RT) RIC 168 associated with a service management and control (SMO) framework 166, or both). The CU 162 may communicate with one or more distributed units (DU) 170 via corresponding mid-haul links (e.g., F1 interfaces). The DU 170 may communicate with one or more radio units (RU) 172 via corresponding forward links. The RU 172 may communicate with corresponding UEs 120 via one or more radio frequency (RF) access links. In some implementations, a UE 120 may be served by multiple RUs 172 simultaneously.
[0078] Each unit (i.e., CU 162, DU 170, RU 172), as well as near real-time RIC 164, non-real-time RIC 168, and SMO framework 166 may include or be coupled to one or more interfaces configured to receive or send signals, data, or information (collectively referred to as signals) via a wired or wireless transmission medium. Each of the units, or associated processors or controllers that provide instructions to the communication interface of the unit, may be configured to communicate with one or more of the other units via a transmission medium. For example, a unit may include a wired interface that is configured to receive or send signals to one or more other units on a wired transmission medium. In addition, a unit may include a wireless interface that may include a receiver, transmitter, or transceiver (e.g., a radio frequency (RF) transceiver) configured to receive or send signals or receive and send signals to one or more other units on a wireless transmission medium.
[0079] In some aspects, CU 162 may carry one or more higher layer control functions. These control functions may include radio resource control (RRC), packet data convergence protocol (PDCP), service data adaptation protocol (SDAP), and the like. Each control function may be implemented using an interface configured to transmit signals to other control functions carried by CU 162. CU 162 may be configured to process user plane functions (i.e., central unit-user plane (CU-UP)), control plane functions (i.e., central unit-control plane (CU-CP)), or a combination thereof. In some implementations, CU 162 may be logically divided into one or more CU-UP units and one or more CU-CP units. When the CU-UP unit is implemented in an O-RAN configuration, it may communicate bidirectionally with the CU-CP unit via an interface (e.g., an E1 interface). CU 162 may be implemented to communicate with DU 170 as needed for network control and signaling.
[0080] DU 170 may correspond to a logical unit including one or more base station functions to control the operation of one or more RU 172. In some aspects, DU 170 may carry one or more of a radio link control (RLC) layer, a medium access control (MAC) layer, and one or more high physical (PHY) layers (e.g., modules for forward error correction (FEC) encoding and decoding, scrambling, modulation and demodulation, etc.), depending at least in part on functional splits (e.g., those defined by the Third Generation Partnership Project (3GPP)). In some aspects, DU 170 may also carry one or more low PHY layers. Each layer (or module) may be implemented using an interface configured to transmit signals with other layers (and modules) carried by DU 170 or with control functions carried by CU 162.
[0081] The lower layer functions may be implemented by one or more RUs 172. In some deployments, the RUs 172 controlled by the DUs 170 may correspond to logical nodes that carry RF processing functions, or low PHY layer functions (e.g., performing fast Fourier transforms (FFTs), inverse FFTs (iFFTs), digital beamforming, physical random access channel (PRACH) extraction and filtering, etc.), or both, based at least in part on functional splitting (e.g., lower layer functional splitting). In this architecture, the RUs 172 may be implemented to handle over-the-air (OTA) communications with one or more UEs 120. In some implementations, real-time and non-real-time aspects of control plane communications and user plane communications with the RUs 172 may be controlled by the corresponding DUs 170. In some scenarios, this configuration may enable the DUs 170 and CUs 162 to be implemented in a cloud-based RAN architecture (e.g., a vRAN architecture).
[0082] The SMO framework 166 may be configured to support RAN deployment and provisioning of non-virtualized and virtualized network elements. For non-virtualized network elements, the SMO framework 166 may be configured to support deployment of dedicated physical resources for RAN coverage requirements, which may be managed via an operation and maintenance interface (e.g., an O1 interface). For virtualized network elements, the SMO framework 166 may be configured to interact with a cloud computing platform (e.g., an open cloud (O-Cloud) 176) to perform network element lifecycle management (e.g., to instantiate virtualized network elements) via a cloud computing platform interface (e.g., an O2 interface). Such virtualized network elements may include, but are not limited to, CU 162, DU 170, RU 172, and near real-time RIC 164. In some implementations, the SMO framework 166 may communicate with hardware aspects of the 4G RAN (e.g., an open eNB (O-eNB) 174) via an O1 interface. In addition, in some implementations, the SMO framework 166 may communicate directly with one or more RUs 172 via an O1 interface. The SMO framework 166 may also include a non-real-time RIC 168 configured to support the functionality of the SMO framework 166 .
[0083] The non-real-time RIC 168 may be configured to include logic functions that implement non-real-time control and optimization of RAN elements and resources, artificial intelligence / machine learning (AI / ML) workflows including model training and updating, or policy-based guidance of applications / features in the non-real-time RIC 164. The non-real-time RIC 168 may be coupled to or communicate with the near real-time RIC 164 (e.g., via an A1 interface). The near real-time RIC 164 may be configured to include logic functions that implement near real-time control and optimization of RAN elements and resources via data collection and actions on an interface (e.g., via an E2 interface) that connects one or more CUs 162, one or more DUs 170, or both, and an O-eNB with the near real-time RIC 164.
[0084] In some implementations, in order to generate an AI / ML model to be deployed in the near real-time RIC 164, the non-real-time RIC 168 may receive parameters or external control information from an external server. Such information may be utilized by the near real-time RIC 164 and may be received from a non-network data source or from a network function at the SMO framework 166 or the non-real-time RIC 168. In some examples, the non-real-time RIC 168 or the near real-time RIC 164 may be configured to tune RAN behavior or performance. For example, the non-real-time RIC 168 may monitor long-term trends and performance patterns and employ AI / ML models to perform corrective actions through the SMO framework 166 (e.g., via reconfiguration of O1) or via the generation of RAN management policies (e.g., A1 policies).
[0085] Figure 2 is a component block diagram illustrating an exemplary computing and wireless modem system 200 suitable for implementing any of the various embodiments. The various embodiments may be implemented on a variety of single-processor and multi-processor computer systems, including system-on-chip (SOC) or system-in-package (SIP).
[0086] refer to Figure 1A-Figure 2, the illustrated exemplary computing system 200 (which may be a SIP in some embodiments) includes two SOCs 202, 204 coupled to a clock 206, a voltage regulator 208, and a wireless transceiver 266, the wireless transceiver 266 being configured to send and receive wireless communications to / from a UE (e.g., 120a-120e) or a network device (e.g., 110a-110d) via an antenna (not shown). In some implementations, the first SOC 202 may operate as a central processing unit (CPU) of the UE, which executes instructions of a software application by performing arithmetic, logic, control, and input / output (I / O) operations specified by the instructions of the software application. In some implementations, the second SOC 204 may operate as a dedicated processing unit. For example, the second SOC 204 may operate as a dedicated 5G processing unit responsible for managing high-volume, high-speed (e.g., 5 Gbps, etc.) and / or very high frequency short wavelength (e.g., 28 GHz millimeter wave spectrum, etc.) communications.
[0087] The first SOC 202 may include a digital signal processor (DSP) 210, a modem processor 212, a graphics processor 214, an application processor 216, one or more coprocessors 218 (e.g., vector coprocessors) connected to one or more processors, memory 220, custom circuits 222, system components and resources 224, an interconnect / bus module 226, one or more temperature sensors 230, a thermal management unit 232, and a thermal power envelope (TPE) component 234. The second SOC 204 may include a 5G modem processor 252, a power management unit 254, an interconnect / bus module 264, a plurality of millimeter wave transceivers 256, a memory 258, and various additional processors 260, such as an application processor, a packet processor, and the like.
[0088] Each processor 210, 212, 214, 216, 218, 252, 260 may include one or more cores, and each processor / core may perform operations independently of other processors / cores. For example, the first SOC 202 may include a processor that executes a first type of operating system (e.g., FreeBSD, LINUX, OS X, etc.) and a processor that executes a second type of operating system (e.g., MICROSOFT WINDOWS10). In addition, any or all of the processors 210, 212, 214, 216, 218, 252, 260 may be included as part of a processor cluster architecture (e.g., a synchronous processor cluster architecture, an asynchronous or heterogeneous processor cluster architecture, etc.).
[0089] The first SOC 202 and the second SOC 204 may include various system components, resources and custom circuits for managing sensor data, analog-to-digital conversion, wireless data transmission, and for performing other specialized operations, such as decoding data packets and processing encoded audio and video signals to present in a web browser. For example, the system components and resources 224 of the first SOC 202 may include power amplifiers, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components for supporting processors and software clients running on UEs. System components and resources 224 and / or custom circuits 222 may also include circuits for docking with peripheral devices (e.g., cameras, electronic displays, wireless communication devices, external memory chips, etc.).
[0090] The first SOC 202 and the second SOC 204 can communicate via an interconnect / bus module 250. The various processors 210, 212, 214, 216, 218 can be interconnected to one or more memory elements 220, system components and resources 224, and custom circuits 222, and a thermal management unit 232 via an interconnect / bus module 226. Similarly, the processor 252 can be interconnected to a power management unit 254, a millimeter wave transceiver 256, a memory 258, and various additional processors 260 via an interconnect / bus module 264. The interconnect / bus modules 226, 250, 264 may include an array of reconfigurable logic gates and / or implement a bus architecture (e.g., CoreConnect, AMBA, etc.). Communication may be provided by an advanced interconnect, such as a high-performance network on chip (NoC).
[0091] The first SOC 202 and / or the second SOC 204 may also include an input / output module (not shown) for communicating with resources external to the SOC, such as a clock 206 and a voltage regulator 208. The resources external to the SOC (e.g., clock 206, voltage regulator 208) may be shared by two or more internal SOC processors / cores.
[0092] In addition to the exemplary SIP 200 discussed above, some implementations may be implemented in a variety of computer systems that may include a single processor, multiple processors, multi-core processors, or any combination thereof.
[0093] Figure 3 is a component block diagram illustrating a software architecture 300 including a wireless protocol stack for a user plane and a control plane in wireless communications suitable for implementing any of the various embodiments. Figure 1A-Figure 3, UE 320 may implement software architecture 300 to facilitate communication between UE 320 (e.g., UE 120a-120e, 200) and network device 350 (e.g., network device 110a-110d) of a communication system (e.g., 100). In various embodiments, each layer in software architecture 300 may form a logical connection with a corresponding layer in software of network device 350. Software architecture 300 may be distributed among one or more processors (e.g., processors 212, 214, 216, 218, 252, 260). Although shown for one wireless protocol stack, in a UE with multiple subscriber identity modules (SIMs), software architecture 300 may include multiple protocol stacks, each of which may be associated with a different SIM (e.g., in a dual SIM wireless communication device, two protocol stacks are associated with two SIMs, respectively). Although described below with reference to LTE communication layers, the software architecture 300 may support any of a variety of standards and protocols for wireless communications and / or may include additional protocol stacks that support any of a variety of wireless communications standards and protocols.
[0094] The software architecture 300 may include a non-access stratum (NAS) 302 and an access stratum (AS) 304. The NAS 302 may include functions and protocols for supporting packet filtering, security management, mobility control, session management, and services and signaling between a SIM of a UE (e.g., SIM 204) and its core network 140. The AS 304 may include functions and protocols for supporting communication between a SIM (e.g., SIM 204) and entities of a supported access network (e.g., network devices, network nodes, RUs, base stations, etc.). Specifically, the AS 304 may include at least three layers (layer 1, layer 2, and layer 3), each of which may include various sublayers.
[0095] In the user plane and control plane, layer 1 (L1) of AS 304 may be a physical layer (PHY) 306, which may oversee functions that enable transmission and / or reception over an air interface via a wireless transceiver (e.g., 266). Examples of such physical layer 306 functions may include cyclic redundancy check (CRC) attachment, coding blocks, scrambling and descrambling, modulation and demodulation, signal measurement, MIMO, etc. The physical layer may include various logical channels, including a physical downlink control channel (PDCCH) and a physical downlink shared channel (PDSCH).
[0096] In the user plane and the control plane, Layer 2 (L2) of AS 304 may be responsible for the link between UE 320 and network node 305 on physical layer 306. In some implementations, Layer 2 may include a medium access control (MAC) sublayer 308, a radio link control (RLC) sublayer 310, and a packet data convergence protocol (PDCP) 312 sublayer, and a service data adaptation protocol (SDAP) 317 sublayer, each of which forms a logical connection terminated at network node 350.
[0097] In the control plane, layer 3 (L3) of AS 304 may include a radio resource control (RRC) sublayer 3. Although not shown, the software architecture 300 may include additional layer 3 sublayers, as well as various upper layers above layer 3. In some implementations, the RRC sublayer 313 may provide functionality including broadcasting system information, paging, and establishing and releasing an RRC signaling connection between the UE 320 and the network node 350.
[0098] In various embodiments, the SDAP sublayer 317 may provide mapping between quality of service (QoS) flows and data radio bearers (DRBs). In some implementations, the PDCP sublayer 312 may provide uplink functions including multiplexing between different radio bearers and logical channels, sequence number addition, handover data processing, integrity protection, encryption, and header compression. In the downlink, the PDCP sublayer 312 may provide functions including in-sequence delivery of data packets, duplicate data packet detection, integrity verification, decryption, and header decompression.
[0099] In the uplink, the RLC sublayer 310 may provide segmentation and concatenation of upper layer data packets, retransmission of lost data packets, and automatic repeat request (ARQ). In the downlink, the RLC sublayer 310 functions may include reordering of data packets to compensate for unnecessary reception, reassembly of upper layer data packets, and ARQ.
[0100] In the uplink, the MAC sublayer 308 can provide functions including multiplexing between logical channels and transport channels, random access procedures, logical channel priorities, and hybrid ARQ (HARQ) operations. In the downlink, MAC layer functions may include channel mapping within a cell, demultiplexing, discontinuous reception (DRX), and HARQ operations.
[0101] While the software architecture 300 may provide functionality for sending data over a physical medium, the software architecture 300 may also include at least one host layer 314 to provide data transmission services to various applications in the UE 320. In some implementations, the application-specific functionality provided by the at least one host layer 314 may provide an interface between the software architecture and a general-purpose processor (e.g., 202).
[0102] In other implementations, the software architecture 300 may include one or more higher logical layers (e.g., transport, session, presentation, application, etc.) that provide host layer functionality. For example, in some implementations, the software architecture 300 may include a network layer (e.g., an Internet Protocol (IP) layer) where the logical connection terminates at a packet data network (PDN) gateway (PGW). In some implementations, the software architecture 300 may include an application layer where the logical connection terminates at another device (e.g., an end-user device, a server, etc.). In some implementations, the software architecture 300 may also include a hardware interface 316 between the physical layer 306 and communication hardware (e.g., one or more radio frequency (RF) transceivers) in the AS 304.
[0103] In various network implementations or architectures, different logical layers 308-317 in the network device 350 can be implemented in an aggregated or monolithic base station architecture, or alternatively in a disaggregated network device architecture, and the various logical layers can be implemented in one or more of a CU, DU, RU, near real-time RAN intelligent controller (RIC), or non-real-time (Non-RT) RIC. In addition, the network device 350 can be implemented as an aggregated base station, a disaggregated base station, an integrated access and backhaul (IAB) node, a relay node, a side link node, etc.
[0104] Figure 4 4 is a component block diagram illustrating elements of a UE 400 configured according to various embodiments. Figure 1A-Figure 4 , UE 400 (eg, 120 a - 120 e , 320 ) may be configured to communicate with the core network 140 via the base station 110 .
[0105] UE 400 may include one or more processors 404, memory 402, wireless transceiver 266, and other components. UE 400 may include a number of hardware, software, and / or firmware components that operate together to provide the functionality attributed herein to processor 404.
[0106] The memory 402 may include non-transitory storage media that electronically stores information. The electronic storage media of the memory 402 may include one or both of a system storage device that is provided integrally with the vehicle processing system 104 (i.e., substantially non-removable) and / or a removable storage device that is removably connected to the UE 400 via, for example, a port (e.g., a universal serial bus (USB) port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). In various embodiments, the memory 402 may include one or more of a charge-based storage medium (e.g., EEPROM, RAM, etc.), a solid-state storage medium (e.g., a flash drive, etc.), an optically readable storage medium (e.g., an optical disk, etc.), a magnetically readable storage medium (e.g., a magnetic tape, a magnetic hard drive, a floppy disk drive, etc.), and / or other electronically readable storage media.
[0107] Memory 402 may include one or more virtual storage resources (e.g., cloud storage, virtual private networks, and / or other virtual storage resources). Memory 402 may store software algorithms, information determined by processor 404, information received from another UE, from a network element of core network 140, information received from base station 110, and / or other information that enables UE 400 to operate as described herein.
[0108] Processor 404 may include one or more local processors that may be configured to provide information processing capabilities in UE 400. Thus, processor 404 may include one or more of the following: a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information. Figure 4 404 is shown as a single entity, but this is for illustrative purposes only. In some embodiments, processor 404 may include multiple processing units. These processing units may be physically located within the same device, or processor 404 may represent processing functionality of multiple devices distributed in the vehicle and operating in coordination.
[0109] The processor 404 may be configured by machine-readable instructions 432, which may include one or more instruction modules. The instruction modules may include computer program modules. In various embodiments, the instruction modules may include one or more of a UL resource grant module 434, a timing information determination module 436, an API module 438, a transmit / receive (TX / RX) module 440, a data storage management module 442, and / or other modules.
[0110] The UL resource grant module 434 may be configured to receive uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity.
[0111] The timing information determination module 436 may be configured to determine uplink resource grant timing information. The uplink resource grant timing information may include an uplink period and an offset value within the uplink period, which enables an application to send data to the modem for transmission to the RAN during an uplink transmission opportunity. The timing information determination module 436 may be configured to receive the uplink resource grant timing information via radio resource control (RRC) signaling. The timing information determination module 436 may be configured to receive an indication of the uplink period and receive downlink control information (DCI) indicating an offset value within the uplink period via RRC signaling. The timing information determination module 436 may be configured to receive an uplink grant in the DCI having a pattern indicating an uplink period and an offset within the uplink period.
[0112] The timing information determination module 436 may be configured to provide uplink resource grant timing information to an application executed in a processor of the UE. The timing information determination module 436 may be configured to monitor the arrival of one or more data streams from the application and determine whether the arrival time of the data stream at the modem satisfies a timing drift threshold with the uplink resource grant timing information.
[0113] The API module 438 may be configured to execute an API that enables communication between an application executed in the UE 400 and a modem of the UE 400. The API module 438 may be configured to receive data from the application for transmission to the RAN during an uplink transmission opportunity. The API module 330 may be configured to receive data from one or more data streams from the application.
[0114] The TX / RX module 442 may be configured to send data from one or more data streams to the RAN during an uplink transmission opportunity, and to send or receive various information from the RAN and / or the core network. The TX / RX module 442 may be configured to send uplink transmission requests associated with application data. The TX / RX module 442 may be configured to receive information related to periodic uplink resource grants, resource grants in response to uplink transmission requests (e.g., scheduling requests, buffer status reports, etc.), and other suitable signaling or information.
[0115] Data storage management module 442 may be configured to store data from one or more data flows for later transmission to core network 140 via base station 110. Data storage management module 442 may be configured to receive an indication from an application (eg, via API module 438) regarding permission to store application data.
[0116] Processor 404 may be configured to execute modules 434 - 442 and / or other modules via software, hardware, firmware, some combination of software, hardware and / or firmware, and / or other mechanisms for configuring processing capabilities on processor 404 .
[0117] The description of the functions provided by the different modules 434-442 is for illustrative purposes and is not intended to be limiting, as any of the modules 434-442 may provide more or less functions than described. For example, one or more of the modules 434-442 may be eliminated, and some or all of their functions may be provided by other modules in the modules 434-442. As another example, the processor 404 may be configured to execute one or more additional modules that may perform some or all of the functions attributed to one of the modules 434-442 below.
[0118] Figure 5A is a timeline diagram illustrating transmission of uplink data by a UE without aligning the data transmission with granted uplink resources. Figure 5B is a timeline diagram illustrating a method 500a for uplink data transmission according to various embodiments. In the method 500a, the UE may align data for uplink transmission with the granted uplink resources. Figure 1A-Figure 5B The operations of method 500a may be performed by a processor (eg, processor 210, 212, 214, 216, 218, 252, 260, 404) of a UE (eg, UE 120a-120e, 200, 320, 400).
[0119] refer to Figure 5A , uplink traffic that is not aligned with an uplink transmission opportunity may be delayed, resulting in a delay in data communication. For example, data for uplink transmission to the RAN may arrive at the modem from time to time, such as data arrival times 504a, 504b according to data traffic period 502. Uplink transmission resources for the UE to use to send data may be available from time to time according to uplink resource period 506 (e.g., at uplink transmission opportunities 508a, 508b, etc.). Data arriving at time 504a cannot be sent to the RAN until uplink transmission opportunity 508a, resulting in a delay period 510.
[0120] refer to Figure 5B, aligning the uplink data with the uplink transmission opportunity reduces latency because the data for transmission arrives closer in time to the uplink transmission opportunity. In some embodiments, the data may arrive in sufficient time before the uplink transmission opportunity to enable the modem to process the data for transmission to the RAN. For example, the modem and / or application may be configured to perform operations so that data that would have arrived at the modem at arrival time 504a may instead arrive at arrival time 504c. The data arrival time 504c may still be before the uplink transmission opportunity 508a so that the modem processing time 512 (a small processing delay) can process the data for uplink transmission. Typically, the modem processing time 512 is significantly less than the latency 510.
[0121] Figure 5C is a timeline diagram illustrating transmission of uplink data by a UE without aggregating data from different data streams. Figure 5D is a timeline diagram illustrating a method 500b for uplink data transmission according to various embodiments. In the method 500b, the UE may transmit uplink data aligned with the granted uplink resources. Figure 1A-Figure 5D The operations of method 500b may be performed by a processor (eg, processor 210, 212, 214, 216, 218, 252, 260, 404) of a UE (eg, UE 120a-120e, 200, 320, 400).
[0122] refer to Figure 5C , some data (e.g., first data 520) that the application sends to the modem for uplink transmission may arrive at a time when uplink resources (e.g., periodic uplink resources) are not available. The arrival of the first data 520 at the modem may trigger the modem to send a scheduling request (SR) 522 to the RAN. The RAN may respond with an uplink resource grant 524 that provides uplink communication link resources for the first data 520 to the UE. The modem may then send the data 522 to the RAN. At a later time, the application may send second data 526 to the modem, and the modem may send the second data 526 using a periodic uplink transmission opportunity 532, which the RAN may grant to the UE from time to time according to the uplink resource period 530. In some embodiments, the application may send the second data 526 to the modem from time to time according to the application data flow period 528.
[0123] refer to Figure 5DIn some embodiments, when the first data 520 arrives at a time when uplink resources are not available, the modem may buffer (store in memory) the first data until an uplink transmission opportunity (e.g., a periodic uplink opportunity) is available. At a later time, the application may send the second data 526 and an uplink transmission request, such as a buffer status report (BSR) 534, to the modem, which may indicate to the RAN that the UE has the first data 524 ready for transmission to the RAN. The RAN may respond to the uplink transmission request with an uplink resource grant 536. The UE may use the granted uplink resources to send the first data 520. By aggregating uplink transmissions of the first data 520 and the second data 526, the UE may reduce usage of communication link resources and save power by avoiding sending scheduling requests 522, receiving granted uplink resources 524, and sending the first data 520 outside of periodic uplink resource availability. In some embodiments, although delaying the transmission of the first data 520 may increase the latency of the first data 520, the UE may benefit by saving power and the communication system may benefit from reduced usage of communication link resources.
[0124] Figure 6A-6D 6 is a data flow diagram illustrating methods 600a, 600b, 600c, and 600d for uplink data transmission according to various embodiments. In various embodiments, one or more processors (e.g., a processing system) of a UE may perform the operations of methods 600a-600d to align uplink data transmission with periodic grants of uplink transmission opportunities. Figure 1A-Figure 6D , the operations of methods 600a-600d can be performed by a processor (e.g., processors 210, 212, 214, 216, 218, 252, 260, 404) of a UE (e.g., UE 120a-120e, 200, 320, 400) and by a processor of the RAN 608 and a processor of a network element of the core network 610.
[0125] UE 602 (including application 604 executing in a processor and modem 606), RAN 608 and core network (CN) 610) can perform operations to establish a session for application 604 executing on the UE and provide data communication link resources to UE 602. Application 604 can begin execution in the processor of UE 602 and can send a start message 612 to modem 606. In response to the start message 612, the modem can send a session establishment request 614 to a network element (e.g., a server supporting or otherwise interacting with the application) in core network 610 via RAN 608. Core network 610 (i.e., network element) can send a session request message 616 to RAN, which indicates service establishment acceptance and provides configuration information to RAN 608, including a quality of service (QoS) profile of data traffic associated with data to be received from application 604. The RAN 608 may perform operations to configure radio resources for the UE 602 and may send a radio resource configuration (RRC) message 618 to the modem 606. In some embodiments, the RAN 608 may identify the periodic nature of the expected uplink traffic from the UE 602 and use the identified periodic nature of the expected uplink traffic to appropriately configure the radio resources. In some embodiments, the modem 606 may provide full or complete configuration and timing information to the application 604 in a message 622. In some embodiments, the modem 606 may provide partial or incomplete configuration and timing information 628. In some embodiments, the modem may update the timing information 628 from time to time.
[0126] The UE's modem 606 may perform operations to use the radio resources configured according to the RRC message 618 and may respond to the RAN 608 with an RRC configuration complete message 622. The modem may send a start confirmation message 622 to the application 604 indicating that the application may provide uplink data to the modem for transmission to the RAN. The RAN 608 may send a session response message 624 to a network element of the core network 610.
[0127] The RAN 608 may provide periodic uplink grants 626 of uplink transmission opportunities from time to time. In some embodiments, as mentioned above, the modem 606 may provide timing information 628 about the periodic uplink grants 626 to the application 604. Using the timing information 628, the application 604 may send data 630 to the modem 606 in close temporal proximity to the uplink transmission opportunities according to the periodic uplink grants 626. The modem 606 may send the data 630 to the RAN 608 during the uplink transmission opportunities. The RAN 608 may deliver the data 632 to the core network 610. Using the timing information 628, the UE 602 (e.g., the application 604 and / or the modem 606) may substantially align the arrival of the data 630 at the modem 606 with the uplink transmission opportunities provided by the periodic uplink grants 626 of uplink communication resources.
[0128] In some embodiments, the modem 606 may be configured with an API 670 that enables the application 604 to align the delivery of data 630 with the uplink transmission opportunity provided by the periodic uplink grant 626. In some embodiments, the API 670 may provide timing information 628 to the application 604. In some embodiments, the timing information 628 may include information about the uplink grant period. In some embodiments, the timing information 628 may include an offset value within the uplink grant period. In some embodiments, the timing information 628 (e.g., the uplink grant period and / or the offset value) may be explicitly signaled by the RAN 608. In some embodiments, the UE 602 may determine one or more aspects of the timing information 628 (e.g., the uplink grant period and / or the offset value) from one aspect of the periodic uplink grant without explicit signaling from the RAN 608 (which may be referred to as implicit signaling). In various embodiments, information regarding periodic grants for providing uplink transmission opportunities for uplink resources (periodic uplink grants) may be provided to or determined by the UE in a dynamic grant, a configured grant (CG) type 1, or a CG type 2, as further described below.
[0129] refer to Figure 6BIn some embodiments, the periodic uplink grant may be provided by a dynamic grant. In some embodiments, the RAN 608 may periodically send an uplink grant via a DCI (using a DCI, in a DCI) scrambled with a C-RNTI 632. In some embodiments, the UE may apply an algorithm (which may be a dedicated algorithm) to determine (identify) a periodic pattern based on an uplink grant received by the UE 602 in a DCI scrambled with a C-RNTI 632. For example, the UE 602 may identify the periodic timing at which the UE 602 receives certain uplink grants with similar transport block sizes. In some embodiments, the modem 606 may receive multiple DCIs scrambled with a C-RNTI 634 during a time period 634. In some embodiments, the time period 634 may be defined by the repetition of two, three, or more DCIs scrambled by the modem 606 with a C-RNTI 632. Based on the arrival of the DCI scrambled with the C-RNTI 632 during the time period 634, the modem 606 may determine 636 timing information 638 (e.g., uplink period and / or offset value) regarding an uplink transmission opportunity and may send the timing information 638 to the application 604. The application 604 may send data 630 to the modem 606 in accordance with the timing information 638 in temporal proximity to the uplink transmission opportunity (i.e., availability of uplink communication link resources).
[0130] refer to Figure 6C In various embodiments, the periodic uplink grant may be provided by a configured grant type 1. In some embodiments, the RAN 608 may send a radio resource configuration message including CG type 1 640 configuration information to the modem 606. The CG type 1 640 configuration information may include an uplink period and an offset value within the uplink period.
[0131] The modem 606 may identify (determine) (642) timing information from CG Type 1 that identifies a periodic grant (e.g., an uplink period and an offset value) from the CG Type 1 configuration information. The modem 606 may send timing information 644 to the application 604 that may enable the application 604 to align the data stream 630 with the periodic uplink transmission opportunity. The application 604 may send data 630 to the modem 606 in accordance with the timing information 644 in temporal proximity to the uplink transmission opportunity (i.e., the availability of uplink communication link resources). The modem 606 may send data 630 to the RAN 608 using the radio resources configured by the CG Type 1 configuration information.
[0132] refer to Fig.6DIn some embodiments, the periodic uplink grant may be provided by a configured grant type 2. In these embodiments, the RAN 608 may send a radio resource configuration message including CG type 2 650 configuration information to the modem 606. The CG type 1 650 configuration information may include an uplink period, but may not include an offset value within the uplink period. The RAN 608 may later send a DCI scrambled by the CS-RNTI 652 (e.g., DCI format 0_1). The modem 606 may determine (654) the offset value based on the timing of arrival of the DCI scrambled by the CS-RNTI 652 (e.g., the time slot in which the modem 606 receives the DCI scrambled by the CS-RNTI 652). In this way, the RAN 608 may provide the configured grant period to the modem 606 in the CG type 2 configuration information, and the offset value may be indicated by the transmission timing of the DCI scrambled by the CS-RNTI 652.
[0133] The modem 606 may report (send) timing information 656 including the uplink period and the offset value to the application 604. The application 604 may then send data 630 to the modem 606 in time close to the uplink transmission opportunity (i.e., the availability of uplink communication link resources) according to the timing information 656. The modem 606 may send the data 630 to the RAN 608 using the radio resources configured by the CG Type 2 configuration information.
[0134] Fig. 7A is a data flow diagram illustrating transmission of uplink data by a UE without aggregating data from different data streams. Figure 7B and Figure 7C is a data flow diagram illustrating methods 700a and 700b of uplink data transmission according to various embodiments. In methods 700a and 700b, UE 602 may use the granted uplink resources to transmit uplink data that aggregates data from two or more data streams. Figure 1A-Figure 7C The operations of methods 700a and 700b may be performed by a processor (eg, processors 210, 212, 214, 216, 218, 252, 260, 404) of a UE (eg, UEs 120a-120e, 200, 320, 400).
[0135] refer to Fig. 7A, some data (e.g., Data 2 520) that the application 604 sends to the modem 606 for uplink transmission may arrive at a time when uplink resources (e.g., periodic uplink resources) are not available. For example, the RAN 608 may send radio resource configuration information 702 to the modem 606, and the modem 606 may determine information related to the periodic availability of uplink transmission opportunities (e.g., uplink grant periods). The modem 606 may provide timing information 704 (e.g., uplink periods and offset values) to the application 604. Using the timing information 704, the application 604 may send Data 1 706 to the modem 606 for transmission to the RAN 608.
[0136] The arrival of Data 2 708 from the application 604 at the modem 606 may trigger the modem 606 to send a scheduling request (SR) 710 to the RAN 608. The RAN 608 may respond with an uplink (UL) resource grant 712 that provides uplink communication link resources to the UE 602 for Data 2 708. The modem 606 may then send Data 2 708 to the RAN 608. At a later time, when periodic uplink resources are again available, the application 604 may send Data 1 706 to the modem 606, and the modem 606 may send Data 1 706 to the RAN 608 during the next periodic uplink transmission opportunity.
[0137] refer to Figure 7B, the modem 606 may be configured to perform operations for aggregating different data aggregate streams. In some embodiments, upon arrival of data 2 708, the modem 606 may buffer (store) (720) data 2 until a later time. Using the timing information 704, the application 604 may send data 1 706 to the modem 606 for transmission to the RAN 608. The modem 606 may send data 1 and an uplink transmission request 722 for data 2 708 to the RAN 608. The RAN 608 may respond with an uplink resource grant 724 for data 2. The modem 606 may use the uplink resources granted in the uplink resource grant 724 to send data 2 708 to the RAN 608. In these embodiments, the modem 606 may send fewer scheduling requests, thereby enabling the UE 602 to save power. Furthermore, in these embodiments, the modem 602 may not change the operating mode of the UE 602 from a low power mode (e.g., a discontinuous reception (DRX) sleep mode) (e.g., "wake up" the UE 602) to send the scheduling request for Data 2 and the Data 2 itself. In some embodiments, the modem 606 may aggregate the data streams using various information associated with the data streams (e.g., QoS flow levels of different data streams (e.g., before processing a Service Data Adaptation Protocol (SDAP) of the data streams), radio bearer levels of different data streams (e.g., before processing a Packet Data Convergence Protocol (PDCP) of the data streams, e.g., to an upper layer), radio link control (RLC) channel levels of different data streams (e.g., before RLC processing of the data streams), and / or other information). Aggregating the data streams prior to SDAP, PDCP, or RCL processing of the data streams may enable a delayed delivery time of the data streams (e.g., to a lower layer, or for transmission).
[0138] refer to Figure 7C , application 604 may be configured to perform operations for aggregating different data aggregate streams. For example, using timing information 704, application 604 may generate data 2 at a time when an uplink transmission opportunity is not available. Application 604 may buffer (store) (726) data 2 until a later time, such as immediately before an uplink transmission opportunity (e.g., based on timing information 704), at which time application 604 may send data 1 706 and data 2 708 to modem 606 for transmission.
[0139] In response, the modem 606 may send Data 1 and an uplink transmission request 728 for Data 2 708 to the RAN 608. The RAN 608 may respond with an uplink resource grant 730 for Data 2. The modem 606 may send Data 2 708 to the RAN 608 using the uplink resources granted in the uplink resource grant 730. In these embodiments, the data stream aggregation of Data 1 and Data 2 performed by the application 604 may be transparent to the modem 606, i.e., the modem 606 may be unaware of the data stream aggregation operation performed by the application 606.
[0140] Fig.7D 700d is a timing diagram illustrating the timing of various messages and data transmission and reception of different application data flows by a modem of a UE according to various embodiments. Figure 1A-Figure 7D , various embodiment methods may include aggregation of data streams, alignment of data streams, and / or neither alignment nor aggregation of data streams, as shown.
[0141] As mentioned above, the modem 606 may be configured with an API 670 that enables communication related to data streams and uplink resource grant timing information to be transmitted between the modem 606 and an application (e.g., application 604) executed in a processor of the UE. In some embodiments, the modem 606 and the API 670 may be configured to recognize and process three different types of data streams: streams aligned with periodic uplink resource grants (shown as stream type 1); streams that are neither aligned with periodic uplink resource grants nor aggregated with other streams (shown as stream type 2); and streams that are allowed to aggregate with other data streams (may be aggregated with other streams) (shown as stream type 3). In various embodiments, the modem 606 may be configured to send a scheduling request 740 in response to receiving a stream type 2 that is neither aligned with a periodic uplink resource grant nor aggregated with other data streams. However, the modem 606 may not be configured to send a scheduling request 740 in response to receiving a stream type 1 or a stream type 3.
[0142] For example, in response to receiving stream type 2 data 742 (which is neither aligned with an uplink transmission opportunity nor aggregated with another data stream), the modem 606 may send a scheduling request 744 to request a grant of uplink resources for the stream type 2 data 742. The modem 606 may receive the uplink resource grant in a physical downlink control channel message (PDCCH) 746 and may send the stream type 2 data 748 using the granted uplink resources.
[0143] As another example, in response to receiving stream type 1 data 750 (which may be aligned with an uplink transmission opportunity), the modem 606 may send stream type 1 data 752 after a simple processing delay (PD) during which the modem 606 may process the stream type 1 data 750 for transmission.
[0144] As another example, in response to receiving stream type 3 data 754 (which allows aggregation with other data streams), the modem 606 can buffer (756) the stream type 3 data until the next uplink transmission opportunity 758. The modem 606 can receive stream type 1 data 760, which is aligned with the uplink transmission opportunity. The modem 606 can send the stream type 1 data and an uplink transmission request 762 (e.g., a buffer status report) related to the stream type 3 data 758. The modem 606 can receive an uplink resource grant in the PDCCH 764 and can send the stream type 3 data 766 using the granted uplink resources.
[0145] Fig. 8A and Figure 8B 8 is a data flow diagram illustrating methods 800a and 800b for uplink data transmission according to various embodiments. Figure 1A-Figure 8B , the operations of methods 800a and 800b may be performed by a processor (eg, processor 210, 212, 214, 216, 218, 252, 260, 404) of a UE (eg, UE 120a-120e, 200, 320, 400).
[0146] As mentioned above, the modem 606 may be configured with an API 670 that enables communication of data streams and uplink resource grant timing information to be transmitted between the modem 606 and an application (e.g., application 604) executing in a processor of the UE. In some embodiments, the uplink resource grant timing information may or may not have slot-level accuracy. In some embodiments, the application executing in the UE may be able to determine the precise timing of the uplink resource grant. In some embodiments, the application executing in the UE may not be able to determine the precise uplink resource grant timing.
[0147] refer to Fig. 8A, API 670 may be configured as a semi-static API. In some embodiments, the semi-static API may be suitable for use with an application that is capable of determining the precise timing of an uplink resource grant. For example, in some embodiments, RAN 608 may send RRC configuration information 802 to modem 606. Modem 606 may determine timing information and provide timing information 804 to application 604. In some embodiments, timing information 804 may include an uplink resource grant and an offset value. In some embodiments, the offset value provided by application 606 enables application 606 to take into account simple processing delays (e.g., the time required to construct a transport block) required by modem 6062 to process data for transmission to RAN 608. In some embodiments, modem 606 may provide timing information 804 to application 606 only once because application 604 is capable of determining the precise timing of an uplink resource grant.
[0148] Using the timing information 804, the application 604 can determine (select) an uplink resource grant period and can send data 1 806 to the modem 606 at a time close to the next or upcoming uplink transmission opportunity (e.g., based on the availability of periodic uplink resources). For example, the application 604 can send data 1 806 at a time 808 before the uplink transmission opportunity based on the offset value in the timing information 804. The modem 606 can send data 1 806 to the RAN 608.
[0149] In some embodiments, using the timing information 804, the application 604 may select a data stream (e.g., Data 1) to align with the uplink transmission opportunity, and may send data from the selected data stream to the modem 606 without receiving further timing information from the modem 606. In addition, the application 604 may not provide a signal or indication to the modem 606 identifying the data stream for alignment with the uplink transmission opportunity. In some embodiments, the modem 606 may provide the uplink resource grant period and offset value to the application 604 in response to the modem 606 identifying the periodic grant (e.g., determining the timing information, such as the uplink resource grant period and / or offset value based on the configuration information from the RAN 608).
[0150] refer to Figure 8BIn some embodiments, the API 670 may be configured as a dynamic API. The dynamic API may be suitable for use with applications that are not capable of determining the precise timing of uplink resource grants. Due to its timing and precision, the application 604 may provide the modem 606 with data 1 806. The timing may vary (e.g., drift) over time and may become increasingly misaligned with periodic uplink transmission opportunities. In some embodiments, the application 604 may signal or indicate to the modem 606 (e.g., via the API 670) an identification of a data stream that may require timing adjustment, which may enable the modem 606 to track the timing of the data stream that requires timing adjustment. In these embodiments, the modem 606 may monitor the arrival time of data from the indicated or identified data stream, and the modem 606 may determine whether the data arrives at a time that satisfies a timing drift threshold 810 (e.g., with an upcoming uplink transmission opportunity) compared to the uplink resource grant timing information 804.
[0151] For example, Data 1 806 may arrive at a time at which the timing difference satisfies (812) (e.g., is greater than or equal to) the timing drift threshold 810. In response to determining that the arrival timing of Data 1 satisfies the timing drift threshold 810, the modem 606 may determine (select) (814) a timing adjustment that may enable the application 604 to adjust (e.g., increase or decrease) the timing at which the application 604 sends Data 1 806 to the modem 606. The modem 606 may provide the timing adjustment 816 to the application 604. Using the timing adjustment, the application 604 may send Data 1 806 at a time such that a difference 818 between the time at which Data 1 806 arrives at the modem 606 and the uplink resource grant timing information 804 (e.g., an upcoming uplink transmission opportunity) is within the timing drift threshold 810 (i.e., does not satisfy the timing drift threshold 810).
[0152] Fig.9A is a process flow diagram illustrating a method 900a for uplink data transmission according to various embodiments. Figure 1A-Figure 9A The operations of method 800a may be performed by a processor (e.g., processor 210, 212, 214, 216, 218, 252, 260, 404) of a UE (e.g., UE 120a-120e, 200, 320, 400). The processor may be a modem processor or a processor coupled to or controlling a modem, and is therefore generally referred to as a "processor."
[0153] In block 902, a processor may receive uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity. In some embodiments, the processor may receive uplink resource grant timing information via radio resource control (RRC) signaling. In some embodiments, the processor may receive an indication of an uplink period via RRC signaling and receive downlink control information (DCI) indicating an offset value within the uplink period. In some embodiments, the processor may receive an uplink grant in the DCI with a pattern indicating an uplink period and an offset within the uplink period. For example, the processor may determine the uplink period and / or offset based on the pattern of the uplink grant received in the DCI. The unit for performing the function of the operation in block 902 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) and a wireless transceiver (e.g., 266) that executes an uplink resource grant module 434 and a timing information determination module 436.
[0154] In block 904, the processor may provide uplink resource grant timing information to an application executed in a processor of the UE. In some embodiments, the uplink resource grant timing information provided to the application includes an uplink period and an offset value within the uplink period, which enables the application to send data for transmission to the RAN during the uplink transmission opportunity. The means for performing the functions of the operations in block 904 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the timing information determination module 436 and the API module 438.
[0155] In block 906, the processor may receive data from the application for transmission to the RAN during the uplink transmission opportunity. Means for performing the functions of the operations in block 906 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438.
[0156] In block 908, the processor may send data to the RAN during the uplink transmission opportunity. Means for performing the functions of the operations in block 906 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the TX / RX module 440.
[0157] Figure 9B-9F Operations 900b-900f that may be performed as part of method 900a for uplink data transmission are shown in accordance with various embodiments. Figure 1A-Figure 9F, operations 900b-900f may be performed by a processor (e.g., processors 210, 212, 214, 216, 218, 252, 260, 404) of a UE (e.g., UEs 120a-120e, 200, 320, 400). Again, the processor performing operations 900b-900f may be a modem processor or a processor coupled to or controlling a modem, and is therefore generally referred to as a "processor."
[0158] refer to Fig. 9B After the processor provides the uplink resource grant timing information to the application executed in the processor of the UE in block 904 as described, the processor may receive an indication from the application regarding permission to store the first application data in optional block 910. The means for performing the functions of the operations in optional block 910 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438 and the data storage management module 442.
[0159] In block 912, the processor may receive the first application data at the first time and store the first application data. The means for performing the functions of the operations in block 912 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438 and the data storage management module 442.
[0160] In block 914, the processor may receive second application data at a second time. Means for performing the functions of the operations in block 914 may include a processor (eg, 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438 and the data storage management module 442.
[0161] In block 916, the processor may transmit the first application data to the RAN during the uplink transmission opportunity by transmitting the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity. Means for performing the functions of the operations in block 916 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the timing information determination module 426, the API module 438, and the TX / RX module 440, and the wireless transceiver 266.
[0162] refer to Fig. 9CAfter the processor provides the uplink resource grant timing information to the application executing in the processor of the UE as described in block 904, the processor may receive a storage duration for the first application data from the application in block 920. The means for performing the functions of the operations in optional block 910 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438 and the data storage management module 442.
[0163] In block 912, the processor may receive first application data at a first time and store the first application data as described. In block 914, the processor may receive second application data at a second time as described.
[0164] In block 922, when the storage duration ends before the uplink transmission opportunity, the processor may send a scheduling request associated with the first application data. For example, when application data that can (i.e., is allowed to be aggregated with other application data is associated with the storage duration, the processor (e.g., a modem processor) may not be allowed to store (e.g., buffer) application data for a duration longer than the storage duration. In these embodiments, if the data has not been sent when the end of the storage duration is reached (e.g., with another data stream), the processor may send a scheduling request to the RAN for requesting uplink communication resources to enable transmission of the stored application data. The unit for performing the functions of the operations in block 922 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the TX / RX module 440, the data storage management module 442, and the wireless transceiver 266.
[0165] In block 924, the processor may transmit the second application data and an uplink transmission request associated with the first application data during an uplink transmission opportunity after the first application data has been stored for the storage duration. Means for performing the functions of the operations in block 924 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the TX / RX module 440, the data storage management module 442, and the wireless transceiver 266.
[0166] refer to Fig.9DAfter the processor provides the uplink resource grant timing information to the application executed in the processor of the UE as described in block 904, the processor may receive, from the application in block 930, first application data generated at a first data time and second application data generated at a second data time at a time before the uplink transmission opportunity. The means for performing the functions of the operations in block 930 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438.
[0167] In block 932, the processor may transmit the first application data and an uplink transmission request associated with the second application data during the uplink transmission opportunity. The means for performing the functions of the operations in block 932 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the TX / RX module 440 and the wireless transceiver 266.
[0168] refer to Fig.9E After the processor receives the uplink resource grant timing information from the RAN as described in block 902, the processor may provide the uplink resource grant timing information to the application via a modem application program interface (API) in block 940, the modem API being configured to communicate the uplink resource grant timing information to the application. The means for performing the functions of the operations in block 940 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the timing information determination module 426 and the API module 438.
[0169] In block 942, the processor may receive data from the application via an API associated with uplink resource grant timing information for transmission to the RAN. The means for performing the functions of the operations in block 942 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438.
[0170] The processor may send data to the RAN during the uplink transmission opportunity as described in block 908 .
[0171] refer to Fig.9F, after the processor provides the uplink resource grant timing information to the application via a modem API configured to communicate the uplink resource grant timing information to the application as described in block 940, the processor may receive data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information. For example, the processor may receive data for transmission at a time that is greater than or equal to the timing drift threshold relative to or compared to the uplink resource grant timing information (e.g., the next uplink transmission opportunity). The means for performing the functions of the operations in block 950 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) that executes the timing information determination module 426 and the API module 438.
[0172] In block 952, the processor may provide a timing adjustment to the application via an API associated with the received data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information. Means for performing the functions of the operations in block 950 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the timing information determination module 426 and the API module 438.
[0173] In block 954, the processor may receive second data from the application via the API for transmission to the RAN at a time within a timing drift threshold from the uplink resource grant timing information. The means for performing the functions of the operations in block 952 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 404) executing the API module 438.
[0174] The processor may send data to the RAN during the uplink transmission opportunity as described in block 908 .
[0175] Fig.10 is a block diagram of components of a UE 1000 suitable for use with various embodiments. Figure 1A-Figure 10 , various embodiments may be implemented on various UEs 1000 (e.g., UEs 120a-120e, 200, 320, 402, 404), examples of which are described in Fig.101000 is shown in the form of a smart phone. The UE 1000 may include a first SOC 202 (e.g., a SOC-CPU) coupled to a second SOC 204 (e.g., a 5G-capable SOC). The first SOC 202 and the second SOC 204 may be coupled to an internal memory 1016, a display 1012, and a speaker 1014. In addition, the UE 1000 may include an antenna 1004 for sending and receiving electromagnetic radiation, which may be connected to a wireless transceiver 266 coupled to one or more processors in the first and / or second SOCs 202, 204. The UE 1000 may include a menu selection button or rocker switch 1020 for receiving user input. The UE 1000 may include a sound coding / decoding (CODEC) circuit 1010 that digitizes sound received from a microphone into data packets suitable for wireless communication and decodes the received sound data packets to generate an analog signal provided to the speaker to generate sound. One or more processors in the first SOC 202 and the second SOC 204, the wireless transceiver 266, and the CODEC 1010 may include digital signal processor (DSP) circuitry (not separately shown).
[0176] Fig.11 is a component block diagram of a network device suitable for use with various embodiments. These network devices (e.g., network devices 110a-110d, 350, 406, 410, 414) may include at least Fig.11 The components shown in the reference Figure 1A-Figure 11 , the network device 1100 may generally include a processor 1101 coupled to a volatile memory 1102 and a large capacity non-volatile memory, such as a hard disk drive 1108. The network device 1100 may also include a peripheral memory access device 1106, such as a floppy disk drive, a compact disc (CD), or a digital video disc (DVD) drive coupled to the processor 1101. The network device 1100 may also include a network access port 1104 (or interface) coupled to the processor 1101 for establishing a data connection with a network (such as the Internet or a local area network coupled to other system computers and servers). The network device 1100 may include one or more antennas 1107 for sending and receiving electromagnetic radiation that can be connected to a wireless communication link. The network device 1100 may include additional access ports, such as USB, Firewire, Thunderbolt, etc. for coupling to peripherals, external memory, or other devices.
[0177] The processors of UE 1000 and network device 1100 may be any programmable microprocessor, microcomputer, or one or more multi-processor chips that may be configured by software instructions (applications) to perform various functions, including the functions of some implementations described below. In some wireless devices, multiple processors may be provided, such as one processor dedicated to wireless communication functions within SOC 204 and one processor dedicated to running other applications within SOC 202. Software applications may be stored in memory 1016, 1102 before being accessed and loaded into the processor. The processor may include internal memory sufficient to store application software instructions.
[0178] The various embodiments shown and described are provided as examples only to illustrate the various features of the claims. However, the features shown and described with reference to any given embodiment are not necessarily limited to the associated embodiment, and may be used in or combined with other embodiments shown and described. In addition, the claims are not intended to be limited to any one exemplary embodiment. For example, one or more methods and operations disclosed herein may be replaced or combined with one or more methods and operations disclosed herein.
[0179] Implementation examples are described in the following paragraphs. Although some of the following implementation examples are described around example methods, other example implementations may include: the example methods discussed in the following paragraphs implemented by a UE include a processor configured with processor-executable instructions to perform the operations of the methods of the following implementation examples; the example methods discussed in the following paragraphs implemented by a UE include a unit for performing the functions of the methods of the following implementation examples; and the example methods discussed in the following paragraphs may be implemented on a non-transitory processor-readable storage medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of the UE to perform the operations of the methods of the following implementation examples.
[0180] Example 1. A method for uplink data transmission performed by a modem processor of a user equipment (UE), comprising: receiving uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity; providing the uplink resource grant timing information to an application executed in a processor of the UE; receiving data from the application for transmission to the RAN during the uplink transmission opportunity; and sending the data to the RAN during the uplink transmission opportunity.
[0181] Example 2. The method according to Example 1, wherein the uplink resource grant timing information provided to the application includes an uplink period and an offset value within the uplink period, the uplink period and the offset value enabling the application to send data for transmission to the RAN during the uplink transmission opportunity.
[0182] Example 3. The method of Example 1 or 2, wherein receiving the uplink resource grant timing information from the RAN comprises receiving the uplink resource grant timing information via radio resource control (RRC) signaling.
[0183] Example 4. The method of any one of Examples 1-3, wherein receiving the uplink resource grant timing information from the RAN comprises: receiving an indication of an uplink period via RRC signaling and receiving downlink control information (DCI) indicating an offset value within the uplink period.
[0184] Example 5. The method of any one of Examples 1-4, wherein receiving the uplink resource grant timing information from the RAN comprises receiving an uplink grant having a pattern indicating an uplink period and an offset within the uplink period in a DCI.
[0185] Example 6. The method according to any one of Examples 1-5, wherein receiving data from the application for transmission to the RAN during the uplink transmission opportunity includes: receiving first application data at a first time and storing the first application data; and receiving second application data at a second time; and sending the first application data to the RAN during the uplink transmission opportunity includes: sending the second application data and an uplink transmission request associated with the first application data during the uplink transmission opportunity.
[0186] Example 7. The method according to Example 6 further includes: receiving an indication from the application regarding permission to store the first application data, wherein receiving the first application data at the first time and storing the first application data includes: storing the first application data after receiving the indication regarding permission to store the first application data.
[0187] Example 8. The method according to Example 6 further includes: receiving a storage duration for the first application data from the application; and sending a scheduling request related to the first application data when the storage duration ends before the uplink transmission opportunity, wherein sending the data to the RAN during the uplink transmission opportunity includes: when the uplink transmission opportunity occurs before the end of the storage duration, sending the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity.
[0188] Example 9. The method according to any one of Examples 1-8, wherein receiving data from the application for transmission to the RAN during the uplink transmission opportunity comprises: receiving first application data generated at a first data time and second application data generated at a second data time from the application at a time before the uplink transmission opportunity; and sending the data to the RAN during the uplink transmission opportunity comprises: sending the first application data and an uplink transmission request associated with the second application data during the uplink transmission opportunity.
[0189] Example 10. The method according to any one of Examples 1-9, wherein providing the uplink resource grant timing information to the application executed on the processor of the UE comprises: providing the uplink resource grant timing information to the application via a modem application program interface (API) configured to communicate the uplink resource grant timing information to the application; and receiving data from the application for transmission to the RAN during the uplink transmission opportunity comprises: receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information.
[0190] Example 11. The method according to Example 10, wherein receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information includes: receiving the data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information, and the method further includes: providing timing adjustment to the application via the API for receiving data for transmission to the RAN at a time that satisfies the timing drift threshold with the uplink resource grant timing information; and receiving second data from the application for transmission to the RAN via the API at a time within the timing drift threshold with the uplink resource grant timing information.
[0191] As used in this application, the terms "component", "module", "system", etc. are intended to include computer-related entities, including but not limited to hardware, firmware, a combination of hardware and software, software, or software that is configured to perform a specific operation or function. For example, a component can be, but is not limited to, a process, a processor, an object, an executable, a thread of execution, a program, or a computer running on a processor. As an illustration, both an application running on a wireless device and the wireless device can be referred to as a component. One or more components can reside in a process or a thread of execution, and a component can be located on a processor or a core or distributed between two or more processors and cores. In addition, these components can be executed from various non-temporary computer-readable media on which various instructions or data structures are stored. Components can communicate through local or remote processes, function or process calls, electronic signals, data packets, memory read / writes, and other known network, computer, processor, or process-related communication methods.
[0192] A number of different cellular and mobile communication services and standards are available or contemplated in the future, all of which can be implemented and benefit from various embodiments. Such services and standards include, for example, the Third Generation Partnership Project (3GPP), Long Term Evolution (LTE) system, third generation wireless mobile communication technology (3G), fourth generation wireless mobile communication technology (4G), fifth generation wireless mobile communication technology (5G) and subsequent generations of 3GPP technology, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), 3GSM, General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA) system (e.g., cdmaOne, CDMA1020TM), Enhanced Data Rates for GSM Evolution (EDGE), Advanced Mobile Phone System (AMPS), Digital AMPS (IS-136 / TDMA), Evolution Data Optimized (EV-DO), Digital Enhanced Cordless Telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Local Area Network (WLAN), Wi-Fi Protected Access I and II (WPA, WPA2), and Integrated Digital Enhanced Network (iDEN). Each of these technologies involves, for example, the transmission and reception of voice, data, signaling and / or content messages. It should be understood that any reference to terminology and / or technical details related to various telecommunication standards or technologies is for illustrative purposes only and is not intended to limit the scope of the claims to any particular communication system or technology unless specifically stated in the claim language.
[0193] The foregoing method descriptions and process flow charts are provided only as illustrative examples and are not intended to require or imply that the operations of the various embodiments must be performed in the order presented. As will be appreciated by those skilled in the art, the order of operations in the foregoing embodiments may be performed in any order. Words such as "afterwards," "subsequently," "next," etc. are not intended to limit the order of operations; these words are used to guide the reader through the description of the method. In addition, any reference to a claim element in the singular form, such as using the articles "a," "an," or "the," should not be interpreted as limiting the element to the singular.
[0194] The various illustrative logics, logic blocks, modules, circuits, and algorithmic processes described in conjunction with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of the two. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and operations are generally described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Technicians may implement the described functionality in different ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the claims.
[0195] The hardware used to implement the various illustrative logics, logic blocks, modules, and circuits described in conjunction with the embodiments disclosed herein may be implemented or executed using a general purpose processor, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware components, or any combination thereof designed to perform the functions described herein. The general purpose processor may be a microprocessor, but in an alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of receiver intelligent objects, for example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Alternatively, some operations or methods may be performed by circuits dedicated to a given function.
[0196] In one or more embodiments, the described functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on a non-transitory computer-readable medium or a non-transitory processor-readable storage medium. The operation of the method or algorithm disclosed herein may be embodied in a processor-executable software module or a processor-executable instruction, which may reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium may be any storage medium that can be accessed by a computer or processor. By way of example and not limitation, such a non-transitory computer-readable or processor-readable storage medium may include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disk storage, disk storage or other magnetic storage device, or any other medium that can be used to store desired program codes in the form of instructions or data structures and that can be accessed by a computer. As used herein, disks and optical disks include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks. Optical disks, where magnetic disks typically reproduce data magnetically, and optical disks utilize lasers to reproduce data optically. Combinations of the above are also included within the scope of non-transitory computer-readable and processor-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and / or instructions on a non-transitory processor-readable storage medium and / or computer-readable storage medium, which may be incorporated into a computer program product.
[0197] The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the claims. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the claims. Therefore, the present disclosure is not intended to be limited to the embodiments shown herein, but should be given the widest scope consistent with the appended claims and the principles and novel features disclosed herein.
Claims
1. A user equipment (UE) for uplink data transmission, comprising: Wireless transceiver; as well as A processor configured with processor-executable instructions for: receiving uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity; providing the uplink resource grant timing information to an application executed in a processor of the UE; receiving data from the application for transmission to the RAN during the uplink transmission opportunity; as well as The data is sent to the RAN during the uplink transmission opportunity.
2. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions such that the uplink resource grant timing information provided to the application includes an uplink period and an offset value within the uplink period, the uplink period and the offset value enabling the application to send the data for transmission to the RAN during the uplink transmission opportunity.
3. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to receive the uplink resource grant timing information via radio resource control (RRC) signaling.
4. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to receive an indication of an uplink period via RRC signaling and receive downlink control information (DCI) indicating an offset value within the uplink period.
5. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to receive in a DCI an uplink grant having a pattern indicating an uplink period and an offset within the uplink period.
6. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to: Receiving first application data at a first time and storing the first application data; receiving second application data at a second time; and The second application data and an uplink transmission request associated with the first application data are transmitted during the uplink transmission opportunity.
7. The UE according to claim 6, wherein: The processor is also configured with processor-executable instructions to: receiving an indication from the application regarding permission to store the first application data; and The first application data is stored after receiving an indication that storage of the first application data is permitted.
8. The UE according to claim 6, wherein: The processor is also configured with processor-executable instructions to: receiving, from the application, a storage duration for the first application data; when the uplink transmission opportunity occurs before the storage duration ends, transmitting the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity; as well as When the storage duration expires before the uplink transmission opportunity, a scheduling request associated with the first application data is sent.
9. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to: receiving, from the application, first application data generated at a first data time and second application data generated at a second data time at a time prior to the uplink transmission opportunity; as well as The first application data and an uplink transmission request associated with the second application data are transmitted during the uplink transmission opportunity.
10. The UE according to claim 1, wherein: The processor is also configured with processor-executable instructions to: providing the uplink resource grant timing information to the application via a modem application program interface (API) configured to communicate the uplink resource grant timing information to the application; as well as Data is received from the application via the API associated with the uplink resource grant timing information for transmission to the RAN.
11. The UE according to claim 10, wherein: The processor is also configured with processor-executable instructions to: receiving the data for transmission to the RAN at a time that satisfies a timing drift threshold from the uplink resource grant timing information; providing a timing adjustment to the application via the API associated with receiving the data for transmission to the RAN at a time when a timing drift threshold with respect to the uplink resource grant timing information is satisfied; as well as Second data is received from the application via the API for transmission to the RAN at a time within the timing drift threshold from the uplink resource grant timing information.
12. A method for uplink data transmission performed by a modem processor of a user equipment (UE), comprising: receiving uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity; providing the uplink resource grant timing information to an application executed in a processor of the UE; receiving data from the application for transmission to the RAN during the uplink transmission opportunity; as well as The data is sent to the RAN during the uplink transmission opportunity.
13. The method according to claim 12, wherein: The uplink resource grant timing information provided to the application includes an uplink period and an offset value within the uplink period, the uplink period and the offset value enabling the application to send the data for transmission to the RAN during the uplink transmission opportunity.
14. The method according to claim 12, wherein: Receiving the uplink resource grant timing information from the RAN includes receiving the uplink resource grant timing information via radio resource control (RRC) signaling.
15. The method according to claim 12, wherein: Receiving the uplink resource grant timing information from the RAN includes receiving an indication of an uplink period via RRC signaling and receiving downlink control information (DCI) indicating an offset value within the uplink period.
16. The method according to claim 12, wherein: Receiving the uplink resource grant timing information from the RAN includes receiving an uplink grant having a pattern indicating an uplink period and an offset within the uplink period in a DCI.
17. The method of claim 12, wherein: Receiving data from the application for transmission to the RAN during the uplink transmission opportunity comprises: receiving first application data at a first time and storing the first application data; and receiving second application data at a second time; and Sending the first application data to the RAN during the uplink transmission opportunity includes sending the second application data and an uplink transmission request associated with the first application data during the uplink transmission opportunity.
18. The method according to claim 17, further comprising: receiving an indication from the application regarding permission to store the first application data, Receiving the first application data at the first time and storing the first application data includes: storing the first application data after receiving an indication of allowing the first application data to be stored.
19. The method according to claim 17, further comprising: receiving, from the application, a storage duration for the first application data; as well as sending a scheduling request associated with the first application data when the storage duration ends before the uplink transmission opportunity, Wherein, sending the data to the RAN during the uplink transmission opportunity includes: when the uplink transmission opportunity occurs before the storage duration ends, sending the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity.
20. The method of claim 12, wherein: Receiving data from the application for transmission to the RAN during the uplink transmission opportunity includes: receiving from the application first application data generated at a first data time and second application data generated at a second data time at a time prior to the uplink transmission opportunity; and Sending the data to the RAN during the uplink transmission opportunity includes sending the first application data and an uplink transmission request associated with the second application data during the uplink transmission opportunity.
21. The method of claim 12, wherein: Providing the uplink resource grant timing information to the application executing on the processor of the UE includes: providing the uplink resource grant timing information to the application via a modem application program interface (API) configured to communicate the uplink resource grant timing information to the application; and Receiving data from the application for transmission to the RAN during the uplink transmission opportunity includes receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information.
22. The method of claim 21, wherein: Receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information comprises: receiving the data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information; and The method further comprises: providing a timing adjustment to the application via the API receiving the data for transmission to the RAN at a time when a timing drift threshold with the uplink resource grant timing information is satisfied; and Second data is received from the application via the API for transmission to the RAN at a time within the timing drift threshold from the uplink resource grant timing information.
23. A user equipment (UE), comprising: means for receiving uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity; means for providing the uplink resource grant timing information to an application executed in the UE; means for receiving data from the application for transmission to the RAN during the uplink transmission opportunity; as well as means for sending the data to the RAN during the uplink transmission opportunity.
24. The UE according to claim 23, wherein: The uplink resource grant timing information provided to the application includes an uplink period and an offset value within the uplink period, the uplink period and the offset value enabling the application to send the data for transmission to the RAN during the uplink transmission opportunity.
25. The UE according to claim 23, wherein: The means for receiving the uplink resource grant timing information from the RAN includes means for receiving the uplink resource grant timing information via radio resource control (RRC) signaling.
26. The UE according to claim 23, wherein: The means for receiving the uplink resource grant timing information from the RAN includes means for receiving an indication of an uplink period via RRC signaling and receiving downlink control information (DCI) indicating an offset value within the uplink period.
27. The UE according to claim 23, wherein: Means for receiving the uplink resource grant timing information from the RAN includes means for receiving an uplink grant in a DCI having a pattern indicating an uplink period and an offset within the uplink period.
28. The UE according to claim 23, wherein: The means for receiving data from the application for transmission to the RAN during the uplink transmission opportunity comprises: A unit for receiving first application data at a first time and storing the first application data; and means for receiving second application data at a second time; and The means for sending the first application data to the RAN during the uplink transmission opportunity includes means for sending the second application data and an uplink transmission request associated with the first application data during the uplink transmission opportunity.
29. The UE according to claim 28, further comprising: means for receiving an indication from the application regarding permission to store the first application data; The unit for receiving the first application data at the first time and storing the first application data includes: a unit for storing the first application data after receiving an indication of allowing the first application data to be stored.
30. The UE according to claim 28, further comprising: means for receiving, from the application, a storage duration for the first application data; as well as means for sending a scheduling request associated with the first application data when the storage duration expires before the uplink transmission opportunity, The unit for sending the data to the RAN during the uplink transmission opportunity includes: a unit for sending the second application data and the uplink transmission request associated with the first application data during the uplink transmission opportunity when the uplink transmission opportunity occurs before the storage duration ends.
31. The UE of claim 23, wherein: The means for receiving data from an application for transmission to the RAN during the uplink transmission opportunity includes: means for receiving, from the application, first application data generated at a first data time and second application data generated at a second data time at a time prior to the uplink transmission opportunity; and The means for sending the data to the RAN during the uplink transmission opportunity includes means for sending the first application data and an uplink transmission request associated with the second application data during the uplink transmission opportunity.
32. The UE according to claim 23, wherein: The means for providing the uplink resource grant timing information to the application executing on the processor of the UE includes: means for providing the uplink resource grant timing information to the application via a modem application program interface (API) configured to communicate the uplink resource grant timing information to the application; and Means for receiving data from the application for transmission to the RAN during the uplink transmission opportunity includes means for receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information.
33. The UE according to claim 32, wherein: The means for receiving data from the application for transmission to the RAN via the API associated with the uplink resource grant timing information comprises: means for receiving the data for transmission to the RAN at a time that satisfies a timing drift threshold with the uplink resource grant timing information; and The UE further includes: means for providing a timing adjustment to the application via the API receiving the data for transmission to the RAN at a time when a timing drift threshold with the uplink resource grant timing information is met; and Means for receiving second data from the application via the API for transmission to the RAN at a time within the timing drift threshold from the uplink resource grant timing information.
34. A non-transitory processor-readable medium having stored thereon processor-executable instructions configured to cause a processor in a user equipment (UE) to perform operations comprising: receiving uplink resource grant timing information from a radio access network (RAN), the uplink resource grant timing information indicating an uplink transmission opportunity; providing the uplink resource grant timing information to an application executed in a processor of the UE; receiving data from the application for transmission to the RAN during the uplink transmission opportunity; as well as The data is sent to the RAN during the uplink transmission opportunity.