Optimal Grant for VoNR VoLTE Using Codec Rate Forward Learning
By dynamically adjusting SPS TBS based on compressed data packet sizes, the patent optimizes resource utilization in 4G and 5G networks, addressing inefficiencies in semi-persistent scheduling and enhancing resource allocation.
Patent Information
- Application Number
- JP2025523068
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-11-23
- Publication Date
- 2025-10-24
AI Technical Summary
In current 4G and 5G wireless networks, semi-persistent scheduling (SPS) results in unused resources due to data compression reducing individual data packet sizes below the set transport block size (TBS), leading to inefficiencies in bit rate and packet size management.
Adjust the SPS TBS based on the size of compressed data packets to optimize resource utilization, allowing for dynamic adjustment of TBS to match the actual data packet sizes post-compression.
Reduces the required bit rate per user and optimizes resource allocation by utilizing unused resources, enhancing efficiency in radio resource allocation across 4G and 5G networks.
Smart Images

Figure 2025535460000001_ABST
Abstract
Description
[Technical Field]
[0001] Apparatus and methods consistent with example embodiments of the present disclosure relate to methods for semi-persistent scheduling (SPS) in wireless networks. [Background technology]
[0002] In a related technology, semi-persistent scheduling (SPS) in a wireless network, an SPS transport bit size (TBS) may be set based on the guaranteed bit rate (GBR) of the wireless network. The SPS TBS may be set as a value of bits corresponding to individual data packets. However, individual data packets may be generated according to the SPS TBS while the data is not compressed. After compression, the size of each individual data packet may be reduced to less than the size of the SPS TBS, which may result in unused resources. That is, in current fourth-generation (4G) and fifth-generation (5G) networks, Layer 2 does not include functions for saving resources in terms of bit rate or packet size. Summary of the Invention [Means for solving the problem]
[0003] According to embodiments, systems and methods are provided for semi-persistent scheduling (SPS) in wireless networks, in which the required bit rate per user may be reduced and unused resources resulting from data compression may be identified and utilized.
[0004] According to one aspect of the present disclosure, a method for SPS in a wireless network may include setting a current SPS transport block size (TBS); compressing a data packet; determining whether to adjust the current SPS TBS based on a size of the compressed data packet; and adjusting the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on the determination to adjust the current SPS TBS.
[0005] According to one aspect of the present disclosure, a system for SPS in a wireless network may include at least one memory that stores instructions; and at least one processor configured to execute the instructions: set a current SPS TBS; compress a data packet; determine whether to adjust the current SPS TBS based on a size of the compressed data packet; and adjust the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on the determination to adjust the current SPS TBS.
[0006] According to one aspect of the present disclosure, a non-transitory computer-readable storage medium may store instructions that, when executed by at least one processor, cause the at least one processor to set a current SPS TBS, compress a data packet, determine whether to adjust the current SPS TBS based on a size of the compressed data packet, and adjust the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on the determination to adjust the current SPS TBS.
[0007] The features, advantages, and significance of exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, in which like reference numerals refer to like elements. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram of a wireless network implementing semi-persistent scheduling (SPS), according to one embodiment.
[0009] [Figure 2] FIG. 2 is a graph illustrating SPS transport block size (TBS) size over time according to one embodiment.
[0010] [Figure 3] FIG. 3 is a flowchart of a method for SPS in a wireless network, according to one embodiment.
[0011] [Figure 4] FIG. 4 is a diagram of an example environment in which the systems and / or methods described herein may be implemented.
[0012] [Figure 5] FIG. 5 is a diagram of exemplary components of a device according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0013] The following detailed description of the exemplary embodiments refers to the accompanying drawings, in which the same reference numbers in different drawings may identify the same or similar elements.
[0014] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. Moreover, one or more features or components of one embodiment may be combined with or incorporated into other embodiments (or one or more features of other embodiments). Additionally, in the flowcharts and descriptions of operations provided below, it is understood that one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) concurrently, and the order of one or more operations may be permuted.
[0015] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not limiting of the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code. It will be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.
[0016] Although particular combinations of features are recited in the claims and / or disclosed herein, these combinations are not intended to limit the disclosure of possible implementations. Indeed, many of these features can be combined in ways not specifically recited in the claims and / or disclosed herein. Although each dependent claim listed below may depend directly on only one claim, the disclosure of possible implementations includes each dependent claim in combination with all other claims in the claim set.
[0017] No element, act, or instruction used herein should be construed as critical or required unless specifically stated otherwise. Also, as used herein, the articles "a" and "an" are intended to include one or more items and may be used interchangeably with "one or more." Where only one item is intended, the term "one" or similar language is used. Also, as used herein, terms such as "has," "have," "having," "include," and "including" are intended to be open-ended terms. Furthermore, the phrase "based on" is intended to mean "based at least in part on," unless expressly stated otherwise. Furthermore, phrases such as "at least one of [A] and [B]" or "at least one of [A] or [B]" should be understood to include A only, B only, or both A and B.
[0018] Exemplary embodiments of the present disclosure provide a method and system for semi-persistent scheduling (SPS) in a wireless network, in which an SPS transport block size (TBS) (e.g., transport block (TB) size, data packet size, etc.) can be configured and adjusted. In particular, the system can set a current SPS TBS, compress a data packet, determine whether to adjust the current SPS TBS based on the size of the compressed data packet, and adjust the current SPS TBS to a next SPS TBS that is smaller or larger than the current SPS TBS based on the determination to adjust the current SPS TBS. That is, the SPS TBS can be increased or decreased based on the current compression ratio.
[0019] Although the uncompressed data packet may have an initial size, after compression, the size of the compressed data packet may be smaller than the SPS TBS (e.g., the compression ratio may vary in a Robust Header Compression (RoHC) system). As a result, the remaining bits of the data packet (e.g., the remaining physical resource blocks (PRBs)) may go unused, potentially resulting in inefficiencies in data usage. Therefore, the provided systems and methods may determine to adjust the SPS TBS based on the size of the compressed data packet compared to the SPS TBS, as described in detail below. Thus, the provided systems and methods may reduce the bit rate required per user (or increase the bit rate, as may be indicated by the compression ratio) while also achieving the benefits of RoHC compression in radio resource allocation in SPS for fourth-generation (4G) networks, fifth-generation (5G) networks, and other networks as will be understood by those skilled in the art from the disclosure herein.
[0020] FIG. 1 is a diagram of a wireless network 100 implementing SPS, according to one embodiment. The wireless network 100 may include a base station 102 and multiple user devices 110-120 connected to the base station 102. The base station 102 may include a radio link control (RLC) 104 and a scheduler 106. The base station 102 may be configured to prepare TB / data packets on the downlink and decode TB / data packets on the uplink via the RLC 104. The base station 102 may also be configured to compress the data packets. As described below, the RLC 104 may be configured to determine a run-time average of the size of data packets after RoHC compression while enqueuing or dequeuing the data packets to determine the effective codec rate (e.g., reduction of the SPS TBS). This determination may be input from the RLC 104 to the scheduler 106 to adjust the SPS TBS.
[0021] The initial SPS TBS may be configured based on a guaranteed bit rate (GBR). In an exemplary embodiment in which the GBR of the wireless network 100 is configured for 40 Kbps (e.g., 12.65 Kbps with Adaptive Multi-Rate Wideband (AMR-WB)), the initial SPS TBS may be set as 800 bits per grant (e.g., 800 bits per data packet) to satisfy the corresponding GBR. Although the embodiments disclosed herein are described with respect to a wireless network with an 800-bit SPS TBS, the embodiments are not limited to this particular configuration. Furthermore, the embodiments disclosed herein may be performed by a base station 104 and / or a core network corresponding to the wireless network 100 (e.g., a server device).
[0022] The system may set an SPS periodicity value for the wireless network 100 (i.e., sps_periodicity). The SPS periodicity value may be pre-configured for the wireless network 100 or may be selected based on other factors of the wireless network 100. In an exemplary embodiment disclosed herein, the SPS periodicity value may be set to 20 ms. Additionally, the system may set the number of packets per second (i.e., packet_per_sec). The number of packets per second may be determined based on 1 second divided by the SPS periodicity value. That is, in an exemplary embodiment disclosed herein, the number of packets per second may be set to 50. The system may further determine the number of packets per SPS grant (i.e., number_of_packets_per_sps_grant). The number of packets per SPS grant may correspond to the number of data packets to include in an uplink / downlink transmission. The number of packets per SPS grant may be determined based on dividing the SPS periodicity value by a predetermined fixed value. In the example embodiment disclosed herein, the number of packets per SPS grant may be determined based on dividing the SPS period by a fixed value of 20 (ie, number_of_packets_per_sps_grant=1).
[0023] The system may initialize an SPS TBS (i.e., SPS TBS). The initial SPS TBS may be set based on the GBR (i.e., guaranteed_bit_rate) of the wireless network, the number of packets per second, and the number of packets per SPS grant. That is, the initial SPS TBS may be configured based on Equation (1). (1)(guaranteed_bit_rate / packet_per_sec) * number_of_packets_per_sps_grant
[0024] As explained below, the current SPS TBS may be the initial SPS TBS, or may be a next SPS TBS adjusted from the initial SPS TBS, as explained below.
[0025] The system may further configure a predetermined hysteresis bit value (i.e., sps_tbs_hysteresis) that may be used to determine whether to adjust the SPS TBS. The predetermined hysteresis bit value may be a value that represents the difference between the SPS TBS and the size of the compressed data packet. The predetermined hysteresis bit value may be a static value or a dynamic value that is adjusted based on system parameters. For example, as the difference between the current SPS TBS and the size of the compressed data packet decreases, the predetermined hysteresis bit value may be decreased to ensure that further adjustments can be made to the SPS TBS. In an exemplary embodiment disclosed herein, the predetermined hysteresis bit value may be set to 80 bits. That is, as described below, the system may determine to adjust the current SPS TBS if the difference between the current SPS TBS and the size of the compressed data packet is greater than (or equal to) 80 bits.
[0026] The system may then determine whether to adjust the current SPS TBS. The system may determine whether to adjust the current SPS TBS for each data packet dequeued on the downlink and / or each packet enqueued on the uplink. Furthermore, the system may determine whether to adjust the current SPS TBS at a predetermined interval of data packets being enqueued / dequeued (e.g., every 2 data packets, every 5 data packets, etc.).
[0027] The system may first determine the type of data packet to be dequeued / enqueued. For example, the system may determine not to adjust the current SPS TBS if the data packet is a Packet Data Convergence Protocol (PDCP) control packet, if the data packet is a RoHC feedback packet, and / or if the data packet is a Silence Indicator Descriptor (SID) packet. If the data packet is not a PDCP control packet, a RoHC feedback packet, and / or a SID packet (or the system may forgo determining the type of data packet), the system may determine to adjust the current SPS TBS.
[0028] The system can determine a new (e.g., next) SPS TBS (i.e., new_sps_tbs). The new SPS TBS can be determined based on the current SPS TBS multiplied by a first percentage value (i.e., p1) and the size of the compressed data packet (i.e., packet_size_in_bits) multiplied by a second percentage value (i.e., p2). That is, the new SPS TBS can be determined as shown in Equation (2). (2)new_sps_tbs = (p1 * sps_tbs) + (p2 * packet_size_in_bits)
[0029] The first percentage value p1 may be greater than the second percentage value p2. In an exemplary embodiment, the percentage value p1 may be 90% (e.g., 0.9) and the percentage value p2 may be 10% (e.g., 0.1), although other percentage values may be utilized and adjusted based on the needs of wireless network 100.
[0030] Based on the new SPS TBS, the system may further determine whether to adjust the current SPS TBS. For example, the system may determine to adjust the current SPS TBS based on the new SPS TBS and a predetermined hysteresis bit value. That is, the system may determine to adjust the current SPS TBS to the new SPS TBS if the sum of the new SPS TBS and the predetermined hysteresis bit value is greater than the current SPS TBS, or if the difference between the new SPS TBS and the predetermined hysteresis bit value is less than the current SPS TBS, or as in Equation (3). (3)if (new_sps_tbs + sps_tbs_hysteresis) > sps_tbs OR (new_sps_tbs - sps_tbs_hysteresis) < sps_tbs
[0031] If the system determines to adjust the current SPS TBS to the new SPS TBS, the system may update the current SPS TBS to be the new SPS TBS and send the update to scheduler 106 .
[0032] FIG. 2 is a graph 200 illustrating SPS TBS size over time according to one embodiment. FIG. 2 was generated from a wireless network in which the current SPS TBS (or initial SPS TBS) was set to 800 bits. At time 202, the system can begin processing data packets. As shown through further time points, the SPS TBS gradually decreases to 400 bits, or half the initial SPS TBS at time 202. Once the SPS TBS reaches approximately 400 bits, the difference between the SPS TBS and the size of the compressed data packet may not exceed a predetermined hysteresis bit value, and therefore, no further adjustments to the SPS TBS are made. At time 204, the system can reset the SPS TBS, or a new session occurs, which resets the SPS TBS to a value of 900 bits. As shown in graph 200, the SPS TBS decreases in size over time to approximately 400 bits and then remains at 400 bits.
[0033] 3 is a flowchart of a method for SPS in a wireless network, according to one embodiment. In operation 302, the system may set a current SPS TBS. In operation 304, the system may compress a data packet. In operation 306, the system may determine whether to adjust the current SPS TBS based on the size of the compressed data packet. In operation 308, the system may adjust the current SPS TBS to a next SPS TBS that is smaller or larger than the current SPS TBS based on the determination to adjust the current SPS TBS. That is, the SPS TBS may be increased or decreased based on the current compression ratio.
[0034] 4 is a diagram of an example environment 400 in which the systems and / or methods described herein may be implemented. As shown in FIG. 4, environment 400 may include a user device 410, a platform 420, and a network 430. The devices in environment 400 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections. In an embodiment, any of the functions and operations described with reference to FIG. 1 above may be performed by any combination of the elements illustrated in FIG. 4.
[0035] User device 410 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information related to platform 420. For example, user device 410 may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smartphone, a wireless phone, etc.), a wearable device (e.g., smart glasses or a smart watch), or a similar device. In some implementations, user device 410 may receive information from and / or transmit information to platform 420.
[0036] Platform 420 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information. In some implementations, platform 420 may include a cloud server or a collection of cloud servers. In some implementations, platform 420 may be designed to be modular, such that certain software components can be swapped in or out depending on particular needs. Thus, platform 420 can be easily and / or quickly reconfigured for different uses.
[0037] In some implementations, as shown, platform 420 may be hosted in a cloud computing environment 422. In particular, although the implementations described herein describe platform 420 as being hosted within cloud computing environment 422, in some implementations platform 420 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.
[0038] Cloud computing environment 422 includes an environment that hosts platform 420. Cloud computing environment 422 can provide services such as computing, software, data access, and storage, without requiring end-user (e.g., user device 410) knowledge of the physical location and configuration of the systems and / or devices that host platform 420. As shown, cloud computing environment 422 can include computing resources 424 (collectively referred to as “computing resources 424” and individually referred to as “computing resource 424”).
[0039] Computing resources 424 include one or more personal computers, clusters of computing devices, workstation computers, server devices, or other types of computing and / or communication devices. In some implementations, computing resources 424 may host platform 420. Cloud resources may include compute instances running within computing resources 424, storage devices provided within computing resources 424, data transfer devices provided by computing resources 424, etc. In some implementations, computing resources 424 may communicate with other computing resources 424 via wired connections, wireless connections, or a combination of wired and wireless connections.
[0040] As further shown in FIG. 4, computing resources 424 include a group of cloud resources such as one or more applications (“APP”) 424-1, one or more virtual machines (“VM”) 424-2, virtualized storage (“VS”) 424-3, and one or more hypervisors (“HYP”) 424-4.
[0041] Applications 424-1 include one or more software applications that may be provided to or accessed by user device 410. Applications 424-1 may eliminate the need to install and run software applications on user device 410. For example, applications 424-1 may include software associated with platform 420 and / or any other software that may be provided via cloud computing environment 422. In some implementations, one application 424-1 may send and receive information to one or more other applications 424-1 via virtual machine 424-2.
[0042] Virtual machine 424-2 includes a software-implemented machine (e.g., a computer) that executes programs like a physical machine. Virtual machine 424-2 can be either a system virtual machine or a process virtual machine, depending on the intended use and the degree to which virtual machine 424-2 resembles any real machine. A system virtual machine may provide a complete system platform that supports the execution of a complete operating system (“OS”). A process virtual machine may execute a single program and support a single process. In some implementations, virtual machine 424-2 may run on behalf of a user (e.g., user device 410) and manage the infrastructure of cloud computing environment 422, such as data management, synchronization, or long-term data transfer.
[0043] Virtualized storage 424-3 includes one or more storage systems and / or one or more devices that use virtualization technology within the storage systems or devices of computing resources 424. In some implementations, types of virtualization in the context of storage systems may include block virtualization and file virtualization. Block virtualization may refer to the abstraction (or separation) of logical storage from physical storage so that the storage system can be accessed regardless of the physical storage or heterogeneous structure. Separation allows storage system administrators flexibility in how they manage storage for end users. File virtualization can eliminate dependencies between data accessed at the file level and where the file is physically stored. This may enable performance optimization of storage usage, server consolidation, and / or non-disruptive file migration.
[0044] Hypervisor 424-4 may provide hardware virtualization technology that allows multiple operating systems (e.g., "guest operating systems") to run simultaneously on a host computer, such as computing resource 424. Hypervisor 424-4 may present a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems. Multiple instances of different operating systems can share virtualized hardware resources.
[0045] Network 430 may include one or more wired and / or wireless networks. For example, network 430 may include a cellular network (e.g., a fifth-generation (5G) network, a long-term evolution (LTE) network, a third-generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, an optical fiber-based network, etc., and / or a combination of these or other types of networks.
[0046] The number and arrangement of devices and networks shown in Figure 4 are provided as an example. In practice, there may be other devices and / or networks than those shown in Figure 4, fewer devices and / or networks than those shown in Figure 4, different devices and / or networks than those shown in Figure 4, or devices and / or networks arranged differently than those shown in Figure 4. Furthermore, two or more devices shown in Figure 4 may be implemented within a single device, or a single device shown in Figure 4 may be implemented as multiple distributed devices. Additionally, or instead, one set of devices (e.g., one or more devices) of environment 400 may perform one or more functions that are described as being performed by another set of devices in environment 400.
[0047] 5 is a diagram of example components of a device 500. The device 500 may correspond to a user device 410 and / or a platform 420. As shown in FIG. 5, the device 500 may include a bus 510, a processor 520, a memory 530, a storage component 540, an input component 550, an output component 560, and a communication interface 570.
[0048] The bus 510 includes components that enable communication between the components of the device 500. The processor 520 may be implemented in hardware, firmware, or a combination of hardware and software. The processor 520 may be a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or another type of processing component. In some implementations, the processor 520 includes one or more processors that can be programmed to perform functions. The memory 530 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by the processor 520.
[0049] Storage component 540 stores information and / or software related to the operation and use of device 500. For example, storage component 540 may include a hard disk (e.g., a magnetic disk, optical disk, magneto-optical disk, and / or solid-state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cartridge, magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive. Input component 550 includes components that enable device 500 to receive information, such as by user input (e.g., a touchscreen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone). Additionally or alternatively, input component 550 may include sensors for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator). Output component 560 includes components that provide output information from device 500 (e.g., a display, a speaker, and / or one or more light-emitting diodes (LEDs)).
[0050] Communications interface 570 includes transceiver-like components (e.g., a transceiver and / or a separate receiver and transmitter) that enable device 500 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communications interface 570 may enable device 500 to receive information from and / or provide information to another device. For example, communications interface 570 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, etc.
[0051] Device 500 may perform one or more processes described herein. Device 500 may perform these processes in response to processor 520 executing software instructions stored by a non-transitory computer-readable medium, such as memory 530 and / or storage component 540. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
[0052] The software instructions may be loaded into memory 530 and / or storage component 540 from another computer-readable medium or from another device via communication interface 570. When executed, the software instructions stored in memory 530 and / or storage component 540 may cause processor 520 to perform one or more processes described herein.
[0053] Additionally, or instead, hardwired circuitry may be used in place of or in combination with software instructions to implement one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
[0054] The number and arrangement of components shown in Figure 5 are provided as an example. In practice, device 500 may include other components than those shown in Figure 5, fewer components than those shown in Figure 5, different components than those shown in Figure 5, or components arranged differently than those shown in Figure 5. Additionally or alternatively, one set of components (e.g., one or more components) of device 500 may perform one or more functions that are described as being performed by another set of components of device 500.
[0055] In an embodiment, any one of the operations or processes of Figures 1, 2, and 3 may be performed by or using any one of the elements shown in Figures 4 and 5.
[0056] According to an example embodiment, the initial or current SPS TBS may be adjusted based on the size of the compressed data packet, so that unused resources of the compressed data packet may be utilized.
[0057] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
[0058] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail. Furthermore, one or more of the above components described above may be implemented as instructions stored on a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-transitory storage medium (or media) having computer-readable program instructions for causing a processor to perform operations.
[0059] A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction-execution device. A computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge-in-groove structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed as a transitory signal itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0060] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may comprise copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0061] The computer-readable program code / instructions for performing operations may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection to an external computer may be made (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry to perform aspects or operations.
[0062] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to create a machine, whereby the instructions, executed by the processor of the computer or other programmable data processing apparatus, generate means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium that can instruct a computer, programmable data processing apparatus, and / or other device to function in a particular manner, whereby the computer-readable storage medium having instructions stored therein comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0063] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to create a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus, or other device perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0064] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, comprising one or more executable instructions for implementing specified logical functions. The methods, computer systems, and computer-readable media may include blocks other than, fewer than, different from, or arranged differently than those shown in the figures. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may actually be executed concurrently or substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by dedicated hardware-based systems that perform the specified functions or acts or perform a combination of dedicated hardware and computer instructions.
[0065] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not intended to limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it will be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.
Claims
1. 1. A method for semi-persistent scheduling (SPS) in a wireless network, the method comprising: Setting the current SPS transport block size (TBS); compressing the data packets; determining whether to adjust the current SPS TBS based on the size of the compressed data packet; and adjusting the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on determining to adjust the current SPS TBS. method.
2. The current SPS TBS is set based on a guaranteed bit rate of the wireless network; The method of claim 1.
3. configuring a predetermined hysteresis bit value representing the difference between the SPS TBS and the size of the compressed data packet; The method of claim 1.
4. Determining whether to adjust the current SPS TBS includes: determining to adjust the current SPS TBS based on a difference between the size of the current SPS TBS and the size of the compressed data packet being greater than the predetermined hysteresis bit value; The method of claim 3.
5. It is further determined that the current SPS TBS should be adjusted based on the sum of the next SPS TBS and the predetermined hysteresis bit value being greater than the current SPS TBS, or based on the difference between the next SPS TBS and the predetermined hysteresis bit value being less than the current SPS TBS. The method of claim 4.
6. Determining whether to adjust the current SPS TBS includes: the difference between the current SPS TBS and the size of the compressed data packet is less than or equal to the predetermined hysteresis bit value; the sum of the next SPS TBS and the predetermined hysteresis bit value is less than or equal to the current SPS TBS; and determining not to adjust the current SPS TBS based on at least one of: a difference between the next SPS TBS and the predetermined hysteresis bit value being equal to or greater than the current SPS TBS; The method of claim 3.
7. Determining whether to adjust the current SPS TBS may be performed by determining whether the data packet: Packet Data Convergence Protocol (PDCP) control packets, Robust Header Compression (RoHC) feedback packets, and determining not to adjust the current SPS TBS based on at least one of a silence indicator descriptor (SID) packet; The method of claim 1.
8. the next SPS TBS is determined based on the sum of the current SPS TBS multiplied by a first percentage value and the size of the compressed data packet multiplied by a second percentage value; The method of claim 1.
9. the first percentage value is greater than the second percentage value; The method of claim 8.
10. dequeuing the compressed first data packet; determining whether to adjust the current SPS TBS is performed after the compressed data packet is dequeued; The method of claim 1.
11. 1. A system for semi-persistent scheduling (SPS) in a wireless network, the system comprising: at least one memory for storing instructions; and Set the current SPS transport block size (TBS), Compresses data packets, determining whether to adjust the current SPS TBS based on the size of the compressed data packet; and adjusting the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on determining to adjust the current SPS TBS; at least one processor configured to execute the instructions; system.
12. The current SPS TBS is set based on a guaranteed bit rate of the wireless network; The system of claim 11.
13. the at least one processor is further configured to execute the instructions to configure a predetermined hysteresis bit value representing a difference between an SPS TBS and a size of a compressed data packet. The system of claim 11.
14. The at least one processor is further configured to execute the instructions: determine whether to adjust the current SPS TBS by determining to adjust the current SPS TBS based on a difference between the current SPS TBS and the size of the compressed data packet being greater than the predetermined hysteresis bit value. The system of claim 13.
15. It is further determined that the current SPS TBS should be adjusted based on the sum of the next SPS TBS and the predetermined hysteresis bit value being greater than the current SPS TBS, or based on the difference between the next SPS TBS and the predetermined hysteresis bit value being less than the current SPS TBS. The system of claim 14.
16. The at least one processor further comprises: the difference between the current SPS TBS and the size of the compressed data packet is less than or equal to the predetermined hysteresis bit value; the sum of the next SPS TBS and the predetermined hysteresis bit value is less than or equal to the current SPS TBS; and a difference between the next SPS TBS and the predetermined hysteresis bit value is greater than or equal to the current SPS TBS, by determining not to adjust the current SPS TBS based on at least one of the following: The system of claim 13.
17. The at least one processor further comprises: Packet Data Convergence Protocol (PDCP) control packets, Robust Header Compression (RoHC) feedback packets, and a silence indicator descriptor (SID) packet, or a silence indicator descriptor (SID) packet. The system of claim 11.
18. the next SPS TBS is determined based on the sum of the current SPS TBS multiplied by a first percentage value and the size of the compressed data packet multiplied by a second percentage value; The system of claim 11.
19. the first percentage value is greater than the second percentage value; 20. The system of claim 18.
20. When executed by at least one processor, the method causes the at least one processor to: Initialize the current SPS transport block size (TBS); Compresses data packets, determining whether to adjust the current SPS TBS based on the size of the compressed data packet; and storing instructions for adjusting the current SPS TBS to a next SPS TBS that is smaller than the current SPS TBS based on the determination to adjust the current SPS TBS; A non-transitory computer-readable storage medium.
Citation Information
Patent Citations
Apparatus and methods for semi-persistent scheduling
EP2838297A1
Buffer status reporting in mobile communication systems
JP2012523146A
User device
WO2020157976A1