Air interface resource scheduling method and device, program product, storage medium and base station

By separating scheduled tasks and non-scheduling tasks in the millimeter wave communication system, using background threads to process non-scheduling tasks, the dispatching thread focuses on wireless resource allocation, which solves the problem that the base station is difficult to schedule multiple UEs under short TTI, and improves system performance and efficiency.

CN119255396AActive Publication Date: 2025-01-03SICHUAN CHUANGZHI LIANHENG TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202411213118.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2025-01-03
Estimated Expiration
2044-08-30

AI Technical Summary

Technical Problem

In millimeter wave communication systems, under short transmission time intervals (TTIs), it is difficult for the base station to effectively schedule more user equipment (UEs), and the prior art fails to provide an effective solution.

Method used

By separating scheduling tasks and non-scheduling tasks, using background threads to perform non-scheduling essential tasks, such as calculating UE's scheduling priority and ephemeris calculation, the scheduling thread focuses on wireless resource allocation, reducing the computing pressure of scheduling threads and improving scheduling efficiency .

Benefits of technology

Within each TTI, the scheduling thread can complete more UE scheduling, which improves the performance and efficiency of the communication system, which is particularly suitable for millimeter wave systems, and also improves scheduling efficiency in non-millimeter wave systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119255396A_ABST
    Figure CN119255396A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of communication, and provides an air interface resource scheduling method and device, a program product, a storage medium and a base station. The air interface resource scheduling method comprises the steps that a background thread is used for executing a non-scheduling necessary task, and the non-scheduling necessary task does not comprise the step that wireless resources are allocated to target UE to be scheduled; and executing a scheduling necessary task using the scheduling thread, the scheduling necessary task including allocating radio resources to the target UE. In the method, the scheduling thread is only responsible for wireless resource allocation, and the background thread completes tasks except for wireless resource allocation, so that the calculation pressure of the scheduling thread is reduced, the scheduling thread can complete scheduling of more UE in each TTI, and the performance of the whole communication system is improved.
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 air interface resource scheduling method, device, program product, storage medium and base station. Background Art

[0002] Millimeter wave communication refers to the technology of using electromagnetic waves with a frequency between 30GHz and 300GHz for communication. Compared with traditional wireless communication technology, millimeter wave communication has a higher frequency and a shorter wavelength, which can achieve higher data transmission rates. Millimeter wave communication is also an important part of 5G communication technology and has been widely used in satellite communications and other fields.

[0003] The Transmission Time Interval (TTI) is the period for the base station to schedule air interface resources in the 5G communication system, that is, the base station will schedule the user equipment (UE) connected to the base station in each TTI. In the millimeter wave system, TTI can be reduced to 0.125ms. How to schedule more UEs in such a short time is a major challenge, but the existing technology has not yet provided a good solution. Summary of the invention

[0004] The purpose of the embodiments of the present application is to provide an air interface resource scheduling method, device, program product, storage medium and base station to improve at least part of the above-mentioned technical problems.

[0005] To achieve the above objectives, this application provides the following technical solutions:

[0006] In the first aspect, an embodiment of the present application provides an air interface resource scheduling method, including: using a background thread to execute non-scheduling required tasks, the non-scheduling required tasks do not include allocating wireless resources to a target UE to be scheduled; and, using a scheduling thread to execute scheduling required tasks, the scheduling required tasks include allocating wireless resources to the target UE.

[0007] For the base station, the task that must be done in the scheduling phase (which can be considered as within each TTI) is to allocate wireless resources to the UE to be scheduled, while other tasks can be done in the scheduling phase or not. In the above method, the scheduling thread is only responsible for wireless resource allocation, and a background thread is set up to complete tasks other than allocating wireless resources, thereby reducing the computing pressure of the scheduling thread, so that the scheduling thread can complete the scheduling of more UEs in each TTI, thereby improving the performance of the entire communication system. This method is particularly suitable for millimeter wave systems, but it can also improve scheduling efficiency in non-millimeter wave systems.

[0008] In an implementation manner of the first aspect, the non-scheduling required task includes at least one of the following: calculating the scheduling priority of the UE; sorting the UE according to the scheduling priority; wherein the target UE is derived from the sorted UE; calculating the ephemeris; calculating the bit error rate; calculating the quality of service (Quality of Service, QoS for short) traffic shaping; and processing the user plane data at the medium access control (MAC for short) layer.

[0009] In the above implementation, a series of tasks that are not directly related to wireless resource allocation can be assigned to background threads for processing, thereby greatly improving the scheduling efficiency of UEs and supporting scheduling of more UEs within one TTI.

[0010] In an implementation manner of the first aspect, if the target UE performs downlink scheduling, the necessary scheduling tasks include: physical downlink control channel (Physical Downlink Control Channel, PDCCH for short) resource allocation processing and physical downlink shared channel (Physical Downlink Shared Channel, PDSCH for short) resource allocation processing for downlink scheduling; if the target UE performs uplink scheduling, the necessary scheduling tasks include: PDCCH resource allocation processing, physical uplink shared channel (Physical Uplink Shared Channel, PUSCH for short) resource allocation processing, physical uplink control channel (Physical Uplink Control Channel, PUCCH for short) resource allocation processing, sounding reference signal (SRS for short) resource allocation processing and physical random access channel (PRACH for short) resource allocation processing for uplink scheduling.

[0011] In the above implementation, the necessary scheduling tasks that can be performed in downlink scheduling and uplink scheduling are respectively given. It is not difficult to see that these tasks only involve wireless resource allocation, so the scheduling thread has a high efficiency whether it is doing downlink scheduling or uplink scheduling.

[0012] In an implementation of the first aspect, the required scheduling task includes multiple scheduling steps, and the use of a scheduling thread to execute the required scheduling task includes: using the scheduling thread to execute all scheduling steps for each target UE in turn; wherein, when a target UE completes all scheduling steps, it indicates that the target UE has completed scheduling.

[0013] In the above implementation, the scheduling thread prioritizes the UE dimension when performing scheduling, that is, the scheduling of a single target UE is prioritized rather than the scheduling step. Therefore, even if a target UE is timed out during the scheduling process, at least the target UE that has completed all the scheduling steps before is successfully scheduled. Therefore, this implementation helps to improve the scheduling success rate of the UE.

[0014] In an implementation of the first aspect, the scheduling thread is a single thread, and the use of the scheduling thread to execute all scheduling steps for each target UE in sequence includes: using a single scheduling thread to execute all scheduling steps for each target UE in sequence, and after scheduling one target UE, starting to schedule the next target UE.

[0015] The above implementation is a single-thread implementation of UE-dimensional priority scheduling. In the single-thread implementation, since the target UEs are scheduled in sequence according to the scheduling order (the scheduling order can be determined by the background thread), even if a target UE is scheduled out of time during the scheduling process, at least other target UEs whose scheduling order is before the target UE are successfully scheduled. Therefore, this implementation helps to improve the scheduling success rate of the UE.

[0016] In an implementation of the first aspect, the scheduling thread is a plurality of threads, and the use of the scheduling thread to execute all scheduling steps for each target UE in turn includes: using a plurality of scheduling threads to schedule a corresponding number of target UEs in parallel; wherein each scheduling thread is responsible for executing all scheduling steps for a target UE, and after a scheduling thread schedules a target UE, the scheduling thread takes a new target UE for scheduling.

[0017] In an implementation of the first aspect, the scheduling thread is a plurality of threads, and the using of the scheduling threads to execute all scheduling steps for each target UE in sequence includes: using a plurality of scheduling threads to execute a corresponding number of scheduling steps in parallel; wherein each scheduling thread takes a scheduling step from a task queue for execution, and after a scheduling thread completes executing a scheduling step of a target UE, if there is at least one scheduling step that can be executed in parallel, the scheduling thread puts the at least one scheduling step that can be executed in parallel into the task queue, and takes a new scheduling step from the task queue for execution; if there is no at least one scheduling step that can be executed in parallel, the scheduling thread directly takes a new scheduling step from the task queue for execution; the at least one scheduling step that can be executed in parallel satisfies: being a subsequent scheduling step of the target UE, and having no dependency relationship between them, and only depending on the executed scheduling step of the target UE or not depending on any scheduling step of the target UE; and / or being a scheduling step of a new target UE, and having no dependency relationship between them.

[0018] The above two implementations are multi-threaded implementations of UE-dimensional priority scheduling. Compared with single-threaded implementation, multi-threaded implementation has higher scheduling efficiency, but also has higher requirements for hardware resources. In fact, since the tasks to be performed by the scheduling thread have been greatly simplified in the present application scheme, the scheduling efficiency of single-threaded implementation is also considerable, which also helps to reduce hardware costs.

[0019] In the above two multi-threaded implementations, the former is parallel based on the UE granularity, and the latter is parallel based on the scheduling step granularity. The latter has a smaller and more flexible granularity, but may require a more complex parallel design because some scheduling steps may be dependent on each other, and not necessarily any two scheduling steps can be parallel.

[0020] In an implementation of the first aspect, the method also includes: saving the context of each UE in a UE context array, the context of the UE including scheduling information that the UE needs to use during scheduling; when the scheduling thread executes the multiple scheduling steps for the target UE, it only passes the array index of the target UE between each scheduling step and / or within the scheduling step, and obtains the scheduling information corresponding to the target UE from the UE context array through the array index of the target UE within the scheduling step, and schedules the target UE based on the scheduling information.

[0021] In the above implementation, the scheduling information of all UEs is stored in the UE context array, and only the array index of the target UE is passed between each scheduling step and / or within the scheduling step. When necessary, the scheduling information of the target UE can be obtained from the UE context array through this array index, thereby reducing the overhead of data copying during the scheduling process, helping to improve scheduling efficiency and save storage resources.

[0022] In an implementation of the first aspect, the required scheduling task includes multiple scheduling steps, and the using a scheduling thread to execute the required scheduling task includes: using the scheduling thread to execute each scheduling step in sequence for all target UEs.

[0023] In the above implementation, the scheduling thread prioritizes the scheduling step dimension when performing scheduling, that is, it prioritizes completing a single scheduling step rather than completing the scheduling of a single target UE. Since multiple target UEs execute the code of the same scheduling step in a short period of time, the cache hit rate of the CPU will be higher, which helps to improve the scheduling efficiency. However, it should be pointed out that since the code of the scheduling thread in the solution of this application is already very streamlined, even if the scheduling method with UE dimension priority is adopted, its cache hit rate is not low.

[0024] In the second aspect, an embodiment of the present application provides an air interface resource scheduling device, including: a first execution module, used to use a background thread to execute non-scheduling required tasks, and the non-scheduling required tasks do not include allocating wireless resources to a target UE to be scheduled; a second execution module, used to use a scheduling thread to execute scheduling required tasks, and the scheduling required tasks include allocating wireless resources to the target UE.

[0025] In a third aspect, an embodiment of the present application provides a computer program product, including computer program instructions, which, when read and executed by a processor, execute the method provided by the first aspect or any one of the implementations of the first aspect.

[0026] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, on which computer program instructions are stored. When the computer program instructions are read and executed by a processor, the method provided by the first aspect or any one of the implementations of the first aspect is executed.

[0027] In the fifth aspect, an embodiment of the present application provides a base station, comprising: a memory, a processor, a signal transceiver and a bus, wherein the memory stores computer program instructions, and when the computer program instructions are read and run by the processor, the method provided by the first aspect or any one of the implementations of the first aspect is executed. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0029] Figure 1 A wireless communication system that can be used for the air interface resource scheduling method provided in an embodiment of the present application is shown;

[0030] Figure 2 The following shows the possible process of the air interface resource scheduling method provided in the embodiment of the present application;

[0031] Figure 3 The first method of scheduling a UE by a scheduling thread is shown;

[0032] Figure 4 The second method of scheduling UE by the scheduling thread is shown;

[0033] Figure 5 It shows the functional modules that may be included in the air interface resource scheduling device provided in the embodiment of the present application;

[0034] Figure 6 The figure shows the possible structure of the base station provided in the embodiment of the present application. DETAILED DESCRIPTION

[0035] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. It should be noted that similar reference numerals and letters represent similar items in the following drawings, so once an item is defined in one drawing, it does not need to be further defined and explained in the subsequent drawings.

[0036] The terms "comprises," "comprising," or any other variation thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus that includes a list of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0037] The terms "first", "second", etc. are only used to distinguish one entity or operation from another entity or operation, and should not be understood as indicating or implying relative importance, nor should they be understood as requiring or implying any such actual relationship or order between these entities or operations.

[0038] The technology described in the embodiments of the present application can be applied to wireless communication systems such as New Radio (NR) and Long Term Evolution (LTE), and can also be used in communication systems such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-Carrier Frequency Division Multiple Access (SC-FDMA), and even communication systems that are still in the research stage, such as 6G communication systems, and so on.

[0039] The technology described in the embodiments of the present application can be used for the above-mentioned systems and radio technologies, as well as other systems and radio technologies. In the following text, for simplicity, the scheme of the present application is mainly explained by taking the 5G NR system as an example, and the terms used are mainly the terms in the 5G NR system. When the scheme is applied to other communication systems, the relevant terms can be replaced by similar concepts in other systems.

[0040] Figure 1 A wireless communication system that can be used to execute the air interface resource scheduling method provided in the embodiment of the present application is shown. Figure 1 The wireless communication system 100 includes a UE 110 and a base station 120, both of which may be multiple. It should be understood that the wireless communication system 100 may also include other components, such as core network equipment, Figure 1 The devices shown are mainly those related to air interface resource scheduling.

[0041] The UE 110 may be a terminal device such as a mobile phone, a tablet computer, a laptop computer, a personal computer, a personal digital assistant, a wearable device, a vehicle-mounted device, etc. The UE 110 may be a fixed-position device or a movable device.

[0042] The base station 120 can be a ground base station and / or a satellite base station, that is, the wireless communication system 100 does not necessarily have to include both types of base stations at the same time. For example, a satellite communication system can include both types of base stations at the same time, while a ground millimeter wave system can only include ground base stations. It should be noted that in the field of communications, a base station can be referred to as a Node B (NB), an Evolved Node B (eNB), an access point, a Base Transceiver Station (BTS), a radio base station, a radio transceiver, a Basic Service Set (BSS), an Extended Service Set (ESS) or some other appropriate term in the field. As long as the same technical effect is achieved, the "base station" is not limited to a specific technical vocabulary.

[0043] UE 110 can access base station 120, communicate with base station 120, and then communicate with other UE 110 through base station 120 and possible core network devices, such as implementing voice calls, file transfers, etc. That is, wireless communication system 100 can, but is not limited to, implementing communication between different UE 110.

[0044] In the wireless communication system 100, one of the main tasks of the base station 120 is to schedule the accessed UE 110, that is, to allocate and manage the wireless resources used by the UE 110, where the wireless resources include time resources, frequency resources, etc. In the 5G NR protocol stack, the scheduling behavior can be performed at the MAC layer. After the scheduling is completed, the UE 110 will use the wireless resources allocated to it to communicate with the base station 120 in the uplink or downlink according to the scheduling result.

[0045] For the 5G NR system, the scheduling behavior is repeated with TTI as the period, and the base station 120 will schedule the UE 110 connected to the base station 120 in each TTI. The possible values ​​of TTI include 1ms, 0.5ms, 0.25ms, etc. A shorter TTI can provide faster scheduling response time, higher frequency reuse and more refined resource allocation, which helps to improve system capacity and throughput; a longer TTI can reduce scheduling overhead and the number of control signaling, which helps to reduce system complexity and power consumption. In the 5G NR system, the length of TTI is usually set to 1ms, but it also supports flexible configuration of the length of TTI. For example, in a millimeter wave system, TTI can be configured to 0.125ms, but in such a short time, how to schedule a larger number of UE 110, the existing technology does not provide a good solution.

[0046] The inventors have found through long-term research that one of the reasons for the poor scheduling performance of the prior art is that in each TTI, in addition to allocating wireless resources to the UE, the base station also performs some tasks that are not directly related to resource allocation, such as calculating scheduling priority for the UE, sorting the UE, etc. Some tasks require a large amount of computing resources, resulting in the actual scheduling time being occupied.

[0047] Based on the above reasons, the air interface resource scheduling method, device, program product, storage medium and base station provided in the embodiments of the present application distinguish between scheduling essential tasks and non-scheduling essential tasks, and assign these two types of tasks to different threads for execution. Only the execution of scheduling essential tasks will occupy TTI, and the execution of non-scheduling essential tasks will not occupy TTI, thereby reducing the tasks that the base station needs to execute in each TTI, so that more UEs can be scheduled, thereby improving the performance of the entire communication system. The specific content of the scheme will be introduced later. In addition, it should be pointed out that in addition to the scheme itself, the above analysis of the reasons for the poor scheduling performance of the existing communication system is also the inventor's contribution to this application, rather than a conclusion that already exists in the prior art.

[0048] Figure 2The following is a possible flow chart of the air interface resource scheduling method provided in the embodiment of the present application. The method may be, but is not limited to, executed by a base station in a wireless communication system. The wireless communication system may be Figure 1 The wireless communication system 100 in which the base station can be Figure 1 The base station 120 in the embodiment may have Figure 6 For the protocol stack of 5G NR, the method can be executed in the MAC layer. Figure 2 , the air interface resource scheduling method includes:

[0049] Step S210: Utilize the background thread to execute non-scheduled tasks.

[0050] Step S220: Utilize the scheduling thread to execute the necessary scheduling tasks.

[0051] Among them, the background thread and the scheduling thread are different threads, and both the background thread and the scheduling thread can be one or more. Optionally, the background thread and the scheduling thread can be implemented as logical threads in the software sense, or as hardware threads, and the implementation as hardware threads requires corresponding hardware support. After the base station starts working, the background thread and the scheduling thread can be executed at the same time (but the two threads do not necessarily start at the same time), that is, the scheduling task and the non-scheduling task can be executed in parallel.

[0052] The UE to be scheduled in each TTI is called the target UE. The scheduling necessary tasks are the tasks that must be performed in the scheduling stage (or in each TTI). The scheduling necessary tasks include the tasks of allocating wireless resources to the target UE, while the non-scheduling necessary tasks are the tasks that are not or not necessarily performed in the scheduling stage. The non-scheduling necessary tasks do not include the tasks of allocating wireless resources to the target UE to be scheduled. The wireless resources here include but are not limited to time-frequency resources. For example, non-scheduling necessary tasks may include tasks such as calculating the scheduling priority for the UE and sorting the UE (the target UE is determined according to this sorting); scheduling necessary tasks may include tasks such as allocating time-frequency resources to various physical channels of the target UE. Further examples of non-scheduling necessary tasks and scheduling necessary tasks will be given later.

[0053] For the base station, the tasks that must be performed in the scheduling phase are mainly to allocate wireless resources to the target UE, while other tasks can be performed in the scheduling phase or not. In the above method, the scheduling thread is only responsible for wireless resource allocation, and a background thread is set up to complete tasks other than allocating wireless resources, thereby reducing the calculation pressure of the scheduling thread, so that the scheduling thread can complete the scheduling of more UEs in each TTI (the tasks performed by the background thread do not occupy TTI), thereby improving the performance of the entire communication system. This method is particularly suitable for millimeter wave systems, but it can also improve scheduling efficiency in non-millimeter wave systems.

[0054] In one implementation, the non-scheduled tasks include but are not limited to at least one of the following:

[0055] (1) Calculate the scheduling priority of the UE. The UE here can be all or part of the UEs connected to the base station. The scheduling priority can be a comprehensive indicator determined based on multiple data. The scheduling priority can be calculated regularly or irregularly. Its algorithms include the RR round-robin algorithm, the EPF algorithm, the MAX-CI algorithm, etc. The main inputs of the algorithm include the configured QoS rules (maximum flow, minimum flow, packet loss, jitter, delay, user priority, etc.), the spectrum efficiency of the UE, and the data status of the UE.

[0056] (2) Sort the UEs according to the scheduling priorities calculated in (1). The target UEs can be determined based on this ranking. For example, based on system performance, 4 UEs can be scheduled in each TTI, and the first 4 UEs in the sorted queue can be taken as the target UEs in the current TTI.

[0057] (3) Calculate the ephemeris. This task is mainly aimed at satellite communication systems. The ephemeris can be understood as a set of data describing the motion state and position of the satellite in orbit. The calculation result of the ephemeris may affect the calculation of the scheduling priority.

[0058] (4) Calculate the bit error rate.

[0059] (5) Computational QoS traffic shaping: QoS traffic shaping is a network management technology used to control the transmission mode of network traffic to ensure that the quality of service requirements of different types of traffic are met.

[0060] (6) Processing of user plane data at the MAC layer.

[0061] In the above implementation, a series of tasks that are not directly related to wireless resource allocation can be assigned to background threads for processing, thereby greatly improving the scheduling efficiency of UEs and supporting the base station to schedule more UEs within one TTI.

[0062] For uplink and downlink scheduling, the scheduling tasks may be differentiated, wherein downlink scheduling refers to the scheduling of data sent to the UE by the base station, and uplink scheduling refers to the scheduling of data sent by the UE to the base station.

[0063] If the base station performs downlink scheduling for the target UE, the necessary scheduling tasks may include:

[0064] (A1) PDCCH resource allocation processing for downlink scheduling;

[0065] (A2) PDSCH resource allocation processing.

[0066] If the base station performs uplink scheduling for the target UE, the necessary scheduling tasks may include:

[0067] (B1) PDCCH resource allocation processing for uplink scheduling;

[0068] (B2) PUSCH resource allocation processing;

[0069] (B3) PUCCH resource allocation processing;

[0070] (B4) SRS resource allocation processing;

[0071] (B5)PRACH resource allocation processing.

[0072] It should be noted that tasks A1-A2 and B1-B5 are not necessarily executed in the order listed above. In addition, the resource allocation processing of the Master Information Block (MIB) and the System Information Block (SIB) does not involve specific UEs, belongs to the public resources of the system, and does not need to be repeatedly executed for different UEs, so it is not listed above.

[0073] The above lists the necessary scheduling tasks that can be performed during downlink scheduling and uplink scheduling. It is not difficult to see that these tasks only involve wireless resource allocation, so the scheduling thread has a high efficiency whether it is doing downlink scheduling or uplink scheduling.

[0074] In a TTI, the base station can perform only downlink scheduling, only uplink scheduling, or both scheduling at the same time, depending on whether there is downlink or uplink data to be transmitted. If both scheduling are performed at the same time, the target UEs for each can be completely different UEs, or there can be duplicate UEs.

[0075] It should be noted that the scheduling required tasks may also include tasks that are not related to wireless resource allocation. For example, if the TTI value is large, or the number of UEs to be scheduled is small, or the task itself is very simple (the scheduling time is relatively sufficient when these conditions are met), some tasks that are not related to wireless resource allocation can also be used as scheduling required tasks and handed over to the scheduling thread to complete. For example, all UEs to be scheduled are stored in a scheduling queue in order (the UE in the queue can refer to a certain identification information that can represent the UE, and similarities will not be specifically explained later). Four UEs need to be scheduled within the current TTI, so before allocating wireless resources to these four UEs, these four UEs need to be taken out of the scheduling queue. Although the operation of taking out the UE does not directly involve wireless resource allocation, since this operation consumes almost no computing resources, this operation can be included in the scheduling task for execution. Which tasks are used as scheduling required tasks and which tasks are used as non-scheduling required tasks can be pre-set, or some tasks can be dynamically classified as scheduling required tasks or non-scheduling required tasks according to the scheduling situation.

[0076] Based on any of the above embodiments, the scheduling task may include multiple steps, called scheduling steps. For example, each task in A1~A2, B1~B5 above can be used as a scheduling step. Of course, several tasks can be combined into one scheduling step or one task can be divided into multiple scheduling steps according to the needs. The purpose of scheduling is to execute all scheduling steps for each target UE within one TTI, that is, to complete the scheduling of all target UEs. According to different ways of executing the scheduling steps, step S220 includes at least two implementation methods, which are described in detail below:

[0077] Method 1: UE-priority scheduling

[0078] The scheduling thread is used to execute all scheduling steps for each target UE in sequence. The "in sequence" here can be understood as the scheduling order of the target UE. As mentioned above, the scheduling order can be determined by the background thread. When a target UE completes all scheduling steps, it indicates that the target UE has completed the scheduling, and its scheduling result can be used as the basis for transmitting data at the physical layer.

[0079] Figure 3 The first method of scheduling a UE by a scheduling thread is shown. Figure 3, there are 4 target UEs that need to be scheduled in sequence in the current TTI, namely UE1~UE4, and the scheduling steps that need to be executed for each target UE are P1~P3. The arrows indicate the execution order of the scheduling steps, that is, the scheduling thread first executes the scheduling steps P1~P3 for UE1, then executes the scheduling steps P1~P3 for UE2, then executes the scheduling steps P1~P3 for UE3, and then executes the scheduling steps P1~P3 for UE4. However, it should be noted that if the multi-threaded parallel situation is considered, the scheduling thread will not necessarily be strictly scheduled in the order from UE1 to UE4, and for each target UE, such as UE1, the scheduling thread will not necessarily continuously execute the scheduling steps P1~P3 for UE1, but in general, the execution logic of the scheduling thread still conforms to the above general description of method 1. The case where the scheduling thread is multi-threaded will be explained in detail later.

[0080] In the first method, the scheduling thread prioritizes the UE dimension when performing scheduling, that is, it prioritizes the scheduling of a single target UE rather than a single scheduling step. Therefore, even if a target UE is timed out during the scheduling process, at least the target UE that has completed all scheduling steps before is successfully scheduled. Therefore, this implementation method helps to improve the scheduling success rate of the UE.

[0081] For example, suppose that the scheduling thread times out when scheduling UE3 (i.e., the current TTI has ended, but UE3 has not completed scheduling), but UE1 and UE2, which have completed scheduling steps P1 to P3, are successfully scheduled and are not affected by the scheduling failure of UE3.

[0082] The following further describes method 1 for the cases where the scheduling thread is single-threaded and multi-threaded:

[0083] 1. The scheduling thread is single thread

[0084] At this time, step S220 can be implemented as follows: using a single scheduling thread to execute all scheduling steps for each target UE in sequence; wherein, after scheduling one target UE, the next target UE is scheduled.

[0085] Reference Figure 3 ,In a single-thread implementation, the scheduling thread first executes the scheduling steps P1 to P3 for UE1. After the execution (i.e., the scheduling of UE1 is completed), the scheduling steps P1 to P3 are then executed for UE2, and so on, until the scheduling of UE4 is completed.

[0086] Since only one thread performs the necessary scheduling tasks, the next target UE will not be scheduled before the previous target UE is scheduled. Therefore, even if a target UE is timed out during the scheduling process, other target UEs that are scheduled before the target UE can be scheduled successfully. Therefore, this implementation method helps to improve the scheduling success rate of UEs.

[0087] 2. Scheduling threads as multithreaded

[0088] When the scheduling thread is multi-threaded, at least the following two parallel schemes can be used to implement step S220:

[0089] a. Parallel operation based on UE granularity

[0090] Multiple scheduling threads are used to schedule a corresponding number of target UEs in parallel; wherein each scheduling thread is responsible for executing all scheduling steps for one target UE, and after one scheduling thread has scheduled one target UE, the scheduling thread takes a new target UE for scheduling.

[0091] Reference Figure 3 In multi-threaded implementation a, assume that there are two scheduling threads, thread 1 and thread 2 (two target UEs can be scheduled in parallel), and UE1~UE4 are stored in a scheduling queue in order. Thread 1 takes UE1 from the scheduling queue for scheduling. Before the scheduling steps P1~P3 of UE1 are executed, thread 1 will not schedule other target UEs. Thread 2 takes UE2 from the scheduling queue for scheduling. Before the scheduling steps P1~P3 of UE2 are executed, thread 2 will not schedule other target UEs. Thread 1 and thread 2 can start execution at the same time or almost at the same time. If thread 1 completes the scheduling of UE1 first, and thread 2 has not completed the scheduling of UE2 at this time, thread 1 can take UE3 from the scheduling queue for scheduling, and so on.

[0092] Note that in this case, although the target UEs are not necessarily scheduled in the scheduling order, the order in which each scheduling thread takes the target UEs from the scheduling queue is still in the scheduling order. Therefore, from a general point of view, it can be considered that the scheduling thread schedules the target UEs in sequence according to the scheduling order.

[0093] b. Parallelism based on the scheduling step

[0094] A corresponding number of scheduling steps are executed in parallel using multiple scheduling threads; wherein each scheduling thread takes a scheduling step from a task queue for execution. After a scheduling thread completes executing a scheduling step of a target UE, if there is at least one scheduling step that can be executed in parallel, the scheduling thread puts the at least one scheduling step that can be executed in parallel into the task queue, and takes a new scheduling step from the task queue for execution. If there is no at least one scheduling step that can be executed in parallel, the scheduling thread directly takes a new scheduling step from the task queue for execution.

[0095] The at least one scheduling step that can be performed in parallel satisfies at least one of the following two conditions:

[0096] Condition 1 (1.1 to 1.3 must all be met to be considered as meeting condition 1):

[0097] 1.1 These scheduling steps are the subsequent scheduling steps of the target UE;

[0098] 1.2 These scheduling steps have no dependencies on each other;

[0099] 1.3 These scheduling steps only depend on the scheduling steps that have been executed by the target UE, or do not depend on any scheduling steps of the target UE.

[0100] Condition 2 (both 2.1 and 2.2 must be met to be considered as meeting condition 2):

[0101] 2.1 These scheduling steps are the scheduling steps for a new target UE;

[0102] 2.2 These scheduling steps have no dependencies on each other.

[0103] For example, there are 4 target UEs that need to be scheduled in sequence in the current TTI, namely, UE1 to UE4, and the scheduling steps that need to be executed for each target UE are P1 to P5.

[0104] For the same target UE, the execution order of the scheduling steps should be reasonably designed so that the execution of each scheduling step is either independent of the execution result of any other scheduling step, or only dependent on the execution result of the scheduling step that is ranked before it. The execution order here can be understood as the order in which the scheduling steps start to be executed, rather than the order in which they are completed. For example, the execution of P1 does not depend on the execution results of other scheduling steps, the execution of P2 to P4 all depends on the execution result of P1, but P2 to P4 are not dependent on each other, and the execution of P5 depends on the execution results of P2 to P4. Therefore, P1-P2-P3-P4-P5 is a reasonable execution order. The scheduling steps of each target UE maintain the execution order in timing regardless of how many scheduling threads execute them, which can be guaranteed by the order in which the scheduling steps are added to the task queue.

[0105] For different target UEs, the scheduling steps to be executed have no dependency on each other. For example, UE1.P2 (scheduling step P2 for UE1, similar notation will not be described separately in the following text) depends on UE1.P1, but UE2.P2 does not depend on UE1.P1.

[0106] Assume that there are two scheduling threads, thread 1 and thread 2 (two scheduling steps can be scheduled in parallel), and the two scheduling threads share a task queue.

[0107] Initially, let thread 1 execute UE1.P1, and let thread 2 execute UE2.P1.

[0108] Assume that thread 1 has finished executing UE1.P1, and thread 2 has not finished executing UE2.P1. Since there are still 4 scheduling steps for UE1 that have not been executed, the scheduling steps that can be parallelized can be selected from the remaining scheduling steps of UE1. And since UE1.P2 to UE1.P4 are all subsequent steps of UE1.P1, and UE1.P2 to UE1.P4 are not dependent on each other, and the execution of UE1.P2 to UE1.P4 only depends on the execution result of UE1.P1, thread 1 can add UE1.P2 to UE1.P4 to the task queue in order, and take a new scheduling step, namely UE1.P2, from the task queue for execution.

[0109] Assuming that thread 1 has not yet completed executing UE1.P2 and thread 2 has completed executing UE2.P1, thread 2 can refer to the above operation of thread 1, add UE2.P2 to UE2.P4 to the task queue in sequence, and take a new scheduling step, namely UE1.P3, from the task queue for execution. That is, at this time, the two scheduling steps UE1.P2 and UE1.P3 belonging to UE1 are executed in parallel by different threads.

[0110] Assume that thread 1 has completed executing UE1.P2, and thread 2 has not yet completed executing UE1.P3. Although UE1.P5 is the subsequent step of UE1.P4 that has been added to the task queue, since UE1.P3, on which UE1.P5 depends, has not been completed and UE1.P4 has not yet been executed, there is no scheduling step that can be put into the task queue at this time. Thread 1 directly takes a new scheduling step, namely UE1.P4, from the task queue for execution.

[0111] Assume that thread 2 finishes executing UE1.P3 first, and thread 1 finishes executing UE1.P4 later. For simplicity, we focus on thread 1. Since there is still one scheduling step for UE1 that has not been executed, the scheduling steps that can be parallelized can be selected from the remaining scheduling steps of UE1. And since UE1.P5 is the subsequent step of UE1.P4 that has been added to the task queue, and UE1.P5 has only one step without mutual dependence, and the execution of UE1.P5 only depends on the execution results of UE1.P2 to UE1.P4, thread 1 can add UE1.P5 to the task queue and take a new scheduling step from the task queue for execution.

[0112] Assume that at some point in the future, thread 1 has completed executing UE1.P5, and at this time, the scheduling steps of UE2 have not been fully executed. Since the scheduling steps for UE1 have been completed at this time, the parallel scheduling steps should be selected from a new target UE, that is, the scheduling steps of UE3. And since UE3.P1 has only one step and there is no mutual dependence problem, thread 1 can add UE3.P1 to the task queue and take a new scheduling step from the task queue for execution.

[0113] The subsequent execution process is similar and will not be analyzed in detail. Optionally, after thread 1 has executed UE1.P4, UE1.P5 (satisfying condition 1) and UE3.P1 (satisfying condition 2) can also be added to the task queue, which simplifies the operation.

[0114] For the above example, if the dependency relationship between the scheduling steps is changed to P1, P3, and P4, the execution does not depend on the execution results of other scheduling steps, the execution of P2 depends on the execution result of P1, and the execution of P5 depends on the execution result of P2. Assuming that the execution order is still P1-P2-P3-P4-P5, the possible execution process of the scheduling thread is analyzed as follows:

[0115] Initially, let thread 1 execute UE1.P1, and let thread 2 execute UE2.P1.

[0116] Assume that thread 1 has completed executing UE1.P1, and thread 2 has not yet completed executing UE2.P1. Since UE1.P2~UE1.P4 are all subsequent steps of UE1.P1, and UE1.P2~UE1.P4 are not dependent on each other, and only the execution of UE1.P2 among UE1.P2~UE1.P4 depends on the execution result of UE1.P1, and UE1.P3 and UE1.P4 do not depend on the execution result of any scheduling step, thread 1 can add UE1.P2~UE1.P4 to the task queue in sequence, and take a new scheduling step, namely UE1.P2, from the task queue for execution.

[0117] For simplicity, we focus on thread 1. Assume that thread 1 has completed the execution of UE1.P2. Since UE1.P5 is the subsequent step of UE1.P4 that has been added to the task queue, and UE1.P5 has only one step without mutual dependence, and the execution of UE1.P5 only depends on the execution result of UE1.P2, thread 1 can add UE1.P5 to the task queue and take a new scheduling step from the task queue for execution.

[0118] The subsequent execution process is similar and will not be analyzed in detail. Note that in multi-threaded implementation b, although the target UEs are not necessarily scheduled in the scheduling order, the order in which each scheduling thread takes the first scheduling step of the target UE from the task queue is still in the scheduling order. Therefore, from a general point of view, it can be considered that the scheduling thread schedules the target UEs in sequence in the scheduling order.

[0119] The above two implementations a and b are both multi-threaded implementations of UE-dimensional priority scheduling. Compared with single-threaded implementation, multi-threaded implementation has higher scheduling efficiency and can schedule more UEs in each TTI, but the demand for hardware resources is also higher. In fact, since the tasks to be performed by the scheduling thread have been greatly simplified in the present application solution, the scheduling efficiency of single-threaded implementation is also considerable, and it also helps to reduce hardware costs.

[0120] Comparing the multi-threaded implementations a and b, method a is parallel based on the UE granularity, and method b is parallel based on the scheduling step granularity. The granularity of method b is smaller and more flexible, but it may require a more complex parallel design because some scheduling steps may be dependent on each other, and not necessarily any two scheduling steps can be parallelized.

[0121] In addition, it should be pointed out that in the above introduction of multi-threaded implementation, for the sake of simplicity, it is assumed that the scheduling steps of different target UEs are independent of each other. However, in practice, this condition may not be met. For example, the same scheduling step of different target UEs may access common resources, and there will be resource mutual exclusion problems in multi-threaded scenarios. This is an issue that needs to be considered when performing parallel design, and can be solved, for example, by locking and other methods.

[0122] Method 2: Scheduling step dimension priority scheduling

[0123] The scheduling thread is used to execute each scheduling step for all target UEs in sequence. The "in sequence" here can be understood as the execution order of the scheduling steps. Of course, when executing each scheduling step, the scheduling step can still be executed for each target UE in sequence according to the scheduling order of the target UE. When a target UE completes all scheduling steps, it indicates that the target UE has completed the scheduling, and its scheduling result can be used as the basis for transmitting data at the physical layer.

[0124] Figure 4 The second method of scheduling the UE by the scheduling thread is shown. Figure 4 , there are 4 target UEs that need to be scheduled in sequence in the current TTI, namely UE1~UE4, and the scheduling steps that need to be executed for each target UE are P1~P3. The arrows indicate the execution order of the scheduling steps, that is, the scheduling thread first executes scheduling step P1 for UE1~UE4, then executes scheduling step P2 for UE1~UE4, and then executes scheduling step P3 for UE1~UE4. However, it should be noted that if multi-threaded parallelism is considered, the scheduling thread does not necessarily strictly execute the scheduling steps in the order from P1 to P3, and for each scheduling step, such as P1, the scheduling thread does not necessarily strictly execute the step in the order from UE1 to UE4, but overall, the execution logic of the scheduling thread still conforms to the above overall description of method 2.

[0125] In the second method, the scheduling thread prioritizes the scheduling step dimension when performing scheduling, that is, it prioritizes completing a single scheduling step rather than the scheduling of a single target UE. Since multiple target UEs execute the code of the same scheduling step in a short period of time, the cache hit rate of the base station CPU will be higher, which helps to improve the scheduling efficiency. However, it should be pointed out that since the code of the scheduling thread in the solution of this application is already very streamlined, even if the scheduling method with UE dimension priority is adopted, its cache hit rate is not low.

[0126] For method 2, it can also be divided into the case where the scheduling thread is single-threaded or multi-threaded, which is only briefly introduced here. Figure 4 For a single thread, the scheduling thread first executes the scheduling step P1 for UE1 to UE4. After all target UEs have completed P1, the scheduling thread then executes the scheduling step P2 for UE1 to UE4, and so on, until all target UEs have completed P3. If UE2 times out while executing P2, UE1 to UE4 will not execute P3, that is, none of them will be scheduled successfully.

[0127] For multithreading, it can also be divided into parallel processing based on UE granularity and parallel processing based on scheduling step granularity. Parallel processing based on UE granularity means that when executing the same scheduling step, different target UEs can be executed in parallel. Figure 4, Assume that there are two scheduling threads, thread 1 and thread 2. When executing P1, thread 1 can execute UE1.P1, thread 2 can execute UE2.P1. After thread 1 finishes executing UE1.P1, if thread 2 has not finished executing UE2.P1, thread 1 continues to execute UE3.P1, and so on. Optionally, each scheduling step can still be executed serially. For example, if P1 is not executed for all target UEs, P2 will not be executed.

[0128] Parallelism based on the granularity of scheduling steps means that different scheduling steps can be executed in parallel. Figure 4 , assuming that there are two scheduled threads, thread 1 and thread 2, and there is no dependency between steps P2 and P3, then when thread 1 executes P2 for UE1 to UE4, thread 2 is allowed to execute P3 for UE1 to UE4. However, when thread 1 executes P2, it can still execute serially in the order from UE1 to UE4.

[0129] Similar to the first method, in the second method, compared with the single-thread implementation, the multi-thread implementation has higher scheduling efficiency and can schedule more UEs in each TTI, but the demand for hardware resources is also higher.

[0130] Furthermore, based on method 1, the scheduling efficiency can be further improved through the following solutions:

[0131] First, the base station saves the context of each connected UE in an array, called the UE context array, which can be created when the system is initialized and maintained in the memory of the base station. The number of elements in the array can be a preset value, such as the maximum number of users that the base station can handle (this number is irrelevant to the maximum number of users that the base station can schedule within a TTI). Among them, the UE context can be understood as information and status related to the UE, including scheduling information that the UE needs to use when scheduling.

[0132] Each UE has an array index, which is used to describe the storage location of the context of the UE in the UE context array. The array index can be implemented as a pointer or the number of an array element, etc. In short, the array index itself occupies a very small amount of data.

[0133] Then, when the scheduling thread executes all scheduling steps for each target UE in turn, it can only pass the array index of the target UE between each scheduling step and / or within the scheduling step, and obtain the scheduling information corresponding to the target UE from the UE context array through the array index of the target UE within the scheduling step, and schedule the target UE based on the scheduling information.

[0134] Let's take the single-threaded case as an example. Each scheduling step can be implemented as a function. Scheduling steps P1 to P3 correspond to functions F1 to F3 respectively. When scheduling UE1, the scheduling thread passes the array index of UE1 to F1, and then executes F1. If F1 contains some sub-functions, the array index of UE1 is also passed between these sub-functions. When allocating wireless resources to UE1 inside F1, the context of UE1 can be obtained from the UE context array based on the array index of UE1, and then the scheduling information of UE1 can be obtained. Then, wireless resources can be allocated to UE1 based on the scheduling information. After F1 is executed, the scheduling thread continues to pass the array index of UE1 to F2, and then executes F2. The analysis can refer to the execution of F1, and no further explanation will be given.

[0135] In the above implementation, the scheduling information of all UEs is stored in the UE context array, and only the array index of the target UE is transmitted between each scheduling step and / or within the scheduling step. When necessary, the scheduling information of the target UE can be obtained from the UE context array through this array index, thereby reducing the overhead of data copying during the scheduling process (without transmitting the UE scheduling information itself), which helps to improve scheduling efficiency and save storage resources. In addition, since the UE dimension is prioritized during scheduling in method one, the array index of the target UE is sufficient to complete the scheduling, and there is no need to design a more complex data structure, which is also conducive to improving scheduling efficiency. In contrast, for method two, a linked list of target UEs may be maintained for each scheduling step, and the UE that has completed the current scheduling step will be added to the linked list of the next scheduling step.

[0136] In addition to the solutions introduced above, there are other solutions that can improve scheduling efficiency. The combined effect of these solutions is conducive to the millimeter wave communication system to achieve scheduling of more UEs within TTI.

[0137] Scenario 1:

[0138] When the scheduling thread allocates time-frequency resources to the UE, it allocates them according to the time-frequency resource blocks. If the time-frequency space is regarded as a plane with the horizontal axis being the number of symbols (representing time) and the vertical axis being the number of resource blocks (RBs) (representing frequency), then the time-frequency resource block is a rectangular area in the plane.

[0139] One possible allocation process is as follows:

[0140] First, obtain the first resource block parameter corresponding to the resource block to be allocated. The first resource block parameter is used to describe the position information and / or size information of the resource block to be allocated in the time-frequency space. For example, the first resource block parameter may include the number of symbols, the starting symbol, the number of RBs, the starting RB (the latter two parameters are optional) and the like of the resource block to be allocated.

[0141] Then, by comparing the first resource block parameter with the second resource block parameter in the idle resource record, the initial resource block that meets the resource allocation requirements is determined from the idle resource blocks in the time-frequency space. The idle resource record includes a second resource block parameter corresponding to the idle resource block, and the second resource block parameter is used to describe the position information and / or size information of the idle resource block in the time-frequency space. For example, the second resource block parameter may include the number of symbols, the starting symbol, the number of RBs, the starting RB (the latter two parameters are optional) of the idle resource block. The idle resource record can be implemented as a specific data structure, such as an array, a linked list, a hash table, a tree, or a combination thereof. Since resource scheduling is performed in a TTI periodicity, the time-frequency space in this step can be understood as the time-frequency space within a TTI.

[0142] For example, the idle resource record can be implemented as an array, in which the position of each array element corresponds to a symbol number (the position of the last array element corresponds to the maximum number of symbols in the TTI), and each array element points to a linked list (an empty linked list is allowed), and each linked list node in the linked list corresponds to an idle resource block. The starting symbol, RB number, starting RB and other parameters of the idle resource block can be stored in the linked list node. All linked list nodes in the same linked list correspond to the same number of symbols of the idle resource blocks, which is the number of symbols corresponding to the position of the data element pointing to the linked list.

[0143] When searching for the initial resource block from the free resource record, you can first find the array element whose corresponding number of symbols is the same as the number of symbols of the resource block to be allocated in the array, and then access the linked list nodes in the linked list pointed to by the array element in turn to determine whether the starting symbol, RB number, starting RB of the free resource block stored in the linked list node and the starting symbol, RB number, starting RB of the resource block to be allocated match (matching does not necessarily mean completely equal). If the parameters stored in a certain linked list node can match the parameters of the resource block to be allocated, the free resource block corresponding to the linked list node is determined as the initial resource block. Otherwise, repeat the above process for other array elements in the array that are in sequence after the current array element to continue searching for the initial resource block.

[0144] Then, the resource block to be allocated is determined from the initial resource block according to the first resource block parameter.

[0145] Then, the second resource block parameter corresponding to the initial resource block is removed from the idle resource record.

[0146] Finally, if there are remaining time-frequency resources in the initial resource block in addition to the resource block to be allocated, the second resource block parameters corresponding to the remaining resource blocks formed by the remaining time-frequency resources are added to the idle resource record. For example, a linked list node corresponding to the remaining resource block can be created, and these linked list nodes are inserted into the appropriate position of the appropriate linked list of the above data structure. Optionally, when determining the resource block to be allocated from the initial resource block, the position of the resource block to be allocated can be reasonably selected, for example (if other conditions are met) according to the priority order of the number of intersection edges between the resource block to be allocated and the initial resource block from most to least, so that the number of remaining resource blocks is as small as possible.

[0147] In the above scheme, idle resource records are used to maintain the current remaining idle resource blocks. The number of idle resource blocks is usually not large, so the allocation of time-frequency resource blocks can be quickly completed through resource block parameter matching. Compared with some complex time-frequency resource allocation algorithms in the prior art, its efficiency is significantly improved.

[0148] Scenario 2:

[0149] After determining the time-frequency resource block occupied by PDCCH through solution 1, the time-frequency resource block can be further allocated to multiple UEs. However, in the prior art, the allocation algorithm is very complicated. In millimeter wave systems, since the value of TTI is very small, it is usually limited by device performance, and only a limited number of UEs can be scheduled in each TTI. In this special scenario, the time-frequency resource allocation method in PDCCH can be simplified as follows:

[0150] First, n resource blocks are divided for uplink scheduling and downlink scheduling from the time-frequency resources occupied by PDCCH, where n is a positive integer and is determined by the maximum number of UEs supported for scheduling within a TTI. For example, if 4 UEs (uplink or downlink) are supported for scheduling within each TTI, then n can be 4. Generally, n is 2 to 4. In addition, in some implementations, different numbers of resource blocks for uplink and downlink scheduling are allowed.

[0151] The methods of uplink scheduling and downlink scheduling are similar. Taking downlink scheduling as an example, n resource blocks for downlink scheduling are allocated to the target UE to be scheduled according to the set rules. Note that the resource blocks can be allocated directly according to the rules here, without starting from the search start position corresponding to each target UE as in the prior art, and searching for the time-frequency resource blocks suitable for each target UE in the time-frequency resources occupied by PDCCH through a specific algorithm, so its resource allocation efficiency is significantly improved.

[0152] The setting rules here include at least the following two types, and you can choose one to implement:

[0153] The first method is: numbering n resource blocks to obtain a resource block number i corresponding to each resource block, where i ranges from 1 to n; and allocating the resource block with resource block number i to the i-th scheduled target UE according to the scheduling order of the target UE.

[0154] The second method: n resource blocks are allocated to the target UE to be scheduled according to the target UE's search resource starting position. The target UE's search resource starting position can be determined based on the target UE's ID (such as C-RNTI), subframe number, and PDCCH type. The resource block where the target UE's search resource starting position is located is the resource block allocated to the target UE. If the resource block where the target UE's search resource starting position is located is occupied, a resource block is selected from the remaining resource blocks and allocated to the target UE.

[0155] Figure 5 The function modules that may be included in the air interface resource scheduling device 300 provided in the embodiment of the present application are shown. The air interface resource scheduling device 300 may be installed in a base station of a wireless communication system. Figure 5 , the air interface resource scheduling device 300 includes:

[0156] A first execution module 310 is used to execute a non-scheduled necessary task using a background thread, wherein the non-scheduled necessary task does not include allocating radio resources for a target UE to be scheduled;

[0157] The second execution module 320 is used to execute the necessary scheduling task by using the scheduling thread, and the necessary scheduling task includes allocating radio resources to the target UE.

[0158] In one implementation of the air interface resource scheduling device 300, the non-scheduling required tasks include at least one of the following: calculating the scheduling priority of the UE; sorting the UE according to the scheduling priority; wherein the target UE comes from the sorted UE; calculating the ephemeris; calculating the bit error rate; calculating the QoS traffic shaping; and processing the user plane data at the MAC layer.

[0159] In one implementation of the air interface resource scheduling device 300, if the target UE performs downlink scheduling, the necessary scheduling tasks include: PDCCH resource allocation processing and PDSCH resource allocation processing for downlink scheduling; if the target UE performs uplink scheduling, the necessary scheduling tasks include: PDCCH resource allocation processing, PUSCH resource allocation processing, PUCCH resource allocation processing, SRS resource allocation processing and PRACH resource allocation processing for uplink scheduling.

[0160] In one implementation of the air interface resource scheduling device 300, the required scheduling task includes multiple scheduling steps, and the second execution module 320 uses a scheduling thread to execute the required scheduling task, including: using the scheduling thread to execute all scheduling steps for each target UE in turn; wherein, when a target UE completes all scheduling steps, it indicates that the target UE has completed scheduling.

[0161] In one implementation of the air interface resource scheduling device 300, the scheduling thread is a single thread, and the second execution module 320 uses the scheduling thread to execute all scheduling steps for each target UE in sequence, including: using a single scheduling thread to execute all scheduling steps for each target UE in sequence, and after scheduling one target UE, start scheduling the next target UE.

[0162] In one implementation of the air interface resource scheduling device 300, the scheduling thread is a plurality of threads, and the second execution module 320 uses the scheduling thread to sequentially execute all scheduling steps for each target UE, including: using a plurality of scheduling threads to parallelly schedule a corresponding number of target UEs; wherein each scheduling thread is responsible for executing all scheduling steps for a target UE, and after a scheduling thread schedules a target UE, the scheduling thread takes a new target UE for scheduling.

[0163] In one implementation of the air interface resource scheduling device 300, the scheduling thread is a plurality of threads, and the second execution module 320 uses the scheduling thread to execute all scheduling steps for each target UE in turn, including: using a plurality of scheduling threads to execute a corresponding number of scheduling steps in parallel; wherein each scheduling thread takes a scheduling step from a task queue for execution, and after a scheduling thread completes executing a scheduling step of a target UE, if there is at least one scheduling step that can be executed in parallel, the scheduling thread puts the at least one scheduling step that can be executed in parallel into the task queue, and takes a new scheduling step from the task queue for execution; if there is no at least one scheduling step that can be executed in parallel, the scheduling thread directly takes a new scheduling step from the task queue for execution; the at least one scheduling step that can be executed in parallel satisfies: being a subsequent scheduling step of the target UE, and having no dependency relationship with each other, and only depending on the executed scheduling step of the target UE or not depending on any scheduling step of the target UE; and / or being a scheduling step of a new target UE, and having no dependency relationship with each other.

[0164] In one implementation of the air interface resource scheduling device 300, the device also includes: an information storage module, used to save the context of each UE in a UE context array, the UE context including scheduling information that the UE needs to use during scheduling; when the scheduling thread executes the multiple scheduling steps for the target UE, it only passes the array index of the target UE between each scheduling step and / or within the scheduling step, and obtains the scheduling information corresponding to the target UE from the UE context array through the array index of the target UE within the scheduling step, and schedules the target UE based on the scheduling information.

[0165] In an implementation of the air interface resource scheduling device 300, the required scheduling task includes multiple scheduling steps, and the second execution module 320 uses a scheduling thread to execute the required scheduling task, including: using the scheduling thread to execute each scheduling step in sequence for all target UEs.

[0166] The air interface resource scheduling device 300 provided in the embodiment of the present application can be used to execute the air interface resource scheduling method provided in the embodiment of the present application. Its implementation principle and the technical effects produced have been introduced in the aforementioned method embodiment. For the sake of brief description, for matters not mentioned in the device embodiment, reference can be made to the corresponding content in any of the aforementioned method embodiments.

[0167] Figure 6 The structure of the base station 400 provided in the embodiment of the present application is shown. Figure 6 The base station 400 includes: a processor 410, a memory 420, a signal transceiver 430 and a bus 440. The processor 410, the memory 420 and the signal transceiver are interconnected and communicate with each other through the bus 440 and / or other forms of connection mechanisms (not shown).

[0168] Among them, the processor 410 includes one or more (only one is shown in the figure), which can be an integrated circuit chip with signal processing capabilities. The above-mentioned processor 410 can be a general-purpose processor, including a central processing unit (CPU), a micro control unit (MCU), a network processor (NP) or other conventional processors; it can also be a dedicated processor, including a graphics processor (GPU), a neural network processor (NPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. In addition, when there are multiple processors 410, some of them can be general-purpose processors and the other part can be dedicated processors.

[0169] The memory 420 includes one or more (only one is shown in the figure), which can be, but not limited to, random access memory (Random Access Memory, RAM), read only memory (Read Only Memory, ROM), programmable read-only memory (Programmable Read-Only Memory, PROM), erasable programmable read-only memory (Erasable Programmable Read-Only Memory, EPROM), electrically erasable programmable read-only memory (Electric Erasable Programmable Read-Only Memory, EEPROM), etc.

[0170] The processor 410 and other possible components may access the memory 420, read and / or write data therein. In particular, one or more computer program instructions may be stored in the memory 420, and the processor 410 may read and execute these computer program instructions to implement the air interface resource scheduling method provided in the embodiment of the present application.

[0171] The signal transceiver 430 includes one or more (only one is shown in the figure), which can be used to send or receive electrical signals to achieve direct or indirect communication with other devices. The signal transceiver 430 can be a wired and / or wireless communication module. For example, the wireless communication module can be used to communicate with the UE, and the wired communication module can be used to communicate with the core network device.

[0172] Understandably, Figure 6 The structure shown is for illustration only. The base station 400 may also include Figure 6 More or fewer components as shown, or with Figure 6 For example, the base station 400 may also include components such as an antenna and a bracket. In addition, Figure 6 Each component shown in the figure can be implemented by hardware, software or a combination thereof.

[0173] The base station 400 can be deployed in a wireless communication system, such as a 5G or 4G system. In addition, the base station 400 can be a ground station or a satellite station.

[0174] The present application also provides a computer-readable storage medium on which computer program instructions are stored. When these computer program instructions are read and executed by a processor, the air interface resource scheduling method provided in the present application is executed. For example, the computer-readable storage medium can be implemented as Figure 6 The memory 420, optical disk, USB flash disk, etc. in the base station 400.

[0175] The present application also provides a computer program product, which includes computer program instructions. When these computer program instructions are read and executed by a processor, the air interface resource scheduling method provided by the present application is executed. For example, these computer program instructions can be stored in Figure 6 The data may be stored in the memory 420 in the base station 400, or in a USB flash drive, a mobile hard disk, or recorded on a CD, etc.

[0176] The above description is only an embodiment of the present application and is not intended to limit the protection scope of the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.

Claims

1. A method for air interface resource scheduling, characterized in that: include: Utilize the background thread to execute non-scheduled necessary tasks, wherein the non-scheduled necessary tasks do not include allocating radio resources for the target UE to be scheduled; as well as, The scheduling thread is used to execute the scheduling necessary task, and the scheduling necessary task includes allocating wireless resources to the target UE.

2. The air interface resource scheduling method according to claim 1, characterized in that: The non-scheduled required tasks include at least one of the following: Calculate the scheduling priority of the UE; Sort the UEs according to the scheduling priority; wherein the target UEs are from the sorted UEs; Calculate ephemeris; Calculate bit error rate; Compute QoS traffic shaping; Processing of user plane data at the MAC layer.

3. The air interface resource scheduling method according to claim 1, characterized in that: If the target UE performs downlink scheduling, the necessary scheduling tasks include: PDCCH resource allocation processing and PDSCH resource allocation processing for downlink scheduling; If the target UE performs uplink scheduling, the necessary scheduling tasks include: PDCCH resource allocation processing, PUSCH resource allocation processing, PUCCH resource allocation processing, SRS resource allocation processing and PRACH resource allocation processing for uplink scheduling.

4. The air interface resource scheduling method according to any one of claims 1 to 3, characterized in that: The scheduling necessary task includes multiple scheduling steps, and the using of the scheduling thread to execute the scheduling necessary task includes: The scheduling thread is used to execute all scheduling steps for each target UE in sequence; wherein, when a target UE completes executing all scheduling steps, it indicates that the target UE has completed scheduling.

5. The air interface resource scheduling method according to claim 4, characterized in that: The scheduling thread is a single thread, and the scheduling thread is used to sequentially execute all scheduling steps for each target UE, including: A single scheduling thread is used to execute all scheduling steps for each target UE in sequence. After one target UE is scheduled, the next target UE is scheduled.

6. The air interface resource scheduling method according to claim 4, characterized in that: The scheduling thread is a plurality of threads, and the scheduling thread is used to sequentially execute all scheduling steps for each target UE, including: Multiple scheduling threads are used to schedule a corresponding number of target UEs in parallel; wherein each scheduling thread is responsible for executing all scheduling steps for one target UE, and after one scheduling thread has scheduled one target UE, the scheduling thread takes a new target UE for scheduling.

7. The air interface resource scheduling method according to claim 4, characterized in that: The scheduling thread is a plurality of threads, and the scheduling thread is used to sequentially execute all scheduling steps for each target UE, including: A corresponding number of scheduling steps are executed in parallel using multiple scheduling threads; wherein each scheduling thread takes a scheduling step from a task queue for execution; after a scheduling thread completes executing a scheduling step of a target UE, if there is at least one scheduling step that can be executed in parallel, the scheduling thread puts the at least one scheduling step that can be executed in parallel into the task queue, and takes a new scheduling step from the task queue for execution; if there is no at least one scheduling step that can be executed in parallel, the scheduling thread directly takes a new scheduling step from the task queue for execution; the at least one scheduling step that can be executed in parallel satisfies: is a subsequent scheduling step of the target UE, and has no dependency relationship with each other, and only depends on the executed scheduling step of the target UE or does not depend on any scheduling step of the target UE; and / or, It is a scheduling step for a new target UE, and there is no dependency between them.

8. The air interface resource scheduling method according to claim 4, characterized in that: The method further comprises: Storing the context of each UE in a UE context array, wherein the context of the UE includes scheduling information required to be used by the UE during scheduling; When the scheduling thread executes the multiple scheduling steps for the target UE, it only passes the array index of the target UE between each scheduling step and / or within the scheduling step, and obtains the scheduling information corresponding to the target UE from the UE context array through the array index of the target UE within the scheduling step, and schedules the target UE based on the scheduling information.

9. The air interface resource scheduling method according to any one of claims 1 to 3, characterized in that: The scheduling necessary task includes multiple scheduling steps, and the using of the scheduling thread to execute the scheduling necessary task includes: Each scheduling step is performed sequentially for all target UEs using the scheduling thread.

10. An air interface resource scheduling device, characterized in that: include: A first execution module, configured to execute a non-scheduled necessary task using a background thread, wherein the non-scheduled necessary task does not include allocating wireless resources for a target UE to be scheduled; The second execution module is used to use the scheduling thread to execute the scheduling necessary task, and the scheduling necessary task includes allocating wireless resources to the target UE.

11. A computer program product, characterized in that The method comprises computer program instructions, and when the computer program instructions are read and executed by a processor, the method according to any one of claims 1 to 9 is executed.

12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions, and when the computer program instructions are read and executed by a processor, the method according to any one of claims 1 to 9 is executed.

13. A base station, characterized in that: include: A memory, a processor, a signal transceiver and a bus, wherein the memory stores computer program instructions, and when the computer program instructions are read and executed by the processor, the method according to any one of claims 1 to 9 is executed.

Citation Information

Patent Citations

  • MAC layer scheduling method based on 5G small base station and terminal

    CN113407320A

  • Resource allocation method and device, storage medium and electronic equipment

    CN113495787A

  • Data processing method, device and system for RLC layer in 5G (5th Generation) communicationand processor

    CN113535401A

  • Resource scheduling method and device

    CN115119324A

  • Task processing method and device, electronic equipment and medium

    CN116069485A