WO2022225500A1 - Apparatus and method of multiple carrier slice-based uplink grant scheduling - Google Patents

Apparatus and method of multiple carrier slice-based uplink grant scheduling Download PDF

Info

Publication number
WO2022225500A1
WO2022225500A1 PCT/US2021/027857 US2021027857W WO2022225500A1 WO 2022225500 A1 WO2022225500 A1 WO 2022225500A1 US 2021027857 W US2021027857 W US 2021027857W WO 2022225500 A1 WO2022225500 A1 WO 2022225500A1
Authority
WO
WIPO (PCT)
Prior art keywords
lcp
slice
queue
priority
bytes
Prior art date
Application number
PCT/US2021/027857
Other languages
French (fr)
Inventor
Su-Lin Low
Chun-I Lee
Yunhong Li
Tianan MA
Sonali Bagchi
Na CHEN
Sangwon Ki
Original Assignee
Zeku, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zeku, Inc. filed Critical Zeku, Inc.
Priority to PCT/US2021/027857 priority Critical patent/WO2022225500A1/en
Publication of WO2022225500A1 publication Critical patent/WO2022225500A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Definitions

  • Embodiments of the present disclosure relate to apparatus and method for wireless communication.
  • Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcasts.
  • cellular communication such as the 4th-generation (4G) Long Term Evolution (LTE) and the 5th- generation (5G) New Radio (NR)
  • 4G Long Term Evolution
  • 5G 5th-generation
  • 3GPP 3rd Generation Partnership Project
  • CA carrier aggregation
  • Embodiments of apparatus and method for multiple carrier slice-based uplink (UL) grant scheduling are disclosed herein.
  • an apparatus for wireless communication of a user equipment may include, among other things, a first logical channel packet (LCP) module associated with a first component carrier (CC), a second LCP module associated with a second CC, a third LCP module associated with a third CC, and an LCP priority module.
  • the first LCP module may be configured to dequeue a first slice of a first LCP from a first logical channel (LC) queue until a first threshold condition is met.
  • the first LCP module may also be configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP.
  • the first LCP indicator may indicate a first remaining slice of the first LCP.
  • the second LCP module may be configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the first LCP module may be also configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • an apparatus for wireless communication of a UE may include a memory and at least one microcontroller coupled to the memory and configured to perform various operations.
  • the at least one microcontroller may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met.
  • the first LCP may be associated with a first CC.
  • the at least one microcontroller may be further configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP.
  • the at least one microcontroller may be further configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the second LCP may be associated with a second CC.
  • the at least one microcontroller may be further configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • a method of wireless communication of a UE may include dequeuing a first slice of a first LCP from a first LC queue until a first threshold condition is met.
  • the first LCP may be associated with a first CC.
  • the method may further include sending a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP.
  • the first LCP indicator may indicate a first remaining slice of the first LCP.
  • the method may further include dequeuing a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the second LCP may be associated with a second CC.
  • the method may further include dequeuing a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • an apparatus for wireless communication of a UE may include a memory and at least one microcontroller coupled to the memory.
  • the at least one microcontroller may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC.
  • the at least one microcontroller may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
  • an apparatus for wireless communication of a UE may include an LCP priority unit.
  • the LCP priority unit may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC.
  • the LCP priority unit may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
  • a method of wireless communication of a UE may include receiving, using an LCP priority unit, a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The method may further include prioritizing, using the LCP priority unit, the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
  • FIG. 1 illustrates an exemplary wireless network, according to some embodiments of the present disclosure.
  • FIG. 2 illustrates a block diagram of an exemplary apparatus including a baseband chip, a radio frequency (RF) chip, and a host chip, according to some embodiments of the present disclosure.
  • RF radio frequency
  • FIG. 3A illustrates a conceptual diagram of a first exemplary slice-based LCP processing technique that may be implemented using the exemplary apparatus of FIG. 2, according to some embodiments of the present disclosure.
  • FIG. 3B illustrates a conceptual diagram of a second exemplary slice-based LCP processing technique that may be implemented using the exemplary apparatus of FIG. 2, according to some embodiments of the present disclosure.
  • FIG. 3C illustrates a timing diagram of the exemplary slice-based LCP processing technique of FIG. 3 A, according to some embodiments of the present disclosure.
  • FIG. 4 illustrates a flow chart of an exemplary method of wireless communication, according to some embodiments of the present disclosure.
  • FIG. 5 illustrates a block diagram of an exemplary node, according to some embodiments of the present disclosure.
  • FIG. 6A illustrates a first example timing diagram used to schedule a UL LCP transmission at a UE.
  • FIG. 6B illustrates a second example timing diagram that may be used to schedule a UL LCP transmission at a UE.
  • references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” “some embodiments,” “certain embodiments,” etc. indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of a person skilled in the pertinent art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense.
  • terms, such as “a,” “an,” or “the,” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context.
  • the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.
  • CDMA code division multiple access
  • TDMA time division multiple access
  • FDMA frequency division multiple access
  • OFDMA orthogonal frequency division multiple access
  • SC- FDMA single-carrier frequency division multiple access
  • WLAN wireless local area network
  • a CDMA network may implement a radio access technology (RAT), such as Universal Terrestrial Radio Access (UTRA), evolved UTRA (E-UTRA), CDMA 2000, etc.
  • RAT radio access technology
  • UTRA Universal Terrestrial Radio Access
  • E-UTRA evolved UTRA
  • CDMA 2000 etc.
  • GSM Global System for Mobile Communications
  • An OFDMA network may implement a RAT, such as LTE or NR.
  • a WLAN system may implement a RAT, such as Wi-Fi.
  • the techniques described herein may be used for the wireless networks and RATs mentioned above, as well as other wireless networks and RATs.
  • CA is one technique used in wireless communication to increase the data rate per user, whereby multiple frequency blocks (also referred to herein as “component carriers”) are assigned to the same UE for concurrent transmission using different parts of the frequency spectrum.
  • Each component carrier (CC) may be associated with a different ceil, e.g., base station.
  • the maximum possible data rate per user is increased as the number of component carriers (CCs) assigned to a UE increases.
  • CA also increases the sum data rate of a cell due to enhanced resource utilization and spectral efficiency.
  • a UE While communicating using CA, a UE may be connected with two or more media access control (MAC) entities, which are each connected to a base station with multiple carriers of different bandwidths, a different number of available resources, and different radio channel conditions.
  • MAC media access control
  • the UE receives multiple UL grants concurrently from different base stations.
  • Each UL grant may schedule a different logical channel packet (LCP) transmission on its respective CC.
  • LCP logical channel packet
  • a base station may send a UL grant to the UE using the physical downlink control channel (PDCCH) of that CC.
  • PDCCH physical downlink control channel
  • the UE may receive a UL grant at the beginning of a slot (in a downlink control indicator (DCI)), which indicates the time at which the associated LCP is scheduled for transmission.
  • the UL grant may also indicate the number of resources (e.g., byte size) that have been allocated for the LCP.
  • the scheduled time may be equivalent to a time delay of K2 slot(s) from the slot in which the UL grant is received.
  • FIG. 6A illustrates a first example timing diagram 600 in which K2 may be one or more slots away from the received UL grant, with a transmission start symbol at the slot boundary.
  • FIG. 6B illustrates a second example timing diagram 601 in which K2 is less than one, meaning the transmission start symbol S is in the same slot in which the UL grant is received.
  • a UL grant that schedules an LCP transmission in the same slot in which the grant was received indicates that the LCP may be associated with a low latency application, and hence, the UE may need to process the LCP to be transmitted within
  • the UE may process LPCs for multiple CCs concurrently.
  • the UE may implement logical channel (LC) prioritization scheduling to schedule logical channel packets (LCPs) using one or more logical channels (LCs) according to the allocated number of bytes from a configured maximum bucket size setting associated with each of the LCs.
  • LC logical channel
  • LCPs logical channel packets
  • LCs logical channels
  • the UE processes multiple LCPs in the order that their respective grants were received, which may impose certain problems at the UE.
  • the UE may dequeue and process the first LCP before the second LCP, even though the second LCP is scheduled for transmission before the first LCP. In such a situation, the UE may be unable to dequeue and process the second LCP in time for its scheduled transmission depending on the byte sizes allocated for the first LCP and the second LCP, thereby degrading the throughput of the system and increasing the chance of desynchronization between the UE and base station. Moreover, due to the lack of scheduling optimization using known approaches, the UE may consume power unnecessarily.
  • the present disclosure provides a slice-based UL grant scheduling technique that prioritizes each UL grant based on the scheduled transmission time.
  • a UE may implement the present slice-based UL grant scheduling technique such that each LCP is sliced at either the LC queue boundary or at a predetermined slice-bytes boundary.
  • LCPs within the same LC queue (which may include LCPs for different CCs) are dequeued and scheduled for in-sequence transmission with increased efficiency, as compared to known approaches.
  • the UE of the present disclosure may include LCP hardware and/or software that is decoupled from the hardware and/or software of the transmission (Tx) scheduler.
  • the Tx scheduler may pipeline the transmission of LCPs and schedule the physical (PHY) layer Tx hardware to transmit the bytes of each LCP efficiently and with reduced latency.
  • the LCP hardware and/or software may run independently of the Tx scheduler to ensure in sequence dequeuing and delivery of LCPs to the Tx scheduler. Additional details of the slice- based UL grant scheduling technique of the present disclosure are set forth below in connection with FIGs. 1-5.
  • FIG. 1 illustrates an exemplary wireless network 100, in which some aspects of the present disclosure may be implemented, according to some embodiments of the present disclosure.
  • wireless network 100 may include a network of nodes, such as a user equipment 102, an access node 104, and a core network element 106.
  • User equipment 102 may be any terminal device, such as a mobile phone, a desktop computer, a laptop computer, a tablet, a vehicle computer, a gaming console, a printer, a positioning device, a wearable electronic device, a smart sensor, or any other device capable of receiving, processing, and transmitting information, such as any member of a vehicle to everything (V2X) network, a cluster network, a smart grid node, or an Intemet-of-Things (IoT) node.
  • V2X vehicle to everything
  • IoT Intemet-of-Things
  • Access node 104 may be a device that communicates with user equipment 102, such as a wireless access point, a base station (BS), a Node B, an enhanced Node B (eNodeB or eNB), a next-generation NodeB (gNodeB or gNB), a cluster master node, or the like. Access node 104 may have a wired connection to user equipment 102, a wireless connection to user equipment 102, or any combination thereof. Access node 104 may be connected to user equipment 102 by multiple connections, and user equipment 102 may be connected to other access nodes in addition to access node 104. Access node 104 may also be connected to other user equipments.
  • BS base station
  • eNodeB or eNB enhanced Node B
  • gNodeB or gNB next-generation NodeB
  • gNodeB next-generation NodeB
  • Core network element 106 may serve access node 104 and user equipment 102 to provide core network services.
  • core network element 106 may include a home subscriber server (HSS), a mobility management entity (MME), a serving gateway (SGW), or a packet data network gateway (PGW).
  • HSS home subscriber server
  • MME mobility management entity
  • SGW serving gateway
  • PGW packet data network gateway
  • EPC evolved packet core
  • Other core network elements may be used in LTE and in other communication systems.
  • core network element 106 includes an access and mobility management function (AMF) device, a session management function (SMF) device, or a user plane function (UPF) device, of a core network for the NR system. It is understood that core network element 106 is shown as a set of rack-mounted servers by way of illustration and not by way of limitation.
  • AMF access and mobility management function
  • SMF session management function
  • UPF user plane function
  • Core network element 106 may connect with a large network, such as the Internet
  • IP Internet Protocol
  • data from user equipment 102 may be communicated to other user equipments connected to other access points, including, for example, a computer 110 connected to Internet 108, for example, using a wired connection or a wireless connection, or to a tablet 112 wirelessly connected to Internet 108 via a router 114.
  • computer 110 and tablet 112 provide additional examples of possible user equipments
  • router 114 provides an example of another possible access node.
  • a generic example of a rack-mounted server is provided as an illustration of core network element 106. However, there may be multiple elements in the core network including database servers, such as a database 116, and security and authentication servers, such as an authentication server 118.
  • Database 116 may, for example, manage data related to user subscription to network services.
  • a home location register (HLR) is an example of a standardized database of subscriber information for a cellular network.
  • authentication server 118 may handle authentication of users, sessions, and so on.
  • an authentication server function (AUSF) device may be the specific entity to perform user equipment authentication.
  • a single server rack may handle multiple such functions, such that the connections between core network element 106, authentication server 118, and database 116, may be local connections within a single rack.
  • Each element in FIG. 1 may be considered a node of wireless network 100. More detail regarding the possible implementation of a node is provided by way of example in the description of a node 500 in FIG. 5.
  • Node 500 may be configured as user equipment 102, access node 104, or core network element 106 in FIG. 1.
  • node 500 may also be configured as computer 110, router 114, tablet 112, database 116, or authentication server 118 in FIG. 1.
  • node 500 may include a processor 502, a memory 504, and a transceiver 506. These components are shown as connected to one another by a bus, but other connection types are also permitted.
  • node 500 When node 500 is user equipment 102, additional components may also be included, such as a user interface (UI), sensors, and the like. Similarly, node 500 may be implemented as a blade in a server system when node 500 is configured as core network element 106. Other implementations are also possible.
  • UI user interface
  • sensors sensors
  • core network element 106 Other implementations are also possible.
  • Transceiver 506 may include any suitable device for sending and/or receiving data.
  • Node 500 may include one or more transceivers, although only one transceiver 506 is shown for simplicity of illustration.
  • An antenna 508 is shown as a possible communication mechanism for node 500. Multiple antennas and/or arrays of antennas may be utilized for receiving multiple spatially multiplex data streams.
  • examples of node 500 may communicate using wired techniques rather than (or in addition to) wireless techniques.
  • access node 104 may communicate wirelessly to user equipment 102 and may communicate by a wired connection (for example, by optical or coaxial cable) to core network element 106.
  • Other communication hardware such as a network interface card (NIC), may be included as well.
  • NIC network interface card
  • node 500 may include processor 502. Although only one processor is shown, it is understood that multiple processors can be included.
  • Processor 502 may include microprocessors, microcontroller units (MCUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout the present disclosure.
  • Processor 502 may be a hardware device having one or more processing cores.
  • Processor 502 may execute software.
  • node 500 may also include memory 504. Although only one memory is shown, it is understood that multiple memories can be included. Memory 504 can broadly include both memory and storage.
  • memory 504 may include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferro electric RAM (FRAM), electrically erasable programmable ROM (EEPROM), compact disc read only memory (CD-ROM) or other optical disk storage, hard disk drive (HDD), such as magnetic disk storage or other magnetic storage devices, Flash drive, solid-state drive (SSD), or any other medium that can be used to carry or store desired program code in the form of instructions that can be accessed and executed by processor 502.
  • RAM random-access memory
  • ROM read-only memory
  • SRAM static RAM
  • DRAM dynamic RAM
  • FRAM ferro electric RAM
  • EEPROM electrically erasable programmable ROM
  • CD-ROM compact disc read only memory
  • HDD hard disk drive
  • Flash drive such as magnetic disk storage or other magnetic storage devices
  • SSD solid-state drive
  • memory 504 may be embodied by any computer-readable medium, such as a non-transitory computer-readable medium.
  • Processor 502, memory 504, and transceiver 506 may be implemented in various forms in node 500 for performing wireless communication functions.
  • processor 502, memory 504, and transceiver 506 of node 500 are implemented (e.g., integrated) on one or more system-on-chips (SoCs).
  • SoCs system-on-chips
  • processor 502 and memory 504 may be integrated on an application processor (AP) SoC (sometimes known as a “host,” referred to herein as a “host chip”) that handles application processing in an operating system (OS) environment, including generating raw data to be transmitted.
  • API application processor
  • OS operating system
  • processor 502 and memory 504 may be integrated on a baseband processor (BP) SoC (sometimes known as a “modem,” referred to herein as a “baseband chip”) that converts the raw data, e.g., from the host chip, to signals that can be used to modulate the carrier frequency for transmission, and vice versa, which can run a real-time operating system (RTOS).
  • BP baseband processor
  • RTOS real-time operating system
  • processor 502 and transceiver 506 may be integrated on an RF SoC (sometimes known as a “transceiver,” referred to herein as an “RF chip”) that transmits and receives RF signals with antenna 508.
  • RF SoC sometimes known as a “transceiver,” referred to herein as an “RF chip”
  • some or all of the host chip, baseband chip, and RF chip may be integrated as a single SoC.
  • a baseband chip and an RF chip may be integrated into a single SoC that manages all the radio functions for cellular communication.
  • user equipment 102 may be configured to perform slice-based UL grant scheduling, as described below in detail.
  • the present techniques may improve the data throughput performance with in-sequence packet transmission for each LC, processing resources for both low latency and high throughput LCPs may be optimized, multiple UL grants may be processed with minimal delay and expediated LCP transmission, improve the performance of user equipment 102 in concurrent low latency and high throughput scenarios, and/or reduce/eliminate latency uncertainties associated with multiple concurrent UL grants that schedule LCPs for transmission within the same slot that their respective UL grants are received, and/or reduce the power consumption of user equipment 102 due to optimized UL grant processing/scheduling.
  • FIG. 2 illustrates a block diagram of an apparatus 200 including a baseband chip
  • Apparatus 200 may be an example of any suitable node of wireless network 100 in FIG. 1, such as user equipment 102 or access node 104. As shown in FIG. 2, apparatus 200 may include baseband chip 202, RF chip 204, host chip 206, and one or more antennas 210. In some embodiments, baseband chip 202 is implemented by processor 502 and memory 504, and RF chip 204 is implemented by processor 502, memory 504, and transceiver 506, as described above with respect to FIG. 5.
  • apparatus 200 may further include an external memory 208 (e.g., the system memory or main memory) that can be shared by each chip 202, 204, or 206 through the system/main bus.
  • external memory 208 e.g., the system memory or main memory
  • baseband chip 202 is illustrated as a standalone SoC in FIG.
  • baseband chip 202 and RF chip 204 may be integrated as one SoC; in another example, baseband chip 202 and host chip 206 may be integrated as one SoC; in still another example, baseband chip 202, RF chip 204, and host chip 206 may be integrated as one SoC, as described above.
  • host chip 206 may generate raw data and send it to baseband chip 202 for encoding, modulation, and mapping. Interface 214 of baseband chip 202 may receive the data from host chip 206. Baseband chip 202 may also access the raw data generated by host chip 206 and stored in external memory 208, for example, using the direct memory access (DMA). Baseband chip 202 may access dequeuing slices of an LCP from one or more LCs. Baseband chip 202 may first encode (e.g., by source coding and/or channel coding) the raw data and modulate the coded data using any suitable modulation techniques, such as multi-phase shift keying (MPSK) modulation or quadrature amplitude modulation (QAM).
  • MPSK multi-phase shift keying
  • QAM quadrature amplitude modulation
  • Baseband chip 202 may perform any other functions, such as symbol or layer mapping, to convert the raw data into a signal that can be used to modulate the carrier frequency for transmission.
  • baseband chip 202 may send the modulated signal to RF chip 204 via interface 214.
  • RF chip 204 through the transmitter, may convert the modulated signal in the digital form into analog signals, i.e., RF signals, and perform any suitable front-end RF functions, such as filtering, digital pre-distortion, up-conversion, or sample-rate conversion.
  • Antenna 210 e.g., an antenna array
  • antenna 210 may receive RF signals that may include, among other things, UL grants received concurrently from different base stations using different CCs.
  • the RF signals may be passed to the receiver (Rx) of RF chip 204.
  • RF chip 204 may perform any suitable front-end RF functions, such as filtering, IQ imbalance compensation, down-paging conversion, or sample-rate conversion, and convert the RF signals (e.g., transmission) into low-frequency digital signals (baseband signals) that can be processed by baseband chip 202.
  • interface 214 of baseband chip 202 may receive the RF signals, which are passed to microcontroller 216.
  • Microcontroller 216 may be configured to perform slice- based UL grant scheduling as described below in connection with FIGs. 3A, 3B, 3C, and 4.
  • the in-sequence slices may be sent to Tx scheduler 220, which is configured to transmit LCP slices as they come in based on their associated transmission schedule.
  • Microcontroller 216 may be decoupled form Tx scheduler 220.
  • Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware (e.g., TX/PHY layer hardware 310 in FIGs. 3 A and 3B) to transmit the slices (e.g., bytes) efficiently and with reduced latency.
  • the LCP process described in additional detail below in connection with FIGs. 3 A, 3B, 3C, and 4 may run independently of Tx scheduler 220 to ensure in sequence LCP dequeue and delivery.
  • baseband chip 202 may perform other functions, such as demodulation, decoding, error checking, de-mapping, channel estimation, descrambling, etc.
  • the raw data e.g., UL grant(s), resources allocated for an LCP, etc.
  • the raw data may be sent to host chip 206 directly via interface 214 or stored in external memory 208.
  • FIG. 3 A illustrates a conceptional flow diagram of a first exemplary slice-based UL grant scheduling technique 300 that may be implemented by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure.
  • FIG. 3B illustrates a conceptional flow diagram of a second exemplary slice-based UL grant scheduling technique 350 that may be implemented by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure.
  • FIG. 3C illustrates a transmission flow diagram 375 that may be used by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure.
  • FIGs. 3A-3C will be described together.
  • baseband chip 202 may include a plurality of LC queues 302 (e.g., LI, L2, L3, L4, L5, etc.) each of which has a predetermined token bucket size (e.g., byte size), an LCP priority unit 304, microcontroller 216, Tx scheduler 220, and TX/PHY layer hardware 310.
  • Microcontroller 216 may include a plurality of LCP units 312a, 312b, 312b that may be implemented as processors or dedicated hardware that are each configured to service UL grants associated with a respective CC. In FIGs. 3 A and 3B, there are three units illustrated as servicing three CCs.
  • microcontroller 216 includes a first LCP unit 312a (referred to hereinafter as “LCP unit A 312a”) configured to service a first CC (CC0), a second LCP unit 312b (referred to hereinafter as “LCP unit B 312b”) configured to service a second CC (CC1), and a third LCP unit 312c configured to service a third CC (CC2).
  • LCP unit A 312a a first LCP unit 312a
  • LCP unit B 312b referred to hereinafter as “LCP unit B 312b”
  • CC1 second CC
  • CC2c third LCP unit 312c configured to service a third CC
  • microcontroller 216 is not limited to three LCP units. Rather, microcontroller 216 may include two or more LCP units each configured to service a particular CC without departing from the scope of the present disclosure.
  • Each of LCP units 312a, 312b, and 312c may include software/firmware units running on micro
  • LCP units 312a, 312b, and 312c may dedicated integrated circuits, e.g., such as ASICs.
  • the LCP units 312a, 312b, and 312c may be separate from microcontroller 216 and be included as separate hardware components of baseband chip 202.
  • microcontroller 216 may be decoupled form Tx scheduler 220.
  • Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware 310 to transmit the slices (e.g., bytes) efficiently and with reduced latency.
  • the LCP process described in additional detail below in connection with FIGs. 3 A, 3B, 3C, and 4 may run independently of Tx scheduler 220 to ensure in-sequence LCP dequeue and delivery.
  • Each of the LC queues 302 may be configured to service one or more of the LCP units 312a, 312b, 312c.
  • Each LC queue 302 is configured to maintain one or more LCP slice(s) 320.
  • an LCP slice is dequeued from its respective LC queue 302 until all the bucket tokens in the LC queue 302 have been used or until the LCP byte size allocated by the UL grant is reached.
  • FIG. 3 A an LCP slice is dequeued from its respective LC queue 302 until all the bucket tokens in the LC queue 302 have been used or until the LCP byte size allocated by the UL grant is reached.
  • FIG. 3 A an LCP slice is dequeued from its respective LC queue 302 until all the bucket tokens in the LC queue 302 have been used or until the L
  • LCP slices are dequeued in byte-sized units so that once the predetermined number of bytes for that slice is reached, the dequeuing for that slice stops regardless of whether there are remaining bucket tokens in that LC queue 302 and/or the entire LCP has yet to be dequeued.
  • baseband chip 202 may be configured to service any number of concurrent UL grants without departing from the scope of the present disclosure.
  • one example of the slice-based UL grant scheduling technique may be performed based on the size of the LC queues.
  • the first UL grant received on CC0 schedules the transmission of LCP A with a K2 time delay of less than one (in the same slot), and that the first UL grant allocates 1,000 bytes for LCP A.
  • the second UL grant received on CC 1 schedules the transmission of LCP B with a K2 time delay of two slots, and that the second UL grant allocates 1,800 bytes for LCP B.
  • LCP priority unit 304 prioritizes the UL grants, from highest to lowest, in the following order: 1) first UL grant, 2) second UL grant, and 3) third UL grant. Again, the prioritization is based on scheduled transmission times of the respective LCPs. Still further, in the following example of FIG. 3 A, assume the following maximum token bucket sizes for the LC queues: 1,000 bytes for LC1, 750 bytes for LC2, 1200 bytes for LC3, 1600 bytes for LC4, and 900 bytes for LC5.
  • LCP priority unit 304 may send an LCP slice run request 301 (referred to hereinafter as “slice run request 301”) to LCP unit A 312a first since it has the highest priority.
  • the LCP slice run request 301 may indicate, among other things, the byte size allocated for LCP A (e.g., 1,000 bytes).
  • LCP unit A 312a may then begin dequeuing a first slice of LCP A (referred to hereinafter as “Al”) from LC1. Because LC1 has a bucket size that is also 1,000 bytes, A1 includes the entirety of LCP A.
  • LCP unit A 312a may perform additional processing to prepare Al for transmission. Then, Al may be sent to Tx scheduler 220.
  • LCP unit A 312a may send a signal 303 indicating that LCP A is complete, and the first UL grant has been fully processed.
  • LCP priority unit 304 may then remove the first UL grant from the priority list.
  • LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority.
  • This slice run request 301 may indicate that the byte size allocated for LCP B is 1,800 bytes.
  • LCP unit B 312b may begin dequeuing a first slice of LCP B (referred to hereinafter as “Bl”) from LC2. Because LC2 only has 750 bytes remaining, Bl is 750 bytes.
  • LCP unit B 312b may perform additional processing to prepare Bl for transmission. Then, then Bl may be sent to Tx scheduler 220. Here, LCP unit B 312b may generate a signal 305 that indicates Bl has been dequeued/processed and that 1050 bytes of LCP B remain. LCP priority unit 304 then updates the grant information for LCP B accordingly. [0056] Upon receipt of signal 305 from LCP unit B 312b, LCP priority unit 304 sends another slice run request 301 to LCP unit C 312c, since LCP C is next in line. This slice run request 301 may indicate the byte size allocated for LCP C, which is 2,200 bytes.
  • LCP unit C 312c may begin dequeuing a first slice of LCP C (referred to hereinafter as “Cl”) from LC3 since there are no bytes remaining in LC2. Because LC3 only has 1200 bytes, Cl is 1200 bytes. LCP unit C 312c may perform additional processing to prepare Cl for transmission. Then, Cl may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates Cl has been dequeued and that 1,000 bytes of LCP C remain. LCP priority unit 304 may update the grant information for LCP C accordingly.
  • LCP priority unit 304 may update the grant information for LCP C accordingly.
  • LCP priority unit 304 may then send a subsequent slice run request 301 to LCP unit
  • Subsequent slice run request 301 may indicate the remaining 1050 bytes of LCP B.
  • LCP unit B 312b may then begin dequeuing a second slice of LCP B (referred to hereinafter as “B2”) from LC4, which runs until 1050 bytes have been dequeued.
  • B2 a second slice of LCP B
  • LCP unit B 312b may perform additional processing to prepare B2 for transmission.
  • B2 may be sent to Tx scheduler 220.
  • LCP unit B 312b may send a signal 303 indicating that LCP B is complete, and the second UL grant has been fully processed.
  • LCP priority unit 304 may then remove the second UL grant from the priority list.
  • LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit C
  • This slice run request 301 may indicate there remaining 1,000 bytes of LCP C. Then, LCP unit C 312c may dequeue a second slice of LCP C (referred to hereinafter as “C2”) using the remaining bytes of LC4. Because only 550 bytes remain in LC4, C2 is 550 bytes. This means that 450 bytes of LCP C remain. Then, C2 may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates C2 has been dequeued and that 450 bytes of LCP C remain. LCP priority unit 304 may update the grant information for LCP C accordingly.
  • LCP priority unit 304 may determine that no other UL grants remain in the priority list, and hence, a further slice run request 301 is sent to LCP unit C 312c indicating the remaining 450 bytes for LCP C. Because LC4 is now empty, LCP unit C 312c may dequeue the third slice of LCP C (referred to hereinafter as “C3”) from LC5. Once the 450 bytes of C3 is dequeued, 450 bytes remain in LC5. Then, C3 may be sent to Tx scheduler 220. Once C3 is sent to Tx scheduler 220, LCP unit C 312c may send a signal 303 indicating that LCP C is complete and the third grant has been fully processed. LCP priority unit 304 may then remove the third UL grant from the priority list.
  • C3 third slice of LCP C
  • each of the LCP slices is sent to Tx scheduler 220 once they have been processed by microcontroller 216. Then the slices may be sent out as they arrive to meet the time delay scheduled by their respective UL grants.
  • microcontroller 216 may be decoupled form Tx scheduler 220.
  • Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware 310 to transmit the slices (e.g., bytes) efficiently and with reduced latency.
  • the LCP process described in connection with FIGs. 3 A, 3B, and 4 may run independently of Tx scheduler 220 to ensure in-sequence LCP dequeue and delivery.
  • in-sequence LCP slices may be optimally processed with reduced latency and ready for transmission such that all concurrent LCPs are ready for transmission at the appropriate times. Moreover, because microcontroller 216 and Tx scheduler 220 are decoupled, the processing efficiency of microcontroller 216 may be further increased since it does not need to also perform LCP transmission scheduling for each of the LCPs.
  • FIG. 3B another example of the slice-based UL grant scheduling technique may be performed based on different LCP slice byte sizes.
  • the first UL grant received on CC0 schedules the transmission of LCP A with a K2 time delay of less than one slot (in the same slot), and that the first UL grant allocates 1,000 bytes for LCP A.
  • the second UL grant received on CC1 schedules the transmission of LCP B with a K2 time delay of two slots, and that the second UL grant allocates 1,025 bytes for LCP B.
  • LCP priority unit 304 prioritizes the UL grants, from highest to lowest, in the following order: 1) first UL grant, 2) second UL grant, and 3) third UL grant. Again, the prioritization is based on scheduled transmission times of the LCPs allocated by their respective UL grant. Still further, in the following example of FIG. 3B, assume the following maximum token bucket sizes for the LC queues: 1,000 bytes for LC1, 550 bytes for LC2, 1200 bytes for LC3, 1475 bytes for LC4, and 1300 bytes for LC5.
  • the byte sizes used to slice LCP A, LCP B, and LCP C may be determined on-the-fly or semi-statically by each of LCP unit A 312a, LCP unit B 312b, and LCP unit C 312c, respectively.
  • an LCP unit may determine the LCP slice byte sizes when a slice run request 301 ’ is received from LCP priority unit 304 and before dequeuing begins and/or when triggered to do so by, e.g., a change in channel conditions.
  • an LCP unit may determine slice byte sizes according to various characteristics of its associated CC, e.g., as shown below in Equation (1): where P is the UE Rx power, S is the subcarrier spacing (SCS), B is the bandwidth resources of the associated CC, T is a throughput requirement, L is a latency requirement, A is an application packet reorder tolerance level, and kl, k2, k3, k4, k5, and k6 are tunable normalized factors.
  • S subcarrier spacing
  • B the bandwidth resources of the associated CC
  • T is a throughput requirement
  • L is a latency requirement
  • A is an application packet reorder tolerance level
  • kl, k2, k3, k4, k5, and k6 are tunable normalized factors.
  • the slice grant bytes may be larger to optimize in-sequence transmission.
  • the characteristics of the associated CC include lower latency and time-sensitive transmission (e.g., in the same slot in which the UL grant is received)
  • the slice byte size may be comparatively smaller to reduce latency and increase the probability of proper decoding by the receiving device.
  • slice AU has a slice byte size of 500 bytes
  • slice A2’ has a slice byte size of 500 bytes
  • slice BE has a slice byte size of 450 bytes
  • slice B2’ has a slice byte size of 100 bytes
  • slice B3’ has a slice byte size of 475 bytes
  • slice CU has a slice byte size of 700 bytes
  • slice C2’ has a slice byte size of 1,000 bytes
  • slice C3’ has a slice byte size of 600 bytes
  • slice C4’ has a slice byte size of 700 bytes.
  • each of these slice byte sizes may be determined by their respective LCP unit upon receipt of the slice run request 30U, semi- statically when the UE connects to the various CCs, or when something triggers a new slice size determination, e.g., such as when channel conditions change.
  • LCP priority unit 304 may send a LCP slice run request 30G (referred to hereinafter as “slice run request 30G”) to LCP unit A 312a first since it has the highest priority.
  • the LCP slice run request 301 ’ may indicate, among other things, the byte size allocated by the first UL grant for LCP A (e.g., 1,000 bytes).
  • LCP unit A 312a may determine a slice size of 500 bytes for the first slice of LCP A (referred to hereinafter as “A1 LCP unit A 312a may also determine that LC1 has 1,000 bytes, and so the entirety of AL is dequeued from LC1 such that LC1 has 500 bytes remaining. LCP unit A 312a may perform additional processing to prepare AL for transmission. Then, AL may be sent to Tx scheduler 220. Since LC1 only services LCP unit A 312a, LCP unit A 312a may determine a slice size for a second slice of LCP A (referred to hereinafter as “A2”’), e.g., 500 bytes.
  • A2 second slice of LCP A
  • LCP unit A 312a may dequeue the entirety of A2’ from LC1. LCP unit A 312a may perform additional processing to prepare A2’ for transmission. Then, A2’ may be sent to Tx scheduler 220. Once A1 ’ and A2’ are sent to Tx scheduler 220, LCP unit A 312a may send a signal 303 indicating that LCP A is complete, and the first UL grant has been fully processed. LCP priority unit 304 may then remove the first UL grant from the priority list.
  • LCP priority unit 304 may send a slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority.
  • This slice run request 301 may indicate that the byte size allocated for LCP B is 1,025 bytes.
  • LCP unit B 312b may determine the slice size for the first slice of LCP B (referred to hereinafter as “B L”), e.g., 450 bytes.
  • B L the slice size for the first slice of LCP B
  • LCP unit B 312b may also determine that LC2 has 550 bytes and so the entirety of BL may be dequeued from LC2 such that LC2 has 100 bytes remaining.
  • LCP unit B 312b may perform additional processing to prepare BL for transmission. Then, then BL may be sent to Tx scheduler 220.
  • LCP unit B 312b may generate a signal 305 that indicates BL has been dequeued/processed and that 575 bytes of LCP B (e.g., the second UL grant) remain.
  • LCP priority unit 304 then updates the grant information for LCP B, accordingly.
  • LCP priority unit 304 may send a slice run request 301 to LCP unit C 312c, since LCP C is next in line of priority.
  • This slice run request 301 may indicate that the byte size allocated for LCP C is 3,000 bytes.
  • LCP unit C 312c may determine the slice size for the first slice of LCP C (referred to hereinafter as “CL”), e.g., 700 bytes.
  • LCP unit C 312c may also determine that LC2 has 100 bytes and LC3 1200 bytes.
  • LCP unit C 312c dequeues a first portion of CL (e.g., 100 bytes) from LC2 and a second portion of CL (e.g., 600 bytes) from LC3 so that the bytes for CL are fully dequeued. LC3 has 600 bytes remaining after the second portion of CL is dequeued. LCP unit C 312c may perform additional processing to prepare Cl’ for transmission. Then, then Cl’ may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates Cl’ has been dequeued/processed and that 2300 bytes of LCP C remain. LCP priority unit 304 then updates the grant information for LCP C accordingly.
  • CL e.g. 100 bytes
  • CL e.g., 600 bytes
  • LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority.
  • This slice run request 301 may indicate the remaining byte size of LCP B, e.g., 575 bytes.
  • LCP unit B 312b may determine the slice size for the second slice of LCP B (referred to hereinafter as “B2”’), e.g., 100 bytes.
  • LCP unit B 312b may also determine that LC3 has 600 bytes remaining and so the entirety of B2’ may be dequeued from LC3 such that LC3 has 500 bytes remaining.
  • LCP unit B 312b may perform additional processing to prepare B2’ for transmission.
  • LCP unit B 312b may generate a signal 305 that indicates B2’ has been dequeued/processed and that 475 bytes of LCP B remain.
  • LCP priority unit 304 then updates the grant information for LCP B accordingly.
  • LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit
  • LCP unit C 312c may determine the slice size for the second slice of LCP C (referred to hereinafter as “C2”’), e.g., 1,000 bytes.
  • LCP unit C 312c may also determine that LC3 has 500 bytes and LC4 1475 bytes.
  • LCP unit C 312c dequeues a first portion of C2’ (e.g., 500 bytes) from LC3 and a second portion of C2’ (e.g., 500 bytes) from LC4 so that 1,000 bytes are dequeued for C2’.
  • LCP unit C 312c may perform additional processing to prepare C2’ for transmission. Then, then C2’ may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates C2’ has been dequeued/processed and that 1300 bytes of LCP C remain. LCP priority unit 304 then updates the grant information for LCP C accordingly.
  • LCP priority unit 304 may send another subsequent slice run request 301 to
  • LCP unit B 312b since LCP B is next in line of priority.
  • This slice run request 301 may indicate the remaining byte size of LCP B, e.g., 475 bytes.
  • LCP unit B 312b may determine the slice size for the third slice of LCP C (referred to hereinafter as “B3”’), e.g., 475 bytes or more.
  • LCP unit B 312b may also determine that LC4 has 975 bytes remaining and so the entirety of B3’ may be dequeued from LC4 such that 500 bytes remain in LC4.
  • LCP unit B 312b may perform additional processing to prepare B3 ’ for transmission. Then, then B3 ’ may be sent to Tx scheduler 220. Once B3’ is sent to Tx scheduler 220, LCP unit B 312b may send a signal 303 indicating that LCP B is complete has been fully processed.
  • LCP priority unit 304 may then remove the second UL grant from the priority list.
  • LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit
  • This slice run request 301 may indicate the remaining byte size of LCP C, e.g., 1300 bytes.
  • LCP unit C 312c may determine the slice size for the third slice of LCP C (referred to hereinafter as “C3”’), e.g., 600 bytes.
  • LCP unit C 312c may also determine that LC4 has 500 bytes and LC5 1300 bytes.
  • LCP unit C 312c dequeues a first portion of C3’ (e.g., 500 bytes) from LC4 and a second portion of C3’ (e.g., 100 bytes) from LC5 so that 600 bytes are dequeued for C3 ⁇ LC5 has 1200 bytes remaining after the second portion of C3’ is dequeued.
  • LCP unit C 312c may perform additional processing to prepare C3’ for transmission. Then, then C3’ may be sent to Tx scheduler 220.
  • LCP unit C 312c may generate a signal 305 that indicates C3’ has been dequeued/processed and that 700 bytes of LCP C remain.
  • LCP priority unit 304 then updates the grant information for LCP C accordingly.
  • LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit C 312c, since LCP C is next in line of priority.
  • This slice run request 301 may indicate the remaining byte size of LCP C, e.g., 700 bytes.
  • LCP unit C 312c may determine the slice size for the fourth slice of LCP C (referred to hereinafter as “C4”’), e.g., 700 bytes.
  • LCP unit C 312c may also determine that LC5 1200 bytes.
  • LCP unit C 312c dequeues C4’ from LC5.
  • LC5 has 500 bytes remaining after the second portion of C4’ is dequeued.
  • LCP unit C 312c may perform additional processing to prepare C4’ for transmission. Then, then C4’ may be sent to Tx scheduler 220. Once C4’ is sent to Tx scheduler 220, LCP unit C 312c may send a signal 303 indicating that LCP C is complete and the third UL grant has been fully processed. LCP priority unit 304 may then remove the third UL grant from the priority list.
  • in-sequence LCP slices may be optimally processed with reduced latency and ready for transmission such that all concurrent LCPs are ready for transmission at the appropriate times and with sizes that are appropriate for the various conditions discussed above in connection with Equation (1).
  • microcontroller 216 and Tx scheduler 220 are decoupled, the processing efficiency of microcontroller 216 may be further increased since it does not need to also perform LCP transmission scheduling for each of the LCPs.
  • FIG. 4 illustrates a flowchart of an exemplary method 400 of multiple carrier slice- based UL grant scheduling, according to embodiments of the disclosure.
  • Exemplary method 400 may be performed by an apparatus for wireless communication, e.g., such as user equipment 102, apparatus 200, baseband chip 202, microcontroller 216, Tx scheduler 220, LC queues 302, LCP unit A 312a, LCP unit B 312b, LCP unit C 312c, LCP priority unit 304, and/or node 500.
  • Method 400 may include steps 402-420 as described below. It is to be appreciated that some of the steps may be optional, and some of the steps may be performed simultaneously, or in a different order than shown in FIG. 4.
  • the apparatus may receive a UL grant for a particular CC.
  • the LCP priority unit 304 may receive the UL grant.
  • the apparatus may determine whether any LCP processing is presently being performed by a microcontroller. When no other LCP processing is being performed, the operation moves to 406. Otherwise, when LCP processing is currently being performed, the operation moves to 416.
  • the apparatus may begin dequeuing a slice of the LCP indicated in the UL grant.
  • the UL grant received at 402 is the second UL grant associated with LCP B.
  • request 301 may be sent to LCP unit B 312b to begin dequeuing/processing a slice associated with LCP B.
  • the slice of LCP B may be dequeued and processed using either the technique described in connection with FIG. 3 A or 3B.
  • the apparatus may determine whether any bytes remain from the UL grant for the LCP allocated in the UL grant. When no bytes still need to be dequeued for the LCP, the operation may move to 414. Otherwise, when bytes remain for the LCP, the operation may move to 410.
  • the apparatus may determine whether a byte condition associated with a slice has been met. For example, referring to FIG. 3B, LCP unit B 312b may determine (at 410) whether the byte size of BU has been fully dequeued. If not, LCP unit B 312b may continue dequeuing (at 406) bytes from LC2 for BU. Otherwise, LCP unit B 312b may generate (at 412) signal 305 indicating BU has been dequeued and indicates the remaining number of bytes in LCP B.
  • the apparatus may determine that the entire LCP has been dequeued. Here, the apparatus may select (at 414) the next highest priority UL grant and send that to the associated LCP unit for dequeuing/processing.
  • the apparatus may determine (at 416) whether the timing of the newly received UL grant (e.g., UL grant for CCO/LCP A) has a higher priority in terms of timing and/or latency than the UL grant currently being processed. For example, referring to FIGs. 3 A and 3B, assume LCP unit B 312b is currently dequeuing/processing LCP B when the first UL grant for CC0 arrives.
  • the timing of the newly received UL grant e.g., UL grant for CCO/LCP A
  • LCP unit B 312b is currently dequeuing/processing LCP B when the first UL grant for CC0 arrives.
  • LCP priority unit 304 determines the UL grant for CC0 has a higher priority
  • a signal may be sent (at 418) to LCP unit B 312b to suspend activity at the end of the current slice or before the slice is fully dequeued/processed and another signal may be sent (at 418) to LCP unit A 312a to begin dequeuing/processing LCP A.
  • the apparatus may place (at 420) the new UL grant in order of priority in the priority list.
  • the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or encoded as instructions or code on a non-transitory computer-readable medium.
  • Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computing device, such as node 500 in FIG. 5.
  • such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, HDD, such as magnetic disk storage or other magnetic storage devices, Flash drive, SSD, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a processing system, such as a mobile device or a computer.
  • Disk and disc includes CD, laser disc, optical disc, digital video disc (DVD), and floppy disk where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
  • an apparatus for wireless communication of a UE may include, among other things, a first LCP module associated with a first CC, a second LCP module associated with a second CC, a third LCP module associated with a third CC, and an LCP priority module.
  • the first LCP module may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met.
  • the first LCP module may also be configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP.
  • the first LCP indicator may indicate a first remaining slice of the first LCP.
  • the second LCP module may be configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the first LCP module may be also configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes.
  • the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes.
  • the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
  • the first LCP module may be further configured to receive a first LCP request associated with the first LCP from the LCP priority queue.
  • the first LCP request may indicate a size of the first LCP.
  • the first LCP module may be further configured to determine whether the first slice of the first LCP includes an entirety of the first LCP.
  • the first LCP module may be further configured to send an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue.
  • the first LCP module may be further configured to receive a second LCP request associated with the first LCP from the LCP priority queue.
  • the second LCP request may indicate the first remaining slice of the first LCP.
  • the second LCP module may be further configured to receive a third LCP request associated with a second LCP from the LCP priority queue, the third LCP request indicating a size of the second LCP.
  • the second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP.
  • the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
  • the LCP priority queue module may be configured to receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the LCP priority queue module may be further configured to determine whether the third LCP has higher priority than the first LCP. In some embodiments, the LCP priority queue module may be further configured to suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. [0086] In some embodiments, the first LCP module may be configured to send a second LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the LCP priority queue module may be further configured to determine whether the third LCP has higher priority than the first LCP. In some embodiments, the LCP priority queue module may be further configured to suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third L
  • the second LCP indicator may indicate a second remaining slice of the first LCP.
  • the third LCP module may be configured to dequeue a first slice of the third LCP from the second LC queue.
  • the first LCP module may be configured to send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP.
  • the second LCP module may be configured to send the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP.
  • the first LCP module may be configured to the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP.
  • an apparatus for wireless communication of a UE may include a memory and at least one microcontroller coupled to the memory and configured to perform various operations.
  • the at least one microcontroller may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met.
  • the first LCP may be associated with a first CC.
  • the at least one microcontroller may be further configured to send a first LCP indicator to a LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP.
  • the at least one microcontroller may be further configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the second LCP may be associated with a second CC.
  • the at least one microcontroller may be further configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes.
  • the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes.
  • the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
  • the at least one microcontroller may be further configured to receive a first LCP request associated with the first LCP from the LCP priority queue.
  • first LCP request may indicate a size of the first LCP.
  • the at least one microcontroller may be further configured to determine whether the first slice of the first LCP includes an entirety of the first LCP.
  • the at least one microcontroller may be further configured to send a LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue.
  • the at least one microcontroller may be further configured to receive a second LCP request associated with the first LCP from the LCP priority queue. The second LCP request may indicate the first remaining slice of the first LCP.
  • the at least one microcontroller may be further configured to receive a third LCP request associated with the second LCP from the LCP priority queue.
  • the third LCP request may indicate a size of the second LCP.
  • the second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP.
  • the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
  • the at least one microcontroller may be further configured to receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the at least one microcontroller may be further configured to determine whether the third LCP has higher priority than the first LCP. [0094] In some embodiments, the at least one microcontroller may be further configured to suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. In some embodiments, the at least one microcontroller may be further configured to send a second LCP indicator associated with the first LCP to the LCP priority queue. The second LCP indicator may indicate a second remaining slice of the first LCP. In some embodiments, the at least one microcontroller may be further configured to dequeue a first slice of the third LCP from the second LC queue.
  • the at least one microcontroller may be further configured to send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP. In some embodiments, the at least one microcontroller may be further configured to the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP. In some embodiments, the at least one microcontroller may be further configured to send the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP.
  • a method of wireless communication of a UE may include dequeuing a first slice of a first LCP from a first LC queue until a first threshold condition is met.
  • the first LCP may be associated with a first CC.
  • the method may further include sending a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP.
  • the first LCP indicator may indicate a first remaining slice of the first LCP.
  • the method may further include dequeuing a first slice of a second LCP from a second LC queue until a second threshold condition is met.
  • the second LCP may be associated with a second CC.
  • the method may further include dequeuing a second slice of the first LCP from the second LC queue until a third threshold condition is met.
  • the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes.
  • the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes.
  • the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
  • the method may further include receiving a first LCP request associated with a first LCP from an LCP priority queue. In some embodiments, the method may further include determining whether the first slice of the first LCP includes an entirety of the first LCP. In some embodiments, the method may further include sending an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue. In some embodiments, the method may further include receiving a second LCP request associated with the first LCP from the LCP priority queue, the second LCP request indicating the first remaining slice of the first LCP.
  • the method may further include receiving a third LCP request associated with a second LCP from the LCP priority queue.
  • the second LCP may be associated with a second CC.
  • second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP.
  • the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
  • the method may further include receiving an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the method may further include determining whether the third LCP has higher priority than the first LCP. In some embodiments, the method may further include suspending the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. In some embodiments, the method may further include sending a second LCP indicator associated with the first LCP to the LCP priority queue. The second LCP indicator may indicate a second remaining slice of the first LCP. In some other embodiments, the method may further include dequeuing a first slice of the third LCP from the second LC queue.
  • an apparatus for wireless communication of a UE may include a memory and at least one microcontroller coupled to the memory.
  • the at least one microcontroller may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC.
  • the at least one microcontroller may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
  • an apparatus for wireless communication of a UE may include an LCP priority unit.
  • the LCP priority unit may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC.
  • the LCP priority unit may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
  • a method of wireless communication of a UE may include receiving, using an LCP priority unit, a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The method may further include prioritizing, using the LCP priority unit, the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

An apparatus for wireless communication is disclosed. The apparatus may include, among other things, a first logical channel packet (LCP) module and a second LCP module. The first LCP module may dequeue a first slice of a first LCP from a first logical channel (LC) queue until a first threshold condition is met. The first LCP module may send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP. The first LCP indicator may indicate a first remaining slice of the first LCP. The second LCP module dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met. The first LCP module may dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.

Description

APPARATUS AND METHOD OF MULTIPLE CARRIER SLICE-BASED
UPLINK GRANT SCHEDULING
BACKGROUND
[0001] Embodiments of the present disclosure relate to apparatus and method for wireless communication.
[0002] Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcasts. In cellular communication, such as the 4th-generation (4G) Long Term Evolution (LTE) and the 5th- generation (5G) New Radio (NR), the 3rd Generation Partnership Project (3GPP) defines various mechanisms for increasing the data rate per user, e.g., such as carrier aggregation (CA).
SUMMARY
[0003] Embodiments of apparatus and method for multiple carrier slice-based uplink (UL) grant scheduling are disclosed herein.
[0004] According to one aspect of the present disclosure, an apparatus for wireless communication of a user equipment (UE) is disclosed. The apparatus may include, among other things, a first logical channel packet (LCP) module associated with a first component carrier (CC), a second LCP module associated with a second CC, a third LCP module associated with a third CC, and an LCP priority module. The first LCP module may be configured to dequeue a first slice of a first LCP from a first logical channel (LC) queue until a first threshold condition is met. The first LCP module may also be configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP. The first LCP indicator may indicate a first remaining slice of the first LCP. The second LCP module may be configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met. The first LCP module may be also configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
[0005] In another aspect of the present disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include a memory and at least one microcontroller coupled to the memory and configured to perform various operations. For example, the at least one microcontroller may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met. The first LCP may be associated with a first CC. The at least one microcontroller may be further configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP. The at least one microcontroller may be further configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met. The second LCP may be associated with a second CC. The at least one microcontroller may be further configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
[0006] According to a further aspect of the present disclosure, a method of wireless communication of a UE is disclosed. The method may include dequeuing a first slice of a first LCP from a first LC queue until a first threshold condition is met. The first LCP may be associated with a first CC. The method may further include sending a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP. The first LCP indicator may indicate a first remaining slice of the first LCP. The method may further include dequeuing a first slice of a second LCP from a second LC queue until a second threshold condition is met. The second LCP may be associated with a second CC. The method may further include dequeuing a second slice of the first LCP from the second LC queue until a third threshold condition is met.
[0007] According to another aspect of the disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include a memory and at least one microcontroller coupled to the memory. The at least one microcontroller may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The at least one microcontroller may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
[0008] According to another aspect of the disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include an LCP priority unit. The LCP priority unit may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The LCP priority unit may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
[0009] According to another aspect of the disclosure, a method of wireless communication of a UE is disclosed. The method may include receiving, using an LCP priority unit, a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The method may further include prioritizing, using the LCP priority unit, the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the present disclosure and, together with the description, further serve to explain the principles of the present disclosure and to enable a person skilled in the pertinent art to make and use the present disclosure.
[0011] FIG. 1 illustrates an exemplary wireless network, according to some embodiments of the present disclosure.
[0012] FIG. 2 illustrates a block diagram of an exemplary apparatus including a baseband chip, a radio frequency (RF) chip, and a host chip, according to some embodiments of the present disclosure.
[0013] FIG. 3A illustrates a conceptual diagram of a first exemplary slice-based LCP processing technique that may be implemented using the exemplary apparatus of FIG. 2, according to some embodiments of the present disclosure.
[0014] FIG. 3B illustrates a conceptual diagram of a second exemplary slice-based LCP processing technique that may be implemented using the exemplary apparatus of FIG. 2, according to some embodiments of the present disclosure.
[0015] FIG. 3C illustrates a timing diagram of the exemplary slice-based LCP processing technique of FIG. 3 A, according to some embodiments of the present disclosure.
[0016] FIG. 4 illustrates a flow chart of an exemplary method of wireless communication, according to some embodiments of the present disclosure.
[0017] FIG. 5 illustrates a block diagram of an exemplary node, according to some embodiments of the present disclosure.
[0018] FIG. 6A illustrates a first example timing diagram used to schedule a UL LCP transmission at a UE. [0019] FIG. 6B illustrates a second example timing diagram that may be used to schedule a UL LCP transmission at a UE.
[0020] Embodiments of the present disclosure will be described with reference to the accompanying drawings.
DETAILED DESCRIPTION
[0021] Although specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the pertinent art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to a person skilled in the pertinent art that the present disclosure can also be employed in a variety of other applications.
[0022] It is noted that references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” “some embodiments,” “certain embodiments,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of a person skilled in the pertinent art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0023] In general, terminology may be understood at least in part from usage in context.
For example, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.
[0024] Various aspects of wireless communication systems will now be described with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, units, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on the overall system.
[0025] The techniques described herein may be used for various wireless communication networks, such as code division multiple access (CDMA) system, time division multiple access (TDMA) system, frequency division multiple access (FDMA) system, orthogonal frequency division multiple access (OFDMA) system, single-carrier frequency division multiple access (SC- FDMA) system, wireless local area network (WLAN) system, and other networks. The terms “network” and “system” are often used interchangeably. A CDMA network may implement a radio access technology (RAT), such as Universal Terrestrial Radio Access (UTRA), evolved UTRA (E-UTRA), CDMA 2000, etc. A TDMA network may implement a RAT, such as the Global System for Mobile Communications (GSM). An OFDMA network may implement a RAT, such as LTE or NR. A WLAN system may implement a RAT, such as Wi-Fi. The techniques described herein may be used for the wireless networks and RATs mentioned above, as well as other wireless networks and RATs.
[0026] An important consideration of wireless communication relates to data rates, especially with the increased use of media streaming services. CA is one technique used in wireless communication to increase the data rate per user, whereby multiple frequency blocks (also referred to herein as “component carriers”) are assigned to the same UE for concurrent transmission using different parts of the frequency spectrum. Each component carrier (CC) may be associated with a different ceil, e.g., base station. The maximum possible data rate per user is increased as the number of component carriers (CCs) assigned to a UE increases. CA also increases the sum data rate of a cell due to enhanced resource utilization and spectral efficiency.
[0027] While communicating using CA, a UE may be connected with two or more media access control (MAC) entities, which are each connected to a base station with multiple carriers of different bandwidths, a different number of available resources, and different radio channel conditions. To schedule the transmission of uplink (UL) data packets (also referred to herein as “logical channel packets”) using CA, the UE receives multiple UL grants concurrently from different base stations. Each UL grant may schedule a different logical channel packet (LCP) transmission on its respective CC. [0028] A base station may send a UL grant to the UE using the physical downlink control channel (PDCCH) of that CC. The UE may receive a UL grant at the beginning of a slot (in a downlink control indicator (DCI)), which indicates the time at which the associated LCP is scheduled for transmission. The UL grant may also indicate the number of resources (e.g., byte size) that have been allocated for the LCP. The scheduled time may be equivalent to a time delay of K2 slot(s) from the slot in which the UL grant is received. FIG. 6A illustrates a first example timing diagram 600 in which K2 may be one or more slots away from the received UL grant, with a transmission start symbol at the slot boundary. FIG. 6B illustrates a second example timing diagram 601 in which K2 is less than one, meaning the transmission start symbol S is in the same slot in which the UL grant is received. A UL grant that schedules an LCP transmission in the same slot in which the grant was received indicates that the LCP may be associated with a low latency application, and hence, the UE may need to process the LCP to be transmitted within milliseconds or microseconds.
[0029] The scheduling mechanism described above may apply to each CC, and hence, the
UE may process LPCs for multiple CCs concurrently. Here, the UE may implement logical channel (LC) prioritization scheduling to schedule logical channel packets (LCPs) using one or more logical channels (LCs) according to the allocated number of bytes from a configured maximum bucket size setting associated with each of the LCs. Using the known approaches for LC prioritization, when multiple UL grants are received concurrently across multiple CCs, the UE processes multiple LCPs in the order that their respective grants were received, which may impose certain problems at the UE.
[0030] For example, assume a UE concurrently receives a first UL grant scheduling a first
LCP for transmission on a first CC (CCI) with a time delay of more than one slot and a second UL, grant scheduling a second LCP for transmission on a second CC (CC2) with a time delay of less than one slot (e.g., a low latency LCP). Using known approaches, the UE may dequeue and process the first LCP before the second LCP, even though the second LCP is scheduled for transmission before the first LCP. In such a situation, the UE may be unable to dequeue and process the second LCP in time for its scheduled transmission depending on the byte sizes allocated for the first LCP and the second LCP, thereby degrading the throughput of the system and increasing the chance of desynchronization between the UE and base station. Moreover, due to the lack of scheduling optimization using known approaches, the UE may consume power unnecessarily.
[0031] Thus, there is an unmet need for an LCP prioritization and scheduling technique that dequeues and processes LCPs in such a way that each LCP is ready for transmission by its scheduled transmission time.
[0032] To enhance scheduling efficiency, and hence, improve the overall performance of a UE, the present disclosure provides a slice-based UL grant scheduling technique that prioritizes each UL grant based on the scheduled transmission time. Moreover, a UE may implement the present slice-based UL grant scheduling technique such that each LCP is sliced at either the LC queue boundary or at a predetermined slice-bytes boundary. Using this type of LCP slicing, LCPs within the same LC queue (which may include LCPs for different CCs) are dequeued and scheduled for in-sequence transmission with increased efficiency, as compared to known approaches. Still further, the UE of the present disclosure may include LCP hardware and/or software that is decoupled from the hardware and/or software of the transmission (Tx) scheduler. In this way, the Tx scheduler may pipeline the transmission of LCPs and schedule the physical (PHY) layer Tx hardware to transmit the bytes of each LCP efficiently and with reduced latency. The LCP hardware and/or software may run independently of the Tx scheduler to ensure in sequence dequeuing and delivery of LCPs to the Tx scheduler. Additional details of the slice- based UL grant scheduling technique of the present disclosure are set forth below in connection with FIGs. 1-5.
[0033] FIG. 1 illustrates an exemplary wireless network 100, in which some aspects of the present disclosure may be implemented, according to some embodiments of the present disclosure. As shown in FIG. 1, wireless network 100 may include a network of nodes, such as a user equipment 102, an access node 104, and a core network element 106. User equipment 102 may be any terminal device, such as a mobile phone, a desktop computer, a laptop computer, a tablet, a vehicle computer, a gaming console, a printer, a positioning device, a wearable electronic device, a smart sensor, or any other device capable of receiving, processing, and transmitting information, such as any member of a vehicle to everything (V2X) network, a cluster network, a smart grid node, or an Intemet-of-Things (IoT) node. It is understood that user equipment 102 is illustrated as a mobile phone simply by way of illustration and not by way of limitation.
[0034] Access node 104 may be a device that communicates with user equipment 102, such as a wireless access point, a base station (BS), a Node B, an enhanced Node B (eNodeB or eNB), a next-generation NodeB (gNodeB or gNB), a cluster master node, or the like. Access node 104 may have a wired connection to user equipment 102, a wireless connection to user equipment 102, or any combination thereof. Access node 104 may be connected to user equipment 102 by multiple connections, and user equipment 102 may be connected to other access nodes in addition to access node 104. Access node 104 may also be connected to other user equipments. It is understood that access node 104 is illustrated by a radio tower by way of illustration and not by way of limitation. [0035] Core network element 106 may serve access node 104 and user equipment 102 to provide core network services. Examples of core network element 106 may include a home subscriber server (HSS), a mobility management entity (MME), a serving gateway (SGW), or a packet data network gateway (PGW). These are examples of core network elements of an evolved packet core (EPC) system, which is a core network for the LTE system. Other core network elements may be used in LTE and in other communication systems. In some embodiments, core network element 106 includes an access and mobility management function (AMF) device, a session management function (SMF) device, or a user plane function (UPF) device, of a core network for the NR system. It is understood that core network element 106 is shown as a set of rack-mounted servers by way of illustration and not by way of limitation.
[0036] Core network element 106 may connect with a large network, such as the Internet
108, or another Internet Protocol (IP) network, to communicate packet data over any distance. In this way, data from user equipment 102 may be communicated to other user equipments connected to other access points, including, for example, a computer 110 connected to Internet 108, for example, using a wired connection or a wireless connection, or to a tablet 112 wirelessly connected to Internet 108 via a router 114. Thus, computer 110 and tablet 112 provide additional examples of possible user equipments, and router 114 provides an example of another possible access node. [0037] A generic example of a rack-mounted server is provided as an illustration of core network element 106. However, there may be multiple elements in the core network including database servers, such as a database 116, and security and authentication servers, such as an authentication server 118. Database 116 may, for example, manage data related to user subscription to network services. A home location register (HLR) is an example of a standardized database of subscriber information for a cellular network. Likewise, authentication server 118 may handle authentication of users, sessions, and so on. In the NR system, an authentication server function (AUSF) device may be the specific entity to perform user equipment authentication. In some embodiments, a single server rack may handle multiple such functions, such that the connections between core network element 106, authentication server 118, and database 116, may be local connections within a single rack.
[0038] Each element in FIG. 1 may be considered a node of wireless network 100. More detail regarding the possible implementation of a node is provided by way of example in the description of a node 500 in FIG. 5. Node 500 may be configured as user equipment 102, access node 104, or core network element 106 in FIG. 1. Similarly, node 500 may also be configured as computer 110, router 114, tablet 112, database 116, or authentication server 118 in FIG. 1. As shown in FIG. 5, node 500 may include a processor 502, a memory 504, and a transceiver 506. These components are shown as connected to one another by a bus, but other connection types are also permitted. When node 500 is user equipment 102, additional components may also be included, such as a user interface (UI), sensors, and the like. Similarly, node 500 may be implemented as a blade in a server system when node 500 is configured as core network element 106. Other implementations are also possible.
[0039] Transceiver 506 may include any suitable device for sending and/or receiving data.
Node 500 may include one or more transceivers, although only one transceiver 506 is shown for simplicity of illustration. An antenna 508 is shown as a possible communication mechanism for node 500. Multiple antennas and/or arrays of antennas may be utilized for receiving multiple spatially multiplex data streams. Additionally, examples of node 500 may communicate using wired techniques rather than (or in addition to) wireless techniques. For example, access node 104 may communicate wirelessly to user equipment 102 and may communicate by a wired connection (for example, by optical or coaxial cable) to core network element 106. Other communication hardware, such as a network interface card (NIC), may be included as well.
[0040] As shown in FIG. 5, node 500 may include processor 502. Although only one processor is shown, it is understood that multiple processors can be included. Processor 502 may include microprocessors, microcontroller units (MCUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout the present disclosure. Processor 502 may be a hardware device having one or more processing cores. Processor 502 may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Software can include computer instructions written in an interpreted language, a compiled language, or machine code. Other techniques for instructing hardware are also permitted under the broad category of software. [0041] As shown in FIG. 5, node 500 may also include memory 504. Although only one memory is shown, it is understood that multiple memories can be included. Memory 504 can broadly include both memory and storage. For example, memory 504 may include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferro electric RAM (FRAM), electrically erasable programmable ROM (EEPROM), compact disc read only memory (CD-ROM) or other optical disk storage, hard disk drive (HDD), such as magnetic disk storage or other magnetic storage devices, Flash drive, solid-state drive (SSD), or any other medium that can be used to carry or store desired program code in the form of instructions that can be accessed and executed by processor 502. Broadly, memory 504 may be embodied by any computer-readable medium, such as a non-transitory computer-readable medium.
[0042] Processor 502, memory 504, and transceiver 506 may be implemented in various forms in node 500 for performing wireless communication functions. In some embodiments, processor 502, memory 504, and transceiver 506 of node 500 are implemented (e.g., integrated) on one or more system-on-chips (SoCs). In one example, processor 502 and memory 504 may be integrated on an application processor (AP) SoC (sometimes known as a “host,” referred to herein as a “host chip”) that handles application processing in an operating system (OS) environment, including generating raw data to be transmitted. In another example, processor 502 and memory 504 may be integrated on a baseband processor (BP) SoC (sometimes known as a “modem,” referred to herein as a “baseband chip”) that converts the raw data, e.g., from the host chip, to signals that can be used to modulate the carrier frequency for transmission, and vice versa, which can run a real-time operating system (RTOS). In still another example, processor 502 and transceiver 506 (and memory 504 in some cases) may be integrated on an RF SoC (sometimes known as a “transceiver,” referred to herein as an “RF chip”) that transmits and receives RF signals with antenna 508. It is understood that in some examples, some or all of the host chip, baseband chip, and RF chip may be integrated as a single SoC. For example, a baseband chip and an RF chip may be integrated into a single SoC that manages all the radio functions for cellular communication.
[0043] Referring back to FIG. 1, in some embodiments, user equipment 102 may be configured to perform slice-based UL grant scheduling, as described below in detail. As a result, compared with known solutions which use a first-in, first-out UL grant scheduling approach, the present techniques may improve the data throughput performance with in-sequence packet transmission for each LC, processing resources for both low latency and high throughput LCPs may be optimized, multiple UL grants may be processed with minimal delay and expediated LCP transmission, improve the performance of user equipment 102 in concurrent low latency and high throughput scenarios, and/or reduce/eliminate latency uncertainties associated with multiple concurrent UL grants that schedule LCPs for transmission within the same slot that their respective UL grants are received, and/or reduce the power consumption of user equipment 102 due to optimized UL grant processing/scheduling.
[0044] FIG. 2 illustrates a block diagram of an apparatus 200 including a baseband chip
202, an RF chip 204, and a host chip 206, according to some embodiments of the present disclosure. Apparatus 200 may be an example of any suitable node of wireless network 100 in FIG. 1, such as user equipment 102 or access node 104. As shown in FIG. 2, apparatus 200 may include baseband chip 202, RF chip 204, host chip 206, and one or more antennas 210. In some embodiments, baseband chip 202 is implemented by processor 502 and memory 504, and RF chip 204 is implemented by processor 502, memory 504, and transceiver 506, as described above with respect to FIG. 5. Besides the on-chip memory 218 (also known as “internal memory,” e.g., registers, buffers, or caches) on each chip 202, 204, or 206, apparatus 200 may further include an external memory 208 (e.g., the system memory or main memory) that can be shared by each chip 202, 204, or 206 through the system/main bus. Although baseband chip 202 is illustrated as a standalone SoC in FIG. 2, it is understood that in one example, baseband chip 202 and RF chip 204 may be integrated as one SoC; in another example, baseband chip 202 and host chip 206 may be integrated as one SoC; in still another example, baseband chip 202, RF chip 204, and host chip 206 may be integrated as one SoC, as described above.
[0045] In the uplink, host chip 206 may generate raw data and send it to baseband chip 202 for encoding, modulation, and mapping. Interface 214 of baseband chip 202 may receive the data from host chip 206. Baseband chip 202 may also access the raw data generated by host chip 206 and stored in external memory 208, for example, using the direct memory access (DMA). Baseband chip 202 may access dequeuing slices of an LCP from one or more LCs. Baseband chip 202 may first encode (e.g., by source coding and/or channel coding) the raw data and modulate the coded data using any suitable modulation techniques, such as multi-phase shift keying (MPSK) modulation or quadrature amplitude modulation (QAM). Baseband chip 202 may perform any other functions, such as symbol or layer mapping, to convert the raw data into a signal that can be used to modulate the carrier frequency for transmission. In the uplink, baseband chip 202 may send the modulated signal to RF chip 204 via interface 214. RF chip 204, through the transmitter, may convert the modulated signal in the digital form into analog signals, i.e., RF signals, and perform any suitable front-end RF functions, such as filtering, digital pre-distortion, up-conversion, or sample-rate conversion. Antenna 210 (e.g., an antenna array) may transmit the RF signals provided by the transmitter of RF chip 204.
[0046] In the downlink, antenna 210 may receive RF signals that may include, among other things, UL grants received concurrently from different base stations using different CCs. The RF signals may be passed to the receiver (Rx) of RF chip 204. RF chip 204 may perform any suitable front-end RF functions, such as filtering, IQ imbalance compensation, down-paging conversion, or sample-rate conversion, and convert the RF signals (e.g., transmission) into low-frequency digital signals (baseband signals) that can be processed by baseband chip 202.
[0047] In the downlink, interface 214 of baseband chip 202 may receive the RF signals, which are passed to microcontroller 216. Microcontroller 216 may be configured to perform slice- based UL grant scheduling as described below in connection with FIGs. 3A, 3B, 3C, and 4. The in-sequence slices may be sent to Tx scheduler 220, which is configured to transmit LCP slices as they come in based on their associated transmission schedule. Microcontroller 216 may be decoupled form Tx scheduler 220. By decoupling the LCP algorithm (e.g., which may be run on microcontroller 216) and Tx scheduler 220 so that they are located in different processors, Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware (e.g., TX/PHY layer hardware 310 in FIGs. 3 A and 3B) to transmit the slices (e.g., bytes) efficiently and with reduced latency. The LCP process described in additional detail below in connection with FIGs. 3 A, 3B, 3C, and 4 may run independently of Tx scheduler 220 to ensure in sequence LCP dequeue and delivery. Additionally, baseband chip 202 may perform other functions, such as demodulation, decoding, error checking, de-mapping, channel estimation, descrambling, etc. The raw data (e.g., UL grant(s), resources allocated for an LCP, etc.) provided to baseband chip 202 may be sent to host chip 206 directly via interface 214 or stored in external memory 208.
[0048] FIG. 3 A illustrates a conceptional flow diagram of a first exemplary slice-based UL grant scheduling technique 300 that may be implemented by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure. FIG. 3B illustrates a conceptional flow diagram of a second exemplary slice-based UL grant scheduling technique 350 that may be implemented by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure. FIG. 3C illustrates a transmission flow diagram 375 that may be used by baseband chip 202 of FIG. 2, according to some embodiments of the disclosure. FIGs. 3A-3C will be described together.
[0049] Referring to FIGs. 3 A and 3B, baseband chip 202 may include a plurality of LC queues 302 (e.g., LI, L2, L3, L4, L5, etc.) each of which has a predetermined token bucket size (e.g., byte size), an LCP priority unit 304, microcontroller 216, Tx scheduler 220, and TX/PHY layer hardware 310. Microcontroller 216 may include a plurality of LCP units 312a, 312b, 312b that may be implemented as processors or dedicated hardware that are each configured to service UL grants associated with a respective CC. In FIGs. 3 A and 3B, there are three units illustrated as servicing three CCs. For example, microcontroller 216 includes a first LCP unit 312a (referred to hereinafter as “LCP unit A 312a”) configured to service a first CC (CC0), a second LCP unit 312b (referred to hereinafter as “LCP unit B 312b”) configured to service a second CC (CC1), and a third LCP unit 312c configured to service a third CC (CC2). It is understood that microcontroller 216 is not limited to three LCP units. Rather, microcontroller 216 may include two or more LCP units each configured to service a particular CC without departing from the scope of the present disclosure. Each of LCP units 312a, 312b, and 312c may include software/firmware units running on microcontroller 216. In a hardware implementation, LCP units 312a, 312b, and 312c may dedicated integrated circuits, e.g., such as ASICs. Here, the LCP units 312a, 312b, and 312c may be separate from microcontroller 216 and be included as separate hardware components of baseband chip 202.
[0050] In each of FIGs. 3 A and 3B, microcontroller 216 may be decoupled form Tx scheduler 220. By decoupling the LCP algorithm (e.g., which may be run on microcontroller 216) and Tx scheduler 220 so that they are located in different processors, Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware 310 to transmit the slices (e.g., bytes) efficiently and with reduced latency. The LCP process described in additional detail below in connection with FIGs. 3 A, 3B, 3C, and 4 may run independently of Tx scheduler 220 to ensure in-sequence LCP dequeue and delivery.
[0051] Each of the LC queues 302 may be configured to service one or more of the LCP units 312a, 312b, 312c. In the non-limiting examples depicted in FIGs. 3 A and 3B, LI services LCP unit A 312a only, and each of L2, L3, L4, and L5 services both LCP unit B 312b and LCP unit C 312c. Each LC queue 302 is configured to maintain one or more LCP slice(s) 320. In FIG. 3 A, an LCP slice is dequeued from its respective LC queue 302 until all the bucket tokens in the LC queue 302 have been used or until the LCP byte size allocated by the UL grant is reached. On the other hand, in FIG. 3B, LCP slices are dequeued in byte-sized units so that once the predetermined number of bytes for that slice is reached, the dequeuing for that slice stops regardless of whether there are remaining bucket tokens in that LC queue 302 and/or the entire LCP has yet to be dequeued.
[0052] The present slice-based UL grant scheduling technique will be described in connection with UL grants that are concurrently received from CC0, CC1, and CC2. However, baseband chip 202 may be configured to service any number of concurrent UL grants without departing from the scope of the present disclosure.
[0053] Referring to FIG. 3A, one example of the slice-based UL grant scheduling technique may be performed based on the size of the LC queues. In the following example described in connection with FIG. 3 A, assume that the first UL grant received on CC0 schedules the transmission of LCP A with a K2 time delay of less than one (in the same slot), and that the first UL grant allocates 1,000 bytes for LCP A. In addition, assume the second UL grant received on CC 1 schedules the transmission of LCP B with a K2 time delay of two slots, and that the second UL grant allocates 1,800 bytes for LCP B. Further, assume that the third UL grant received on CC2 schedules the transmission of LCP C with a time delay of three slots, and that the third UL grant allocates 2,200 bytes for LCP C. Here, LCP priority unit 304 prioritizes the UL grants, from highest to lowest, in the following order: 1) first UL grant, 2) second UL grant, and 3) third UL grant. Again, the prioritization is based on scheduled transmission times of the respective LCPs. Still further, in the following example of FIG. 3 A, assume the following maximum token bucket sizes for the LC queues: 1,000 bytes for LC1, 750 bytes for LC2, 1200 bytes for LC3, 1600 bytes for LC4, and 900 bytes for LC5.
[0054] To begin, LCP priority unit 304 may send an LCP slice run request 301 (referred to hereinafter as “slice run request 301”) to LCP unit A 312a first since it has the highest priority. The LCP slice run request 301 may indicate, among other things, the byte size allocated for LCP A (e.g., 1,000 bytes). LCP unit A 312a may then begin dequeuing a first slice of LCP A (referred to hereinafter as “Al”) from LC1. Because LC1 has a bucket size that is also 1,000 bytes, A1 includes the entirety of LCP A. LCP unit A 312a may perform additional processing to prepare Al for transmission. Then, Al may be sent to Tx scheduler 220. Once Al is sent to Tx scheduler 220, LCP unit A 312a may send a signal 303 indicating that LCP A is complete, and the first UL grant has been fully processed. LCP priority unit 304 may then remove the first UL grant from the priority list. [0055] Then, LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority. This slice run request 301 may indicate that the byte size allocated for LCP B is 1,800 bytes. LCP unit B 312b may begin dequeuing a first slice of LCP B (referred to hereinafter as “Bl”) from LC2. Because LC2 only has 750 bytes remaining, Bl is 750 bytes. LCP unit B 312b may perform additional processing to prepare Bl for transmission. Then, then Bl may be sent to Tx scheduler 220. Here, LCP unit B 312b may generate a signal 305 that indicates Bl has been dequeued/processed and that 1050 bytes of LCP B remain. LCP priority unit 304 then updates the grant information for LCP B accordingly. [0056] Upon receipt of signal 305 from LCP unit B 312b, LCP priority unit 304 sends another slice run request 301 to LCP unit C 312c, since LCP C is next in line. This slice run request 301 may indicate the byte size allocated for LCP C, which is 2,200 bytes. LCP unit C 312c may begin dequeuing a first slice of LCP C (referred to hereinafter as “Cl”) from LC3 since there are no bytes remaining in LC2. Because LC3 only has 1200 bytes, Cl is 1200 bytes. LCP unit C 312c may perform additional processing to prepare Cl for transmission. Then, Cl may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates Cl has been dequeued and that 1,000 bytes of LCP C remain. LCP priority unit 304 may update the grant information for LCP C accordingly.
[0057] LCP priority unit 304 may then send a subsequent slice run request 301 to LCP unit
B 312b, since LCP B is next in line. Subsequent slice run request 301 may indicate the remaining 1050 bytes of LCP B. LCP unit B 312b may then begin dequeuing a second slice of LCP B (referred to hereinafter as “B2”) from LC4, which runs until 1050 bytes have been dequeued. Here, 550 bytes remain in LC4 after B2 is dequeued. LCP unit B 312b may perform additional processing to prepare B2 for transmission. Then, B2 may be sent to Tx scheduler 220. Once B2 is sent to Tx scheduler 220, LCP unit B 312b may send a signal 303 indicating that LCP B is complete, and the second UL grant has been fully processed. LCP priority unit 304 may then remove the second UL grant from the priority list.
[0058] LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit C
312c. This slice run request 301 may indicate there remaining 1,000 bytes of LCP C. Then, LCP unit C 312c may dequeue a second slice of LCP C (referred to hereinafter as “C2”) using the remaining bytes of LC4. Because only 550 bytes remain in LC4, C2 is 550 bytes. This means that 450 bytes of LCP C remain. Then, C2 may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates C2 has been dequeued and that 450 bytes of LCP C remain. LCP priority unit 304 may update the grant information for LCP C accordingly.
[0059] LCP priority unit 304 may determine that no other UL grants remain in the priority list, and hence, a further slice run request 301 is sent to LCP unit C 312c indicating the remaining 450 bytes for LCP C. Because LC4 is now empty, LCP unit C 312c may dequeue the third slice of LCP C (referred to hereinafter as “C3”) from LC5. Once the 450 bytes of C3 is dequeued, 450 bytes remain in LC5. Then, C3 may be sent to Tx scheduler 220. Once C3 is sent to Tx scheduler 220, LCP unit C 312c may send a signal 303 indicating that LCP C is complete and the third grant has been fully processed. LCP priority unit 304 may then remove the third UL grant from the priority list.
[0060] As illustrated in FIG. 3C, each of the LCP slices is sent to Tx scheduler 220 once they have been processed by microcontroller 216. Then the slices may be sent out as they arrive to meet the time delay scheduled by their respective UL grants. As mentioned above, microcontroller 216 may be decoupled form Tx scheduler 220. By decoupling the LCP algorithm (e.g., which may be run on microcontroller 216) and Tx scheduler 220 so that they are located in different processors, Tx scheduler 220 may pipeline the transmission of packets, and schedule the TX/PHY layer hardware 310 to transmit the slices (e.g., bytes) efficiently and with reduced latency. The LCP process described in connection with FIGs. 3 A, 3B, and 4 may run independently of Tx scheduler 220 to ensure in-sequence LCP dequeue and delivery.
[0061] Using these techniques described in connection with FIG. 3A, in-sequence LCP slices may be optimally processed with reduced latency and ready for transmission such that all concurrent LCPs are ready for transmission at the appropriate times. Moreover, because microcontroller 216 and Tx scheduler 220 are decoupled, the processing efficiency of microcontroller 216 may be further increased since it does not need to also perform LCP transmission scheduling for each of the LCPs.
[0062] Referring to FIG. 3B, another example of the slice-based UL grant scheduling technique may be performed based on different LCP slice byte sizes. In the following example described in connection with FIG. 3B, assume that the first UL grant received on CC0 schedules the transmission of LCP A with a K2 time delay of less than one slot (in the same slot), and that the first UL grant allocates 1,000 bytes for LCP A. In addition, assume the second UL grant received on CC1 schedules the transmission of LCP B with a K2 time delay of two slots, and that the second UL grant allocates 1,025 bytes for LCP B. Further, assume that the third UL grant received on CC2 schedules the transmission of LCP C with a time delay of three slots, and that the third UL grant allocates 3,000 bytes for LCP C. Here, LCP priority unit 304 prioritizes the UL grants, from highest to lowest, in the following order: 1) first UL grant, 2) second UL grant, and 3) third UL grant. Again, the prioritization is based on scheduled transmission times of the LCPs allocated by their respective UL grant. Still further, in the following example of FIG. 3B, assume the following maximum token bucket sizes for the LC queues: 1,000 bytes for LC1, 550 bytes for LC2, 1200 bytes for LC3, 1475 bytes for LC4, and 1300 bytes for LC5. The byte sizes used to slice LCP A, LCP B, and LCP C may be determined on-the-fly or semi-statically by each of LCP unit A 312a, LCP unit B 312b, and LCP unit C 312c, respectively. For example, an LCP unit may determine the LCP slice byte sizes when a slice run request 301 ’ is received from LCP priority unit 304 and before dequeuing begins and/or when triggered to do so by, e.g., a change in channel conditions. In a non-limiting example, an LCP unit may determine slice byte sizes according to various characteristics of its associated CC, e.g., as shown below in Equation (1):
Figure imgf000018_0001
where P is the UE Rx power, S is the subcarrier spacing (SCS), B is the bandwidth resources of the associated CC, T is a throughput requirement, L is a latency requirement, A is an application packet reorder tolerance level, and kl, k2, k3, k4, k5, and k6 are tunable normalized factors.
[0063] In scenarios in which the UE Rx power is high (e.g., good channel conditions), the throughput is high, the SCS is large, latency is high, and the reorder tolerance level is low, the slice grant bytes may be larger to optimize in-sequence transmission. Conversely, if the characteristics of the associated CC include lower latency and time-sensitive transmission (e.g., in the same slot in which the UL grant is received), the slice byte size may be comparatively smaller to reduce latency and increase the probability of proper decoding by the receiving device. In the example described below in connection with FIG. 3B, assume slice AU has a slice byte size of 500 bytes, slice A2’ has a slice byte size of 500 bytes, slice BE has a slice byte size of 450 bytes, slice B2’ has a slice byte size of 100 bytes, slice B3’ has a slice byte size of 475 bytes, slice CU has a slice byte size of 700 bytes, slice C2’ has a slice byte size of 1,000 bytes, slice C3’ has a slice byte size of 600 bytes, and slice C4’ has a slice byte size of 700 bytes. Again, each of these slice byte sizes may be determined by their respective LCP unit upon receipt of the slice run request 30U, semi- statically when the UE connects to the various CCs, or when something triggers a new slice size determination, e.g., such as when channel conditions change. [0064] To begin, LCP priority unit 304 may send a LCP slice run request 30G (referred to hereinafter as “slice run request 30G”) to LCP unit A 312a first since it has the highest priority. The LCP slice run request 301 ’ may indicate, among other things, the byte size allocated by the first UL grant for LCP A (e.g., 1,000 bytes). As mentioned above, LCP unit A 312amay determine a slice size of 500 bytes for the first slice of LCP A (referred to hereinafter as “A1
Figure imgf000019_0001
LCP unit A 312a may also determine that LC1 has 1,000 bytes, and so the entirety of AL is dequeued from LC1 such that LC1 has 500 bytes remaining. LCP unit A 312a may perform additional processing to prepare AL for transmission. Then, AL may be sent to Tx scheduler 220. Since LC1 only services LCP unit A 312a, LCP unit A 312a may determine a slice size for a second slice of LCP A (referred to hereinafter as “A2”’), e.g., 500 bytes. Because 500 bytes remain in LC1, LCP unit A 312a may dequeue the entirety of A2’ from LC1. LCP unit A 312a may perform additional processing to prepare A2’ for transmission. Then, A2’ may be sent to Tx scheduler 220. Once A1 ’ and A2’ are sent to Tx scheduler 220, LCP unit A 312a may send a signal 303 indicating that LCP A is complete, and the first UL grant has been fully processed. LCP priority unit 304 may then remove the first UL grant from the priority list.
[0065] Next, LCP priority unit 304 may send a slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority. This slice run request 301 may indicate that the byte size allocated for LCP B is 1,025 bytes. LCP unit B 312b may determine the slice size for the first slice of LCP B (referred to hereinafter as “B L”), e.g., 450 bytes. LCP unit B 312b may also determine that LC2 has 550 bytes and so the entirety of BL may be dequeued from LC2 such that LC2 has 100 bytes remaining. LCP unit B 312b may perform additional processing to prepare BL for transmission. Then, then BL may be sent to Tx scheduler 220. Here, LCP unit B 312b may generate a signal 305 that indicates BL has been dequeued/processed and that 575 bytes of LCP B (e.g., the second UL grant) remain. LCP priority unit 304 then updates the grant information for LCP B, accordingly.
[0066] Then, LCP priority unit 304 may send a slice run request 301 to LCP unit C 312c, since LCP C is next in line of priority. This slice run request 301 may indicate that the byte size allocated for LCP C is 3,000 bytes. LCP unit C 312c may determine the slice size for the first slice of LCP C (referred to hereinafter as “CL”), e.g., 700 bytes. LCP unit C 312c may also determine that LC2 has 100 bytes and LC3 1200 bytes. Here, LCP unit C 312c dequeues a first portion of CL (e.g., 100 bytes) from LC2 and a second portion of CL (e.g., 600 bytes) from LC3 so that the bytes for CL are fully dequeued. LC3 has 600 bytes remaining after the second portion of CL is dequeued. LCP unit C 312c may perform additional processing to prepare Cl’ for transmission. Then, then Cl’ may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates Cl’ has been dequeued/processed and that 2300 bytes of LCP C remain. LCP priority unit 304 then updates the grant information for LCP C accordingly.
[0067] Next, LCP priority unit 304 may send a subsequent slice run request 301 to LCP unit B 312b, since LCP B is next in line of priority. This slice run request 301 may indicate the remaining byte size of LCP B, e.g., 575 bytes. LCP unit B 312b may determine the slice size for the second slice of LCP B (referred to hereinafter as “B2”’), e.g., 100 bytes. LCP unit B 312b may also determine that LC3 has 600 bytes remaining and so the entirety of B2’ may be dequeued from LC3 such that LC3 has 500 bytes remaining. LCP unit B 312b may perform additional processing to prepare B2’ for transmission. Then, then B2’ may be sent to Tx scheduler 220. Here, LCP unit B 312b may generate a signal 305 that indicates B2’ has been dequeued/processed and that 475 bytes of LCP B remain. LCP priority unit 304 then updates the grant information for LCP B accordingly.
[0068] LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit
C 312c, since LCP C is next in line of priority. This slice run request 301 may indicate the remaining byte size of LCP C, e.g., 2300 bytes. LCP unit C 312c may determine the slice size for the second slice of LCP C (referred to hereinafter as “C2”’), e.g., 1,000 bytes. LCP unit C 312c may also determine that LC3 has 500 bytes and LC4 1475 bytes. Here, LCP unit C 312c dequeues a first portion of C2’ (e.g., 500 bytes) from LC3 and a second portion of C2’ (e.g., 500 bytes) from LC4 so that 1,000 bytes are dequeued for C2’. LC4 has 975 bytes remaining after the second portion of C2’ is dequeued. LCP unit C 312c may perform additional processing to prepare C2’ for transmission. Then, then C2’ may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates C2’ has been dequeued/processed and that 1300 bytes of LCP C remain. LCP priority unit 304 then updates the grant information for LCP C accordingly.
[0069] Then, LCP priority unit 304 may send another subsequent slice run request 301 to
LCP unit B 312b, since LCP B is next in line of priority. This slice run request 301 may indicate the remaining byte size of LCP B, e.g., 475 bytes. LCP unit B 312b may determine the slice size for the third slice of LCP C (referred to hereinafter as “B3”’), e.g., 475 bytes or more. LCP unit B 312b may also determine that LC4 has 975 bytes remaining and so the entirety of B3’ may be dequeued from LC4 such that 500 bytes remain in LC4. LCP unit B 312b may perform additional processing to prepare B3 ’ for transmission. Then, then B3 ’ may be sent to Tx scheduler 220. Once B3’ is sent to Tx scheduler 220, LCP unit B 312b may send a signal 303 indicating that LCP B is complete has been fully processed. LCP priority unit 304 may then remove the second UL grant from the priority list.
[0070] LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit
C 312c, since LCP C is next in line of priority. This slice run request 301 may indicate the remaining byte size of LCP C, e.g., 1300 bytes. LCP unit C 312c may determine the slice size for the third slice of LCP C (referred to hereinafter as “C3”’), e.g., 600 bytes. LCP unit C 312c may also determine that LC4 has 500 bytes and LC5 1300 bytes. Here, LCP unit C 312c dequeues a first portion of C3’ (e.g., 500 bytes) from LC4 and a second portion of C3’ (e.g., 100 bytes) from LC5 so that 600 bytes are dequeued for C3\ LC5 has 1200 bytes remaining after the second portion of C3’ is dequeued. LCP unit C 312c may perform additional processing to prepare C3’ for transmission. Then, then C3’ may be sent to Tx scheduler 220. Here, LCP unit C 312c may generate a signal 305 that indicates C3’ has been dequeued/processed and that 700 bytes of LCP C remain. LCP priority unit 304 then updates the grant information for LCP C accordingly.
[0071] Because no other UL grants remain, LCP priority unit 304 may next send a subsequent slice run request 301 to LCP unit C 312c, since LCP C is next in line of priority. This slice run request 301 may indicate the remaining byte size of LCP C, e.g., 700 bytes. LCP unit C 312c may determine the slice size for the fourth slice of LCP C (referred to hereinafter as “C4”’), e.g., 700 bytes. LCP unit C 312c may also determine that LC5 1200 bytes. Here, LCP unit C 312c dequeues C4’ from LC5. LC5 has 500 bytes remaining after the second portion of C4’ is dequeued. LCP unit C 312c may perform additional processing to prepare C4’ for transmission. Then, then C4’ may be sent to Tx scheduler 220. Once C4’ is sent to Tx scheduler 220, LCP unit C 312c may send a signal 303 indicating that LCP C is complete and the third UL grant has been fully processed. LCP priority unit 304 may then remove the third UL grant from the priority list.
[0072] Using these techniques described in connection with FIG. 3B, in-sequence LCP slices may be optimally processed with reduced latency and ready for transmission such that all concurrent LCPs are ready for transmission at the appropriate times and with sizes that are appropriate for the various conditions discussed above in connection with Equation (1). Moreover, because microcontroller 216 and Tx scheduler 220 are decoupled, the processing efficiency of microcontroller 216 may be further increased since it does not need to also perform LCP transmission scheduling for each of the LCPs.
[0073] FIG. 4 illustrates a flowchart of an exemplary method 400 of multiple carrier slice- based UL grant scheduling, according to embodiments of the disclosure. Exemplary method 400 may be performed by an apparatus for wireless communication, e.g., such as user equipment 102, apparatus 200, baseband chip 202, microcontroller 216, Tx scheduler 220, LC queues 302, LCP unit A 312a, LCP unit B 312b, LCP unit C 312c, LCP priority unit 304, and/or node 500. Method 400 may include steps 402-420 as described below. It is to be appreciated that some of the steps may be optional, and some of the steps may be performed simultaneously, or in a different order than shown in FIG. 4.
[0074] At 402, the apparatus may receive a UL grant for a particular CC. For example, referring to FIGs. 3A and 3B, the LCP priority unit 304 may receive the UL grant. At 404, the apparatus may determine whether any LCP processing is presently being performed by a microcontroller. When no other LCP processing is being performed, the operation moves to 406. Otherwise, when LCP processing is currently being performed, the operation moves to 416.
[0075] At 406, the apparatus may begin dequeuing a slice of the LCP indicated in the UL grant. For example, referring to FIGs. 3A and 3B, assume the UL grant received at 402 is the second UL grant associated with LCP B. Here, request 301 may be sent to LCP unit B 312b to begin dequeuing/processing a slice associated with LCP B. The slice of LCP B may be dequeued and processed using either the technique described in connection with FIG. 3 A or 3B.
[0076] At 408, the apparatus may determine whether any bytes remain from the UL grant for the LCP allocated in the UL grant. When no bytes still need to be dequeued for the LCP, the operation may move to 414. Otherwise, when bytes remain for the LCP, the operation may move to 410.
[0077] At 410, the apparatus may determine whether a byte condition associated with a slice has been met. For example, referring to FIG. 3B, LCP unit B 312b may determine (at 410) whether the byte size of BU has been fully dequeued. If not, LCP unit B 312b may continue dequeuing (at 406) bytes from LC2 for BU. Otherwise, LCP unit B 312b may generate (at 412) signal 305 indicating BU has been dequeued and indicates the remaining number of bytes in LCP B.
[0078] At either 408 or 410, the apparatus may determine that the entire LCP has been dequeued. Here, the apparatus may select (at 414) the next highest priority UL grant and send that to the associated LCP unit for dequeuing/processing.
[0079] When (at 404) the apparatus determines that another UL grant is being dequeued/processed at the microcontroller when the new UL grant arrives, the apparatus may determine (at 416) whether the timing of the newly received UL grant (e.g., UL grant for CCO/LCP A) has a higher priority in terms of timing and/or latency than the UL grant currently being processed. For example, referring to FIGs. 3 A and 3B, assume LCP unit B 312b is currently dequeuing/processing LCP B when the first UL grant for CC0 arrives. When (at 416) LCP priority unit 304 determines the UL grant for CC0 has a higher priority, a signal may be sent (at 418) to LCP unit B 312b to suspend activity at the end of the current slice or before the slice is fully dequeued/processed and another signal may be sent (at 418) to LCP unit A 312a to begin dequeuing/processing LCP A. Otherwise, when it is determined that the newly received UL grant is not higher in priority than the one currently running, the apparatus may place (at 420) the new UL grant in order of priority in the priority list.
[0080] In various aspects of the present disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or encoded as instructions or code on a non-transitory computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computing device, such as node 500 in FIG. 5. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, HDD, such as magnetic disk storage or other magnetic storage devices, Flash drive, SSD, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a processing system, such as a mobile device or a computer. Disk and disc, as used herein, includes CD, laser disc, optical disc, digital video disc (DVD), and floppy disk where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. [0081] According to one aspect of the present disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include, among other things, a first LCP module associated with a first CC, a second LCP module associated with a second CC, a third LCP module associated with a third CC, and an LCP priority module. The first LCP module may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met. The first LCP module may also be configured to send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP. The first LCP indicator may indicate a first remaining slice of the first LCP. The second LCP module may be configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met. The first LCP module may be also configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met. [0082] In some embodiments, the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes. In some other embodiments, the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes. In some other embodiments, the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
[0083] In some embodiments, the first LCP module may be further configured to receive a first LCP request associated with the first LCP from the LCP priority queue. In some other embodiments, the first LCP request may indicate a size of the first LCP. In some other embodiments, the first LCP module may be further configured to determine whether the first slice of the first LCP includes an entirety of the first LCP. In some other embodiments, the first LCP module may be further configured to send an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue. In some other embodiments, the first LCP module may be further configured to receive a second LCP request associated with the first LCP from the LCP priority queue. In some other embodiments, the second LCP request may indicate the first remaining slice of the first LCP.
[0084] In some embodiments, the second LCP module may be further configured to receive a third LCP request associated with a second LCP from the LCP priority queue, the third LCP request indicating a size of the second LCP. In some embodiments, the second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP. In some other embodiments, the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
[0085] In some embodiments, the LCP priority queue module may be configured to receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the LCP priority queue module may be further configured to determine whether the third LCP has higher priority than the first LCP. In some embodiments, the LCP priority queue module may be further configured to suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. [0086] In some embodiments, the first LCP module may be configured to send a second
LCP indicator associated with the first LCP to the LCP priority queue. In some embodiments, the second LCP indicator may indicate a second remaining slice of the first LCP.
[0087] In some embodiments, the third LCP module may be configured to dequeue a first slice of the third LCP from the second LC queue.
[0088] In some embodiments, the first LCP module may be configured to send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP. In some embodiments, the second LCP module may be configured to send the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP. In some embodiments, the first LCP module may be configured to the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP.
[0089] In another aspect of the present disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include a memory and at least one microcontroller coupled to the memory and configured to perform various operations. For example, the at least one microcontroller may be configured to dequeue a first slice of a first LCP from a first LC queue until a first threshold condition is met. The first LCP may be associated with a first CC. The at least one microcontroller may be further configured to send a first LCP indicator to a LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP. The at least one microcontroller may be further configured to dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met. The second LCP may be associated with a second CC. The at least one microcontroller may be further configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
[0090] In some embodiments, the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes. In some other embodiments, the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes. In some other embodiments, the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
[0091] In some embodiments, the at least one microcontroller may be further configured to receive a first LCP request associated with the first LCP from the LCP priority queue. In some embodiments, first LCP request may indicate a size of the first LCP. In some embodiments, the at least one microcontroller may be further configured to determine whether the first slice of the first LCP includes an entirety of the first LCP. In some embodiments, the at least one microcontroller may be further configured to send a LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue. In some embodiments, the at least one microcontroller may be further configured to receive a second LCP request associated with the first LCP from the LCP priority queue. The second LCP request may indicate the first remaining slice of the first LCP.
[0092] In some embodiments, the at least one microcontroller may be further configured to receive a third LCP request associated with the second LCP from the LCP priority queue. The third LCP request may indicate a size of the second LCP. In some embodiments, the second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP. In some other embodiments, the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
[0093] In some embodiments, the at least one microcontroller may be further configured to receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the at least one microcontroller may be further configured to determine whether the third LCP has higher priority than the first LCP. [0094] In some embodiments, the at least one microcontroller may be further configured to suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. In some embodiments, the at least one microcontroller may be further configured to send a second LCP indicator associated with the first LCP to the LCP priority queue. The second LCP indicator may indicate a second remaining slice of the first LCP. In some embodiments, the at least one microcontroller may be further configured to dequeue a first slice of the third LCP from the second LC queue.
[0095] In some embodiments, the at least one microcontroller may be further configured to send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP. In some embodiments, the at least one microcontroller may be further configured to the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP. In some embodiments, the at least one microcontroller may be further configured to send the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP.
[0096] According to a further aspect of the present disclosure, a method of wireless communication of a UE is disclosed. The method may include dequeuing a first slice of a first LCP from a first LC queue until a first threshold condition is met. The first LCP may be associated with a first CC. The method may further include sending a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP. The first LCP indicator may indicate a first remaining slice of the first LCP. The method may further include dequeuing a first slice of a second LCP from a second LC queue until a second threshold condition is met. The second LCP may be associated with a second CC. The method may further include dequeuing a second slice of the first LCP from the second LC queue until a third threshold condition is met.
[0097] In some embodiments, the first threshold condition may be met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes. In some other embodiments, the second threshold condition may be met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes. In some other embodiments, the third threshold condition may be met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
[0098] In some embodiments, the method may further include receiving a first LCP request associated with a first LCP from an LCP priority queue. In some embodiments, the method may further include determining whether the first slice of the first LCP includes an entirety of the first LCP. In some embodiments, the method may further include sending an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue. In some embodiments, the method may further include receiving a second LCP request associated with the first LCP from the LCP priority queue, the second LCP request indicating the first remaining slice of the first LCP.
[0099] In some embodiments, the method may further include receiving a third LCP request associated with a second LCP from the LCP priority queue. The second LCP may be associated with a second CC. In some embodiments, second LCP request may be received when the first slice of the first LCP includes the entirety of the first LCP. In some other embodiments, the second LCP request may be received when the LCP complete signal is sent to the LCP priority queue.
[0100] In some embodiments, the method may further include receiving an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue. In some embodiments, the method may further include determining whether the third LCP has higher priority than the first LCP. In some embodiments, the method may further include suspending the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP. In some embodiments, the method may further include sending a second LCP indicator associated with the first LCP to the LCP priority queue. The second LCP indicator may indicate a second remaining slice of the first LCP. In some other embodiments, the method may further include dequeuing a first slice of the third LCP from the second LC queue.
[0101] According to another aspect of the disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include a memory and at least one microcontroller coupled to the memory. The at least one microcontroller may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The at least one microcontroller may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
[0102] According to another aspect of the disclosure, an apparatus for wireless communication of a UE is disclosed. The apparatus may include an LCP priority unit. The LCP priority unit may be configured to receive a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The LCP priority unit may be further configured to prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
[0103] According to another aspect of the disclosure, a method of wireless communication of a UE is disclosed. The method may include receiving, using an LCP priority unit, a plurality of UL grants each scheduling a transmission time for an associated LCP. Each of the plurality of UL packets may be concurrently received on a different CC. The method may further include prioritizing, using the LCP priority unit, the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first. [0104] The foregoing description of the specific embodiments will so reveal the general nature of the present disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
[0105] Embodiments of the present disclosure have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
[0106] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor(s), and thus, are not intended to limit the present disclosure and the appended claims in any way. [0107] Various functional blocks, modules, and steps are disclosed above. The particular arrangements provided are illustrative and without limitation. Accordingly, the functional blocks, modules, and steps may be reordered or combined in different ways than in the examples provided above. Likewise, some embodiments include only a subset of the functional blocks, modules, and steps, and any such subset is permitted. [0108] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

WHAT IS CLAIMED IS:
1. An apparatus for wireless communication of a user equipment (UE), comprising: a memory; and at least one microcontroller coupled to the memory and configured to: dequeue a first slice of a first logical channel packet (LCP) from a first logical channel (LC) queue until a first threshold condition is met, the first LCP being associated with a first component carrier (CC); send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP; dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met, the second LCP being associated with a second CC; and dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
2. The apparatus of claim 1, wherein: the first threshold condition is met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes, the second threshold condition is met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes, and the third threshold condition is met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
3. The apparatus of claim 2, wherein the at least one microcontroller is further configured to: receive a first LCP request associated with the first LCP from the LCP priority queue, the first LCP request indicating a size of the first LCP; determine whether the first slice of the first LCP includes an entirety of the first LCP; send an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue; and receive a second LCP request associated with the first LCP from the LCP priority queue, the second LCP request indicating the first remaining slice of the first LCP.
4. The apparatus of claim 3, wherein the at least one microcontroller is further configured to: receive a third LCP request associated with the second LCP from the LCP priority queue, the third LCP request indicating a size of the second LCP, wherein the second LCP request is received when the first slice of the first LCP includes the entirety of the first LCP, or wherein the second LCP request is received when the LCP complete signal is sent to the LCP priority queue.
5. The apparatus of claim 1, wherein the microcontroller is further configured to: receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue; and determine whether the third LCP has higher priority than the first LCP.
6. The apparatus of claim 5, wherein the microcontroller is further configured to: suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP; send a second LCP indicator associated with the first LCP to the LCP priority queue, the second LCP indicator indicating a second remaining slice of the first LCP; and dequeue a first slice of the third LCP from the second LC queue.
7. The apparatus of claim 1, wherein the microcontroller is further configured to: send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP; send the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP; and send the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP, wherein the transmission scheduler and the microcontroller are decoupled.
8. An apparatus for wireless communication of a user equipment (UE), comprising: a first logical channel packet (LCP) module associated with a first component carrier (CC), the first LCP module configured to: dequeue a first slice of a first LCP from a first logical channel (LC) queue until a first threshold condition is met; and send a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP; and a second LCP module associated with a second CC, the second LCP module configured to: dequeue a first slice of a second LCP from a second LC queue until a second threshold condition is met, wherein the first LCP module is further configured to dequeue a second slice of the first LCP from the second LC queue until a third threshold condition is met.
9. The apparatus of claim 8, wherein: the first threshold condition is met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes, the second threshold condition is met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes, and the third threshold condition is met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
10. The apparatus of claim 8, wherein the first LCP module is further configured to: receive a first LCP request associated with the first LCP from the LCP priority queue, the first LCP request indicating a size of the first LCP; determine whether the first slice of the first LCP includes an entirety of the first LCP; send an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue; and receive a second LCP request associated with the first LCP from the LCP priority queue, the second LCP request indicating the first remaining slice of the first LCP.
11. The apparatus of claim 10, wherein the second LCP module is further configured to: receive a third LCP request associated with a second LCP from the LCP priority queue, the third LCP request indicating a size of the second LCP, wherein the second LCP request is received when the first slice of the first LCP includes the entirety of the first LCP, or wherein the second LCP request is received when the LCP complete signal is sent to the LCP priority queue.
12. The apparatus of claim 8, further comprising an LCP priority queue module configured to: receive an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue; determine whether the third LCP has higher priority than the first LCP; and suspend the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP.
13. The apparatus of claim 12, wherein the first LCP module is further configured to: send a second LCP indicator associated with the first LCP to the LCP priority queue, the second LCP indicator indicating a second remaining slice of the first LCP.
14. The apparatus of claim 13, further comprising: a third LCP module associated with a third CC, the third LCP module configured to: dequeue a first slice of the third LCP from the second LC queue.
15. The apparatus of claim 8, wherein: the first LCP module is further configured to send the first slice of the first LCP to a transmission scheduler upon dequeuing from the first LCP, the second LCP module is further configured to send the first slice of the second LCP to the transmission scheduler upon dequeuing from the second LCP, and the first LCP module is further configured to send the second slice of the first LCP to the transmission scheduler upon dequeuing from the second LCP.
16. A method of wireless communication of a user equipment (UE), comprising: dequeuing a first slice of a first logical channel packet (LCP) from a first logical channel
(LC) queue until a first threshold condition is met, the first LCP being associated with a first component carrier (CC); sending a first LCP indicator to an LCP priority queue when the first slice of the first LCP does not include an entirety of the first LCP, the first LCP indicator indicating a first remaining slice of the first LCP; dequeuing a first slice of a second LCP from a second LC queue until a second threshold condition is met, the second LCP being associated with a second CC; and dequeuing a second slice of the first LCP from the second LC queue until a third threshold condition is met.
17. The method of claim 16, wherein: the first threshold condition is met when the first LCP is empty or when the first slice of the first LCP reaches a first predetermined number of bytes, the second threshold condition is met when the second LCP is empty or when the first slice of the second LCP reaches a second predetermined number of bytes, and the third threshold condition is met when the second LCP is empty or when the first remaining slice of the first LCP reaches a third predetermined number of bytes.
18. The method of claim 17, further comprising: receiving a first LCP request associated with a first LCP from an LCP priority queue; determining whether the first slice of the first LCP includes an entirety of the first LCP; sending an LCP complete signal to the LCP priority queue when the first slice of the first LCP includes the entirety of the first LCP priority queue; and receiving a second LCP request associated with the first LCP from the LCP priority queue, the second LCP request indicating the first remaining slice of the first LCP.
19. The method of claim 18, further comprising: receiving a third LCP request associated with a second LCP from the LCP priority queue, the second LCP being associated with a second CC, wherein the second LCP request is received when the first slice of the first LCP includes the entirety of the first LCP, or wherein the second LCP request is received when the LCP complete signal is sent to the LCP priority queue.
20. The method of claim 16, further comprising: receiving an LCP grant associated with a third LCP while the second slice of the first LCP is being dequeued from the second LC queue; determining whether the third LCP has higher priority than the first LCP; suspending the dequeuing of the second slice of the first LCP from the second LC queue when the third LCP has higher priority than the second LCP; sending a second LCP indicator associated with the first LCP to the LCP priority queue, the second LCP indicator indicating a second remaining slice of the first LCP; and dequeuing a first slice of the third LCP from the second LC queue.
21. An apparatus for wireless communication of a user equipment (UE), comprising: a memory; and at least one microcontroller coupled to the memory and configured to: receive a plurality of uplink (UL) grants each scheduling a transmission time for an associated logical channel packet (LCP), each of the plurality of UL grants being concurrently received on a different component carrier (CC); and prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
22. An apparatus for wireless communication of a user equipment (UE), comprising: a logical channel packet (LCP) priority unit configured to: receive a plurality of uplink (UL) grants each scheduling a transmission time for an associated LCP, each of the plurality of UL grants being concurrently received on a different component carrier (CC); and prioritize the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
23. A method of wireless communication of a user equipment (UE), comprising: receiving, using a logical channel packet (LCP) priority unit, a plurality of uplink (UL) grants each scheduling a transmission time for an associated LCP, each of the plurality of UL grants being concurrently received on a different component carrier (CC); and prioritizing, using the LCP priority unit, the plurality of UL grants in order of scheduled transmission time such that a UL grant with the earliest transmission time is prioritized first.
PCT/US2021/027857 2021-04-18 2021-04-18 Apparatus and method of multiple carrier slice-based uplink grant scheduling WO2022225500A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2021/027857 WO2022225500A1 (en) 2021-04-18 2021-04-18 Apparatus and method of multiple carrier slice-based uplink grant scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/027857 WO2022225500A1 (en) 2021-04-18 2021-04-18 Apparatus and method of multiple carrier slice-based uplink grant scheduling

Publications (1)

Publication Number Publication Date
WO2022225500A1 true WO2022225500A1 (en) 2022-10-27

Family

ID=83722500

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/027857 WO2022225500A1 (en) 2021-04-18 2021-04-18 Apparatus and method of multiple carrier slice-based uplink grant scheduling

Country Status (1)

Country Link
WO (1) WO2022225500A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050201398A1 (en) * 2003-12-22 2005-09-15 Naik Uday R. Optimized back-to-back enqueue/dequeue via physical queue parallelism
US20140161108A1 (en) * 2009-04-23 2014-06-12 Panasonic Corporation Logical channel prioritization procedure for generating multiple uplink transport blocks
US20160345340A1 (en) * 2002-07-15 2016-11-24 Wi-Lan, Inc. APPARATUS, SYSTEM AND METHOD FOR THE TRANSMISSION OF DATA WITH DIFFERENT QoS ATTRIBUTES
US20180159802A1 (en) * 2015-07-30 2018-06-07 Huawei Technologies Co., Ltd. Data enqueuing method, data dequeuing method, and queue management circuit
US20200021415A1 (en) * 2015-01-30 2020-01-16 Qualcomm Incorporated Uplink control channel for acknowledging increased number of downlink component carriers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160345340A1 (en) * 2002-07-15 2016-11-24 Wi-Lan, Inc. APPARATUS, SYSTEM AND METHOD FOR THE TRANSMISSION OF DATA WITH DIFFERENT QoS ATTRIBUTES
US20050201398A1 (en) * 2003-12-22 2005-09-15 Naik Uday R. Optimized back-to-back enqueue/dequeue via physical queue parallelism
US20140161108A1 (en) * 2009-04-23 2014-06-12 Panasonic Corporation Logical channel prioritization procedure for generating multiple uplink transport blocks
US20200021415A1 (en) * 2015-01-30 2020-01-16 Qualcomm Incorporated Uplink control channel for acknowledging increased number of downlink component carriers
US20180159802A1 (en) * 2015-07-30 2018-06-07 Huawei Technologies Co., Ltd. Data enqueuing method, data dequeuing method, and queue management circuit

Similar Documents

Publication Publication Date Title
US11877296B2 (en) Methods for physical downlink control channel (PDCCH) candidate determination
CN109802758B (en) Managing control channel blind searches between search spaces in a new radio
WO2020094019A1 (en) Information transmission method and device
WO2019242776A1 (en) Wireless communication method and apparatus
US20210160859A1 (en) Communications method and apparatus
WO2019214523A1 (en) Communication method and apparatus
CA3112419A1 (en) Communication method and apparatus, and computer storage medium
US20220312459A1 (en) Enhanced Configured Grants
WO2021035734A1 (en) Data transmission method and apparatus, and storage medium
US20230101531A1 (en) Uplink medium access control token scheduling for multiple-carrier packet data transmission
EP3500037B1 (en) Data transmission method, terminal device and network device
WO2021159497A1 (en) Method and device for carrier scheduling
US20220386364A1 (en) Method and apparatus for grant-free uplink communication
WO2022225500A1 (en) Apparatus and method of multiple carrier slice-based uplink grant scheduling
US20220304042A1 (en) Enhanced Configured Grants
US20230014887A1 (en) Uplink data grant scheduling
US20230019102A1 (en) Data plane scalable architecture for wireless communication
WO2024093878A1 (en) Communication method and apparatus
WO2024049405A1 (en) Apparatus and method for two-dimensional scheduling of downlink layer 1 operations
WO2023009117A1 (en) Apparatus and method of credit-based scheduling mechanism for layer 2 transmission scheduler
WO2023282888A1 (en) Latency-driven data activity scheme for layer 2 power optimization
WO2024076337A1 (en) Apparatus and method for adaptive activation/deactivation of an uplink layer 2 datapath and hardware threads
WO2023003543A1 (en) Apparatus and method of power optimized hybrid parallel/pipelined layer 2 processing for packets of different throughput types
WO2023018408A1 (en) Apparatus and method of code-block segment based time-sharing of demodulators and decoders
JP2024520661A (en) User equipment, scheduling node, method for user equipment, and method for scheduling node - Patents.com

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21938082

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21938082

Country of ref document: EP

Kind code of ref document: A1