CN115843113A - Data processing method, wireless access network, device and storage medium - Google Patents

Data processing method, wireless access network, device and storage medium Download PDF

Info

Publication number
CN115843113A
CN115843113A CN202310173087.1A CN202310173087A CN115843113A CN 115843113 A CN115843113 A CN 115843113A CN 202310173087 A CN202310173087 A CN 202310173087A CN 115843113 A CN115843113 A CN 115843113A
Authority
CN
China
Prior art keywords
target
queue
data
queues
scheduling layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310173087.1A
Other languages
Chinese (zh)
Inventor
李陛毅
王盟
张鹏宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310173087.1A priority Critical patent/CN115843113A/en
Publication of CN115843113A publication Critical patent/CN115843113A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

The invention relates to a data processing method, a wireless access network, a device and a storage medium. The invention adds a scheduling layer at the stage of data transmission from DU to accelerator card, and puts the data from different DU into different target queues through the scheduling layer, so that the accelerator card selects a target accelerator module from the current idle accelerator modules, and the target accelerator module processes the data in the target queues. Therefore, any acceleration module in the acceleration card does not fixedly process data from one DU, namely, as long as a queue in the acceleration card has data to be processed and an idle acceleration module exists in the acceleration card, the acceleration module can process the data in the queue, thus realizing fine-grained hardware resource virtualization, improving the hardware resource utilization rate of the acceleration card, namely solving the problem of low hardware resource utilization rate caused by large VF virtualization granularity in the prior art.

Description

Data processing method, wireless access network, device and storage medium
Technical Field
The present invention relates to the field of information technologies, and in particular, to a data processing method, a wireless access network, a device, and a storage medium.
Background
In the fifth generation Mobile Communication Technology (5G for short), a Radio Access Network (RAN) includes a Centralized Unit (CU) responsible for processing a non-real-time Radio higher layer protocol function, a Distributed Unit (DU) responsible for processing a function requiring high real-time performance, and a Unit (RU) responsible for Radio frequency transmission. Data from a User Equipment (UE) is transmitted to an RU via radio waves, and after digital-to-analog conversion, the RAN performs continuous multi-stage processing on the received data, including wireless communication functions such as encoding and decoding, multiplexing, segmenting, recombining, compressing, encrypting, and the like.
In recent years, with the continuous development of the performance of general processors and the gradual maturity of the Open radio access Network (O-RAN) standard, more and more RANs are deployed in a Network Function Virtualization (NFV) form to a general server, resulting in a virtualized radio access Network (vRAN) product based on the combination of the general server and Open source software and hardware.
However, the hardware acceleration resources in the current vRAN have a problem of low utilization rate.
Disclosure of Invention
In order to solve the above technical problem or at least partially solve the above technical problem, the present invention provides a data processing method, a radio access network, a device, and a storage medium, so as to improve the hardware resource utilization rate of an accelerator card and solve the problem of low hardware resource utilization rate caused by a large virtualization granularity of a VF in the prior art.
In a first aspect, an embodiment of the present invention provides a data processing method, where the method is applied to a radio access network, where the radio access network includes multiple distributed units, a scheduling layer, and an accelerator card, where the multiple distributed units are connected to the accelerator card through the scheduling layer, and the accelerator card includes multiple queues and multiple accelerator modules, and the method includes:
the scheduling layer receiving data from the distributed units;
and the scheduling layer puts the data into a target queue corresponding to the distributed unit, wherein the target queue is at least two of the plurality of queues, so that the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue.
In a second aspect, an embodiment of the present invention provides a data processing apparatus, where the data processing apparatus is configured in a radio access network, the radio access network includes a plurality of distributed units, the scheduling layer, and an accelerator card, the plurality of distributed units are connected to the accelerator card through the scheduling layer, the accelerator card includes a plurality of queues and a plurality of accelerator modules, and the apparatus includes:
a receiving module for receiving data from the distributed units;
and the processing module is used for placing the data into a target queue corresponding to the distributed unit, wherein the target queue is at least two of the plurality of queues, so that the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue.
In a third aspect, an embodiment of the present invention provides a wireless access network, where the wireless access network includes multiple distributed units, a scheduling layer, and an accelerator card, where the multiple distributed units are connected to the accelerator card through the scheduling layer, and the accelerator card includes multiple queues and multiple accelerator modules; the scheduling layer is configured to execute to implement the method according to the first aspect.
In a fourth aspect, a cloud server, wherein the cloud server comprises a plurality of distributed units, a scheduling layer, and an acceleration card, the plurality of distributed units being connected with the acceleration card through the scheduling layer, the acceleration card comprising a plurality of queues and a plurality of acceleration modules;
the scheduling layer is configured to execute to implement the method as described in the first aspect.
In a fifth aspect, an embodiment of the present invention provides an electronic device, including:
a memory;
a processor; and
a computer program;
wherein the computer program is stored in the memory and configured to be executed by the processor to implement the method of the first aspect.
In a sixth aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored, the computer program being executed by a processor to implement the method of the first aspect.
In a seventh aspect, an embodiment of the present invention provides a computer program product, including: computer program which, when executed by a processor of an electronic device, causes the processor to carry out the method of the first aspect described above.
In the data processing method, the wireless access network, the device and the storage medium provided by the embodiment of the invention, the scheduling layer is added at the stage of data transmission from the DU to the accelerator card, and the data from different DUs are put into different target queues through the scheduling layer, so that the accelerator card selects a target accelerator module from the currently idle accelerator modules, and the target accelerator module processes the data in the target queue. Therefore, any acceleration module in the acceleration card does not fixedly process data from one DU, that is, as long as a queue in the acceleration card has data to be processed and an idle acceleration module exists in the acceleration card, the acceleration module can process the data in the queue, thereby realizing fine-grained hardware resource virtualization, improving the hardware resource utilization rate of the acceleration card, and solving the problem of low hardware resource utilization rate caused by large virtualization granularity of a Virtual internet access (VF) in the prior art.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and together with the description, serve to explain the principles of the invention.
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without inventive exercise.
FIG. 1 is a diagram of a prior art network architecture;
fig. 2 is a schematic diagram of a vRAN in the prior art;
fig. 3 is a schematic structural diagram of a vRAN according to an embodiment of the present invention;
FIG. 4 is a flow chart of a data processing method according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a queue according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a first user interface provided by an embodiment of the invention;
FIG. 7 is a schematic diagram of a second user interface provided by an embodiment of the present invention;
FIG. 8 is a flow chart of a data processing method according to another embodiment of the present invention;
FIG. 9 is a schematic structural diagram of a data processing apparatus according to another embodiment of the present invention;
fig. 10 is a schematic structural diagram of an embodiment of an electronic device according to an embodiment of the present invention;
fig. 11 is a schematic diagram of an application scenario provided in the embodiment of the present invention.
Detailed Description
In order that the above objects, features and advantages of the present invention may be more clearly understood, a solution of the present invention will be further described below. It should be noted that the embodiments and features of the embodiments of the present invention may be combined with each other without conflict.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention, but the present invention may be practiced in other ways than those described herein; it is to be understood that the embodiments described in this specification are only some embodiments of the invention, and not all embodiments.
It should be noted that the data (including but not limited to data uploaded to the vRAN by the terminal) referred to in the present application are information and data authorized by the user or fully authorized by each party, and the collection, use and processing of the related data need to comply with relevant laws and regulations and standards of relevant countries and regions, and provide corresponding operation entrance for the user to choose authorization or denial.
In addition, the data processing method provided by the application can relate to the following explanation of several terms, and the details are as follows:
RAN Radio Access Network and Radio Access Network.
O-RAN-open radio Access network. A consortium of many vendors, initiated by multiple operators, engaged in to work with open, intelligent, and interoperable RAN specifications, promulgated with O-RAN labeling.
And g NB: and 5G base stations.
vRAN-RAN, base band function operating in software.
BBU, baseband Unit, baseband processing Unit.
RRU Remote Radio Unit, remote Radio Unit.
And the CU is a Centralized Unit and is responsible for processing non-real-time wireless high-level protocol functions.
The Distributed Unit is responsible for processing functions with higher requirements on real-time performance, namely part of physical layers (PHY, MAC, RLC, etc.).
And the RU is a Radio Unit and is responsible for a Unit for Radio frequency transmission.
enhanced mobile bandwidth.
uRLLC, ultra-low delay reliable communication.
mMTC mass machine communication.
In a communication system, an access network is responsible for accessing a user terminal, and a core network is responsible for processing services, so the access network can divide a wide area network into: the system comprises a user ground network, an access network and a core network, wherein the user ground network is connected to the core network through the access network. As shown in fig. 1, the user terminals such as desktop computers, notebook computers, and mobile phones form a user premise network, and the user terminals such as desktop computers, notebook computers, and mobile phones are connected to the access network in a wired or wireless manner. Specifically, the access network and the core network form a public network, and the access network is a system composed of a transmission entity providing a telecommunication Service between a Service Node Interface (SNI) and each User Network Interface (UNI) associated with the SNI. The access network can adapt to the diversity of users, the inconsistency of the users is shielded by the access network, the core network faces the consistent users, and the network architecture is greatly simplified and clarified.
In a 5G Network architecture, the Access Network as described above may be a 5G Radio Access Network (RAN), and the Core Network as described above may be a 5G Core Network (5G Core Network, 5gc). The 5G radio access network mainly includes two kinds of nodes, which are a 5G base station (gNB) and a next generation evolved node b (ng-eNB), respectively. The gNB is a node providing a New Radio (NR) user plane and control plane protocol terminal to the UE, and is connected to the 5GC via an NG interface. The NG-eNB is a node providing Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRA) user plane and control plane protocol terminals to the UE, and is connected to the 5GC via an NG interface. In a 5G Radio Access Network (RAN), the RAN includes a Centralized Unit (CU) responsible for processing a non-real-time Radio higher layer protocol function, a Distributed Unit (DU) responsible for processing a function having a high requirement on real-time performance, and a Unit (Radio Unit, RU) responsible for Radio frequency transmission.
In recent years, with the continuous development of the performance of general processors and the gradual maturity of the Open radio access Network (Open RAN, O-RAN) standard, more and more RANs are deployed in a Network Function Virtualization (NFV) form to a general server, and a virtualized radio access Network (vRAN) product based on the combination of the general server and Open source software and hardware is produced.
Fig. 2 is a schematic diagram of a vRAN structure in the prior art. Wherein the vRAN includes an RU, a plurality of DUs (e.g., x DUs, x is greater than 1), and a CU, the plurality of DUs are deployed on a common server, the CU and the plurality of DUs may be deployed on the same common server, or the CU and the plurality of DUs may be respectively deployed on different common servers. In addition, the universal server also includes a Network Interface Controller (NIC) and a heterogeneous accelerator card, which the ACC100 may be a type of. In addition, the present embodiment is not limited to this type of heterogeneous accelerator card, and may also be other types of heterogeneous accelerator cards, for example. The heterogeneous accelerator card includes a plurality of Virtual Function (VF), for example, the heterogeneous accelerator card includes x Virtual network ports, and each DU is correspondingly connected to a fixed VF. In addition, the heterogeneous accelerator card further comprises a plurality of acceleration modules, and the acceleration modules are hardware resources of the heterogeneous accelerator card. One VF corresponds to the partial acceleration module. Data from a user terminal (UE) is transmitted over the air to the RU, which sends the data to the NIC, and the process of the data from the RU to the NIC can be written as a forward pass. Further, the NIC sends data to the DU, and the DU sends the data to the VF corresponding to the DU, further, the data is accelerated by a part of the acceleration module corresponding to the VF, and the accelerated data is fed back to the DU through the VF, so that the DU sends the accelerated data to the CU. Specifically, the process of the data after the acceleration processing from the DU to the CU is denoted as a backward transfer.
However, since each DU is connected to one VF, which is equivalent to a corresponding partial acceleration module fixed to each DU, a partial acceleration module corresponding to any DU performs acceleration processing on data from the DU, so that the partial acceleration module corresponding to one DU cannot perform acceleration processing on data from other DUs, and thus the utilization rate of hardware resources in the heterogeneous acceleration card is low.
To solve the problem, an embodiment of the present invention provides a data processing method. The execution main body of the method can be a data processing device, the data processing device can be implemented as a cloud server or a communication component deployed in the cloud server, and specifically, the communication component can be deployed in a wireless access network, so that the data processing method can be applied to the wireless access network. When the data processing method is executed at the cloud end, the cloud end can be deployed with a plurality of computing nodes (cloud servers), and each computing node has processing resources such as computing, storage and the like. In the cloud, a plurality of computing nodes may be organized to provide a service, and of course, one computing node may also provide one or more services. The way that the cloud provides the service may be to provide a service interface to the outside, and the user calls the service interface to use the corresponding service. The service Interface includes Software Development Kit (SDK), application Programming Interface (API), and other forms.
According to the scheme provided by the embodiment of the invention, the cloud end can be provided with the service interface, and the user calls the service interface through the user terminal so as to trigger a request for calling the service interface to the cloud end. The cloud determines the compute nodes that respond to the request, and performs specific processing operations of data processing using processing resources in the compute nodes. The user terminal may be any computing device with certain data transmission capability, and in particular, the user terminal may be a mobile phone, a personal computer PC, a tablet computer, a set application program, and the like. Further, the basic structure of the user terminal may include: at least one processor. The number of processors depends on the configuration and type of the user terminal. The user terminal may also include a Memory, which may be volatile, such as RAM, or non-volatile, such as Read-Only Memory (ROM), flash Memory, etc., or may include both types. The memory typically stores an Operating System (OS), one or more application programs, and may also store program data and the like. In addition to the processing unit and the memory, the user terminal also includes some basic configurations, such as a network card chip, an IO bus, a display component, and some peripheral devices. Alternatively, some peripheral devices may include, for example, a keyboard, a mouse, a stylus, a printer, and the like. Other peripheral devices are well known in the art and will not be described in detail herein.
The data processing device may be a device capable of providing data processing, and in terms of physical implementation, the data processing device may be a cluster server, a conventional server, a server in the cloud, a cloud host, a virtual center, and the like. Alternatively, the data processing device may be a component or assembly in a cluster server, a conventional server, a server in the cloud, a cloud host, a virtual center, and the like. The data processing device mainly comprises a processor, a hard disk, a memory, a system bus and the like, and is similar to a general computer framework.
In the above embodiment, the user terminal may be in network connection with the data processing apparatus, and the network connection may be a wireless or wired network connection. Specifically, the user terminal and the data processing device are in communication connection, and the network standard of the mobile network is 5G.
Specifically, the data processing method provided by the embodiment of the present invention may be applied to a wireless access network, where the wireless access network includes a plurality of distributed units, a scheduling layer, and an accelerator card, the plurality of distributed units are connected to the accelerator card through the scheduling layer, and the accelerator card includes a plurality of queues and a plurality of accelerator modules. Wherein the accelerator card may be a heterogeneous accelerator card. The radio access network may specifically be a 5G radio access network, e.g. a virtualized radio access network (vRAN). In view of the above problems, embodiments of the present invention also provide a new vRAN structure diagram, so that the data processing method can be applied to the new vRAN.
Fig. 3 is a schematic diagram of a new vRAN structure according to an embodiment of the present invention. As shown in fig. 3, the new vRAN includes x DUs (x is greater than 1), a Scheduling Layer (Scheduling Layer), and an heterogeneous acceleration card (ACC), which may be a dedicated hardware Accelerator based on the ACC100, and may support fourth generation mobile Communication Technology (4 th general mobile Communication Technology, abbreviated as 4G) or 5G Forward Error Correction (FEC) coding acceleration, hybrid Automatic repeat request (HARQ), and the like. Thereby ensuring efficient operation of the 5G base station. The main function of forward error correction is to correct information errors caused by noise or interference during transmission of communication signals, thereby improving network efficiency.
As shown in fig. 3, x DUs are connected to a heterogeneous acceleration card through a scheduling layer, and the heterogeneous acceleration card includes a plurality of queues and a plurality of acceleration modules. Specifically, the heterogeneous accelerator card includes a Physical Function (PF) port, and the plurality of queues may be deployed in the Physical PF port. The plurality of acceleration modules are hardware resources in the heterogeneous acceleration card, and the plurality of acceleration modules can be deployed in the heterogeneous acceleration card except for the physical network port. Specifically, the x DUs, the scheduling layer, and the heterogeneous accelerator card may be deployed on the same general server, or the x DUs, the scheduling layer, and the heterogeneous accelerator card may be deployed on different general servers, where the general servers may be, for example, the cluster server, the conventional server, the server in the cloud, the cloud host, the virtual center, and the like described above. In addition, the RU and CU shown in fig. 3 may be deployed on the same general-purpose server as the DU, the scheduling layer, and the heterogeneous accelerator card described above, or the RU and CU may be deployed on other general-purpose servers, respectively, or the RU may be deployed on one general-purpose server and the CU and the DU, the scheduling layer, and the heterogeneous accelerator card described above may be deployed on another general-purpose server. It should be understood that the present disclosure is only exemplary of several deployment manners, and is not limited in particular, for example, in other embodiments, an RU, a CU, and a DU, a scheduling layer, and a heterogeneous accelerator card as described above may also be deployed on a general server through other deployment manners. In addition, as shown in fig. 3, the general server further includes a NIC, the NIC may be connected to each DU of the x DUs, each DU of the x DUs may be connected to the scheduling layer, the scheduling layer is connected to the heterogeneous acceleration card through a PF, the PF is connected to each DU of the x DUs, and the CU is connected to each DU of the x DUs. The process of data from RU to NIC is denoted as forward transfer, and the process of data from DU to CU is denoted as backward transfer.
Fig. 4 is a schematic flowchart of a data processing method according to an embodiment of the present invention. As shown in fig. 4, the method comprises the following specific steps:
s401, the scheduling layer receives data from the distributed units.
For example, taking the new vRAN shown in fig. 3 as an example, data from a user terminal (UE) is transmitted to the RU by radio waves, the RU sends the data to the NIC, and the NIC sends the data to the DU, where the DU may be one of x DUs as shown in fig. 3. Further, the DU transmits data to the scheduling layer. The specific transmission method may be transmission by wired transmission method or transmission by wireless transmission method. In addition, in some embodiments, when the RU receives data from the UE, the data may be processed accordingly. For example, when the new vRAN includes a 5G base station, the 5G base station includes an antenna, and the antenna may receive data from a user terminal (UE), and the data may specifically be carried in a radio frequency signal, that is, the antenna may receive the radio frequency signal, and the data carried in the radio frequency signal is data from the user terminal (UE). The RU may convert the radio frequency signal from the antenna into a digital signal and transmit the digital signal to the NIC. Similarly, the data sent by the NIC to the DU may be data processed by the NIC, the data sent by the DU to the scheduling layer may be data processed by the DU, and the specific processing procedure is applicable to the processing logic inside the NIC or the DU, which is not described herein again.
In addition, the new vRAN shown in fig. 3 includes x DUs, which may be DUs that have been accessed (i.e., have been started) in the new vRAN, or both of the accessed DUs and the unaccessed DUs. In this embodiment, the scheduling layer may allocate a corresponding queue to an accessed DU in advance, where the queue allocated to the DU is denoted as a target queue corresponding to the DU, and the target queue corresponding to the DU may be at least two of the plurality of queues in the heterogeneous accelerator card as described above. At least two of these considerations consider that the plurality of queues in the heterogeneous accelerator card include not only an in-queue but also an out-queue. For example, data from the scheduling layer is put into the queue of the heterogeneous accelerator card, so that the heterogeneous accelerator card schedules hardware resources inside the heterogeneous accelerator card to perform accelerated processing on the data in the queue. And the data after the hardware resource accelerates the data is put into the dequeue of the heterogeneous accelerator card, so that the data in the dequeue is transmitted to the corresponding DU. Thus, for the same accessed DU, the scheduling layer allocates at least one in-queue and one out-queue to the DU, so that data originating from the DU is placed in the in-queue. The data after the accelerated processing is performed on the data is put into the dequeue. Since both the enqueue and the dequeue have the characteristics of a queue, i.e., first-in-first-out. In addition, the data elements of the queue are also called queue elements, the insertion of a queue element into the queue is called enqueuing, and the deletion of a queue element from the queue is called dequeuing. Thus, when data originating from the DU is placed into the enqueue, the data may be divided into a number of queue elements, such that the number of queue elements are inserted into the enqueue in sequence. When the hardware resource processes the data from the DU, the queue elements are deleted from the queue, and the hardware resource accelerates the processing of the queue elements. Furthermore, the hardware resource sequentially inserts a plurality of queue elements after acceleration processing into the dequeue corresponding to the DU, that is, the data after acceleration processing is placed into the dequeue. And when the PF sends the accelerated data to the DU, deleting a plurality of queue elements subjected to accelerated processing from the dequeue. Further, the DU sends the accelerated data to the CU, and a corresponding network element is deployed between the CU and the core network, so that the CU sends the accelerated data to the core network through the network element. In addition, the number of the ingress queues and the number of the egress queues corresponding to the same DU may be the same or may be different. In addition, in this embodiment, in order to ensure the independence of each DU, the target queues corresponding to different DUs do not overlap.
For example, the PF shown in fig. 3 includes a plurality of queue groups as shown in fig. 5, which are 8 queue groups of queue group 0, queue group 1, \8230, queue group 7, etc., each queue group including 16 queues, and the internal structure of each queue is a task queue as shown in fig. 5. In this embodiment, the scheduling layer may allocate different target queues for different DUs, for example, the scheduling layer may allocate queue 1 and queue 2 in queue group 0 to DU1 that has been accessed, where queue 1 is an enqueue corresponding to DU1, queue 2 is an dequeue corresponding to DU1, and allocate queue 3 and queue 4 in queue group 0 to DU2 that has been accessed, where queue 3 is an enqueue corresponding to DU2, and queue 4 is a dequeue corresponding to DU 2. This is merely an exemplary illustration of one type of queue assignment and is not meant to be limiting. For example, in other embodiments, the corresponding target queue may be allocated to each accessed DU according to other allocation rules.
S402, the scheduling layer puts the data into a target queue corresponding to the distributed unit, wherein the target queue is at least two of the plurality of queues, so that the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue.
For example, after the scheduling layer receives data from DU1, the data may be placed in a target queue corresponding to DU1, for example, queue 1 in queue group 0, that is, an in-queue. It will be appreciated that the queue 1 may or may not be empty before the scheduling layer places the data in the queue 1. If the queue 1 is empty, after the scheduling layer puts the data into the queue 1, the heterogeneous acceleration card can select a target acceleration module from a plurality of acceleration modules to process the data in the queue 1 immediately. If the queue 1 is not empty, for example, before the scheduling layer puts the data into the queue 1, some historical data in the queue 1 is not processed, the scheduling layer may put the data into the historical data according to the first-in first-out characteristic of the queue, and after the historical data is processed, the heterogeneous accelerator card selects a target accelerator module from the plurality of accelerator modules to process the data.
Similarly, when the scheduling layer receives data from DU2, the data may be placed in a target queue corresponding to DU2, for example, queue 3 in queue group 0.
It is understood that the receiving of data from DU1 by the scheduling layer and the receiving of data from DU2 by the scheduling layer may occur simultaneously or may occur sequentially. Since the target queues corresponding to different DUs are different, for example, the enqueues corresponding to different DUs are different, the queue 1 and the queue 3 do not affect each other as described above. Since the heterogeneous acceleration card includes a plurality of acceleration modules, the heterogeneous acceleration card may select different acceleration modules to process the data in the queue 1 and the queue 3, respectively, for example, the heterogeneous acceleration card may select the acceleration module 1 to process the data in the queue 1, select the acceleration module 2 to process the data in the queue 3, and the acceleration module 1 and the acceleration module 2 may execute in parallel. Or, the heterogeneous accelerator card may select the same accelerator module to process the data in the queue 1 and the queue 3 in sequence. In addition, for data in the same queue, the heterogeneous accelerator card may select different acceleration modules at different time points for acceleration processing, or the heterogeneous accelerator card may select different acceleration modules for processing different queue elements in the same queue, or the heterogeneous accelerator card may select the same acceleration module for processing several adjacent queue elements in the same queue. That is, the present embodiment does not limit the processing manner of the heterogeneous accelerator card on the data in each enqueue.
For example, the heterogeneous accelerator card may first allocate a corresponding idle acceleration module to the data in the queue 1, so that the idle acceleration module performs acceleration processing on the data in the queue 1. And distributing a corresponding idle acceleration module to the data in the queue 3, so that the idle acceleration module accelerates the data in the queue 3. It is understood that the idle acceleration modules assigned by the heterogeneous acceleration cards to different queues may be different or the same. For example, the idle acceleration module allocated by the heterogeneous acceleration card to the data in the queue 1 is the target acceleration module 1, and the idle acceleration module allocated to the data in the queue 3 is the target acceleration module 2. However, when allocating a corresponding idle acceleration module to the data in the queue 3, if the target acceleration module 1 has completed processing the data in the queue 1 and thus becomes idle again, and/or the target acceleration module 2 has started processing the data in other queues, the target acceleration module 1 may be allocated to the data in the queue 3, so that the target acceleration module 1 sequentially performs acceleration processing on the data in the queue 1 and the queue 3.
For another example, the heterogeneous accelerator card may allocate an idle accelerator module to the data in the queue 1 and the data in the queue 3 at the same time, for example, the idle accelerator module allocated to the data in the queue 1 is the target accelerator module 1, and the idle accelerator module allocated to the data in the queue 3 is the target accelerator module 2. So that the target acceleration module 1 accelerates the data in the queue 1 and the target acceleration module 2 accelerates the data in the queue 3.
It is understood that the number of queues corresponding to each DU and the identification of the queues may be fixed or may vary with the workload of the DU. The number of target acceleration modules assigned to each queue may be one or more. In addition, a plurality of acceleration modules are included in the heterogeneous acceleration card, and the target acceleration module 1 and the target acceleration module 2 as described above are part of the plurality of acceleration modules. In addition, there is no fixed corresponding relationship between the acceleration modules in the heterogeneous acceleration card and the queue, for example, when the heterogeneous acceleration card selects an acceleration module for data in the queue, one or more acceleration modules may be randomly selected from the currently idle acceleration modules as a target acceleration module, or one or more acceleration modules may be selected from the currently idle acceleration modules as a target acceleration module according to a preset rule, so that the target acceleration module accelerates the data in the queue.
In addition, the target queues corresponding to the DUs may also be temporarily allocated according to the idle state of each queue in the accelerator card, for example, when the scheduling layer receives data from the DU, the scheduling layer selects an idle queue from multiple queues of the accelerator card, and uses one or more of the idle queues as the target queues corresponding to the DU.
In the embodiment of the invention, a scheduling layer is added at the stage of transferring data from a DU to an accelerator card, and the data from different DUs are put into different target queues through the scheduling layer, so that the accelerator card selects a target acceleration module from the currently idle acceleration modules, and the target acceleration module processes the data in the target queue. Therefore, any acceleration module in the acceleration card does not fixedly process data from one DU, namely, as long as a queue in the acceleration card has data to be processed and an idle acceleration module exists in the acceleration card, the acceleration module can process the data in the queue, thus realizing fine-grained hardware resource virtualization, improving the hardware resource utilization rate of the acceleration card, namely solving the problem of low hardware resource utilization rate caused by large VF virtualization granularity in the prior art.
In addition, because the embodiment of the invention adds the scheduling layer at the stage of the data transmission from the DU to the accelerator card, the code in the DU can not be changed, thereby realizing the code non-invasion, namely, the code of a manufacturer does not need to be modified.
On the basis of the above embodiment, the scheduling layer includes a monitor, a scheduling module and a queue allocation module, for example, as shown in fig. 3. Specifically, the monitor is configured to monitor an accessed distributed unit; the scheduling module is used for determining the initial number of the target queues corresponding to the distributed units which are accessed for the first time, or dynamically adjusting the target queues corresponding to the distributed units which are not accessed for the first time; and the queue distribution module is used for distributing the initial number of target queues to the distributed units which are accessed for the first time or distributing the target queues which are dynamically adjusted to the distributed units which are not accessed for the first time.
For example, the monitor may periodically or non-periodically traverse all DUs in the vRAN, thereby monitoring whether each DU is accessed, i.e., started. If a DU is accessed, the monitor may collect relevant information of the DU, such as the identity, type, workload, etc. of the DU. Further, it can be determined whether the DU is initially accessed according to the identity of the DU.
In one possible implementation, the monitor may maintain a data structure in which the identities of the DUs that have been accessed at the previous time are stored. Assuming that the monitor acquires the identities of the plurality of DUs at the current time, further, the monitor may perform a query in the data structure for the identity of each DU in the plurality of DUs to determine whether the identity of each DU acquired at the current time is in the data structure. If the identity of the DU is in the data structure, it indicates that the DU has been accessed at the previous time, i.e. the DU is a DU that is not initially accessed. If the id of the DU is not in the data structure, it indicates that the DU was not accessed at the previous time, i.e. the DU is an initially accessed DU. Further, the monitor may record the identity of the first accessed DU in the data structure, thereby updating the data structure.
In another possible implementation, the scheduling module may maintain the data structure. Assuming that the monitor acquires the identities of the plurality of DUs at the current moment, the monitor further sends the identities of the plurality of DUs to the scheduling module. The scheduling module queries the data structure for the identity of each DU in the plurality of DUs to determine whether the identity of each DU collected at the current time is in the data structure. If the identity of the DU is in the data structure, it indicates that the DU has been accessed at the previous time, i.e. the DU is a DU that is not initially accessed. If the id of the DU is not in the data structure, it indicates that the DU was not accessed at the previous time, i.e. the DU is an initially accessed DU. Further, the scheduling module may record the identity of the first accessed DU in the data structure, so as to update the data structure.
In this embodiment, before the scheduling layer receives data from the distributed unit, the method further includes: and the scheduling layer judges whether the distributed unit is a distributed unit accessed for the first time. And if the distributed unit is the distributed unit which is accessed for the first time, the dispatching layer allocates the initial number of target queues for the distributed unit. And if the distributed unit is not the distributed unit which is accessed for the first time, the dispatching layer dynamically adjusts the target queue corresponding to the distributed unit.
For example, after the monitor or the scheduling module determines the first accessed DU and the non-first accessed DU, the scheduling module may determine an initial number of target queues allocated to the first accessed DU, for example, the initial number of target queues of the DUs in different application scenarios is different. Alternatively, the initial number of target queues for different DUs may be determined by the user. The queue allocating module may allocate an initial number of target queues to the DU according to the initial number determined by the scheduling module. For example, the queue assignment module may determine an initial number of target queues from the free queues and assign the initial number of target queues to the DU.
In addition, the scheduling module may also dynamically adjust the target queue corresponding to the DU that is not initially accessed. Specifically, the scheduling module may generate a dynamic adjustment policy, for example, increase or decrease a target queue corresponding to the DU which is not initially accessed. In some embodiments, the dynamic adjustment policy may specifically include an increased or decreased number of target queues. The queue allocation module may allocate the dynamically adjusted target queue to the DU that is not initially accessed according to the dynamic adjustment policy.
Specifically, when the distributed unit is a distributed unit that is accessed for the first time, the scheduling layer may allocate an initial number of target queues to the distributed unit in multiple implementation manners, and several possible implementation manners are described below:
in one possible implementation, the scheduling layer allocates an initial number of target queues for the distributed unit, including: the scheduling layer receives initial configuration information sent by a terminal, wherein the terminal is used for displaying a first user interface, the first user interface comprises configuration icons used for configuring the initial quantity, the initial configuration information is generated by the terminal according to an operation instruction of a user for the configuration icons, and the initial configuration information comprises the initial quantity; and the scheduling layer allocates the initial number of target queues to the distributed units according to the initial configuration information.
For example, as shown in fig. 6, the user terminal 60 displays a first user interface 61, where the first user interface 61 includes an identifier of each DU, a control button 62 of each DU, and a configuration icon 63 of the initial number of target queues corresponding to each DU. That is, in the present embodiment, the user can control whether each DU is accessed through the control button 62, for example, the user can control DU access by sliding the control button 62 to the right. Further, for an accessed DU, the user may also configure the initial number of the target queue corresponding to the DU through the configuration icon 63. For example, taking DU1 as an example, the user terminal 60 may generate initial configuration information in response to a sliding operation of the control button 62 by the user and the initial number 6 configured in the configuration icon 63 by the user, where the initial configuration information may include the identity of DU1 and the initial number. Further, the user terminal 60 may transmit the initial configuration information to the RU as shown in fig. 3, which transmits the initial configuration information to the general server. The generic server may launch DU1 according to the initial configuration information, and a scheduling layer in the generic server may allocate 6 target queues to DU1 according to the initial configuration information.
It is understood that the first user interface shown in fig. 6 is only an illustrative example, and the present embodiment does not limit the content displayed in the first user interface and the arrangement of the displayed content. For example, the first user interface may also display the current existing data occupancy of each queue in the heterogeneous accelerator card, for example, a ratio of the size of the existing data to the queue capacity. So that the user can determine whether to open a new DU and determine the initial number of target queues allocated to the new DU based on the currently existing data occupancy of each queue. Therefore, a user can flexibly control whether each DU accesses and the initial number of the target queues corresponding to the initially accessed DU through the first user interface. In addition, when there is no data in the target queue corresponding to the DU, the user may also control the DU to be no longer accessed, for example, as shown in fig. 6, when the control button 62 is slid to the left, the DU1 is no longer accessed.
In another possible implementation manner, the allocating, by the scheduling layer, an initial number of target queues for the distributed unit includes: and the scheduling layer allocates an initial number of target queues corresponding to the target application scenes to the distributed units according to the target application scenes corresponding to the distributed units.
Optionally, the multiple distributed units include multiple types of distributed units corresponding to multiple application scenarios, and an initial number of target queues allocated to each type of distributed unit is used to characterize priority division of the multiple application scenarios.
For example, there are three application scenarios in the 5G communication technology, which are uLLRC, eMBB, mtc, respectively, and each DU may correspond to one application scenario, that is, each DU may process data in one application scenario. Since the larger the number of queues allocated to a DU, the higher the rate at which the DU accesses hardware resources in the accelerator card. It is assumed that the multiple DUs in the vRAN include three major types of DUs, for example, a DU corresponding to uLLRC is denoted as a first type of DU, a DU corresponding to eMBB is denoted as a second type of DU, and a DU corresponding to mtc is denoted as a third type of DU, where each type of DU may be one or more. And the target queues corresponding to different DUs are different, even though the target queues corresponding to different DUs in the same type are different.
Specifically, when the three application scenarios are prioritized, the initial number of target queues allocated to each class of DU is used to characterize the prioritization. For example, llrc: eMBB: mtc =3, i.e. the ratio between the initial number of target queues allocated to DUs of the first type, the initial number of target queues allocated to DUs of the second type, and the initial number of target queues allocated to DUs of the third type is 3. For example, the initial number of target queues allocated to the first-type DUs is 6, the initial number of target queues allocated to the second-type DUs is 4, and the initial number of target queues allocated to the third-type DUs is 2. In addition, the initial number of target queues allocated to different DUs of the same type is the same. For example, if both DU1 and DU2 are first-type DUs, then the initial number of target queues allocated to DU1 is 6, and the initial number of target queues allocated to DU2 is also 6, i.e. DU1 is allocated 6 initial target queues, DU2 is allocated 6 initial target queues, and DU1 is allocated 6 initial target queues different from DU 2.
When the DU is an initially accessed DU, that is, when the DU is newly started on the general-purpose server, the general-purpose server may first identify an application scenario corresponding to the DU, for example, the application scenario is one of the 3 application scenarios described above, and the application scenario may be marked as a target application scenario. Further, the scheduling layer may allocate an initial number of target queues to the DU according to a target application scenario corresponding to the DU, where the initial number is an initial number corresponding to the target application scenario. For example, if the target application scenario corresponding to the DU is uLLRC, 6 initial target queues are allocated to the DU. For example, as shown in fig. 3, the scheduling layer includes a monitor, a scheduling module, and a queue assignment module. The monitor may traverse all DUs in the general server, and when the monitor monitors a DU that is initially accessed, the scheduling module may make a decision to allocate 6 initial target queues to the DU according to a target application scenario corresponding to the DU. Further, the queue allocation module allocates 6 initial target queues to the DU according to the decision.
Several possible implementations of the scheduling layer allocating an initial number of target queues to the distributed unit when the distributed unit is the first-time-to-access distributed unit are described above. The following describes a process of the scheduling layer dynamically adjusting the target queue corresponding to the distributed unit when the distributed unit is not the first-time accessed distributed unit. Specifically, there are also multiple implementation manners when the scheduling layer dynamically adjusts the target queues corresponding to the distributed units, and several of them are introduced below:
in a possible implementation manner, the dynamically adjusting, by the scheduling layer, the target queue corresponding to the distributed unit includes: the scheduling layer monitors the workload of the distributed units; and the scheduling layer dynamically adjusts the target queues corresponding to the distributed units according to the workload.
As shown in fig. 3, the scheduling layer includes a monitor, a scheduling module, and a queue assignment module. The monitor may traverse all DUs on the general-purpose server, and the monitor may identify the type of application scenario to which each DU corresponds, e.g., uLLRC, eMBB, or mtc. Different DUs typically correspond to different 5G application scenarios. In addition, the monitor may also collect the workload of each DU that is not initially accessed.
For the workload of each DU collected by the monitor, the scheduling module may adjust the target queues corresponding to each DU that is not initially accessed according to the workload of each DU, for example, adjust the number of the target queues and/or the identifier of the target queues. Specifically, the scheduling module may determine a target queue scheduling decision corresponding to each non-initially-accessed DU. For example, when the workload of a DU is low, the target queue corresponding to the DU is reduced. And when the workload of the DU is higher, increasing the target queue corresponding to the DU. Further, the queue allocation module may adjust the target queue corresponding to the DU that needs to be adjusted according to the scheduling decision determined by the scheduling module. For example, the scheduling module makes a decision to add two queues to the DU, and the queue assignment module may select two queues from the currently idle queues according to the decision and assign the two queues to the DU.
In another possible implementation manner, the dynamically adjusting, by the scheduling layer, the target queue corresponding to the distributed unit includes: the scheduling layer receives a dynamic adjustment instruction sent by a terminal, the terminal is used for displaying a second user interface, the second user interface comprises identifiers of accessed distributed units and identifiers of target queues respectively corresponding to the accessed distributed units, and the dynamic adjustment instruction is generated by a user according to the target queues respectively corresponding to the accessed distributed units; and the scheduling layer dynamically adjusts the target queues corresponding to the distributed units according to the dynamic adjustment instruction.
As shown in fig. 7, the user terminal 60 may further display a second user interface 71, where the second user interface 71 includes identifications of accessed DUs, for example, DU1 and DU2, and in addition, the second user interface 71 further includes identifications of target queues corresponding to the accessed DUs, for example, the target queue corresponding to DU1 includes queue 1, and the target queue corresponding to DU2 includes queue 2 and queue 4. The second user interface 71 also displays the currently existing data occupancy of each destination queue, for example, 80% of the currently existing data occupancy of queue 1, 40% of the currently existing data occupancy of queue 2, and 0% of the currently existing data occupancy of queue 4. It can be seen that, DU2 occupies more queues than DU1, and the currently existing data occupancy of queue 1 is much greater than the currently existing data occupancy of queues 2 and 4. It is shown that a large amount of data from DU1 requires heterogeneous accelerator card processing, while a small amount of data from DU2 requires heterogeneous accelerator card processing. At this time, the user may dynamically adjust the target queues corresponding to DU1 and DU2 in the second user interface. For example, DU2 corresponding to queue 4 is modified to DU1, and at this time, the user terminal 60 generates a dynamic adjustment command including the identifier of queue 4 and the identifier of DU1 according to the modification operation. Further, the user terminal 60 sends the dynamic adjustment instruction to the RU shown in fig. 3, and the RU sends the dynamic adjustment instruction to the general-purpose server, so that the scheduling layer in the general-purpose server dynamically adjusts the target queue corresponding to DU1, for example, the target queue corresponding to DU1 is adjusted from the original queue 1 to queue 1 and queue 4. When the scheduling layer subsequently receives the data from the DU1 again, the data can be placed in the queue 4, so that the heterogeneous accelerator card can select different acceleration modules for the queue 1 and the queue 4, respectively, and the data in the queue 1 and the data in the queue 4 are processed in parallel, thereby further improving the utilization rate of hardware resources in the heterogeneous accelerator card and the data processing efficiency. Meanwhile, through the second user interface, the user can flexibly adjust the target queues corresponding to the accessed DUs, and the user experience is improved.
Optionally, the method further includes: the scheduling layer records the mapping relation between the identification of the distributed unit and the identification of the target queue corresponding to the distributed unit; and after the dispatching layer dynamically adjusts the target queues corresponding to the distributed units, updating the mapping relation.
For example, in order to ensure that data from different DUs can be correctly fed back to the corresponding DU after being processed by the accelerator card, a dynamic mapping table may be maintained in the scheduling layer, where the dynamic mapping table may store a DU Identifier (ID) and an identifier of a target queue corresponding to the DU. For example, when the scheduling module makes a decision to add or drop a queue for a DU, or makes an allocation of several initial target queues for a DU, the scheduling module may update the dynamic mapping table accordingly. Alternatively, when the scheduling module makes a decision to add or reduce a queue for a DU that is not initially accessed, or makes a decision to allocate several initial target queues for a DU that is initially accessed, the queue allocation module performs the decision, for example, allocates the initial number of target queues for the DU that is initially accessed, or allocates a dynamically adjusted target queue for the DU that is not initially accessed. Further, the queue allocation module updates the dynamic mapping table correspondingly.
Optionally, the accelerator card includes a physical network interface, and the plurality of distributed units are connected to the physical network interface of the accelerator card through the scheduling layer; the physical network interface comprises a plurality of queues, and the queues comprise an input queue for data to enter the accelerator card and an output queue for data to exit the accelerator card.
As shown in fig. 3, the heterogeneous accelerator card includes a Physical Function (PF), and a plurality of DUs are connected to the Physical port of the heterogeneous accelerator card through a scheduling layer. The physical portal includes 8 queue groups as shown in fig. 5, each of which includes 16 queues. These queues include an enqueue for data entering the heterogeneous accelerator card and an dequeue for data exiting the heterogeneous accelerator card.
Optionally, the target queue corresponding to the distributed unit includes an in queue corresponding to the distributed unit and an out queue corresponding to the distributed unit; the scheduling layer puts the data into a target queue corresponding to the distributed unit, including: the scheduling layer puts the data into an enqueue corresponding to the distributed unit; the method further comprises the following steps: after the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue, the method further comprises: and the accelerator card sends the data processed by the target accelerator module to the distributed unit through the dequeue corresponding to the distributed unit.
For example, 6 initial target queues allocated by the scheduling layer to the DU include 3 in queues and 3 out queues. When the scheduling layer receives the data from the DU, the data is placed in an enqueue corresponding to the DU. When the heterogeneous acceleration card selects a target acceleration module from the multiple acceleration modules included in the heterogeneous acceleration card, and the target acceleration module processes the data in the queue, the acceleration card may also place the data processed by the target acceleration module in the out-queue corresponding to the DU, or the target acceleration module places the data processed by the target acceleration module in the out-queue corresponding to the DU. And then, the processed data is sent to the DU through the dequeue corresponding to the DU. Further, the DU may send the processed data to the CUs.
The present embodiment adjusts the target queue corresponding to the DU according to the fluctuation of the workload of the DU. Specifically, when the workload of a DU is low, the target queue corresponding to the DU is reduced. And when the workload of the DU is higher, increasing the target queue corresponding to the DU. The hardware resource utilization rate of the accelerator card is further improved. In addition, the scheduling layer processes and schedules the data from different DUs, and transmits the data of different DUs to respective queues of different DUs through the physical network port. And the data is not transmitted into the queue through the virtual network port, so that the problem of low utilization rate of hardware resources caused by larger virtualization granularity of the virtual network port is solved.
Fig. 8 is a flowchart of a data processing method according to another embodiment of the present invention. In this embodiment, the method includes the following steps:
and S501, updating the state.
Specifically, the monitor in the scheduling layer may monitor the status of each DU and the status of each queue in real time. For example, the monitor may monitor whether each DU is a newly started DU, i.e., an initially accessed DU, whether each queue changes from an idle state to a non-idle state, or whether each queue changes from a non-idle state to an idle state, etc.
S502, collecting DU and queue information.
Specifically, the monitor may further collect the workload of each DU, and the idle status of each queue or the current existing data occupancy of each queue.
S503, judging whether a new DU exists. If yes, then S505 is executed, otherwise S504 is executed.
For each DU, the scheduling module determines whether the DU is an initially accessed DU. If yes, allocating a default initial number of queues to the DU according to the application scenario corresponding to the DU. If not, a queue adjustment decision for the DU is made according to the workload of the DU collected by the monitor.
And S504, decision making.
For example, for a DU that is not initially accessed, the scheduling module makes a decision to add or reduce the target queue for the DU according to the workload of the DU or the dynamic adjustment instruction as described above.
And S505, allocating a default initial number of queues.
For example, for a DU that is initially accessed, the scheduling module makes a decision to allocate a default initial number of target queues to the DU according to an application scenario corresponding to the DU or the initial configuration information as described above.
And S506, updating the queue mapping table.
For example, after allocating a default initial number of target queues to the initially accessed DU, the mapping relationship between the identifier of the initially accessed DU and the identifier of the default initial number of target queues is added to the queue mapping table, i.e., the above-mentioned dynamic mapping table, so as to update the queue mapping table. Or after the target queue is adjusted for the DU which is not initially accessed, the mapping relationship between the original identity of the DU and the identity of the target queue before adjustment in the queue mapping table may be updated, so as to update the mapping relationship between the identity of the DU and the identity of the target queue after adjustment. And updating the queue mapping table.
And S507, distributing the queues.
For example, when the scheduling module makes a decision to add or reduce a queue for a DU that is not initially accessed, or makes a decision to allocate several initial target queues for a DU that is initially accessed, the queue allocation module performs the decision, for example, allocates the initial number of target queues for the DU that is initially accessed, or allocates dynamically adjusted target queues for the DUs that are not initially accessed. It can be understood that, in other embodiments, after the queue allocation module executes the decision, the queue allocation module may update the queue mapping table, and the specific update process refers to the update process described above, and is not described herein again. In addition, the steps shown in fig. 8 may be performed every 1 second.
The embodiment of the invention transmits the data to the queue through the physical network port, and can effectively avoid resource waste caused by the area division of hardware resources by the virtual network port. Compared with the prior art, the corresponding relationship between the virtual network ports and the DUs causes that the number of the supportable DUs is limited by the number of the virtual network ports, and in this embodiment, since the hardware resources in the accelerator card do not need to be divided into regions, the accelerator card allocates the corresponding acceleration module for the data in the queue, so that the same acceleration module is not limited to process the data from the same DU, and therefore, the number of the DUs supportable in this embodiment is much larger than the number of the DUs supportable in the prior art. In addition, the fine-grained scheduling control strategy is added in the embodiment, so that the isolation between different DUs is ensured, and the flexible use capability of hardware resources of the DUs with different workloads is also ensured. In addition, in this embodiment, for different application scenarios, corresponding initial number of target queues are allocated to DUs in different application scenarios, which not only embodies the priority division of each application scenario, but also can further improve the utilization rate of hardware resources in the accelerator card in different application scenarios. Therefore, different service quality requirements exist for different application scenes, more effective scheduling management is realized, and hardware resources are reasonably distributed.
Fig. 9 is a schematic structural diagram of a data processing apparatus according to an embodiment of the present invention. The data processing apparatus provided in the embodiment of the present invention may perform the processing procedure provided in the embodiment of the data processing method, and the apparatus may be implemented in a software and/or hardware manner, and may be configured in a wireless access network, where the wireless access network includes a plurality of distributed units, the scheduling layer, and an accelerator card, the plurality of distributed units are connected to the accelerator card through the scheduling layer, and the accelerator card includes a plurality of queues and a plurality of accelerator modules. In particular, the data processing means may be said scheduling layer. As shown in fig. 9, the data processing apparatus 90 includes:
a receiving module 91, configured to receive data from the distributed unit;
a processing module 92, configured to place the data into a target queue corresponding to the distributed unit, where the target queue is at least two of the multiple queues, so that the accelerator card selects a target acceleration module from the multiple acceleration modules to process the data in the target queue.
Optionally, the data processing apparatus 90 further includes: a determining module 93, configured to determine whether the distributed unit is an initially accessed distributed unit before the receiving module 91 receives data from the distributed unit.
Optionally, the data processing apparatus 90 further includes: a queue assignment module 94, the queue assignment module 94 being configured to:
and if the distributed unit is the initially accessed distributed unit, allocating an initial number of target queues to the distributed unit.
In a possible implementation manner, when the queue allocating module 94 allocates the initial number of target queues to the distributed unit, it is specifically configured to:
receiving initial configuration information sent by a terminal, wherein the terminal is used for displaying a first user interface, the first user interface comprises configuration icons used for configuring the initial number, the initial configuration information is generated by the terminal according to an operation instruction of a user for the configuration icons, and the initial configuration information comprises the initial number;
and distributing the initial number of target queues to the distributed units according to the initial configuration information.
In another possible implementation manner, when the queue allocating module 94 allocates the initial number of target queues to the distributed unit, it is specifically configured to:
and distributing an initial number of target queues corresponding to the target application scenes for the distributed units according to the target application scenes corresponding to the distributed units.
Optionally, the multiple distributed units include multiple types of distributed units corresponding to multiple application scenarios, and an initial number of target queues allocated to each type of distributed unit is used to characterize priority division of the multiple application scenarios.
Optionally, the data processing apparatus 90 further includes: an adjustment module 95, the adjustment module 95 being configured to:
and if the distributed unit is not the distributed unit which is accessed for the first time, dynamically adjusting the target queue corresponding to the distributed unit.
In a feasible implementation manner, when the adjusting module 95 dynamically adjusts the target queue corresponding to the distributed unit, the method is specifically configured to:
monitoring the workload of the distributed units;
and dynamically adjusting the target queues corresponding to the distributed units according to the workload.
In another feasible implementation manner, when the adjusting module 95 dynamically adjusts the target queue corresponding to the distributed unit, the method is specifically configured to:
receiving a dynamic adjustment instruction sent by a terminal, wherein the terminal is used for displaying a second user interface, the second user interface comprises identifiers of accessed distributed units and identifiers of target queues respectively corresponding to the accessed distributed units, and the dynamic adjustment instruction is generated by a user according to the target queues respectively corresponding to the accessed distributed units;
and dynamically adjusting the target queue corresponding to the distributed unit according to the dynamic adjustment instruction.
Optionally, the data processing apparatus 90 further includes: a recording module 96 and an updating module 97, configured to record a mapping relationship between an identifier of the distributed unit and an identifier of a target queue corresponding to the distributed unit; the updating module 97 is configured to update the mapping relationship after the scheduling layer dynamically adjusts the target queue corresponding to the distributed unit.
Optionally, the accelerator card includes a physical network interface, and the plurality of distributed units are connected to the physical network interface of the accelerator card through the scheduling layer;
the physical network interface comprises a plurality of queues, and the queues comprise an input queue for data to enter the accelerator card and an output queue for data to exit the accelerator card.
Optionally, the target queue corresponding to the distributed unit includes an in queue corresponding to the distributed unit and an out queue corresponding to the distributed unit; when the processing module 92 puts the data into the target queue corresponding to the distributed unit, the processing module is specifically configured to: placing the data into an enqueue corresponding to the distributed unit; and after the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue, the accelerator card is further configured to send the data processed by the target acceleration module to the distributed unit through the dequeue corresponding to the distributed unit.
Optionally, the scheduling layer includes a monitor, a scheduling module, and a queue allocation module;
the monitor is used for monitoring the accessed distributed units;
the scheduling module is used for determining the initial number of the target queues corresponding to the distributed units which are accessed for the first time, or dynamically adjusting the target queues corresponding to the distributed units which are not accessed for the first time;
the queue distribution module is used for distributing the initial number of target queues to the distributed units accessed for the first time or distributing the dynamically adjusted target queues to the distributed units accessed for the non-first time.
The data processing apparatus in the embodiment shown in fig. 9 can be used to implement the technical solutions of the above method embodiments, and the implementation principles and technical effects are similar, and are not described herein again.
In one possible design, the data processing apparatus shown in fig. 9 may be implemented as an electronic device, which may be a server or the like. As shown in fig. 10, the electronic device may include: a processor 101 and a memory 102. Wherein, the memory 102 is used for storing a program for executing the data processing method provided in the above-mentioned embodiments by the corresponding electronic device, and the processor 101 is configured to execute the program stored in the memory 102.
The program comprises one or more computer instructions, wherein the one or more computer instructions, when executed by the processor 101, are capable of performing the steps of: and receiving data from the distributed unit, and putting the data into a target queue corresponding to the distributed unit, wherein the target queue is at least two of the plurality of queues, so that the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queue.
Further, the processor 101 is also configured to perform all/part of the steps of the method embodiments shown in the foregoing.
The electronic device may further include a communication interface 103 for communicating with other devices or a communication network.
In addition, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored, where the computer program is executed by a processor to implement the data processing method described in the above embodiment.
Furthermore, an embodiment of the present invention provides a computer program product, including: computer program which, when executed by a processor of an electronic device, causes the processor to carry out the data processing method as described above.
In addition, an embodiment of the present invention further provides a wireless access network, where the wireless access network includes a plurality of distributed units, a scheduling layer, and an accelerator card, where the plurality of distributed units are connected to the accelerator card through the scheduling layer, and the accelerator card includes a plurality of queues and a plurality of accelerator modules; the scheduling layer is configured to perform the data processing method as described above. In particular, the radio access network may be a virtualized radio access network.
In addition, the embodiment of the present invention further provides a cloud server, where the cloud server includes a plurality of distributed units, a scheduling layer, and an acceleration card, where the plurality of distributed units are connected to the acceleration card through the scheduling layer, and the acceleration card includes a plurality of queues and a plurality of acceleration modules; the scheduling layer is configured to perform the data processing method as described above.
As shown in fig. 11, user terminal (UE) 111 transmits user data to base station 113. Base station 113 includes antennas and RUs. For example, the antenna may receive user data from a user terminal (UE), and the user data may be specifically carried in a radio frequency signal, that is, the antenna may receive the radio frequency signal, and the data carried in the radio frequency signal is the user data from the user terminal (UE). The RU may convert a radio frequency signal from the antenna into a digital signal. Further, the RU transmits the user data in the form of the digital signal to the cloud server 112, and the internal structure of the cloud server 112 may be, for example, the internal structure of the general server shown in fig. 3. For example, the cloud server 112 includes a NIC, a plurality of DUs, a scheduling layer, and a heterogeneous accelerator card. Specifically, the RU transmits the user data in the form of the digital signal to the NIC. The NIC further sends the user data in the form of the digital signal to the DU, the DU sends the user data to the scheduling layer, and the scheduling layer puts the user data into the queue corresponding to the DU. Therefore, the heterogeneous acceleration card can select a target acceleration module from the multiple acceleration modules to accelerate the processing of the user data in the queue. Further, the target acceleration module puts the accelerated user data into the dequeue corresponding to the DU, so that the heterogeneous acceleration card sends the accelerated user data in the dequeue to the DU, further, the DU sends the accelerated user data to the CU, and the CU sends the accelerated user data to the core network. The core network processes the accelerated user data, for example, generates a user response. Further, the core network sends the user response to the CU, the CU sends the user response to the cloud server 112, the cloud server 112 sends the user response to the base station 113, and the base station 113 feeds the user response back to the user terminal (UE) 111.
In particular, the user data may be a user request. In one application scenario, the user request is a voice call request or a video call request, and the user response may be a busy tone prompt message indicating that the terminal of the opposite user is in a busy tone state, or the user response may be response data of the opposite user. In another application scenario, the user request is an operation instruction of a user interface provided by a user for an application program, for example, the application program is a browser, and the user request is, for example, a Hypertext Transfer Protocol (HTTP) request for requesting to open a web page. The user response may be an HTTP response.
The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and the parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. One of ordinary skill in the art can understand and implement it without inventive effort.
Through the above description of the embodiments, those skilled in the art will clearly understand that each embodiment can be implemented by adding a necessary general hardware platform, and of course, can also be implemented by a combination of hardware and software. With this understanding in mind, the above-described technical solutions and/or portions thereof that contribute to the prior art may be embodied in the form of a computer program product, which may be embodied on one or more computer-usable storage media having computer-usable program code embodied therein (including but not limited to disk storage, CD-ROM, optical storage, etc.).
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory. The memory may include forms of volatile memory in a computer readable medium, random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit the same; although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some or all of the technical features may be equivalently replaced; and the modifications or the substitutions do not make the essence of the corresponding technical solutions depart from the scope of the technical solutions of the embodiments of the present application.

Claims (16)

1. A data processing method, wherein the method is applied to a wireless access network, the wireless access network comprises a plurality of distributed units, a scheduling layer and an accelerator card, the plurality of distributed units are connected with the accelerator card through the scheduling layer, the accelerator card comprises a plurality of queues and a plurality of accelerator modules, the method comprises:
the scheduling layer receiving data from the distributed units;
and the scheduling layer puts the data into target queues corresponding to the distributed units, wherein the target queues are at least two of the plurality of queues, so that the accelerator card selects a target acceleration module from the plurality of acceleration modules to process the data in the target queues.
2. The method of claim 1, wherein prior to the scheduling layer receiving data from the distributed unit, the method further comprises:
and the scheduling layer judges whether the distributed unit is a distributed unit accessed for the first time.
3. The method of claim 2, wherein the method further comprises:
and if the distributed unit is the distributed unit which is accessed for the first time, the dispatching layer allocates the initial number of target queues for the distributed unit.
4. The method of claim 3, wherein the scheduling layer allocates an initial number of target queues for the distributed unit, comprising:
the scheduling layer receives initial configuration information sent by a terminal, wherein the terminal is used for displaying a first user interface, the first user interface comprises configuration icons used for configuring the initial quantity, the initial configuration information is generated by the terminal according to an operation instruction of a user for the configuration icons, and the initial configuration information comprises the initial quantity;
and the scheduling layer allocates the initial number of target queues to the distributed units according to the initial configuration information.
5. The method of claim 3, wherein the scheduling layer allocates an initial number of target queues for the distributed unit, comprising:
and the scheduling layer allocates an initial number of target queues corresponding to the target application scenes to the distributed units according to the target application scenes corresponding to the distributed units.
6. The method of claim 5, wherein the plurality of distributed units includes multiple classes of distributed units corresponding to multiple application scenarios, and an initial number of target queues assigned to each class of distributed units is used to characterize prioritization of the multiple application scenarios.
7. The method of claim 2, wherein the method further comprises:
and if the distributed unit is not the distributed unit which is accessed for the first time, the dispatching layer dynamically adjusts the target queue corresponding to the distributed unit.
8. The method of claim 7, wherein the scheduling layer dynamically adjusts the target queue corresponding to the distributed unit, comprising:
the scheduling layer monitors the workload of the distributed units;
and the scheduling layer dynamically adjusts the target queues corresponding to the distributed units according to the workload.
9. The method of claim 7, wherein the scheduling layer dynamically adjusts the target queue corresponding to the distributed unit, including:
the scheduling layer receives a dynamic adjustment instruction sent by a terminal, the terminal is used for displaying a second user interface, the second user interface comprises identifiers of accessed distributed units and identifiers of target queues respectively corresponding to the accessed distributed units, and the dynamic adjustment instruction is generated by a user according to the target queues respectively corresponding to the accessed distributed units;
and the scheduling layer dynamically adjusts the target queues corresponding to the distributed units according to the dynamic adjustment instruction.
10. The method of claim 1, wherein the method further comprises:
the scheduling layer records the mapping relation between the identification of the distributed unit and the identification of the target queue corresponding to the distributed unit;
and after the dispatching layer dynamically adjusts the target queues corresponding to the distributed units, updating the mapping relation.
11. The method of claim 1, wherein the acceleration card comprises a physical portal, the plurality of distributed units being connected to the physical portal of the acceleration card through the scheduling layer;
the physical network interface comprises a plurality of queues, and the queues comprise an input queue for data to enter the accelerator card and an output queue for data to exit the accelerator card.
12. The method of claim 1, wherein the scheduling layer comprises a monitor, a scheduling module, and a queue allocation module;
the monitor is used for monitoring the accessed distributed units;
the scheduling module is used for determining the initial number of the target queues corresponding to the distributed units accessed for the first time or dynamically adjusting the target queues corresponding to the distributed units which are not accessed for the first time;
and the queue distribution module is used for distributing the initial number of target queues to the distributed units which are accessed for the first time or distributing the target queues which are dynamically adjusted to the distributed units which are not accessed for the first time.
13. A wireless access network, wherein the wireless access network comprises a plurality of distributed units, a scheduling layer and an acceleration card, the plurality of distributed units are connected with the acceleration card through the scheduling layer, and the acceleration card comprises a plurality of queues and a plurality of acceleration modules;
the scheduling layer is configured to execute to implement the method of any one of claims 1-12.
14. A cloud server, wherein the cloud server comprises a plurality of distributed units, a scheduling layer and an acceleration card, the plurality of distributed units are connected with the acceleration card through the scheduling layer, and the acceleration card comprises a plurality of queues and a plurality of acceleration modules;
the scheduling layer is configured to execute to implement the method of any one of claims 1-12.
15. An electronic device, comprising:
a memory;
a processor; and
a computer program;
wherein the computer program is stored in the memory and configured to be executed by the processor to implement the method of any one of claims 1-12.
16. A computer-readable storage medium, on which a computer program is stored, wherein the computer program, when executed by a processor, implements the method of any one of claims 1-12.
CN202310173087.1A 2023-02-14 2023-02-14 Data processing method, wireless access network, device and storage medium Pending CN115843113A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310173087.1A CN115843113A (en) 2023-02-14 2023-02-14 Data processing method, wireless access network, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310173087.1A CN115843113A (en) 2023-02-14 2023-02-14 Data processing method, wireless access network, device and storage medium

Publications (1)

Publication Number Publication Date
CN115843113A true CN115843113A (en) 2023-03-24

Family

ID=85580262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310173087.1A Pending CN115843113A (en) 2023-02-14 2023-02-14 Data processing method, wireless access network, device and storage medium

Country Status (1)

Country Link
CN (1) CN115843113A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283283A1 (en) * 2014-06-26 2016-09-29 Gubernet Inc. Scheduling method and apparatus in multiprocessing environment
US20200125389A1 (en) * 2019-04-01 2020-04-23 Stephen T. Palermo Edge server cpu with dynamic deterministic scaling
CN113032103A (en) * 2021-04-14 2021-06-25 中南大学 VF (variable frequency) resource dynamic scheduling method based on SR-IOV (scheduling request-input/output) function of high-speed network card
WO2021138805A1 (en) * 2020-01-07 2021-07-15 Oppo广东移动通信有限公司 Method and apparatus for synchronously scheduling a service, and communication device
CN113473533A (en) * 2021-06-30 2021-10-01 航天新通科技有限公司 Method and system for dynamically adjusting wireless base station deployment based on GPU virtualization
CN113992688A (en) * 2021-09-26 2022-01-28 阿里巴巴达摩院(杭州)科技有限公司 Distribution unit cloud deployment method, device, storage medium and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283283A1 (en) * 2014-06-26 2016-09-29 Gubernet Inc. Scheduling method and apparatus in multiprocessing environment
US20200125389A1 (en) * 2019-04-01 2020-04-23 Stephen T. Palermo Edge server cpu with dynamic deterministic scaling
WO2021138805A1 (en) * 2020-01-07 2021-07-15 Oppo广东移动通信有限公司 Method and apparatus for synchronously scheduling a service, and communication device
CN113032103A (en) * 2021-04-14 2021-06-25 中南大学 VF (variable frequency) resource dynamic scheduling method based on SR-IOV (scheduling request-input/output) function of high-speed network card
CN113473533A (en) * 2021-06-30 2021-10-01 航天新通科技有限公司 Method and system for dynamically adjusting wireless base station deployment based on GPU virtualization
CN113992688A (en) * 2021-09-26 2022-01-28 阿里巴巴达摩院(杭州)科技有限公司 Distribution unit cloud deployment method, device, storage medium and system

Similar Documents

Publication Publication Date Title
WO2017186092A1 (en) Network slice selection method and apparatus
CN107241281B (en) Data processing method and device
KR20180123379A (en) Method and apparatus for allocating resource in software defined network
WO2011139462A2 (en) Techniques for initiating communication in a wireless network
WO2019012735A1 (en) Ran slice resource management device and ran slice resource management method
US20230209540A1 (en) Method of allocating uplink data packet resource and user equipment
CN105959090A (en) Service processing method and device of power wireless private network
CN110267276B (en) Network slice deployment method and device
WO2014094310A1 (en) Resource scheduling method and device
CN112543508A (en) Wireless resource allocation method and network architecture for 5G network slice
CN112868265A (en) Network resource management method, management device, electronic device and storage medium
US20210399986A1 (en) Data communication method, server device, client device and medium
CN107426109B (en) Traffic scheduling method, VNF module and traffic scheduling server
WO2022127555A1 (en) Multi-user wireless data transmission method, system, device, and storage medium
US20180310291A1 (en) Control signal sending method and apparatus
CN105356980A (en) Response message sending method and device
CN115843113A (en) Data processing method, wireless access network, device and storage medium
CN115568020A (en) Resource allocation method, information sending method and device
WO2017177822A1 (en) Node selection method and apparatus, and node
WO2020143293A1 (en) Information reporting method and communication apparatus
WO2021068207A1 (en) Apparatus, method and computer program
CN114126010A (en) Control method, device and system for access network slice
CN112996114A (en) Resource scheduling method, device, equipment and storage medium
CN113891398B (en) Resource determination method, equipment and storage medium
CN116133000B (en) Space division multiplexing method, apparatus, computer device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20230324

RJ01 Rejection of invention patent application after publication