KR20220040816A - 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 - Google Patents

소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20220040816A
KR20220040816A KR1020200123995A KR20200123995A KR20220040816A KR 20220040816 A KR20220040816 A KR 20220040816A KR 1020200123995 A KR1020200123995 A KR 1020200123995A KR 20200123995 A KR20200123995 A KR 20200123995A KR 20220040816 A KR20220040816 A KR 20220040816A
Authority
KR
South Korea
Prior art keywords
package
mec
hardware components
server
software package
Prior art date
Application number
KR1020200123995A
Other languages
English (en)
Inventor
하지훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200123995A priority Critical patent/KR20220040816A/ko
Priority to EP21872891.3A priority patent/EP4187879A4/en
Priority to PCT/KR2021/012931 priority patent/WO2022065863A1/ko
Priority to US17/506,429 priority patent/US11695626B2/en
Publication of KR20220040816A publication Critical patent/KR20220040816A/ko

Links

Images

Classifications

    • H04L67/2861
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5055Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements 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

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

소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 {METHOD AND APPARATUS FOR OFF-LOADING HARDWARE OF SOFTWARE PACKAGE}
본 개시는 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 이를 위한 장치에 관한 것으로, 보다 구체적으로는, 복수의 소프트웨어 패키지에 최적화된 하드웨어 컴포넌트 세트를 결정하고 이를 할당하는 방법 및 장치에 관한 것이다.
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 하드웨어 컴포넌트들의 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정된다.
한편, 본 발명의 일 실시예에 따르면, 전술한 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
개시된 실시예는 무선 통신 시스템에서 발생하는 트래픽 변화 또는 서비스 이용량의 변화에 대비하여 가상화된 네트워크 기능을 실행하기 위한 방법 및 장치를 제공할 수 있다.
도 1은 cRAN(centralized/cloud radio access network)의 구조를 설명하기 위한 도면이다.
도 2는 MEC 기반 서비스를 지원하기 위한 네트워크 환경을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따라 소프트웨어 패키지를 실행하는 시스템 블록도이다.
도 4 는 본 개시의 일 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
도 5 는 본 개시의 다른 실시예에 따른 하드웨어 오프로딩을 설명하기 위한 도면이다.
도 6 은 본 개시의 일 실시예에 따른 서버가 소프트웨어 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
도 7 은 본 개시의 다른 실시예에 따른 서버가 소프트웨어 패키지들에 하드웨어 오프로딩을 수행하는 방법을 설명하기 위한 흐름도이다.
도 8 은 본 개시의 일 실시예에 따른 서버가 vRAN 패키지 트랙픽량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 9 는 본 개시의 다른 실시예에 따른 서버가 트래픽량 및 MEC 서비스 이용량의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 10 은 본 개시의 또 다른 실시예에 따른 서버가 MEC 서비스 부하의 증가가 예상됨에 따라 소프트웨어 패키지들이 실행되는 하드웨어 컴포넌트를 결정하는 방법을 설명하기 위한 도면이다.
도 11 은 일 실시예에 따라 소프트웨어 패키지가 실행되는 하드웨어 컴포넌트를 결정하는데 이용되는 AI 모델을 설명하기 위한 도면이다.
도 12 는 본 개시의 일 실시예에 따른 서버의 블록도이다.
이하 본 개시의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 실시예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부된 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 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)가 분리되어, 무선 송수신부(110)는 셀 사이트의 기지국(예를 들어, 111)에 위치하고, 데이터 처리부(120)는 중앙 서버(예를 들어, 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)를 포함할 수 있다. 다만, 네트워크 환경(200)이 포함하는 구성이 이에 제한되는 것은 아니다.
일 실시예에 따르면, 네트워크 환경에 포함되는 구성요소들 각각은 물리적인 객체(entity) 단위를 의미하거나, 개별적인 기능(function)을 수행할 수 있는 소프트웨어 또는 모듈 단위를 의미할 수 있다. 따라서 네트워크 환경에 포함되는 구성요소는 엔티티(entitiy)로 불릴 수도 있고, 기능 또는 펑션(function)으로 불릴 수도 있다.
일 실시예에 따르면, 단말(100)은 사용자에 의해 사용되는 장치를 의미할 수 있다. 예를 들어, 단말(100)은 사용자 단말(UE, user equipment), 원격 단말(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)의 복수의 애플리케이션 클라이언트(110, 120)는 요구되는 네트워크 서비스 타입에 기반하여 서비스 서버(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이 엣지 컴퓨팅 서비스를 이용할 수 있는지 판단하고, 엣지 컴퓨팅 서비스를 제공하는 엣지 데이터 네트워크(300)에 단말(100)의 애플리케이션 클라이언트의 데이터가 전달될 수 있도록 네트워크 인터페이스를 연결해주는 동작을 수행할 수 있다.
또한, 엣지 인에이블러 클라이언트(120)는 단말(100)이 엣지 컴퓨팅 서비스를 이용하기 위한 데이터 연결을 수립하기 위한 동작을 3GPP 통신 레이어(130)와 수행할 수 있다. 3GPP 통신 레이어(130)는 이동통신 시스템을 이용하기 위한 모뎀 동작을 수행하는 레이어를 의미할 수 있으며, 데이터 통신을 위한 무선 연결을 수립하고, 이동통신 시스템에 단말(100)을 등록하고, 이동통신 시스템에 데이터 전송을 위한 연결을 수립하고, 데이터를 송수신하는 역할을 수행할 수 있다.
단말(100)은, 3GPP 네트워크(150)에 연결되어 제 1 애플리케이션 클라이언트(110) 및 제 2 애플리케이션 클라이언트(120)와 관련된 데이터를 송수신할 수 있다.
일 실시예에 따르면, 3GPP 네트워크(150)는, 3GPP(3rd Generation Partnership Project)의 표준 규격에 따르는 무선 통신 시스템으로서, 단말(100)과 연결되어 단말(100)에게 무선 통신 서비스를 제공할 수 있다. 3GPP 네트워크(150)는 3G(3rd generation) 네트워크, LTE 네트워크, LTE-A 네트워크, 차세대 네트워크(5G 또는 NR)를 포함할 수 있다. 물론, 예시에 제한되는 것은 아니며, 본 개시의 3GPP 네트워크(150)는 다른 통신 기술로 구성된 네트워크를 포함할 수도 있다.
일 실시예에 따르면, 3GPP 네트워크(120)는 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)(221), AMF(access and mobility management function)(미도시), SMF(session management function)(미도시), PCF(policy control function)(미도시), NEF(network exposure function)(225), 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 네트워크(200)의 NF들의 기능(capability) 및 서비스(service)를 외부로 노출(exposure)하는 NF이다. NEF(154)는 외부 서버(예를 들어, 엣지 데이터 네트워크(300))와 연결되어, 3GPP 네트워크(200) 내부의 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)할 수 있다. 엣지 애플리케이션은 엣지 인에이블러 서버(320)에게 엣지 컴퓨팅 서비스에 대한 구독 요청 정보를 전달함으로써, 엣지 컴퓨팅 서비스를 구독할 수 있다. 엣지 애플리케이션이 MEC 서비스(230)를 구독하는 것은, MEC 서비스 또는 MEC 서비스에 대한 정보를 엣지 인에이블러 서버(220)으로부터 지속적으로 제공 받는 것을 의미할 수 있다. 엣지 애플리케이션은 서비스 레지스트리(240)에 등록된 MEC 서비스(230)를 구독함으로써, 엣지 인에이블러 서버(220)으로부터 MEC 서비스를 제공 받아 MEC 서비스를 사용할 수 있고, 단말에게 제공할 수 있다.
일 실시예에 따르면, 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)이 애플리케이션 클라이언트를 구동(또는, 실행)하는데 필요한 서비스 또는 데이터를 제공할 수 있다.
서비스 서버(400)는 단말(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), 네트워크 기능을 수행하는 패키지들(342, 352, 354, 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, FPGA 등의 다른 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), 네트워크 기능을 수행하는 패키지들(442, 444, 452, 454, 462), 컴포넌트 관리 패키지(470), 및 가상화 마스터(480)를 포함할 수 있다.
컴포넌트 관리 패키지(470)는 서버에서 실행중인 소프트웨어 패키지들(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), 네트워크 기능을 수행하는 패키지들(542, 544, 552, 554, 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)의 하드웨어 오프로딩을 통보한다. 가상화 마스터(580)는 오프로딩에 필요한 하드웨어 자원을 확보하기 위해 가상화 마스터(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 소프트웨어 패키지에 포함되는 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 소프트웨어 패키지에 단계 740에서 결정된 제 2 하드웨어 컴포넌트 세트를 할당할 수 있다.
단계 770에서, 서버는 제 3 소프트웨어 패키지에서 동작하는 태스크들을 제 2 소프트웨어 패키지로 이전할 수 있다.
이후, 컴포넌트 관리 패키지는 데이터 경로를 제3 소프트웨어 패키지에서 제 4 소프트웨어 패키지로 변경하기 위해, O&M 패키지로 데이터 경로 변경 요청을 전달한다. 데이터 경로 변경 요청을 획득한 O&M 패키지는 인터페이스 유닛과 통신하여 서버와 연결된 복수의 기지국들로 데이터 경로 변경 요청을 전달할 수 있다.
단계 780에서, 서버는 제 3 소프트웨어 패키지를 삭제할 수 있다.
제 3 소프트웨어 패키지에서 동작하던 태스크들이 제 4 소프트웨어 패키지로 이전되면, 컴포넌트 관리 패키지는 가상화 마스터로 제 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, 856)의 경우 UPF 패키지(852, 856)를 실행하는 하드웨어 컴포넌트의 변경이 없는 경우를 가정하여 이에 대한 도시 및 설명이 생략되어 있다.
이하에서는, 단말들로부터 발생될 트래픽 처리 정보를 포함하는 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(871) 및 컴포넌트 관리 SC(872)를 포함할 수 있다. 컴포넌트 관리 SC(872)는 IF(871)를 통해 수신된 vRAN 패키지 이용 정보 및 MEC 패키지 이용 정보를 기초로, 기지국(10)에 액세스하는 단말들로부터 발생될 트래픽 및 MEC 서비스 이용량에 관한 정보를 획득할 수 있다.
이 때, vRAN 패키지(842) 및 MEC 패키지(862)는 vRAN 패키지 이용 정보 및 MEC 패키지 이용 정보를 주기적으로 컴포넌트 관리 패키지(870)로 전달할 수 있다.
일 실시예에 따르면, vRAN 패키지(842)는 vRAN 패키지(842)를 실행할 수 있는 하드웨어 컴포넌트들의 성능에 따른 우선순위 정보를 컴포넌트 관리 패키지(870)로 전달할 수 있다. 예를 들어, vRAN 패키지는 CPU(811), FPGA(813), 또는 GPU(814)에서 실행될 수 있으며, GPU(814)에서 실행될 때 가장 좋은 성능을 나타내고, FPGA(813)에서 실행될 때 두번째 성능을 나타내고, CPU(811)에서 실행될 때 세번째 성능을 나타낼 수 있다. 또는, vRAN 패키지는 CPU(811)와 GPU(814)에서 함께 실행되는 경우 가장 좋은 성능을 나타내고, GPU(814)와 FPGA(813)에서 함께 실행되는 경우 두번째 성능을 나타내고, CPU(811)와 FPGA(813)에서 함께 실행되는 경우 세번째 성능을 나타낼 수 있다.
또한, MEC 패키지(862)는 MEC 패키지(862)를 실행할 수 있는 하드웨어 컴포넌트들의 성능에 대한 우선순위 정보를 컴포넌트 관리 패키지(870)로 전달할 수 있다. 예를 들어, MEC 패키지는 CPU(811) 및 GPU(814)에서 실행될 수 있으며, GPU(814)에서 실행될 때 가장 좋은 성능을 나타내고, CPU(813)에서 실행될 때 두번째 성능을 나타낼 수 있다. 또는, MEC 패키지는 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 패키지에 할당된 하드웨어 컴포넌트는 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에서 실행하고, 업링크 레이어 수가 4개를 초과하는 경우 GPU에서 실핼하도록 결정할 수 있다.
또한, 컴포넌트 관리 패키지(870)는 시간에 따른 MEC 패키지(862)의 성능 데이터의 추이(trend)를 계산할 수 있다. 예를 들어, 컴포넌트 관리 패키지(870)는 vRAN 패키지(842)에 연결된 사용자 단말이 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(614)에서 실행될 수 있도록 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)는 트래픽 경로를 기존의 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, 1056)의 경우 UPF 패키지(1052, 1056)를 실행하는 하드웨어 컴포넌트의 변경이 없는 경우를 가정하여 이에 대한 도시 및 설명이 생략되어 있다.
도 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 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하는 단계;
    제 2 소프트웨어 패키지를 생성하고, 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하는 단계;
    상기 제 1 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 2 소프트웨어 패키지로 이전하는 단계; 및
    상기 제 1 소프트웨어 패키지를 삭제하는 단계;를 포함하고,
    상기 제 1 하드웨어 컴포넌트 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 상기 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정되는, 방법.
  2. 제 1 항에 있어서, 상기 방법은,
    상기 제 2 소프트웨어 패키지를 생성하기 전에, 상기 제 1 하드웨어 컴포넌트 세트의 사용량을 반영한 상기 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하는 단계;를 더 포함하고,
    상기 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있는 경우,
    상기 패키지 이용 정보에 기초하여 상기 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정하는 단계;
    제 4 소프트웨어 패키지를 생성하고, 상기 제 4 소프트웨어 패키지에 상기 제 2 하드웨어 컴포넌트 세트를 할당하는 단계;
    상기 제 3 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 4 소프트웨어 패키지로 이전하는 단계; 및
    상기 제 3 소프트웨어 패키지를 삭제하는 단계;를 포함하는, 방법.
  3. 제 1 항에 있어서, 상기 제 1 하드웨어 컴포넌트 세트는,
    특정 시점에 상기 단말들로부터 발생될 트래픽량 및 MEC 서비스 이용량 각각을 기 설정된 임계값들과 비교하여 결정되는, 방법.
  4. 제 1 항에 있어서, 상기 제 2 소프트웨어 패키지에 상기 제 1하드웨어 컴포넌트 세트를 할당하는 단계는,
    특정 시점에서, 상기 단말들로부터 발생될 트래픽량 및 MEC 서비스 이용량 중 적어도 하나가 임계값을 초과할 것으로 식별됨에 따라, 상기 특정 시점 이전에 수행되는, 방법.
  5. 제 1 항에 있어서, 상기 방법은,
    상기 복수의 기지국에 대해 예정된, 트래픽 또는 MEC 서비스 이용 변화를 발생시키는 이벤트 정보를 획득하는 단계;를 더 포함하고,
    상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보는, 상기 복수의 기지국에서, 이벤트 별로 이전에 발생된 트래픽 양 및 MEC 서비스 이용량을 포함하고,
    상기 제 1 하드웨어 컴포넌트 세트는, 상기 식별된 이벤트 별 트래픽 양 및 MEC 서비스 이용량을 기초로 상기 획득된 이벤트 정보에 따라 상기 복수의 기지국에서 발생될 트래픽량 및 MEC 서비스 이용량에 기초하여 결정되는, 방법.
  6. 제 1 항에 있어서, 상기 복수의 소프트웨어 패키지들 각각은,
    vRAN(virtualized radio access network) 패키지, MEC(mobile edge computing) 패키지, 또는 UPF(user plane function) 패키지 중 적어도 하나를 포함하는, 방법.
  7. 제 1 항에 있어서, 상기 복수의 하드웨어 컴포넌트들은,
    CPU(central processing unit), GPU(graphics processing unit), FPGA(field programmable gate array) 및 NIC(network interface controller) 중 적어도 하나를 포함하는, 방법.
  8. 무선 통신 시스템에서 소프트웨어 패키지를 실행하는 서버에 있어서,
    통신부;
    복수의 인스트럭션들을 저장하는 메모리; 및
    상기 복수의 인스트럭션들을 실행하는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보를 획득하고,
    상기 패키지 이용 정보에 기초하여, 상기 복수의 소프트웨어 패키지들 중 제 1 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 1 하드웨어 컴포넌트 세트를 결정하고,
    제 2 소프트웨어 패키지를 생성하고 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하고,
    상기 제 1 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 2 소프트웨어 패키지로 이전하고,
    상기 제 1 소프트웨어 패키지를 삭제하며,
    상기 제 1 하드웨어 컴포넌트들의 세트는, 복수의 하드웨어 컴포넌트들 각각의 사용 여부 및 상기 복수의 하드웨어 컴포넌트들 각각의 사용량에 기초하여 결정되는, 서버.
  9. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 제 2 소프트웨어 패키지를 생성하기 전에, 상기 제 1 하드웨어 컴포넌트 세트의 사용량을 반영한 상기 복수의 하드웨어 컴포넌트들 각각의 사용량을 확인하고,
    상기 복수의 하드웨어 컴포넌트들 중 사용량이 임계값 이상인 하드웨어 컴포넌트가 있는 경우,
    상기 패키지 이용 정보에 기초하여 상기 사용량이 임계값 이상인 하드웨어 컴포넌트를 사용중인 제 3 소프트웨어 패키지에서 동작하는 태스크들을 처리하기 위한 제 2 하드웨어 컴포넌트 세트를 결정하고,
    제 4 소프트웨어 패키지를 생성하고 상기 제 4 소프트웨어 패키지에 상기 제 2 하드웨어 컴포넌트 세트를 할당하고,
    상기 제 3 소프트웨어 패키지에서 동작하는 태스크들을 상기 제 4 소프트웨어 패키지로 이전하고,
    상기 제 3 소프트웨어 패키지를 삭제하는, 서버.
  10. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는
    특정 시점에 상기 단말들로부터 발생될 트래픽량 및 MEC 서비스 이용량 각각을 기 설정된 임계값들과 비교하여 상기 제 1 하드웨어 컴포넌트 세트를 결정하는, 서버.
  11. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는,
    특정 시점에 상기 단말들로부터 발생될 트래픽량 및 MEC 서비스 이용량 중 적어도 하나가 임계값을 초과할 것으로 식별됨에 따라, 상기 특정 시점 이전에 상기 제 2 소프트웨어 패키지에 상기 제 1 하드웨어 컴포넌트 세트를 할당하는, 서버.
  12. 제 8 항에 있어서,
    상기 서버와 연결된 복수의 기지국에 액세스한 단말들에 대한 복수의 소프트웨어 패키지들 각각의 패키지 이용 정보는, 상기 복수의 기지국에서, 이벤트 별로 이전에 발생된 트래픽 양 및 MEC 서비스 이용량을 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 복수의 기지국에 대해 예정된, 트래픽 또는 MEC 서비스 이용 변화를 발생시키는 이벤트 정보를 획득하고,
    상기 식별된 이벤트 별 트래픽 양 및 MEC 서비스 이용량을 기초로 상기 획득된 이벤트 정보에 따라 상기 복수의 기지국에서 발생될 트래픽량 및 MEC 서비스 이용량에 기초하여 상기 제 1 하드웨어 컴포넌트 세트를 결정하는, 서버.
  13. 제 8 항에 있어서, 상기 복수의 소프트웨어 패키지들 각각은,
    vRAN(virtualized radio access network) 패키지, MEC(mobile edge computing) 패키지, 또는 UPF(user plane function) 패키지 중 적어도 하나를 포함하는, 서버.
  14. 제 8 항에 있어서, 상기 복수의 하드웨어 컴포넌트들은,
    CPU(central processing unit), GPU(graphics processing unit), FPGA(field programmable gate array) 및 NIC(network interface controller) 중 적어도 하나를 포함하는, 서버.
  15. 제 1 항 에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
KR1020200123995A 2020-09-24 2020-09-24 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치 KR20220040816A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200123995A KR20220040816A (ko) 2020-09-24 2020-09-24 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치
EP21872891.3A EP4187879A4 (en) 2020-09-24 2021-09-23 METHOD AND APPARATUS FOR OFFLOADING HARDWARE TO A SOFTWARE PACKAGE
PCT/KR2021/012931 WO2022065863A1 (ko) 2020-09-24 2021-09-23 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치
US17/506,429 US11695626B2 (en) 2020-09-24 2021-10-20 Method and apparatus for offloading hardware to software package

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200123995A KR20220040816A (ko) 2020-09-24 2020-09-24 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220040816A true KR20220040816A (ko) 2022-03-31

Family

ID=80845754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200123995A KR20220040816A (ko) 2020-09-24 2020-09-24 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20220040816A (ko)
WO (1) WO2022065863A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079483A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd 交通情報提供装置,交通情報提供方法
US10298466B2 (en) * 2015-01-20 2019-05-21 Huawei Technologies Co., Ltd. Systems and methods for SDT to interwork with NFV and SDN
CN106817686B (zh) * 2015-11-27 2020-07-10 大唐移动通信设备有限公司 一种计费方法及装置
KR20180022500A (ko) * 2016-08-24 2018-03-06 주식회사 포딕스시스템 트리플 디코더 및 디코딩 처리방법
JP2021527265A (ja) * 2018-06-14 2021-10-11 リスケール,インコーポレイテッド 統合されたマルチプロバイダ計算プラットフォーム

Also Published As

Publication number Publication date
WO2022065863A1 (ko) 2022-03-31

Similar Documents

Publication Publication Date Title
US20210409335A1 (en) Multi-access management service packet classification and prioritization techniques
US20220124043A1 (en) Multi-access management service enhancements for quality of service and time sensitive applications
WO2021067140A1 (en) Edge computing technologies for transport layer congestion control and point-of-presence optimizations based on extended in-advance quality of service notifications
US20220116334A1 (en) Multi-access management service queueing and reordering techniques
CN112042233A (zh) 在5g网络中管理与局域数据网络(ladn)的连接的方法
US20210400537A1 (en) Cross-layer and cross-access technology traffic splitting and retransmission mechanisms
NL2033607B1 (en) Traffic steering and cross-layered and cross-link mobility management techniques for multi-access management services
WO2022041285A1 (zh) 一种模型数据传输方法及通信装置
FI128634B (en) Obtaining information
US11695626B2 (en) Method and apparatus for offloading hardware to software package
EP3873076B1 (en) Method, apparatus an computer program for executing virtualized network function
WO2022033543A1 (zh) 一种中继通信方法及通信装置
US20220150898A1 (en) Method and apparatus for allocating gpu to software package
JP2021507633A (ja) クラウド無線アクセスネットワークにおける負荷分散のための方法および装置
KR20220064806A (ko) 소프트웨어 패키지에 gpu를 할당하는 방법 및 장치
KR20220040816A (ko) 소프트웨어 패키지에 하드웨어를 오프로딩하는 방법 및 장치
US11219032B2 (en) Method and apparatus for performing function of radio access network
CN116648900A (zh) 对边缘启用服务器和边缘配置服务器生命周期管理的支持
KR20220079191A (ko) 무선 접속 네트워크 기능을 수행하는 방법 및 장치
US20230261792A1 (en) Apparatus, methods, and computer programs
US20240015569A1 (en) Quality of service management for 5g networks
WO2021128225A1 (zh) 一种业务流的处理方法、装置及***
Choudhury Architecture and design considerations for next-generation mobile networks with integrated edge computing
WO2023043521A1 (en) Trigger-based keep-alive and probing mechanism for multiaccess management services
CN114095972A (zh) 用在用户设备中的装置

Legal Events

Date Code Title Description
A201 Request for examination