WO2022065863A1 - 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 - Google Patents
소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 Download PDFInfo
- Publication number
- WO2022065863A1 WO2022065863A1 PCT/KR2021/012931 KR2021012931W WO2022065863A1 WO 2022065863 A1 WO2022065863 A1 WO 2022065863A1 KR 2021012931 W KR2021012931 W KR 2021012931W WO 2022065863 A1 WO2022065863 A1 WO 2022065863A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- package
- mec
- hardware components
- hardware
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Definitions
- the present disclosure relates to a method and apparatus for offloading hardware to a software package, and more particularly, to a method of determining a set of hardware components optimized for a plurality of software packages and allocating it to one of a plurality of software packages; It's about the device.
- the 5G communication system or the pre-5G communication system is called a system after the 4G network (Beyond 4G Network) communication system or the LTE system after (Post LTE).
- an evolved small cell for network improvement of the system, in the 5G communication system, an evolved small cell, an advanced small cell, a cloud radio access network (cloud RAN), an ultra-dense network, Device to Device communication (D2D), wireless backhaul, moving network, cooperative communication, Coordinated Multi-Points (CoMP), and interference cancellation, etc. of technology is being developed.
- cloud RAN cloud radio access network
- D2D Device to Device communication
- CoMP Coordinated Multi-Points
- interference cancellation etc.
- IoT Internet of Things
- IoE Internet of Everything
- IoT Internet Technology
- IoT Internet Technology
- IoT is a field of smart home, smart building, smart city, smart car or connected car, smart grid, health care, smart home appliance, advanced medical service, etc. can be applied to
- 5G communication such as sensor network, machine to machine communication (M2M), and machine type communication (MTC) is being implemented by techniques such as beam forming, MIMO, and array antenna.
- M2M machine to machine communication
- MTC machine type communication
- cloud RAN cloud radio access network
- the disclosed embodiment may provide a method and apparatus for executing a virtualized network function in preparation for a change in traffic or a change in service usage occurring in a wireless communication system.
- a method for a server to execute a software package includes each of a plurality of software packages for terminals accessing a plurality of base stations connected to the server. obtaining package use information; determining, based on the package usage information, a first set of hardware components for processing tasks operating in a first software package among the plurality of software packages; generating a second software package, and assigning the determined first set of hardware components to the second software package; transferring tasks running in the first software package to a second software package; and deleting the first software package, wherein the first set of hardware components is determined based on whether each of the plurality of hardware components is used and the usage of each of the plurality of hardware components.
- a method for a server to execute a software package includes, before generating a second software package, checking the usage of each of a plurality of hardware components in which usage of a first set of hardware components is reflected further comprising;, if there is a hardware component whose usage is equal to or greater than the threshold among the plurality of hardware components, processing tasks operating in a third software package using the hardware component whose usage is equal to or greater than the threshold based on the package usage information determining a second set of hardware components for creating a fourth software package and assigning the fourth software package a second set of hardware components; transferring tasks running in the third software package to a fourth software package; and deleting the third software package.
- the first set of hardware components is determined by comparing the traffic amount and the MEC service usage amount to be generated by the terminals at a specific time, respectively, with preset threshold values.
- At least one of the amount of traffic to be generated by the terminals and the amount of MEC service usage at a specific point in time sets a threshold. As identified to be exceeded, it is performed before a certain point in time.
- a method for a server to execute a software package further includes: acquiring event information that causes a change in traffic or MEC service usage, scheduled for a plurality of base stations, and Package usage information of each of a plurality of software packages for terminals accessing a plurality of connected base stations includes an amount of traffic and MEC service usage previously generated for each event in the plurality of base stations, and a first set of hardware components is determined based on the amount of traffic and MEC service usage to be generated from a plurality of base stations according to event information obtained based on the expected traffic amount and MEC service usage for each identification event.
- each of the plurality of software packages includes at least one of a virtualized radio access network (vRAN) package, a mobile edge computing (MEC) package, or a user plane function (UPF) package.
- vRAN virtualized radio access network
- MEC mobile edge computing
- UPF user plane function
- the plurality of hardware components include at least one of a central processing unit (CPU), a graphics processing unit (GPU), a field programmable gate array (FPGA), and a network interface controller (NIC).
- CPU central processing unit
- GPU graphics processing unit
- FPGA field programmable gate array
- NIC network interface controller
- a server for executing a software package in a wireless communication system for solving the above technical problem, the communication unit; a memory storing a plurality of instructions; and at least one processor executing a plurality of instructions, wherein the at least one processor obtains package usage information of each of a plurality of software packages for terminals accessing a plurality of base stations connected to the server, and uses the packages Determine, based on the information, a first set of hardware components for processing tasks operating in a first software package among the plurality of software packages, generate a second software package, and include the first set of hardware components in the second software package allocating, transferring tasks operating in the first software package to a second software package, and deleting the first software package, the set of first hardware components including whether each of the plurality of hardware components is used and whether the plurality of hardware components are used It is determined based on the amount of each of them.
- a computer-readable recording medium in which a computer program for executing the above-described method is recorded.
- the remaining hardware resources can be allocated to other software packages or other components, so that system resources, especially hardware resources, can be efficiently used and can manage
- controller means any device, system, or part thereof that controls at least one operation, which device may be implemented in hardware, firmware or software, or a combination of at least two thereof; Functions related to a particular controller can be centralized or distributed, whether local or remote.
- various functions described below may be implemented or supported by one or more computer programs, each of which is formed of computer-readable program code and implemented in a computer-readable medium.
- application and “program” refer to one or more computer programs, software components, sets of instructions, components, functions, object classes, instances, related data, or portions thereof configured to be implemented as suitable computer-readable programs.
- computer-readable program code includes computer code of any type, including source code, object code, and executable code.
- computer readable media includes any type of media that can be accessed by a computer, such as read only memory (ROM), random access memory (RAM), hard disk drives, compact discs (CDs), digital discs, etc. .
- Non-transitory computer-readable media excludes wired, wireless, optical or other communication links that transmit transitory electrical or other signals.
- Non-transitory computer readable media includes media in which data can be permanently stored, such as a rewritable optical disk or an erasable memory device, and media in which data can be stored and overwritten later.
- FIG. 1 is a diagram for explaining the structure of a centralized/cloud radio access network (cRAN).
- cRAN centralized/cloud radio access network
- FIG. 2 is a diagram illustrating a network environment for supporting an MEC-based service.
- FIG. 3 is a block diagram of a system for executing a software package according to an embodiment of the present disclosure
- FIG. 4 is a diagram for explaining hardware offloading according to an embodiment of the present disclosure.
- FIG. 5 is a diagram for explaining hardware offloading according to another embodiment of the present disclosure.
- FIG. 6 is a flowchart illustrating a method in which a server performs hardware offloading of software packages according to an embodiment of the present disclosure.
- FIG. 7 is a flowchart illustrating a method in which a server performs hardware offloading on software packages according to another embodiment of the present disclosure.
- FIG. 8 is a diagram for describing a method for a server to determine a hardware component in which software packages are executed when an increase in vRAN package traffic is expected, according to an embodiment of the present disclosure.
- FIG. 9 is a diagram for describing a method for a server to determine a hardware component in which software packages are executed when an increase in traffic and MEC service usage is expected, according to another embodiment of the present disclosure.
- FIG. 10 is a diagram for explaining a method for a server to determine a hardware component on which software packages are executed when an increase in MEC service load is expected, according to another embodiment of the present disclosure.
- 11 is a diagram for describing an AI model used to determine a hardware component on which a software package is executed, according to an embodiment.
- FIG. 12 is a block diagram of a server according to an embodiment of the present disclosure.
- the expression “at least one of a, b or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b” and c all", or variations thereof.
- each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions.
- These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions.
- These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory.
- the instructions stored in the flow chart block(s) produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s).
- the computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).
- each block shown in the flowchart may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in blocks to occur out of order. For example, two blocks shown one after another may be performed substantially simultaneously, or the blocks may sometimes be performed in the reverse order according to a corresponding function.
- ' ⁇ unit' used in this embodiment means software or hardware components such as FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit), and ' ⁇ unit' performs certain roles do.
- '-part' is not limited to software or hardware.
- ' ⁇ ' may be configured to reside on an addressable storage medium or may be configured to refresh one or more processors. Accordingly, as an example, ' ⁇ ' indicates components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
- components and ' ⁇ units' may be combined into a smaller number of components and ' ⁇ units' or further separated into additional components and ' ⁇ units'.
- components and ' ⁇ units' may be implemented to play one or more CPUs in a device or secure multimedia card.
- ' ⁇ unit' may include one or more processors.
- a wireless communication system for example, 3GPP's HSPA (High Speed Packet Access), LTE (Long Term Evolution or E-UTRA (Evolved Universal Terrestrial Radio Access)), LTE-Advanced (LTE-A), 3GPP2 HRPD (High Rate Packet Data), UMB (Ultra Mobile Broadband), and IEEE 802.16e, such as communication standards, such as high-speed, high-quality packet data service is developed as a broadband wireless communication system are doing
- a wireless communication system of 5G or NR (new radio) is being made as a next-generation wireless communication system.
- eMBB enhanced mobile broadband
- mmTC massive machine type communications
- URLLC ultra-reliable and low-latency communications
- eMBB may be a high-speed transmission of high-capacity data
- mMTC may be a service that minimizes power consumption in a terminal and multiple terminals are connected
- URLLC may be a service that aims for high reliability and low latency, but is not limited thereto.
- a service may be a major scenario in a wireless communication system such as an LTE system or 5G/NR (new radio, next radio) after LTE.
- the present disclosure uses terms and names defined in the 3rd Generation Partnership Project Long Term Evolution (3GPP) standard, or terms and names modified based on the terms and names.
- 3GPP 3rd Generation Partnership Project Long Term Evolution
- the present disclosure is not limited by the above-mentioned terms and names, and may be equally applied to a wireless communication system conforming to other standards.
- an embodiment of the present disclosure is described by taking a 5G, new radio, NR system as an example, the present disclosure may also be used in other wireless communication systems having a similar technical background or channel type. Examples may be applied.
- an embodiment of the present disclosure may be applied to LTE or LTE-A, which is a wireless communication system before NR, and further, an embodiment of the present disclosure may be applied to a wireless communication system developed after NR. Furthermore, the embodiment of the present disclosure may be applied to other wireless communication systems through some modifications within a range that does not significantly deviate from the scope of the present disclosure as determined by a person having skilled technical knowledge.
- a term for identifying an access node used in the following description a term referring to network entities, a term referring to messages, a term referring to an interface between network objects, a term referring to various identification information and the like are exemplified for convenience of description. Accordingly, the present disclosure is not limited to the terms described below, and other terms referring to objects having equivalent technical meanings may be used.
- the base station is a subject that performs resource allocation of the terminal, and may be at least one of gNode B, eNode B, Node B, a base station (BS), a radio access unit, a base station controller, or a node on a network.
- the terminal may include a user equipment (UE), a mobile station (MS), a cellular phone, a smart phone, a computer, or a multimedia system capable of performing a communication function.
- UE user equipment
- MS mobile station
- cellular phone a smart phone
- computer a multimedia system capable of performing a communication function.
- a cell may indicate an area covered by one base station in wireless communication.
- Cells may be classified into mega cells, macro cells, micro cells, and pico cells according to their size, but this is only an example, and the types of cells are described above. It is not limited to bars.
- a downlink or downlink is a wireless transmission path of a signal transmitted from a base station to a terminal
- an uplink or uplink (UL) is wireless transmission of a signal transmitted from a terminal to a base station.
- DL downlink
- UL uplink
- SC-FDMA Single Carrier Frequency Division Multiple Access
- Uplink refers to a radio link in which a terminal (terminal or user equipment, UE) or mobile station (MS) transmits data or control signals to a base station (gNode B, or base station (BS)) It means a wireless link that transmits data or control signals.
- UE terminal or user equipment
- MS mobile station
- BS base station
- the controller may be referred to as a processor.
- a layer may be referred to as an entity.
- FIG. 1 is a diagram for explaining the structure of a centralized/cloud radio access network (cRAN).
- cRAN centralized/cloud radio access network
- a radio transceiver (RU) and a data unit (DU) included in an existing base station are separated, and the radio transceiver is a base station (eg, 111) of a cell site.
- the data processing unit may be located in a central server (eg, 121 ).
- a cell corresponds to an area covered by a base station in a wireless communication system, and at least one cell may exist per base station.
- the radio transceivers are disposed in the base stations 111, 113, 115, 117, 119 of the cell site, and the data processing units 121 , 123, 125) may be gathered in one place to execute at least some of the radio access network functions.
- a description of the radio access network functions will be provided later.
- cRAN can easily adjust inter-cell interference by collecting and managing the data processing units 121, 123, and 125 in one place, and can provide services such as coordinated multi-point transmission and reception (CoMP). there is.
- CoMP coordinated multi-point transmission and reception
- the base stations 111 , 113 , 115 , 117 , and 119 of the cell site may include an RF device and the like, and may transmit a signal to the data processing unit (eg, 121 ) through a fronthaul.
- the fronthaul is a part of a network connecting the base stations 111 and 113 of the cell site to a data processing unit (eg, 121 ), and may perform digital signal processing (DSP), power amplification and filtering functions, and the like.
- DSP digital signal processing
- the core network device 130 may include devices that connect an end system composed of a base station and a terminal.
- the core network device 130 may include a packet data network gateway (P-GW), a serving gateway (S-GW), and a mobile management entity (MME).
- P-GW packet data network gateway
- S-GW serving gateway
- MME mobile management entity
- the P-GW can connect the internal node of the core network and the external Internet, set an IP address in the terminal, and perform IP packet filtering.
- RRC radio resource control
- the MME may process control signals related to location registration, authentication, and call of the terminal. Meanwhile, this is only an example, and the configuration of the core network device 130 is not limited to the above-described example.
- the backhaul is a network part connecting the data processing unit (eg, 121 ) and the core network device 130 , and may be implemented as a wired interface such as optical fiber, but this is only an example, and the backhaul may also be implemented as a wireless network. there is.
- the data processing unit may perform various wireless access network functions for signal processing.
- the radio access network function may include, for example, a packet data convergence protocol (PDCP) layer function, a radio link control (RLC) layer function, a medium access control (MAC) layer function, and a physical (PHY) layer function, etc. , this is only an example, and the radio access network function is not limited to the above-described example.
- PDCP packet data convergence protocol
- RLC radio link control
- MAC medium access control
- PHY physical
- the function of the PDCP layer may include at least some of the following functions.
- the function of the RLC layer may include at least some of the following functions.
- In-sequence delivery of the RLC layer indicates a function of sequentially delivering RLC service data units (SDUs) received from a lower layer to an upper layer.
- SDU RLC service data units
- One RLC SDU is divided into several RLC SDUs. When it is received, it may include a function of reassembling it and delivering it.
- the sequential delivery function includes a function of rearranging the received RLC PDUs based on an RLC sequence number (SN) or a PDCP sequence number (SN), a function of rearranging the order to record the lost RLC PDUs, and the lost RLC PDUs It may include at least one of a function of reporting a status to the transmitter.
- the sequential delivery function may include a function of requesting retransmission of the lost RLC PDUs. function may be included.
- the sequential delivery function may include a function of sequentially delivering all RLC SDUs received before a timer starts to an upper layer if a predetermined timer has expired even if there is a lost RLC SDU, or even if there is a lost RLC SDU If a predetermined timer has expired, it may include a function of sequentially transferring all RLC SDUs received so far to a higher layer.
- the RLC layer may process RLC PDUs in the order in which they are received and deliver them to the PDCP layer, regardless of sequence order.
- the RLC layer combines them with a segment stored in the buffer or segments to be received later to reconstruct a complete RLC PDU, and then transmits the RLC PDU to the PDCP layer.
- the RLC layer may not include a concatenation function, and the concatenation function may be performed in the MAC layer or replaced with a multiplexing function of the MAC layer.
- the MAC layer function may include at least some of the following functions.
- the PHY layer may perform at least some of the following functions.
- the PHY layer may perform channel coding and modulation on data of an upper layer, make it an OFDM symbol, and transmit it through a wireless channel.
- the PHY layer may perform demodulation and channel decoding on an OFDM symbol received through a radio channel, and deliver data obtained as a result to an upper layer.
- radio access network function may include a radio resource control (RRC) layer function.
- RRC radio resource control
- An example of the function of the RRC layer is as follows.
- UE capability management temporary grant of cell ID to the UE
- the base station (eg, 111) of the cell site may be described in terms such as an RU or a remote radio head (RRH), and the data processing unit (eg, 121) is a DU or a base band unit (BBU), etc. can be described in terms of
- a method for efficiently using physical resources required for data processing is required.
- the present disclosure intends to provide a method of performing at least one radio access network function performed by the data processing units 121 , 123 , and 125 through virtualization.
- Virtualization is a technology that can expand resources available in one device by integrating and managing multiple physical resources. Examples of RAN (hereinafter vRAN) will be described.
- FIG. 2 is a diagram illustrating a network environment for supporting an MEC-based service.
- the network environment may include a terminal 100 , a 3rd Generation Partnership Project (3GPP) network 150 , an edge data network 200 , and a service server 250 .
- 3GPP 3rd Generation Partnership Project
- the configuration included in the network environment is not limited thereto.
- each of the components included in the network environment may mean a physical entity unit or a software or module unit capable of performing an individual function. Accordingly, a component included in the network environment may be called an entity, or a function or a function.
- the terminal 100 may mean a device used by a user.
- the terminal 100 may mean a user terminal (UE, user equipment or user terminal), a remote terminal, a wireless terminal, or a user device.
- the terminal 100 may include all types of devices.
- the terminal 100 may drive (or execute) a plurality of application clients.
- the terminal 100 may include a first application client 111 and a second application client 112 .
- a plurality of application clients data transmission rate, delay time (or speed) (latency), reliability (reliability) of the terminal 100, the number of terminals 100 accessing the network (accessed), the network connection of the terminal 100
- Different network services may be required based on at least one of a period or average data usage.
- the different network services may include, for example, enhanced mobile broadband (eMBB), ultra-reliable and low latency communication (URLLC), or massive machine type communication (mMTC).
- eMBB enhanced mobile broadband
- URLLC ultra-reliable and low latency communication
- mMTC massive machine type communication
- the application client of the terminal 100 may mean a basic application pre-installed in the terminal 100 or an application provided by a third party. That is, it may mean a client application program that is run in the terminal 100 for a specific application service. Several application clients may be driven in the terminal 100 . At least one of the application clients may be used to provide an edge computing service to the terminal 100 from an edge data network 200 .
- the application client is an application installed and executed in the terminal 100 , and may provide a function of transmitting and receiving data through the edge data network 200 .
- the application client of the terminal 100 may mean application software (or module) executed on the terminal 100 in order to use a function provided by one or more specific edge applications.
- the plurality of application clients 111 or 112 of the terminal 100 performs data transmission and reception with the service server 250 based on the required network service type, or the edge data network 200 and data transmission and reception based on edge computing. For example, if the first application client 111 does not request a low delay time, the first application client 111 may perform data transmission and reception with the service server 250 . For another example, if the second application client 112 requests a low latency, the second application client 112 may perform MEC-based data transmission and reception with the edge data network 300 .
- the example is not limited thereto, and the terminal 100 may determine whether to transmit/receive data to/from the service server 250 or the edge data network 200 based on various conditions other than the delay time.
- an application client of the terminal 100 may be referred to as a UE application (UE App), an application client, a client application (client application, Client App), and a UE application.
- UE App UE application
- client application client application
- UE application client application
- UE application UE application
- the terminal 100 may include an edge enabler client 120 and a 3GPP communication layer 130 .
- the edge enabler client 120 may refer to a layer that performs an operation within the terminal 100 that enables the terminal 100 to use an edge computing service.
- the edge enabler client 120 may also be referred to as a MEC enabling layer (MEL).
- MEL MEC enabling layer
- the edge enabler client 120 determines which UE App can use the edge computing service, so that the data of the application client of the terminal 100 can be delivered to the edge data network 200 that provides the edge computing service. An operation of connecting a network interface to the terminal 100 may be performed.
- the edge enabler client 120 may perform an operation for the terminal 100 to establish a data connection for using the edge computing service with the 3GPP communication layer 130 .
- the 3GPP communication layer 130 may mean a layer that performs a modem operation for using a mobile communication system, establishes a wireless connection for data communication, registers the terminal 100 in the mobile communication system, and performs mobile communication It can establish a connection for data transmission to the system and perform a role of transmitting and receiving data.
- the terminal 100 may be connected to the 3GPP network 150 to transmit/receive data related to the first application client 111 and the second application client 112 .
- the 3GPP network 150 is a wireless communication system conforming to the standard of the 3rd Generation Partnership Project (3GPP), and may be connected to the terminal 100 to provide a wireless communication service to the terminal 100 .
- the 3GPP network 150 may include a 3rd generation (3G) network, an LTE network, an LTE-A network, and a next-generation network (5G or NR).
- 3G 3rd generation
- LTE Long Term Evolution
- LTE-A LTE-A
- 5G or NR next-generation network
- the example is not limited thereto, and the 3GPP network 150 of the present disclosure may include a network configured with other communication technologies.
- the 3GPP network 150 may include a RAN 151 and a core network 152 , and the core network 152 includes a user plane function (UPF) 153 and a network exposure function (NEF) 154 . ) may be included.
- UPF user plane function
- NEF network exposure function
- the RAN 151 of the 3GPP network 150 is a network directly connected to the terminal 100 , and is an infrastructure that provides wireless access to the terminal 100 .
- the RAN 151 may include a plurality of base stations, and the plurality of base stations may perform communication through an interface formed therebetween. At least some of the interfaces between the plurality of base stations may be wired or wireless.
- a base station may be referred to as a gNode B, an eNode B, a Node B, a base station (BS), a radio access unit, a base station controller, a node on a network, or other terms having an equivalent technical meaning.
- the core network 152 of the 3GPP network 150 may process data and control signals for the terminal 100 transmitted and received through the RAN 151 .
- the core network 152 is a user plan (user plane) and control plane (control plane) control, mobility (mobility) processing, subscriber information management, billing, other types of systems (eg, long term evolution (LTE) system ) can perform various functions such as interworking with
- the core network 152 may include a plurality of functionally separated entities having different network functions (NFs).
- the core network 152 includes a user plane function (UPF) 153, an access and mobility management function (AMF) (not shown), a session management function (SMF) (not shown), and a policy control function (PCF). ) (not shown), network exposure function (NEF) 154, user data management (UDM) (not shown), network data analysis function (NWDAF) (not shown), and gateway mobile location center (GMLC) (not shown) ) may be included.
- UPF user plane function
- AMF access and mobility management function
- SMF session management function
- PCF policy control function
- NEF network exposure function
- UDM user data management
- NWDAF network data analysis function
- GMLC gateway mobile location center
- the 3GPP network 150 may be connected to the edge data network 200 to transmit/receive data related to the MEC service.
- the user plane function (UPF) 153 may provide a data path (or data plane) between the terminal 100 and the edge data network 200 or the service server 250 . That is, the UPF 153 may serve as a gateway for transmitting data (or data packets) transmitted and received by the terminal.
- the terminal 100 and the edge data network 200 may transmit and receive data (or data packets) to each other through the UPF 153 .
- a data network (DN) may exist between the edge data network 200 and the UPF 153 .
- the UPF 153 may be located near the edge data network 200 in order to support the edge computing service to the terminal 100, and deliver the data packet of the terminal 100 to the edge data network 200 with low latency or , it is possible to deliver the data packet of the edge data network 200 to the terminal 100 with low latency.
- the UPF 153 may provide a data path between the terminal 100 and the edge data network 200 using a data network connected to the Internet.
- the UPF 153 may route data packets to be delivered to the Internet among data packets transmitted by the terminal 100 to a data network between the service server 250 and the terminal 100 .
- UPF is a basic component of the core infrastructure system architecture, and in the 5G network, easy MEC service support is possible by distributing UPF to provide applications in various locations.
- UPF defined in 3GPP provides the following functions.
- - PDU Protocol Data Unit
- RATs Radio Access Technologies
- Uplink Classifier / UL-CL forwarding flows to specific data networks based on traffic matching filters
- Branching UPUP I-UPF
- PSA PDU session
- SDF Service Data Flow
- PFD packet flow description
- - QoS processing for each flow including transport level packet marking for uplink (UL, up-link) and downlink (DL, down-link), rate limiting and reflective QoS (DSCP) marking for DL
- UL uplink
- DL downlink
- DSCP rate limiting and reflective QoS
- the NEF 154 is an NF that exposes the function (capability) and service (service) of the NFs of the 3GPP network 150 to the outside.
- the NEF 154 is connected to an external server (eg, edge data network 200), and delivers information about an event occurring in the NF inside the 3GPP network 150 to an external server, or an event requested by an external server It can perform the function of delivering information about NF to the internal NF.
- the functions and services exposed by the NEF 154 to the outside are, for example, location-related event reporting of the terminal 100, session-related event reporting of the terminal 100, and the terminal 100. There may be a mobility management event report and the like.
- the external server may access the functions and services by subscribing to the functions and services exposed by the NEF 154 .
- the edge data network 200 may provide an MEC service to the terminal 100 .
- the edge data network 200 is disposed within the base station or geographically close to the base station of the 3GPP network 150 to which the terminal 100 is connected, and at least part of the content provided by the service server 250 is The same content can be provided.
- the edge data network 200 may be referred to as an MEC server, a MEC host, an edge computing server, a mobile edge host, an edge computing platform, and the like.
- the edge data network 200 may include and execute (or drive) a plurality of edge applications.
- the edge data network 200 may include a plurality of edge applications (a first edge application 211 , a second edge application 212 ) and an edge enabler server 220 .
- this is only an example, and the configuration of the edge data network 200 is not limited to the above.
- the edge application may mean an application application provided by a third party in the edge data network 200 that provides an edge computing service, and establishes a data session with the application client in order to transmit and receive data related to the application client.
- the data session may mean a communication path formed in order to transmit and receive data between the application client of the terminal 100 and the edge application of the edge data network 200 .
- the edge data network 200 may provide a virtual resource to an edge application.
- the virtual resource may include, for example, at least one of a computing resource, a storage resource, or a network resource (eg, network bandwidth) that an edge application may use.
- the edge application of the edge data network 200 may be executed (or driven) as a virtual machine.
- the application of the edge data network 200 may be referred to as an edge application, an MEC application, an edge application server, an ME (MEC) App, and an edge application.
- an edge application an MEC application
- an edge application server an ME (MEC) App
- an edge application an edge application
- the edge data network 200 may include an edge enabler server 220 .
- the edge enabler server 220 may be referred to as a mobile edge computing platform (MEC), a mobile edge platform (MEP), or a platform.
- MEC mobile edge computing platform
- MEP mobile edge platform
- the edge enabler server 220 may provide a function required to execute an edge application.
- the edge enabler server 220 may provide a function or environment so that the edge application may provide the MEC service to the terminal 100 or the like or the edge application may consume the MEC service.
- the edge enabler server 220 may perform traffic control or DNS (Domain Name System) handling (DNS handling).
- DNS Domain Name System
- the MEC service may mean a service provided to the terminal 100 by the edge data network 200 or the edge application or a service that the edge application can use.
- the edge computing service may collectively refer to services related to procedures and information required to use an edge application.
- the edge computing service may be provided or consumed by the edge enabler server 220 or the edge application.
- the edge application may use the edge computing service provided by the edge enabler server 220 to provide the edge computing service to the terminal 100 or to provide the edge computing service to the terminal 100 .
- the edge enabler server 220 may provide an edge computing service that the edge application can use to provide the edge computing service to the terminal 100 to the edge application.
- the edge computing service may mean a service provided by the edge data network 200 or the edge application to the terminal 100 or a service provided by the edge enabler server 220 and used by the edge application. there is.
- the edge enabler server 220 may provide an edge computing service to an edge application.
- the edge enabler server 220 provides various types of information (data, content, etc.) to the edge application according to the edge computing service provided, for example, information on the location of the terminal, caching data, and subscription services. information, etc.) can be provided.
- the edge application may provide the edge computing service to the terminal 100 by using the edge computing service provided by the edge enabler server 220 .
- the edge application may provide an edge computing service to the terminal 100 based on information provided by the edge enabler server 220 as an edge computing service.
- the edge computing service provided to the terminal 100 may be a service required for the terminal 100 to drive an application client (eg, provide data required to drive the application client).
- the edge data network 200 providing the edge computing service to the terminal 100 means that the edge application of the edge data network 200 provides the edge computing service required for the terminal 100 to drive the application client. refers to
- the edge enabler server 220 may include an MEC service 230 and a service registry 240 .
- the MEC service 230 may provide an edge computing service to edge applications included in the edge data network 200 .
- the MEC service 230 may be implemented as software or a module capable of performing individual functions such as.
- the service registry 240 may provide information on services available in the edge data network 200 .
- the edge enabler server 220 may internally register the edge application.
- the edge enabler server 220 may register an edge application and store information related to the edge application.
- the information related to the edge application stored by the edge enabler server 220 includes information on the edge computing service that the edge application intends to provide to the terminal 100 and the like, and whether the edge computing service is a required service for the edge application. Information on whether the service is optional or not may be included.
- the edge application registers a new edge computing service with the edge enabler server 220 or updates an already registered edge computing service, or registers with the edge enabler server 220 .
- the edge application may provide information on the edge computing service to be registered or updated to the edge enabler server 220 while registering or updating the edge computing service in the edge enabler server 220 .
- the edge enabler server 220 may register the edge computing service in the service registry 240 .
- the edge enabler server 220 may deliver information about edge computing services registered in the service registry 240 to an edge application in the edge data network 200 .
- the edge enabler server 220 may deliver a list of edge computing services registered in the service registry 240 to the edge application.
- the edge enabler server 220 may transmit information on availability of edge computing services registered in the service registry 240 or newly registered to the edge application.
- the edge application may subscribe to the MEC service 230 registered in the service registry 240 .
- the edge application may subscribe to the edge computing service by transmitting subscription request information for the edge computing service to the edge enabler server 220 .
- the edge application subscribes to the MEC service 230 , it may mean that the MEC service 230 or information on the MEC service 230 is continuously provided from the edge enabler server 220 .
- the edge application can use the MEC service 230 by receiving the MEC service 230 from the edge enabler server 220 by subscribing to the MEC service 230 registered in the service registry 240, and the MEC service ( 230) may be provided to the terminal.
- the MEC service 230 may provide various services to an edge application.
- the MEC service 230 may provide a subscription service 231 , a location service 232 , a cache service 233 , and the like to an edge application.
- the subscription service 231 may provide event-related information to the 3GPP network 150 or receive event-related information from the 3GPP network 150 .
- the event is an event related to a change in traffic or service usage of the terminal, an event related to the location of the terminal (eg, the current location of the terminal, location change, location of the terminal in a specific situation, etc.), disconnection of the terminal, It may include the access of the terminal, the roaming state of the terminal, communication failure, and the like.
- the location service 232 may provide information on the location of the terminal 100 , a service based on information on the location of the terminal 100 , and the like.
- the location service 232 may obtain information on the location of the terminal 100 through the 3GPP network 150 .
- Information on the location of the terminal 100 includes Global Positioning System (GPS) information of the terminal 100, an area in which the terminal 100 is located, information on a path along which the terminal 100 moves, and the terminal 100 is connected. It may include information on a (or camped on) cell, a cell to which the terminal 100 is to be handed over, and the like, and is not limited to the above example, and may include all information related to the location of the terminal 100 .
- GPS Global Positioning System
- the cache service 233 may provide data by caching data from the service server 250 .
- Caching may refer to a technology for providing data with low delay in response to a request for data by obtaining and storing data in advance from a server that provides data, etc. before a request for data is made.
- caching may refer to a series of processes in which data provided by the service server 250 is requested from the service server 250 and stored in advance before there is a request from the terminal 100 or the application client.
- the edge data network 200 can reduce network transmission delay by pre-stored data to be provided to the terminal 100 through caching in the edge data network 200 located closer to the service server 250 than the service server 250 .
- the service server 250 may provide content related to an application (eg, an application client, an edge application) of the terminal 100 .
- the edge data network 200 may transmit/receive data for providing the MEC service to and from the service server 250 , and may cache data from the service server 250 in advance.
- the terminal 100 may transmit data with the service server 250 based on a network service type required by the plurality of application clients 111 and 112 .
- the service server 250 may provide services or data necessary for the terminal 100 to drive (or execute) an application client, and may provide an edge computing service to the application client of the terminal 100 , an edge application may be provided to the edge data network 200 .
- the service server 250 may provide the edge data network 200 with a service or data required for the terminal 100 to drive (or execute) an application client.
- the service server 250 may be operated or managed by a content provider that provides content to the terminal 100 .
- FIG. 3 is a block diagram of a system for executing a software package according to an embodiment of the present disclosure
- a software package is a set of software components (SC) capable of performing a function implemented as hardware, and may include a vRAN package, an MEC package, and a UPF package.
- SC software components
- a software component refers to a unit that reuses frequently used functions as modular physical binary files, that is, encapsulated software parts.
- a software component is an application composed of an executable file (eg, written in C code) or code (eg, written in Python) and may be stored and operated in storage such as HDD or SDD.
- the software package refers to a container for making related unified modeling language (UML) elements into one group, and the software package may be managed as one application as a set of at least one software component.
- UML unified modeling language
- the system for executing the software package is a server 300, O & M (operations and maintenance, 70), an interface unit (interface unit, 50), an external server 90 and a plurality of base stations (12, 14, 16) may be included.
- User plane data and control plane data traffic flows for using each package are indicated by a dotted line, and a control signal flow for executing a software package according to an embodiment of the present disclosure is indicated by a solid line.
- the hardware components assigned to each software package are indicated by separate dashed lines.
- a task operating in each package is a task performed by a software component of each package, and may refer to a process of generating output data by processing input data according to a predetermined code.
- the server 300 includes hardware 310 , an operating system (OS) 320 , virtualization software 330 , and packages performing network functions (eg, vRAN package 342 , UPF package 352 , 354 , and MEC package 362 ). ), a component management (CM, component management) package 370 , and a virtualization master 380 .
- OS operating system
- CM component management
- the server 300 may be connected to a plurality of base stations 12 , 14 , 16 of a cell site through the interface unit 50 , and the O&M 70 receives traffic generated from the plurality of base stations 12 , 14 and 16 . , may instruct the interface unit 50 to be assigned to each package.
- the server 300 may include hardware 310 capable of driving software for executing the function of each software package.
- Hardware 310 is CPU (central processing unit, 311), RAM (random access memory, 312), FPGA (field programmable gate array, 313), GPU (graphics processing unit, 314), NIC (network interface controller, 315) , the storage 316 , an application-specific integrated circuit (ASIC) 317 , and an eASIC 318 , but this is only an example and the components of the hardware 310 are not limited to the above-described example.
- CPU central processing unit, 311
- RAM random access memory
- FPGA field programmable gate array
- GPU graphics processing unit
- NIC network interface controller
- the CPU 311 and GPU are general-purpose processors, and their performance is determined according to the number of clocks (operating speed), the number of cores (core circuits), and the capacity of the cache memory.
- the CPU 311 When the clock number is high, the CPU 311 is advantageous in quickly processing a single task, and when the number of cores is large, it is advantageous to perform multi-tasking or to drive a program optimized for multi-core operation. In addition, if the cache memory is sufficient, work efficiency can be increased when running a program with a large load or repeatedly processing frequently performed tasks.
- the CPU 311 has a structure specialized for a serial (sequential) processing method that processes data in the order in which commands are input, and is designed to quickly perform simple tasks that use a lot of fixed-point data.
- the GPU 314 was developed for complex 3D graphics processing through a structure specialized for parallel operation, but recently, general purpose computing on graphics processing unit (GPGPU) technology that uses the processing power of the GPU not only for graphics processing but also for general-purpose tasks other than graphics processing has been developed. is being used
- GPGPU general purpose computing on graphics processing unit
- the parallel processing function of the GPU 314 may be applied to deep learning.
- processing each row and column in parallel is faster than serial processing through a CPU, so technologies using GPUs for deep learning are developing.
- processing by the CPU may be faster depending on the implementation method, it is necessary to properly combine the CPU and GPU.
- the FPGA 313, ASIC 317, and eASIC 318 are semiconductors specialized for specific functions or uses. admit.
- the FPGA 313 refers to a logic circuit type semiconductor in which a semiconductor designer can freely design a circuit as intended. FPGAs have the advantage of having the flexibility to re-enter a new logic circuit into the FPGA device if the design changes during use, and the commercialization process from design to commercialization is short.
- An FPGA may contain hard logic blocks such as an ARM core or a transmit/receive module for off-chip communication.
- the ASIC 317 is generally called an application-specific semiconductor, and refers to a semiconductor that can be designed for a specific purpose according to a user's order. ASIC designs are often highly optimized with no die area for additional logic. Although ASICs are cheaper than FPGAs, the period to commercialization is generally rather long.
- the eASIC 318 is a structured semiconductor that is an intermediate technology between an FPGA and a standard cell ASIC. Because it has a fixed design like an ASIC, it is faster than a variable design such as an FPGA, but it has no dead area and has the same power saving effect as an ASIC. . As a result, eASIC has the characteristics of lower unit cost and lower power consumption than FPGA, shorter period to commercialization than standard-cell ASIC, and less non-recurring engineering cost.
- the hardware 310 of FIG. 3 includes all of the FPGA 313 , the ASIC 317 , and the eASIC 318 , but is not limited thereto and may include only some of them according to a specific embodiment.
- the NIC 315 refers to a hardware device used to connect and communicate with a network.
- RAM 312 is a form of memory that can be read and written in any order, and is generally used to store working data and code. RAM allows data to be read or written at approximately the same time regardless of the physical location of the data in memory.
- the storage 316 is a storage medium capable of recording information (data) and refers to a physical medium for holding digital information. Also, the storage 316 may include a hard disk drive (HDD), a solid state drive (SDD), or the like.
- HDD hard disk drive
- SDD solid state drive
- one operating system (OS) 320 may be driven.
- the OS 320 may manage the hardware 310 and software (eg, virtualization software 330 ) executed in the server 300 .
- the virtualization software 330 may logically separate the resources managed by the OS 320 and allow several software components (SC) to share the logically separated resources.
- a resource is an item used to handle traffic in a vRAN package (eg, 342).
- the resource may include the CPU 311 , the RAM 312 , the FPGA 313 , and the GPU 314 , but this is only an example and the resource is not limited to the above-described example.
- Logical separation of resources may be performed by distributing a physical communication line connecting the resource and a plurality of SCs through a switch.
- SC is a collection of libraries or applications required to perform a specific function so that it can be used as if it were a separate server, and it can be created or removed in a package unit.
- a package is a minimum unit that can include one or more SCs while sharing one IP.
- Kubernetes may be included, and the SC may correspond to a container of Kubernetes.
- a network function according to an embodiment is a function of transferring traffic between devices existing on a network and processing the generated traffic, and may include, for example, a RAN function, a UPF function, and an MEC function.
- the RAN function may correspond to the radio access network function described above with reference to FIG. 1
- the MEC function may correspond to the edge data network function described above with reference to FIG. 2 .
- the UPF function provides a data path (or data plane) between the terminal and the edge data network or service server, and serves as a gateway for transmitting data transmitted and received by the terminal.
- HC hardware component
- the server 300 may determine at least one HC in which a package including an SC virtualizing a network function is executed. Also, the server 300 may determine whether to perform offloading of changing an HC assigned to a package including an SC virtualizing a network function to another HC, and may perform the offloading.
- Offloading refers to the operation of transferring the processing point of a network function so that a package that has been executed on a specific HC is executed on another HC. will perform
- the server 300 provides a vRAN function, a UPF function, and an MEC function that is previously processed using an HC such as the CPU 311 , the RAM 312 , the storage 316 or the GPU 314 to the GPU 314 . ), it can be processed by transferring it to another HC such as the FPGA 313 .
- the server 300 may change the HC in which each package is executed based on vRAN package use information, UPF package use information, MEC package use information, and the like.
- the process of changing the HC in which the package is executed may include scale-out and scale-in.
- Scale-out refers to the ability to scale by adding resource instances allocated to the SC virtualizing network functions, and scale-in removes resource instances allocated to the SC virtualizing network functions.
- function means.
- Scale-up/down refers to a function of changing a resource instance allocated to an SC that virtualizes network functions.
- the server 300 determines hardware offloading that changes the HC executing the MEC package from the CPU to the GPU, the server 300 scales out the same instances as the SC included in the MEC package to create a new MEC You can create packages.
- the server 300 allocates a GPU to the new MEC package, changes the data traffic path to the new MEC package, and scales the SC instances included in the existing MEC package to remove the instances.
- Existing MEC packages can be deleted.
- Hardware virtualization technology allows multiple virtual machines (eg, software packages) to share a single physical hardware installed on a server.
- virtual machines eg, software packages
- the GPU since it has a plurality of cores, it is advantageous for parallel processing, and the price per unit core is low compared to the CPU. Therefore, although the GPU is advantageously utilized as a resource for cloud computing (MEC), cloud computing is a technology premised on virtualization, and in order to utilize the GPU as a complete cloud resource, the GPU also needs to be virtualized.
- MEC cloud computing
- a multi-core processor having a powerful general-purpose CPU core and an architecture of a simple but many-core GPU may be more suitable for high-performance computing (HPC) processing.
- Heterogeneous systems that combine multi-core processors (CPUs) and GPUs have both control-intensive and highly data-parallel components to meet the diverse requirements of high-performance computing applications.
- each hardware resource When hardware resources are virtualized, a certain ratio (or amount of computation) of each hardware resource may be used to process a task of a specific software package.
- optimal hardware resources When optimal hardware resources are allocated to each package by utilizing this, system resources can be utilized more efficiently, system scalability can be improved, and operating costs can be reduced.
- the server 300 may generate a new MEC package (not shown) by scaling out the same instances as the SC included in the MEC package 362 .
- the server 300 allocates CPU core N/4 and GPU core M/2 to the new MEC package, changes the data traffic path to a new MEC package (not shown), and then the existing MEC package
- the existing MEC package 362 may be deleted by removing the instances by scaling-in the SC instances included in the .
- a set of hardware components may be allocated to one software package, and the set of hardware components allocated to one software package depends on whether or not each of the plurality of hardware components (eg, 311 to 318) is used and used. It may be determined based on the allocation of the new hardware component set, and may include a case in which hardware constituting the hardware component set is the same and only the usage amount is changed.
- the server 300 may be connected to a plurality of base stations 12 , 14 , and 16 of a cell site through the interface unit 50 .
- the interface unit 50 is a part of a passage connecting a plurality of base stations 12 , 14 , 16 and the server 300 of a cell site, and the traffic of the base station through the interface unit 50 is transmitted to a vRAN package (eg, 342). Also, according to another example, information about the vRAN package (eg, 342 ) allocated through the interface unit 50 may be transmitted to a plurality of base stations 12 , 14 , 16 of a cell site.
- the interface unit 50 may include an Ethernet interface unit (EIU) or a front switching unit (FSU).
- the server 300 may perform at least some of the radio access network functions performed by the base station.
- the radio access network function may include, for example, a packet data convergence protocol (PDCP) layer function, a radio link control (RLC) layer function, a medium access control (MAC) layer function, and a physical (PHY) layer function, etc. , this is only an example, and the radio access network function is not limited to the above-described example.
- PDCP packet data convergence protocol
- RLC radio link control
- MAC medium access control
- PHY physical
- a wireless transceiver including an RF device exists in each of the plurality of base stations 12 , 14 , and 16 of the cell site, and other wireless access network functions may be performed by the server 300 .
- PHY SC, MAC SC, and RLC SC may be created in the server 300, and the PHY SC, MAC SC, and RLC SC may perform the aforementioned PHY layer function, MAC layer function, and RLC layer function, respectively. there is.
- the wireless access network function performed by the server 300 is not limited to the above-described example.
- the PHY SC, MAC SC, and RLC SC may be included in one vRAN package (eg, 342 ).
- a vRAN package (eg, 342) is a minimum unit that may include one or more SCs performing a radio access network function.
- the vRAN package (eg, 342) may be configured with instructions to virtualize and perform radio access network functions previously performed in a hardware device, and in units of the vRAN package (eg, 342), SC may be removed or created.
- the vRAN package (eg, 342 ) may provide vRAN package usage information to the component management package 370 .
- the vRAN package usage information may include traffic information and traffic processing information generated by the plurality of base stations 12 , 14 , and 16 .
- the traffic is the flow of data passing through the communication network within a predetermined time.
- Traffic according to an embodiment may include a data flow between the terminal and the base station (eg, 12), and may be expressed as a data rate per unit time, or the like.
- Traffic may occur in the process of executing an application by a terminal accessing the base station (eg, 12).
- the application refers to an application program that is run in a device such as a terminal for a specific application service, and several applications may be driven in the terminal. At least one of these applications may use the MEC service.
- vRAN traffic information is information that can directly or indirectly indicate the amount and characteristics of traffic.
- the vRAN traffic information includes, for example, the number of cells processed by the vRAN package, the traffic processing rate per cell (eg, bps), the number of terminals connected to the base station, the bandwidth allocated to the base station, and the frequency between different radio communication technologies. Sharing ratio, downlink channel and uplink channel processing time (DL/UL latency), the number of layers according to the multi-input multi-output (MIMO) antenna of each base station, resource usage of each base station (e.g., PRB ( physical resource block) usage ratio), or information such as a handover frequency of the terminal.
- the vRAN traffic information may include a type of service generating traffic, a frequency band in which the traffic is generated, and a type of a wireless communication system (eg, NR or LTE) in which the traffic is generated.
- the vRAN traffic processing information is information on a process of processing traffic according to a radio access network function.
- the vRAN traffic processing information may include, for example, vRAN resource information used for processing traffic generated by a plurality of base stations.
- the vRAN resource information is information that can directly or indirectly indicate hardware resources used for vRAN traffic processing.
- vRAN resource information for example, the type of hardware allocated to the vRAN package, the ratio of hardware cores used for vRAN traffic processing among the hardware cores allocated to the vRAN package, used for processing vRAN traffic compared to the maximum hardware core clock cycle It may include the number of clock cycles to be used, the amount of memory allocated to the vRAN package for processing vRAN traffic, and the like.
- the vRAN resource information may include information on hardware components available in the vRAN package, and in this case, the information on hardware components available in the vRAN package may include priority information for each hardware component. .
- vRAN traffic information or vRAN resource information is not limited to the above-described examples.
- the vRAN package usage information may be received from the plurality of base stations 12 , 14 , 16 to the vRAN package (eg, 342 ) through the interface unit 50 , and according to another example, the vRAN package usage information is It may be received from the OS 320 inside the server or another external device. For example, traffic information among vRAN package usage information may be received from a plurality of base stations 12 , 14 , and 16 . In addition, resource information among vRAN package use information may be received from the OS 320 of the server. However, this is only an example, and a method for the vRAN package (eg, 342 ) to receive vRAN package use information is not limited to the above-described example.
- the vRAN package usage information may be obtained as a result of applying a statistical method (eg, a method of calculating the average, variance, etc.) to the vRAN package usage information obtained by the vRAN package (eg, 342).
- a statistical method eg, a method of calculating the average, variance, etc.
- the vRAN package (eg, 342 ) may transmit the obtained vRAN package usage information to the component management package 370 .
- the component management package 370 will be described later.
- traffic generated due to application execution using the MEC service among the traffic delivered to the vRAN package is the MEC package (eg, 362) through the UPF package (eg, 352 or 354).
- the server 300 may perform at least some of the UPF functions performed in the core network.
- the UPF function may include, for example, a management/control function and a user plane processing function, and the server 300 generates a management/control SC and a user plane processing SC.
- Each can perform the above-mentioned function.
- this is only an example, and the UPF function performed by the server 300 is not limited to the above-described example.
- the management/control SC and the user plane processing SC may be included in one UPF package (eg, 352 or 354).
- the user plane data transmitted from the vRAN package eg, 342
- the MEC package eg, 362
- the UPF package (eg, 352 or 354) may provide UPF package usage information to the component management package 370 .
- the UPF package usage information is information on the processing of user plane data delivered from the vRAN package (eg, 342) or the MEC package (eg, 362), the number of terminals/sessions connected to the vRAN package, UPF traffic processing It may include information on speed (eg, packet per second).
- the UPF package usage information may include, for example, UPF resource information used for processing user plane data.
- UPF resource information is information that can directly or indirectly indicate hardware resources used for user plane data processing, for example, the type of hardware allocated to the UPF package, and used for traffic processing among the hardware cores allocated to the UPF package. It may include the ratio of hardware cores used, the number of clock cycles used for traffic processing compared to the maximum hardware core clock cycle, and the amount of memory allocated to the UPF package for traffic processing.
- the UPF resource information may include information on hardware components usable in the UPF package, and in this case, the information on hardware components usable in the UPF package may include priority information for each hardware component. .
- the UPF package use information may be received from the OS 320 inside the server or another external device.
- user plane traffic information among UPF package usage information may be received from a vRAN package (eg, 342 ).
- resource information among the UPF package use information may be received from the OS 320 of the server.
- a method for the UPF package (eg, 352 or 354 ) to receive the UPF package use information is not limited to the above-described example.
- the UPF package usage information is a result of applying a statistical method (eg, a method of calculating the mean, variance, etc.) to the UPF package usage information previously obtained by the UPF package (eg, 352 or 354). may be obtained.
- the UPF package (eg, 352 or 354 ) may transmit the acquired UPF package use information to the component management package 370 .
- the MEC package (eg, 362) may execute an edge application, and may process traffic generated by the execution of the edge application or traffic received in connection with the edge application.
- the edge application may be executed on the edge data network, and the edge data network is disposed inside or geographically close to the base station of the 3GPP network to which the terminal is connected, and at least part of the content provided by the external server 90 is the same content can be provided.
- traffic that does not use the MEC service among the traffic delivered to the vRAN package 342 it may be transferred to another server outside the server 300 , and in the present disclosure, another server outside the server 300 processes traffic A description of the method will be omitted.
- the MEC package (eg, 362 ) may provide MEC package use information to the component management package 370 .
- MEC package usage information is information about services provided through edge applications, and through Information on the amount of generated traffic or the location of the terminal using the service may be included.
- the MEC package usage information may include, for example, MEC resource information used for processing edge application data.
- MEC resource information is information that can directly or indirectly indicate hardware resources used for edge application data processing, for example, the type of hardware allocated to the MEC package, and used for traffic processing among the hardware cores allocated to the MEC package. It may include the ratio of the hardware cores used, the number of clock cycles used for traffic processing compared to the maximum hardware core clock cycle, and the memory size allocated to the MEC package for traffic processing.
- the MEC resource information may include information on hardware components usable in the MEC package, and in this case, the information on hardware components available in the MEC package may include priority information for each hardware component. .
- MEC package use information or MEC resource information is not limited to the above-described examples.
- the MEC package use information may be received from the OS 320 inside the server or another external device.
- resource information among MEC package use information may be received from the OS 320 of the server.
- a method for the MEC package (eg, 362 ) to receive MEC package use information is not limited to the above-described example.
- the package usage information may be obtained as a result of applying a statistical method (eg, a method of calculating an average, variance, etc.) to the previously obtained MEC package usage information by the MEC package (eg, 362). there is.
- the MEC package (eg, 362 ) may transmit the obtained MEC package use information to the component management package 370 .
- the component management package 370 determines the number of SCs included in a vRAN package (eg, 342), a UPF package (eg, 352 or 354), or an MEC package (eg, 362) and the resources allocated to the SCs. Alternatively, it is an instruction set for determining a hardware component (HC) that performs an MEC function or a vRAN function.
- the component management package 370 may include an interface (IF) 372 and a component management SC 374 .
- the IF 372 receives vRAN package usage information from a vRAN package (eg, 342 ), receives UPF package usage information from a UPF package (eg, 352 or 354 ), and an MEC package (eg, 362) may receive MEC package use information.
- the IF 372 may obtain information about an event predicted to cause a package use change from an external device.
- the component management package 370 may acquire hardware usage information for all packages included in the server 300 .
- Hardware usage information includes, for example, hardware such as CPU 311 , RAM 312 , FPGA 313 , GPU 314 , NIC 315 , storage 316 , ASIC 317 and eASIC 318 . It may include information about the allocation status of each component package, whether it is used, the core load status, the number of processing cycles per core, and the like.
- the component management SC 374 may determine at least one hardware component that executes the software package in the server 300 based on the vRAN package usage information, the UPF package usage information, the MEC package usage information, and the hardware usage information.
- the component management SC 374 determines based on the MEC package usage information and determines that the MEC service usage has increased, in order to increase the processing speed of the MEC service, the traffic generated by the MEC service being performed by the CPU is Processing can be offloaded to GPUs and FPGAs. Meanwhile, the component management SC 374 may determine that the vRAN function is performed by the CPU as both the GPU and the FPGA are used for MEC service processing.
- a bottleneck of data transmission occurs or is expected to occur due to an increase in the amount of LDCP decoding operation in the LDPC decoder of the PHY SC included in the vRAN package 342.
- LDPC low density parity check
- H-matrix When the size of the parity check matrix H-matrix rapidly increases, the stability of high-speed data transmission cannot be guaranteed due to the increase in the amount of computation in the decoding process. can
- the component management SC 374 includes the MEC package 362. It may be decided to allocate the GPU 314 and the FPGA 313 to the vRAN package 342 . Alternatively, the component management SC 374 may determine to allocate a CPU core and a GPU core to each of the MEC package 362 and the vRAN package 342 at a predetermined ratio.
- the optimal ratio of the ratio of the CPU core to the GPU core allocated to each of the MEC package 362 and the vRAN package 342 may be determined based on the MEC package use information and the vRAN package use information.
- the CPU 311 and GPU 314, which are processors, will be mainly described, but the set of hardware components used by the software package may further include a storage 316 or a RAM 312 in addition to the description.
- the component management SC 374 may transmit information about the determined vRAN package and the MEC package to the virtualization master 380, and the virtualization master 380 transmits a command for controlling the vRAN package and the MEC package according to the transmitted command to the virtualization software. You can send it to (330).
- the component management SC 374 is the number of SCs in software performing a network function, resources and software based on the amount of traffic expected to be generated, the type of traffic, and the performance required to process the traffic. It is possible to determine the type of hardware component that executes . A detailed description thereof will be described later with reference to FIG. 4 .
- the O&M 70 may instruct the interface unit 50 to allocate traffic generated by the plurality of base stations 12 , 14 , 16 to each vRAN package in consideration of the adjusted vRAN package. Accordingly, traffic received from at least one of the plurality of base stations 12, 14, and 16 may be newly allocated to the adjusted vRAN package.
- FIG. 4 is a diagram for explaining hardware offloading according to an embodiment of the present disclosure.
- the server 400 includes hardware 410 , an operating system (OS) 420 , virtualization software 430 , and packages performing network functions (eg, vRAN packages 442 and 444, UPF packages). 452 , 454 , and MEC package 462 , a component management package 470 , and a virtualization master 480 .
- OS operating system
- VRAN packages 442 and 444 virtualization software
- UPF packages UPF packages
- the component management package 470 monitors the usage status of the software packages 442 , 444 , 452 , 454 , and 462 running in the server 400 .
- component management package 470 receives vRAN package usage information from vRAN package (eg, 442 ) via IF 472 , and UPF from UPF package (eg, 452 or 454 ).
- the use status of the software packages may be monitored by receiving the package usage information and receiving the MEC package usage information from the MEC package (eg, 462 ).
- the component management package 470 may acquire hardware usage information for all software packages included in the server 400 .
- Hardware usage information may include, for example, hardware such as CPU 411 , RAM 412 , FPGA 413 , GPU 414 , NIC 415 , storage 416 , ASIC 417 and eASIC 418 ).
- Information on the allocation status, usage status, core load status, number of processing cycles per core, etc. for each package of the component may be included, and may include the same information as resource information included in each package usage information.
- the component management SC 474 changes the set of hardware components used by the running vRAN package 442 based on the vRAN package usage information, the UPF package usage information, the MEC package usage information and the hardware usage information, that is, a new set of hardware components. You can decide whether you need to allocate
- the component management SC 474 may monitor the software package usage state through vRAN package usage information, UPF package usage information, MEC package usage information, and hardware usage information. Monitoring may be performed continuously or periodically, and may be additionally performed when a specific event that changes the software package usage status occurs.
- the component management SC 474 may determine whether it is necessary to change the set of hardware components executing the vRAN package 442 based on the obtained package usage information, and may determine hardware offloading based on the determination.
- the component management SC 474 is the HC assigned to the vRAN package 442 , the CPU 411 . ) to be offloaded, and an optimal HC to be newly allocated may be determined to the GPU 414 .
- the component management SC 474 may check whether there is an existing package being executed on the GPU 414 .
- the GPU 414 can be allocated to the new vRAN package 444 without a separate process for securing the GPU 414 .
- hardware offloading may also occur between different packages or different hardware components.
- the component management SC 474 may determine whether to offload hardware and a hardware component to be offloaded based on usage information for each package using the hardware component determination table.
- the hardware component determination table may include information on a combination usable by each package executing in the server or information on a priority of a hardware component to be allocated for each package.
- the hardware component determination table may be trained or updated based on artificial intelligence or machine learning techniques.
- the component management SC 474 notifies the virtualization master 480 of the hardware offloading of the vRAN package 442 .
- the virtualization master 480 requests the distribution of the new vRAN package 444 and the allocation of the GPU 414 to the virtualization software 430 or OS 420 .
- the virtualization software 430 or OS 420 that has obtained the distribution of the new vRAN package 444 and the allocation request of the GPU 414 scales out the same instances as the SC included in the existing vRAN package 442 to create a new vRAN A package 444 may be created (or installed), and the GPU 414 may be assigned to the newly created vRAN package 444 .
- the server 400 transfers the traffic path generated from a plurality of base stations (not shown) through the O&M 70, and transfers the new vRAN package from the existing vRAN package 442 to the new vRAN package 442 .
- the interface unit 50 may be instructed to change to 444 .
- the server 400 scales in instances of the SC included in the existing vRAN package 442 and deletes (or terminates) the existing vRAN package 442 to perform hardware offloading to the vRAN package. can be completed
- FIG. 5 is a diagram for explaining hardware offloading according to another embodiment of the present disclosure.
- the server 500 includes hardware 510 , an operating system (OS) 320 , virtualization software 530 , and packages performing network functions (eg, vRAN packages 542 and 544, UPF packages). 552 , 554 , and MEC packages 562 , 564 , a component management package 570 , and a virtualization master 580 .
- OS operating system
- the component management SC 574 determines whether the running vRAN package 542 needs to change the running hardware, ie, allocate new hardware, based on the vRAN package use information, the UPF package use information, the MEC package use information, and the hardware use information. can decide whether The component management SC 574 may determine whether it is necessary to change the hardware executing the vRAN package 542 based on the obtained package usage information, and may determine hardware offloading based on the determination result.
- the component management SC 574 is a hardware component set assigned to the vRAN package 542 , the CPU. It may be determined whether the offloading of 511 is necessary, and an optimal set of hardware components to be newly allocated (eg, CPU core 2/3 and GPU core 1/2) may be determined. In this case, the component management SC 574 may check whether the total usage of the GPU 514 is greater than or equal to a threshold (eg, 90% of the total GPU cores).
- a threshold eg, 90% of the total GPU cores.
- the component management SC 574 may determine a new set of hardware components (eg, CPU core 1/5 and GPU core 1/4) to be assigned to the MEC package 562 , and perform hardware offloading.
- the threshold value may be different for each hardware, and may be set to an appropriate value for system operation.
- hardware offloading may also occur between different software packages (eg, UPF package and MEC package) or other hardware components (eg, FPGA and eASIC).
- software packages eg, UPF package and MEC package
- other hardware components eg, FPGA and eASIC.
- the component management SC 574 may determine whether to offload hardware and a set of hardware components to be offloaded based on usage information for each package using the hardware component determination table.
- the hardware component determination table may include information on a combination usable by each package executing in the server or information on a priority of a hardware component to be allocated for each package.
- the hardware component determination table may be trained or updated based on artificial intelligence or machine learning techniques.
- the component management SC 574 When the hardware offloading of the vRAN package 542 and the MEC package 562 is determined, the component management SC 574 notifies the virtualization master 580 of the hardware offloading of the vRAN package 542 and the MEC package 562 . .
- the CM SC 574 distributes a new MEC package 564 to the virtualization software 530 or OS 520 through the virtualization master 580 and a new set of hardware components (eg For example, request allocation of CPU core 511 2/3 and GPU 514 core 1/2), deployment of a new vRAN package 544 and a new set of hardware components (eg, CPU 511 core It requests allocation of 1/5 and the GPU 514 core 1/4).
- the virtualization software 530 or OS 520 which has obtained the distribution of the new MEC package 564 and the allocation request of the CPU 511, scales out the same instances as the SC included in the existing MEC package 562, so that the new MEC A package 564 may be created (or installed).
- the SCs of the existing MEC package 562 using the GPU 514 are restarted in the new MEC package 564 , the GPU 514 resource used by the existing MEC package 562 is returned.
- the virtualization software 530 or OS 520 which has obtained a request for distribution of the new vRAN package 544 and allocation of a new set of hardware components, scales out the same instances as the SC included in the existing vRAN package 542 to create a new vRAN package 544 may be created (or installed).
- the SCs of the existing vRAN package 542 using the CPU 511 are restarted in the new vRAN package 544 , the CPU 511 resources used by the existing vRAN package 542 are returned.
- the virtualization software 530 or OS 520 allocates a new set of hardware components (eg, CPU core 511 2/3 and GPU 514 core 1/2) as a new vRAN package 544 and , a new set of hardware components (eg, CPU 511 core 1/5 and GPU 514 core 1/4) may be allocated as the new MEC package 564 .
- a new set of hardware components eg, CPU core 511 2/3 and GPU 514 core 1/2
- a new set of hardware components eg, CPU 511 core 1/5 and GPU 514 core 1/4
- the server 500 transmits a traffic path generated from a plurality of base stations (not shown) through the O&M 70 to the new vRAN package ( 544 ) and the new MEC package 564 may instruct the interface unit 50 to change.
- the server 500 scales in instances of SC included in the existing vRAN package 542 , deletes the existing vRAN package 542 , and includes it in the existing MEC package 562 .
- Hardware offloading to the vRAN package and the MEC package may be completed by scaling-in the instances of the SC to be used and deleting the existing MEC package 562 .
- FIG. 6 is a flowchart illustrating a method for a server to perform hardware offloading of software packages according to an embodiment of the present disclosure.
- the server may obtain package usage information of each of a plurality of software packages for user equipments (UEs) that have accessed a plurality of base stations connected to the server.
- UEs user equipments
- a software package is a minimum unit that can include one or more SCs that perform a network function while sharing one IP, and the SCs can be created or removed in units of packages.
- a plurality of software packages for terminals accessing a plurality of base stations connected to the server may include a vRAN package, a UPF package, or an MEC package.
- the vRAN package may include an SC performing a radio access network function
- the UPF package may include an SC performing the UPF function
- the MEC package may include an SC performing the MEC function.
- the package use information may include vRAN package use information, UPF package use information, or MEC package use information.
- the package use information may include hardware use information for all packages included in the server.
- the vRAN package usage information may include vRAN traffic information and vRAN traffic processing information generated from a plurality of base stations connected to the server.
- the vRAN traffic information includes, for example, the number of cells processed by the vRAN package, the traffic processing rate per cell (eg, bps), the number of terminals connected to the base station, the bandwidth allocated to the base station, and the frequency between different radio communication technologies. Sharing ratio, downlink channel and uplink channel processing time (DL/UL latency), the number of layers according to the multi-input multi-output (MIMO) antenna of each base station, resource usage of each base station (e.g., PRB ( physical resource block) usage ratio), or information such as a handover frequency of the terminal.
- MIMO multi-input multi-output
- the vRAN traffic information may include a type of service generating traffic, a frequency band in which the traffic is generated, and a type of a wireless communication system (eg, NR or LTE) in which the traffic is generated.
- the vRAN traffic processing information is information on a process of processing traffic according to a radio access network function.
- the vRAN traffic processing information may include, for example, vRAN resource information used for processing traffic generated by a plurality of base stations.
- the vRAN resource information is information that can directly or indirectly indicate hardware resources used for vRAN traffic processing.
- the vRAN resource information may include, for example, the type of hardware allocated to the vRAN package, the ratio of hardware cores used for vRAN traffic processing among the hardware cores allocated to the vRAN package, and the maximum hardware core clock cycle used for traffic processing. This may include the number of clock cycles, the amount of memory allocated to the vRAN package for processing vRAN traffic, and the like.
- the above-described examples are merely examples, and vRAN traffic information or vRAN resource information is not limited to the above-described examples.
- the UPF package usage information is information on the processing of user plane data transmitted from the vRAN package or the MEC package, and information on the number of terminals/sessions connected to the vRAN package, UPF traffic processing speed (eg, packet per second), etc. may include
- the UPF package usage information may include, for example, UPF resource information used for processing user plane data.
- UPF resource information is information that can directly or indirectly indicate hardware resources used for user plane data processing, for example, the type of hardware allocated to the UPF package, and used for traffic processing among the hardware cores allocated to the UPF package. It may include the ratio of hardware cores used, the number of clock cycles used for traffic processing compared to the maximum hardware core clock cycle, and the amount of memory allocated to the UPF package for traffic processing.
- the above-described examples are merely examples, and the UPF package use information or UPF resource information is not limited to the above-described examples.
- the MEC package usage information is information about services provided through edge applications, and includes the number of edge applications, the number of terminals connected to the edge applications, response time to edge applications, types of services, time using services, and service usage. Information on the amount of traffic generated through the service or the location of the terminal using the service may be included.
- the MEC package usage information may include, for example, MEC resource information used for processing edge application data.
- MEC resource information is information that can directly or indirectly indicate hardware resources used for edge application data processing, for example, the type of hardware allocated to the MEC package, and used for traffic processing among the hardware cores allocated to the MEC package. It may include the ratio of the hardware cores used, the number of clock cycles used for traffic processing compared to the maximum hardware core clock cycle, and the memory size allocated to the MEC package for traffic processing.
- the above-described examples are only examples, and the MEC package use information or MEC resource information is not limited to the above-described examples.
- Each package may transmit package usage information to the component management package periodically or upon occurrence of a predetermined event, and the server may monitor the hardware component usage status of each package based on the package usage information.
- the server may separately manage hardware use information for hardware components used by all packages by integrating resource information included in each package use information.
- the hardware usage information may include information about an allocation state, whether to use, a core load state, the number of processing cycles per core, and the like for each package of hardware components.
- the server may determine a first set of hardware components for processing tasks operating in the first software package among the plurality of software packages based on the software package usage information of each of the plurality of packages.
- the component management SC may determine at least one hardware component executing the software package in the server based on the vRAN package usage information, the UPF package usage information, the MEC package usage information, and the hardware usage information. More specifically, the component management SC manages the number of SCs in the software package, resources and software packages based on the amount of traffic expected to be generated, the type of traffic and the performance required for traffic processing, the type of service required by the user terminal, and the like. It is possible to determine the type and usage of hardware components to be executed. A detailed description thereof will be described later with reference to FIGS. 8 to 11 .
- the server may generate a second software package, and allocate the first set of hardware components to the second software package.
- the component management package requests to create a new software package capable of handling tasks running in the first software package as a virtualization master in order to allocate a new hardware component.
- the virtualization master having obtained the request for creation of a new software package, scales out the same instances as the SC included in the first software package to generate the second software package.
- the component management package may request to allocate a hardware component to the created software package together with a package creation request to the virtualization master.
- the virtualization master having obtained the hardware component allocation request may allocate the first hardware component set determined in step 620 to the newly created second software package.
- the server may transfer tasks operating in the first software package to the second software package.
- the component management package transmits a data path change request to the O&M package to change the data path from the first software package to the second software package.
- the O&M package having obtained the data path change request may communicate with the interface unit to transmit the data path change request to a plurality of base stations connected to the server.
- the server may delete the first software package.
- the component management package may request the virtualization master to delete the first software package.
- the virtualization master having obtained the first software package deletion request may delete the first software package by scaling-in instances of the SC included in the first software package and removing the instances.
- the first software package is deleted, hardware components executing the first software package are released.
- FIG. 7 is a flowchart illustrating a method in which a server performs hardware offloading on packages performing a network function according to another embodiment of the present disclosure.
- the server obtains package use information of each of a plurality of software packages for terminals that have accessed a plurality of base stations connected to the server, and based on the obtained package use information, one of the plurality of software packages A first set of hardware components for processing tasks operating in a first software package may be determined.
- Steps 710 to 720 are the same as steps 610 to 620.
- the server checks the usage of each of the plurality of hardware components reflecting the usage of the first set of hardware components (step 730) and threshold the usage of each of the plurality of hardware components Comparing with the value (step 740) is further included.
- step 740 if the usage of each of the plurality of hardware components is all less than the threshold, that is, if the hardware component to be added to process tasks operating in the first software package is an idle resource, steps 790 to 799 are immediately performed. and this is the same as steps 630 to 650 of FIG. 6 .
- step 790 is performed.
- the server may determine a second set of hardware components for processing tasks operating in a third software package that uses a hardware component whose usage is equal to or greater than a threshold based on package usage information of each of the plurality of software packages.
- the component management SC may determine a set of hardware components executing the software package in the server based on the vRAN package usage information, the UPF package usage information, the MEC package usage information, and the hardware usage information. In this case, it may be determined that the total usage of the hardware components to be newly allocated to the third software package is equal to or less than a threshold value.
- the server may generate a fourth software package and assign a second set of hardware components to the fourth software package.
- the component management package requests to create a new software package capable of handling tasks running in a third software package as a virtualization master in order to allocate a new hardware component.
- the virtualization master having obtained the request for creation of a new software package may generate the fourth software package by scaling out the same instances as the SC included in the third software package.
- the component management package may request to allocate a hardware component to the created software package together with a software package creation request to the virtualization master.
- the virtualization master having obtained the hardware component allocation request may allocate the second hardware component set determined in step 750 to the newly created fourth software package.
- the server may transfer tasks operating in the third software package to the fourth software package.
- the component management package transmits a data path change request to the O&M package to change the data path from the third software package to the fourth software package.
- the O&M package having obtained the data path change request may communicate with the interface unit to transmit the data path change request to a plurality of base stations connected to the server.
- the server may delete the third software package.
- the component management package may request the virtualization master to delete the third software package.
- the virtualization master having obtained the request to delete the third software package may delete the third software package by scaling-in instances of the SC included in the third software package and removing the instances.
- the hardware components executing the third software package are released.
- the virtualization master may allocate the released idle resource to the second software package.
- Steps 790 to 799 are the same as steps 630 to 650 of FIG. 6, and thus a description thereof will be omitted.
- FIG. 8 is a diagram for describing a method for a server to determine a hardware component on which software packages are executed when an increase in vRAN package traffic is expected, according to an embodiment of the present disclosure.
- the server 800 may drive an SC package that virtualizes network functions through hardware 810 included in the server.
- the OS 820 may be driven in the hardware 810 , and the OS may manage the hardware 810 and the virtualization software 830 .
- the descriptions of the hardware 810 , the OS 820 , and the virtualization software 830 are the same as those described above with reference to FIG. 3 , and thus a description thereof will be omitted.
- the UPF packages 852 and 854 it is assumed that there is no change in the hardware components executing the UPF packages 852 and 854, and illustration and description thereof are omitted.
- vRAN package usage information and MEC package usage information including traffic processing information to be generated by terminals
- a method of determining a hardware component in which an SC package virtualizing each of the vRAN function and the MEC function is executed will be described. In order to do so, the operation of the above-described server will be described in detail with reference to FIGS. 3 to 5 .
- FIG. 8 assumes that hardware offloading occurs while the vRAN package 842 is running on the FPGA 813 and the MEC package 862 is running on the GPU 814 .
- the vRAN package 842 may receive traffic generated by the base station 10 .
- Each of the PHY SC, MAC SC, and RLC SC included in the vRAN package 842 may perform a PHY layer function, a MAC layer function, and an RLC layer function on the forwarded traffic.
- the vRAN package 842 may transmit vRAN package usage information including traffic processing information to the component management package 870 .
- traffic delivered to the vRAN package 842 traffic generated due to application execution using the MEC service may be delivered to the MEC package 862 .
- traffic that does not use the MEC service may be transferred to another server outside the server, and in the present disclosure, a description of a method of processing traffic in another server outside the server is omitted. to do it
- the MEC package 862 may process traffic according to the MEC service received from the vRAN package 842 .
- the MEC package 862 may provide MEC package use information to the component management package 870 .
- the MEC package 862 may include a plurality of MEC app SCs, and a description thereof will be omitted since it corresponds to that described above with reference to FIG. 2 .
- the MEC package 862 provides MEC package use information including information on the type of MEC service acquired, the time using the MEC service, and the amount of traffic generated through the use of the MEC service in the traffic processing process. can be forwarded to
- the MEC service may be, for example, a service provided by IoT devices and wearable devices provided in a home, but this is only an example and the MEC service is not limited to the above-described example.
- the component management package 870 may include an IF 872 and a component management SC 874 .
- the component management SC 874 is based on the vRAN package usage information and the MEC package usage information received through the IF 872 , information on traffic and MEC service usage to be generated by terminals accessing the base station 10 . can be obtained.
- the vRAN package 842 and the MEC package 862 may periodically transmit the vRAN package use information and the MEC package use information to the component management package 870 .
- the vRAN package 842 may transmit priority information according to the performance of hardware components capable of executing the vRAN package 842 to the component management package 870 .
- vRAN package 842 can run on CPU 811 , FPGA 813 , or GPU 814 , and shows best performance when run on GPU 814 , when running on FPGA 813 . It represents the second performance, and may represent the third performance when executed in the CPU 811 .
- the vRAN package 842 exhibits the best performance when run together on the CPU 811 and the GPU 814 , and exhibits the second performance when run together on the GPU 814 and the FPGA 813 , and the CPU 811 ) and the FPGA 813 may represent the third performance when executed together.
- the MEC package 862 may transmit priority information on the performance of hardware components capable of executing the MEC package 862 to the component management package 870 .
- MEC package 862 may run on CPU 811 and GPU 814, exhibiting the best performance when running on GPU 814, and exhibiting second performance when running on CPU 811. .
- the MEC package 862 shows the best performance when executed together on the CPU 811 and the GPU 814 , the second performance when executed on the GPU 814 , and the third when executed on the CPU 811 . performance can be shown.
- the FPGA 813 is allocated only to the vRAN package 842 (vRAN package 842 uses all of the FPGA 813), and the GPU 814 is allocated only to the MEC package 862 ( After the MEG package 862 uses all of the GPU 814), as new hardware is required to be allocated to the vRAN package, the hardware components allocated to the vRAN package 842 are transferred from the FPGA 813 to the GPU 814 and MEC. It is assumed that hardware components allocated to the package 862 are hardware offloading from the GPU 814 to the CPU 811 .
- the server may allocate a set of hardware components to one software package as described above, and the set of hardware components includes each of a plurality of hardware components. It can be determined according to whether or not the use of
- UEs user equipments
- a multi-input multi-output (MIMO) system may be configured to support more layers when traffic increases, that is, to use more transmit/receive antennas. Accordingly, in this case, it may be determined that a load will occur on the vRAN package 842 for traffic processing.
- the component management package 870 may calculate a trend of performance data of the vRAN package 842 over time, and may predict a load.
- the component management package 870 may determine an increase/decrease trend in the number of connected user terminals using a regression model.
- the component management package 870 may track the uplink/downlink channel processing latency change according to the number of layers and the use of a physical resource block (PRB), the uplink / If the downlink channel processing delay time exceeds a certain threshold (eg, 0.5 ms), it may be decided to use a hardware component that provides higher performance.
- PRB physical resource block
- the component management package 870 may predict the load of the vRAN package 842 using a rule-based or artificial intelligence (AI)/machine learning (ML)-based technology. For example, when predicting and determining the vRAN package 842 load according to the number of uplink layers, if the number of uplink layers is 2 or less, it is executed on the CPU, and if the number of uplink layers is 4 or less, the vRAN package 842 is executed on the FPGA. , and when the number of uplink layers exceeds four, it may be decided to run the vRAN package 842 on the GPU.
- AI artificial intelligence
- ML machine learning
- the component management package 870 may calculate a trend of performance data of the MEC package 862 according to time. For example, the component management package 870 may track the frequency (request per second) that the user terminal connected to the MEC package 862 connects the MEC service, and the MEC service connection frequency is set to a certain threshold (eg, , 1 request per second), it may be determined that the MEC package 862 may be executed on a low-performance hardware component.
- a certain threshold eg, , 1 request per second
- the component management SC 872 is based on the number of terminals accessing the base station 10 in each time zone for each day of the week and the type of application used by each connected terminal, as shown in FIG. 8, weekly It can be predicted that between t1 - t2 on Monday, the traffic volume increases above the threshold A due to the increase in smartphone users, and the MEC service usage is less than X% of the traffic volume.
- the component management SC 872 is hardware-off so that the vRAN package 842, which was running on the CPU 811 , is executed on the GPU 814 to increase the traffic processing speed as the traffic volume is predicted to increase above the threshold A. You can decide to perform the loading.
- the GPU 814 stores a function preset in the API for traffic processing, so that traffic can be processed faster based on this. Accordingly, the component management SC 872 may control commands configuring the vRAN package 842 so that the vRAN package 842 can be executed on the GPU 814 .
- the component management SC 872 checks whether there is a package being executed in the GPU 814 , and since the MEC package 862 is being executed in the GPU 814 , it determines a new hardware component to be assigned to the MEC package 862 .
- the component management SC 872 may provide the GPU 814 resource that was executing the MEC package 842 for the execution of the vRAN package 844. Thus, it may be determined to perform hardware offloading so that the MEC package 862 that was executed on the GPU 814 is executed on the CPU 811 .
- the component management SC 872 creates a new MEC package 864 that performs the same function as the MEC package 862 so that the MEC package 862 can release the GPU 814 .
- the component management SC 872 allocates the CPU 811 to the new MEC package 864, and then routes the traffic through the interface unit from the existing MEC package 862 to the new MEC package ( 864), and deletes the existing MEC package 862.
- the component management SC 872 creates a new vRAN package 844 and assigns the GPU 814 to the newly created vRAN package 844 in order to allocate the GPU 814 released from the MEC package 862 . . Thereafter, the component management SC 872 requests the interface unit 50 to change the traffic path from the old vRAN package 842 to the new vRAN package 844 , and deletes the existing vRAN package 842 to perform hardware offloading. to complete
- FIG. 9 is a diagram for explaining a method for a server to determine a hardware component in which software packages are executed when an increase in traffic amount and MEC service usage is expected according to another embodiment of the present disclosure.
- the server 900 may drive an SC package that virtualizes network functions through hardware 910 included in the server.
- the OS 920 may be driven in the hardware 910 , and the OS 920 may manage the hardware 910 and the virtualization software 930 .
- the descriptions of the hardware 910 , the OS 920 , and the virtualization software 930 are the same as those described above with reference to FIG. 3 , and thus a description thereof will be omitted.
- FIG. 9 a detailed description of a portion overlapping with FIG. 8 will be omitted.
- one hardware component is allocated to one software package and is exclusively owned by the corresponding software package.
- a hardware component set may be allocated to the , and the hardware component set may be determined according to whether or not each of the plurality of hardware components is used and used.
- the component management package 970 monitors package usage information of the MEC package 962 , package usage information of the vRAN package 942 , and package usage information of the UPF packages 952 to 954 .
- the MEC package 962 is loaded with rendering and encoding processing for providing the AR/VR service at the time, so the number of communication packets per second of the AR/VR MEC service provided by the MEC package 962 (packet per second) increases, and the usage of a hardware component (eg, CPU 911) allocated to the MEC package 962 sharply increases.
- a load is generated due to data traffic processing for providing AR/VR services to the audience at a corresponding time, so that the physical resource block usage and cell throughput are rapidly increased. Since traffic for the MEC service increases at that time, the UPF packages 952 to 954 also increase the user plane data throughput.
- the component management package 970 monitors the MEC package usage information, and as a result of monitoring the MEC package usage information, when the number of communication packets per second and the usage of the currently used hardware component are above a predetermined threshold, the MEC in the hardware component provides higher performance than the current one. You can decide to run the package.
- the component management package 970 may determine to execute the vRAN package on a hardware component that provides higher performance than the current one if the physical resource block usage and cell throughput are greater than or equal to a predetermined threshold as a result of monitoring the vRAN package usage information. .
- the component management package 970 may select a combination of hardware components in which both the vRAN package and the MEC package can be executed from among the available hardware components and assign them to the vRAN package and the MEC package.
- the component management package 970 executes the vRAN package on the FPGA 913 and , it may be determined to run the MEC package on the GPU 914 .
- the component management package 970 maintains the hardware components assigned to the vRAN package 942 and transfers the hardware components assigned to the MEC package 962 to the CPU. Offload from 911 to GPU 914 .
- the component management package 970 offloads the hardware components assigned to the vRAN package 942 from the GPU 914 to the FPGA 913 , and the MEC package Offloads the hardware components assigned to 962 from the CPU 911 to the GPU 914 .
- the component management package 970 monitors the UPF package usage information and, if the user plane data throughput is greater than or equal to a predetermined threshold, the existing UPF packages 952 to 954 in order to secure processing performance of the UPF packages 952 to 954 . ) may be determined to allocate more cores to the CPU 911 , which is a hardware component allocated to .
- FIG. 10 is a diagram for explaining a method for a server to determine a hardware component in which packages virtualizing network functions are executed when an increase in MEC service load is expected by a server according to another embodiment of the present disclosure.
- the server 1000 may drive an SC package that virtualizes network functions through hardware 1010 included in the server.
- the OS 1020 may be driven in the hardware 1010 , and the OS may manage the hardware 1010 and the virtualization software 1030 .
- the descriptions of the hardware 1010 , the OS 1020 , and the virtualization software 1030 are the same as those described above with reference to FIG. 3 , so a description thereof will be omitted.
- the UPF packages 1052 and 1054 it is assumed that there is no change in hardware components executing the UPF packages 1052 and 1054 , and illustration and description thereof are omitted.
- FIG. 10 a detailed description of a portion overlapping with FIG. 8 or 9 will be omitted.
- one hardware component is allocated to one software package and is exclusively owned by the corresponding software package.
- a hardware component set may be allocated to the , and the hardware component set may be determined according to whether or not each of the plurality of hardware components is used and used.
- the load of the MEC package is expected to increase, for example, the number of vehicle to everything (V2X)-based autonomous vehicles on the road increases.
- V2X vehicle to everything
- V2X-based autonomous vehicles use cooperative sensing services.
- the cooperative sensing service refers to a service that performs forward accident detection and notification by merging data sensed by surrounding vehicles.
- vRAN In the case of a service related to such an autonomous vehicle, if the service response time is delayed, safety may be greatly adversely affected, so it is preferable that vRAN, UPF, and MEC operate in one server.
- Autonomous vehicles using the cooperative sensing service transmit sensing data obtained from all sensors attached to the vehicle to a nearby MEC server.
- some representative vehicles are selected among all vehicles on the road, and the image captured by the camera attached to the vehicle is transmitted to the surrounding MEC server. Since the captured image shoots a wide area forward, it is not necessary for all vehicles to transmit the captured image to the server.
- the size of the sensor data for the cooperative sensing service is small and there are only a few vehicles that upload the captured image, so network traffic does not occur much, but overhead for AI/ML inference based on the received sensor data and image occurs. have characteristics.
- the vRAN package 1042 and the MEC package 1062 may be executed on one GPU 1014 .
- one physical GPU 1014 can be divided into multiple virtual GPUs (vGPUs), for example, multi-instance. It can be implemented with GPU technology, etc.
- the component management package 1070 monitors package usage information of the MEC package 1062 and package usage information of the vRAN package 1042 .
- the component management package 970 provides only the MEC package 1062 to one physical GPU 1014. You can decide to perform AI/ML inference by assigning it.
- the component management package 1070 may determine hardware offloading to change the hardware component assigned to the vRAN package 1042 from the GPU 1014 to the FPGA 1013 .
- 11 is a diagram for describing an AI model used to determine a hardware component on which a software package is executed, according to an embodiment.
- event information, package use information, and hardware component priority information may be applied as input data to the AI model 1100 (eg, DNN).
- the server described above with reference to FIG. 3 may train the AI model 1100 based on a result of comparing the output data and evaluation data obtained as a result of the above-described input data being applied to the AI model 1100 .
- the server may apply various input data to the AI model 1100 until the difference between the output data and the evaluation data is less than a preset threshold.
- the server may train the AI model 1100 by applying the difference value between the output data and the evaluation data together with the input data to the AI model 1100 .
- the values of parameters of the layers constituting the neural network of the AI model 1100 may be updated.
- this is only an example, and the training method of the AI model is not limited to the above-described example.
- Event information includes an event that occurs periodically (eg, an increase in floating population at a specific time in a specific place), a one-time event (eg, AR/VR service is provided at a specific time in a specific place), or a sudden event (eg, For example, it may include information on the increase of autonomous vehicles due to the occurrence of traffic jams).
- the server may input newly acquired event information, package use information, and HC priority information to the trained AI model 1100 to obtain information on HC allocation for each package.
- FIG. 12 is a block diagram of a server according to an embodiment of the present disclosure.
- the server may include a processor 1210 , a communication unit 1220 , a memory 1230 , and an interface unit 1240 .
- the components of the data transmission device are not limited to the above-described example.
- the data transmission device may include more or fewer components than the aforementioned components.
- the processor 1210 , the communication unit 1220 , the memory 1230 , and the interface unit 1240 may be implemented in the form of a single chip. Only the components related to the embodiment are shown in the device 1200 of FIG. 12 . Accordingly, it can be understood by those skilled in the art that other general-purpose components may be further included in addition to the components shown in FIG. 12 .
- the processor 1210 may control a series of processes for transmitting data (eg, packets) described with reference to FIGS. 1 to 11 . More specifically, the processor 1210 may determine and perform hardware offloading of packages including a software component virtualizing a network function. There may be a plurality of processors 1210 , and the processor 1210 may perform the above-described retransmission operation by executing a plurality of instructions (or programs) stored in the memory 1230 .
- the processor 1210 may control a series of processes in which the server may operate as shown in FIGS. 1 to 11 .
- the server may be implemented as a plurality of instructions (or programs).
- the processor 1210 may perform operations of the server by executing a plurality of instructions (or programs).
- the processor 1210 serves to control overall functions for controlling the data transmission device 1200 .
- the processor 1210 generally controls the device 1200 by executing programs stored in the memory 1230 in the device 1200 .
- the processor 1210 may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), etc. provided in the device 1200 , but is not limited thereto.
- the communication unit 1220 may connect to another device using a wired/wireless communication module and transmit/receive data.
- the communication unit 1220 may transmit/receive signals to and from an external device (eg, a terminal), a network (eg, a core network), or another data transmission device (eg, a cell group).
- a signal transmitted and received by the communication unit 1220 may include control information and data.
- the communication unit 1220 may include an RF transmitter for up-converting and amplifying a frequency of a transmitted signal, and an RF receiver for low-noise amplifying and down-converting a received signal.
- this is only an embodiment of the communication unit 1220 , and components of the communication unit 1111 are not limited to the RF transmitter and the RF receiver.
- the communication unit 1220 may receive a signal through a wireless channel and output it to the processor 1210 , and transmit the signal output from the processor 1210 through a wireless channel.
- the communication unit 1220 may transmit/receive data to and from an external device, a network, or another data transmission device under the control of the processor 1210 .
- the memory 1230 is hardware for storing various types of data processed in the data transmission device 1200 .
- the memory 1230 may store data received from the communication unit 1220 , processed data, and data to be processed. can be saved
- the memory 1230 may store a plurality of instructions (or programs) and data required for the operation of the data transmission apparatus 1200 . Also, the memory 1230 may store control information or data included in a signal transmitted and received by the data transmission device 1200 .
- the memory 1230 may be configured as a storage medium or a combination of storage media such as ROM, RAM, hard disk, CD-ROM, and DVD. Also, the number of memories 1230 may be plural.
- the interface 1240 may transmit/receive data and commands for mutual operation between each component inside the data transmission device 1200 .
- Each component of the block diagram may be integrated, added, or omitted according to the specifications of the actually implemented device. That is, two or more components may be combined into one component, or one component may be subdivided into two or more components as needed.
- the function performed in each block is for describing the embodiments, and the specific operation or device does not limit the scope of the present invention.
- a computer-readable storage medium storing one or more programs (software modules) may be provided.
- One or more programs stored in the computer-readable storage medium are configured to be executable by one or more processors in an electronic device (device).
- One or more programs include instructions for causing an electronic device to execute methods according to embodiments described in a claim or specification of the present disclosure.
- Such programs include random access memory, non-volatile memory including flash memory, read only memory (ROM), electrically erasable programmable ROM (EEPROM: Electrically Erasable Programmable Read Only Memory), magnetic disc storage device, Compact Disc-ROM (CD-ROM), Digital Versatile Discs (DVDs), or any other form of It may be stored in an optical storage device or a magnetic cassette. Alternatively, it may be stored in a memory composed of a combination of some or all thereof. In addition, each configuration memory may be included in plurality.
- the program accesses through a communication network composed of a communication network such as the Internet, Intranet, Local Area Network (LAN), Wide LAN (WLAN), or Storage Area Network (SAN), or a combination thereof. It may be stored in an attachable storage device that can be accessed. Such a storage device may be connected to a device implementing an embodiment of the present disclosure through an external port. In addition, a separate storage device on the communication network may be connected to the device implementing the embodiment of the present disclosure.
- a communication network such as the Internet, Intranet, Local Area Network (LAN), Wide LAN (WLAN), or Storage Area Network (SAN), or a combination thereof. It may be stored in an attachable storage device that can be accessed.
- Such a storage device may be connected to a device implementing an embodiment of the present disclosure through an external port.
- a separate storage device on the communication network may be connected to the device implementing the embodiment of the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명의 일 실시예에 따른 무선 통신 시스템에서, 서버가 소프트웨어 패키지를 실행하는 방법은, 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하는 단계; 패키지 이용 정보에 기초하여, 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하는 단계; 제 2 소프트웨어 패키지를 생성하고, 제 2 소프트웨어 패키지에 결정된 제 1 하드웨어 컴포넌트 세트를 할당하는 단계; 제 1 소프트웨어 패키지에서 동작하는 태스크들을 제 2 소프트웨어 패키지로 이전하는 단계; 및 제 1 소프트웨어 패키지를 삭제하는 단계;를 포함하고, 제 1 하드웨어 컴포넌트 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정된다.
Description
본 개시는 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 이를 위한 장치에 관한 것으로, 보다 구체적으로는, 복수의 소프트웨어 패키지에 최적화된 하드웨어 컴포넌트 세트를 결정하고 이를 복수의 소프트웨어 패키지 중 하나에 할당하는 방법 및 장치에 관한 것이다.
4G 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다.
시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다.
한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 사물인터넷(Internet of Things, 이하 IoT) 망으로 진화하고 있다. 클라우드 서버 등과의 연결을 통한 빅데이터(Big data) 처리 기술 등이 IoT 기술에 결합된 IoE (Internet of Everything) 기술도 대두되고 있다. IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT(Information Technology)기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
이에, 5G 통신 시스템을 IoT 망에 적용하기 위한 다양한 시도들이 이루어지고 있다. 예를 들어, 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 5G 통신이 빔 포밍, MIMO, 및 어레이 안테나 등의 기법에 의해 구현되고 있는 것이다. 앞서 설명한 빅데이터 처리 기술로써 클라우드 무선 접속 네트워크(cloud RAN)가 적용되는 것도 5G 기술과 IoT 기술 융합의 일 예라고 할 수 있을 것이다.
상술한 것과 무선 통신 시스템의 발전에 따라 다양한 기술이 적용될 수 있게 됨으로써, 이러한 다양한 기술을 통해 무선 접속 네트워크를 효율적으로 관리하기 위한 방안이 요구되고 있다.
개시된 실시예는 무선 통신 시스템에서 발생하는 트래픽 변화 또는 서비스 이용량의 변화에 대비하여 가상화된 네트워크 기능을 실행하기 위한 방법 및 장치를 제공할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 무선 통신 시스템에서, 서버가 소프트웨어 패키지를 실행하는 방법은, 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하는 단계; 패키지 이용 정보에 기초하여, 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하는 단계; 제 2 소프트웨어 패키지를 생성하고, 제 2 소프트웨어 패키지에 결정된 제 1 하드웨어 컴포넌트 세트를 할당하는 단계; 제 1 소프트웨어 패키지에서 동작하는 태스크들을 제 2 소프트웨어 패키지로 이전하는 단계; 및 제 1 소프트웨어 패키지를 삭제하는 단계;를 포함하고, 제 1 하드웨어 컴포넌트 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정된다.
본 발명의 또 다른 실시예에 따르면, 서버가 소프트웨어 패키지를 실행하는 방법은, 제 2 소프트웨어 패키지를 생성하기 전에, 제 1 하드웨어 컴포넌트 세트의 사용량이 반영된 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하는 단계;를 더 포함하고, 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있는 경우, 패키지 이용 정보에 기초하여 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정하는 단계; 제 4 소프트웨어 패키지를 생성하고, 제 4 소프트웨어 패키지에 제 2 하드웨어 컴포넌트 세트를 할당하는 단계; 제 3 소프트웨어 패키지에서 동작하는 태스크들을 제 4 소프트웨어 패키지로 이전하는 단계; 및 제 3 소프트웨어 패키지를 삭제하는 단계;를 포함한다.
본 발명의 또 다른 실시예에 따르면, 제 1 하드웨어 컴포넌트 세트는, 특정 시점에 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 각각을 기 설정된 임계값들과 비교하여 결정된다.
본 발명의 또 다른 실시예에 따르면, 제 2 소프트웨어 패키지에 제 1하드웨어 컴포넌트 세트를 할당하는 단계는, 특정 시점에서, 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 중 적어도 하나가 임계값을 초과할 것으로 식별됨에 따라, 특정 시점 이전에 수행된다.
본 발명의 또 다른 실시예에 따르면, 서버가 소프트웨어 패키지를 실행하는 방법은, 복수의 기지국에 대해 예정된, 트래픽 또는 MEC 서비스 이용 변화를 발생시키는 이벤트 정보를 획득하는 단계;를 더 포함하고, 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보는, 복수의 기지국에서, 이벤트 별로 이전에 발생된 트래픽 양 및 MEC 서비스 이용량을 포함하고, 제 1 하드웨어 컴포넌트 세트는, 식별 이벤트 별로 예상되는 트래픽 양 및 MEC 서비스 이용량을 기초로 획득된 이벤트 정보에 따라 복수의 기지국에서 발생될 트래픽량 및 MEC 서비스 이용량에 기초하여 결정된다.
본 발명의 또 다른 실시예에 따르면, 복수의 소프트웨어 패키지들 각각은, vRAN(virtualized radio access network) 패키지, MEC(mobile edge computing) 패키지, 또는 UPF(user plane function) 패키지 중 적어도 하나를 포함한다.
본 발명의 또 다른 실시예에 따르면, 복수의 하드웨어 컴포넌트들은, CPU(central processing unit), GPU(graphics processing unit), FPGA(field programmable gate array) 및 NIC(network interface controller) 중 적어도 하나를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 무선 통신 시스템에서 소프트웨어 패키지를 실행하는 서버는, 통신부; 복수의 인스트럭션들을 저장하는 메모리; 및 복수의 인스트럭션들을 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하고, 패키지 이용 정보에 기초하여, 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하고, 제 2 소프트웨어 패키지를 생성하고 제 2 소프트웨어 패키지에 제 1 하드웨어 컴포넌트 세트를 할당하고, 제 1 소프트웨어 패키지에서 동작하는 태스크들을 제 2 소프트웨어 패키지로 이전하고, 제 1 소프트웨어 패키지를 삭제하며, 제 1 하드웨어 컴포넌트들의 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정된다.
한편, 본 발명의 일 실시예에 따르면, 전술한 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 따르면, 소프트웨어 패키지의 컴포넌트별로 필요한 최적의 하드웨어를 할당함으로써, 나머지 하드웨어 자원을 다른 소프트웨어 패키지 또는 다른 컴포넌트로 할당할 수 있어, 서비스 이용량이 늘어나더라도 시스템 자원, 특히 하드웨어 자원을 효율적으로 사용 및 관리할 수 있다.
또한, 하드웨어 자원을 가상화함으로써 시스템 자원의 보다 더 효율적인 관리가 가능하다.
아래의 상세한 설명을 수행하기 전에, 본 특허 문서 전체에 걸쳐 사용된 특정 단어 및 구문의 정의를 설명하는 것이 유리할 수 있다: “포함하다(include 및 comprise)”라는 용어와 그 파생어는 제한 없이 포함됨을 의미한다; “또는” 이라는 용어는 포괄적이며, 및/또는을 의미한다; “~와 관련된(associated with 및 associated therewith)”라는 문구와 그 파생어는 포함(include, be included within, contain, be contained within), 상호 연결(interconnect with), ~에 연결(connect to, connect with, couple to, couple with), ~와 통신 가능(communicable with), 협력(cooperate with), 인터리브(interleave), 병치(juxtapose), ~에 근접(be proximate to), ~에 구속(be bound to 또는 be bound with), ~의 속성을 갖는(have 또는 have a property of), 등을 의미할 수 있다; “컨트롤러”라는 용어는 적어도 하나의 동작을 제어하는 임의의 장치, 시스템 또는 그 일부를 의미하며, 이러한 장치는 하드웨어, 펌웨어 또는 소프트웨어 또는 이들 중 적어도 두개의 조합으로 구현될 수 있다; 특정 컨트롤러와 관련된 기능은 로컬이든 원격이든, 중앙 집중화되거나 분산될 수 있다.
또한, 이하에서 설명되는 다양한 기능들은 하나 이상의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있으며, 각각은 컴퓨터가 읽을 수 있는 프로그램 코드로 형성되고 컴퓨터가 읽을 수 있는 매체에 구현된다. “어플리케이션” 및 “프로그램”이라는 용어는 하나 이상의 컴퓨터 프로그램, 소프트웨어 구성 요소, 명령 세트, 정차, 기능, 객체 클래스, 인스턴스, 관련 데이터 또는 적절한 컴퓨터 판독 가능 프로그램으로 구현하도록 구성된 그 일부를 나타낸다. “컴퓨터가 읽을 수 있는 프로그램 코드”라는 문구에는 소스 코드, 오브젝트 코드, 및 실행 코드를 포함한 모든 유형의 컴퓨터 코드가 포함된다. “컴퓨터 판독 가능 매체”라는 문구는 ROM(Read Only Memory), RAM(Random Access Memory), 하드 디스크 드라이브, CD(Compact Disc), 디지털 디스크 등과 같이 컴퓨터에서 액세스할 수 있는 모든 유형의 매체를 포함한다. “비일시적” 컴퓨터 판독 가능 매체는 일시적인 전기 신호 또는 기타 신호를 전송하는 유선, 무선, 광학 또는 기타 통신 링크를 제외한다. 비일시적 컴퓨터 판독 가능 매체는 재기록 가능한(rewritable) 광디스크 또는 소거 가능한(erasable) 메모리 장치와 같이 데이터가 영구적으로 저장될 수 있는 매체 및 데이터가 저장되고 나중에 덮어쓸 수 있는 매체를 포함한다.
특정 단어 및 구에 대한 정의는 본 명세서 전체에 제공되며, 당업자는 대부분은 아니라도 많은 경우 이러한 정의가 정의된 단어 및 구의 이전 사용뿐만 아니라 추후의 사용에도 적용된다는 것을 이해해야 한다.
도 1은 cRAN(centralized/cloud radio access network)의 구조를 설명하기 위한 도면이다.
도 2는 MEC 기반 서비스를 지원하기 위한 네트워크 환경을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따라 소프트웨어 패키지를 실행하는 시스템 블록도이다.
도 4는 본 개시의 일 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
도 5는 본 개시의 다른 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 서버가 소프트웨어 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 개시의 다른 실시예에 따른 서버가 소프트웨어 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 서버가 vRAN 패키지 트랙픽량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 다른 실시예에 따른 서버가 트래픽량 및 MEC 서비스 이용량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 또 다른 실시예에 따른 서버가 MEC 서비스 부하의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 11은 일 실시예에 따라 소프트웨어 패키지가 실행되는 하드웨어 컴포넌트를 결정하는데 이용되는 AI 모델을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시예에 따른 서버의 블록도이다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
이하 본 개시의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 실시예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부된 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 플로우차트에 도시된 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 '~부'는 하나 이상의 프로세서를 포함할 수 있다.
무선 통신 시스템은 초기의 음성 위주의 서비스를 제공하던 것에서 벗어나 예를 들어, 3GPP의 HSPA(High Speed Packet Access), LTE(Long Term Evolution 또는 E-UTRA (Evolved Universal Terrestrial Radio Access)), LTE-Advanced (LTE-A), 3GPP2의 HRPD(High Rate Packet Data), UMB(Ultra Mobile Broadband), 및 IEEE의 802.16e 등의 통신 표준과 같이 고속, 고품질의 패킷 데이터 서비스를 제공하는 광대역 무선 통신 시스템으로 발전하고 있다. 또한, 차세대 무선 통신 시스템으로 5G 또는 NR (new radio)의 무선 통신 시스템이 만들어지고 있다.
차세대 무선 통신 시스템에서는, eMBB(enhanced Mobile BroadBand), mMTC (massive Machine Type Communications) 및 URLLC(Ultra-Reliable and Low-Latency Communications) 중 적어도 하나의 서비스가 단말에 제공될 수 있다. 이러한 서비스들은 동일한 시구간 동안에 동일한 단말 또는 서로 다른 단말에 제공될 수 있다. eMBB는 고용량 데이터의 고속 전송, mMTC는 단말에서 소비하는 전력의 최소화와 다수 단말의 접속, URLLC는 고신뢰도와 저지연을 목표로 하는 서비스일 수 있으나 이에 제한되지는 않는다. 또한, 이러한 서비스는 LTE 시스템 또는 LTE 이후의 5G/NR(new radio, next radio) 등의 무선 통신 시스템에서 주요한 시나리오일 수 있다.
이하 설명의 편의를 위하여, 본 개시는 3GPP(3rd Generation Partnership Project Long Term Evolution) 규격에서 정의하고 있는 용어 및 명칭들, 혹은 이를 기반으로 변형한 용어 및 명칭들을 사용한다. 하지만, 본 개시가 상술된 용어 및 명칭들에 의해 한정되는 것은 아니며, 다른 규격에 따르는 무선 통신 시스템에도 동일하게 적용될 수 있다. 예를 들어, 5세대 무선 통신 기술(5G, new radio, NR) 시스템을 일례로 들어, 본 개시의 실시예를 설명하지만, 유사한 기술적 배경 또는 채널형태를 갖는 여타의 무선 통신 시스템에도 본 개시의 일 실시예가 적용될 수 있다. 다른 예에 따라, NR 이전의 무선 통신 시스템인 LTE 또는 LTE-A에 본 개시의 실시예가 적용될 수 있으며, 더 나아가 NR 이후에 개발되는 무선 통신 시스템에도 본 개시의 실시예가 적용될 수 있다. 나아가, 숙련된 기술적 지식을 가진 자의 판단으로써 본 개시의 범위를 크게 벗어나지 아니하는 범위에서 일부 변형을 통해 본 개시의 실시예를 다른 무선 통신 시스템에도 적용할 수도 있다.
이하 설명에서 사용되는 접속 노드(node)를 식별하기 위한 용어, 망 객체(network entity)들을 지칭하는 용어, 메시지들을 지칭하는 용어, 망 객체들 간 인터페이스를 지칭하는 용어, 다양한 식별 정보들을 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 대상을 지칭하는 다른 용어가 사용될 수 있다.
본 개시에서, 기지국은 단말의 자원할당을 수행하는 주체로서, gNode B, eNode B, Node B, BS (Base Station), 무선 접속 유닛, 기지국 제어기, 또는 네트워크 상의 노드 중 적어도 하나일 수 있다.
본 개시에서, 단말은 UE (User Equipment), MS (Mobile Station), 셀룰러폰, 스마트폰, 컴퓨터, 또는 통신기능을 수행할 수 있는 멀티미디어시스템을 포함할 수 있다.
본 개시에서 셀은 무선 통신에서 하나의 기지국이 포괄하는 지역을 나타낼 수 있다. 셀은 크기에 따라 메가 셀(mega cell), 매크로 셀(macro cell), 마이크로 셀(micro cell) 및 피코 셀(pico cell) 등으로 분류될 수 있으나, 이는 일 예일 뿐, 셀의 종류가 전술한 바에 한정되는 것은 아니다.
본 개시에서, 하향링크 또는 다운링크(Downlink; DL)는 기지국이 단말에게 전송하는 신호의 무선 전송 경로이고, 상향링크 또는 업링크는(Uplink; UL)는 단말이 기국에게 전송하는 신호의 무선 전송 경로를 의미한다. 보다 구체적으로 설명하면, 광대역 무선 통신 시스템의 대표적인 예로, LTE 시스템에서는 하향링크(Downlink; DL)에서는 OFDM(Orthogonal Frequency Division Multiplexing) 방식을 채용하고 있고, 상향링크(Uplink; UL)에서는 SC-FDMA(Single Carrier Frequency Division Multiple Access) 방식을 채용하고 있다. 상향링크는 단말(terminal 또는 User Equipment, UE) 또는 Mobile Station(MS)이 기지국(gNode B, 또는 base station(BS)으로 데이터 또는 제어신호를 전송하는 무선링크를 뜻하고, 하향링크는 기지국이 단말로 데이터 또는 제어신호를 전송하는 무선링크를 뜻한다.
본 개시에서, 제어부는 프로세서로 지칭될 수도 있다.
본 개시에서, 계층(계층장치)는 entity로 지칭될 수도 있다.
도 1은 cRAN(centralized/cloud radio access network)의 구조를 설명하기 위한 도면이다.
도 1을 참조하면, cRAN에서는 기존에 기지국에 포함된 무선 송수신부(RU, radio unit)와 데이터 처리부(DU, data unit)가 분리되어, 무선 송수신부는 셀 사이트의 기지국(예를 들어, 111)에 위치하고, 데이터 처리부는 중앙 서버(예를 들어, 121)에 위치할 수 있다. 셀은 무선 통신 시스템에서 기지국이 포괄하는 지역에 해당하고, 기지국당 적어도 하나의 셀이 존재할 수 있다. 무선 송수신부와 데이터 처리부가 모두 셀 사이트에 존재하는 일체형 기지국과는 달리, cRAN에서는 무선 송수신부들이 셀 사이트의 기지국들(111, 113, 115, 117, 119)에 배치되고, 데이터 처리부들(121, 123, 125)이 한 곳에 모아져 무선 접속 네트워크 기능들 중 적어도 일부를 실행할 수 있다. 무선 접속 네트워크 기능들에 대한 설명은 후술하도록 한다. cRAN은 데이터 처리부들(121, 123, 125)을 한 곳에 모아 관리함으로써 셀 간 간섭을 용이하게 조정할 수 있을 뿐만 아니라, 협력 통신(CoMP, coordinated multi-point transmission and reception) 등의 서비스를 제공할 수 있다.
셀 사이트의 기지국들(111, 113, 115, 117, 119)은 RF 장치 등을 포함할 수 있으며, 프론트홀 (fronthaul)을 통해 신호를 데이터 처리부(예를 들어, 121)로 전달할 수 있다. 프론트홀은 셀 사이트의 기지국들(111, 113)을 데이터 처리부(예를 들어, 121)에 연결하는 네트워크 부분으로서, DSP(digital signal processing), 전력 증폭 및 필터링 기능 등을 수행할 수 있다.
한편, 데이터 처리부(예를 들어, 121)는 셀 사이트의 기지국(예를 들어, 111)으로부터 수신한 신호를 처리하고, 처리한 신호를 백홀(backhaul)을 통해 코어 네트워크 장치(130)에 전달할 수 있다. 코어 네트워크 장치(130)는 기지국과 단말로 구성된 종단 시스템을 연결하는 장치들을 포함할 수 있다. 예를 들어, 코어 네트워크 장치(130)에는 P-GW(packet data network gateway), S-GW(serving gateway) 및 MME (mobile management entity) 등이 포함될 수 있다. P-GW는 코어 네트워크의 내부 노드와 외부 인터넷을 연결하고, 단말에 IP 주소를 설정하며, IP 패킷 필터링을 수행할 수 있다. 또한, S-GW는 단말에 RRC (radio resource control) 연결이 설정되지 않은 경우, 외부 인터넷으로부터 도착된 다운 링크 패킷을 버퍼링할 수 있다. MME는 단말의 위치 등록, 인증, 통화와 관련된 제어 신호를 처리할 수 있다. 한편, 이는 일 예일 뿐, 코어 네트워크 장치(130)의 구성이 전술한 예에 한정되는 것은 아니다.
백홀은 데이터 처리부(예를 들어, 121)와 코어 네트워크 장치(130)를 연결하는 네트워크 부분으로서, 광섬유 등의 유선 인터페이스로 구현될 수 있으나, 이는 일 예일 뿐, 백홀은 무선망으로도 구현될 수 있다.
데이터 처리부(예를 들어, 121)는 신호의 처리를 위해 다양한 무선 접속 네트워크 기능을 수행할 수 있다. 무선 접속 네트워크 기능은, 예를 들어, PDCP(packet data convergence protocol) 레이어 기능, RLC(radio link control) 레이어 기능, MAC(medium access control) 레이어 기능 및 PHY(physical) 레이어 기능 등을 포함할 수 있으나, 이는 일 예일 뿐, 무선 접속 네트워크 기능이 전술한 예에 한정되는 것은 아니다. 이하에서는 PDCP 레이어, RLC 레이어, MAC 레이어 및 PHY 레이어의 기능에 대해 설명하도록 한다.
PDCP 레이어의 기능은 다음의 기능들 중 적어도 일부를 포함할 수 있다.
- 헤더 압축 및 압축 해제 기능(Header compression and decompression: ROHC only)
- 사용자 데이터 전송 기능 (Transfer of user data)
- 상위 레이어 PDU(protocol data unit)의 순차적 전달 기능(In-sequence delivery of upper layer PDUs)
- PDCP PDU 순서 재정렬 기능(PDCP PDU reordering)
- 하위 레이어 SDU(service data unit)의 중복 탐지 기능(Duplicate detection of lower layer SDUs)
- 재전송 기능(Retransmission of PDCP SDUs)
- 암호화 및 복호화 기능(Ciphering and deciphering)
- 업링크에서 타이머 기반 SDU 삭제 기능(Timer-based SDU discard in uplink.)
PDCP 레이어의 순서 재정렬 기능(reordering)은 하위 계층에서 수신한 PDCP PDU들을 PDCP SN(sequence number)을 기반으로 순서대로 재정렬하는 기능을 나타내며, 재정렬된 순서대로 데이터를 상위 계층에 전달하는 기능, 순서를 재정렬하여 유실된 PDCP PDU들을 기록하는 기능, 유실된 PDCP PDU들에 대한 상태 보고를 송신 측에 하는 기능 및 유실된 PDCP PDU들에 대한 재전송을 요청하는 기능 중 적어도 하나를 포함할 수 있다.
RLC 레이어의 기능은 다음의 기능들 중 적어도 일부를 포함할 수 있다.
- 상위 레이어 PDU의 전송 기능(Transfer of upper layer PDUs)
- 상위 레이어 PDU의 순차적 전달 기능(In-sequence delivery of upper layer PDUs)
- 상위 레이어 PDU의 비순차적 전달 기능(Out-of-sequence delivery of upper layer PDUs)
- ARQ를 통한 에러 정정 기능(Error Correction through ARQ)
- RLC SDU의 접합, 분할, 재조립 기능(Concatenation, segmentation and reassembly of RLC SDUs)
- RLC 데이터의 재분할 기능(Re-segmentation of RLC data)
- RLC 데이터의 순서 재정렬 기능(Reordering of RLC data)
- 중복 탐지 기능(Duplicate detection)
- 오류 탐지 기능(Protocol error detection)
- RLC SDU 삭제 기능(RLC SDU discard)
- RLC 재수립 기능(RLC re-establishment)
RLC 레이어의 순차적 전달 기능(In-sequence delivery)은 하위 레이어로부터 수신한 RLC SDU(service data unit)들을 순서대로 상위 레이어에 전달하는 기능을 나타내며, 하나의 RLC SDU가 여러 개의 RLC SDU들로 분할되어 수신된 경우, 이를 재조립하여 전달하는 기능을 포함할 수 있다. 또한, 순차적 전달 기능은, 수신한 RLC PDU들을 RLC SN(sequence number) 또는 PDCP SN(sequence number)를 기준으로 재정렬하는 기능, 순서를 재정렬하여 유실된 RLC PDU들을 기록하는 기능 및 유실된 RLC PDU들에 대한 상태 보고를 송신 측에 하는 기능 중 적어도 하나를 포함할 수 있다. 또한, 순차적 전달 기능은 유실된 RLC PDU들에 대한 재전송을 요청하는 기능을 포함할 수 있으며, 유실된 RLC SDU가 있을 경우, 유실된 RLC SDU 이전까지의 RLC SDU들만을 순서대로 상위 레이어에 전달하는 기능을 포함할 수 있다. 또한, 순차적 전달 기능은 유실된 RLC SDU가 있어도 소정의 타이머가 만료되었다면 타이머가 시작되기 전에 수신된 모든 RLC SDU들을 순서대로 상위 레이어에 전달하는 기능을 포함할 수 있으며, 또는 유실된 RLC SDU가 있어도 소정의 타이머가 만료되었다면 현재까지 수신된 모든 RLC SDU들을 순서대로 상위 레이어에 전달하는 기능을 포함할 수 있다.
RLC 레이어는, 시퀀스 순서와 상관없이, RLC PDU들을 수신하는 순서대로 처리하여 PDCP 레이어로 전달할 수 있다. RLC 레이어는 세그먼트(segment)가 수신된 경우에는 버퍼에 저장되어 있는 세그먼트 또는 추후에 수신될 세그먼트들과 이를 결합하여 온전한 하나의 RLC PDU로 재구성한 후, RLC PDU를 PDCP 레이어로 전달할 수 있다. 한편, NR(new radio)에서 RLC 레이어는 접합(Concatenation) 기능을 포함하지 않을 수 있고, 접합 기능은 MAC 레이어에서 수행되거나 MAC 레이어의 다중화(multiplexing) 기능으로 대체될 수 있다.
MAC 레이어의 기능은 다음의 기능들 중 적어도 일부를 포함할 수 있다.
- 로지컬 채널과 전송 채널 간의 맵핑 기능(Mapping between logical channels and transport channels)
- MAC SDU의 다중화 및 역다중화 기능(Multiplexing/demultiplexing of MAC SDUs)
- 스케쥴링 정보 보고 기능(Scheduling information reporting)
- HARQ를 통한 에러 정정 기능(Error correction through HARQ)
- 로지컬 채널 간 우선 순위 조절 기능(Priority handling between logical channels of one UE)
- 다이나믹 스케줄링을 통한 단말간 우선 순위 조절 기능(Priority handling between UEs by means of dynamic scheduling)
- MBMS 서비스 식별 기능(MBMS service identification)
- 전송 포맷 선택 기능(Transport format selection)
- 패딩 기능(Padding)
PHY 레이어는 다음의 기능들 중 적어도 일부를 수행할 수 있다.
- 전기적 신호를 이용한 데이터 송수신
- 채널 코딩/디코딩 기능
- 변조/복조 기능
- 전력 제어
- 셀 검색
PHY 레이어는 상위 레이어의 데이터에 채널 코딩 및 변조를 수행하고, 이를 OFDM 심벌로 만들어서 무선 채널을 통해 전송할 수 있다. 또한, PHY 레이어는 무선 채널을 통해 수신한 OFDM 심벌에 대해 복조 및 채널 디코딩을 수행하고, 그 결과 획득된 데이터를 상위 계층으로 전달할 수도 있다.
다만, 전술한 예는 무선 접속 네트워크 기능들의 일 예일 뿐, 무선 접속 네트워크 기능에는 RRC (radio resource control) 레이어의 기능이 포함될 수도 있다. RRC 레이어의 기능이 일 예는 다음과 같다.
- 셀 내 모든 단말에게 필요한 셀 시스템 정보의 브로드캐스팅
- 페이징 메세지의 전달 관리
- 무선단말과 E-UTRAN 간의 RRC 연결 관리(설정/유지/해제)
- 핸드오버 시의 eNodeB 간의 UE 컨텍스트 전송
- 무선 베어러의 설정,재설정,해제
- 단말(UE) 측정 보고와 이에 대한 제어
- 단말(UE) 능력 관리: UE로의 셀 ID의 일시적 부여
- 키 관리를 포함한 보안 관리: RRC 메세지 암호화 등
한편, 셀 사이트의 기지국(예를 들어, 111)은 RU 또는 RRH(remote radio head) 등의 용어로 설명될 수 있으며, 데이터 처리부(예를 들어, 121)는 DU 또는 BBU(base band unit) 등의 용어로 설명될 수 있다.
전술한 무선 접속 네트워크 기능들을 수행하는 데이터 처리부들(121, 123, 125)을 한 곳에 모아 관리하기 위해서는 데이터 처리에 필요한 물리적인 자원들을 효율적으로 사용할 수 있는 방법이 필요하다. 이를 위해, 본 개시는 데이터 처리부들(121, 123, 125)에서 수행되는 적어도 하나의 무선 접속 네트워크 기능들을 가상화를 통해 수행하는 방법을 제공하고자 한다. 가상화란 여러 개의 물리적인 자원들을 통합하여 관리함으로써, 하나의 장치에서 가용할 수 있었던 자원을 확장할 수 있는 기술로서, 이하에서는 도 2 및 도 3을 참조하여, 본 개시에 따른 가상화된 RAN(virtualized RAN, 이하 vRAN)의 예시들에 대해 설명하도록 한다.
도 2는 MEC 기반 서비스를 지원하기 위한 네트워크 환경을 도시한 도면이다.
도 2 를 참조하면, 네트워크 환경은 단말(100), 3GPP(3rd Generation Partnership Project) 네트워크(150), 엣지 데이터 네트워크(200), 및 서비스 서버(service server)(250)를 포함할 수 있다. 다만, 네트워크 환경이 포함하는 구성이 이에 제한되는 것은 아니다.
일 실시예에 따르면, 네트워크 환경에 포함되는 구성요소들 각각은 물리적인 객체(entity) 단위를 의미하거나, 개별적인 기능(function)을 수행할 수 있는 소프트웨어 또는 모듈 단위를 의미할 수 있다. 따라서 네트워크 환경에 포함되는 구성요소는 엔티티(entitiy)로 불릴 수도 있고, 기능 또는 펑션(function)으로 불릴 수도 있다.
일 실시예에 따르면, 단말(100)은 사용자에 의해 사용되는 장치를 의미할 수 있다. 예를 들어, 단말(100)은 사용자 단말(UE, user equipment 또는 user terminal), 원격 단말(remote terminal), 무선 단말(wireless terminal), 또는 사용자 장치(user device)를 의미할 수 있다. 또한, 단말(100)은 모든 타입의 디바이스를 포함할 수 있다.
일 실시예에 따르면, 단말(100)은 복수의 애플리케이션 클라이언트(application client)들을 구동(또는, 실행)할 수 있다. 예를 들어, 단말(100)은 제 1 애플리케이션 클라이언트(111) 및 제 2 애플리케이션 클라이언트(112)를 포함할 수 있다. 복수의 애플리케이션 클라이언트들은 단말(100)의 데이터 전송 속도, 지연 시간(또는 속도)(latency), 신뢰성(reliability), 네트워크에 접속(access)된 단말(100)의 수, 단말(100)의 네트워크 접속 주기, 또는 평균 데이터 사용량 중 적어도 하나에 기반하여 서로 다른 네트워크 서비스를 요구(require)할 수 있다. 서로 다른 네트워크 서비스는, 예를 들어, eMBB(enhanced mobile broadband), URLLC(ultra- reliable and low latency communication), 또는 mMTC(massive machine type communication)를 포함할 수 있다.
단말(100)의 애플리케이션 클라이언트는 단말(100)에 미리 설치된 기본 애플리케이션 또는 제 3자가 제공하는 애플리케이션을 의미할 수 있다. 즉, 특정 응용 서비스를 위하여 단말(100) 내에서 구동되는 클라이언트(client) 응용 프로그램을 의미할 수 있다. 단말(100) 내에는 여러 애플리케이션 클라이언트들이 구동될 수 있다. 애플리케이션 클라이언트들 중 적어도 하나 이상은 엣지 데이터 네트워크(edge data network, 200)로부터 엣지 컴퓨팅 서비스를 단말(100)에게 제공하는데 이용될 수 있다. 예를 들어, 애플리케이션 클라이언트는 단말(100)에 설치되어 실행되는 애플리케이션으로서, 엣지 데이터 네트워크(200)를 통해 데이터를 송수신하는 기능을 제공할 수 있다. 단말(100)의 애플리케이션 클라이언트는, 하나 이상의 특정 엣지 애플리케이션들에 의해 제공된 기능을 이용하기 위해, 단말(100) 상에서 실행되는 애플리케이션 소프트웨어(또는, 모듈)를 의미할 수 있다.
일 실시예에 따르면, 단말(100)의 복수의 애플리케이션 클라이언트(111 또는 112)는 요구되는 네트워크 서비스 타입에 기반하여 서비스 서버(250)와 데이터 전송 및 수신을 수행하거나, 또는 엣지 데이터 네트워크(200)와 엣지 컴퓨팅에 기반한 데이터 전송 및 수신을 수행할 수 있다. 예를 들어, 제 1 애플리케이션 클라이언트(111)가 낮은 지연 시간을 요구하지 않으면, 제 1 애플리케이션 클라이언트(111)는 서비스 서버(250)와 데이터 전송 및 수신을 수행할 수 있다. 다른 예를 들어, 제 2 애플리케이션 클라이언트(112)가 낮은 지연 시간을 요구하면, 제 2 애플리케이션 클라이언트(112)는 엣지 데이터 네트워크(300)와 MEC 기반 데이터 전송 및 수신을 수행할 수 있다. 물론, 예시에 제한되는 것은 아니며, 단말(100)은 지연 시간 이외의 다양한 조건에 기초하여 서비스 서버(250) 또는 엣지 데이터 네트워크(200)와 데이터를 송수신할 지 여부를 결정할 수 있다.
일 실시예에 따르면, 단말(100)의 애플리케이션 클라이언트(application client)는, UE 애플리케이션(UE App), 애플리케이션 클라이언트, 클라이언트 애플리케이션(client application, Client App), UE 애플리케이션으로 지칭될 수 있다. 이하 본 개시에서는, 편의를 위해, 단말(100)의 애플리케이션 클라이언트는 애플리케이션 클라이언트로 지칭하도록 한다.
일 실시예에 따르면, 단말(100)은 엣지 인에이블러 클라이언트(edge enabler client)(120), 및 3GPP 통신 레이어(3GPP communication layer, 130)를 포함할 수 있다. 일 실시예에 따르면, 엣지 인에이블러 클라이언트(120)는 단말(100)이 엣지 컴퓨팅 서비스를 이용할 수 있게 하는 단말(100) 내 동작을 수행하는 레이어(layer)를 의미할 수 있다. 일 실시예에 따르면, 엣지 인에이블러 클라이언트(120)는 MEL(MEC enabling layer)로도 지칭될 수 있다. 엣지 인에이블러 클라이언트(120)는 어떤 UE App이 엣지 컴퓨팅 서비스를 이용할 수 있는지 판단하고, 엣지 컴퓨팅 서비스를 제공하는 엣지 데이터 네트워크(200)에 단말(100)의 애플리케이션 클라이언트의 데이터가 전달될 수 있도록 단말(100)에 네트워크 인터페이스를 연결해주는 동작을 수행할 수 있다.
또한, 엣지 인에이블러 클라이언트(120)는 단말(100)이 엣지 컴퓨팅 서비스를 이용하기 위한 데이터 연결을 수립하기 위한 동작을 3GPP 통신 레이어(130)와 수행할 수 있다. 3GPP 통신 레이어(130)는 이동통신 시스템을 이용하기 위한 모뎀 동작을 수행하는 레이어를 의미할 수 있으며, 데이터 통신을 위한 무선 연결을 수립하고, 이동통신 시스템에 단말(100)을 등록하고, 이동통신 시스템에 데이터 전송을 위한 연결을 수립하고, 데이터를 송수신하는 역할을 수행할 수 있다.
단말(100)은, 3GPP 네트워크(150)에 연결되어 제 1 애플리케이션 클라이언트(111) 및 제 2 애플리케이션 클라이언트(112)와 관련된 데이터를 송수신할 수 있다.
일 실시예에 따르면, 3GPP 네트워크(150)는, 3GPP(3rd Generation Partnership Project)의 표준 규격에 따르는 무선 통신 시스템으로서, 단말(100)과 연결되어 단말(100)에게 무선 통신 서비스를 제공할 수 있다. 3GPP 네트워크(150)는 3G(3rd generation) 네트워크, LTE 네트워크, LTE-A 네트워크, 차세대 네트워크(5G 또는 NR)를 포함할 수 있다. 물론, 예시에 제한되는 것은 아니며, 본 개시의 3GPP 네트워크(150)는 다른 통신 기술로 구성된 네트워크를 포함할 수도 있다.
일 실시예에 따르면, 3GPP 네트워크(150)는 RAN(151) 및 코어 네트워크 (152)를 포함할 수 있으며, 코어 네트워크(152)는 UPF(user plane function, 153) 및 NEF (network exposure function, 154)를 포함할 수 있다. 다만, 이는 코어 네트워크(152)를 구성하는 NF의 일 예일 뿐, 코어 네트워크(152)의 구성이 전술한 바에 한정되는 것은 아니다.
일 실시예에 따르면, 3GPP 네트워크(150)의 RAN(151)은 단말(100)과 직접 연결되는 네트워크로서, 단말(100)에게 무선 접속을 제공하는 인프라스트럭쳐(infrastructure)이다. RAN(151)은 복수의 기지국들을 포함할 수 있으며, 복수의 기지국들은 상호 간 형성된 인터페이스를 통해 통신을 수행할 수 있다. 복수의 기지국들 간 인터페이스들 중 적어도 일부는 유선이거나 무선일 수 있다. 기지국은 gNode B, eNode B, Node B, BS (Base Station), 무선 접속 유닛, 기지국 제어기, 네트워크 상의 노드, 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
일 실시예에 따르면, 3GPP 네트워크(150)의 코어 네트워크(152)는, RAN(151)을 통해 송수신되는 단말(100)에 대한 데이터 및 제어 신호들을 처리할 수 있다. 코어 네트워크(152)는 사용자 플랜(user plane) 및 제어 플랜(control plane)의 제어, 이동성(mobility)의 처리, 가입자 정보의 관리, 과금, 다른 종류의 시스템(예: LTE(long term evolution) 시스템)과의 연동 등 다양한 기능들을 수행할 수 있다. 상술한 다양한 기능들을 수행하기 위해, 코어 네트워크(152)는 서로 다른 NF(network function)들을 가진 기능적으로 분리된 복수의 객체(entity)들을 포함할 수 있다.
예를 들어, 코어 네트워크(152)는, UPF(user plane function)(153), AMF(access and mobility management function)(미도시), SMF(session management function)(미도시), PCF(policy control function)(미도시), NEF(network exposure function)(154), UDM(user data management)(미도시), NWDAF(network data analysis function)(미도시), 및 GMLC(gateway mobile location center)(미도시)를 포함할 수 있다.
3GPP 네트워크(150)는 엣지 데이터 네트워크(200)와 연결되어 MEC 서비스와 관련된 데이터를 송수신할 수 있다. 또한, UPF(user plane function, 153)는 단말(100)과 엣지 데이터 네트워크(200) 또는 서비스 서버(250) 사이의 데이터 통로(또는, 데이터 평면)를 제공할 수 있다. 즉, UPF(153)는 단말이 송수신하는 데이터(또는, 데이터 패킷)를 전달하는 게이트웨이 역할을 수행할 수 있다.
단말(100)과 엣지 데이터 네트워크(200)는 UPF(153)를 통해 서로 데이터(또는 데이터 패킷)를 송수신할 수 있다. 엣지 데이터 네트워크(200)와 UPF(153) 사이에는 데이터 네트워크(data network, DN)가 존재할 수 있다. UPF(153)는 단말(100)에게 엣지 컴퓨팅 서비스를 지원하기 위하여 엣지 데이터 네트워크(200) 가까이에 위치할 수 있으며, 단말(100)의 데이터 패킷을 엣지 데이터 네트워크(200)로 저지연으로 전달하거나, 엣지 데이터 네트워크(200)의 데이터 패킷을 단말(100)에게 저지연으로 전달할 수 있다.
UPF(153)는 인터넷으로 연결되는 데이터 네트워크를 이용해 단말(100)과 엣지 데이터 네트워크(200) 사이의 데이터 통로를 제공할 수 있다. UPF(153)는 단말(100)이 전송하는 데이터 패킷 중 인터넷으로 전달되어야 하는 데이터 패킷은, 서비스 서버(250)와 단말(100) 사이의 데이터 네트워크로 라우팅(routing)할 수 있다.
3GPP 5G 네트워크에서 UPF는 핵심 인프라 시스템 아키텍처의 기본 구성 요소로, 5G 네트워크에서는 다양한 위치에서 애플리케이션을 제공할 수 있도록 UPF를 분산배치함으로써 용이한 MEC 서비스 지원이 가능하다.
3GPP에서 정의된 UPF는 다음과 같은 기능을 제공한다.
- 모바일 인프라와 데이터 네트워크 (DN, data network) 간의 상호 연결 지점, 즉 사용자 평면 (GTP?U)을위한 GPRS 터널링 프로토콜의 캡슐화 및 캡슐화 해제
- 하나 이상의 엔드 마커 패킷을 gNB(g-node B)로 전송하는 것을 포함하여 RAT (Radio Access Technologies) 내에서 또는 그 사이에 이동성을 제공하기위한 PDU (Protocol Data Unit) 세션 앵커 포인트
- 업 링크 분류기 / UL-CL (트래픽 일치 필터를 기반으로 특정 데이터 네트워크로 흐름을 전달) 및 분기 UPUP (I-UPF) 멀티 홈 역할을하는 경우를 포함하는 패킷 라우팅 및 전달 둘 이상의 PDU 세션 앵커 (PSA)
- SDF (Service Data Flow) 트래픽 필터 템플릿 또는 SMF로부터 수신 된 3 튜플 (프로토콜, 서버 측 IP 주소 및 포트 번호) 패킷 흐름 설명 (PFD)을 사용한 애플리케이션 탐지
- 업링크(UL, up-link) 및 다운링크(DL, down-link)에 대한 전송 레벨 패킷 마킹, 레이트 제한 및 DL에 대한 반사 QoS (DSCP) 마킹을 포함한 플로우 별 QoS 처리
- 과금(billing) 및 합법적 인터셉트 (LI, lawful intercept) 콜렉터 인터페이스에 대한 트래픽 사용량보고
NEF(154)는 3GPP 네트워크(150)의 NF들의 기능(capability) 및 서비스(service)를 외부로 노출(exposure)하는 NF이다. NEF(154)는 외부 서버(예를 들어, 엣지 데이터 네트워크(200))와 연결되어, 3GPP 네트워크(150) 내부의 NF에서 발생한 이벤트에 대한 정보를 외부 서버로 전달하거나, 외부 서버가 요청하는 이벤트에 대한 정보를 내부 NF에 전달하는 기능을 수행할 수 있다. NEF(154)가 외부로 노출하는 기능 및 서비스는, 예를 들어, 단말(100)의 위치 관련 이벤트 보고(event reporting), 단말(100)의 세션(session) 관련 이벤트 보고, 단말(100)의 이동성 관리(mobility management) 이벤트 보고 등이 있을 수 있다. 외부 서버는, NEF(154)가 노출하는 기능 및 서비스를 구독(subscription)하여, 해당 기능 및 서비스에 접근할 수 있다.
엣지 데이터 네트워크(200)는 단말(100)에 MEC 서비스를 제공할 수 있다. 이를 위해, 엣지 데이터 네트워크(200)는, 단말(100)이 연결된 3GPP 네트워크(150)의 기지국의 내부 또는 기지국과 지리적으로 가까운 위치에 배치되고, 서비스 서버(250)가 제공하는 컨텐츠와 적어도 일부가 동일한 컨텐츠를 제공할 수 있다. 엣지 데이터 네트워크(200)는, MEC 서버(server), MEC 호스트(host), 엣지 컴퓨팅 서버(edge computing server), 모바일 엣지 호스트(mobile edge host), 엣지 컴퓨팅 플랫폼(edge computing platform) 등으로 지칭될 수 있다.
일 실시예에 따르면, 엣지 데이터 네트워크(200)는 복수의 엣지 애플리케이션들을 포함하고 실행(또는, 구동)할 수 있다. 예를 들어, 엣지 데이터 네트워크(200)는 복수의 엣지 애플리케이션(제 1 엣지 애플리케이션(211), 제 2 엣지 애플리케이션(212)) 및 엣지 인에이블러 서버(220)를 포함할 수 있다. 다만, 이는 일 예일 뿐, 엣지 데이터 네트워크(200)의 구성이 전술한 바에 한정되는 것은 아니다.
일 실시예에 따르면, 엣지 애플리케이션은 엣지 컴퓨팅 서비스를 제공하는 엣지 데이터 네트워크(200) 내 제 3자가 제공하는 응용 애플리케이션을 의미할 수 있으며, 애플리케이션 클라이언트와 관련된 데이터를 송수신하기 위하여 애플리케이션 클라이언트와 데이터 세션을 형성할 수 있다. 데이터 세션은, 단말(100)의 애플리케이션 클라이언트와 엣지 데이터 네트워크(200)의 엣지 애플리케이션이 데이터를 송수신하기 위하여 형성되는 통신 경로를 의미할 수 있다.
일 실시예에 따르면, 엣지 데이터 네트워크(200)는 엣지 애플리케이션에게 가상 자원을 제공할 수 있다. 가상 자원은 예를 들어, 엣지 애플리케이션이 사용할 수 있는 컴퓨팅 자원(computing resource), 스토리지 자원(storage resource), 또는 네트워크 자원(예를 들어, 네트워크 대역폭) 중 적어도 하나를 포함할 수 있다. 엣지 데이터 네트워크(200)의 엣지 애플리케이션은 가상 머신(virtual machine)으로 실행(또는, 구동)될 수 있다.
일 실시예에 따르면, 엣지 데이터 네트워크(200)의 애플리케이션은, 엣지 애플리케이션(edge application), MEC 애플리케이션(MEC App), 엣지 애플리케이션 서버(edge application server), ME(MEC) App 및 엣지 애플리케이션으로 지칭될 수 있다. 이하 본 개시에서는, 편의를 위해, 엣지 데이터 네트워크(200)의 애플리케이션은 엣지 애플리케이션으로 지칭하도록 한다.
일 실시예에 따르면, 엣지 데이터 네트워크(200)는 엣지 인에이블러 서버(edge enabler server, 220)를 포함할 수 있다. 엣지 인에이블러 서버(220)는 MEC 플랫폼(mobile edge computing platform), ME 플랫폼(mobile edge platform, MEP), 플랫폼(platform) 등으로 지칭될 수 있다.
일 실시예에 따르면, 엣지 인에이블러 서버(220)는 엣지 애플리케이션의 실행에 요구되는 기능을 제공할 수 있다. 예를 들어, 엣지 인에이블러 서버(220)는 엣지 애플리케이션이 단말(100) 등에게 MEC 서비스를 제공하거나, 엣지 애플리케이션이 MEC 서비스를 사용(consume)할 수 있도록 기능 또는 환경을 제공할 수 있다. 또한, 엣지 인에이블러 서버(220)는 트래픽 제어(traffic control)를 수행하거나, DNS(Domain Name System) 핸들링(DNS handling)을 수행할 수 있다.
이하에서, MEC 서비스는, 엣지 데이터 네트워크(200) 내지는 엣지 애플리케이션이 단말(100)에게 제공하는 서비스 또는 엣지 애플리케이션이 사용할 수 있는 서비스를 의미할 수 있다.
일 실시예에 따르면, 엣지 컴퓨팅 서비스는 엣지 애플리케이션을 사용하기 위해 필요한 절차 및 정보 관련 서비스를 통칭할 수 있다. 엣지 컴퓨팅 서비스는 엣지 인에이블러 서버(220) 또는 엣지 애플리케이션에 의해 제공(provide)되거나 사용(consume)될 수 있다. 예를 들어, 엣지 애플리케이션은 단말(100)에게 엣지 컴퓨팅 서비스를 제공하거나, 단말(100)에게 엣지 컴퓨팅 서비스를 제공하기 위해 엣지 인에이블러 서버(220)가 제공하는 엣지 컴퓨팅 서비스를 사용할 수 있다. 또한, 엣지 인에이블러 서버(220)는 엣지 애플리케이션이 단말(100)에게 엣지 컴퓨팅 서비스를 제공하기 위해 사용할 수 있는 엣지 컴퓨팅 서비스를 엣지 애플리케이션에게 제공할 수 있다. 이하에서, 엣지 컴퓨팅 서비스는, 엣지 데이터 네트워크(200) 내지는 엣지 애플리케이션이 단말(100)에게 제공하는 서비스 또는 엣지 인에이블러 서버(220)에 의해 제공되고 엣지 애플리케이션이 사용할 수 있는 서비스를 의미할 수 있다.
일 실시예에 따르면, 엣지 인에이블러 서버(220)는 엣지 애플리케이션에게 엣지 컴퓨팅 서비스를 제공할 수 있다. 예를 들어, 엣지 인에이블러 서버(220)는 제공하는 엣지 컴퓨팅 서비스에 따라, 엣지 애플리케이션에게 각종 정보(데이터, 컨텐츠 등으로, 예를 들어 단말의 위치에 대한 정보, 캐싱 데이터, 구독하는 서비스에 대한 정보 등)를 제공할 수 있다. 엣지 애플리케이션은 엣지 인에이블러 서버(220)가 제공하는 엣지 컴퓨팅 서비스를 사용하여 단말(100)에게 엣지 컴퓨팅 서비스를 제공할 수 있다. 예를 들어, 엣지 애플리케이션은, 엣지 인에이블러 서버(220)가 엣지 컴퓨팅 서비스로서 제공한 정보들에 기초하여 단말(100)에게 엣지 컴퓨팅 서비스를 제공할 수 있다. 단말(100)에게 제공되는 엣지 컴퓨팅 서비스는 단말(100)이 애플리케이션 클라이언트를 구동하는데 필요한 서비스(예를 들어, 애플리케이션 클라이언트 구동을 위해 필요한 데이터 제공)일 수 있다. 이하에서, 엣지 데이터 네트워크(200)가 단말(100)에게 엣지 컴퓨팅 서비스를 제공하는 것은, 엣지 데이터 네트워크(200)의 엣지 애플리케이션이 단말(100)이 애플리케이션 클라이언트를 구동하는데 필요한 엣지 컴퓨팅 서비스를 제공하는 것을 지칭한다.
한편, 엣지 인에이블러 서버(220)는 MEC 서비스(230) 및 서비스 레지스트리(service registry, 240)를 포함할 수 있다. MEC 서비스(230)는 엣지 데이터 네트워크(200)에 포함된 엣지 애플리케이션들에게 엣지 컴퓨팅 서비스를 제공할 수 있다. MEC 서비스(230)는 등의 개별적인 기능을 수행할 수 있는 소프트웨어 또는 모듈로 구현될 수 있다. 서비스 레지스트리(240)는 엣지 데이터 네트워크(200)에서 이용 가능한 서비스에 대한 정보를 제공할 수 있다.
일 실시예에 따르면, 엣지 인에이블러 서버(220)는 엣지 애플리케이션의 인스턴스가 생성(instantiation)되는 경우, 엣지 애플리케이션을 내부적으로 등록할 수 있다. 엣지 인에이블러 서버(220)는 엣지 애플리케이션을 등록하고, 엣지 애플리케이션과 관련된 정보를 저장할 수 있다. 엣지 인에이블러 서버(220)가 저장하는 엣지 애플리케이션과 관련된 정보는, 엣지 애플리케이션이 단말(100) 등에게 제공하고자 하는 엣지 컴퓨팅 서비스에 대한 정보, 엣지 컴퓨팅 서비스가 엣지 애플리케이션에게 필요한(required) 서비스인지 옵션적인(optional) 서비스인지 여부에 대한 정보 등을 포함할 수 있다.
일 실시예에 따르면, 엣지 애플리케이션은 엣지 인에이블러 서버(220)에 새로운 엣지 컴퓨팅 서비스를 등록(service registration) 또는 이미 등록된 엣지 컴퓨팅 서비스를 업데이트하거나, 엣지 인에이블러 서버(220)에 등록된 엣지 컴퓨팅 서비스를 검색할 수 있다. 엣지 애플리케이션은 엣지 인에이블러 서버(220)에 엣지 컴퓨팅 서비스를 등록 또는 업데이트하면서, 등록 또는 업데이트하고자 하는 엣지 컴퓨팅 서비스에 대한 정보를 엣지 인에이블러 서버(220)에게 제공할 수 있다. 엣지 인에이블러 서버(220)는 엣지 컴퓨팅 서비스를 서비스 레지스트리(240)에 등록할 수 있다.
일 실시예에 따르면, 엣지 인에이블러 서버(220)는 엣지 데이터 네트워크(200) 내의 엣지 애플리케이션에게 서비스 레지스트리(240)에 등록된 엣지 컴퓨팅 서비스들에 대한 정보를 전달할 수 있다. 예를 들어, 엣지 인에이블러 서버(220)는 서비스 레지스트리(240)에 등록된 엣지 컴퓨팅 서비스들에 대한 목록을 엣지 애플리케이션에게 전달할 수 있다. 또한, 엣지 인에이블러 서버(220)는 서비스 레지스트리(240)에 등록된 또는 새로이 등록되는 엣지 컴퓨팅 서비스들의 사용 가능 여부(availability)에 대한 정보를 엣지 애플리케이션에게 전달할 수 있다.
일 실시예에 따르면, 엣지 애플리케이션은 서비스 레지스트리(240)에 등록된 MEC 서비스(230)를 구독(subscription)할 수 있다. 엣지 애플리케이션은 엣지 인에이블러 서버(220)에게 엣지 컴퓨팅 서비스에 대한 구독 요청 정보를 전달함으로써, 엣지 컴퓨팅 서비스를 구독할 수 있다. 엣지 애플리케이션이 MEC 서비스(230)를 구독하는 것은, MEC 서비스(230) 또는 MEC 서비스(230)에 대한 정보를 엣지 인에이블러 서버(220)으로부터 지속적으로 제공 받는 것을 의미할 수 있다. 엣지 애플리케이션은 서비스 레지스트리(240)에 등록된 MEC 서비스(230)를 구독함으로써, 엣지 인에이블러 서버(220)으로부터 MEC 서비스(230)를 제공 받아 MEC 서비스(230)를 사용할 수 있고, MEC 서비스(230)를 단말에게 제공할 수 있다.
일 실시예에 따르면, MEC 서비스(230)는 다양한 서비스를 엣지 애플리케이션에게 제공할 수 있다. 예를 들어, MEC 서비스(230)는 구독 서비스(subscription service, 231), 위치 서비스(location service, 232), 캐시 서비스(cache service, 233) 등을 엣지 애플리케이션에게 제공할 수 있다.
구독 서비스(231)는, 3GPP 네트워크(150)에 이벤트에 관한 정보를 제공하거나 3GPP 네트워크(150)로부터 이벤트에 관한 정보를 제공받을 수 있다. 이벤트는, 단말의 트래픽 또는 서비스 이용량 변화에 관한 이벤트, 단말의 위치와 관련된 이벤트(예를 들어, 단말의 현재 위치, 위치 변화, 특정한 상황에서의 단말의 위치 등), 단말의 연결의 해제, 단말의 접근, 단말의 로밍 상태, 통신 실패, 등을 포함할 수 있다.
위치 서비스(232)는 단말(100)의 위치에 대한 정보, 단말(100)의 위치에 대한 정보에 기초한 서비스 등을 제공할 수 있다. 위치 서비스(232)는 3GPP 네트워크(150)를 통해 단말(100)의 위치에 대한 정보를 획득할 수 있다. 단말(100)의 위치에 대한 정보는, 단말(100)의 GPS(Global Positioning System) 정보, 단말(100)이 위치한 지역, 단말(100)이 이동하는 경로에 대한 정보, 단말(100)이 연결(또는 캠프 온)된 셀, 단말(100)이 핸드오버 할 셀 등에 대한 정보 등을 포함할 수 있으며, 상기 예시에 제한되지 않고 단말(100)의 위치와 관련된 모든 정보를 포함할 수 있다.
캐시 서비스(233)는, 서비스 서버(250)로부터 데이터를 캐싱(caching)하여 제공할 수 있다. 캐싱이란, 데이터에 대한 요청이 있기 전에, 데이터를 제공하는 서버 등으로부터 데이터를 미리 획득하여 저장함으로써, 데이터에 대한 요청에 대해 저지연으로 데이터를 제공하는 기술을 의미할 수 있다. 본 개시에서, 캐싱은 단말(100) 또는 애플리케이션 클라이언트의 요청이 있기 전에, 서비스 서버(250)가 제공하는 데이터를 서비스 서버(250)에게 요청하여 미리 저장하는 일련의 프로세스를 의미할 수 있다. 엣지 데이터 네트워크(200)는 캐싱을 통해 단말(100)에게 제공할 데이터를 서비스 서버(250)보다 가까운 위치에 있는 엣지 데이터 네트워크(200)에 미리 저장해둠으로써, 네트워크 전송 지연을 감소시킬 수 있다.
서비스 서버(250)는 단말(100)의 애플리케이션(예를 들어, 애플리케이션 클라이언트, 엣지 애플리케이션)과 관련된 컨텐츠를 제공할 수 있다. 엣지 데이터 네트워크(200)는 서비스 서버(250)와 MEC 서비스를 제공하기 위한 데이터를 송수신할 수 있으며, 서비스 서버(250)로부터 데이터를 미리 캐싱할 수 있다.
일 실시예에 따르면, 단말(100)은 복수의 애플리케이션 클라이언트(111, 112)는 요구되는 네트워크 서비스 타입에 기반하여 서비스 서버(250)와 데이터 전송을 수행할 수 있다. 서비스 서버(250)는 단말(100)이 애플리케이션 클라이언트를 구동(또는, 실행)하는데 필요한 서비스 또는 데이터를 제공할 수 있으며, 단말(100)의 애플리케이션 클라이언트에게 엣지 컴퓨팅 서비스를 제공할 수 있는, 엣지 애플리케이션을 엣지 데이터 네트워크(200)에게 제공할 수 있다. 또한, 서비스 서버(250)는 엣지 데이터 네트워크(200)에게 단말(100)이 애플리케이션 클라이언트를 구동(또는, 실행)하는데 필요한 서비스 또는 데이터를 제공할 수 있다.
서비스 서버(250)는 단말(100)에게 컨텐츠를 제공하는 컨텐츠 사업자에 의하여 운용, 또는 관리될 수 있다.
도 3은 본 개시의 일 실시예에 따라 소프트웨어 패키지를 실행하는 시스템 블록도이다.
소프트웨어 패키지는 하드웨어로 구현되던 기능을 수행할 수 있는 소프트웨어 컴포넌트(SC)들의 집합으로 vRAN 패키지, MEC 패키지, 및 UPF 패키지를 포함할 수 있다.
소프트웨어 컴포넌트는 자주 사용되는 기능을 모듈화 물리적인 바이너리 파일로, 다시 말해 캡슐화된 소프트웨어 부품으로써 재사용되는 단위를 의미한다. 소프트웨어 컴포넌트는 실행파일(예를 들어, C코드로 작성된 경우) 또는 코드(예를 들어, 파이썬으로 작성된 경우)로 이루어진 애플리케이션으로 HDD 또는 SDD 등의 스토리지에 저장되어 동작할 수 있다.
소프트웨어 패키지는 관련성이 있는 UML(unified modeling language) 요소들을 하나의 그룹으로 만들기 위한 컨테이너를 의미하며, 소프트웨어 패키지는 적어도 하나의 소프트웨어 컴포넌트의 집합으로 하나의 애플리케이션으로 관리될 수 있다.
도 3을 참조하면, 소프트웨어 패키지를 실행하는 시스템은 서버(300), O&M(operations and maintenance, 70), 인터페이스 유닛(interface unit, 50), 외부 서버(90) 및 복수의 기지국(12, 14, 16)을 포함할 수 있다. 각 패키지 사용을 위한 사용자 평면 데이터 및 제어 평면 데이터 트래픽 흐름은 점선으로 표시되어 있고 본 개시의 일 실시예에 따른 소프트웨어 패키지를 실행하기 위한 제어 신호 흐름은 실선으로 표시되어 있으며, 각 소프트웨어 패키지에서 동작하는 태스크를 처리하기 위해, 각 소프트웨어 패키지에 할당되는 하드웨어 컴포넌트들은 별도의 점선으로 표시되어 있다.
각 패키지에서 동작하는 태스크는, 각 패키지의 소프트웨어 컴포넌트에서 수행되는 작업(task)으로, 입력 데이터를 정해진 코드에 따라 처리(process)하여 출력 데이터를 생성하는 과정을 의미할 수 있다.
서버(300)는 하드웨어(310), OS(operating system, 320), 가상화 소프트웨어(330), 네트워크 기능을 수행하는 패키지들(예를 들어, vRAN 패키지 342, UPF 패키지 352, 354, 및 MEC 패키지 362), 컴포넌트 관리(CM, component management) 패키지(370), 및 가상화 마스터(380)을 포함할 수 있다.
서버(300)는 인터페이스 유닛(50)를 통해 셀 사이트의 복수의 기지국(12, 14, 16)과 연결될 수 있으며, O&M(70)은 복수의 기지국(12, 14, 16)에서 발생되는 트래픽을, 각 패키지에 할당할 것을 인터페이스 유닛 (50)에 명령할 수 있다.
서버(300)는 각 소프트웨어 패키지의 기능을 실행하기 위한 소프트웨어를 구동(drive)시킬 수 있는 하드웨어(310)를 포함할 수 있다. 하드웨어(310)는 CPU(central processing unit, 311), RAM(random access memory, 312), FPGA(field programmable gate array, 313), GPU(graphics processing unit, 314), NIC(network interface controller, 315), 스토리지(316) ASIC(application-specific integrated circuit, 317), 및 eASIC(318)을 포함할 수 있으나, 이는 일 예일 뿐, 하드웨어(310)의 구성 요소가 전술한 예에 한정되는 것은 아니다.
CPU(311) 및 GPU는 범용성을 가지는 프로세서로 클럭(동작속도)의 수치, 코어(핵심 회로)의 수, 캐시 메모리의 용량에 따라 성능이 결정된다.
CPU(311)는 클럭 수치가 높으면 단일 작업을 빠르게 처리하는데 유리하며, 코어의 수가 많으면 멀티 태스킹을 하거나 멀티코어 연산에 최적화된 프로그램을 구동하기 유리하다. 그리고 캐시 메모리가 충분하면 로드가 큰 프로그램을 구동하거나 자주 수행하는 작업을 반복처리할 때 작업 효율을 높일 수 있다. CPU(311)는 명령어가 입력된 순서대로 데이터를 처리하는 직렬(순차) 처리 방식에 특화된 구조를 가지고 있으며, 고정소수점 데이터를 많이 사용하는 간단한 작업을 빠르게 수행할 수 있도록 설계된다.
GPU(314)는 병렬 연산에 특화된 구조를 통한 복잡한 3D 그래픽 처리를 위해 개발되었으나, 최근에는 그래픽 처리뿐 아니라 이외의 범용 작업에도 GPU 의 처리 능력을 이용하는 GPGPU(general purpose computing on graphics processing unit) 기술이 사용되고 있다.
GPU(314)의 병렬처리 기능은 딥러닝에 적용될 수 있다. 대용량의 벡터 데이터를 연산할 때 각 행과 열의 연산을 병렬로 처리하면 CPU를 통한 직렬 처리보다 빠르기 때문에 딥러닝에 GPU를 사용하는 기술들이 발전하고 있다. 그러나, 구현 방법에 따라 CPU에 의한 처리가 더 빠른 경우도 있으므로 CPU와 GPU를 적절히 조합하는 것이 필요하다.FPGA(313), ASIC(317), 및 eASIC(318)는 특정 기능이나 용도에 특화된 반도체들이다.
FPGA(313) 는 반도체 설계자가 의도한 대로 자유롭게 회로를 설계할 수 있는 논리회로형 반도체를 말한다. FPGA는 사용중 설계 사항이 바뀌면 새로운 논리 회로를 FPGA 소자에 재입력할 수 있는 유연성과 함께, 설계부터 제품화까지 이어지는 상품화 과정이 짧다는 장점이 있다. FPGA는 ARM 코어 또는 오프-칩 통신을 위한 송수신 모듈과 같은 하드 로직 블록을 포함할 수 있다.
ASIC(317)는 일반적으로 주문형 반도체라 불리며, 사용자의 주문에 따라 특정 용도로 설계할 수 있는 반도체를 의미한다. ASIC 설계는 추가 로직을위한 사장 영역(die area)이 없어 고도로 최적화 된 경우가 많다. ASIC은 FPGA 등에 비해 가격이 저렴하지만, 일반적으로 상품화까지의 기간은 다소 긴 편이다.
eASIC(318) 는 FPGA와 표준-셀(standard cell) ASIC 사이의 중간 기술인 구조화된 반도체로, ASIC과 같은 고정설계이기 때문에 FPGA와 같은 가변 설계보다 빠르지만 사장 영역이 없어 ASIC과 같은 절전 효과를 갖는다. 그 결과 eASIC은 FPGA에 비해 단가가 낮고 전력 소모가 적으며 표준-셀 ASIC에 비해 상품화까지의 기간이 짧고 비 반복적 엔지니어링 비용(non-recurring engineering cost)이 적게 발생하는 특징을 갖는다.
도 3의 하드웨어(310) 는 FPGA(313), ASIC(317), 및 eASIC(318)을 모두 포함하고 있으나, 이에 한정되는 것은 아니며 구체적 실시예에 따라 이 중 일부만 포함할수도 있다.
NIC(315)는, 네트워크와 연결하여 통신하기 위해 사용되는 하드웨어 장치를 의미한다.
RAM(312)은 임의의 순서로 읽고 쓸 수 있는 메모리의 한 형태로, 일반적으로 작업 데이터 및 코드를 저장하기 위해 사용된다. RAM은 메모리 내의 데이터의 물리적 위치에 관계 없이 거의 동일한 시간에 데이터를 읽거나 쓸 수 있도록 한다.
스토리지(316)는 정보(데이터)를 기록할 수 있는 저장 매체로 디지털 정보를 보유하는 물리적 매체를 의미한다. 또한, 스토리지(316)는 HDD(hard disk drive), SDD(solid state drive) 등을 포함할 수 있다.
하드웨어(310)에서는 하나의 OS(operating system, 320)가 구동될 수 있다. OS(320)는 하드웨어(310) 및 서버(300)에서 실행되는 소프트웨어(예를 들어, 가상화 소프트웨어(330))를 관리할 수 있다. 가상화 소프트웨어(330)는 OS(320)에서 관리하는 리소스를 논리적으로 분리시키고, 여러 개의 소프트웨어 컴포넌트 (software component, SC)가 논리적으로 분리된 리소스를 공유하도록 할 수 있다. 리소스는 vRAN 패키지(예를 들어, 342)에서 트래픽을 처리하는데 이용되는 항목이다. 예를 들어, 리소스에는 CPU(311), RAM(312), FPGA(313) 및 GPU(314) 등이 포함될 수 있으나, 이는 일 예일 뿐, 리소스가 전술한 예에 한정되는 것은 아니다.
리소스의 논리적 분리는 리소스와 복수의 SC를 연결하는 물리적인 통신 선로를 스위치를 통해 분배함으로써 수행될 수 있다. SC는 특정 기능을 수행하기 위해 필요한 라이브러리나 어플리케이션 등을 모아 별도의 서버인 것처럼 사용할 수 있게 만든 것으로, 패키지 단위로 생성되거나 제거될 수 있다. 패키지는 하나의 IP를 공유하면서, 하나 이상의 SC를 포함할 수 있는 최소 단위이다. 가상화 소프트웨어(330)의 예로는, 쿠버네티스(kubernetes)가 포함될 수 있으며, SC는 쿠버네티스의 컨테이너(container)에 대응될 수 있다.
한편, 일 실시예에 따른 SC는 네트워크 기능을 수행하기 위해 이용될 수 있다. 일 실시예에 따른 네트워크 기능은 트래픽을 네트워크 상에 존재하는 장치들 사이에 전달하고, 발생된 트래픽을 처리하는 기능으로서, 예를 들어, RAN 기능, UPF 기능 및 MEC 기능을 포함할 수 있다. RAN 기능은 도 1을 참조하여 전술한 무선 접속 네트워크 기능에 대응될 수 있고, MEC 기능은 도 2를 참조하여 전술한 엣지 데이터 네트워크 기능에 대응될 수 있다. 또한 전술한 바와 같이, UPF 기능은 단말과 엣지 데이터 네트워크 또는 서비스 서버 사이의 데이터 통로(또는, 데이터 평면)을 제공하여 단말이 송수신하는 데이터를 전달하는 게이트웨이 역할을 한다.
본 개시에서는 네트워크 기능을 가상화하는 SC를 포함하는 패키지가 실행되는 하드웨어의 구성 요소를 하드웨어 컴포넌트(hardware component, HC)로 설명하도록 한다.
일 실시예에 따른 서버(300)는 네트워크 기능을 가상화하는 SC를 포함하는 패키지가 실행되는 적어도 하나의 HC를 결정할 수 있다. 또한, 서버(300)는 네트워크 기능을 가상화하는 SC를 포함하는 패키지에 할당된 HC를 다른 HC로 변경하는 오프로딩(offloading)을 수행할지 여부를 결정하고, 오프로딩을 수행할 수 있다.
오프로딩은 특정 HC에서 실행되던 패키지를 다른 HC에서 실행되도록 네트워크 기능의 처리 지점을 이전하는 동작을 의미하며, 오프로딩이 일어나면 기존에 할당된 HC에서 수행하고 있던 패키지의 기능을 새로 할당된 HC에서 수행하게 된다.
예를 들어, 서버(300)는 기존에 CPU(311), RAM(312), 스토리지(316) 또는 GPU(314) 등의 HC를 이용해서 처리되는 vRAN 기능, UPF 기능 및 MEC 기능을 GPU(314), FPGA(313) 등의 다른 HC로 이전하여 처리할 수 있다. 다른 예에 따라, 서버(300)는 vRAN 패키지 사용정보, UPF 패키지 사용정보 및 MEC 패키지 사용정보 등에 기초하여, 각 패키지가 실행되는 HC를 변경할 수도 있다.
패키지가 실행되는 HC를 변경하는 과정은, 스케일-아웃(scale-out) 및 스케일-인(scale-in)을 포함할 수 있다.
스케일-아웃(scale-out) 은 네트워크 기능을 가상화하는 SC에 할당된 리소스 인스턴스를 추가하여 확장하는 기능을, 스케일-인(scale-in)은 네트워크 기능을 가상화하는 SC에 할당된 리소스 인스턴스를 제거하는 기능을 의미한다. 스케일-업/다운(scale-up/down)은, 네트워크 기능을 가상화하는 SC에 할당된 리소스 인스턴스를 변경하는 기능을 의미한다.
예를 들어, 서버(300)가 MEC 패키지를 실행하는 HC를 CPU에서 GPU로 변경하는 하드웨어 오프로딩을 결정하면, 서버(300)는 MEC 패키지에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 새로운 MEC 패키지를 생성할 수 있다. 새로운 MEC 패키지가 생성되면, 서버(300)는 새로운 MEC 패키지에 GPU를 할당하고 데이터 트래픽 경로를 새로운 MEC 패키지로 변경한 후, 기존의 MEC 패키지에 포함되는 SC의 인스턴스들을 스케일-인하여 인스턴스들을 제거함으로써 기존의 MEC 패키지를 삭제할 수 있다.
하드웨어 가상화 기술을 사용하면, 여러 개의 가상 머신(예를 들어, 소프트웨어 패키지)이 서버에 설치된 하나의 물리적 하드웨어를 공유할 수 있다. GPU의 경우, 전술한 바와 같이 다수의 코어를 가지므로 병렬 처리에 유리하고, CPU와 비교하여 단위 코어당 가격이 저렴하다. 따라서, GPU는 클라우드 컴퓨팅(MEC)를 위한 자원으로 활용이 유리하지만 클라우드 컴퓨팅은 가상화를 전제로 하는 기술로, GPU를 온전한 클라우드 자원으로 활용하기 위해서는 GPU역시 가상화될 필요가 있다.
또한, 강력한 성능의 범용 CPU 코어가 있는 멀티 코어 프로세서와, 단순하지만 많은 코어를 가지는 GPU의 아키텍처를 결합하는 경우 고성능 컴퓨팅(HPC) 처리에 보다 적합할 수 있다. 멀티 코어 프로세서(CPU)와 GPU를 결합한 이기종 시스템은 제어 집약적 구성 요소와 고도의 데이터 병렬 구성 요소를 모두 갖추고 있어서 고성능 컴퓨팅 응용 프로그램의 다양한 요구사항을 충족시킬 수 있다.
하드웨어 자원이 가상화되면, 각 하드웨어 자원의 일정 비율(또는 연산량)이 특정 소프트웨어 패키지의 태스크를 처리하기 위하여 사용될 수 있다. 이를 활용하여 각 패키지에 필요한 만큼 최적의 하드웨어 자원을 할당하는 경우, 시스템 자원을 보다 효율적으로 활용할 수 있을 뿐 아니라, 시스템 확장성을 향상시키고 운영 비용을 절감할 수 있다.
예를 들어, CPU가 N개의 코어를, GPU가 M개의 코어를 가지는 경우를 가정한다. MEC 패키지(362)가 전체 CPU 코어 중 N/2을 사용하던 중, 서버(300)가 MEC 패키지(362)를 실행하는 HC를 CPU 코어 N/4와 GPU 코어 M/2로 변경하는 하드웨어 오프로딩을 결정하면, 서버(300)는 MEC 패키지(362)에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 새로운 MEC 패키지(미도시)를 생성할 수 있다. 새로운 MEC 패키지가 생성되면, 서버(300)는 새로운 MEC 패키지에 CPU 코어 N/4와 GPU 코어 M/2를 할당하고 데이터 트래픽 경로를 새로운 MEC 패키지(미도시)로 변경한 후, 기존의 MEC 패키지에 포함되는 SC의 인스턴스들을 스케일-인하여 인스턴스들을 제거함으로써 기존의 MEC 패키지(362)를 삭제할 수 있다.
이와 같이, 하나의 소프트웨어 패키지에 하드웨어 컴포넌트들의 세트가 할당될 수 있으며, 하나의 소프트웨어 패키지에 할당되는 하드웨어 컴포넌트들의 세트는 복수의 하드웨어 컴포넌트(예를 들어, 311 내지 318) 각각의 사용여부 및 사용량에 기초하여 결정될 수 있으며, 새로운 하드웨어 컴포넌트 세트의 할당은 하드웨어 컴포넌트 세트를 구성하는 하드웨어들은 동일하고 사용량만 변경되는 경우를 포함할 수 있다.
본 개시에서는, 전술한 동작들이 모두 오프로딩의 범주에 포함될 수 있다. 한편, 이하에서는 서버(300)의 오프로딩 동작에 대해 보다 구체적으로 설명하도록 한다.
서버(300)는 셀 사이트의 복수의 기지국(12, 14, 16)과 인터페이스 유닛(50)을 통해 연결될 수 있다. 인터페이스 유닛(50)은 셀 사이트의 복수의 기지국(12, 14, 16)과 서버(300)를 연결하는 통로의 일부로서, 인터페이스 유닛(50)을 통해 기지국의 트래픽이 vRAN 패키지(예를 들어, 342)로 전달될 수 있다. 또한, 다른 예에 따라, 인터페이스 유닛(50)을 통해 할당된 vRAN 패키지(예를 들어, 342)에 관한 정보가 셀 사이트의 복수의 기지국(12, 14, 16)으로 전달될 수도 있다. 인터페이스 유닛(50)은 EIU(Ethernet interface unit) 또는 FSU(front switching unit)을 포함할 수 있다.
일 실시예에 따른 서버(300)는 기지국에서 수행되었던 무선 접속 네트워크 기능들 중 적어도 일부를 수행할 수 있다. 무선 접속 네트워크 기능은, 예를 들어, PDCP(packet data convergence protocol) 레이어 기능, RLC(radio link control) 레이어 기능, MAC(medium access control) 레이어 기능 및 PHY(physical) 레이어 기능 등을 포함할 수 있으나, 이는 일 예일 뿐, 무선 접속 네트워크 기능이 전술한 예에 한정되는 것은 아니다.
이에 따라, 셀 사이트의 복수의 기지국(12, 14, 16) 각각에는 RF 장치를 포함하는 무선 송수신부가 존재하게 되며, 이외의 무선 접속 네트워크 기능들은 서버(300)에서 수행될 수 있다. 예를 들어, 서버(300)에는 PHY SC, MAC SC, RLC SC가 생성될 수 있으며, PHY SC, MAC SC, RLC SC는 각각 전술한 PHY 레이어 기능, MAC 레이어 기능 및 RLC 레이어 기능을 수행할 수 있다. 다만, 이는 일 예일 뿐, 서버(300)에서 수행되는 무선 접속 네트워크 기능이 전술한 예에 한정되는 것은 아니다.
일 실시예에 따르면, PHY SC, MAC SC, RLC SC는 하나의 vRAN 패키지(예를 들어, 342)에 포함될 수 있다. vRAN 패키지(예를 들어, 342)는 무선 접속 네트워크 기능을 수행하는 하나 이상의 SC를 포함할 수 있는 최소 단위이다. vRAN 패키지(예를 들어, 342)는 기존에 하드웨어 장치에서 수행되었던 무선 접속 네트워크 기능들을 가상화하여 수행할 수 있도록 하는 명령어들로 구성될 수 있으며, vRAN 패키지(예를 들어, 342) 단위로, SC가 제거 또는 생성될 수 있다.
vRAN 패키지(예를 들어, 342)는 vRAN 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 제공할 수 있다. vRAN 패키지 이용 정보는 복수의 기지국(12, 14, 16)에서 발생된 트래픽 정보 및 트래픽 처리 정보를 포함할 수 있다. 여기에서, 트래픽은 일정 시간 내에 통신망을 통과하는 데이터의 흐름이다. 일 실시예에 따른 트래픽은 단말과 기지국(예를 들어, 12) 사이의 데이터 흐름을 포함할 수 있으며, 단위 시간당 데이터 전송률 등으로 나타낼 수 있다.
트래픽은 기지국(예를 들어, 12)에 접속한 단말이 애플리케이션을 실행하는 과정에서 발생할 수 있다. 애플리케이션은 특정 응용 서비스를 위하여 단말 등의 장치 내에서 구동되는 응용 프로그램을 의미하고, 단말 내에는 여러 애플리케이션이 구동될 수 있다. 이 애플리케이션 중 적어도 하나는 MEC 서비스를 사용할 수 있다.
vRAN 트래픽 정보는 트래픽의 양 및 특성을 직접적 또는 간접적으로 나타낼 수 있는 정보이다. vRAN 트래픽 정보는, 예를 들어, vRAN 패키지가 처리하는 셀의 개수, 셀 당 트래픽 처리 속도(예를 들어, bps), 기지국에 연결된 단말 수, 기지국에 할당된 대역폭 및 서로 다른 무선 통신 기술 간의 주파수 공유 비율, 다운링크 채널 및 업링크 채널의 처리 시간(DL/UL latency), 각 기지국의 MIMO(multi-input multi-output) 안테나에 따른 레이어 수, 각 기지국의 자원 사용량(예를 들어, PRB(physical resource block) 사용 비율), 또는 단말의 핸드오버 빈도 등의 정보를 포함할 수 있다. 다른 예에 따라, vRAN 트래픽 정보는 트래픽을 발생시킨 서비스의 종류, 트래픽이 발생된 주파수 대역 및 트래픽이 발생된 무선 통신 시스템(예를 들어, NR 또는 LTE)의 종류 등을 포함할 수 있다.
또한, vRAN 트래픽 처리 정보는 무선 접속 네트워크 기능에 따라 트래픽을 처리하는 과정에 관한 정보이다. vRAN 트래픽 처리 정보는, 예를 들어, 복수의 기지국에서 발생된 트래픽의 처리에 이용된 vRAN 리소스 정보를 포함할 수 있다.
vRAN 리소스 정보는 vRAN 트래픽 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보이다. vRAN 리소스 정보는, 예를 들어, vRAN 패키지에 할당된 하드웨어의 종류, vRAN 패키지에 할당된 하드웨어 코어 중 vRAN 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 vRAN 트래픽 처리를 위해 사용되는 클락 사이클 수, vRAN 트래픽 처리를 위해 vRAN 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 또한 vRAN 리소스 정보는, vRAN 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보를 포함할 수 있으며, 이 때 vRAN 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보는 각 하드웨어 컴포넌트에 대한 우선순위 정보를 포함할 수 있다.
다만, 전술한 예시들은 일 예일 뿐, vRAN 트래픽 정보 또는 vRAN 리소스 정보가 전술한 예에 한정되는 것은 아니다.
한편, vRAN 패키지 이용 정보는 복수의 기지국(12, 14, 16)으로부터 인터페이스 유닛(50)을 통해 vRAN 패키지(예를 들어, 342)에 수신될 수 있고, 다른 예에 따라, vRAN 패키지 이용 정보는 서버 내부의 OS(320) 또는 외부의 다른 장치로부터 수신될 수도 있다. 예를 들어, vRAN 패키지 이용 정보 중 트래픽 정보는 복수의 기지국(12, 14, 16)으로부터 수신될 수 있다. 또한, vRAN 패키지 이용 정보 중 리소스 정보는 서버의 OS(320)로부터 수신될 수 있다. 다만, 이는 일 예일 뿐, vRAN 패키지(예를 들어, 342)가 vRAN 패키지 이용 정보를 수신하는 방법이 전술한 예에 한정되는 것은 아니다. 또 다른 예에 따라, vRAN 패키지 이용 정보는 vRAN 패키지(예를 들어, 342)가 기 획득된 vRAN 패키지 이용 정보에 통계적 방법(예를 들어, 평균, 분산 등의 산출 방법) 등을 적용한 결과 획득될 수도 있다.
vRAN 패키지(예를 들어, 342)는 획득한 vRAN 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 전달할 수 있다. 컴포넌트 관리 패키지(370)에 대해서는 후술하도록 한다.
한편, vRAN 패키지(예를 들어, 342)에 전달된 트래픽 중 MEC 서비스를 이용하는 애플리케이션 실행으로 인하여 발생된 트래픽은 UPF 패키지(예를 들어, 352 또는 354)를 통해 MEC 패키지(예를 들어, 362)로 전달될 수 있다.
일 실시예에 따른 서버(300)는 코어네트워크에서 수행되었던 UPF 기능들 중 적어도 일부를 수행할 수 있다. UPF 기능은, 예를 들어, 관리(management)/제어(control) 기능 및 사용자 평면 처리 기능를 포함할 수 있으며 서버(300)에는 관리(management)/제어(control) SC 및 사용자 평면 처리 SC가 생성되어 각각 전술한 기능을 수행할 수 있다. 다만, 이는 일 예일 뿐, 서버(300)에서 수행되는 UPF 기능이 전술한 예에 한정되는 것은 아니다.
일 실시예에 따르면, 관리(management)/제어(control) SC 및, 사용자 평면 처리 SC는 하나의 UPF 패키지(예를 들어, 352 또는 354)에 포함될 수 있다. 이 때, vRAN 패키지(예를 들어, 342)에서 전달된 사용자 평면 데이터는 복수의 UPF 패키지(예를 들어, 352 및 354)에서 처리되어 MEC 패키지(예를 들어, 362)로 전달될 수 있다.
UPF 패키지(예를 들어, 352 또는 354)는 UPF 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 제공할 수 있다. UPF 패키지 이용 정보는 vRAN 패키지(예를 들어, 342) 또는 MEC 패키지(예를 들어, 362)로부터 전달된 사용자 평면 데이터의 처리에 대한 정보로서, vRAN 패키지에 연결된 단말/세션의 개수, UPF 트래픽 처리 속도(예를 들어, packet per second)등에 관한 정보를 포함할 수 있다.
UPF 패키지 이용 정보는, 예를 들어, 사용자 평면 데이터의 처리에 이용된 UPF 리소스 정보를 포함할 수 있다.
UPF 리소스 정보는 사용자 평면 데이터 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보로, 예를 들어, UPF 패키지에 할당된 하드웨어의 종류, UPF 패키지에 할당된 하드웨어 코어 중 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 트래픽 처리를 위해 사용되는 클락 사이클 수, 트래픽 처리를 위해 UPF 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 또한 UPF 리소스 정보는, UPF 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보를 포함할 수 있으며, 이 때 UPF 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보는 각 하드웨어 컴포넌트에 대한 우선순위 정보를 포함할 수 있다.
다만, 전술한 예시들은 일 예일 뿐, UPF 패키지 이용 정보 또는 UPF 리소스 정보가 전술한 예에 한정되는 것은 아니다.
한편, UPF 패키지 이용 정보는 서버 내부의 OS(320) 또는 외부의 다른 장치로부터 수신될 수도 있다. 예를 들어, UPF 패키지 이용 정보 중 사용자 평면 트래픽 정보는 vRAN 패키지(예를 들어, 342)으로부터 수신될 수 있다. 또한, UPF 패키지 이용 정보 중 리소스 정보는 서버의 OS(320)로부터 수신될 수 있다. 다만, 이는 일 예일 뿐, UPF 패키지(예를 들어, 352 또는 354)가 UPF 패키지 이용 정보를 수신하는 방법이 전술한 예에 한정되는 것은 아니다. 또 다른 예에 따라, UPF 패키지 이용 정보는 UPF 패키지(예를 들어, 352 또는 354)가 기 획득된 UPF 패키지 이용 정보에 통계적 방법(예를 들어, 평균, 분산 등의 산출 방법) 등을 적용한 결과 획득될 수도 있다.
UPF 패키지(예를 들어, 352 또는 354)는 획득한 UPF 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 전달할 수 있다.
MEC 패키지(예를 들어, 362)는 엣지 애플리케이션을 실행하고, 엣지 애플리케이션 실행으로 인해 발생한 트래픽 또는 엣지 애플리케이션과 관련하여 수신한 트래픽을 처리할 수 있다. 엣지 애플리케이션은 엣지 데이터 네트워크 상에서 실행될 수 있으며, 엣지 데이터 네트워크는, 단말이 연결된 3GPP 네트워크의 기지국의 내부 또는 기지국과 지리적으로 가까운 위치에 배치되고, 외부 서버(90)에서 제공되는 컨텐츠와 적어도 일부가 동일한 컨텐츠를 제공할 수 있다. vRAN 패키지(342)에 전달된 트래픽 중 MEC 서비스를 이용하지 않는 트래픽의 경우는 서버(300) 외부의 다른 서버로 전달될 수 있으며, 본 개시에서는 서버(300) 외부의 다른 서버에서 트래픽을 처리하는 방법에 대해서는 설명을 생략하도록 한다.
MEC 패키지(예를 들어, 362)는 MEC 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 제공할 수 있다. MEC 패키지 이용 정보는 엣지 애플리케이션을 통해 제공되는 서비스에 관한 정보로서, 엣지 애플리케이션의 개수, 엣지 애플리케이션에 연결된 단말의 개수, 엣지 애플리케이션에 대한 응답시간, 서비스의 종류, 서비스를 이용한 시간 및 서비스 이용을 통해 발생된 트래픽 양, 또는 서비스를 이용한 단말의 위치 등에 관한 정보가 포함될 수 있다.
MEC 패키지 이용 정보는, 예를 들어, 엣지 애플리케이션 데이터의 처리에 이용된 MEC 리소스 정보를 포함할 수 있다.
MEC 리소스 정보는 엣지 애플리케이션 데이터 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보로, 예를 들어, MEC 패키지에 할당된 하드웨어의 종류, MEC 패키지에 할당된 하드웨어 코어 중 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 트래픽 처리를 위해 사용되는 클락 사이클 수, 트래픽 처리를 위해 MEC 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 또한 MEC 리소스 정보는, MEC 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보를 포함할 수 있으며, 이 때 MEC 패키지에서 사용 가능한 하드웨어 컴포넌트들에 대한 정보는 각 하드웨어 컴포넌트에 대한 우선순위 정보를 포함할 수 있다.
다만, 전술한 예시들은 일 예일 뿐, MEC 패키지 이용 정보 또는 MEC 리소스 정보가 전술한 예에 한정되는 것은 아니다.
한편, MEC 패키지 이용 정보는 서버 내부의 OS(320) 또는 외부의 다른 장치로부터 수신될 수도 있다. 예를 들어, MEC 패키지 이용 정보 중 리소스 정보는 서버의 OS(320)로부터 수신될 수 있다. 다만, 이는 일 예일 뿐, MEC 패키지(예를 들어, 362)가 MEC 패키지 이용 정보를 수신하는 방법이 전술한 예에 한정되는 것은 아니다. 또 다른 예에 따라, 패키지 이용 정보는 MEC 패키지(예를 들어, 362)가 기 획득된 MEC 패키지 이용 정보에 통계적 방법(예를 들어, 평균, 분산 등의 산출 방법) 등을 적용한 결과 획득될 수도 있다.
MEC 패키지(예를 들어, 362)는 획득한 MEC 패키지 이용 정보를 컴포넌트 관리 패키지(370)에 전달할 수 있다.
컴포넌트 관리 패키지(370)는 vRAN 패키지(예를 들어, 342), UPF 패키지(예를 들어, 352 또는 354) 또는 MEC 패키지 (예를 들어, 362)에 포함된 SC의 수 및 SC에 할당된 리소스 또는 MEC 기능 또는 vRAN 기능을 수행하는 HC(hardware component)를 결정하는 명령어 집합이다. 컴포넌트 관리 패키지(370)는 IF(interface, 372), 컴포넌트 관리 SC (374)를 포함할 수 있다. IF(372)는 vRAN 패키지(예를 들어, 342)로부터 vRAN 패키지 이용 정보를 수신하고, UPF 패키지(예를 들어, 352 또는 354)로부터 UPF 패키지 이용 정보를 수신하고, MEC 패키지 (예를 들어, 362)로부터 MEC 패키지 이용 정보를 수신할 수 있다. 다른 예에 따라, IF(372)는 패키지 이용 변화를 발생시킬 것으로 예측되는 이벤트에 관한 정보를 외부 장치로부터 획득할 수 있다.
컴포넌트 관리 패키지(370)는 서버(300)에 포함되는 모든 패키지에 대한 하드웨어 이용 정보를 획득할 수 있다. 하드웨어 이용 정보는, 예를 들어, CPU(311), RAM(312), FPGA(313), GPU(314), NIC(315), 스토리지(316), ASIC(317) 및 eASIC(318)등 하드웨어 컴포넌트 각각의 패키지에 대한 할당 상태, 사용 여부, 코어 부하 상태, 코어당 처리 사이클 수 등에 대한 정보를 포함할 수 있다.
컴포넌트 관리 SC(374)는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보에 기초하여, 서버(300)에서 소프트웨어 패키지를 실행하는 적어도 하나의 하드웨어 컴포넌트를 결정할 수 있다.
예를 들어, 컴포넌트 관리 SC(374)는 MEC 패키지 이용 정보를 기초로 판단한 결과, MEC 서비스 이용량이 증가한 것으로 판단되는 경우, MEC 서비스의 처리 속도를 높이기 위해, CPU에서 수행중이던 MEC 서비스에서 발생한 트래픽의 처리를 GPU 및 FPGA로 오프로딩할 수 있다. 한편, 컴포넌트 관리 SC(374)는 GPU 및 FPGA가 모두 MEC 서비스 처리를 위해 이용됨에 따라 vRAN 기능은 CPU에서 수행하는 것으로 결정할 수 있다.
다른 예로, vRAN 패키지 이용 정보를 기초로 판단한 결과 vRAN 패키지(342)에 포함되는 PHY SC의 LDPC 복호기에서 LDCP 복호화 연산량 증가로 인하여 데이터 전송의 병목이 발생하거나 발생할 것으로 예상되는 경우, 컴포넌트 관리 SC(374)는 vRAN 패키지(342)에 할당된 HC인 CPU(311)를 오프로딩할 것을 결정하고, 새로 할당될 최적의 HC를 GPU(314)로 결정할 수 있다. LDPC(low density parity check)는 높은 부호정정 성능을 가지는 에러 정정 코드로, 메시지 교환을 통해 에러를 정정하는 알고리즘을 반복적으로 연산한다. 패리티 검사 행렬인 H-matrix의 크기가 급격히 증가하는 경우 복호화 과정의 연산량 증가로 인하여 고속 데이터 전송의 안정성이 보장될 수 없으므로, 이러한 경우 GPU를 사용하여 LDCP 복호기를 병렬처리하여 LDPC 처리 속도를 향상시킬 수 있다.
또 다른 예로, MEC 패키지 이용 정보 및 vRAN 패키지 이용 정보를 기초로 판단한 결과 MEC 패키지(362)와 vRAN 패키지(342)가 모두 고용량 처리를 원하는 경우, 컴포넌트 관리 SC(374)는 MEC 패키지(362)에는 GPU(314)를 할당하고, vRAN 패키지(342)에는 FPGA(313)을 할당하도록 결정할 수 있다. 또는, 컴포넌트 관리 SC(374)는 MEC 패키지(362)와 vRAN 패키지(342) 각각에 CPU 코어와 GPU 코어를 일정 비율로 할당하도록 결정할 수 있다. 이 때, MEC 패키지(362)와 vRAN 패키지(342) 각각에 할당되는 CPU 코어와 GPU 코어의 비율은 MEC 패키지 이용 정보 및 vRAN 패키지 이용 정보를 기초로 최적의 비율이 결정될 수 있다. 설명의 편의를 위해 프로세서인 CPU(311) 및 GPU(314)를 중심으로 설명하지만, 소프트웨어 패키지가 사용하는 하드웨어 컴포넌트 세트는 이외에도 스토리지(316) 또는 RAM(312)등을 더 포함할 수 있다.
컴포넌트 관리 SC (374)는 결정된 vRAN 패키지 및 MEC 패키지에 관한 정보를 가상화 마스터(380)에 전달할 수 있으며, 가상화 마스터(380)는 전달된 명령어에 따라 vRAN 패키지 및 MEC 패키지를 조절하는 명령을 가상화 소프트웨어(330)로 보낼 수 있다.
다만, 이는 일 예시일 뿐, 컴포넌트 관리 SC(374)는 발생될 것으로 예측되는 트래픽의 양, 트래픽의 종류 및 트래픽 처리 요구 성능 등에 기초하여 네트워크 기능을 수행하는 소프트웨어에서의 SC의 수, 리소스 및 소프트웨어를 실행하는 하드웨어 컴포넌트의 종류 등을 결정할 수 있다. 이에 대한, 구체적인 설명은 도 4를 참조하여 후술하도록 한다.
O&M(70)은 조절된 vRAN 패키지를 고려하여, 복수의 기지국(12, 14, 16)에서 발생되는 트래픽을, 각 vRAN 패키지에 할당할 것을 인터페이스 유닛 (50)에 명령할 수 있다. 이에 따라, 복수의 기지국(12, 14, 16) 중 적어도 하나로부터 수신되는 트래픽이 조절된 vRAN 패키지에 새롭게 할당될 수 있다.
도 4 는 본 개시의 일 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
이하 도 4 에 대한 설명에서, 도 3 에 대한 설명과 중복되는 내용에 대한 자세한 설명은 생략하도록 한다.
도 4 를 참조하면, 서버(400)는 하드웨어(410), OS(operating system, 420), 가상화 소프트웨어(430), 네트워크 기능을 수행하는 패키지들(예를 들어, vRAN 패키지 442, 444, UPF 패키지 452, 454, 및 MEC 패키지 462), 컴포넌트 관리 패키지(470), 및 가상화 마스터(480)를 포함할 수 있다.
컴포넌트 관리 패키지(470)는 서버(400)에서 실행중인 소프트웨어 패키지들(442, 444, 452, 454, 462)의 이용 상태를 모니터링한다. 일 실시예에 따르면, 컴포넌트 관리 패키지(470)는 IF(472)를 통해 vRAN 패키지(예를 들어, 442)로부터 vRAN 패키지 이용 정보를 수신하고, UPF 패키지(예를 들어, 452 또는 454)로부터 UPF 패키지 이용 정보를 수신하고, MEC 패키지 (예를 들어, 462)로부터 MEC 패키지 이용 정보를 수신함으로써 소프트웨어 패키지들의 이용 상태를 모니터링할 수 있다.
또한, 컴포넌트 관리 패키지(470)는 서버(400)에 포함되는 모든 소프트웨어 패키지에 대한 하드웨어 이용 정보를 획득할 수 있다. 하드웨어 이용 정보는, 예를 들어, CPU(411), RAM(412), FPGA(413), GPU(414), NIC(415), 스토리지(416), ASIC(417) 및 eASIC(418)등 하드웨어 컴포넌트 각각의 패키지에 대한 할당 상태, 사용 여부, 코어 부하 상태, 코어당 처리 사이클 수 등에 대한 정보를 포함할 수 있으며, 각 패키지 이용 정보에 포함되는 리소스 정보와 동일한 정보를 포함할 수 있다.
컴포넌트 관리 SC(474)는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보에 기초하여, 실행중인 vRAN 패키지(442)가 사용하는 하드웨어 컴포넌트 세트의 변경, 즉 새로운 하드웨어 컴포넌트 세트의 할당이 필요한지 여부를 결정할 수 있다.
예를 들어, 컴포넌트 관리 SC(474)는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보를 통해 소프트웨어 패키지 이용 상태를 모니터링할 수 있다. 모니터링은 지속적, 주기적으로 수행될 수 있으며 소프트웨어 패키지 이용 상태가 변화하는 특정 이벤트가 발생하는 경우 추가로 수행될 수 있다.
컴포넌트 관리 SC(474)는 획득된 패키지 이용 정보에 기초하여 vRAN 패키지(442)를 실행하고 있는 하드웨어 컴포넌트 세트의 변경이 필요한지 여부를 판단하고, 판단에 기초하여 하드웨어 오프로딩을 결정할 수 있다.
도 4 에 도시된 실시예는, vRAN 패키지(442)가 CPU에서 실행되던 중 GPU로 하드웨어 오프로딩이 일어나는 경우, 다시 말해 CPU 전체를 사용하는 하드웨어 컴포넌트 세트에서, GPU 전체를 사용하는 하드웨어 컴포넌트 세트로 오프로딩하는 경우, 를 가정한다.
전술한 바와 같이, vRAN 패키지(442)에서 LDCP 복호화 연산량 증가로 인하여 데이터 전송의 병목이 발생하거나, 발생할 것으로 예상되는 경우 컴포넌트 관리 SC(474)는 vRAN 패키지(442)에 할당된 HC인 CPU(411)를 오프로딩할 것을 결정하고, 새로 할당될 최적의 HC를 GPU(414)로 결정할 수 있다. 이 때, 컴포넌트 관리 SC(474)는 GPU(414)에서 실행되고 있는 기존 패키지가 있는지 여부를 확인할 수 있다. 도 4 에 개시된 실시예에서는, GPU(414)에서 실행되고 있는 패키지가 없으므로, GPU(414)를 확보하기 위한 별도의 과정 없이 신규 vRAN 패키지(444)에 GPU(414)를 할당할 수 있다.
다른 실시예에 따르면, 다른 패키지 또는 다른 하드웨어 컴포넌트 사이에서도 하드웨어 오프로딩이 일어날 수 있다.
일 실시예에 따르면, 컴포넌트 관리 SC(474)는 하드웨어 컴포넌트 결정 테이블을 이용하여 각 패키지별 이용 정보에 기초하여 하드웨어 오프로딩 여부 및 오프로딩할 하드웨어 컴포넌트를 결정할 수 있다. 하드웨어 컴포넌트 결정 테이블은 서버에서 실행중인 각 패키지들이 활용 가능한 조합에 대한 정보 또는 각 패키지별로 할당될 하드웨어 컴포넌트의 우선순위에 대한 정보를 포함할 수 있다. 또한, 하드웨어 컴포넌트 결정 테이블은 인공 지능 또는 머신 러닝 기법에 기초하여 트레이닝되거나 갱신될 수 있다.
vRAN 패키지(442)의 하드웨어 오프로딩이 결정되면, 컴포넌트 관리 SC(474)는 가상화 마스터(480)로 vRAN 패키지(442)의 하드웨어 오프로딩을 통보한다. 가상화 마스터(480)는 가상화 소프트웨어(430) 또는 OS(420)로 신규 vRAN 패키지(444)의 배포 및 GPU(414)의 할당을 요청한다. 신규 vRAN 패키지(444)의 배포 및 GPU(414)의 할당 요청을 획득한 가상화 소프트웨어(430) 또는 OS(420)는 기존 vRAN 패키지(442)에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 신규 vRAN 패키지(444)를 생성(또는 설치)하고, 새로 생성된 vRAN 패키지(444)에 GPU(414)를 할당할 수 있다. CPU(411)를 사용하던 기존 vRAN 패키지(442)의 SC들이 신규 vRAN 패키지(444)에서 재시작되면 기존 vRAN 패키지(442)가 사용하던 CPU(411) 자원은 반납된다.
신규 vRAN(444) 패키지에 GPU(414)가 할당되면, 서버(400)는 O&M(70)를 통해 복수의 기지국(미도시)에서 발생되는 트래픽 경로를, 기존 vRAN 패키지(442)에서 신규 vRAN 패키지(444)로 변경할 것을 인터페이스 유닛 (50)에 명령할 수 있다.
데이터 트래픽 경로 변경이 완료되면, 서버(400)는 기존의 vRAN 패키지(442)에 포함되는 SC의 인스턴스들을 스케일-인하여 기존의 vRAN 패키지(442)를 삭제(또는 종료)함으로써 vRAN 패키지에 하드웨어 오프로딩을 완료할 수 있다.
도 5 는 본 개시의 다른 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
이하 도 5 에 대한 설명에서, 도 3 및 도 4 에 대한 설명과 중복되는 내용에 대한 자세한 설명은 생략하도록 한다.
도 5 를 참조하면, 서버(500)는 하드웨어(510), OS(operating system, 320), 가상화 소프트웨어(530), 네트워크 기능을 수행하는 패키지들(예를 들어, vRAN 패키지 542, 544, UPF 패키지 552, 554, 및 MEC 패키지 562, 564), 컴포넌트 관리 패키지(570), 및 가상화 마스터(580)을 포함할 수 있다.
컴포넌트 관리 SC(574)는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보에 기초하여, 실행중인 vRAN 패키지(542)가 실행중인 하드웨어의 변경, 즉 새로운 하드웨어의 할당이 필요한지 여부를 결정할 수 있다. 컴포넌트 관리 SC(574)는 획득된 패키지 이용 정보에 기초하여 vRAN 패키지(542)를 실행하고 있는 하드웨어의 변경이 필요한지 여부를 판단하고, 판단 결과에 기초하여 하드웨어 오프로딩을 결정할 수 있다.
도 5 에 도시된 실시예는, vRAN 패키지(542)가 전체 CPU(511) 코어의 2/3를 사용하던 중, MEC 패키지(562)를 실행중인 GPU(514)의 코어의 1/2를 추가로 사용하는 경우, 즉 CPU 코어 2/3만 포함하는 하드웨어 컴포넌트 세트에서 CPU 코어 2/3와 GPU 코어 1/2를 포함하는 하드웨어 컴포넌트 세트로 하드웨어 오프로딩이 일어나는 경우를 가정한다.
전술한 바와 같이, vRAN 패키지(542)에서 LDCP 복호화 연산량 증가로 인하여 데이터 전송의 병목이 발생하거나, 발생할 것으로 예상되는 경우 컴포넌트 관리 SC(574)는 vRAN 패키지(542)에 할당된 하드웨어 컴포넌트 세트인 CPU(511)의 오프로딩이 필요한지 여부를 판단하고, 새로 할당될 최적의 하드웨어 컴포넌트 세트(예를 들어, CPU 코어 2/3와 GPU 코어 1/2)를 결정할 수 있다. 이 때, 컴포넌트 관리 SC(574)는 GPU(514)의 전체 사용량이 임계값(예를 들어, GPU 코어 전체의 90%) 이상이 되는지 여부를 확인할 수 있다. 예를 들어, MEC 패키지(562)가 GPU(514) 코어의 1/3을 사용중이었다면, vRAN 패키지(542)와 MEC 패키지(562)의 GPU(514)의 사용량이 임계값 이상이므로, 컴포넌트 관리 SC(574)는 MEC 패키지(562)에 할당할 새로운 하드웨어 컴포넌트 세트(예를 들어, CPU 코어 1/5와 GPU 코어 1/4)를 결정하고, 하드웨어 오프로딩을 수행할 수 있다. 이 때, 각 하드웨어마다 임계값은 다를 수 있으며, 시스템 운영을 위해 적절한 값으로 설정될 수 있다.
다른 실시예에 따르면, 다른 소프트웨어 패키지(예를 들어, UPF 패키지와 MEC 패키지) 또는 다른 하드웨어 컴포넌트(예를 들어, FPGA과 eASIC) 사이에서도 하드웨어 오프로딩이 일어날 수 있다.
일 실시예에 따르면, 컴포넌트 관리 SC(574)는 하드웨어 컴포넌트 결정 테이블을 이용하여 각 패키지별 이용 정보에 기초하여 하드웨어 오프로딩 여부 및 오프로딩할 하드웨어 컴포넌트 세트를 결정할 수 있다. 하드웨어 컴포넌트 결정 테이블은 서버에서 실행중인 각 패키지들이 활용 가능한 조합에 대한 정보 또는 각 패키지별로 할당될 하드웨어 컴포넌트의 우선순위에 대한 정보를 포함할 수 있다. 또한, 하드웨어 컴포넌트 결정 테이블은 인공 지능 또는 머신 러닝 기법에 기초하여 트레이닝되거나 갱신될 수 있다.
vRAN 패키지(542) 및 MEC 패키지(562)의 하드웨어 오프로딩이 결정되면, 컴포넌트 관리 SC(574)는 가상화 마스터(580)로 vRAN 패키지(542) 및 MEC 패키지(562)의 하드웨어 오프로딩을 통보한다. 오프로딩에 필요한 하드웨어 자원을 확보하기 위해, CM SC(574)는 가상화 마스터(580)를 통해 가상화 소프트웨어(530) 또는 OS(520)로 신규 MEC 패키지(564)의 배포 및 새로운 하드웨어 컴포넌트 세트(예를 들어, CPU 코어(511) 2/3와 GPU(514) 코어 1/2)의 할당을 요청하고, 신규 vRAN 패키지(544)의 배포 및 새로운 하드웨어 컴포넌트 세트(예를 들어, CPU(511) 코어 1/5와 GPU(514) 코어 1/4)의 할당을 요청한다.
신규 MEC 패키지(564)의 배포 및 CPU(511)의 할당 요청을 획득한 가상화 소프트웨어(530) 또는 OS(520)는 기존 MEC 패키지(562)에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 신규 MEC 패키지(564)를 생성(또는 설치)할 수 있다. GPU(514)를 사용하던 기존 MEC 패키지(562)의 SC들이 신규 MEC 패키지(564)에서 재시작되면 기존 MEC 패키지(562)가 사용하던 GPU(514) 자원은 반납된다.
또한 신규 vRAN 패키지(544)의 배포 및 새로운 하드웨어 컴포넌트 세트의 할당 요청을 획득한 가상화 소프트웨어(530) 또는 OS(520)는 기존 vRAN 패키지(542)에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 신규 vRAN 패키지(544)를 생성(또는 설치)할 수 있다. CPU(511)를 사용하던 기존 vRAN 패키지(542)의 SC들이 신규 vRAN 패키지(544)에서 재시작되면 기존 vRAN 패키지(542)가 사용하던 CPU(511) 자원은 반납된다.
이후, 가상화 소프트웨어(530) 또는 OS(520)는 새로운 하드웨어 컴포넌트 세트(예를 들어, CPU 코어(511) 2/3와 GPU(514) 코어 1/2)를 신규 vRAN 패키지(544)로 할당하고, 신규 MEC 패키지(564)로 새로운 하드웨어 컴포넌트 세트(예를 들어, CPU(511) 코어 1/5와 GPU(514) 코어 1/4)를 할당할 수 있다.
신규 vRAN(544) 패키지 및 신규 MEC 패키지(564)에 하드웨어 컴포넌트 세트가 할당되면, 서버(500)는 O&M(70)를 통해 복수의 기지국(미도시)에서 발생되는 트래픽 경로를, 신규 vRAN 패키지(544) 및 신규 MEC 패키지(564)로 변경할 것을 인터페이스 유닛(50)에 명령할 수 있다.
데이터 트래픽 경로 변경이 완료되면, 서버(500)는 기존의 vRAN 패키지(542)에 포함되는 SC의 인스턴스들을 스케일-인하여 기존의 vRAN 패키지(542)를 삭제하고, 기존의 MEC 패키지(562)에 포함되는 SC의 인스턴스들을 스케일-인하여 기존의 MEC 패키지(562)를 삭제함으로써 vRAN 패키지 및 MEC 패키지에 하드웨어 오프로딩을 완료할 수 있다.
도 6 은 본 개시의 일 실시예에 따른 서버가 소프트웨어 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
단계 S610에서, 서버는 서버와 연결된 복수의 기지국에 액세스한 단말(UE, user equipment)들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용정보를 획득할 수 있다.
소프트웨어 패키지는 하나의 IP를 공유하면서 네트워크 기능을 수행하는 하나 이상의 SC를 포함할 수 있는 최소 단위로, SC는 패키지 단위로 생성되거나 제거될 수 있다.
서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들은 vRAN 패키지, UPF 패키지, 또는 MEC 패키지를 포함할 수 있다. vRAN 패키지는 무선 접속 네트워크 기능을 수행하는 SC를 포함하고, UPF 패키지는 UPF 기능을 수행하는 SC를 포함하고, MEC 패키지는 MEC 기능을 수행하는 SC를 포함할 수 있다.
패키지 이용 정보는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, 또는 MEC 패키지 이용 정보를 포함할 수 있다. 또한 패키지 이용 정보는, 서버에 포함되는 모든 패키지에 대한 하드웨어 이용 정보를 포함할 수 있다.
vRAN 패키지 이용 정보는, 서버에 연결된 복수의 기지국에서 발생된 vRAN 트래픽 정보 및 vRAN 트래픽 처리 정보를 포함할 수 있다.
vRAN 트래픽 정보는, 예를 들어, vRAN 패키지가 처리하는 셀의 개수, 셀 당 트래픽 처리 속도(예를 들어, bps), 기지국에 연결된 단말 수, 기지국에 할당된 대역폭 및 서로 다른 무선 통신 기술 간의 주파수 공유 비율, 다운링크 채널 및 업링크 채널의 처리 시간(DL/UL latency), 각 기지국의 MIMO(multi-input multi-output) 안테나에 따른 레이어 수, 각 기지국의 자원 사용량(예를 들어, PRB(physical resource block) 사용 비율), 또는 단말의 핸드오버 빈도 등의 정보를 포함할 수 있다.
다른 예에 따라, vRAN 트래픽 정보는 트래픽을 발생시킨 서비스의 종류, 트래픽이 발생된 주파수 대역 및 트래픽이 발생된 무선 통신 시스템(예를 들어, NR 또는 LTE)의 종류 등을 포함할 수 있다.
또한, vRAN 트래픽 처리 정보는 무선 접속 네트워크 기능에 따라 트래픽을 처리하는 과정에 관한 정보이다. vRAN 트래픽 처리 정보는, 예를 들어, 복수의 기지국에서 발생된 트래픽의 처리에 이용된 vRAN 리소스 정보를 포함할 수 있다.
vRAN 리소스 정보는 vRAN 트래픽 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보이다. vRAN 리소스 정보는, 예를 들어, vRAN 패키지에 할당된 하드웨어의 종류, vRAN 패키지에 할당된 하드웨어 코어 중 vRAN 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 트래픽 처리를 위해 사용되는 클락 사이클 수, vRAN 트래픽 처리를 위해 vRAN 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 다만, 전술한 예시들은 일 예일 뿐, vRAN 트래픽 정보 또는 vRAN 리소스 정보가 전술한 예에 한정되는 것은 아니다.
UPF 패키지 이용 정보는, vRAN 패키지 또는 MEC 패키지로부터 전달된 사용자 평면 데이터의 처리에 대한 정보로서, vRAN 패키지에 연결된 단말/세션의 개수, UPF 트래픽 처리 속도(예를 들어, packet per second)등에 관한 정보를 포함할 수 있다.
UPF 패키지 이용 정보는, 예를 들어, 사용자 평면 데이터의 처리에 이용된 UPF 리소스 정보를 포함할 수 있다.
UPF 리소스 정보는 사용자 평면 데이터 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보로, 예를 들어, UPF 패키지에 할당된 하드웨어의 종류, UPF 패키지에 할당된 하드웨어 코어 중 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 트래픽 처리를 위해 사용되는 클락 사이클 수, 트래픽 처리를 위해 UPF 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 다만, 전술한 예시들은 일 예일 뿐, UPF 패키지 이용 정보 또는 UPF 리소스 정보가 전술한 예에 한정되는 것은 아니다.
MEC 패키지 이용 정보는, 엣지 애플리케이션을 통해 제공되는 서비스에 관한 정보로서, 엣지 애플리케이션의 개수, 엣지 애플리케이션에 연결된 단말의 개수, 엣지 애플리케이션에 대한 응답시간, 서비스의 종류, 서비스를 이용한 시간 및 서비스 이용을 통해 발생된 트래픽 양, 또는 서비스를 이용한 단말의 위치 등에 관한 정보가 포함될 수 있다.
MEC 패키지 이용 정보는, 예를 들어, 엣지 애플리케이션 데이터의 처리에 이용된 MEC 리소스 정보를 포함할 수 있다.
MEC 리소스 정보는 엣지 애플리케이션 데이터 처리에 이용된 하드웨어 자원을 직접적 또는 간접적으로 나타낼 수 있는 정보로, 예를 들어, MEC 패키지에 할당된 하드웨어의 종류, MEC 패키지에 할당된 하드웨어 코어 중 트래픽 처리를 위해 사용된 하드웨어 코어의 비율, 최대 하드웨어 코어 클락 사이클 대비 트래픽 처리를 위해 사용되는 클락 사이클 수, 트래픽 처리를 위해 MEC 패키지에 할당된 메모리 크기 등을 포함할 수 있다. 다만, 전술한 예시들은 일 예일 뿐, MEC 패키지 이용 정보 또는 MEC 리소스 정보가 전술한 예에 한정되는 것은 아니다.
각 패키지들은 패키지 이용 정보를 주기적으로 또는 소정의 이벤트 발생시 컴포넌트 관리 패키지로 전달할 수 있으며, 서버는 패키지 이용 정보에 기초하여 각 패키지들의 하드웨어 컴포넌트 이용 상태를 모니터링 할 수 있다.
또한, 서버는 각 패키지 이용 정보에 포함된 리소스 정보를 통합하여 모든 패키지가 사용하는 하드웨어 컴포넌트들에 대한 하드웨어 이용 정보를 별도로 관리할 수도 있다. 하드웨어 이용 정보는 하드웨어 컴포넌트 각각의 패키지에 대한 할당 상태, 사용 여부, 코어 부하 상태, 코어당 처리 사이클 수 등에 대한 정보를 포함할 수 있다.
단계 S620에서, 서버는 복수의 패키지들 각각의 소프트웨어 패키지 이용 정보에 기초하여 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정할 수 있다.
컴포넌트 관리 SC는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보에 기초하여, 서버에서 소프트웨어 패키지를 실행하는 적어도 하나의 하드웨어 컴포넌트를 결정할 수 있다. 보다 구체적으로, 컴포넌트 관리 SC는 발생될 것으로 예측되는 트래픽의 양, 트래픽의 종류 및 트래픽 처리 요구 성능, 사용자 단말에서 요구되는 서비스의 종류 등에 기초하여 소프트웨어 패키지에서의 SC의 수, 리소스 및 소프트웨어 패키지를 실행하는 하드웨어 컴포넌트의 종류 및 사용량 등을 결정할 수 있다. 이에 대한, 구체적인 설명은 도 8 내지 도 11을 참조하여 후술하도록 한다.
단계 S630에서, 서버는 제 2 소프트웨어 패키지를 생성하고, 제 2 소프트웨어 패키지에 제 1 하드웨어 컴포넌트 세트를 할당할 수 있다.
컴포넌트 관리 패키지는 새로운 하드웨어 컴포넌트를 할당하기 위해, 가상화 마스터로 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리할 수 있는 새로운 소프트웨어 패키지를 생성할 것을 요청한다. 새로운 소프트웨어 패키지의 생성 요청을 획득한 가상화 마스터는 제 1 소프트웨어 패키지에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 제 2 소프트웨어 패키지를 생성할 수 있다.
컴포넌트 관리 패키지는 가상화 마스터로 패키지 생성 요청과 함께, 생성된 소프트웨어 패키지에 하드웨어 컴포넌트를 할당할 것을 요청할 수 있다. 하드웨어 컴포넌트 할당 요청을 획득한 가상화 마스터는 새로 생성된 제 2 소프트웨어 패키지에 단계 620에서 결정된 제 1 하드웨어 컴포넌트 세트를 할당할 수 있다.
단계 S640에서, 서버는 제 1 소프트웨어 패키지에서 동작하는 태스크들을 제 2 소프트웨어 패키지로 이전할 수 있다.
이후, 컴포넌트 관리 패키지는 데이터 경로를 제 1 소프트웨어 패키지에서 제 2 소프트웨어 패키지로 변경하기 위해, O&M 패키지로 데이터 경로 변경 요청을 전달한다. 데이터 경로 변경 요청을 획득한 O&M 패키지는 인터페이스 유닛과 통신하여 서버와 연결된 복수의 기지국들로 데이터 경로 변경 요청을 전달할 수 있다.단계 S650에서, 서버는 제 1 소프트웨어 패키지를 삭제할 수 있다.
제 1 소프트웨어 패키지에서 동작하던 태스크들이 제 2 소프트웨어 패키지로 이전되면, 컴포넌트 관리 패키지는 가상화 마스터로 제 1 소프트웨어 패키지를 삭제할 것을 요청할 수 있다. 제 1 소프트웨어 패키지 삭제 요청을 획득한 가상화 마스터는 제 1 소프트웨어 패키지에 포함되는 SC의 인스턴스들을 스케일-인하여 인스턴스들을 제거함으로써 제 1 소프트웨어 패키지를 삭제할 수 있다. 제 1 소프트웨어 패키지가 삭제되면, 제 1 소프트웨어 패키지를 실행하던 하드웨어 컴포넌트들이 해제(release)된다.
도 7 은 본 개시의 다른 실시예에 따른 서버가 네트워크 기능을 수행하는 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
이하 도 7 에 대한 설명에서, 도 6 에 대한 설명과 중복되는 내용에 대한 자세한 설명은 생략하도록 한다.
단계 710 내지 단계 720에서, 서버는 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하고, 획득한 패키지 이용 정보에 기초하여 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정할 수 있다. 단계 710 내지 단계 720는 단계 610 내지 단계 620과 동일하다.
하드웨어 오프로딩이 결정된 패키지에 새로 할당되어야 할 하드웨어 컴포넌트의 사용량이 소정의 임계값보다 큰 경우, 해당 하드에어 컴포넌트를 확보하기 위한 별도의 과정이 필요하다.
이를 위해, 도 7 에 도시된 실시예는, 서버가 제 1 하드웨어 컴포넌트 세트의 사용량을 반영한 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하는 단계(단계 730) 및 복수의 하드웨어 컴포넌트들 각각의 사용량을 임계값과 비교하는 단계(단계 740)를 더 포함한다. 단계 740의 비교 결과 복수의 하드웨어 컴포넌트들 각각의 사용량이 모두 임계값보다 작다면, 즉 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위하여 추가될 하드웨어 컴포넌트가 유휴 자원이라면 바로 단계 790 내지 단계 799가 수행되며 이는 도 6 의 단계 630 내지 단계 650과 동일하다.
단계 740의 비교 결과 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있다면 단계 750 내지 단계 780 수행된 후 단계 790이 수행된다.
단계 750에서, 서버는 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보에 기초하여 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정할 수 있다.
컴포넌트 관리 SC는 vRAN 패키지 이용 정보, UPF 패키지 이용 정보, MEC 패키지 이용 정보 및 하드웨어 이용 정보에 기초하여, 서버에서 소프트웨어 패키지를 실행하는 하드웨어 컴포넌트 세트를 결정할 수 있다. 이 때, 제3 소프트웨어 패키지에 새로할당될 하드웨어 컴포넌트들의 총 사용량이 각각 임계값 이하가 되도록 결정할 수 있다.
단계 760에서, 서버는 제 4 소프트웨어 패키지를 생성하고, 제 4 소프트웨어 패키지에 제 2 하드웨어 컴포넌트 세트를 할당할 수 있다.
컴포넌트 관리 패키지는 새로운 하드웨어 컴포넌트를 할당하기 위해, 가상화 마스터로 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리할 수 있는 새로운 소프트웨어 패키지를 생성할 것을 요청한다. 새로운 소프트웨어 패키지의 생성 요청을 획득한 가상화 마스터는 제 3 소프트웨어 패키지에 포함되는 SC와 동일한 인스턴스들을 스케일-아웃하여 제 4 소프트웨어 패키지를 생성할 수 있다.
컴포넌트 관리 패키지는 가상화 마스터로 소프트웨어 패키지 생성 요청과 함께, 생성된 소프트웨어 패키지에 하드웨어 컴포넌트를 할당할 것을 요청할 수 있다. 하드웨어 컴포넌트 할당 요청을 획득한 가상화 마스터는 새로 생성된 제 4 소프트웨어 패키지에 단계 750에서 결정된 제 2 하드웨어 컴포넌트 세트를 할당할 수 있다.
단계 770에서, 서버는 제 3 소프트웨어 패키지에서 동작하는 태스크들을 제 4 소프트웨어 패키지로 이전할 수 있다.
이후, 컴포넌트 관리 패키지는 데이터 경로를 제3 소프트웨어 패키지에서 제 4 소프트웨어 패키지로 변경하기 위해, O&M 패키지로 데이터 경로 변경 요청을 전달한다. 데이터 경로 변경 요청을 획득한 O&M 패키지는 인터페이스 유닛과 통신하여 서버와 연결된 복수의 기지국들로 데이터 경로 변경 요청을 전달할 수 있다.
단계 780에서, 서버는 제 3 소프트웨어 패키지를 삭제할 수 있다.
제 3 소프트웨어 패키지에서 동작하던 태스크들이 제 4 소프트웨어 패키지로 이전되면, 컴포넌트 관리 패키지는 가상화 마스터로 제 3 소프트웨어 패키지를 삭제할 것을 요청할 수 있다. 제 3 소프트웨어 패키지 삭제 요청을 획득한 가상화 마스터는 제 3 소프트웨어 패키지에 포함되는 SC의 인스턴스들을 스케일-인하여 인스턴스들을 제거함으로써 제 3 소프트웨어 패키지를 삭제할 수 있다.
제 3 소프트웨어 패키지가 삭제되면, 제 3 소프트웨어 패키지를 실행하던 하드웨어 컴포넌트들이 해제(release)된다. 제 3 소프트웨어 패키지를 실행하던 하드웨어 컴포넌트들이 해제되면 가상화 마스터는 해제된 유휴 자원을 제 2 소프트웨어 패키지에 할당할 수 있다.
단계 790 내지 단계 799는 도 6 의 단계 630 내지 단계 650과 동일하므로 설명을 생략한다.
도 8 은 본 개시의 일 실시예에 따른 서버가 vRAN 패키지 트랙픽량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 8 을 참조하면, 서버(800)는 서버에 포함된 하드웨어(810)를 통해 네트워크 기능을 가상화하는 SC 패키지를 구동시킬 수 있다. 구체적으로, 하드웨어(810)에서는 OS(820)가 구동될 수 있고, OS는 하드웨어(810) 및 가상화 소프트웨어(830)를 관리할 수 있다. 한편, 하드웨어 (810), OS(820) 및 가상화 소프트웨어(830)에 대한 설명은 도 3 을 참조하여 전술한 바와 동일하므로, 이에 대한 설명은 생략하도록 한다. 또한, UPF 패키지(852, 854)의 경우 UPF 패키지(852, 854)를 실행하는 하드웨어 컴포넌트의 변경이 없는 경우를 가정하여 이에 대한 도시 및 설명이 생략되어 있다.
이하에서는, 단말들에 의해 발생될 트래픽 처리 정보를 포함하는 vRAN 패키지 이용 정보 및 MEC 패키지 이용 정보에 기초하여, vRAN 기능 및 MEC 기능 각각을 가상화하는 SC 패키지가 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위해, 도 3 내지 도 5 를 참조하여 전술한 서버의 동작을 구체적으로 기술하도록 한다.
도 8 에 도시된 실시예는, vRAN 패키지(842)가 FPGA(813)에서 실행되고, MEC 패키지(862)가 GPU(814)에서 실행되고 있던 중, 하드웨어 오프로딩이 일어나는 경우를 가정한다.
vRAN 패키지(842)는 기지국(10)에서 발생된 트래픽을 전달받을 수 있다. vRAN 패키지(842)에 포함된 PHY SC, MAC SC 및 RLC SC 각각은 전달된 트래픽에 PHY 레이어 기능, MAC 레이어 기능 및 RLC 레이어 기능을 수행할 수 있다. vRAN 패키지(842)는 트래픽 처리 정보를 포함하는 vRAN 패키지 이용 정보를 컴포넌트 관리 패키지(870)에 전달할 수 있다.
또한, vRAN 패키지(842)에 전달된 트래픽 중 MEC 서비스를 이용하는 애플리케이션 실행으로 인하여 발생된 트래픽은 MEC 패키지(862)로 전달될 수 있다. vRAN 패키지(842)에 전달된 트래픽 중 MEC 서비스를 이용하지 않는 트래픽의 경우는 서버 외부의 다른 서버로 전달될 수 있으며, 본 개시에서는 서버 외부의 다른 서버에서 트래픽을 처리하는 방법에 대해서는 설명을 생략하도록 한다.
MEC 패키지(862)는 vRAN 패키지(842)로부터 전달받은 MEC 서비스에 따른 트래픽을 처리할 수 있다. 또한, MEC 패키지(862)는 MEC 패키지 이용 정보를 컴포넌트 관리 패키지(870)에 제공할 수 있다. MEC 패키지(862)는 복수의 MEC app SC를 포함할 수 있으며, 이에 대한 설명은 도 2를 참조하여 전술한 바와 대응되므로 생략하도록 한다. MEC 패키지(862)는 트래픽 처리 과정에서, 획득한 MEC 서비스의 종류, MEC 서비스를 이용한 시간 및 MEC 서비스 이용을 통해 발생된 트래픽 양 등에 관한 정보를 포함하는 MEC 패키지 이용 정보를 컴포넌트 관리 패키지(870)에 전달할 수 있다. 본 실시예에서, MEC 서비스는 예를 들어, 댁 내에 구비된 IoT 기기들 및 웨어러블 디바이스들에서 제공하는 서비스일 수 있으나, 이는 일 예일 뿐, MEC 서비스가 전술한 예에 한정되는 것은 아니다.
컴포넌트 관리 패키지(870)는 IF(872) 및 컴포넌트 관리 SC(874)를 포함할 수 있다. 컴포넌트 관리 SC(874)는 IF(872)를 통해 수신된 vRAN 패키지 이용 정보 및 MEC 패키지 이용 정보를 기초로, 기지국(10)에 액세스하는 단말들에 의해 발생될 트래픽 및 MEC 서비스 이용량에 관한 정보를 획득할 수 있다.
이 때, vRAN 패키지(842) 및 MEC 패키지(862)는 vRAN 패키지 이용 정보 및 MEC 패키지 이용 정보를 주기적으로 컴포넌트 관리 패키지(870)로 전달할 수 있다.
일 실시예에 따르면, vRAN 패키지(842)는 vRAN 패키지(842)를 실행할 수 있는 하드웨어 컴포넌트들의 성능에 따른 우선순위 정보를 컴포넌트 관리 패키지(870)로 전달할 수 있다. 예를 들어, vRAN 패키지(842)는 CPU(811), FPGA(813), 또는 GPU(814)에서 실행될 수 있으며, GPU(814)에서 실행될 때 가장 좋은 성능을 나타내고, FPGA(813)에서 실행될 때 두번째 성능을 나타내고, CPU(811)에서 실행될 때 세번째 성능을 나타낼 수 있다. 또는, vRAN 패키지(842)는 CPU(811)와 GPU(814)에서 함께 실행되는 경우 가장 좋은 성능을 나타내고, GPU(814)와 FPGA(813)에서 함께 실행되는 경우 두번째 성능을 나타내고, CPU(811)와 FPGA(813)에서 함께 실행되는 경우 세번째 성능을 나타낼 수 있다.
또한, MEC 패키지(862)는 MEC 패키지(862)를 실행할 수 있는 하드웨어 컴포넌트들의 성능에 대한 우선순위 정보를 컴포넌트 관리 패키지(870)로 전달할 수 있다. 예를 들어, MEC 패키지(862)는 CPU(811) 및 GPU(814)에서 실행될 수 있으며, GPU(814)에서 실행될 때 가장 좋은 성능을 나타내고, CPU(811)에서 실행될 때 두번째 성능을 나타낼 수 있다. 또는, MEC 패키지(862)는 CPU(811)와 GPU(814)에서 함께 실행되는 경우 가장 좋은 성능을 나타내고, GPU(814)에서 실행되는 경우 두번째 성능을 나타내고, CPU(811)에서 실행되는 경우 세번째 성능을 나타낼 수 있다.
도 8에서는, 설명의 편의를 위해 vRAN 패키지(842)에만 FPGA(813)가 할당(vRAN 패키지(842)가 FPGA(813)를 모두 사용)되고 MEC 패키지(862)에만 GPU(814)가 할당(MEG 패키지(862)가 GPU(814)를 모두 사용)되었다가 vRAN 패키지에 새로운 하드웨어의 할당이 필요함에 따라 vRAN 패키지(842)에 할당된 하드웨어 컴포넌트는 FPGA(813)에서 GPU(814)로, MEC 패키지(862)에 할당된 하드웨어 컴포넌트는 GPU(814)에서 CPU(811)로 하드웨어 오프로딩이 일어나는 경우를 가정한다.
그러나, 본 발명의 범위가 이로 제한되는 것은 아니며, 본 개시의 일 실시예에 따른 서버는 전술한 바와 같이 하나의 소프트웨어 패키지에 하드웨어 컴포넌트 세트를 할당할 수 있으며, 하드웨어 컴포넌트 세트는 복수의 하드웨어 컴포넌트 각각의 사용여부 및 사용량에 따라 결정될 수 있다.
예를 들어, 유동인구가 많은 지역에서 특정 시간에 기지국(10)에 접속중인 사용자 단말(UE, user equipment)이 늘어나는 경우를 가정한다.
이러한 경우 사용자 단말의 증가에 따라 트래픽이 증가하게 되므로, RAN 계층의 물리 자원 사용이 증가하게 된다. 물리 자원 사용의 증가는 PRB의 사용율에 기초하여 판단할 수 있다. 또한, MIMO(multi-input multi-output) 시스템은 트래픽이 증가하는 경우 더 많은 레이어를 지원하도록, 즉 더 많은 송수신 안테나를 사용하도록 구성될 수 있다. 따라서, 이와 같은 경우 트래픽 처리를 위해 vRAN 패키지(842)에 부하가 발생할 것으로 판단할 수 있다.
또한, 유동인구가 많은 지역이므로 GPU를 사용하는 고성능 MEC 서비스, 예를 들어, AR 또는 VR 서비스 등의 고성능 서비스의 사용율은 높지 않을 것으로 판단할 수 있다.
일 실시예에 따르면, 컴포넌트 관리 패키지(870)는 시간에 따른 vRAN 패키지(842)의 성능 데이터의 추이(trend)를 계산하고, 부하를 예측할 수 있다.
예를 들어, 컴포넌트 관리 패키지(870)는 회귀(regression) 모델을 이용하여 연결된 사용자 단말 수의 증감 추이를 판단할 수 있다.
다른 실시예에 따르면, 컴포넌트 관리 패키지(870)는 레이어 수 및 물리 자원 블록(physical resource block, PRB) 사용에 따른 업링크/다운링크 채널 처리 지연 시간(latency) 변화를 추적할 수 있으며, 업링크/다운링크 채널 처리 지연 시간이 일정 임계값(예를 들어, 0.5ms)을 초과하면 더 높은 성능을 제공하는 하드웨어 컴포넌트를 사용하도록 결정할 수 있다.
컴포넌트 관리 패키지(870)는 룰 기반(rule-based) 또는 AI(artificial intelligence)/ML(machine learning) 기반기술을 이용하여 vRAN 패키지(842)부하를 예측할 수도 있다. 예를 들어, 업링크 레이어 수에 따라 vRAN 패키지 (842) 부하를 예측 및 결정하는 경우 업링크 레이어 수가 2개 이하이면 CPU에서 실행하고, 업링크 레이어 수가 4개 이하이면 FPGA에서 vRAN 패키지(842)를 실행하고, 업링크 레이어 수가 4개를 초과하는 경우 GPU에서 vRAN 패키지(842)를 실행하도록 결정할 수 있다.
또한, 컴포넌트 관리 패키지(870)는 시간에 따른 MEC 패키지(862)의 성능 데이터의 추이(trend)를 계산할 수 있다. 예를 들어, 컴포넌트 관리 패키지(870)는 MEC 패키지(862)에 연결된 사용자 단말이 MEC 서비스를 연결하는 빈도수(request per second)를 추적할 수 있고, MEC 서비스 연결 빈도수가 일정 임계값(예를 들어, 초당 1번의 요청)보다 낮은 경우 MEC 패키지(862)는 낮은 성능의 하드웨어 컴포넌트에서 실행되어도 괜찮다고 판단할 수 있다.
예를 들어, 컴포넌트 관리 SC(872)는 요일 별로 각 시간 대에 기지국(10)에 접속하는 단말의 수 및 접속한 각 단말이 이용하는 애플리케이션의 종류를 기초로, 도 8 에 도시된 바와 같이, 매주 월요일 t1-t2 시간 사이에는 스마트폰 사용 유저의 증가로 트래픽량이 임계값 A 이상 증가하고, MEC 서비스 이용량은 트래픽량의 X% 미만으로 발생함을 예측할 수 있다.
컴포넌트 관리 SC(872)는 트래픽량이 임계값 A 이상으로 증가할 것으로 예측됨에 따라, 트래픽 처리 속도를 높이기 위해, CPU(811)에서 실행되던 vRAN 패키지(842)가 GPU(814)에서 실행되도록 하드웨어 오프로딩을 수행할 것을 결정할 수 있다. GPU(814)에는 트래픽 처리를 위해, API에 미리 셋팅된 함수가 저장되어 있어, 이를 기초로 트래픽을 보다 빠르게 처리할 수 있다. 이에 따라, 컴포넌트 관리 SC (872)는 vRAN 패키지(842)가 GPU(814)에서 실행될 수 있도록 vRAN 패키지(842)를 구성하는 명령어를 제어할 수 있다.
컴포넌트 관리 SC(872)는 GPU(814)에서 실행중인 패키지가 있는지 확인하고, GPU(814)에서 MEC 패키지(862)를 실행중이므로 MEC 패키지(862)에 할당할 새로운 하드웨어 컴포넌트를 결정한다.
MEC 서비스 이용량이 트래픽량의 X% 미만으로 발생할 것으로 예측됨에 따라, 컴포넌트 관리 SC(872)는 MEC 패키지(842)를 실행하던 GPU(814) 자원을 vRAN 패키지(844)의 실행을 위해 제공할 수 있도록, GPU(814)에서 실행되던 MEC 패키지(862)가 CPU(811)에서 실행되도록 하드웨어 오프로딩을 수행할 것을 결정할 수 있다.
컴포넌트 관리 SC(872)는 MEC 패키지(862)가 GPU(814)를 해제(release)할 수 있도록, MEC 패키지(862)와 동일한 기능을 수행하는 새로운 MEC 패키지(864)를 생성한다. MEC 패키지(864)가 생성되면 컴포넌트 관리 SC(872)는 새로운 MEC 패키지(864)에 CPU(811)를 할당한 후, 인터페이스 유닛을 통해 트래픽 경로를 기존의 MEC 패키지(862)에서 새로운 MEC 패키지(864)로 변경할 것을 요청하고, 기존의 MEC 패키지(862)를 삭제한다.
컴포넌트 관리 SC(872)는, MEC 패키지(862)로부터 해제된 GPU(814)를 할당하기 위해, 새로운 vRAN 패키지(844)를 생성하고 새로 생성된 vRAN 패키지(844)에 GPU(814)를 할당한다. 이후 컴포넌트 관리 SC(872)는 인터페이스 유닛(50)에 트래픽 경로를 기존의 vRAN 패키지(842)에서 새로운 vRAN 패키지(844)로 변경할 것을 요청하고, 기존의 vRAN 패키지(842)를 삭제하여 하드웨어 오프로딩을 완료한다.
도 9 는 본 개시의 다른 실시예에 따른 서버가 트래픽량 및 MEC 서비스 이용량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 9 를 참조하면, 서버(900)는 서버에 포함된 하드웨어(910)를 통해 네트워크 기능을 가상화하는 SC 패키지를 구동시킬 수 있다. 구체적으로, 하드웨어(910)에서는 OS(920)가 구동될 수 있고, OS(920)는 하드웨어(910) 및 가상화 소프트웨어(930)를 관리할 수 있다. 한편, 하드웨어 (910), OS(920) 및 가상화 소프트웨어(930)에 대한 설명은 도 3 을 참조하여 전술한 바와 동일하므로, 이에 대한 설명은 생략하도록 한다. 도 9 에서, 도 8 과 중복되는 부분에 대해서는 상세한 설명을 생략한다.
도 9 역시 도 8과 마찬가지로, 하나의 소프트웨어 패키지에 하나의 하드웨어 컴포넌트가 할당되고 해당 소프트웨어 패키지에 의해 전유되는 경우를 가정하였지만, 본 개시의 일 실시예에 따른 서버는 전술한 바와 같이 하나의 소프트웨어 패키지에 하드웨어 컴포넌트 세트를 할당할 수 있으며, 하드웨어 컴포넌트 세트는 복수의 하드웨어 컴포넌트 각각의 사용여부 및 사용량에 따라 결정될 수 있다.
도 9 에 도시된 실시예는, 특정 시간에 특정 장소에서 다수를 상대로 MEC 서비스를 제공하는 경우, 예를 들어 대형 경기장에서 관객들을 대상으로 실시간 AR(augmented reality)/VR(virthal realith) 서비스 이벤트를 진행하는 경우를 가정한다.
컴포넌트 관리 패키지(970)는 MEC 패키지(962)의 패키지 이용 정보, vRAN 패키지(942)의 패키지 이용 정보, 및 UPF 패키지(952 내지 954)의 패키지 이용 정보를 모니터링한다.
MEC 패키지(962)는 해당 시간에 AR/VR 서비스 제공을 위한 렌더링 및 인코딩 처리로 인한 부하가 발생되어, MEC 패키지(962)에서 제공하는 AR/VR MEC 서비스의 초당 통신 패킷 수(packet per second)가 증가하고, MEC 패키지(962)에 할당되어 있는 하드웨어 컴포넌트(예를 들어 CPU(911))의 사용량이 급격히 증가한다. vRAN패키지(942)는 해당 시간에 관객들에게 AR/VR 서비스 제공을 위한 데이터 트래픽 처리로 인한 부하가 발생되어, 물리 자원 블록 사용량 및 셀 스루풋(throughput)이 급격히 증가하게 된다. 해당 시간에 MEC 서비스를 위한 트래픽 증가가 발생하므로 UPF 패키지(952 내지 954) 역시 사용자 평면 데이터 처리량이 증가하게 된다.
컴포넌트 관리 패키지(970)는 MEC 패키지 이용 정보를 모니터링 한 결과 초당 통신 패킷 수(packet per second) 및 현재 사용중인 하드웨어 컴포넌트 사용량이 소정의 임계값 이상인 경우 현재보다 더 높은 성능을 제공하는 하드웨어 컴포넌트에서 MEC 패키지를 실행하도록 결정할 수 있다.
또한, 컴포넌트 관리 패키지(970)는 vRAN 패키지 이용 정보를 모니터링 한 결과 물리 자원 블록 사용량 및 셀 스루풋이 소정의 임계값 이상인 경우 현재보다 더 높은 성능을 제공하는 하드웨어 컴포넌트에서 vRAN 패키지를 실행하도록 결정할 수 있다.
컴포넌트 관리 패키지(970)는 사용 가능한 하드웨어 컴포넌트 중 vRAN 패키지와 MEC 패키지가 모두 실행될 수 있는 하드웨어 컴포넌트의 조합을 선택하여 vRAN 패키지와 MEC 패키지에 할당할 수 있다.
예를 들어, vRAN 패키지는 성능 우선순위에 따라 {GPU, FPGA}에서 실행 가능하고, MEC 패키지는 {GPU}에서 실행 가능한 경우, 컴포넌트 관리 패키지(970)는 vRAN 패키지를 FPGA(913)에서 실행하고, MEC 패키지를 GPU(914)에서 실행하도록 결정할 수 있다.
만일, vRAN 패키지(942)가 FPGA(913)에서 실행되고 있었다면, 컴포넌트 관리 패키지(970)는 vRAN 패키지(942)에 할당된 하드웨어 컴포넌트는 유지하고, MEC 패키지(962)에 할당된 하드웨어 컴포넌트를 CPU(911)에서 GPU(914)로 오프로딩한다.
만일, vRAN 패키지(942)가 GPU(914)에서 실행되고 있었다면 컴포넌트 관리 패키지(970)는 vRAN 패키지(942)에 할당된 하드웨어 컴포넌트를 GPU(914)에서 FPGA(913)로 오프로딩하고, MEC 패키지(962)에 할당된 하드웨어 컴포넌트를 CPU(911)에서 GPU(914)로 오프로딩한다.
vRAN 패키지(942) 및 MEC 패키지(962)에 하드웨어 컴포넌트를 오프로딩하는 방법은 전술한 바 있으므로 여기에서는 상세할 설명은 생략하도록 한다.
컴포넌트 관리 패키지(970)는 UPF 패키지 이용 정보를 모니터링 한 결과 사용자 평면 데이터 처리량이 소정의 임계값 이상이면, UPF 패키지들(952 내지 954) 처리 성능을 확보하기 위해 기존에 UPF 패키지들(952 내지 954)에 할당된 하드웨어 컴포넌트인 CPU(911)에 더 많은 코어를 할당하도록 결정할 수 있다.
도 10 은 본 개시의 또 다른 실시예에 따른 서버가 MEC 서비스 부하의 증가가 예상됨에 따라 네트워크 기능을 가상화하는 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 10 을 참조하면, 서버(1000)는 서버에 포함된 하드웨어(1010)를 통해 네트워크 기능을 가상화하는 SC 패키지를 구동시킬 수 있다. 구체적으로, 하드웨어(1010)에서는 OS(1020)가 구동될 수 있고, OS는 하드웨어(1010) 및 가상화 소프트웨어(1030)를 관리할 수 있다. 한편, 하드웨어 (1010), OS(1020) 및 가상화 소프트웨어(1030)에 대한 설명은 도 3 을 참조하여 전술한 바와 동일하므로, 이에 대한 설명은 생략하도록 한다. 또한, UPF 패키지(1052, 1054)의 경우 UPF 패키지(1052, 1054)를 실행하는 하드웨어 컴포넌트의 변경이 없는 경우를 가정하여 이에 대한 도시 및 설명이 생략되어 있다.
도 10 에서, 도 8 또는 도 9 와 중복되는 부분에 대해서는 상세한 설명을 생략한다.
도 10 역시 도 8과 마찬가지로, 하나의 소프트웨어 패키지에 하나의 하드웨어 컴포넌트가 할당되고 해당 소프트웨어 패키지에 의해 전유되는 경우를 가정하였지만, 본 개시의 일 실시예에 따른 서버는 전술한 바와 같이 하나의 소프트웨어 패키지에 하드웨어 컴포넌트 세트를 할당할 수 있으며, 하드웨어 컴포넌트 세트는 복수의 하드웨어 컴포넌트 각각의 사용여부 및 사용량에 따라 결정될 수 있다.
도 10 에 도시된 실시예는, MEC 패키지의 부하가 증가할 것으로 예상되는 경우, 예를 들어 도로에 V2X(vehicle to everything) 기반의 자율주행 차량이 증가하는 경우를 가정한다.
V2X 기반의 자율주행 차량들은 협력 센싱(cooperative sensing) 서비스를 이용한다. 협력 센싱 서비스는 주변 차량이 센싱한 데이터를 병합하여 전방 사고 감지 및 알림 등을 수행하는 서비스를 의미한다.
이와 같은 자율주행 차량과 관련된 서비스의 경우, 서비스 응답 시간이 지연되면 안전성에 큰 악영향을 미칠 수 있으므로 vRAN, UPF, MEC가 하나의 서버에서 동작하는 것이 바람직하다.
협력 센싱 서비스를 이용하는 자율주행 차량들은 차량에 부착된 모든 센서에서 획득한 센싱 데이터를 주변의 MEC 서버로 전송한다. 또한, 도로의 모든 차량 중 일부 대표 차량을 선정하여 차량에 부착된 카메라로 촬영된 영상을 주변 MEC 서버로 전송한다. 촬영된 영상은 전방으로 넓은 영역을 촬영하기 때문에 모든 차량이 촬영된 영상을 서버로 전송할 필요는 없다.
협력 센싱 서비스는 위한 센서 데이터의 크기가 작고, 촬영된 영상을 업로드하는 차량은 소수이므로 네트워크 트래픽은 많이 발생하지 않으나, 수신된 센서 데이터와 영상을 기반으로 AI/ML 추론하기 위한 오버헤드가 발생하는 특징을 갖는다.
일반적인 경우, 도로에 자율주행 차량이 많이 없는 경우라면, vRAN 패키지(1042) 및 MEC 패키지(1062)를 하나의 GPU(1014)에서 실행할 수 있다. vRAN 패키지(1042) 및 MEC 패키지(1062)를 하나의 GPU(1014)에서 실행하는 경우, 하나의 물리 GPU(1014)를 여러 개의 vGPU(virtual GPU)로 나누어 사용할 수 있으며, 예를 들어 멀티-인스턴스 GPU 기술 등으로 구현 가능하다.
컴포넌트 관리 패키지(1070)는 MEC 패키지(1062)의 패키지 이용 정보, 및 vRAN 패키지(1042)의 패키지 이용 정보를 모니터링한다.
MEC 패키지 이용 정보를 모니터링 한 결과 도로에 자율주행 차량이 증가하여 vRAN 패키지(1042)와 비교하여 MEC 패키지(1062)에 부하가 발생할 것이 예상되는 경우, 즉 차량 센싱 데이터의 증가로 AI/ML 분석량이 증가하여 현재 할당된 하드웨어(예를 들어, GPU(1014))의 사용율이 급격히 증가하여 소정의 임계치보다 커지는 경우, 컴포넌트 관리 패키지(970)는 하나의 물리 GPU(1014)에 MEC 패키지(1062)만을 할당하여 AI/ML 추론을 수행하도록 결정할 수 있다.
또한, 이와 같은 경우 연결된 단말(예를 들어, 차량)의 개수가 증가하더라도 서비스 제공을 위한 트래픽량은 급격히 증가하지 않으므로 vRAN 패키지 이용 정보를 모니터링 한 결과 물리 자원 블록 사용은 소정의 임계값 이하로 측정될 것이므로, 컴포넌트 관리 패키지(1070)는 vRAN 패키지(1042)에 할당된 하드웨어 컴포넌트를 GPU(1014)에서 FPGA(1013)로 변경하도록 하드웨어 오프로딩을 결정할 수 있다.
vRAN 패키지(1042)에 하드웨어 컴포넌트를 오프로딩하는 방법은 전술한 바 있으므로 여기에서는 상세한 설명은 생략하도록 한다.
도 11 은 일 실시예에 따라 소프트웨어 패키지가 실행되는 하드웨어 컴포넌트를 결정하는데 이용되는 AI 모델을 설명하기 위한 도면이다.
도 11 을 참조하면, AI 모델(1100, 예를 들어 DNN)에 입력 데이터로, 이벤트 정보, 패키지 이용 정보 및 하드웨어 컴포넌트 우선순위 정보 가 적용될 수 있다. 도 3을 참조하여 전술한 서버는 전술한 입력 데이터가 AI 모델(1100)에 적용된 결과, 획득되는 출력 데이터와 평가 데이터를 비교 결과에 기초하여, AI 모델(1100)을 훈련시킬 수 있다.
예를 들어, 서버는 출력 데이터와 평가 데이터의 차이가 기 설정된 임계값 미만이 될 때까지 다양한 입력 데이터를 AI 모델(1100)에 적용할 수 있다. 다른 예에 따라, 서버는 출력 데이터와 평가 데이터의 차이 값을 입력 데이터와 함께 AI 모델(1100)에 적용함으로써, AI 모델(1100)을 훈련시킬 수 있다. 훈련에 의해, AI 모델(1100)의 신경망을 구성하는 레이어의 파라미터의 값은 갱신될 수 있다. 다만, 이는 일 예일 뿐, AI 모델의 훈련 방법이 전술한 예에 한정되는 것은 아니다.
이벤트 정보는, 주기적으로 발생하는 이벤트(예를 들어, 특정 장소의 특정 시간대에 유동인구 증가), 일회성 이벤트(예를 들어, 특정 장소에서 특정 시간대에 AR/VR 서비스 제공), 또는 돌발성 이벤트(예를 들어, 교통 체증 발생으로 인한 자율주행 차량의 증가)에 대한 정보등을 포함할 수 있다.
일 실시예에 따른 서버는 훈련이 완료된 AI 모델(1100)에 새롭게 획득한 이벤트 정보, 패키지 이용 정보 및 HC 우선순위 정보를 입력하여, 각 패키지별 HC 할당에 관한 정보를 획득할 수 있다.
도 12 는 본 개시의 일 실시예에 따른 서버의 블록도이다.
본 개시에 따른 서버는 도 12에 도시되는 바와 같이, 프로세서(1210), 통신부(1220), 메모리(1230), 및 인터페이스부(1240)를 포함할 수 있다.
다만 데이터 전송 장치의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 데이터 전송 장치는 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 프로세서(1210), 통신부(1220), 메모리(1230), 및 인터페이스부(1240)가 하나의 칩(Chip) 형태로 구현될 수도 있다. 도 12 의 장치(1200)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 12 에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
프로세서(1210)는 도 1 내지 도 11에서 기술한, 데이터(예를 들어, 패킷)를 전송하기 위한 일련의 프로세스를 제어할 수 있다. 보다 구체적으로, 프로세서(1210)는 네트워크 기능을 가상화하는 소프트웨어 컴포넌트를 포함하는 패키지들의 하드웨어 오프로딩을 결정하고, 수행할 수 있다. 프로세서(1210)는 복수 개일 수 있으며, 프로세서(1210)는 메모리(1230)에 저장된 복수의 인스트럭션들(또는, 프로그램)을 실행함으로써 전술한 재전송 동작을 수행할 수 있다.
일 실시예에 따르면, 프로세서(1210)는 도 1 내지 도 11에 도시된, 서버가 동작할 수 있는 일련의 과정을 제어할 수 있다. 예를 들어, 서버는 복수의 인스트럭션들(또는, 프로그램)로서 구현될 수 있다. 프로세서(1210)는 복수의 인스트럭션(또는, 프로그램)을 실행함으로써 서버의 동작들을 수행할 수 있다.
또한 프로세서(1210)는 데이터 전송 장치(1200)를 제어하기 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(1210)는 장치(1200) 내의 메모리(1230)에 저장된 프로그램들을 실행함으로써, 장치(1200)를 전반적으로 제어한다. 프로세서(1210)는 장치(1200) 내에 구비된 CPU(Central Processing Unit), GPU(Graphics Processing Unit), AP(Application Processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
통신부(1220)는, 유무선 통신모듈을 이용하여 다른 장치와 연결하고, 데이터를 송수신할 수 있다.
통신부(1220)는 외부 장치(예를 들어, 단말), 네트워크(예를 들어, 코어 네트워크), 또는 다른 데이터 전송 장치(예를 들어, 셀그룹)와 신호를 송수신할 수 있다. 통신부(1220)가 송수신하는 신호는 제어 정보와, 데이터를 포함할 수 있다. 통신부(1220)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 다만, 이는 통신부(1220)의 일 실시예일뿐이며, 통신부(1111)의 구성요소가 RF 송신기 및 RF 수신기에 한정되는 것은 아니다.
또한, 통신부(1220)는 무선 채널을 통해 신호를 수신하여 프로세서(1210)로 출력하고, 프로세서(1210)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
일 실시예에 따르면, 통신부(1220)는 프로세서(1210)의 제어에 따라, 외부 장치, 네트워크, 또는 다른 데이터 전송 장치와 데이터를 송수신할 수 있다.
메모리(1230)는 데이터 전송 장치(1200) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로, 예를 들어 메모리(1230)는 통신부(1220)에서 수신한 데이터들, 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다.
일 실시예에 따르면, 메모리(1230)는 데이터 전송 장치(1200)의 동작에 필요한 복수의 인스트럭션들(또는, 프로그램) 및 데이터를 저장할 수 있다. 또한, 메모리(1230)는 데이터 전송 장치(1200)가 송수신하는 신호에 포함된 제어 정보 또는 데이터를 저장할 수 있다. 메모리(1230)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(1230)는 복수 개일 수 있다.
인터페이스(1240)부는 데이터 전송 장치(1200) 내부 각 구성 사이의 상호 동작을 위한 데이터 및 명령들을 송수신할 수 있다.
블록도의 각 구성요소는 실제 구현되는 기기의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 발명에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편, 본 명세서와 도면에 개시된 본 개시의 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 즉 본 개시의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 개시의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다. 예컨대, 본 개시의 일 실시예와 다른 일 실시예의 일부분들이 서로 조합되어 기지국과 단말이 운용될 수 있다. 또한 FDD LTE 시스템, TDD LTE 시스템, 5G 혹은 NR 시스템 등 다양한 시스템에서 상기 실시예의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능할 것이다.
본 개시는 다양한 실시예로 설명되었지만, 다양한 변경 및 수정이 당업자에게 제안될 수 있다. 본 개시내용은 첨부된 청구범위 내에 속하는 그러한 변경 및 수정을 포함하도록 의도되었다.
Claims (15)
- 무선 통신 시스템에서, 서버가 소프트웨어 패키지를 실행하는 방법에 있어서,상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하는 단계;상기 패키지 이용 정보에 기초하여, 상기 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하는 단계;제 2 소프트웨어 패키지를 생성하고, 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하는 단계;상기 제 1 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 2 소프트웨어 패키지로 이전하는 단계; 및상기 제 1 소프트웨어 패키지를 삭제하는 단계;를 포함하고,상기 제 1 하드웨어 컴포넌트 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 상기 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정되는, 방법.
- 제 1 항에 있어서, 상기 방법은,상기 제 2 소프트웨어 패키지를 생성하기 전에, 상기 제 1 하드웨어 컴포넌트 세트의 사용량이 반영된 상기 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하는 단계;를 더 포함하고,상기 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있는 경우,상기 패키지 이용 정보에 기초하여 상기 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정하는 단계;제 4 소프트웨어 패키지를 생성하고, 상기 제 4 소프트웨어 패키지에 상기 제 2 하드웨어 컴포넌트 세트를 할당하는 단계;상기 제 3 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 4 소프트웨어 패키지로 이전하는 단계; 및상기 제 3 소프트웨어 패키지를 삭제하는 단계;를 포함하는, 방법.
- 제 1 항에 있어서, 상기 제 1 하드웨어 컴포넌트 세트는,특정 시점에 상기 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 각각을 기 설정된 임계값들과 비교하여 결정되는, 방법.
- 제 1 항에 있어서, 상기 제 2 소프트웨어 패키지에 상기 제 1하드웨어 컴포넌트 세트를 할당하는 단계는,특정 시점에서, 상기 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 중 적어도 하나가 임계값을 초과할 것으로 식별됨에 따라, 상기 특정 시점 이전에 수행되는, 방법.
- 제 1 항에 있어서, 상기 방법은,상기 복수의 기지국에 대해 예정된, 트래픽 또는 MEC 서비스 이용 변화를 발생시키는 이벤트 정보를 획득하는 단계;를 더 포함하고,상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보는, 상기 복수의 기지국에서, 이벤트 별로 이전에 발생된 트래픽 양 및 MEC 서비스 이용량을 포함하고,상기 제 1 하드웨어 컴포넌트 세트는, 상기 이벤트 별로 예상되는 트래픽 양 및 MEC 서비스 이용량을 기초로 상기 획득된 이벤트 정보에 따라 상기 복수의 기지국에서 발생될 트래픽량 및 MEC 서비스 이용량에 기초하여 결정되는, 방법.
- 제 1 항에 있어서, 상기 복수의 소프트웨어 패키지들 각각은,vRAN(virtualized radio access network) 패키지, MEC(mobile edge computing) 패키지, 또는 UPF(user plane function) 패키지 중 적어도 하나를 포함하는, 방법.
- 제 1 항에 있어서, 상기 복수의 하드웨어 컴포넌트들은,CPU(central processing unit), GPU(graphics processing unit), FPGA(field programmable gate array) 및 NIC(network interface controller) 중 적어도 하나를 포함하는, 방법.
- 무선 통신 시스템에서 소프트웨어 패키지를 실행하는 서버에 있어서,통신부;복수의 인스트럭션들을 저장하는 메모리; 및상기 복수의 인스트럭션들을 실행하는 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하고,상기 패키지 이용 정보에 기초하여, 상기 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하고,제 2 소프트웨어 패키지를 생성하고 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하고,상기 제 1 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 2 소프트웨어 패키지로 이전하고,상기 제 1 소프트웨어 패키지를 삭제하며,상기 제 1 하드웨어 컴포넌트들의 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 상기 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정되는, 서버.
- 제 8 항에 있어서, 상기 적어도 하나의 프로세서는,상기 제 2 소프트웨어 패키지를 생성하기 전에, 상기 제 1 하드웨어 컴포넌트 세트의 사용량이 반영된 상기 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하고,상기 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있는 경우,상기 패키지 이용 정보에 기초하여 상기 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정하고,제 4 소프트웨어 패키지를 생성하고 상기 제 4 소프트웨어 패키지에 상기 제 2 하드웨어 컴포넌트 세트를 할당하고,상기 제 3 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 4 소프트웨어 패키지로 이전하고,상기 제 3 소프트웨어 패키지를 삭제하는, 서버.
- 제 8 항에 있어서, 상기 적어도 하나의 프로세서는특정 시점에 상기 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 각각을 기 설정된 임계값들과 비교하여 상기 제 1 하드웨어 컴포넌트 세트를 결정하는, 서버.
- 제 8 항에 있어서, 상기 적어도 하나의 프로세서는,특정 시점에 상기 단말들에 의해 발생될 트래픽량 및 MEC 서비스 이용량 중 적어도 하나가 임계값을 초과할 것으로 식별됨에 따라, 상기 특정 시점 이전에 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하는, 서버.
- 제 8 항에 있어서,상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보는, 상기 복수의 기지국에서, 이벤트 별로 이전에 발생된 트래픽 양 및 MEC 서비스 이용량을 포함하고,상기 적어도 하나의 프로세서는,상기 복수의 기지국에 대해 예정된, 트래픽 또는 MEC 서비스 이용 변화를 발생시키는 이벤트 정보를 획득하고,상기 식별된 이벤트 별로 예상되는 트래픽 양 및 MEC 서비스 이용량을 기초로 상기 획득된 이벤트 정보에 따라 상기 복수의 기지국에서 발생될 트래픽량 및 MEC 서비스 이용량에 기초하여 상기 제 1 하드웨어 컴포넌트 세트를 결정하는, 서버.
- 제 8 항에 있어서, 상기 복수의 소프트웨어 패키지들 각각은,vRAN(virtualized radio access network) 패키지, MEC(mobile edge computing) 패키지, 또는 UPF(user plane function) 패키지 중 적어도 하나를 포함하는, 서버.
- 제 8 항에 있어서, 상기 복수의 하드웨어 컴포넌트들은,CPU(central processing unit), GPU(graphics processing unit), FPGA(field programmable gate array) 및 NIC(network interface controller) 중 적어도 하나를 포함하는, 서버.
- 제 1 항 에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP21872891.3A EP4187879A4 (en) | 2020-09-24 | 2021-09-23 | METHOD AND APPARATUS FOR OFFLOADING HARDWARE TO A SOFTWARE PACKAGE |
| US17/506,429 US11695626B2 (en) | 2020-09-24 | 2021-10-20 | Method and apparatus for offloading hardware to software package |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2020-0123995 | 2020-09-24 | ||
| KR1020200123995A KR20220040816A (ko) | 2020-09-24 | 2020-09-24 | 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/506,429 Continuation US11695626B2 (en) | 2020-09-24 | 2021-10-20 | Method and apparatus for offloading hardware to software package |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022065863A1 true WO2022065863A1 (ko) | 2022-03-31 |
Family
ID=80845754
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2021/012931 Ceased WO2022065863A1 (ko) | 2020-09-24 | 2021-09-23 | 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20220040816A (ko) |
| WO (1) | WO2022065863A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060058940A1 (en) * | 2004-09-13 | 2006-03-16 | Masatoshi Kumagai | Traffic information prediction system |
| US20160212017A1 (en) * | 2015-01-20 | 2016-07-21 | Huawei Technologies Co., Ltd. | Systems and Methods for SDT to Interwork with NFV and SDN |
| KR20180022500A (ko) * | 2016-08-24 | 2018-03-06 | 주식회사 포딕스시스템 | 트리플 디코더 및 디코딩 처리방법 |
| US20180359617A1 (en) * | 2015-11-27 | 2018-12-13 | Datang Mobile Communications Equipment Co., Ltd. | Charging method and device |
| WO2019241171A1 (en) * | 2018-06-14 | 2019-12-19 | Rescale, Inc. | Integrated multi-provider compute platform |
-
2020
- 2020-09-24 KR KR1020200123995A patent/KR20220040816A/ko active Pending
-
2021
- 2021-09-23 WO PCT/KR2021/012931 patent/WO2022065863A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060058940A1 (en) * | 2004-09-13 | 2006-03-16 | Masatoshi Kumagai | Traffic information prediction system |
| US20160212017A1 (en) * | 2015-01-20 | 2016-07-21 | Huawei Technologies Co., Ltd. | Systems and Methods for SDT to Interwork with NFV and SDN |
| US20180359617A1 (en) * | 2015-11-27 | 2018-12-13 | Datang Mobile Communications Equipment Co., Ltd. | Charging method and device |
| KR20180022500A (ko) * | 2016-08-24 | 2018-03-06 | 주식회사 포딕스시스템 | 트리플 디코더 및 디코딩 처리방법 |
| WO2019241171A1 (en) * | 2018-06-14 | 2019-12-19 | Rescale, Inc. | Integrated multi-provider compute platform |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220040816A (ko) | 2022-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024122867A1 (en) | Method and apparatus for implementation of ai/ml in a 5g network | |
| WO2020045948A1 (en) | Method and apparatus for performing dual connectivity in heterogeneous network | |
| WO2018174483A1 (en) | Method and apparatus for supporting discontinuous reception mode of connected mode in mobile communication system | |
| WO2018012904A1 (en) | Access control method and apparatus for use in mobile communication | |
| WO2020036454A1 (ko) | 무선 통신 시스템에서 데이터를 송수신하는 방법 및 장치 | |
| WO2020076016A1 (ko) | 이동통신 시스템에서 단말, 기지국 및 그 동작 방법 | |
| WO2020060207A1 (ko) | 무선 통신 시스템에서 데이터를 송수신하는 방법 및 장치 | |
| WO2019070100A1 (ko) | 네트워크 슬라이싱을 지원하는 무선 통신 시스템에서 정보를 송수신하는 방법 및 이를 위한 장치 | |
| WO2019199140A1 (ko) | 차세대 이동 통신 시스템에서 차량 통신을 지원하기 위한 자원할당 방법 및 장치 | |
| WO2019160327A1 (ko) | 이동통신 시스템에서 셀 재선택을 수행하는 방법 및 장치 | |
| WO2021133092A1 (en) | Method and apparatus to manage nssaa procedure in wireless communication network | |
| WO2022154365A1 (ko) | 무선 통신 시스템에서 포지셔닝을 위한 방법 및 장치 | |
| WO2018226024A1 (ko) | 차세대 이동통신 시스템에서 pdcp 장치 및 sdap 장치를 설정하는 방법 및 장치 | |
| WO2020197259A1 (ko) | 무선 통신 시스템에서 복수 개의 rlc 계층 장치의 활성화를 제어하는 방법 및 장치 | |
| WO2024035184A1 (en) | Method and device for performing conditional handover in wireless communication system | |
| WO2020141864A1 (ko) | 무선 통신 시스템에서 데이터를 송수신하는 방법 및 장치 | |
| WO2024147574A1 (en) | Method and apparatus for configuring and reporting qoe in wireless communication system | |
| WO2020159168A1 (en) | Method for data replication, data counting method, corresponding entities and media | |
| WO2022203482A1 (ko) | 이동 통신 시스템에서 단말이 숏-타임 스위칭 갭 설정 정보를 관리하는 방법 및 장치 | |
| WO2021125610A1 (ko) | 차세대 이동 통신 시스템에서 데이터 압축 해제 실패 시 pdcp의 구동 방법 및 장치 | |
| WO2020242191A1 (en) | Method and apparatus for performing function of radio access network | |
| WO2021091227A1 (ko) | 무선 통신 시스템에서 v2x 통신을 수행하는 방법 및 장치 | |
| WO2019221436A1 (ko) | 차세대 이동통신 시스템에서 셀 측정 정보를 수집 및 보고하는 방법 및 장치 | |
| WO2024128687A1 (ko) | 차세대 이동 통신 시스템에서 비행 경로를 업데이트 하기 위한 방법 및 장치 | |
| WO2024111867A1 (ko) | 분산 유닛의 셀 이동을 수행하기 위한 전자 장치 및 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2021872891 Country of ref document: EP Effective date: 20230221 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |