Computer systems and programs

JPWO2024185501A5Inactive Publication Date: 2025-11-05
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025505202
Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2025-08-20
Publication Date
2025-11-05
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The partial weight generation method in wireless communication systems, particularly in distributed MIMO, faces challenges in efficiently offloading processing to hardware accelerators, such as FPGAs, GPUs, or ASICs, due to unclear information requirements for HW acceleration, leading to suboptimal computation offloading and performance.

Method used

A computer system and method that enable offloading weight calculation processing to a hardware accelerator by providing specific data and information, including a subset of selected wireless terminals and antennas, along with estimated channel matrices, allowing for efficient inverse matrix calculation and weight generation, optimized through the use of Acceleration Abstraction Layer (AAL) interfaces and HW accelerators.

Benefits of technology

This approach optimizes the partial weight generation method by reducing computational load on general-purpose processors and enhancing performance by leveraging HW accelerators, improving the efficiency of MU-MIMO beamforming and reducing the complexity of weight calculation processing.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

This computer system provides an environment in which an application for providing a radio access network function is run, and, during a request for offloading a weight computing process, receives data and information required for weight computing processing to be processed by a hardware (HW) accelerator from the application. The data and information includes at least: (a) first information that is selected from a set of a plurality of wireless terminals communicating with a radio access network element, and that indicates a first subset of wireless terminals to which a common interference cancellation matrix is applied; and (b) second information that is selected from a set of a plurality of antennas coupled with the radio access network element, and that indicates a subset of antennas that provide the subset of the wireless terminals with a service. This contributes to, for example, provision of an implementation suitable for offloading some of the processing for a partial weight generation method to the HW accelerator.
Need to check novelty before this filing date? Find Prior Art

Description

Computer system, method performed by the computer system, and program

[0001] The present disclosure relates to wireless communication systems, and more particularly to transmit and receive signal processing in radio access network elements (eg, base stations) that communicate with multiple wireless terminals.

[0002] Massive multiple-input multiple-output (MIMO) is a physical layer technology used in 3rd Generation Partnership Project (3GPP®) Fifth Generation (5G) systems. In massive MIMO (mMIMO) technology, cellular network base stations (i.e., gNBs in 5G systems) use antenna arrays with multiple antennas. The antenna arrays are used for digital beamforming, specifically for spatially multiplexing multiple wireless terminals (User Equipment (UEs)) on the same time and frequency resources. Compared to existing multi-user MIMO, mMIMO is characterized by the fact that each base station has more antennas than the UEs in its cell. Spatially distributed antenna arrays may be located within a single cell served by the base station.

[0003] Distributed MIMO is one of the key technologies for Beyond 5G or 6G. The basic idea of ​​distributed MIMO is to use a relatively large number of antennas distributed over a wide area to serve a relatively small number of UEs (see, for example, Non-Patent Documents 1 and 2). Each of the distributed antennas is connected via a fronthaul connection to a network element responsible for digital baseband signal processing. The network element responsible for digital baseband signal processing is called, for example, a baseband unit, digital unit, distributed unit (DU), central processing unit (CPU), or edge cloud processor. Distributed MIMO is also called cell-free massive MIMO or a distributed antenna system (DAS). Each distributed antenna is also called a transmission and reception point (TRP), radio unit (RU), remote radio head, or access point (AP). Hereinafter, each distributed antenna is referred to as an AP.

[0004] Distributed MIMO, like existing centralized MIMO (or network MIMO), enables multi-user MIMO (MU-MIMO) transmission, in which multiple UEs communicate spatially multiplexed over the same time and frequency resources. In MU-MIMO, a base station digitally combines signals using precoding and postcoding weights during downlink transmission and uplink reception, respectively. Postcoding weights are also sometimes called combining weights, receiver combining weights, receiver weights, or spatial filtering weights. Hereinafter, precoding and postcoding weights are collectively referred to as weights.

[0005] In distributed MIMO, which uses multiple distributed APs, both the number of APs or antennas connected to a base station and the number of spatially multiplexed UEs are expected to increase compared to those in centralized MIMO. This results in an increase in the amount of weight generation or calculation processing at the base station. Non-Patent Document 1 proposes minimum mean-squared error (MMSE) combining and zero-forcing (ZF) combining for receiving uplink signals from UEs in distributed MIMO. However, the computational complexity of the inverse matrix calculation required to calculate weights based on the MMSE criterion is on the order of the cube of the number of APs or antennas. Similarly, that for the ZF criterion is on the order of the cube of the number of UEs.

[0006] Non-Patent Document 2 proposes a method for reducing the amount of computation required for weight calculation. In the method proposed in Non-Patent Document 2, a network element (e.g., a baseband unit) responsible for digital baseband signal processing selects a subset (or cluster) of multiple UEs communicating with a base station, and further selects a subset (or cluster) of antennas serving the selected subset of UEs from the base station's multiple antennas. Hereinafter, the combination of the selected subset of UEs and the selected subset of antennas serving these selected UEs is referred to as a subsystem. The network element generates ZF or MMSE weights for each subsystem. This reduces the amount of computation required for matrix inversion in weight generation. The base station may also select UEs (interfering UEs) to be considered as interference sources when calculating the weights for each subsystem. In this case, one subsystem is the combination of the selected subset of UEs, the selected subset of antennas serving these selected UEs, and the subset of interfering UEs. Hereinafter, a method in which a network element responsible for digital baseband signal processing calculates weights on a subset basis, as described in Non-Patent Document 2, will be referred to as a partial or local weight generation method, while a method in which a network element responsible for digital baseband signal processing calculates weights by collectively considering all of the multiple antennas connected to the network element and all of the UEs served by these multiple antennas will be referred to as a global weight generation method.

[0007] Meanwhile, organizations such as the European Telecommunications Standards Institute (ETSI) and the Open RAN (O-RAN) Alliance are working to standardize virtualization technologies for radio access network (RAN) functions. These virtualization technologies decouple the hardware and software of RAN network components (e.g., gNB Central Unit (CU), gNB Distributed Unit (DU), and Radio Unit (RU)) and deploy the software components on a general-purpose server architecture. The execution environment in which virtualized RAN network function applications run is called a virtualization platform or cloud platform, for example. The hardware of the virtualization or cloud platform is augmented with hardware accelerators as needed.

[0008] A virtualization or cloud platform is a collection of hardware and software components that provide computing power to run virtualized RAN network functions. The virtualization or cloud platform hardware includes compute, networking, and storage components and may include various acceleration technologies required by RAN network functions to achieve their performance goals. The virtualization or cloud platform software provides Application Programming Interfaces (APIs) for managing the lifecycle of the virtualized RAN network functions. The virtualization or cloud platform may use virtual machines (VMs) orchestrated and managed with OpenStack®, containers orchestrated and managed with Kubernetes®, or both, to implement the virtualized (or containerized or cloudified) RAN network functions.

[0009] As mentioned above, the hardware of the virtualization or cloud platform may be supplemented with HW accelerators as needed. HW accelerators may be programmable or non-programmable circuits or devices. Examples of HW accelerators include field-programmable gate arrays (FPGAs), graphical processing units (GPUs), digital signal processors (DSPs), and application-specific integrated circuits (ASICs). The virtualization or cloud platform allows RAN network function applications running on it to offload computational processing to the HW accelerators and provides interfaces (i.e., APIs) through which these applications can utilize the HW accelerators. This interface is called the Acceleration Abstraction Layer (AAL) interface.

[0010] The O-RAN Alliance is a community of mobile operators, vendors, and research and academic institutions whose mission is to reimagine radio access networks (RANs) as more intelligent, open, virtualized, and fully interoperable. The O-RAN Working Group 6 (WG6) has defined the O-Cloud platform, which is an example of the virtualized or cloud platform mentioned above (see, for example, non-patent documents 3-7). The O-Cloud platform is also simply called O-Cloud.

[0011] Non-Patent Documents 4-7 provide technical specifications for the O-Cloud Acceleration Abstraction Layer (AAL) and AAL-related APIs. The AAL is used to support the portability of application software. One of the roles of the AAL is to provide a common interface (i.e., APIs) to be used by virtualized RAN network functions, independent of the underlying accelerator. An implementation or instance of an AAL includes, but is not limited to, software libraries, device drivers, and HW accelerators required to realize the AAL.

[0012] The APIs provided by the O-Cloud AALs include two distinct parts. The first part corresponds to a set of common APIs (AALI-C) to address all profile-independent aspects of the underlying AAL implementations within the O-Cloud platform (see, for example, Non-Patent Documents 4 and 5). The AALI-C interfaces have two categories: AALI-C-Mgmt and AALI-C-App. AALI-C-Mgmt is provided from the accelerator manager to the O-Cloud Infrastructure Management Service (IMS) for common management operations, actions, and events. On the other hand, AALI-C-App is provided from the AALs to RAN network function applications for common operations, actions, and events.

[0013] The second part of the APIs provided by the O-Cloud AAL corresponds to a set of AAL profile-specific APIs (AALI-P) that depend on each defined AAL profile (see, for example, Non-Patent Documents 4, 6, and 7). The AAL profiles currently defined by O-RAN WG6 include, among other profiles, an AAL profile for MU-MIMO beamforming (precoding) weight calculation (i.e., AAL_MU-MIMO_PRECODER_WEIGHTS_CALC profile) and AAL profiles for forward error correction (FEC) calculation for downlink and uplink physical channels (i.e., AAL_PDSCH_FEC profile and AAL_PUSCH_FEC profile). Non-Patent Document 6 specifies detailed parameters of the AAL_MU-MIMO_PRECODER_WEIGHTS_CALC profile. Non-Patent Document 7 specifies detailed parameters of the AAL_PDSCH_FEC profile and AAL_PUSCH_FEC profile. According to Non-Patent Document 6, parameters sent from the application to the AAL or HW accelerator include an ordered list of UEs selected for scheduling, the number of scheduled layers per UE, and estimated channel information. The HW accelerator calculates beamforming weights for the selected UEs and layers, for example, based on block diagonalization-based precoding. Parameters sent from the HW accelerator or AAL to the application include beamforming (precoding) weights for each Precoding Resource Block Group (PRG) of the layers of the selected UEs.

[0014] E. Bjornson and L. Sanguinetti, "Making Cell-Free Massive MIMO Competitive With MMSE Processing and Centralized Implementation," IEEE Transactions on Wireless Communications, vol. 19, no. 1, pp. 77-90, January 2020Ryo TAKAHASHI, Hidenori MATSUO, Sijie Xia, Qiang Chen, and Fumiyuki ADACHI, "A Study on Uplink Postcoding in User-Centric and User-Cluster-Centric CF-mMIMO," IEICE Technical Report, vol. 122, no. 73, RCS2022-26, pp. 13-18, June 2022O-RAN ALLIANCE Working Group 6, "O-RAN Cloud Architecture and Deployment Scenarios for O-RAN Virtualized RAN 4.0," O-RAN.WG6.CADS-v04.00, October 2022O-RAN ALLIANCE Working Group 6, "O-RAN Acceleration Abstraction Layer General Aspects and Principles 4.0," O-RAN.WG6.AAL-GAnP.0-v04.00, October 2022O-RAN ALLIANCE Working Group 6, "O-RAN Acceleration Abstraction Layer Common API 2.0," O-RAN.WG6.AAL-Common-API.0-v02.00, October 2022O-RAN ALLIANCE Working Group 6, "O-RAN Acceleration Abstraction Layer AAL Profile - MUMIMO Precoder / BeamFormer Calculation 1.0," O-RAN.WG6.AAL-MUMIMO-BF-Calc-Profile-v01.00, July 2022O-RAN ALLIANCE Working Group 6, "O-RAN Acceleration Abstraction Layer FEC Profiles 3.0," O-RAN.WG6.AAL-FEC.0-v03.00, October 2022Mark J.van der Laan, Katherine S. Pollard, and Jennifer Bryan, "A New Partitioning Around Medoids Algorithm," U.C. Berkeley Division of Biostatistics Working Paper Series, Working Paper 105, February 2002.

[0015] The inventors have identified various challenges in improving and developing the partial weight generation method disclosed in Non-Patent Document 2. One of these challenges relates to implementing the partial weight generation method on a virtualization or cloud platform, such as O-Cloud. As described above, a virtualization or cloud platform enables virtualization, encapsulation, or cloudification of RAN network functions, allowing virtualized RAN network function applications to offload computational processing to a HW accelerator. However, it is unclear which processing steps of the partial weight generation method are appropriate to offload to a HW accelerator. In other words, it is unclear which information an application should provide to the virtualization or cloud platform over the AAL interface for HW acceleration. The inventors have considered implementing the partial weight generation method by offloading the weight calculation to a HW accelerator. As described above, Non-Patent Document 6 states that parameters sent from the application to the AAL or HW accelerator include an ordered list of UEs selected for scheduling, the number of scheduled layers per UE, and estimated channel information. However, these parameters may not be sufficient to offload the weight calculations of the partial weight generation method to a HW accelerator.

[0016] Note that an implementation using a HW accelerator can be used to configure a RAN network component (e.g., DU) without relying on RAN virtualization or an open platform. In other words, a RAN network component (e.g., DU) can be implemented without using a virtualization platform capable of running multiple virtual machines or containers. Specifically, a RAN network component (e.g., DU) can be implemented using hardware and software that provides a RAN network function application and an execution environment in which the RAN network function application operates. The hardware may include computing, networking, and storage components, as well as a HW accelerator. The software may include an operating system (OS) and device drivers. Even if such a configuration is adopted, it is unclear which processing of the partial weight generation method is appropriate to offload to the HW accelerator. In other words, it is unclear which information the application should provide to the OS or device driver for HW acceleration.

[0017] One of the objectives to be achieved by the embodiments disclosed in this specification is to provide an apparatus, a method, and a program that provide an implementation suitable for offloading part of the processing of a partial weight generation method to a HW accelerator. It should be noted that this objective is merely one of multiple objectives to be achieved by the multiple embodiments disclosed in this specification. Other objectives, problems, and novel features will be apparent from the description of this specification or the accompanying drawings. It should be noted that this objective is merely one of multiple objectives to be achieved by the multiple embodiments disclosed in this specification. Other objectives, problems, and novel features will be apparent from the description of this specification or the accompanying drawings.

[0018] In a first aspect, a computer system includes a memory storing one or more programs, at least one processor, and hardware including a hardware accelerator. The one or more programs, when executed on the at least one processor, cause the computer system to provide an environment in which an application for providing radio access network functionality operates. The environment is adapted to enable the application to offload weight calculation processing to the hardware accelerator. The environment is adapted to receive, in a request to offload the weight calculation processing, data and information from the application required for the weight calculation processing to be processed by the hardware accelerator. The data and information include at least: (a) first information indicating a first subset of wireless terminals, selected from a set of multiple wireless terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals.

[0019] In a second aspect, a method performed by a computer system includes providing an environment in which an application for providing radio access network functionality operates, and receiving, in a request to offload weight calculation processing, data and information from the application required for the weight calculation processing to be processed by a hardware accelerator, the data and information including at least (a) first information indicating a first subset of wireless terminals selected from a set of multiple wireless terminals communicating with a radio access network element to which a common interference cancellation matrix is ​​to be applied, and (b) second information indicating a subset of antennas selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals.

[0020] A third aspect is directed to one or more programs including instructions that, when executed by a computer system, cause the computer system to perform a method. The method includes providing an interface to an application for providing virtualized radio access network functionality running on the computer system to offload one or more processes to a hardware accelerator. The method further includes receiving, in a request to offload weight calculation processes, data and information from the application required for the weight calculation processes to be processed by the hardware accelerator. The data and information include at least (a) first information indicating a first subset of wireless terminals, selected from a set of multiple wireless terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied, and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals.

[0021] In a fourth aspect, a method performed by a computer system includes providing an interface to an application for providing a virtualized radio access network function running on the computer system for offloading one or more processes to a hardware accelerator, the method further including receiving, in a request to offload weight calculation processing, from the application data and information required for the weight calculation processing to be processed by the hardware accelerator.

[0022] A fifth aspect is directed to one or more programs including instructions that, when executed by a computer system, cause the computer system to perform a method, the method including, in a request to offload weight calculation processing, transmitting data and information required for the weight calculation processing to be processed by a hardware accelerator via an interface provided by the computer system, the data and information including at least (a) first information indicating a first subset of wireless terminals, selected from a set of multiple wireless terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied, and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals.

[0023] In a sixth aspect, a method performed by a computer system includes, in a request to offload a weight calculation process, transmitting data and information required for the weight calculation process to be processed by a hardware accelerator via an interface provided by the computer system, the data and information including at least (a) first information indicating a first subset of wireless terminals, selected from a set of multiple wireless terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied, and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals.

[0024] According to the above-described aspects, it is possible to provide an apparatus, a method, and a program that provide an implementation suitable for offloading part of the processing of the partial weight generation method to a HW accelerator.

[0025] 1 illustrates an example configuration of a wireless communication system according to one or more embodiments. 2 illustrates an example configuration of a radio access network element according to one or more embodiments. 3 illustrates an example implementation of a radio access network element according to one or more embodiments. 4 illustrates an example HW acceleration according to one or more embodiments. 5 illustrates a flowchart of an example operation of a radio access network element according to one or more embodiments. 6 illustrates an example HW acceleration example according to one or more embodiments. 7 illustrates an example clustering of UEs in a partial weight generation method. 8 illustrates an example clustering of target UEs in a partial weight generation method. 9 illustrates an example clustering of antennas in a partial weight generation method. 10 illustrates an example selection of UEs to be considered as interference sources in a partial weight generation method. 11 illustrates an example partial channel matrix used in a partial weight generation method. 12 illustrates an example partial channel matrix used in a partial weight generation method. 13 illustrates parameters used in a partial weight generation method. 14 illustrates a sequence diagram of example signaling between an application and an AAL according to one or more embodiments. 15 illustrates a flowchart of an example operation of a radio access network element according to one or more embodiments. 16 illustrates an example configuration of a computer system according to one or more embodiments.

[0026] Hereinafter, specific embodiments will be described in detail with reference to the drawings. In each drawing, the same or corresponding elements are designated by the same reference numerals, and for clarity of explanation, duplicate explanations will be omitted as necessary.

[0027] The multiple embodiments described below can be implemented independently or in appropriate combination. These multiple embodiments have different novel features. Therefore, these multiple embodiments contribute to solving different purposes or problems and to achieving different effects.

[0028] Each drawing is merely an example for describing one or more embodiments. Each drawing may not relate to only one particular embodiment, but may also relate to one or more other embodiments. As will be understood by those skilled in the art, various features or steps described with reference to any one drawing can be combined with features or steps shown in one or more other drawings to create, for example, an embodiment not explicitly shown or described. Not all features or steps shown in any one drawing are necessary to describe an exemplary embodiment, and some features or steps may be omitted. The order of steps described in any drawing may be changed as appropriate.

[0029] The following embodiments are described mainly for the O-Cloud in accordance with the O-RAN technical specifications, but these embodiments may also be applied to other systems supporting technologies similar to the O-Cloud, such as a virtualization platform reinforced with a HW accelerator.

[0030] As used herein, depending on the context, "if" may be interpreted to mean "when," "at or around the time," "after," "upon," "in response to determining," "in accordance with a determination," or "in response to detecting." These expressions may be interpreted to have the same meaning, depending on the context.

[0031] First, the configuration and operation of multiple elements common to multiple embodiments will be described. Fig. 1 shows an example configuration of a wireless communication system related to multiple embodiments. Each element (network function) shown in Fig. 1 can be implemented, for example, as a network element on dedicated hardware, as a software instance running on dedicated hardware, or as a virtualized function instantiated on an application platform.

[0032] In the example of Fig. 1, the wireless communication system includes a Distributed Unit (DU) 1, multiple APs 2, and multiple UEs 3. The wireless communication system supports distributed MIMO. As already explained, the basic idea of ​​distributed MIMO is to use a relatively large number of APs 2, i.e., antennas, distributed over a wide area to provide service to a relatively small number of UEs 3. Similar to existing centralized MIMO (or network MIMO), distributed MIMO enables MU-MIMO transmission, which communicates with multiple UEs 3 spatially multiplexed on the same time and frequency resources.

[0033] The DU 1 is a network element responsible for digital baseband signal processing. The DU 1 is connected to multiple APs 2 via fronthaul connections. Each fronthaul link may be wired or wireless. The topology of the fronthaul link or fronthaul network connecting the DU 1 and multiple APs 2 is not limited and may be, for example, a hub-and-spoke, tree, ring, or (partial) mesh. The DU 1 may also be referred to as a baseband unit, digital unit, central processing unit (CPU), edge cloud processor, etc. The DU 1 digitally combines signals using precoding weights and postcoding weights during downlink transmission and uplink reception, respectively. The postcoding weights may also be referred to as combining weights, receive combining weights, receive weights, spatial filtering weights, etc. As mentioned above, the precoding weights and postcoding weights are collectively referred to as weights in this specification. The DU 1 may use the partial weight generation method described above for weight calculation.

[0034] The APs 2 are geographically distributed. Each of the distributed APs 2 is connected to a DU 1, which processes digital baseband signals, via a fronthaul connection. Each AP 2 has one or more antenna elements. Each AP 2 may have a fully digital configuration in which each antenna element is connected to its own radio frequency (RF) circuit, or a sub-array configuration in which sub-arrays consisting of multiple antenna elements share a single RF circuit. In the sub-array configuration, each AP 2 may perform analog beamforming. Each AP 2 may also be referred to by other terms, such as an antenna, transmission and reception point (TRP), radio unit (RU), or remote radio head.

[0035] Some or all of the UEs 3 perform spatial multiplexing communication with distributed APs 2 on the same time and frequency resources. Each UE 3 may have one or more transmission or reception layers. For simplicity, the following description mainly focuses on the case where the number of transmission or reception layers of the UE 3 is one, but those skilled in the art will understand that this can be extended to the case where the number of transmission or reception layers of the UE 3 is two or more. The UEs 3 may also be referred to by other terms such as wireless terminals, mobile terminals, mobile stations, or wireless transmit receive units (WTRUs).

[0036] In one implementation, DU 1 may be connected to a Central Unit (CU), not shown. The CU may be connected to multiple DUs 2. In this case, the CU, one or more DUs 2, and APs 2 connected to each DU 1 may correspond to one base station. In other words, one base station may include the CU, one or more DUs 2, and APs 2. A base station may also be referred to as a radio access network node or radio station. In a Beyond 5G or 6G system, the base station may be an enhanced gNB. In one example, DU 1 hosts the Radio Link Control (RLC) layer and Medium Access Control (MAC) layer of the enhanced gNB and may host part or all of the physical (PHY) layer of the enhanced gNB. If DU 1 hosts part of the PHY layer, i.e., the high PHY layer, the remaining PHY layer signal processing, i.e., the low PHY layer, is located in APs 2.

[0037] FIG. 2 shows an example configuration of a DU 1 and APs 2. In the example of FIG. 2, the DU 1 includes a digital baseband unit 11. The digital baseband unit 11 performs weight calculation. The weight calculation may follow the partial weight generation method described above. The digital baseband unit 11 may also provide other upper PHY layer signal processing, such as encoding and decoding, modulation and demodulation, layer mapping, and resource element mapping. The digital baseband unit 11 may also perform other digital signal processing, such as processing of part of Layer 2 (e.g., RLC and MAC layers). The fronthaul interface 12 is connected to multiple APs 2 via a fronthaul link. The fronthaul link may be based on, for example, Radio over Fiber (RoF) technology, Common Public Radio Interface (CPRI) technology, or Enhanced CPRI (eCPRI) technology.

[0038] In the example of Fig. 2, each AP 2 includes a fronthaul interface 21 and multiple RF circuits 22. The fronthaul interface 21 is connected to the fronthaul interface 12 of the DU 1 via a fronthaul line. Each RF circuit 22 includes an amplifier, a frequency converter, etc., and transmits and receives RF signals. In the example of Fig. 2, a fully digital configuration is adopted in which each antenna element 23 is equipped with one RF circuit 22. The baseband side port of the RF circuit 22 is considered to be an equivalent antenna in the baseband domain, and will hereinafter be referred to as the antenna.

[0039] The DU 1 shown in FIGS. 1 and 2 may be implemented on a virtualized or cloud platform as a virtualized, containerized, or cloudified network function. FIG. 3 shows an example of a virtualized implementation of the DU 1. The functionality of the DU 2 is realized by a cloud platform 300 and a DU function application 350 running on an execution environment provided by the cloud platform 300. The cloud platform 300 includes cloud platform hardware 310 and software 320. The cloud platform hardware 310 includes computing, networking, and storage components and further includes one or more HW accelerators. The HW accelerators may include, for example, FPGAs, GPUs, DSPs, or ASICs, or any combination thereof.

[0040] The cloud platform software 320 provides APIs for managing the lifecycle of virtualized RAN network functions, including the DU function application 350. The cloud platform software 320 may use virtual machines (VMs) built and managed by OpenStack, containers built and managed by Kubernetes, or both, to implement the virtualized (or containerized or cloudified) RAN network functions. The cloud platform software 320 enables RAN network function applications (e.g., DU function applications 350) running on the platform 300 to offload computational processing to one or more HW accelerators and provides AAL interfaces 340 (i.e., APIs) for these applications to utilize the HW accelerators. The cloud platform software 320 may include a host OS and device drivers. The host OS may be referred to as a kernel. In addition to or instead of the host OS, the cloud platform software 320 may include virtualization support software such as a hypervisor (e.g., OpenStack hypervisor, VMware® hypervisor) or a container engine (e.g., Docker® engine). The AAL interface 340 (i.e., APIs) may operate in the kernel space of the host OS or in the user space.

[0041] The cloud platform 300 may be an O-Cloud conforming to the O-RAN technical specifications. In this case, the cloud platform software 320 may provide Deployment Management Services (DMS), Infrastructure Management Services (IMS), a HW accelerator manager, and AAL functions. The cloud platform software 320 may include software, such as one or more programs, software libraries, and device drivers, for utilizing and cooperating with the hardware 310 to provide these functions. The transport between the RAN network function application (e.g., the DU function application 350) and the AAL can be based on various types (e.g., shared memory, Peripheral Component Interconnect Express (PCIe®) interconnect, over Ethernet, etc.).

[0042] The APIs provided by the AAL interface 340 may include the AALI-C-App and AALI-P according to the O-RAN technical specifications, or their enhancements. The AALI-C-App is a set of APIs provided from the AAL (i.e., cloud platform software 320) to the RAN network function application (e.g., DU function application 350) for common operations, actions, and events. The AALI-C-App enables the RAN network function application to perform per-AAL Logical Processing Unit (LPU) operations, such as obtaining AAL-LPU information (e.g., available AAL profile types), creating an AAL profile instance on an AAL-LPU, configuring an AAL profile instance, starting an AAL profile instance, configuring an AAL queue on an AAL profile instance, and starting an AAL queue.

[0043] An AAL-LPU is a logical representation of resources within an instance of a HW accelerator. For example, a HW accelerator may have multiple processing units or subsystems, or may have resource partitioning, all of which are logically represented as an AAL-LPU. An AAL-LPU is presented to an application using an AAL application interface (API). An AAL-LPU is mapped to one HW accelerator. An AAL-LPU is uniquely identified within a HW accelerator. A HW accelerator supports one or more AAL-LPUs. Each AAL-LPU shares the resources of its associated HW accelerator with other AAL-LPUs mapped to the same HW accelerator. An AAL-LPU can support one or more AAL profiles. For each AAL profile it supports, an AAL-LPU can run zero to N AAL profile instances. An AAL-LPU can serve zero or more applications.

[0044] An AAL profile specifies a set of accelerated functions that are processed by a HW accelerator on behalf of an application in the O-RAN cloudified network function. An AAL profile instance is an execution instance of an AAL profile that is available to applications via the AAL interface. An AAL profile instance runs within the execution environment of the AAL-LPU.

[0045] An AAL queue is part of the API (i.e., AALI-P) for a specific AAL profile. It is defined as an abstract structure used by applications to group operations and access specific resources (computation, I / O) of the AAL-LPU supporting the specific AAL profile. From the application's perspective, each AAL-LPU supporting a specific AAL profile consists of one or more AAL queues. An AAL-LPU can support multiple AAL profiles, but an AAL queue supports only one type of AAL profile. AAL queues optionally support priorities, allowing applications or network functions to schedule jobs with different priorities to the AAL-LPU. An application or network function (e.g., DU function application 350) can use multiple AAL queues to access different AAL profiles supported by the AAL-LPU.

[0046] The AALI-P is a set of AAL profile-specific APIs that depend on each defined AAL profile. AAL profiles currently defined by O-RAN WG6 include, among other profiles, an AAL profile for MU-MIMO beamforming (precoding) weight calculation (i.e., AAL_MU-MIMO_PRECODER_WEIGHTS_CALC profile) and an AAL profile for forward error correction (FEC) calculation for downlink and uplink physical channels (i.e., AAL_PDSCH_FEC profile and AAL_PUSCH_FEC profile). The AAL interface 340 may support these existing AAL profiles. The AAL interface 340 may also support evolved versions of these existing profiles or other AAL profiles.

[0047] The DU 1 shown in Figures 1 and 2 may be implemented without using a virtualization platform capable of running multiple virtual machines or containers. Specifically, the DU 1 may be implemented using hardware and software that provides a RAN network function application and an execution environment in which the RAN network function application operates. The hardware may include computing, networking, and storage components, as well as a HW accelerator. The software may include an OS and device drivers. The OS may be referred to as a kernel. In this implementation, the OS or other application may provide an AAL interface through which the RAN network function application utilizes the HW accelerator. The AAL interface (i.e., APIs) may operate in the kernel space of the host OS or in the user space.

[0048] First Embodiment This embodiment provides implementation details for offloading part of the processing of the partial weight generation method to a HW accelerator. A configuration example of a wireless communication system related to this embodiment is similar to the example described with reference to FIGS. 1 to 3.

[0049] FIG. 4 shows an example of HW acceleration used by a DU function application 350. In the example of FIG. 4, the DU function application 350 runs in an execution environment (e.g., a VM or a container) provided by the cloud platform 300, specifically on one or more general-purpose processors (e.g., CPU(s)), and provides upper PHY layer processing for distributed MIMO. The upper PHY layer processing performed by the DU function application 350 includes a channel estimation process 410, pre-processing for weight calculation 420, a weight multiplication process 440, and a modulation or demodulation process 450. Meanwhile, the DU function application 350 offloads a weight calculation process 430 to a HW accelerator. In the example of FIG. 4, the HW accelerator is a look-aside type and passes the processing results to the DU function application 350. The DU function application 350 receives the weight calculation results from the HW accelerator and uses them to perform the weight multiplication process 440. 4 may be offloaded to another HW accelerator. For example, modulation or demodulation processing 450 may be offloaded to another HW accelerator. Additionally or alternatively, weight multiplication processing 440 may be offloaded to another HW accelerator. In this case, the HW accelerator performing weight calculation processing 430 may be an inline accelerator, and may send calculated weight data to the HW accelerator performing weight multiplication processing 440 at a subsequent stage.

[0050] The weight calculation preprocessing 420 provides subsystem selection for the partial weight generation method. As described in the Background section, in the partial weight generation method, DU1 selects a first subset (or cluster) of UEs 3 communicating with DU1 and further selects a subset (or cluster) of antennas serving the first subset of UEs from the antennas of multiple APs 2. In addition, DU1 may select a second subset of UEs (interfering UEs) to be considered as an interference source when calculating weights for each subsystem. Thus, one subsystem includes the first subset of UEs, the selected subset of antennas serving the first subset of UEs, and optionally a second subset of UEs corresponding to the interfering UEs. The precoding or postcoding weights for the first subset of UEs in one subsystem can be calculated using a common interference cancellation matrix. In other words, the first subset of UEs in one subsystem are subject to a common interference cancellation matrix. The interference cancellation matrix refers to the inverse matrix part in the calculation formula of the ZF weight or the MMSE weight. The weight calculation process 430 offloaded to the HW accelerator includes matrix inversion calculation to obtain the interference cancellation matrix.

[0051] After pre-processing 420, the DU function application 350 sends data and information required for the weight calculation process 430 to be processed by the HW accelerator via the AAL interface 340 provided by the cloud platform 300. In other words, the DU function application 350 sends a request to the cloud platform 300 to offload the weight calculation process 430. The DU function application 350 may provide this data and information to the platform 300 (specifically, the AAL) using an API specific to the AAL profile, such as O-Cloud's AALI-P. These data and information include at least first information indicating a first subset of UEs and second information indicating a subset of antennas serving the first subset of UEs. These data and information further include information on the estimated channel matrix calculated in the channel estimation process 410. These data and information may further include third information indicating a second subset of UEs corresponding to interfering UEs. The first information may include identifiers (IDs) of UEs in the first subset, i.e., target UEs for weight calculation. The second information may include IDs of selected antennas. The third information may include IDs of UEs in the second subset, i.e., interfering UEs. If each UE 3 has multiple antennas and the number of communication layers of each UE 3 is two or more, the first information may indicate a set of UE layer IDs for identifying multiple layers of the UEs. Similarly, the third information may indicate a set of UE layer IDs for identifying multiple layers of the interfering UEs.

[0052] FIG. 5 illustrates an example of processing provided by the DU function application 350. When the DU function application 350 executes in an execution environment (e.g., a VM or a container) provided by the cloud platform 300, it causes the cloud platform 300 to perform the processing illustrated in FIG. 5. In step 501, the DU function application 350 calls an API to send a data processing request indicating estimated channel matrix data, a set of IDs of target UEs, and a set of IDs of selected antennas to the AAL. The request is a request to offload weight calculation processing. The data processing request may optionally include a set of IDs of interfering UEs. In step 502, the DU function application 350 receives post-processed data from the AAL via the API. Note that if inline acceleration is used, step 502 may be omitted. Alternatively, in step 502, the DU function application 350 may receive the processing results of the HW accelerator that performs subsequent processing (e.g., weight multiplication, modulation, or demodulation).

[0053] FIG. 6 shows an example of the flow of data and information when offloading subsystem-specific weight calculations to a HW accelerator in the partial weight generation method. The upper PHY function application 601 corresponds to at least a portion of the DU function application 350 described above. The Acceleration Abstraction Layer (AAL) 602 is provided by the cloud platform described above. The upper PHY function application 601 sends data and information 621 to the AAL 602 via an API. The data and information 621 includes estimated channel matrix data, IDs of target UEs, and IDs of selected antennas. It may also optionally include IDs of interfering UEs. The AAL 602 sends raw data 622 (i.e., data and information received from the upper PHY function application 601) to the HW accelerator 603. The AAL 602 may process the data and information received from the upper PHY function application 601 before sending it to the HW accelerator 603. For example, the AAL 602 may select one or more partial channel matrix data required for subsystem weight calculation from the received channel matrix data and send the selected partial channel matrix data to the HW accelerator 603. Additionally or alternatively, the AAL 602 may generate diagonal matrix data representing a subset of antennas and send this to the HW accelerator 603. The AAL 602 receives or obtains processed data 641 from the HW accelerator. The upper PHY function application 601 receives or obtains calculated weight vectors 642 from the AAL 602.

[0054] Note that the above description with reference to Figures 4 to 6 has mainly focused on the implementation shown in Figure 3 in which the RAN network function of the DU 1 operates on a cloud platform. However, the operation of the application and platform (or AAL) for offloading weight calculation to a HW accelerator described with reference to Figures 4 to 6 can also be applied to a DU 1 implemented without using a virtualization platform capable of running multiple virtual machines or containers.

[0055] As can be seen from the above description, in this embodiment, a DU function application (e.g., DU function application 350, 601) running on a general-purpose processor performs preprocessing for weight calculation, i.e., subsystem selection or determination, and a HW accelerator (e.g., HW accelerator 603) performs weight calculation, including matrix inversion. This functional arrangement provides the following advantages: Various clustering algorithms (e.g., K-means, K-medoids) can be used for UE clustering and antenna clustering in the preprocessing. In addition, various constraints can be imposed on the clustering. Furthermore, there are various metrics considered in the clustering. Having the DU function application perform the preprocessing allows for low-cost and flexible modification or updating of the subsystem determination algorithm. Meanwhile, the weight calculation process involves matrix inversion, which requires a large amount of computation. Having the HW accelerator perform the weight calculation process contributes to optimizing the performance of the partial weight generation method.

[0056] The following is a specific example of subsystem determination using the partial weight generation method. Figure 7 shows the state before subsystem selection. In the example of Figure 7, there are 12 UEs and 10 antennas. Here, it is assumed that each UE has one transmission layer. Therefore, the 12 UEs are identified by UE layer IDs #101 to #112. The 10 antennas are identified by antenna IDs #201 to #210. Figure 8 shows the selection of a first subset. In the example of Figure 8, the 12 UEs are clustered into four subsets 801 to 803, each consisting of three UEs. Subset 801 or subset S1 includes UE layers with IDs #101, #102, and #103. Subset 802 or subset S2 includes UE layers with IDs #104, #105, and #108. Subset 803 or subset S3 includes UE layers with IDs #106, #107, and #111. Subset 804 or subset S4 includes UE layers with IDs #109, #110, and #112. Clustering of UE layers into these four subsets may be performed based on the K-means algorithm or the K-medoids algorithm. More specifically, clustering may be performed using the K-means algorithm based on location information of UEs and with a constraint of an upper limit of UEs in one subset (or cluster). The following description focuses on subset 802 or subset S2.

[0057] 9 illustrates the selection of a subset M2 of antennas serving three UE layers in subset 802 or subset S2. In the example of FIG. 9, three antennas #203, #204, and #207 are selected for subset 802 or subset S2. The antenna selection may be performed based on a maximum channel gain criterion. Specifically, one or more antennas with large channel gains may be selected for each UE layer in the subset, and a predetermined maximum number of antennas or less may be ultimately determined while taking into account antenna overlap between UE layers.

[0058] FIG. 9 illustrates the selection of a second subset (i.e., a set of interfering UE layers to be considered as interference sources when calculating weights for each subsystem). In the example of FIG. 9, three UE layers #103, #107, and #109 are selected as subset T2 of UE layers to be considered as interference sources to communications of subset 802 or subset S2. The selection of interfering UE layers may be performed based on a maximum channel gain criterion. Specifically, one or more UE layers with a large channel gain with the selected antenna may be selected from UE layers outside subset 802 or subset S2. Hereinafter, the union 1001 of the first subset (subset M2) and the second subset (subset T2) will be referred to as subset P2.

[0059] The downlink partial MMSE weight vector W of UE layer #104 in subset S2 104 P is expressed as follows: where p v is the transmission power to UE layer #v, and h v is the uplink channel vector of UE layer #v, and σ 2 is the noise power. D2 is a 10-by-10 diagonal matrix diag (d 201 ,…,d a ,…d 210 ), whose diagonal elements are defined as:

[0060] The downlink partial MMSE weight vector W of the remaining UE layers #105 and #108 in subset S2 105 P and W 108 P Each of these is the downlink partial MMSE weight vector W of the UE layer #104. 104 P and the common interference cancellation matrix R2 -1 (the inverse part of the right-hand side):

[0061] The downlink partial MMSE weight vectors shown in equations (1) to (4) can be rewritten as: Here, W k P is a weight matrix that summarizes the weight vectors of the UE layers in the subset Sk. H k S is the target UE layer subset S k and antenna subset M k is the partial channel matrix determined by H k P is the union P of the target UE layer and the interfering UE layer k and antenna subset M k Considering the example target UE layer subset S2 of FIG. 10, the downlink partial MMSE weight matrix is ​​given by:

[0062] Partial channel matrix H2 S As shown in FIG. 11, the partial channel matrix H2 is a 3-by-3 matrix (1102) consisting of 9 elements selected from the overall channel matrix (1101). P is a 3-by-6 matrix (1202) consisting of 18 elements selected from the overall channel matrix (1201), as shown in FIG.

[0063] 13 is a schematic representation of how the data and information passed from application 601 to AAL 602 in FIG. 6 is used to calculate the weighting matrix according to equation (6). Specifically, the partial channel matrix H2 is calculated from the estimated channel matrix. S In order to select the target UE layer subset S2 and antenna subset M2, information indicating the target UE layer subset S2 and antenna subset M2 is required. Meanwhile, the partial channel matrix H2 is obtained from the estimated channel matrix. PIn addition to these, information indicating the interfering UE layer subset T2 is further required to select the antenna subset M2. The information indicating the antenna subset M2 is also taken into consideration to generate the identity matrix. Note that if the information indicating the interfering UE layer subset T2 is not provided from the application 601 to the AAL 602, the AAL 602 and the HW accelerator 603 may treat all UE layers spatially multiplexed in the system as elements of the union P2. Alternatively, the AAL 602 and the HW accelerator 603 may treat only the first subset S2 as an element of the union P2.

[0064] Second Embodiment This embodiment provides a modification or improvement of the partial weight generation method described in the first embodiment. A configuration example of a wireless communication system related to this embodiment is similar to the example described with reference to FIGS.

[0065] In this embodiment, the AAL (e.g., cloud platform software 320, AAL 602) notifies an application (e.g., DU function application 350, upper PHY function application 601) of the processing capabilities of HW accelerators available for weight calculation processing or logic operation units (e.g., AAL-LPUs) associated with HW accelerators via an AAL interface (e.g., AALI-C-App). The AAL may send the notification in response to a request from the application. The notification may also be performed during a setting operation for the application to use the HW accelerator.

[0066] The processing capability of the HW accelerator or logic arithmetic unit (e.g., AAL-LPU) may include the number of weight generation profiles (e.g., AAL profiles) that can be implemented in parallel by multiple logic arithmetic units and the matrix calculation capability of each weight generation profile. The matrix calculation capability of each weight generation profile may include the maximum size of the interference cancellation matrix that can be calculated for each weight generation profile. Additionally or alternatively, the matrix calculation capability of each weight generation profile may include the maximum number of UE layers that can be considered when calculating the interference cancellation matrix.

[0067] Additionally or alternatively, the processing capability may include the number of profile instances (e.g., AAL profile instances) that can be created in parallel for a weight generation profile within one logical operation unit, and the matrix calculation capability per profile instance (e.g., the maximum size of an interference cancellation matrix that can be calculated, the maximum number of UE layers that can be considered when calculating an interference cancellation matrix).

[0068] Additionally or alternatively, the processing capability may include the number of AAL queues that can be created in parallel for a weight generation profile within one logical operation unit, and the matrix calculation capability per offloaded calculation process (e.g., the maximum size of the interference cancellation matrix that can be calculated, the maximum number of UE layers that can be considered when calculating the interference cancellation matrix).

[0069] FIG. 14 shows an example of the operation of the AAL and DU function applications. In step 1421, the DU function application 1401 sends an AAL-LPU capability query to the AAL 1402. The DU function application 1401 may invoke a getAalLpuInfo operation in the AAL-C-App to send the AAL-LPU capability query. In step 1422, the AAL 1402 sends a response to the query from the DU function application 1401. This response may be a getAalLpuInfo response. This response indicates the number of weight generation AAL profiles that can be implemented in parallel in multiple AAL-LPUs and the matrix calculation capability of each weight generation AAL profile (e.g., the maximum size of the interference cancellation matrix that can be calculated). Additionally or alternatively, the response may indicate the number of AAL profile instances that can be created in parallel for a weight generation AAL profile within one AAL-LPU and the matrix calculation capability for each profile instance. Additionally or alternatively, the response may indicate the number of AAL queues that can be created in parallel for a weight generation profile within one logical operation unit and the matrix calculation capacity for each offloaded calculation process.

[0070] The application may determine a first subset of UE layers (or UEs) (i.e., target UE layers (or UEs) for partial weight generation) based on or taking into consideration the processing capabilities notified by the AAL. Specifically, the application may set an upper limit on the number of UE layers included in the first subset to the maximum size of the interference cancellation matrix that can be calculated for the AAL-LPU (or AAL profile instance). Note that a case may be assumed in which the maximum size of the interference cancellation matrix that can be calculated differs among multiple AAL-LPUs (or AAL profile instances). In this case, the application may determine multiple first subsets S of multiple subsystems. k The upper limit of the number of UE layers included in each of the AAL-LPUs may be set to the maximum size of the interference cancellation matrix that can be calculated for the corresponding AAL-LPU (or AAL profile instance) to which the computational processing for that subsystem or subset is offloaded.

[0071] Additionally or alternatively, the application may determine the antenna subset based on or taking into consideration the processing capability notification from the AAL. Specifically, the application may set the upper limit of the number of antennas included in the antenna subset to the maximum size of the interference cancellation matrix that can be calculated for the AAL-LPU (or AAL profile instance). As mentioned above, it is also possible that the maximum size of the interference cancellation matrix that can be calculated differs among multiple AAL-LPUs (or AAL profile instances). In this case, the application may determine the antenna subset M based on multiple antenna subsets M of multiple subsystems. k The upper limit of the number of antennas included in each of the AAL-LPUs may be set to the maximum size of the interference cancellation matrix that can be computed for the corresponding AAL-LPU (or AAL profile instance) for which computational processing for that subsystem or subset is offloaded.

[0072] The application may determine a second subset of UE layers (or UEs), i.e., interfering UE layers (or UEs), based on or taking into account the processing capabilities reported by the AAL. Specifically, the application may set an upper limit on the size of the union of the first and second subsets to the maximum number of UE layers that can be considered when calculating the interference cancellation matrix. As mentioned above, it is also possible that the maximum number of UE layers that can be considered when calculating the interference cancellation matrix differs between multiple AAL-LPUs (or AAL profile instances). In this case, the application may determine multiple unions P of multiple subsystems. k may be set to the maximum number of UE layers that can be considered in a corresponding AAL-LPU (or AAL profile instance) to which computational processing for that subsystem is offloaded.

[0073] FIG. 15 shows an example of selecting a first subset taking into consideration the processing capabilities of a HW accelerator or a logical arithmetic unit. In step 1501, the application obtains constraint information for the HW accelerator (or logical arithmetic unit). The constraint information indicates the processing capabilities of the HW accelerator or logical arithmetic unit. Steps 1502 to 1508 correspond to clustering for selecting a first subset, which is performed in preprocessing for weight calculation (e.g., preprocessing 420 in FIG. 4). In step 1502, the application determines the number of first subsets (or clusters), i.e., the number of subsystems. The application determines the number of first subsets (or clusters), i.e., the number of subsystems, K, based on the number of weight generation AAL profiles N that can be executed in parallel and received from the AAL. par may be set to

[0074] In step 1503, the application determines the maximum number of UEs that can be included in each cluster (subset) based on the processing capacity of the HW accelerator or the logical arithmetic unit. Specifically, the application determines the upper limit of the number of UEs in the K clusters as the size C1 to C2 of the maximum interference cancellation matrix that the HW accelerator or the logical arithmetic unit can calculate. k Set to respectively.

[0075] In step 1504, the application performs initial clustering. Specifically, the application randomly selects UEs in the same number as the number of clusters, K, determines the randomly selected UEs as tentative centroids, and clusters all UEs. In step 1505, the application calculates the centroid of each cluster.

[0076] In step 1506, the application (re)clusters the UEs according to rules, including the following: At each iteration, the application updates the K centroids according to the K-means update rule; the application indexes the K updated centroids from 1 to K in descending order of the number of UEs that have them as nearest neighbors; and the application sets an upper bound on the number of UEs that can be clustered into the K indexed centroids, C1 to C2. k The application will cluster UE(s) in other centroids instead if they cannot be clustered in the most appropriate centroid because the upper bound is exceeded. For example, if the number of UEs with centroid #k as their nearest neighbors is C k If the distance is +3, the application selects three UEs from the UEs that have centroid #k as their nearest neighbors in descending order of distance from the centroid.The application then places each of these three UEs in the cluster of the centroid with the smallest distance from the UE among other centroids that do not exceed the UE number upper limit.The application repeats the clustering (steps 1505 and 1506) until a predetermined maximum number of iterations is reached (step 1507) or convergence is determined (step 1508).

[0077] Third Embodiment This embodiment provides an improvement to the partial weight generation method. The improvement to the partial weight generation method described in this embodiment may be used in combination with the implementation of weight calculation using HW acceleration described in the first or second embodiment. An example of the configuration of a wireless communication system related to this embodiment is similar to the example described with reference to FIGS. 1 to 3.

[0078] DU1 performs a partial weight generation method. In the partial weight generation method, DU1 selects a first subset (or cluster) from multiple UEs 3 communicating with DU1. The UEs included in the first subset are target UEs for weight calculation. Furthermore, DU1 selects a subset (or cluster) of antennas from multiple antennas of multiple APs 2 that serve the first subset of UEs.

[0079] The clustering of UEs into multiple first subsets can be performed based on the K-means algorithm or the K-medoids algorithm. Specifically, the clustering may be performed using the K-means algorithm based on the location information of the UEs and with a constraint of an upper limit of the number of UEs in one subset (or cluster). However, clustering based on the distance (physical or geographical distance) between UEs may be insufficient in the following respects. Specifically, UEs that are close to each other may not necessarily have a large effect of interference with each other, which may result in a degradation of the detection or combining performance of each subsystem.

[0080] To address this issue, in this embodiment, DU1 clusters multiple UEs based on the channel power between each UE and each antenna. This allows UEs that experience significant interference in the actual propagation environment to be clustered into the same subset, and weights for these UEs can be generated simultaneously. This contributes to improving communication performance compared to clustering based on the distance between UEs, which may result in mismatches with the propagation environment. Additionally, this has the advantage of not requiring the acquisition of location information for UEs.

[0081] For example, DU1 may cluster UEs based on the spatial correlation of the channels of each UE calculated from the channel power between each UE and all antennas. DU1 acquires the channel power between each UE and each antenna. The channel power may be the squared value of the channel coefficient estimated from a Sounding Reference Signal (SRS) or a Demodulation Reference Signal (DMRS). Alternatively, the channel power may be the received power of a downlink reference signal (e.g., Reference Signal Received Power (RSRP)) reported by the UE. DU1 calculates the spatial correlation between two UEs #k and #k′ using the following formula: where p k is the channel power vector of UE #k, and p k' is the channel power vector of UE #k'. The numerator of equation (7) is the channel power vector p k and the channel power vector p k The channel power vector p k has multiple elements, each representing the channel power between UE #k and a respective one of the base station's multiple antennas. Similarly, the channel power vector p k' has multiple elements, each representing the channel power between UE #k′ and a respective one of the base station's multiple antennas.

[0082] DU1 calculates spatial correlations for all pairs of UEs and clusters the UEs based on the obtained spatial correlations. The clustering can be performed using any method, such as the K-means or K-medoids methods. DU1 may use spatial correlations as a distance metric or instead of a distance metric in the clustering. As an example, DU1 may use the K-medoids method described in Non-Patent Document 8.

[0083] <Fourth Embodiment> This embodiment provides an improvement to the partial weight generation method. The improvement to the partial weight generation method described in this embodiment may be used in combination with the implementation of weight calculation using HW acceleration described in the first or second embodiment. An example of the configuration of a wireless communication system related to this embodiment is similar to the example described with reference to FIGS. 1 to 3.

[0084] DU1 performs a partial weight generation method. In the partial weight generation method, DU1 selects a first subset (or cluster) from multiple UEs 3 communicating with DU1. The UEs included in the first subset are target UEs for weight calculation. Furthermore, DU1 selects a subset (or cluster) of antennas from multiple antennas of multiple APs 2 that serve the first subset of UEs.

[0085] The selection of the antenna subset may be performed based on the maximum channel gain criteria. Specifically, one or more antennas with the largest channel gain may be selected for each UE in the subset, and the final number of antennas may be determined within a predetermined maximum number while taking into account antenna overlap between UEs. However, even if an antenna with the largest received power is selected for UEs in the first subset, the selected antenna may be subject to significant interference from UEs in another subsystem. This may result in degradation of the detection or combining performance of each subsystem.

[0086] To address this issue, in this embodiment, DU1 selects an antenna subset taking into account the signal-to-interference ratio (SIR). Specifically, DU1 calculates or acquires the SIR, taking the channel power of UEs included in the first subset as the desired signal component and the channel power of UEs not included in the first subset as the interference component. DU1 then selects one or more antennas to be included in the antenna subset in descending order of the calculated SIR. This allows DU1 to avoid selecting, for the first subset, an antenna that receives high received power from UEs in the first subset but also receives high interference from other UEs.

[0087] As an example, when DU1 focuses on a certain UE subset u, the SIR (SIR u,n ) is calculated by the following formula: where the denominator is the sum of the channel power between UEs that do not belong to subset u and antenna #n, and the numerator is the sum of the channel power between UEs that belong to subset u and antenna #n. DU1 calculates the SIR between all UE subsets and all antennas. Then, for each subset or subsystem, DU1 selects a specified number of antennas in descending order of SIR.

[0088] Fifth Embodiment In the above-described embodiments, the DU 1 (e.g., a DU function application) may dynamically determine whether to offload the weight calculation process to a HW accelerator. In one example, the DU 1 may make this determination based on the number of spatially multiplexed UEs. Specifically, the DU 1 may offload the weight calculation process to a HW accelerator if the number of spatially multiplexed UEs exceeds a threshold, and otherwise may perform the weight calculation process in an application (i.e., a general-purpose processor).

[0089] In another example, the DU 1 may dynamically determine whether to offload the weight calculation process to the HW accelerator, taking into account the processing performance of the available HW accelerator. Specifically, the DU 1 may determine whether to offload the weight calculation process by referring to the number of parallel executions or the matrix calculation capability, or both, of the weight generation profile of the HW accelerator (or the associated arithmetic logic unit).

[0090] In yet another example, the DU 1 may dynamically determine whether to offload the weight calculation process to the HW accelerator, taking into account the number of active APs. Specifically, the DU 1 may offload the weight calculation process to the HW accelerator if the number of active APs exceeds a threshold, and otherwise may perform the weight calculation process in the application (i.e., on a general-purpose processor).

[0091] Next, a configuration example of the cloud platform 300 related to the above-described embodiments will be described below. FIG. 16 is a block diagram showing a configuration example of the cloud platform 300.

[0092] In the example of FIG. 16 , cloud platform 300 is implemented as a computer system. The computer system includes one or more processors 1610, memory 1620, and mass storage 1630, which communicate with each other via a bus 1660. The one or more processors 1610 may include, for example, one or more central processing units (CPUs). The computer system includes one or more HW accelerators 1640. The HW accelerators may include, for example, FPGAs, GPUs, DSPs, or ASICs, or any combination thereof. The computer system may also include other devices, such as one or more peripherals 1650. The one or more peripherals 1650 may include, for example, a modem, a network adapter, or any combination thereof.

[0093] One or both of the memory 1620 and the mass storage 1630 may include a computer-readable medium having stored thereon one or more sets of instructions. These instructions may be located partially or completely in memory within one or more processors 1610. These instructions, when executed on one or more processors 1610, cause the computer system to provide the functionality of the cloud platform 300 described in the above embodiments. These instructions, when executed on one or more processors 1610, further cause the computer system to provide the functionality of the DU function application described in the above embodiments.

[0094] As illustrated in FIG. 16 , one or more processors in a computer system may execute one or more programs containing instructions for causing a computer to perform the algorithms described in the above embodiments. The programs contain instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The programs may be stored on a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable media or tangible storage media include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disk (DVD), Blu-ray® disk or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage, or other magnetic storage device. The programs may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable media or communication media include electrical, optical, acoustic, or other forms of propagated signals.

[0095] The above-described embodiments are merely examples of application of the technical ideas obtained by the inventors of the present invention. In other words, the technical ideas are not limited to the above-described embodiments, and various modifications are possible.

[0096] For example, some or all of the above embodiments may also be described as, but are not limited to, the following appendices. Some or all of the elements (e.g., configurations and functions) described in appendices directed to an apparatus (e.g., computer system) may naturally also be described as appendices directed to a method and a program. Some or all of the elements (e.g., configurations and functions) described in appendices directed to a method may naturally also be described as appendices directed to an apparatus or a program. Alternatively, some or all of the elements (e.g., configurations and functions) described in appendices directed to a program may naturally also be described as appendices directed to an apparatus or a method. For example, some or all of the elements described in appendices 2-10, which are dependent on appendices 1, may also be described as appendices dependent on appendices 11, due to the same dependency relationship as appendices 2-10. Similarly, some or all of the elements described in appendices 13-21, which are dependent on appendices 12, may also be described as appendices dependent on appendices 22, due to the same dependency relationship as appendices 13-21. Some or all of the elements described in any appendix may be applied to a variety of hardware, software, recording means for recording software, systems, and methods.

[0097] (Supplementary Note 1) A computer system comprising: a memory storing one or more programs, at least one processor, and hardware including a hardware accelerator, wherein the one or more programs, when executed on the at least one processor, cause the computer system to provide an environment in which an application for providing radio access network functionality operates; the environment is adapted to enable the application to offload weight calculation processing to the hardware accelerator; and the environment is adapted to receive, in a request to offload the weight calculation processing, data and information from the application required for the weight calculation processing to be processed by the hardware accelerator, wherein the data and information include at least: (a) first information indicating a first subset of radio terminals, selected from a set of multiple radio terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of radio terminals. (Supplementary Note 2) The computer system of Supplementary Note 1, wherein the data and information further include (c) third information indicating a second subset of wireless terminals selected from the set of multiple wireless terminals to be considered as interference sources in the interference cancellation matrix. (Supplementary Note 3) The computer system of Supplementary Note 1 or 2, wherein the environment is adapted to notify the application of processing capabilities of the hardware accelerator or a logic arithmetic unit associated with the hardware accelerator available for the weight calculation process. (Supplementary Note 4) The computer system of Supplementary Note 3, wherein the notification of processing capabilities is performed during a configuration operation for the application to use the hardware accelerator. (Supplementary Note 5) The computer system of Supplementary Note 3 or 4, wherein the processing capabilities include the number of weight generation profiles that can be implemented in parallel and matrix calculation capabilities of each weight generation profile.(Supplementary Note 6) The computer system of Supplementary Note 5, wherein the matrix calculation capacity of each weight generation profile includes a maximum size of an interference cancellation matrix that can be calculated for each weight generation profile. (Supplementary Note 7) The computer system of Supplementary Note 6, wherein the number of weight generation profiles that can be implemented in parallel and the matrix calculation capacity of each weight generation profile are used by the application to determine one or both of a first subset of the wireless terminals and a subset of the antennas. (Supplementary Note 8) The computer system of Supplementary Note 6, which indirectly depends on Supplementary Note 2, wherein the number of weight generation profiles that can be implemented in parallel and the matrix calculation capacity of each weight generation profile are used by the application to determine a second subset of the wireless terminals. (Supplementary Note 9) The computer system of any one of Supplements 1 to 8, wherein the environment is adapted to provide an Acceleration Abstraction Layer (AAL) interface of an Open Radio Access Network (O-RAN) Cloud Platform to the application, and wherein the data and information are provided from the application to the environment via an Application Programming Interface (API) specific to an AAL profile. (Supplementary Note 10) The computer system of any one of Supplementary Notes 1 to 9, wherein the environment is adapted to provide the data and information to the hardware accelerator and to provide data generated by the hardware accelerator to the application.(Supplementary Note 11) A method performed by a computer system, comprising: providing an environment in which an application for providing radio access network functionality operates; and receiving, in a request to offload weight calculation processing, data and information from the application required for the weight calculation processing to be processed by a hardware accelerator, wherein the data and information include at least: (a) first information indicating a first subset of radio terminals, selected from a set of multiple radio terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, that serve the subset of radio terminals. (Supplementary Note 12) One or more programs comprising instructions that, when executed by a computer system, cause the computer system to perform a method, the method comprising: providing an interface to an application for providing a virtualized radio access network function running on the computer system to offload one or more processes to a hardware accelerator; and receiving, in a request to offload a weight calculation process, data and information required for the weight calculation process to be processed by the hardware accelerator from the application, wherein the data and information include at least: (a) first information indicating a first subset of radio terminals to which a common interference cancellation matrix is ​​applied, selected from a set of multiple radio terminals communicating with a radio access network element; and (b) second information indicating a subset of antennas serving the subset of radio terminals, selected from a set of multiple antennas coupled to the radio access network element. (Supplementary Note 13) The one or more programs of Supplementary Note 12, wherein the data and information further include (c) third information indicating a second subset of wireless terminals selected from the set of the plurality of wireless terminals to be considered as interferers in the interference cancellation matrix.(Supplementary Note 14) One or more of the programs according to Supplementary Note 12 or 13, wherein the method further comprises notifying the application of processing capabilities of the hardware accelerator or a logic operation unit associated with the hardware accelerator that can be used for the weight calculation process. (Supplementary Note 15) One or more of the programs according to Supplementary Note 14, wherein the notification of the processing capabilities is performed during a setting operation for the application to use the hardware accelerator. (Supplementary Note 16) One or more of the programs according to Supplementary Note 14 or 15, wherein the processing capabilities include the number of weight generation profiles that can be implemented in parallel and a matrix operation capability of each weight generation profile. (Supplementary Note 17) One or more of the programs according to Supplementary Note 16, wherein the matrix operation capability of each weight generation profile includes a maximum size of an interference cancellation matrix that can be calculated for each weight generation profile. (Supplementary Note 18) One or more programs according to Supplementary Note 17, wherein the number of weight generation profiles that can be implemented in parallel and a matrix calculation capability of each weight generation profile are used by the application to determine one or both of a first subset of the wireless terminals and a subset of the antennas. (Supplementary Note 19) One or more programs according to Supplementary Note 17 that indirectly depends on Supplementary Note 13, wherein the number of weight generation profiles that can be implemented in parallel and a matrix calculation capability of each weight generation profile are used by the application to determine a second subset of the wireless terminals. (Supplementary Note 20) One or more programs according to any one of Supplements 12 to 19, wherein the interface includes an Acceleration Abstraction Layer (AAL) interface of an Open Radio Access Network (O-RAN) Cloud Platform. (Supplementary Note 21) One or more programs according to any one of Supplements 12 to 20, wherein the method further comprises providing the data and information to the hardware accelerator, and providing data generated by the hardware accelerator to the application.(Supplementary Note 22) A method performed by a computer system, comprising: providing an interface to an application for providing a virtualized radio access network function running on the computer system for offloading one or more processes to a hardware accelerator; and receiving, in a request to offload a weight calculation process, data and information required for the weight calculation process to be processed by the hardware accelerator from the application, wherein the data and information include at least: (a) first information indicating a first subset of radio terminals, selected from a set of multiple radio terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of radio terminals. (Supplementary Note 23) One or more programs comprising instructions that, when executed by a computer system, cause the computer system to perform a method, the method comprising: transmitting, in a request to offload a weight calculation process, data and information required for the weight calculation process to be processed by a hardware accelerator via an interface provided by the computer system, the data and information including at least: (a) first information indicating a first subset of wireless terminals, selected from a set of multiple wireless terminals communicating with a radio access network element, to which a common interference cancellation matrix is ​​to be applied, and (b) second information indicating a subset of antennas, selected from a set of multiple antennas coupled to the radio access network element, serving the subset of wireless terminals. (Supplementary Note 24) One or more programs according to Supplementary Note 23, the data and information further including: (c) third information indicating a second subset of wireless terminals, selected from the set of multiple wireless terminals, to be considered as interferers in the interference cancellation matrix.(Supplementary Note 25) One or more programs according to Supplementary Note 23 or 24, wherein the method further comprises receiving, via the interface, processing capabilities of the hardware accelerator or a logic arithmetic unit associated with the hardware accelerator available for the weight calculation process. (Supplementary Note 26) One or more programs according to Supplementary Note 25, wherein the notification of the processing capabilities is performed during a configuration operation for using the hardware accelerator. (Supplementary Note 27) One or more programs according to Supplementary Note 25 or 26, wherein the processing capabilities include the number of weight generation profiles that can be implemented in parallel and a matrix calculation capability of each weight generation profile. (Supplementary Note 28) One or more programs according to Supplementary Note 27, wherein the matrix calculation capability of each weight generation profile includes a maximum size of an interference cancellation matrix that can be calculated for each weight generation profile. (Supplementary Note 29) One or more programs according to Supplementary Note 28, wherein the method further comprises determining one or both of a first subset of wireless terminals and a subset of antennas based on the number of weight generation profiles that can be implemented in parallel and the matrix calculation capability of each weight generation profile. (Supplementary Note 30) One or more programs according to Supplementary Note 28 indirectly depending on Supplementary Note 24, wherein the method further comprises determining the second subset of wireless terminals based on the number of weight generation profiles that can be implemented in parallel and matrix operation capabilities of each of the weight generation profiles. (Supplementary Note 31) One or more programs according to any one of Supplements 23 to 30, wherein the method further comprises determining the first subset based on channel power between each wireless terminal and the plurality of antennas. (Supplementary Note 32) One or more programs according to any one of Supplements 23 to 31, wherein the method further comprises selecting one or more antennas to be included in the subset of antennas in descending order of Signal to Interference Ratio (SIR) calculated using channel power of wireless terminals included in the first subset as a desired signal component and channel power of wireless terminals not included in the first subset as an interference component.(Supplementary Note 33) The one or more programs according to any one of Supplements 23 to 32, wherein the interface includes an Acceleration Abstraction Layer (AAL) interface of an Open Radio Access Network (O-RAN) Cloud Platform. (Supplementary Note 34) A method performed by a computer system, comprising: in a request to offload a weight calculation process, transmitting data and information required for the weight calculation process to be processed by a hardware accelerator via an interface provided by the computer system, wherein the data and information include at least: (a) first information indicating a first subset of wireless terminals to which a common interference cancellation matrix is ​​to be applied, selected from a set of multiple wireless terminals communicating with a radio access network element; and (b) second information indicating a subset of antennas serving the subset of wireless terminals, selected from a set of multiple antennas coupled to the radio access network element.

[0098] This application claims priority based on Japanese Patent Application No. 2023-034256, filed on March 7, 2023, the disclosure of which is incorporated herein in its entirety.

[0099] 1 Distributed Unit (DU) 2 Access Point (AP) 3 User Equipment (UE) 300 Cloud Platform 310 Cloud Platform Hardware 320 Cloud Platform Software 340 Acceleration Abstraction Layer (AAL) Interface 350 DU Function Application 601 High PHY Application 602 Acceleration Abstraction Layer (AAL) 603 Hardware Accelerator 1610 Processor 1620 Memory 1630 Mass Storage 1640 Hardware Accelerator

Claims

1. 1. A computer system comprising: hardware including a memory storing one or more programs, at least one processor, and a hardware accelerator; the one or more programs, when executed by the at least one processor, cause the computer system to provide an environment in which applications for providing radio access network functionality can operate; the environment is adapted to enable the application to offload weight calculation processing to the hardware accelerator; The environment is adapted to receive, from the application, data and information required for the weight calculation process to be processed by the hardware accelerator in a request to offload the weight calculation process; The data and information are: (a) first information indicating a first subset of wireless terminals selected from a set of a plurality of wireless terminals communicating with the radio access network element to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas serving the subset of wireless terminals, selected from a set of multiple antennas coupled to the radio access network element; At least including Computer system.

2. the data and information further includes (c) third information indicating a second subset of wireless terminals selected from the set of wireless terminals to be considered as interferers in the interference cancellation matrix; 10. The computer system of claim 1.

3. the environment is adapted to notify the application of the processing capacity of the hardware accelerator or a logic arithmetic unit associated with the hardware accelerator available for the weight calculation process; 3. A computer system according to claim 1 or 2.

4. The notification of the processing capability is performed during a setting operation for the application to use the hardware accelerator.

4. The computer system of claim 3.

5. The processing capacity includes the number of weight generation profiles that can be executed in parallel and the matrix operation capacity of each weight generation profile.

4. The computer system of claim 3.

6. The matrix calculation capability of each weight generation profile includes a maximum size of an interference cancellation matrix that can be calculated for each weight generation profile.

6. The computer system of claim 5.

7. the number of weight generation profiles that can be implemented in parallel and the matrix calculation capability of each weight generation profile are used by the application to determine one or both of the first subset of wireless terminals and the subset of antennas; 7. The computer system of claim 6.

8. the number of weight generation profiles that can be implemented in parallel and the matrix operation capability of each weight generation profile are used by the application to determine a second subset of the wireless terminals.

7. A computer system according to claim 6, which is indirectly dependent on claim 2.

9. the environment is adapted to provide an Acceleration Abstraction Layer (AAL) interface of an Open Radio Access Network (O-RAN) Cloud Platform to the application; the data and information is provided by the application to the environment via an Application Programming Interface (API) specific to the AAL profile; 3. A computer system according to claim 1 or 2.

10. One or more programs containing instructions that, when executed by a computer system, cause the computer system to perform a method, The method comprises: providing an interface for an application running on the computer system for providing a virtualized radio access network function to offload one or more processes to a hardware accelerator; and receiving, in a request to offload a weight calculation process, data and information from the application required for the weight calculation process to be processed by the hardware accelerator; Equipped with The data and information are: (a) first information indicating a first subset of wireless terminals selected from a set of a plurality of wireless terminals communicating with the radio access network element to which a common interference cancellation matrix is ​​to be applied; and (b) second information indicating a subset of antennas serving the subset of wireless terminals, selected from a set of multiple antennas coupled to the radio access network element; At least including One or more programs.