KR20190056889A - 라디오 가상 머신을 적용한 네트워크 기능 가상화 - Google Patents

라디오 가상 머신을 적용한 네트워크 기능 가상화 Download PDF

Info

Publication number
KR20190056889A
KR20190056889A KR1020170154287A KR20170154287A KR20190056889A KR 20190056889 A KR20190056889 A KR 20190056889A KR 1020170154287 A KR1020170154287 A KR 1020170154287A KR 20170154287 A KR20170154287 A KR 20170154287A KR 20190056889 A KR20190056889 A KR 20190056889A
Authority
KR
South Korea
Prior art keywords
radio
application
processor
hardware
virtual machine
Prior art date
Application number
KR1020170154287A
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 KR1020170154287A priority Critical patent/KR20190056889A/ko
Publication of KR20190056889A publication Critical patent/KR20190056889A/ko

Links

Images

Classifications

    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

라디오 어플리케이션 구성코드에 포함된 사용자 정의 기능 블록을 하드웨어 독립적으로 실행할 수 있는 라디오 가상 머신의 구조를 적용한 네트워크 기능 가상화가 개시된다.

Description

라디오 가상 머신을 적용한 네트워크 기능 가상화{NETWORK FUNCTION VIRTUALIZATION WITH RADIO VIRTUAL MACHINE}
본 발명은 소프트웨어 정의 라디오(SDR, Software Defined Radio), 디지털 무선 통신(Digital Wireless Communications), 라디오 프로세서(RP, Radio Processor), 어플리케이션 프로세서(AP, Application Processor), 멀티 라디오 어플리케이션(Multi-Radio Application), 재구성 가능 라디오 시스템(RRS, Reconfigurable Radio Systems), 또는 모바일 장치(MD, Mobile Device)의 라디오 재구성 관련 요구조건과 관련된 기술 분야에서 라디오 앱 스토어(Radio App Store)나 재구성 가능 모바일 장치(Reconfigurable MD)에 라디오 어플리케이션 패키지를 공급하는 라디오 어플리케이션 제공자(Radio Application Provider)의 라디오 프로그래밍 인터페이스(RPI, Radio Programming Interface)와 이를 이용하는 재구성 가능 모바일 장치에 관한 것이다.
특히, 본 발명은 재구성 가능 모바일 장치의 라디오 가상 머신(RVM, Radio Virtual Machine)을 적용한 네트워크 기능 가상화에 관한 것이다.
통신기술이 발달함에 따라 사용자의 기호나 목적에 따라 많은 새로운 종류의 라디오 통신 기술들이 사용되고 있다. 롱텀에볼루션(LTE), 롱텀에볼루션 어드벤스드(LTE-advanced), 광대역 코드분할다중접속(WCDMA), 모바일 와이맥스(Mobile WiMAX), GSM(Global System for Mobile Communications) 등과 같은 무선 통신 기술들 대부분은 모뎀과 기지국이 상호 작용하면서 단말기 상에서 실행된다.
단말기 내부의 모뎀은 제조사별로 고유의 명령어들을 가지고 이를 통해서 각각의 라디오 통신 기술들을 구현한다. 라디오 어플리케이션들이 모뎀을 제어하기 위해서는 제조사 또는 모델에 따라 모뎀이 갖는 고유의 명령어를 이해하고 이에 맞춘 모듈을 개발하여 적용해야 한다. 이는 결과적으로 어떤 라디오 어플리케이션은 오직 특정 제조사의 단말기나 특정 모뎀에서만 실행되는 결과를 초래한다. 이를 해결하기 위해 여러 종류의 모뎀에 맞춘 각기 다른 제어 명령을 모든 라디오 어플리케이션에 포함시키거나 각 모뎀별로 서로 다른 실행 파일을 제작하여 배포하여야 한다.
그러나, 이러한 방법은 현재 시장에 출시되고 있는 다양한 모뎀의 하드웨어에 맞추어 일일이 최적화 작업을 별도로 수행해야 하므로 모든 단말기에서 작동 가능한 라디오 어플리케이션을 제작하는 것은 사실상 불가능하다. 그 뿐만 아니라 기존 기술에서는 하나의 멀티 라디오 어플리케이션을 제작하기 위하여 막대한 인력과 비용을 투입해야 하는 문제가 있다.
이와 같은 문제를 해결하기 위해 하드웨어 독립적인 멀티 라디오 어플리케이션을 제작하고자 하는 시도가 있으나 이를 제어하려면 각각 제조사별 고유의 명령어가 아닌 통일된 명령어를 사용해야 한다.
즉, 무선 기지국과 단말기에서 하드웨어로 고주파(HF, High Frequency)를 지원하던 방식을 소프트웨어 형태로 바꿔주는 기술이 필요하다. 소프트웨어 정의 라디오(SDR, Software Defined Radio)는 다중 모드(Multimode), 다중 대역(Multi band), 다중 환경의 무선 통신 환경에서 하나의 단말기로 장소, 시간에 관계없이 서비스를 경제적으로 제공하기 위한 무선 통신 기술로, 소프트웨어의 조작으로 무선 장치 및 서비스를 제공하기 위해 제안된 기술이다.
이동 전화, 개인 휴대 정보 단말기(PDA, Personal Digital Assistants), 노트북 등 휴대 단말기에 소프트웨어 정의 라디오 모듈을 탑재하면 하나의 단말기에 서로 다른 주파수 대역과 2개 이상의 시스템을 동시에 지원하는 것이 가능해진다. 이러한 SDR 기술은 All-IP 기반 무선 멀티미디어 통신을 추구하는 4세대 통신에서 다양한 무선 네트워크, 다양한 무선 통신 방식, 국가마다 다른 주파수 밴드, 고속 데이터 통신을 위한 새로운 통신 방식을 제공할 수 있다.
소프트웨어 정의 라디오 기술과 관련하여 SCA(Software Communication Architecture)라는 사실상의 표준 기술이 존재한다. 이는 소프트웨어 정의 라디오를 위하여 필요한 프레임워크(Framework), 미들웨어(Middleware), 실시간 운영 시스템(Real Time Operating System)과 관련된 규약을 모아놓은 것으로 소프트웨어 정의 라디오 시스템 간의 인터페이스 호환(Interface Compatible)을 보장한다. SCA의 핵심은 프레임워크 규약인 코어 프레임워크(Core Framework)로 이를 통해 라디오 어플리케이션을 구성하는 각 부분을 컴포넌트화할 수 있도록 하고 이 컴포넌트들을 재사용하고 조합하여 새로운 라디오 어플리케이션을 만들 수 있도록 이루어진다.
SCA의 경우 단말기에 미리 설치된 블록들에 한하여 재조합이 가능하지만 특정 라디오 어플리케이션에서의 사용을 위한 사용자 정의(User Defined) 형태의 블록을 하드웨어 구성이 서로 다른 SCA 호환 단말기에서는 설치할 수 없다. 따라서 단일의 실행 파일로 모든 SCA 호환 단말기에서 사용하는 것이 불가능하다.
이는 모든 SCA 호환 단말기에 탑재된 하드웨어의 사양에 따라 최적화된 실행 파일을 개별적으로 만들어 배포해야 함을 의미한다. 이는 매우 많은 시간과 비용을 필요로 하여 라디오 어플리케이션의 상업적 이용을 매우 어렵게 한다. 또한, SCA 호환 단말기는 라디오 어플리케이션의 구현을 위한 베이스밴드 API(Application Programming Interface)를 제공하지 않아 선택적 하드웨어 가속 기능의 활용이 어렵다.
상기 문제점을 해결하기 위한 본 발명의 목적은 라디오 가상 머신을 적용한 네트워크 기능 가상화를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예는 라디오 가상 머신을 적용한 네트워크 기능 가상화를 포함할 수 있다.
본 발명에 따르면, 표준 베이스밴드 API를 이용하여 서로 다른 구조의 모뎀칩을 가진 기지국에서 동일한 라디오 어플리케이션을 실행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 단말 장치에서 온라인 앱 스토어(On-Line App. Store)에서 배포되는 라디오 어플리케이션 패키지를 다운로드하는 경우를 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 단말 장치의 소프트웨어 아키텍처를 설명하기 위한 블록도이다.
도 3은 도 2의 단말 장치의 라디오 재구성을 위한 사용 환경에서 단말 장치와 관련된 인터페이스들을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 엘리먼트리 RVM(eRVM)을 도시한 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가진다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명을 설명하기 위해서 전반적으로 사용되는 용어들에 대한 간략한 정의들을 정리한다. 아래 용어들 이외의 용어들에 대해서는 본 명세서 내의 적절한 부분에서 정의를 제공한다.
라디오 어플리케이션(RA, Radio Application): 단말 장치의 구체적인 하드웨어 구성 및 사용자 어플리케이션에 비의존적인 라디오 통신 환경을 제공하기 위한 어플리케이션이다. 라디오 어플리케이션은 라디오 프로세서 상에서 동작하거나, 라디오 프로세서 실행 부분과 어플리케이션 프로세서 실행 부분으로 구성되어 두 개의 프로세서 상에서 동작하도록 구성될 수 있다. 라디오 어플리케이션은 라디오 컨트롤러 및 기능 블록들로 구성된다. 기능 블록에는 표준 기능 블록과 사용자 정의 기능 블록이 포함될 수 있다.
라디오 어플리케이션 패키지(RAP, Radio Application Package): 라디오 어플리케이션의 배포 형태로서, 라디오 어플리케이션의 구성요소인 라디오 컨트롤러, 기능 블록과 함께 파이프라인 구성 메타 데이터를 포함한다. 또한, 라디오 어플리케이션 패키지는 추가적으로 라디오 라이브러리(Radio Library)를 포함할 수 있다.
표준 기능 블록(SBF, Standard Function Block): 표준 기능 블록은 각 블록의 기능과, 해당 블록을 실행하기 위한 함수의 이름이 표준화된 표준적 기능 블록들이다. 표준 기능블록은 라디오 플랫폼 칩 벤더가 표준기능 블록을 제작하는 경우 하드웨어 제조사가 구현한 표준 기능 블록의 집합체가 될 것이며 드라이버와 함께 제공될 수 있다. 표준 기능 블록은 전용의 하드웨어 가속기(Hardware Accelerator)를 이용하여 구현되거나, 라디오 프로세서의 코어에서 동작하는 실행 코드로 구현될 수 있다. 라디오 프로세서의 코어에서 동작하는 실행 코드로 구현될 경우 라디오 라이브러리(Radio Library)로 지칭할 수 있다. 표준기능블록들은 각 함수의 이름과 기능이 표준화 되어 있으며, 표준 라디오 라이브러리 헤더(Standard Radio Library Header) 파일에 의해서 정의될 수 있다.
사용자 정의 기능 블록(UDFB, User Defined Function Block): 표준 기능 블록으로 제공되지 않거나, 표준 기능 블록으로 존재하는 기능을 보다 커스터마이징할 필요성이 있는 경우, 라디오 어플리케이션 제공자에 의해서 제공될 수 있는 기능블록들로서, 라디오 프로세서의 코어에서 실행되도록 구현될 수 있다. 사용자 정의 기능 블록은 실행 코드, 소스 코드, 중간 표현 형태의 코드로 제공될 수 있다.
사용자 정의 기능 블록(UDFB, User Defined Function Block) 집합: 라디오 어플리케이션 제공자가 제공한 사용자 정의 기능 블록의 집합체일 수 있다.
라디오 HAL(Hardware Abstract Layer): OS의 관점에서 많은 종류의 HW를 추상화하는 계층이다. 표준화된 추상화 가속기 인터페이스는 하드웨어에 독립적이지만 HAL 때문에 모든 하드웨어에 OS가 접근할 수 있게 된다. 드라이버의 역할과 비슷하지만, 하드웨어가 바뀜에 따라 바뀌는 드라이버와는 달리 HAL은 OS에 포함되어 있다.
라디오 플랫폼 드라이버(Radio Platform Driver): OS가 하드웨어를 인식하기 위해 필요한 소프트웨어이다. 하드웨어에 독립적인 OS의 명령어로서 하드웨어의 명령어 체계를 서로 매칭시키기 위한 소프트웨어 이며 일반적인 하드웨어 드라이버의 역할을 할 수 있다.
라디오 플랫폼(Radio Platform): 고정된(Fixed) 및/또는 프로그래머블한(Programmable) 하드웨어 가속기(Hardware Accelerator), RF 트랜시버, 안테나와 같은 RF 기능에 관한 모바일 장치 하드웨어의 일부일 수 있다. 즉, 라디오 플랫폼은 RF 신호를 생성하거나 수신할 수 있는 하드웨어의 일부일 수 있다. 본질적으로, 라디오 플랫폼은 예를 들어 주문형 집적 회로(ASIC)와 같은 고정 가속기(Fixed Accelerator)나 FPGA와 같은 재구성 가능 가속기(Reconfigurable Accelerator) 같은 다른 프로세싱 요소를 포함하는 이기종의(Heterogeneous) 하드웨어일 수 있다.
라디오 컴퓨터(Radio Computer): 재구성가능(Reconfigurable) 모바일 장치(MD, Mobile Device) 내에서 라디오 프로세서(RP, Radio Processor) 및 라디오 플랫폼의 컬렉션일 수 있다. 모바일 장치에서는, 개별 라디오 어플리케이션들이 보다 범용의 컴퓨팅 요소로 볼 수 있는 라디오 프로세서 상에서 실행하는 소프트웨어 요소로서 설계될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면들을 참조하여 상세하게 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 단말 장치에서 온라인 앱 스토어(On-Line App. Store)에서 배포되는 라디오 어플리케이션 패키지를 다운로드하는 경우를 설명한 예시도이다.
도 1을 참조하면, 본 실시예에 따른 단말 장치(10)는 라디오 어플리케이션 스토어 또는 라디오 어플리케이션 제공자로부터 라디오 어플리케이션을 다운로드 받아 설치하여 다양한 무선 방식의 네트워크 환경에서 동작할 수 있다.
즉, 단말 장치(10)는 온라인 앱 스토어(20)에 접속하고, 앱 스토어가 제공하는 다양한 무선 통신 방식들을 지원하는 라디오 어플리케이션들의 리스트에서 원하는 라디오 어플리케이션을 선택하고, 해당 라디오 어플리케이션을 포함하는 라디오 어플리케이션 패키지를 다운로드 받을 수 있다.
다양한 무선 방식은 LTE(Long Term Evolution), WCDMA(Wideband Code Division Multiple Access), WiMAX (Worldwide Interoperability for Microwave Access), GSM(Global System for Mobile Communications), RFID(Radio-Frequency Identification) 등을 포함할 수 있다. 사용자는 자신의 단말에 복수의 라디오 어플리케이션을 다운로드 받아 설치해두고 상황에 따라 필요한 라디오 어플리케이션을 자유롭게 실행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 단말 장치의 소프트웨어 아키텍처를 설명하기 위한 블록도이다.
도 2를 참조하면, 본 실시예에 따른 단말 장치의 라디오 소프트웨어 아키텍처는 어플리케이션 프로세서(AP, Application Processor)(110) 상에서 동작하는 어플리케이션 프로세서 계층과 라디오 프로세서(RP, Radio Processor)(610) 상에서 동작하는 라디오 프로세서 계층으로 구성될 수 있다. 라디오 프로세서와 라디오 플랫폼의 조합은 라디오 컴퓨터(120)로 지칭될 수 있다.
즉, 도 2는 후술되는 라디오 컨트롤 프레임워크(RCF, Radio Control Framework)(126)가 어플리케이션 프로세서 실행 부분과 라디오 프로세서 실행 부분으로 분리되어 두 개의 프로세서 상에서 동작하는 소프트웨어 아키텍처 환경을 예시한다. 물론, 라디오 컨트롤 프레임워크(126)는 라디오 프로세서나 라디오 운영체제(OS, Operating System)(121)에서 실행되도록 구현될 수 있다.
어플리케이션 프로세서(110) 상에는 구글(Google)의 안드로이드(Android) OS와 애플(Apple)의 iOS와 같은 비 실시간(Non-Real Time) 운영체제(OS, Operating Systems)가 동작하거나, 라디오 프로세서 상에는 이하에서 라디오 OS(121)라 지칭되는 실시간 운영체제(Real Time OS)가 동작할 수 있다. 명확한 구별을 위하여 어플리케이션 프로세서 계층에서 동작하는 비 실시간 운영체제를 '운영체제(OS)', 라디오 프로세서 계층에서 동작하는 실시간 운영체제는 '실시간 운영체제(Radio OS)'로 구분하여 명명하기로 한다.
어플리케이션 프로세서 계층, 라디오 프로세서 계층 및 라디오 컨트롤 프레임워크(126)를 구성하는 구성요소들에 대하여 좀 더 상세히 설명하면 다음과 같다.
어플리케이션 프로세서
어플리케이션 프로세서(110)는 도 2에 도시한 바와 같이, 드라이버(111), 운영체제(OS)(112) 및 통신 서비스 계층(113) 등의 구성요소들을 포함할 수 있다.
드라이버(111)는 주어진 운영체제(112) 상에서 하드웨어 디바이스들을 구동한다. 하드웨어 디바이스들은 카메라, 스피커 등을 포함할 수 있다.
운영체제(112)는 안드로이드, iOS와 같이 통상적인 모바일 디바이스에서 동작하는 비 실시간 운영체제(Non-Real Time OS)를 포함할 수 있다. 라디오 컨트롤 프레임워크(126)가 어플리케이션 프로세서(110)와 라디오 프로세서(610)에서 동작하는 구성일 때, 운영체제(112) 상에는 라디오 컨트롤 프레임워크(126)의 어플리케이션 프로세서 계층 실행 부분이 존재할 수 있다.
통신 서비스 계층(113)은 후술되는 3가지 서비스들 중 적어도 일부를 라디오 컨트롤 프레임워크(126)에 제공할 수 있다.
첫 번째 서비스는, 관리(Administrative)에 관련된 서비스로서 라디오 어플리케이션의 인스톨/언인스톨, 인스턴스(Instance)의 생성/삭제 그리고 인스톨, 인스턴스, 활동 등의 상태(Status)에 대한 라디오 어플리케이션의 목록 획득에 관련된 서비스이다.
두 번째 서비스는, 접속 제어에 관련된 서비스로서 라디오 어플리케이션의 실행/비실행, 데이터 흐름 생성, 네트워크 할당 생성 그리고 각 인스톨, 인스턴스, 활동 등의 상태에 대한 라디오 어플리케이션의 목록 획득에 관련된 서비스이다.
마지막으로 세 번째 서비스는, 데이터 흐름에 관련된 서비스로서 사용자 데이터를 보내고 받는데 관련된 서비스이다.
상술된 세가지 서비스들 중 적어도 일부 서비스를 제공하기 위한 통신 서비스 계층(113) 구성의 하나의 예로서, 통신 서비스 계층은 관리자(Administrator) 어플리케이션, 이동성 정책(Mobility Policy) 매니저, 네트워킹 스택(Networking Stack) 및 모니터(Monitor) 중 적어도 일부를 포함하는 적어도 하나 이상의 어플리케이션으로 구현될 수 있다. 네트워킹 스택은 통신 서비스 계층에서 동작하는 프로토콜 스택(Protocol Stack)을 포함할 수 있다.
한편, 통신 서비스 계층(113)은 상술된 구성요소들 중 일부만 포함할 수도 있고, 상술된 구성요소들 이외의 추가적인 구성요소를 포함할 수도 있다. 또한, 통신 서비스 계층(113) 내에는 적어도 둘 이상의 상술된 구성요소들의 기능이 통합된 구성요소들이 포함될 수도 있다. 또한, 상술한 구성요소들은 통신 서비스 계층(113)이 수행하여야 하는 서비스들을 지원하기 위하여 통신 서비스 계층(113)이 구비하여야 하는 구성요소들의 일 예일뿐이다. 즉, 통신 서비스 계층(113)은 통신 서비스 계층(113)이 수행하는 역할에 의해서 정의되며, 상술된 구성요소들의 예시에 의해서 통신 서비스 계층(113)의 구성이 한정되는 것은 아니다.
라디오 컨트롤 프레임워크(126)가 어플리케이션 프로세서(110)와 라디오 프로세서(610)에서 동작하는 구성에서, 본 실시예에 따른 단말 장치(10)로의 배포, 설치 및 실행 방법의 대상이 되는 라디오 어플리케이션들은 각각 어플리케이션 프로세서 계층 실행 부분과 라디오 프로세서 계층 실행 부분들로 구성될 수 있다. 라디오 어플리케이션의 어플리케이션 프로세서 계층 실행 부분인 라디오 컨트롤러(RC, Radio Controller)는 통신 서비스 계층(Communication Service Layer)(113)의 모니터에게 상황 정보(Context Information)를 보내거나 통신 서비스 계층(113)의 네트워킹 스택과 데이터를 주고 받는 역할을 수행할 수 있다.
라디오 컴퓨터
라디오 프로세서(610)는 도 2에 도시한 바와 같이 라디오 운영체제(121), 라디오 플랫폼 드라이버(122) 및 라디오 플랫폼(123)을 포함한다.
라디오 운영체제(OS)(121)는 실시간 운영체제이다. 라디오 컨트롤 프레임워크(126)가 어플리케이션 프로세서(110)와 라디오 프로세서(610)에서 동작하는 구성일 때, 라디오 OS(121) 상에는 라디오 컨트롤 프레임워크(126)의 라디오 프로세서 실행 부분이 존재할 수 있다.
라디오 플랫폼 드라이버(Radio Platform Driver)(122)는 일반적인 하드웨어 드라이버와 같이 하드웨어 라디오 플랫폼을 인식하기 위해서 라디오 OS(121)에 의해서 요구되는 구성요소이다.
라디오 컨트롤 프레임워크(126)가 라디오 프로세서(610)에서만 동작하는 구성(도 3 참조)이면, 본 실시예에 따른 단말 장치(10)로의 배포, 설치 및 실행의 대상이 되는 재구성가능 라디오 어플리케이션들은 라디오 프로세서 계층에서 동작할 수 있다.
각각의 라디오 어플리케이션의 라디오 컨트롤러(RC, Radio Controller)는 통신 서비스 계층(Communication Service Layer)(113)의 모니터에게 상황 정보(Context Information)를 보내거나 통신 서비스 계층(113)의 네트워킹 스택과 데이터를 주고 받는 역할을 수행한다.
전술한 라디오 프로세서(610)는 라디오 플랫폼(123) 또는 라디오 플랫폼 하드웨어와 함께 라디오 컴퓨터(120)를 구성할 수 있다. 여기서, 라디오 플랫폼 하드웨어(Radio Platform Hardware)는 일반적으로 라디오 프로세서의 프로그래머블 하드웨어(123-1)와 베이스밴드 가속기(들)(123-2)로 구성될 수 있다. 표준 기능 블록(들)(517-1~M)을 위해서 준비되는 베이스밴드 가속기(123-2)는 종종 ASIC(Application-Specific Integrated Circuit)의 형태로 제공될 수 있다. 또한, 라디오 플랫폼(123)은 RF 송수신기(RF Transceiver)(123-3) 및 안테나(123-4)를 포함할 수 있다.
전술한 통신 서비스 계층(113)과 컨트롤 라디오 컨트롤 프레임워크(126) 사이에는 멀티라디오 인터페이스(MURI, Multi Radio Interface)가 배치될 수 있고, 라디오 컨트롤 프레임워크(126)와 통합 라디오 어플리케이션(125) 사이에는 통합 라디오 어플리케이션 인터페이스(URAI, Unified Radio Application Interface)가 배치될 수 있다. 또한, 통합 라디오 어플리케이션(125)과 RF 송수신기(123-3) 사이에는 재구성가능 RF 인터페이스(RRFI, Reconfigurable Radio Frequency Interface)가 배치될 수 있다.
라디오 어플리케이션은 모바일 단말의 통신을 가능하게 하는 어플리케이션으로써 라디오 어플리케이션 패키지(RAP, Radio Application Package)(510) 형태로 배포될 수 있다. 라디오 어플리케이션 패키지(510)는 기능 블록(FB, Function Block), 파이프라인 구성 메타데이터(Metadata)(513), 라디오 컨트롤러 코드(RC code)(512) 및 라디오 라이브러리(Radio Library)(514)의 구성요소들을 포함할 수 있다.
라디오 라이브러리(514)는 표준 기능 블록(517-1)이 실행코드 형태로 배포되는 경우에 라디오 어플리케이션 패키지(510)에 실행 코드 형태로 함께 포함되어 배포될 수 있고, 라디오 어플리케이션 패키지(510)는 어플리케이션 프로세서(110)의 OS(112)에 다운로드되고, 구성코드(Configcodes)와 라디오 라이브러리(514)는 파이프라인 구성 메타 데이터(513)를 참조하여 어플리케이션 프로세서(110)에서 라디오 프로세서(610)나 라디오 OS(121)로 로딩되는 과정을 거쳐 라디오 컴퓨터에 탑재될 수 있다.
재구성 가능 RF 인터페이스의 소프트웨어 아키텍처
도 3은 본 발명의 일 실시예에 따른 재구성가능(Reconfigurable) 단말 장치의 사용 환경에서 단말 장치와 관련된 4가지 인터페이스들을 설명하기 위한 개념도이다.
도 3을 참조하면, 본 실시예에 따른 재구성 가능한 모바일 장치(Reconfigurable Mobile Device)는 다종/다중 라디오(Multiple Radios)를 동시에 실행할 수 있고 새로운 라디오 어플리케이션 패키지(RAP, Radio Application Package)(510)에 의해 라디오들의 설정을 변경할 수 있다. 모든 라디오 어플리케이션들(RAs)은 모바일 장치의 라디오 재구성과 관련된 요구사항의 관점에서 공통 속성이나 특성을 나타낼 때 통합 라디오 어플리케이션(URAs, Unified Radio Applications)으로 지칭될 수 있다.
다종/다중 통합 라디오 어플리케이션을 실행하기 위하여, 재구성 가능한 모바일 장치(이하, 간략히 모바일 장치라고도 한다)는 통신 서비스 계층(CSL, Communication Services Layer)(113), 라디오 컨트롤 프레임워크(RCF, Radio Control Framework)(126), 라디오 플랫폼(Radio Platform)(123) 및 이들의 상호 연결을 위한 4 세트의 인터페이스들을 포함할 수 있다.
본 실시예에 따른 재구성가능 모바일 장치(MD, Mobile Device)와 관련된 4가지 인터페이스는 통신 서비스 계층(113)의 각 구성요소와 라디오 컨트롤 프레임워크(126)의 각 구성요소 사이의 인터페이스인 멀티라디오 인터페이스(MURI, Multi Radio Interface), 통합 라디오 어플리케이션(URA, Unified Radio Application)(125)과 RF 송수신기(Radio Frequency Transceiver)(123-3) 간의 인터페이스인 재구성 가능 RF 인터페이스(RRFI, Reconfigurable Radio Frequency Interface), 통합 라디오 어플리케이션(125)과 라디오 컨트롤 프레임워크(126)의 각 구성요소 사이의 인터페이스인 통합 라디오 어플리케이션 인터페이스(URAI, Unified Radio Application Interface), 라디오 어플리케이션의 독립적이고 정형적인(Uniform) 생산에 관련된 인터페이스인 라디오 프로그래밍 인터페이스(RPI, Radio Programming Interface)를 포함할 수 있다.
라디오 프로그래밍 인터페이스(RPI)는 라디오 어플리케이션 제공자와 단말 장치와의 사이 또는 라디오 앱 스토어와의 사이에 정의되는 인터페이스로서, 라디오 어플리케이션 제공자는 이러한 RPI를 참조하여 단말 장치에서 실행되는 라디오 재구성 가능 어플리케이션을 제작하여 배포할 수 있다.
라디오 컨트롤 프레임워크
전술한 라디오 컨트롤 프레임워크(126)를 좀 더 구체적으로 설명하면 다음과 같다.
라디오 컨트롤 프레임워크(RCF, Radio Control Framework)(126)는 라디오 어플리케이션의 동작 환경을 제공하는 구성요소이다.
라디오 컨트롤 프레임워크(126)가 어플리케이션 프로세서(110)와 라디오 프로세서(610)에서 동작하는 구성이라면, 라디오 컨트롤 프레임워크(126)는 두 개의 그룹으로 나누어질 수 있다. 즉, 하나의 그룹은 어플리케이션 프로세서(110) 상에서 동작하며, 다른 하나의 그룹은 라디오 프로세서(610) 상에서 동작한다. 라디오 컨트롤 프레임워크(126)의 어떠한 구성요소가 실시간으로 동작(라디오 프로세서 상에서 동작)하고 어떠한 구성요소가 비 실시간으로 동작(어플리케이션 프로세서 상에서 동작)할 것인지는 각각의 벤더에 따라서 다르게 결정될 수 있다.
라디오 컨트롤 프레임워크(RCF, Radio Control Framework)(126)는 기본적으로 다음의 5가지 구성요소들의 적어도 일부를 포함하여, 라디오 어플리케이션(들)을 관리하도록 구성될 수 있다.
설정 매니저(CM, Configuration Manager)는 멀티라디오 단말 장치에 대한 라디오 어플리케이션의 인스톨/언인스톨, 인스턴스(Instance)의 생성/삭제와 라디오 어플리케이션들의 라디오 파라미터들에 대한 액세스 관리를 수행한다.
라디오 연결 매니저(RCM, Radio Connection Manager)는 사용자 요구들에 따른 라디오 어플리케이션들의 활성화/비활성화 및 하나의 라디오 어플리케이션으로부터 다른 라디오 어플리케이션으로 스위칭될 수 있는 사용자 데이터 흐름의 전체적인 관리를 수행한다.
플로우 컨트롤러(FC, Flow Controller)는 사용자 데이터 패킷의 송신과 수신 및 흐름 제어를 수행한다.
멀티라디오 컨트롤러(MRC, Multi Radio Controller)는 라디오 어플리케이션들간의 상호 운용성 문제를 미리 감지하기 위해서, 동시에 실행되는 라디오 어플리케이션들로부터 제기되는 라디오 자원들(Radio Resources)에 대한 요구들을 스케쥴링한다.
리소스 매니저(RM, Resource Manager)는 실시간 요구사항을 충족시키면서 동시에 활성화된 라디오 어플리케이션들간에 멀티라디오 자원들을 공유하기 위한 멀티라디오 자원들의 관리한다.
한편, 라디오 컨트롤 프레임워크(126)는 전술되는 5가지 구성요소들 중 일부만을 포함할 수도 있고, 5가지 구성요소 이외의 구성요소를 더 포함할 수도 있다. 또는, 라디오 컨트롤 프레임워크(126)는 적어도 둘 이상의 후술되는 구성요소들의 기능이 통합된 구성요소들로 구성될 수도 있다. 라디오 컨트롤 프레임워크(126)의 기능 및 역할은 후술되는 구성요소들이 수행하는 기능에 의해서 정의되며, 후술되는 예시적 구성요소들에 의해서 라디오 컨트롤 프레임워크(126)의 구성이 한정되는 것은 아니다. 즉, 라디오 컨트롤 프레임워크(126)는 후술되는 구성요소들의 기능들 중 적어도 일부를 수행하기 위한 다양한 구성을 가질 수 있다.
도 4는 본 발명의 실시예에 따른 엘리먼트리 RVM(eRVM)을 도시한 개념도이다.
도 4를 참조하면, 본 실시예에 따른 엘리먼트리 라디오 가상 머신(Elementary RVM)(400)은, 데이터 오브젝트(DO, Data Objects)(470), APEs(460), 추상화 스위치 구조(ASF, Abstract Switch Fabric)(440), 및 컨트롤 유닛(CU, Control Unit)(430)을 포함한다. eRVM(400)은 다른 eRVM 또는 RVM(490)을 포함하지 않을 수 있다.
기본 작동은 특정 라디오 어플리케이션 패키지(RAP, Radio Application Package)(510)에서 정의된 UDFB(516) 및 표준 기능 블록(SFB, Standard Functional Block)(517-1~M)으로서 표준 라디오 라이브러리에서 수신한 연산자를 포함할 수 있다.
프로그램 메모리(420)는 eRVM(400)의 구성을 결정하는 구성코드를 포함할 수 있다. 컨트롤 유닛(430)은 프로그램 메모리(420)에 저장된 복호화 구성코드를 기초로 APEs(460), Dos(470), 추상화 스위치 구조(ASF, Abstract Switch Fabric)(440)를 위한 초기화 및 설정 지시를 생성할 수 있다.
ASF(440)는 CU(430)의 신호에 따라 APEs(460) 및 데이터 오브젝트(470)들을 연결할 수 있다. 하나의 데이터 오브젝트(470)는 여러 개의 APEs(460)와 연결 될 수 있다. 하나의 APE(460)는 다수의 데이터 오브젝트(470)들과 연결 될 수 있다. 다른 eRVMs로부터의 데이터 오브젝트는 외부 데이터 포트(480)를 통해서 ASF(440)와 연결될 수 있다.
도 4에 도시된 바와 같이, eRVM(400) 에서의 기본 동작은 라디오 라이브러리 (514)또는 UDFB 세트(Set)(450)에서 다운로드된 동작으로 구성될 수 있다. 기본 동작은 오직 SFB(517-1~M) 또는 UDFB(516)를 포함할 수 있다. eRVM은 플랫폼에 독립적일 수 있다. 기본 동작이 라디오 라이브러리(514)에 대응되기 때문에, 각 APE(460)에 로드된 SFB의 입상(Granularity)은 서로 모두 다를 수 있다.
컨트롤 유닛(430)은 Configcode(IR 혹은 Source Code 형태의 RA Code)에 따라 데이터 오브젝트(470), APE(460), ASF(440)의 행동양식을 결정해주는 기능을 수행한다. 컨트롤 유닛(430)에 의해 APE(460)가 데이터에 접속되는 시점이 결정되고, 각 APE(460)의 활성 타이밍이 결정될 수 있다. 이를 위해, 컨트롤 유닛(430)은 구성코드(Configcode) 내 메타데이터(513)로부터 타이밍 정보를 획득할 수 있다. 데이터 입력이 수행될 때, APE(460)는 자동으로 초기화될 수 있다. 각 APE(460)에 구비된 동작의 분할 정도는 구성코드를 실행하는 하드웨어 플랫폼에 따라 모두 다를 수 있다.
전술한 데이터 오브젝트(DO, Data Object)(470)는 메모리를 추상화(Abstract)해주는 추상화 리소스(Abstract Resource)이다. 다시 말해, 송수신 데이터(Data)를 처리하는 과정에서 필요한 중간 데이터를 저장(Keeping)하기 위한 추상적 메모리 개념이라고 할 수 있다.
추상화 처리 엘리먼트(APE, Abstract Processing Element)(460)는 단말 장치의 플랫폼(Platform)에 따라 서로 다른 하드웨어 리소스(Hardware Resource)를 추상화해주는 추상화 리소스이다.
다시 말해, 미리 정해진 플랫폼으로 결정되는 플랫폼 특정한(Platform Specific) 하드웨어 리소스에서 라디오 라이브러리(514) 또는 UDFB 세트(Set)(450)에서 다운로드된 기본 작업(Basic Operations)(410) 즉, 표준 기능 블록(SFB)과 사용자 정의 기능 블록(UDFB)이 처리(Processing)할 수 있도록 하는 추상적 계산 엘리먼트(Computational Element) 개념이다. 추상화 스위치 구조(Abstract Switch Fabric)(440)는 데이터 오브젝트(470)와 APE(460)를 연결해주는 추상적 스위치 개념이다.
기본 작업(Basic Operations)(410)은 해당 RVM에서 프로세싱될 수 있는 기능 블록(Functional Block(s))을 지칭할 수 있다. 다시 말해, 엘리먼트리 라디오 가상 머신(eRVM)(400)에서는 SFB(s)와 UDFB를 뜻하고(도 6 참조), 라디오 가상 머신(RVM)(515)에서도 SFB와 UDFB를 의미할 수 있다(도 5 참조).
프로그램 메모리(Program Memory)(420)는 구성코드(Configcode) 즉, 중간 표현(IR, Intermediate Representation) 혹은 소스 코드(Source Code) 형태의 라디오 어플리케이션 코드(RA Code)를 저장할 수 있는 메모리를 의미할 수 있다.
한편, eRVM 내 기본 작업은 레퍼런스 라디오 라이브러리(220) 및 UDFB 세트(Set)(450)에서 다운로드된 작업들로 구성될 수 있다. 기본 작업이 레퍼런스 라디오 라이브러리(220)에서만 SFBs을 받는 경우, 소정 RAP 내 UDFBs 각각은 대응 eRVM 또는 RVM 계층에 매핑될 수 있다.
본 발명의 일 실시예에 따른 라디오 가상 머신을 적용한 네트워크 기능 가상화에서, 라디오 가상 머신은, 기지국 플랫폼을 위한 실행가능 코드인 configcodes를 실행 코드들로 컴파일 하기 위한 JIT(Just-in time) 또는 AOT(Ahead-of-time) 방법을 제공하는 백-엔드(Back-end) 컴파일러를 포함할 수 있다.
다시 말해, 본 발명의 일 실시예는 라디오 어플리케이션 구성코드에 포함된 사용자 정의 기능 블록을 하드웨어 독립적으로 실행할 수 있는 라디오 가상 머신의 구조를 적용한 네트워크 기능 가상화를 포함할 수 있다.
본 발명의 일 실시예에 따른 라디오 가상 머신을 적용한 네트워크 기능 가상화는 에지 클라우드 등의 통신망 서버에 적용할 수 있다.
전술한 실시예들의 동작 방법은 이를 구현한 프로그램이나 소프트웨어 형태로 컴퓨터 판독 가능 매체(기록매체)에 저장되도록 구현될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하는 형태로 구현될 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다.
또한, 컴퓨터 판독 가능 매체는 롬(Rom), 램(Ram), 캐시 메모리, 플래시 메모리(Flash Memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(Compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(Interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 하드웨어 장치는 전술한 실시예의 라디오 어플리케이션 실행 방법을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지일 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (1)

  1. 라디오 어플리케이션 구성코드에 포함된 사용자 정의 기능 블록을 하드웨어 독립적으로 실행할 수 있는 라디오 가상 머신의 구조를 적용한 네트워크 기능 가상화.
KR1020170154287A 2017-11-17 2017-11-17 라디오 가상 머신을 적용한 네트워크 기능 가상화 KR20190056889A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170154287A KR20190056889A (ko) 2017-11-17 2017-11-17 라디오 가상 머신을 적용한 네트워크 기능 가상화

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170154287A KR20190056889A (ko) 2017-11-17 2017-11-17 라디오 가상 머신을 적용한 네트워크 기능 가상화

Publications (1)

Publication Number Publication Date
KR20190056889A true KR20190056889A (ko) 2019-05-27

Family

ID=66679058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170154287A KR20190056889A (ko) 2017-11-17 2017-11-17 라디오 가상 머신을 적용한 네트워크 기능 가상화

Country Status (1)

Country Link
KR (1) KR20190056889A (ko)

Similar Documents

Publication Publication Date Title
US9612816B2 (en) Method for operating software defined radio application
KR102292057B1 (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
KR20170040972A (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
KR101701037B1 (ko) 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
KR20140126259A (ko) 라디오 어플리케이션을 실행하는 단말 장치
US7752635B2 (en) System and method for configuring a virtual network interface card
US20190007811A1 (en) Reconfigurable mobile device using unified radio application interface, and operation method thereof
EP2225832B1 (en) Multiple radio instances using software defined radio
KR101796794B1 (ko) 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법
KR101945941B1 (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
EP2838014A1 (en) Method for distributing, installing and executing software-defined radio application
US10911941B2 (en) Reconfigurable radio equipment having multiple radio computers, and operation method for the same
US20100235827A1 (en) Creation of multiple radio instances
WO2017101811A1 (en) Space and time aware organization and isolation of components in real time systems
KR20190056889A (ko) 라디오 가상 머신을 적용한 네트워크 기능 가상화
KR20190056883A (ko) 라디오 가상 머신 적용 다중모드 기지국 플랫폼
KR101836509B1 (ko) 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법
KR20210032294A (ko) 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 기능 블록들 간의 통신 방법
KR20210032295A (ko) 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 라디오 어플리케이션을 구성하는 기능 블록들의 동적 재구성 방법
KR102673243B1 (ko) 복수의 라디오 컴퓨터를 구비한 재구성 가능한 라디오 장치 및 이를 위한 동작 방법
KR102308699B1 (ko) Rrs 기반의 차량용 통신 장치
KR20210032293A (ko) 복수의 라디오 컴퓨터를 가진 재구성 가능한 라디오 장치에서 통합 라디오 어플리케이션의 분산 설치 방법
Jin et al. ETSI reconfigurable radio system—Standard architecture and radio application
KR20220045287A (ko) Sdr 기반 차량 통신 플랫폼의 동작 방법
Ahn et al. ETSI reconflgurable radio system—Standard interfaces for radio reconfiguration