Uplink data processing method and device, terminal and storage medium

By determining the actual amount of data sent by each logical channel before grouping packets, the problems of uplink data processing logic complexity and processor overhead in the prior art are solved, and more efficient data processing is achieved.

CN119893707APending Publication Date: 2025-04-25CHINA GRIDCOM
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411885111.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-18
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

The prior art requires two-pass traversal of logical channels during uplink data processing, which increases the logical complexity of processing and processor overhead.

Method used

The actual amount of data sent for each logical channel is determined before the packet is grouped, and only one logical channel traversal is required during the packet grouping process to complete the uplink data processing.

Benefits of technology

It reduces the logical complexity of uplink data processing and processor overhead, and improves processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119893707A_ABST
    Figure CN119893707A_ABST
Patent Text Reader

Abstract

The invention discloses an uplink data processing method and device, a terminal and a storage medium, and the uplink data processing method comprises the steps: under the condition that uplink authorization is received, determining the current transmittable data volume of each logic channel, and obtaining the uplink to-be-transmitted data volume of each logic channel, the uplink to-be-transmitted data volume of each logic channel is determined when the uplink buffer area receives an uplink data packet; determining the actual sending data volume of each logic channel according to the uplink data volume to be sent of each logic channel, the current data volume capable of being sent of each logic channel and the uplink authorization; and according to the priority of each logic channel and the actual sending data volume of each logic channel, sequentially obtaining data packets from the corresponding logic channel, and grouping the data packets of the corresponding logic channel. According to the method, the traversal of the logic channels only needs to be carried out once according to the actual sending data volume of each logic channel in the packing process, so that the logic complexity of uplink data processing is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to an uplink data processing method, device, terminal and storage medium. Background Art

[0002] UE (User Equipment) can establish multiple radio bearers, each of which corresponds to a logical channel. After receiving the uplink resources from the network side, the MAC (Media Access Control) layer usually needs to traverse the logical channels twice due to the requirements of uplink processing. During the processing of uplink data, each time the logical channel is switched, it is necessary to obtain the channel parameters, configure the channel parameters to the corresponding registers of the hardware, and obtain the buffer status and data to calculate the authorization required for packet assembly, which increases the logical complexity of the uplink data processing process. Summary of the invention

[0003] The present invention aims to solve at least one of the technical problems in the related art to a certain extent. To this end, the first object of the present invention is to propose an uplink data processing method, which determines the actual amount of data sent by each logical channel before packet assembly, and then only needs to traverse the logical channels once according to the actual amount of data sent by each logical channel during the packet assembly process to complete the uplink data processing, thereby reducing the logic complexity of uplink data processing and the processor overhead.

[0004] A second object of the present invention is to provide a computer-readable storage medium.

[0005] The third objective of the present invention is to provide a terminal.

[0006] A fourth objective of the present invention is to provide an uplink data processing device.

[0007] To achieve the above-mentioned purpose, according to an embodiment of the first aspect of the present invention, an uplink data processing method is proposed, comprising: upon receiving an uplink authorization, determining the current amount of transmittable data of each logical channel, and obtaining the amount of uplink data to be sent of each logical channel, wherein the amount of uplink data to be sent of each logical channel is determined when the uplink buffer receives an uplink data packet; determining the actual amount of data sent of each logical channel according to the amount of uplink data to be sent of each logical channel, the current amount of transmittable data of each logical channel and the uplink authorization; obtaining data packets from the corresponding logical channels in turn according to the priority of each logical channel and the actual amount of data sent of each logical channel, and packetizing the data packets of the corresponding logical channels.

[0008] According to the uplink data processing method of an embodiment of the present invention, when an uplink authorization is received, the current amount of data that can be sent for each logical channel is determined, and the amount of uplink data to be sent for each logical channel is obtained, wherein the amount of uplink data to be sent for each logical channel is determined when the uplink buffer receives an uplink data packet, and the actual amount of data sent for each logical channel is determined based on the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization, and according to the priority of each logical channel, the data packets are obtained from the corresponding logical channels in turn according to the actual amount of data sent for each logical channel, and the data packets of the corresponding logical channels are grouped. Thus, the actual amount of data sent for each logical channel is determined before grouping, and then in the grouping process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel, and the uplink data processing can be completed, thereby reducing the logical complexity of uplink data processing and the processor overhead.

[0009] According to one embodiment of the present invention, the actual amount of data sent for each logical channel is determined based on the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization, including: determining the initial data amount of each logical channel based on the amount of uplink data to be sent for each logical channel and the current amount of data that can be sent for each logical channel; determining the actual amount of data sent for each logical channel in turn according to the initial data amount of each logical channel and the uplink authorization according to the priority of each logical channel; and updating the current amount of data that can be sent for each logical channel according to the actual amount of data sent for each logical channel.

[0010] According to one embodiment of the present invention, the actual transmission data amount of each logical channel is determined in turn according to the initial data amount of each logical channel and the uplink authorization, including: taking the smaller value of the initial data amount of the logical channel of the current priority and the uplink authorization as the transmittable data amount of the corresponding logical channel, and updating the uplink authorization according to the difference between the uplink authorization and the transmittable data amount of the logical channel of the current priority, and updating the uplink data amount of the logical channel of the current priority according to the difference between the uplink data amount to be transmitted of the logical channel of the current priority and the transmittable data amount of the logical channel of the current priority; updating the uplink data amount to be transmitted of the logical channel of the current priority according to the difference between the uplink data amount to be transmitted of the logical channel of the current priority and the transmittable data amount of the logical channel of the current priority; updating the uplink data amount to be transmitted of the logical channel of the current priority according to the updated uplink authorization and the next priority. The initial data amount of the logical channel of the priority level determines the transmittable data amount of the logical channel of the next priority level, and the updated uplink authorization is updated again according to the difference between the updated uplink authorization and the transmittable data amount of the logical channel of the next priority level, and the uplink data amount to be sent of the logical channel of the next priority level is updated according to the difference between the uplink data amount to be sent of the logical channel of the next priority level and the transmittable data amount of the logical channel of the next priority level, until the updated uplink authorization is less than or equal to zero and the transmittable data amount of all logical channels is determined, and the transmittable data amount of each logical channel is determined as the actual transmit data amount of each logical channel.

[0011] According to one embodiment of the present invention, the amount of transmittable data of a logical channel of next priority is determined based on an updated uplink authorization and the initial data amount of the logical channel of next priority, including: when the updated uplink authorization is greater than zero, the smaller value of the initial data amount of the logical channel of next priority and the updated uplink authorization is used as the amount of transmittable data of the logical channel of next priority; or when the updated uplink authorization is less than or equal to zero, the initial data amount of the logical channel of next priority is determined to be zero.

[0012] According to one embodiment of the present invention, when the updated uplink authorization is greater than zero and the amount of data that can be transmitted for all logical channels has been determined, the method further includes: updating the amount of data that can be transmitted for the corresponding logical channel in turn according to the priority of each logical channel and the updated uplink data to be sent for each logical channel and the updated uplink authorization, and updating the updated uplink authorization again according to the difference between the updated uplink authorization and the change value of the amount of data that can be transmitted for the corresponding logical channel until the updated uplink authorization is less than or equal to zero, stopping updating the amount of data that can be transmitted for the remaining logical channels, and determining the amount of data that can be transmitted for each logical channel as the actual amount of data transmitted for each logical channel.

[0013] According to one embodiment of the present invention, the amount of transmittable data of the corresponding logical channel is updated in sequence according to the updated amount of uplink data to be sent of each logical channel and the updated uplink authorization, including: taking the smaller value of the updated amount of uplink data to be sent of each logical channel and the updated uplink authorization as the change value of the corresponding logical channel; and updating the amount of transmittable data of the corresponding logical channel according to the sum of the amount of transmittable data of each logical channel and the change value of the corresponding logical channel.

[0014] According to one embodiment of the present invention, the initial data amount of each logical channel is determined based on the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel, including: taking the smaller value of the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of the corresponding logical channel as the initial data amount of the corresponding logical channel.

[0015] According to one embodiment of the present invention, when the uplink buffer receives an uplink data packet, the method also includes: determining the data packet of each logical channel according to the configuration parameters of each logical channel; determining the amount of uplink data to be sent for each logical channel according to the data packet of each logical channel, and storing the amount of uplink data to be sent for each logical channel.

[0016] According to one embodiment of the present invention, the current amount of data that can be sent for each logical channel is determined, including: updating the amount of data that can be sent for the corresponding logical channel according to the product of the priority bit rate of each logical channel and a preset time length, wherein the preset time length is the time difference between the current time and the last change time of the amount of data that can be sent for the corresponding logical channel; when the updated amount of data that can be sent for the corresponding logical channel is greater than a preset threshold, determining the current amount of data that can be sent for the corresponding logical channel to be the preset threshold, wherein the preset threshold is the token depth of the corresponding logical channel; or when the updated amount of data that can be sent for the corresponding logical channel is less than or equal to the preset threshold, determining the current amount of data that can be sent for the corresponding logical channel to be the updated amount of data that can be sent for the corresponding logical channel.

[0017] According to one embodiment of the present invention, data packets are acquired from corresponding logical channels in sequence according to the actual amount of data sent by each logical channel, including: when the actual amount of data sent by the logical channel of the current priority is greater than zero, data packets are acquired from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel; or when the actual amount of data sent by the logical channel of the current priority is equal to zero, it is determined whether the actual amount of data sent by the logical channel of the next priority is greater than 0, and when the actual amount of data sent by the logical channel of the next priority is greater than zero, data packets are acquired from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel, until the acquisition of data packets for all logical channels is completed.

[0018] To achieve the above-mentioned purpose, according to a second aspect of the present invention, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is processed by a processor, the uplink data processing method of any of the above-mentioned embodiments is executed.

[0019] According to the computer-readable storage medium of an embodiment of the present invention, by executing a computer program of the above-mentioned uplink data processing method, the actual amount of data sent for each logical channel is determined before packet assembly, and then during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel to complete the uplink data processing, thereby reducing the logical complexity of uplink data processing and the processor overhead.

[0020] To achieve the above-mentioned purpose, according to an embodiment of the third aspect of the present invention, a terminal is proposed, comprising a memory, a processor, and an uplink data processing program stored in the memory and executable on the processor. When the processor executes the uplink data processing program, the uplink data processing method of any of the aforementioned embodiments is implemented.

[0021] According to the terminal of an embodiment of the present invention, a computer program of the uplink data processing method is executed by a processor to determine the actual amount of data sent for each logical channel before packet assembly. Then, during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel to complete the uplink data processing, thereby reducing the logical complexity of the uplink data processing and the processor overhead.

[0022] To achieve the above-mentioned purpose, an uplink data processing device is proposed according to an embodiment of the fourth aspect of the present invention, comprising: a first determination module, used to determine the current amount of data that can be sent for each logical channel when an uplink authorization is received; an acquisition module, used to obtain the amount of uplink data to be sent for each logical channel when an uplink authorization is received, wherein the amount of uplink data to be sent for each logical channel is determined when the uplink buffer receives an uplink data packet; a second determination module, used to determine the actual amount of data sent for each logical channel based on the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel and the uplink authorization; a packetization module, used to obtain data packets from the corresponding logical channels in turn according to the priority of each logical channel and the actual amount of data sent for each logical channel, and packetize the data packets of the corresponding logical channels.

[0023] According to the uplink data processing device of the embodiment of the present invention, the current amount of data that can be sent of each logical channel is determined by the first determination module when the uplink authorization is received, and the amount of uplink data to be sent of each logical channel is obtained by the acquisition module when the uplink authorization is received, wherein the amount of uplink data to be sent of each logical channel is determined when the uplink buffer receives the uplink data packet, and the actual amount of data sent of each logical channel is determined by the second determination module according to the amount of uplink data to be sent of each logical channel, the current amount of data that can be sent of each logical channel and the uplink authorization, and the data packets are obtained from the corresponding logical channels in sequence according to the priority of each logical channel and the actual amount of data sent of each logical channel by the packet assembly module, and the data packets of the corresponding logical channels are packetized. Thus, the actual amount of data sent of each logical channel is determined before packet assembly, and then only one logical channel traversal is required according to the actual amount of data sent of each logical channel during the packet assembly process, so that the uplink data processing can be completed, thereby reducing the logic complexity of uplink data processing and the processor overhead.

[0024] Additional aspects and advantages of the present invention will be given in part in the following description and in part will be obvious from the following description, or will be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 It is a flowchart of an uplink data processing method in the related art;

[0026] Figure 2 is a flow chart of an uplink data processing method according to an embodiment of the present invention;

[0027] Figure 3 is a flow chart of an uplink data processing method according to a specific embodiment of the present invention;

[0028] Figure 4 is a system schematic diagram of a terminal according to an embodiment of the present invention;

[0029] Figure 5 It is a schematic diagram of the structure of an uplink data processing device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0030] Embodiments of the present invention are described in detail below, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to be used to explain the present invention, and should not be construed as limiting the present invention.

[0031] It should be noted that this application is made based on the inventor's understanding and research of the following issues:

[0032] UE can establish multiple radio bearers, each of which corresponds to a logical channel. When a logical channel is established, the base station will send logical channel parameters to the UE in order to control the QOS (Quality of Service) of the logical channel. The scope of these parameters is the logical channel. These parameters include:

[0033] 1. The priority of the logical channel, when processing uplink data, is always from high priority to low priority;

[0034] 2. The Prioritized Bit Rate (PBR) of the logical channel is used to control the data that can be placed in the first pass of the packet group;

[0035] 3. The BSD (Bucket Size Duration) of the logical channel, together with the PBR, determines the token bucket depth of the logical channel.

[0036] In addition, each logical channel maintains a parameter Bj, which indicates the number of tokens available in the current token bucket of the logical channel. Each token number usually corresponds to 1 byte of data. When the uplink processing starts, the parameter Bj of all logical channels needs to be updated.

[0037] Figure 1 The MAC layer packet grouping method in the related art is shown, such as Figure 1 As shown, the MAC layer packet assembly method includes the following steps:

[0038] S101, receiving uplink authorization.

[0039] S102: Update the parameters Bj of all logical channels.

[0040] S103: Search for the next logical channel according to the priority.

[0041] S104, obtaining configuration parameters of the logical channel of the current priority, and configuring parameters of the corresponding hardware.

[0042] S105, determine whether the parameter Bj and the data volume of the logical channel of the current priority are both greater than 0, if yes, execute step S106, if not, return to step S103.

[0043] S106, obtaining data packets from the uplink buffer according to the parameter Bj of the logical channel of the current priority, assembling the data packets obtained from the uplink buffer, and decreasing the uplink grant according to the parameter Bj of the logical channel of the current priority.

[0044] S107, determine whether the uplink authorization is greater than 0, if yes, execute step S108, if not, execute step S116.

[0045] S108, determine whether the logical channel of the current priority is the last logical channel, if yes, execute step S109, if not, return to step S103.

[0046] S109, return to the logical channel with the highest priority.

[0047] S110, searching for the next logical channel according to the priority.

[0048] S111, obtaining configuration parameters of a logical channel of a current priority, and configuring parameters of corresponding hardware.

[0049] S112, determine whether the data volume of the logical channel of the current priority is greater than 0, if yes, execute step S113, if not, return to step S110.

[0050] S113, obtaining data packets from the uplink buffer, grouping the data packets obtained from the uplink buffer, and decreasing the uplink authorization according to the amount of obtained data.

[0051] S114, determine whether the uplink authorization is greater than 0, if yes, execute step S115, if not, execute step S116.

[0052] S115, determine whether the logical channel of the current priority is the last logical channel, if yes, execute step S116, if not, return to step S110.

[0053] S116, end the package assembly.

[0054] Therefore, the MAC layer packet assembly in the related technology needs to traverse the logical channels twice. The first pass obtains the uplink data of all logical channels with Bj>0, and the second pass does not care about Bj. As long as the uplink authorization is not consumed and there is data on the logical channel, the data packet of the logical channel will be placed in the packet assembly module.

[0055] Since uplink packet assembly has a strict time limit, this time is related to the protocol. When the packet assembly time remains unchanged, the more instructions there are for uplink data processing, the higher the main frequency of the protocol processor, and the higher the requirements for the chip. In the current uplink data processing process, each time the logical channel is switched, it is necessary to obtain the channel parameters and configure the channel parameters to the corresponding registers of the hardware, as well as obtain the buffer status and data to calculate the authorization required for packet assembly. The large number of uplink data processing instructions increases the logic complexity of the uplink data processing process, and the requirements for the processor are high, and it is necessary to use high-cost, high-complexity chips, which increases the processor overhead.

[0056] Based on this, the embodiments of the present invention provide an uplink data processing method, device, terminal and storage medium, which determine the actual amount of data sent for each logical channel before packet assembly, and then during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel to complete the uplink data processing, thereby reducing the logical complexity of uplink data processing and the processor overhead.

[0057] The following describes an uplink data processing method, an apparatus, a terminal, and a storage medium according to embodiments of the present invention with reference to the accompanying drawings.

[0058] Figure 2 FIG. 1 is a flow chart of an uplink data processing method according to an embodiment of the present invention. Figure 2 As shown, the uplink data processing method includes:

[0059] S201, upon receiving an uplink authorization, determine the current transmittable data amount of each logical channel, and obtain the uplink data amount to be sent of each logical channel, wherein the uplink data amount to be sent of each logical channel is determined when the uplink buffer receives an uplink data packet.

[0060] Specifically, when the uplink buffer of the user terminal receives an uplink data packet, the MAC layer determines the data packets to be sent, the uplink data packet data and the packet header of each logical channel. Therefore, the amount of uplink data to be sent of each logical channel can be determined based on the data packets to be sent of each logical channel, and then the MAC layer stores the amount of uplink data to be sent of each logical channel in the corresponding register or processor. The current amount of data that can be sent for each logical channel is the parameter Bj of each logical channel. After receiving the uplink authorization sent by the physical layer, the MAC layer updates the parameter Bj of all logical channels and obtains the amount of uplink data to be sent for each logical channel from the corresponding register or processor.

[0061] In some embodiments, when the uplink buffer receives an uplink data packet, the method also includes: determining the data packet of each logical channel according to the configuration parameters of each logical channel; determining the amount of uplink data to be sent for each logical channel according to the data packet of each logical channel, and storing the amount of uplink data to be sent for each logical channel.

[0062] Specifically, each logical channel has its own specific configuration parameters, which define the structure and size of the data packet. According to these configuration parameters, the MAC layer can generate data packets that meet the requirements of the logical channel. Once the data packet is determined, the MAC layer can calculate the amount of uplink data to be sent based on the size and number of the data packet. Among them, the configuration parameters are the RLC-Config, PDCP-Config and other parameters carried when the wireless bearer is established on the network side. These parameters are used to confirm the length and integrity of the packet headers of each layer. The RLC-Config parameters are mainly used to configure the relevant parameters of the RLC (Radio Link Control) layer, and the PDCP-Config parameters are mainly used to configure the relevant parameters of the PDCP (Packet Data Convergence Protocol) layer.

[0063] In some embodiments, determining the current amount of data that can be sent for each logical channel includes: updating the amount of data that can be sent for the corresponding logical channel according to the product of the priority bit rate of each logical channel and a preset time length, wherein the preset time length is the time difference between the current time and the last change time of the amount of data that can be sent for the corresponding logical channel; when the updated amount of data that can be sent for the corresponding logical channel is greater than a preset threshold, determining the current amount of data that can be sent for the corresponding logical channel to be the preset threshold, wherein the preset threshold is the token depth of the corresponding logical channel; or when the updated amount of data that can be sent for the corresponding logical channel is less than or equal to the preset threshold, determining the current amount of data that can be sent for the corresponding logical channel to be the updated amount of data that can be sent for the corresponding logical channel.

[0064] Specifically, firstly, the product of the PBR of each logical channel and the corresponding preset time length (i.e., the time that has passed since the last parameter Bj of the corresponding logical channel was increased) is calculated, and then the sum of the amount of data that can be sent of the corresponding logical channel and the product of the PBR of the logical channel and the corresponding preset time length is calculated, and the amount of data that can be sent of the corresponding logical channel is updated to the corresponding sum. According to the PBR and BSD of each logical channel, the token depth (i.e., the preset threshold) of each logical channel can be calculated to determine whether the updated amount of data that can be sent of each logical channel is greater than the preset threshold. If the updated amount of data that can be sent of the logical channel is greater than the preset threshold, the current amount of data that can be sent of the corresponding logical channel is set to the preset threshold; if the updated amount of data that can be sent of the logical channel is less than or equal to the preset threshold, the current amount of data that can be sent of the corresponding logical channel is set to the updated amount of data that can be sent.

[0065] S202: Determine the actual amount of data to be sent for each logical channel according to the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization.

[0066] Specifically, before obtaining data packets from each logical channel, the actual amount of data sent for each logical channel can be determined in order of priority from high to low, according to the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization. If the uplink authorization is sufficient, each logical channel can send data according to the corresponding amount of uplink data to be sent; if the uplink authorization is insufficient, the actual amount of data sent for each logical channel can be calculated according to the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization, so as to use up the uplink authorization.

[0067] S203 , according to the priority of each logical channel and the actual amount of data sent by each logical channel, sequentially obtain data packets from the corresponding logical channels, and group the data packets of the corresponding logical channels.

[0068] Specifically, after the actual amount of data sent for each logical channel is determined, the MAC layer obtains data packets from the corresponding logical channels in order from high to low priority according to the actual amount of data sent for each logical channel, and assembles the data packets after obtaining the data from the corresponding logical channels. Therefore, when assembling packets at the MAC layer, it only needs to traverse all logical channels in turn according to the actual amount of data sent for each logical channel to complete the uplink packet assembly, thereby reducing the number of uplink packet assembly instructions.

[0069] In the above embodiment, the actual amount of data sent by each logical channel is determined before packet assembly, so that during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent by each logical channel to complete the uplink data processing, thereby reducing the number of uplink packet assembly instructions, thereby reducing the logical complexity of uplink data processing, and since the number of uplink packet assembly instructions is reduced, the main frequency of the processor can be reduced, thereby selecting a lower cost chip, thereby reducing the processor overhead.

[0070] In some embodiments, the actual amount of data sent for each logical channel is determined based on the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization, including: determining the initial data amount of each logical channel based on the amount of uplink data to be sent for each logical channel and the current amount of data that can be sent for each logical channel; determining the actual amount of data sent for each logical channel in turn according to the initial data amount of each logical channel and the uplink authorization according to the priority of each logical channel; and updating the current amount of data that can be sent for each logical channel according to the actual amount of data sent for each logical channel.

[0071] Specifically, first, the initial data amount of each logical channel is determined according to the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel, for example, the smaller value of the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of the corresponding logical channel is used as the initial data amount of the corresponding logical channel. Then, in the order of the priority of each logical channel from high to low, the actual amount of data sent of each logical channel (i.e., the uplink resource of each logical channel) is determined in turn according to the initial data amount of each logical channel and the uplink authorization, until the uplink authorization is exhausted or the data of all logical channels is sent. After that, the current amount of data that can be sent of each logical channel is updated according to the actual amount of data sent of each logical channel, so that the current amount of data that can be sent of each logical channel is consistent with the actual amount of data sent of the corresponding logical channel, and the MAC layer can obtain uplink data according to the actual amount of data sent of each logical channel. If the current transmittable data volume of each logical channel is not updated, and the current transmittable data volume of each logical channel is less than the actual transmit quantity of the corresponding logical channel, the MAC layer can only obtain uplink data based on the current transmittable data volume of each logical channel, and the uplink authorization or the data volume of all logical channels cannot be fully consumed.

[0072] In some embodiments, the initial data amount of each logical channel is determined based on the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel, including: taking the smaller value of the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of the corresponding logical channel as the initial data amount of the corresponding logical channel.

[0073] It can be understood that using the smaller value between the uplink data amount to be sent of each logical channel and the current data amount that can be sent of the corresponding logical channel as the initial data amount of the corresponding logical channel can ensure that the logical channel does not send data exceeding its data amount to be sent or data amount that can be sent.

[0074] In some embodiments, the actual amount of data to be sent for each logical channel is determined in turn according to the initial data amount and the uplink authorization of each logical channel, including: taking the smaller value of the initial data amount of the logical channel of the current priority and the uplink authorization as the amount of data that can be sent for the corresponding logical channel, and updating the uplink authorization according to the difference between the uplink authorization and the amount of data that can be sent for the logical channel of the current priority, and updating the uplink amount of data to be sent for the logical channel of the current priority according to the difference between the amount of uplink data to be sent for the logical channel of the current priority and the amount of data that can be sent for the logical channel of the current priority; and updating the amount of uplink data to be sent for the logical channel of the current priority according to the updated uplink authorization and the next priority. The initial data amount of the logical channel of the next priority is used to determine the transmittable data amount of the logical channel of the next priority, and the updated uplink authorization is updated again according to the difference between the updated uplink authorization and the transmittable data amount of the logical channel of the next priority, and the uplink data amount to be sent of the logical channel of the next priority is updated according to the difference between the uplink data amount to be sent of the logical channel of the next priority and the transmittable data amount of the logical channel of the next priority, until the updated uplink authorization is less than or equal to zero and the transmittable data amount of all logical channels is determined, and the transmittable data amount of each logical channel is determined as the actual transmit data amount of each logical channel.

[0075] Taking the case that there are three logical channels, first determine the amount of data that can be sent for the logical channel of the first priority, which is Dj1=min(DSHj1, Grant), where DSHj1 is the initial data amount of the logical channel of the first priority, and Grant is the uplink grant. The uplink data amount to be sent for the logical channel of the first priority is updated to BSj1=BSj1-Dj1, and the uplink grant is updated to Grant=Grant-Dj1. Then determine the amount of data that can be sent for the logical channel of the second priority, which is Dj2=min(DSHj2, Grant), where DSHj2 is the initial data amount of the logical channel of the second priority, and the uplink data amount to be sent for the logical channel of the second priority is updated to BSj2=BSj2-Dj2, and the uplink grant is updated to Grant=Grant-Dj2. Then determine the amount of data that can be sent for the third priority logical channel, which is Dj3=min(DSHj3, Grant), where DSHj3 is the initial data amount of the third priority logical channel, and update the uplink data amount to be sent for the third priority logical channel to BSj3=BSj3-Dj3, and update the uplink grant to Grant=Grant-Dj3. At this point, the amount of data that can be sent for all logical channels is determined. If the uplink grant is less than or equal to 0 at this time, it indicates that the uplink grant has been consumed, so the amount of data that can be sent for each logical channel can be determined as the actual amount of data sent for each logical channel. The MAC layer obtains data packets based on the actual amount of data sent for each logical channel.

[0076] In some embodiments, the amount of data that can be transmitted for a logical channel of the next priority is determined based on an updated uplink authorization and the initial data amount of the logical channel of the next priority, including: when the updated uplink authorization is greater than zero, the smaller value of the initial data amount of the logical channel of the next priority and the updated uplink authorization is used as the amount of data that can be transmitted for the logical channel of the next priority; or when the updated uplink authorization is less than or equal to zero, the initial data amount of the logical channel of the next priority is determined to be zero.

[0077] For example, assuming that after the amount of data that can be sent for the logical channel of the first priority is determined, the updated uplink grant is Grant = Grant-Dj1>0, indicating that the uplink grant is still remaining, then the amount of data that can be sent for the logical channel of the second priority is Dj2 = min(DSHj2, Grant). Assuming that after the amount of data that can be sent for the logical channel of the second priority is determined, the updated uplink grant is Grant = Grant-Dj2≤0, indicating that the uplink grant has been consumed, then the amount of data that can be sent for the logical channel of the third priority is Dj3 = 0.

[0078] In some embodiments, when the updated uplink authorization is greater than zero and the amount of data that can be transmitted for all logical channels has been determined, the method further includes: updating the amount of data that can be transmitted for the corresponding logical channels in turn according to the priority of each logical channel and the updated uplink data to be transmitted for each logical channel and the updated uplink authorization, and updating the updated uplink authorization again according to the difference between the updated uplink authorization and the change in the amount of data that can be transmitted for the corresponding logical channel until the updated uplink authorization is less than or equal to zero, stopping updating the amount of data that can be transmitted for the remaining logical channels, and determining the amount of data that can be transmitted for each logical channel as the actual amount of data transmitted for each logical channel.

[0079] Specifically, the amount of data that can be transmitted for all logical channels is determined. If the uplink authorization is greater than 0 at this time, it indicates that there is an uplink authorization remaining. Then, the amount of data that can be transmitted for each logical channel is determined again in order of the priority of each logical channel from high to low. After the amount of data that can be transmitted for each logical channel is determined again, there is no remaining data in the logical channel. Regardless of whether there is an uplink authorization remaining, there is no need to determine the amount of data that can be transmitted for each logical channel again.

[0080] In some embodiments, the amount of data that can be sent of the corresponding logical channel is updated in sequence according to the updated amount of uplink data to be sent and the updated uplink authorization of each logical channel, including: taking the smaller value of the updated amount of uplink data to be sent of each logical channel and the updated uplink authorization as the change value of the corresponding logical channel; updating the amount of data that can be sent of the corresponding logical channel according to the sum of the amount of data that can be sent of each logical channel and the change value of the corresponding logical channel.

[0081] It can be understood that if the updated amount of uplink data to be sent of the logical channel is less than the updated uplink authorization, it indicates that all the remaining data of the logical channel can be sent. Therefore, the updated amount of uplink data to be sent of the logical channel is used as the change value of the corresponding logical channel; if the updated amount of uplink data to be sent of the logical channel is less than or equal to the updated uplink authorization, it indicates that there is not enough uplink authorization and the actual amount of data sent is limited by the uplink authorization. Therefore, the updated uplink authorization is used as the change value of the corresponding logical channel. After determining the change value of the logical channel, the amount of data that can be sent of the corresponding logical channel is updated to the sum of the change value of the corresponding logical channel and the amount of data that can be sent of the corresponding logical channel.

[0082] Taking three logical channels as an example, when the amount of data that can be transmitted for the three logical channels is determined and there is remaining uplink authorization, the amount of data that can be transmitted for the logical channel of the first priority is first updated to Dj1=Dj1+min(BSj1, Grant), and the uplink authorization is updated to Grant=Grant-min(BSj1, Grant). If the updated uplink authorization Grant = Grant-min(BSj1, Grant)>0, then continue to update the amount of data that can be transmitted of the logical channel of the second priority, update the amount of data that can be transmitted of the logical channel of the second priority to Dj2=Dj2+min(BSj2, Grant), and update the uplink authorization to Grant=Grant-min(BSj2, Grant); if the updated uplink authorization Grant=Grant-min(BSj1, Grant)≤0, the uplink authorization has been consumed, so the amount of data that can be transmitted of each logical channel can be determined as the actual amount of data transmitted of each logical channel, that is, the actual amount of data transmitted of the logical channel of the first priority is Dj1=Dj1+min(BSj1, Grant), the actual amount of data transmitted of the logical channel of the second priority is Dj2=min(DSHj2, Grant), and the actual amount of data transmitted of the logical channel of the third priority is Dj3=min(DSHj3, Grant). If the updated uplink grant Grant = Grant-min(BSj2, Grant) > 0, then continue to update the amount of data that can be sent for the third priority logical channel, update the amount of data that can be sent for the third priority logical channel to Dj3 = Dj3 + min(BSj3, Grant), and update the uplink grant to Grant = Grant-min(BSj3, Grant). At this time, all logical channels have no remaining data. Therefore, the actual amount of data sent for the first priority logical channel is Dj1 = Dj1 + min(BSj1, Grant), and the actual amount of data sent for the second priority logical channel is Dj2 = Dj2 + min(BSj2, Grant). n(BSj2, Grant), the actual amount of data sent by the logical channel of the third priority is Dj3=Dj3+min(BSj3, Grant); if the updated uplink grant Grant=Grant-min(BSj2, Grant)≤0, the uplink grant has been consumed. Therefore, the actual amount of data sent by the logical channel of the first priority is Dj1=Dj1+min(BSj1, Grant), the actual amount of data sent by the logical channel of the second priority is Dj2=Dj2+min(BSj2, Grant), and the actual amount of data sent by the logical channel of the third priority is Dj3=min(DSHj3, Grant).

[0083] In some embodiments, data packets are acquired from corresponding logical channels in sequence according to the actual amount of data sent by each logical channel, including: when the actual amount of data sent by the logical channel of the current priority is greater than zero, data packets are acquired from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel; or when the actual amount of data sent by the logical channel of the current priority is equal to zero, it is determined whether the actual amount of data sent by the logical channel of the next priority is greater than 0, and when the actual amount of data sent by the logical channel of the next priority is greater than zero, data packets are acquired from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel, until the acquisition of data packets for all logical channels is completed.

[0084] For example, taking the case that there are three logical channels, firstly, according to the actual amount of data sent by the logical channel of the first priority, a corresponding number of data packets are obtained from the logical channel of the first priority, and the data packets are grouped. Then, it is determined whether the actual amount of data sent by the logical channel of the second priority is greater than 0. If the actual amount of data sent by the logical channel of the second priority is greater than 0, a corresponding number of data packets are obtained from the logical channel of the second priority according to the actual amount of data sent by the logical channel of the second priority, and the data packets are grouped. Then, it is determined whether the actual amount of data sent by the logical channel of the third priority is greater than 0; if the actual amount of data sent by the logical channel of the second priority is 0, it is determined whether the actual amount of data sent by the logical channel of the third priority is greater than 0. If the actual amount of data sent by the logical channel of the third priority is greater than 0, a corresponding number of data packets are obtained from the logical channel of the second priority according to the actual amount of data sent by the logical channel of the third priority, and the data packets are grouped. The acquisition of data packets of all logical channels is completed, and the MAC layer grouping is completed; if the actual amount of data sent by the logical channel of the third priority is 0, the MAC layer grouping is completed.

[0085] It should be noted that in the actual packet assembly process, when the actual amount of data sent by the logical channel is greater than 0, the MAC layer sets the configuration parameters of the logical channel to the packet assembly module of the MAC layer, and then obtains the descriptor of a data packet or a small number of data packets from the uplink buffer according to the actual amount of data sent by the logical channel, and puts it into the MAC PDU (Protocol Data Unit), and then updates the actual amount of data sent by the logical channel to the actual amount of data sent by the logical channel minus the amount of data in the obtained data packet, and then obtains the descriptor of a data packet or a small number of data packets from the uplink buffer again according to the updated actual amount of data sent by the logical channel, and puts it into the MAC PDU until the actual amount of data sent by the logical channel is 0.

[0086] The technical solution of the present application is further described in detail below in conjunction with specific implementation methods:

[0087] like Figure 3 As shown, the uplink data processing method includes the following steps:

[0088] S301, receiving an uplink grant sent by a physical layer.

[0089] S302: Update the parameters Bj of all logical channels.

[0090] S303 : determining the actual amount of data to be sent of each logical channel according to the amount of uplink data to be sent of each logical channel, the current amount of data that can be sent of each logical channel, and the uplink authorization.

[0091] S304: Search for the next logical channel according to the priority.

[0092] S305, obtaining configuration parameters of the logical channel of the current priority, and configuring parameters of the corresponding hardware.

[0093] S306, determine whether the actual amount of data sent by the logical channel of the current priority is greater than 0, if yes, execute step S307, if not, execute step S308.

[0094] S307, obtaining data packets from the logical channel of the current priority, and assembling the packets, and updating the actual sending data volume of the logical channel of the current priority according to the data volume of the obtained data packets.

[0095] S308, determine whether the logical channel of the current priority is the last logical channel, if yes, execute step S309, if not, return to step S304.

[0096] S309, end the package assembly.

[0097] In summary, according to the uplink data processing method of an embodiment of the present invention, when an uplink authorization is received, the current amount of data that can be sent for each logical channel is determined, and the amount of uplink data to be sent for each logical channel is obtained, wherein the amount of uplink data to be sent for each logical channel is determined when the uplink buffer receives an uplink data packet, and the actual amount of data sent for each logical channel is determined according to the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization, and according to the priority of each logical channel, the data packets are obtained from the corresponding logical channels in turn according to the actual amount of data sent for each logical channel, and the data packets of the corresponding logical channels are grouped. Thus, the actual amount of data sent for each logical channel is determined before grouping, and then in the grouping process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel, and the uplink data processing can be completed, thereby reducing the logical complexity of uplink data processing and the processor overhead.

[0098] Corresponding to the above embodiments, an embodiment of the present invention further provides a computer-readable storage medium on which a computer program is stored. When the computer program is processed by a processor, the uplink data processing method of any of the above embodiments is executed.

[0099] According to the computer-readable storage medium of an embodiment of the present invention, by executing a computer program of the above-mentioned uplink data processing method, the actual amount of data sent for each logical channel is determined before packet assembly, and then during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel to complete the uplink data processing, thereby reducing the logical complexity of uplink data processing and the processor overhead.

[0100] Corresponding to the above embodiment, the embodiment of the present invention further provides a terminal. Figure 4 As shown, the terminal 400 includes a memory 410, a processor 420, and an uplink data processing program stored in the memory 410 and executable on the processor 420. When the processor 420 executes the uplink data processing program, the uplink data processing method of any of the aforementioned embodiments is implemented.

[0101] According to the terminal of an embodiment of the present invention, a computer program of the uplink data processing method is executed by a processor to determine the actual amount of data sent for each logical channel before packet assembly. Then, during the packet assembly process, only one logical channel traversal is required according to the actual amount of data sent for each logical channel to complete the uplink data processing, thereby reducing the logical complexity of the uplink data processing and the processor overhead.

[0102] Corresponding to the above embodiment, the embodiment of the present invention further provides an uplink data processing device. Figure 5 As shown, the uplink data processing device includes: a first determination module 10 , an acquisition module 20 , a second determination module 30 and a packaging module 40 .

[0103] Among them, the first determination module 10 is used to determine the current amount of data that can be sent for each logical channel when an uplink authorization is received; the acquisition module 20 is used to obtain the amount of uplink data to be sent for each logical channel when an uplink authorization is received, wherein the amount of uplink data to be sent for each logical channel is determined when the uplink buffer receives an uplink data packet; the second determination module 30 is used to determine the actual amount of data sent for each logical channel based on the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel and the uplink authorization; the packetization module 40 is used to obtain data packets from the corresponding logical channels in turn according to the priority of each logical channel and the actual amount of data sent for each logical channel, and to packetize the data packets of the corresponding logical channels.

[0104] In some embodiments, the second determination module 30 is also used to: determine the initial data amount of each logical channel based on the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel; determine the actual amount of data sent of each logical channel in turn according to the priority of each logical channel and the initial data amount of each logical channel and the uplink authorization; and update the current amount of data that can be sent of each logical channel based on the actual amount of data sent of each logical channel.

[0105] In some embodiments, the second determination module 30 is further used to: use the smaller value of the initial data amount of the logical channel of the current priority and the uplink authorization as the transmittable data amount of the corresponding logical channel, and update the uplink authorization according to the difference between the uplink authorization and the transmittable data amount of the logical channel of the current priority, and update the uplink data amount to be sent of the logical channel of the current priority according to the difference between the uplink data amount to be sent of the logical channel of the current priority and the transmittable data amount of the logical channel of the current priority; determine the next logical channel according to the updated uplink authorization and the initial data amount of the logical channel of the next priority. The amount of transmittable data of a logical channel of a priority level is determined, and the updated uplink authorization is updated again according to the difference between the updated uplink authorization and the amount of transmittable data of the logical channel of the next priority level, and the amount of uplink data to be sent of the logical channel of the next priority level is updated according to the difference between the amount of uplink data to be sent of the logical channel of the next priority level and the amount of transmittable data of the logical channel of the next priority level, until the updated uplink authorization is less than or equal to zero and the amount of transmittable data of all logical channels is determined, and the amount of transmittable data of each logical channel is determined as the actual amount of data sent for each logical channel.

[0106] In some embodiments, the second determination module 30 is also used to: when the updated uplink authorization is greater than zero, use the smaller value of the initial data amount of the logical channel of the next priority and the updated uplink authorization as the transmittable data amount of the logical channel of the next priority; or when the updated uplink authorization is less than or equal to zero, determine the initial data amount of the logical channel of the next priority as zero.

[0107] In some embodiments, the second determination module 30 is also used for: when the updated uplink authorization is greater than zero and the amount of data that can be transmitted for all logical channels has been determined, updating the amount of data that can be transmitted for the corresponding logical channels in turn according to the priority of each logical channel and the updated uplink data to be sent for each logical channel and the updated uplink authorization, and updating the updated uplink authorization again according to the difference between the updated uplink authorization and the change value of the amount of data that can be transmitted for the corresponding logical channel until the updated uplink authorization is less than or equal to zero, stopping updating the amount of data that can be transmitted for the remaining logical channels, and determining the amount of data that can be transmitted for each logical channel as the actual amount of data transmitted for each logical channel.

[0108] In some embodiments, the second determination module 30 is also used to: use the smaller value of the updated uplink data amount to be sent for each logical channel and the updated uplink authorization as the change value of the corresponding logical channel; and update the amount of data that can be sent to the corresponding logical channel according to the sum of the amount of data that can be sent to each logical channel and the change value of the corresponding logical channel.

[0109] In some embodiments, the second determining module 30 is further configured to: use the smaller value between the amount of uplink data to be sent of each logical channel and the amount of data currently transmittable of the corresponding logical channel as the initial data amount of the corresponding logical channel.

[0110] In some embodiments, the device also includes a third determination module (not shown), which is used to determine the data packet of each logical channel according to the configuration parameters of each logical channel when the uplink buffer receives an uplink data packet; determine the amount of uplink data to be sent for each logical channel according to the data packet of each logical channel, and store the amount of uplink data to be sent for each logical channel.

[0111] In some embodiments, the first determination module 10 is further used to: update the amount of data that can be sent of the corresponding logical channel according to the product of the priority bit rate of each logical channel and a preset time length, wherein the preset time length is the time difference between the current time and the last change time of the amount of data that can be sent of the corresponding logical channel; when the updated amount of data that can be sent of the corresponding logical channel is greater than a preset threshold, determine the current amount of data that can be sent of the corresponding logical channel to be the preset threshold, wherein the preset threshold is the token depth of the corresponding logical channel; or when the updated amount of data that can be sent of the corresponding logical channel is less than or equal to the preset threshold, determine the current amount of data that can be sent of the corresponding logical channel to be the updated amount of data that can be sent of the corresponding logical channel.

[0112] In some embodiments, the component module is also used to: when the actual amount of data sent by the logical channel of the current priority is greater than zero, obtain data packets from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel; or when the actual amount of data sent by the logical channel of the current priority is equal to zero, determine whether the actual amount of data sent by the logical channel of the next priority is greater than 0, and when the actual amount of data sent by the logical channel of the next priority is greater than zero, obtain data packets from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel, until the acquisition of data packets for all logical channels is completed.

[0113] It should be noted that the specific implementation of the uplink data processing device in the embodiment of the present invention corresponds one-to-one to the specific implementation of the uplink data processing method in the aforementioned embodiment of the present invention, and will not be repeated here.

[0114] According to the uplink data processing device of the embodiment of the present invention, the current amount of data that can be sent of each logical channel is determined by the first determination module when the uplink authorization is received, and the amount of uplink data to be sent of each logical channel is obtained by the acquisition module when the uplink authorization is received, wherein the amount of uplink data to be sent of each logical channel is determined when the uplink buffer receives the uplink data packet, and the actual amount of data sent of each logical channel is determined by the second determination module according to the amount of uplink data to be sent of each logical channel, the current amount of data that can be sent of each logical channel and the uplink authorization, and the data packets are obtained from the corresponding logical channels in sequence according to the priority of each logical channel and the actual amount of data sent of each logical channel by the packet assembly module, and the data packets of the corresponding logical channels are packetized. Thus, the actual amount of data sent of each logical channel is determined before packet assembly, and then only one logical channel traversal is required according to the actual amount of data sent of each logical channel during the packet assembly process, so that the uplink data processing can be completed, thereby reducing the logic complexity of uplink data processing and the processor overhead.

[0115] It should be noted that the logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be specifically implemented in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute instructions), or in combination with these instruction execution systems, devices or apparatuses. For the purposes of this specification, "computer-readable medium" can be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in combination with these instruction execution systems, devices or apparatuses. More specific examples of computer-readable media (a non-exhaustive list) include the following: an electrical connection portion with one or more wirings (electronic device), a portable computer disk box (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium and then editing, interpreting or processing in other suitable ways if necessary, and then stored in a computer memory.

[0116] It should be understood that the various parts of the present invention can be implemented by hardware, software, firmware or a combination thereof. In the above-mentioned embodiments, a plurality of steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, it can be implemented by any one of the following technologies known in the art or their combination: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0117] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "examples", "specific examples", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representation of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.

[0118] In addition, the terms "first", "second", etc. used in the embodiments of the present invention are only used for descriptive purposes and should not be understood as indicating or implying relative importance, or implicitly indicating the number of technical features indicated in the present embodiment. Therefore, the features defined by the terms "first", "second", etc. in the embodiments of the present invention can explicitly or implicitly indicate that the embodiment includes at least one of the features. In the description of the present invention, the word "multiple" means at least two or two or more, such as two, three, four, etc., unless otherwise clearly and specifically defined in the embodiments.

[0119] In the present invention, unless otherwise clearly specified or limited in the embodiments, the terms "installed", "connected", "connected" and "fixed" etc. in the embodiments should be understood in a broad sense. For example, the connection can be a fixed connection, a detachable connection, or an integrated connection. It can be understood that it can also be a mechanical connection, an electrical connection, etc.; of course, it can also be a direct connection, or an indirect connection through an intermediate medium, or it can be the internal connection of two elements, or the interaction relationship between two elements. For ordinary technicians in this field, the specific meanings of the above terms in the present invention can be understood according to the specific implementation situation.

[0120] Although the embodiments of the present invention have been shown and described above, it is to be understood that the above embodiments are exemplary and are not to be construed as limitations of the present invention. A person skilled in the art may change, modify, replace and vary the above embodiments within the scope of the present invention.

Claims

1. A method for processing uplink data, characterized in that: include: In the case of receiving an uplink authorization, determining the current amount of data that can be sent for each logical channel, and obtaining the amount of uplink data to be sent for each logical channel, wherein the amount of uplink data to be sent for each logical channel is determined when the uplink buffer receives an uplink data packet; Determine the actual amount of data sent for each logical channel according to the amount of uplink data to be sent for each logical channel, the current amount of data that can be sent for each logical channel, and the uplink authorization; According to the priority of each logical channel and the actual amount of data sent by each logical channel, data packets are sequentially acquired from the corresponding logical channels, and the data packets of the corresponding logical channels are grouped.

2. The method according to claim 1, characterized in that Determining the actual amount of data sent by each logical channel according to the amount of uplink data to be sent by each logical channel, the current amount of data that can be sent by each logical channel, and the uplink authorization, including: Determining an initial data amount of each logical channel according to the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel; Determining in sequence the actual amount of data sent for each of the logical channels according to the priority of each of the logical channels and the initial amount of data for each of the logical channels and the uplink grant; The current transmittable data volume of each logical channel is updated according to the actual transmit data volume of each logical channel.

3. The method according to claim 2, characterized in that Determining in sequence the actual amount of data sent by each of the logical channels according to the initial amount of data of each of the logical channels and the uplink grant, including: Taking the smaller value of the initial data amount of the logical channel of the current priority and the uplink authorization as the transmittable data amount of the corresponding logical channel, and updating the uplink authorization according to the difference between the uplink authorization and the transmittable data amount of the logical channel of the current priority, and updating the uplink data amount to be sent of the logical channel of the current priority according to the difference between the uplink data amount to be sent of the logical channel of the current priority and the transmittable data amount of the logical channel of the current priority; The amount of transmittable data of the logical channel of the next priority is determined according to the updated uplink authorization and the initial data amount of the logical channel of the next priority, and the updated uplink authorization is updated again according to the difference between the updated uplink authorization and the amount of transmittable data of the logical channel of the next priority, and the amount of uplink data to be sent of the logical channel of the next priority is updated according to the difference between the amount of uplink data to be sent of the logical channel of the next priority and the amount of transmittable data of the logical channel of the next priority, until the updated uplink authorization is less than or equal to zero and the amount of transmittable data of all logical channels is determined, and the amount of transmittable data of each logical channel is determined as the actual amount of data sent for each logical channel.

4. The method according to claim 3, characterized in that: Determining the amount of transmittable data of the logical channel of the next priority according to the updated uplink grant and the initial data amount of the logical channel of the next priority, including: When the updated uplink grant is greater than zero, the smaller value between the initial data amount of the logical channel of the next priority and the updated uplink grant is used as the transmittable data amount of the logical channel of the next priority; or When the updated uplink grant is less than or equal to zero, the initial data volume of the logical channel of the next priority level is determined to be zero.

5. The method according to claim 3, characterized in that: In the case where the updated uplink grant is greater than zero and the amount of transmittable data of all logical channels is determined to be complete, the method further includes: According to the priority of each logical channel, the amount of transmittable data of the corresponding logical channel is updated in turn according to the updated amount of uplink data to be sent and the updated uplink authorization of each logical channel, and the updated uplink authorization is updated again according to the difference between the updated uplink authorization and the change value of the amount of transmittable data of the corresponding logical channel until the updated uplink authorization is less than or equal to zero, and the updating of the amount of transmittable data of the remaining logical channels is stopped, and the amount of transmittable data of each logical channel is determined as the actual amount of transmittable data of each logical channel.

6. The method according to claim 5, characterized in that The method sequentially updates the amount of transmittable data of the corresponding logical channel according to the updated amount of uplink data to be sent and the updated uplink authorization of each logical channel, including: The smaller value of the updated uplink data amount to be sent and the updated uplink authorization of each logical channel is used as the change value of the corresponding logical channel; The amount of transmittable data of the corresponding logical channel is updated according to the sum of the amount of transmittable data of each logical channel and the change value of the corresponding logical channel.

7. The method according to claim 2, characterized in that Determining the initial data amount of each logical channel according to the amount of uplink data to be sent of each logical channel and the current amount of data that can be sent of each logical channel, including: The smaller value between the amount of uplink data to be sent of each logical channel and the amount of data currently transmittable of the corresponding logical channel is used as the initial data amount of the corresponding logical channel.

8. The method according to any one of claims 1 to 7, characterized in that In the case where the uplink buffer receives an uplink data packet, the method further includes: Determine a data packet of each of the logical channels according to a configuration parameter of each of the logical channels; The amount of uplink data to be sent on each logical channel is determined according to the data packets of each logical channel, and the amount of uplink data to be sent on each logical channel is stored.

9. The method according to any one of claims 1 to 7, characterized in that: Determine the current amount of data that can be sent on each logical channel, including: Updating the amount of data that can be sent for the corresponding logical channel according to the product of the priority bit rate of each logical channel and a preset time length, wherein the preset time length is a time difference between a current time and a time when the amount of data that can be sent for the corresponding logical channel last changed; When the updated transmittable data amount of the corresponding logical channel is greater than a preset threshold, determining that the current transmittable data amount of the corresponding logical channel is the preset threshold, wherein the preset threshold is the token depth of the corresponding logical channel; or When the updated transmittable data amount of the corresponding logical channel is less than or equal to the preset threshold, the current transmittable data amount of the corresponding logical channel is determined to be the updated transmittable data amount of the corresponding logical channel.

10. The method according to any one of claims 1 to 7, characterized in that Acquiring data packets from corresponding logical channels in sequence according to the actual amount of data sent by each logical channel, including: When the actual amount of data sent by the logical channel of the current priority is greater than zero, obtaining a data packet from the corresponding logical channel according to the actual amount of data sent by the corresponding logical channel; or When the actual amount of data sent of the logical channel of the current priority is equal to zero, determine whether the actual amount of data sent of the logical channel of the next priority is greater than 0, and when the actual amount of data sent of the logical channel of the next priority is greater than zero, obtain data packets from the corresponding logical channel according to the actual amount of data sent of the corresponding logical channel until the acquisition of data packets for all logical channels is completed.

11. A computer-readable storage medium, characterized in that: A computer program is stored thereon, and when the computer program is processed by a processor, the uplink data processing method as described in any one of claims 1-10 is executed.

12. A terminal, characterized in that: It includes a memory, a processor, and an uplink data processing program stored in the memory and executable on the processor. When the processor executes the uplink data processing program, the uplink data processing method described in any one of claims 1 to 10 is implemented.

13. An uplink data processing device, characterized in that: include: A first determination module, configured to determine the current amount of data that can be sent on each logical channel when an uplink grant is received; An acquisition module, configured to acquire the amount of uplink data to be sent of each of the logical channels when the uplink authorization is received, wherein the amount of uplink data to be sent of each of the logical channels is determined when the uplink buffer receives an uplink data packet; A second determination module, configured to determine the actual amount of data sent of each logical channel according to the amount of uplink data to be sent of each logical channel, the current amount of data that can be sent of each logical channel and the uplink authorization; The packet assembly module is used to obtain data packets from the corresponding logical channels in sequence according to the priority of each logical channel and the actual amount of data sent by each logical channel, and to assemble the data packets of the corresponding logical channels.