• 검색 결과가 없습니다.

2. 멀티코어 지원 듀얼 OS 관리자 기술

문서에서 R&D연구결과보고서 (페이지 91-111)

*

입출력 장치 에뮬레이션을 통한 디바이스 메모리 접근 제어 및 가상화 기능 (clock management unit,

interrupt combiner 장치 지원)

→ 하드웨어의 특성 상 다수의 게스트 OS가 공유할 수밖에 없는 디바이스 메모리에 대해서 듀얼OS 관리자의 중재가 필요함

→ 게스트 OS가 공유 레벨로 접근 권한이 설정된 디바이스 메모리에 접근하는 경우 듀얼 OS 관리자가 이를 에뮬레이션 처리함

< 멀티코어 기반 프로세서 추상화 모듈 개발>

. 멀티코어 프로세서 추상화 기능 구현 * Bootloader 지원

→ CPU 초기 실행 모드 설정 제어를 위해 CPU0 Non-secure state Hyp 모드 설정

→ Secure state에서 Non-secure state에서 GIC 접근 지원을 위한 GIC Group 레지스터 설정, NS Bit를 1로 설정 및 HVC 명령어 지원을 위한 SCR 레지스터 설정, clock frequency를 위한 CNTFRQ 설정 완료

* SMP 지원

→ SMP 가상화를 지원하기 위해서는 초기화시 CPU0뿐만 아니라 모든 CPU의 모드가 non-secure state Hyp 모드로 변경함

→ TK1 Core Wakeup: PoWer Management (PWM) register 는 디바이스 별로 partitioning 되어 있음.

CPU partitioning 부분을 enable 하여 CPU가 low Power (LP state)에서 깨어나도록 함

→ 리눅스 커널에서 사용하는 4가지의 CPU 상태 Mask를 사용하여 secondary CPU가 정확하게 깨어났는지 확인 가능

CPU MASK Usage

Online Power off or deep sleep 상태의 CPU가 깨어남 Active 현재 CPU가 작동이 가능 한 상황

Possible 커널의 해당 CPU의 존재 인식 여부 Present 하드웨어에서 해당 CPU 존재

→ secondary CPU들이 low power 상태에서 깨어난 후 처음 실행해야 하는 코드가 Reset handler로

* VGIC 지원

WDT TMR timers used as Watchodg

TSC Reference for GIT

. SW상세설계서 V4.0 (하드웨어추상화모듈 파트)

. SW시험절차서및결과서 V4.1 (하드웨어추상화모듈 파트) . 디바이스 메모리 파티션 모듈

* qplus-hyper-devpart.tar.gz . 멀티코어 프로세서 추상화 모듈

* qplus-hyper-adaptation_layer-V0.5.tar.gz . 지식재산권

. 논문 (국내 1건, 국제 1건) . 표준기고서 (국내 2건)

o 마이크로 하이퍼바이저 기술 - 기술개요

. 마이크로 하이퍼바이저는 CPU, 메모리 등의 시스템 자원을 효과적으로 스케줄링하고, 멀티코어 프로세서 환경에서의 효율적인 코어 간 통신을 지원하며, 게스트 OS의 신속한 복원을 위한 스냅샷 부팅/복원 기능을 제공

. 4차년도 목표: 멀티코어 프로세서를 추상화하여

고성능 OS 와 초소형 고신뢰 OS가 동작하는 코어를 결정할 수 있는 환경을 제공하고 멀티코어 환경에서 각 게스트 OS 들이 적절하게 동작할 수 있도록 스케줄링 기술을 개발함

. 게스트 OS는 다른 코어와의 통신 혹은 외부 장치와의 통신을 위해 인터럽트 기반 메시지를 활용하는데,

다른 게스트 OS의 인터코어 메시지로 인하여 관계 없는 게스트 OS가 영향을 받을 수 있으며 이를 방지하기 위한 인터코어 메시지 파티셔닝 기술이 필요함

. 게스트 OS를 오류로 부터 복원하는 스냅샷 기술 활용 시 오류 발생 시점의 상태와 복원 상태의 차이를 줄이기 위해 주기적으로 스냅샷 이미지를 작성하는 체크포인트 기술이 필요함

. 듀얼 OS관리자의 운영 정책(설정 기준)을 Description Language로 기술하여 정책이 추가 및 삭제되어도 이를 반영할 수 있는 도구와

실시간OS의 하드웨어 접근 상태를 트레이스하고 동작하는 작업의 실시간성 만족 여부를 확인할 수 있는 뷰어를 개발

. 듀얼OS관리자 응용서비스로

로봇제어기를 위한 가상화 기반 SW 플랫폼과 보안강화를 위한 가상화

기반 IoT 게이트웨이 시제품을 개발하고 사업화를 진행

< 고성능/고신뢰 게스트 OS 멀티 스케줄링 기술 >

- 세부 기술 내용

. 멀티코어 기반 고성능/고신뢰 게스트 OS 멀티 스케줄링 기술

* 고신뢰 OS 의 실시간성 지원하고 동시에 고성능 OS 의 멀티코어를 활용하여 처리율 지원할 수

있도록 자원을 관리하는 스케줄링 기술

→ 서버 시장의 가상화의 동일한 게스트 여러 개를 실행하는 것과 달리, 임베디드 시스템 가상화는 서로 다른 특징의 고신뢰와 고성능을 동시에 요구함

* 고신뢰 게스트를 위한 CPU Shielding 기술

→ 고신뢰 게스트와 고성능 게스트가 동시에 동작할 때 고신뢰 게스트가 실행되는 물리 CPU는 고성능 게스트로부터 보호하기 위해 사용되는 기술로 가상화에서는 실시간 시스템을 위한 가상 머신이 하나의 물리 CPU를 점유하여 사용함

→ 듀얼OS관리자에서는 고신뢰 게스트의 가상 CPU 들을 특정 물리 CPU에 할당하고 관리하고 고성능 CPU 로부터 보호하기 위한 cpu_id 에뮬레이션 기능, CPU Affinity 기능 설계/구현하고 우선순위 기능을 적용해 CPU Shielding 기법 구현

< 가상화 환경에서 인터럽트가 발생했을 때 동작 과정 >

< vCPU Migration 동작 화면 >

* 멀티코어 기반 고성능 게스트의 처리율 향상을 위한 작업량에 따른 스케줄링 기술

→ 고성능 게스트가 멀티코어 활용을 위해 고성능 게스트의 가상 CPU 들이 물리 CPU 사용량을 파악하고 작업량에 맞는 CPU를 할당 정책 설계하고 가상 CPU 들이 다른 물리 CPU 로 이주하기 위한 vCPU migration 기능 구현

→ vCPU 가 다른 코어로 이주할 경우 물리 코어와 가상 코어간에 Stack Pointer, 메모리 매핑 유지 될 수 있도록 하기 위해 이주 가능한 vCPU의 자료구조를 공유해서 관리하고 lock 기능을 추가 구현함

. 인터코어 메시지 파티셔닝 및 우선순위 지원 기술

* 게스트 OS의 인터럽트 기반 인터코어 메시지 수신 및 권한 설정 기능 → 각 게스트 OS가 접근할 수 있는 인터럽트 기반 메시지를 설정

→ 게스트 OS는 허용된 인터럽트에 대해 활성화/비활성화, 우선순위, 타겟 등 설정 가능 *

구동 중인 게스트 OS의 인터럽트만을 활성화하여 게스트 isolation 강화

→ 게스트 OS 구동 시 해당 인터럽트를 활성화하고 동작 멈출 시 해당 인터럽트를 비활성화 하여 관련 없는 인터코어 메시지로부터 게스트 OS 보호

→ 듀얼 OS 관리자의 게스트 OS 스케줄러와 연동되어 동작 * 인터럽트 타겟 CPU 가상화 기능

→ 인터럽트 기반 인터코어 메시지의 타겟 CPU를 가상 CPU로 매핑

→ 가상 CPU가 마이그레이션 되는 경우 혹은 물리 CPUID와 가상 CPUID가 다른 경우 메시지의 정확한 전달을 위해 필요함

. 스냅샷 기반 시스템 체크포인트 생성 기술 *

주기적으로 게스트 OS의 스냅샷 이미지 생성

→ 정해진 시간 주기 혹은 주기적으로 발생하는 이벤트 발생 시 게스트 OS의 스냅샷 이미지를 작성하여 시스템 오류 발생 시 손실되는 데이트를 줄이는 기술

→ 스냅샷 이미지를 작성하는 동안 게스트 OS의 구동을 멈춰야하기 때문에 향후 작성 시간을 단축하는 기술 개발

* 체크 포인트 기록을 위한 eMMC 지원 기능

→ 기능의 확장성을 위해 스냅샷 이미지 기록을 위한 다양한 저장 장치 지원

→ 기존 외장 SD/MMC 장치 지원에 이어 eMMC에 스냅샷 이미지를 저장하는 기능 추가 . 르네사스 R-Car H2 보드 지원

* 자동차 타겟에서 많이 활용되는 르네사스의 R-car H2 BSP 추가 지원하여 자동차 분아에서 가상화 기술의 활용도를 상승

→ 듀얼 코어 시스템을 쿼드코어로 확장하여 개발

→ R-car BSP의 UART, timer, GIC 드라이버 동작 검증 및 포팅 수행

. VM간 통신 기능 멀티코어 확장

* Grant Table 및 event channel 기능을 멀티코어로 확장하여 개발하고 동작을 검증 → 스핀락을 이용하여 전역 데이터를 보호

→ 4K 페이지 단위 및 2M 블록 단위의 매핑을 같이 지원함으로서 데이터 교환의 효율성 증대 → 이벤트 채널의 구조를 다수의 가상인터럽트를 활용하도록 변경하여 확장

. 듀얼 OS 관리자 응용 서비스 개발 (고안전 드론 시제품)

*

멀티로터 드론을 대상으로 가상화 기술을 적용하여 안정성과 실시간성의 두 가지 요구사항을

만족시키는 사업화 가능 분야를 확장

* 기존 드론은 리눅스나 RTOS 단일 운영체제에서 개발됨

→ 비행제어용 RTOS 게스트와 통신용 리눅스 게스트 OS의 동시 구동 환경 구축

< 가상화 기반 드론 시제품 구조 >

* 듀얼 OS 관리자를 이용하여 RTOS/Linux 동시 구동 환경 구축 → ODROID-XU3 기반으로 듀얼OS관리자 이식

→ 비행제어 프로그램 및 통신 프로그램 이식

→ 듀얼 OS 관리자의 OS간 통신 기법을 이용하여 RTOS/Linux 통신 기능 개발

. 듀얼OS 관리자 응용서비스 (차량용 디지털 대시보드)

* 듀얼OS관리자 그래픽 장치 가상화 모듈 기반 디지털 대시보드

→ 차량용 디지털 대시보드 : 클러스터와 3D 내비게이션의 가상화된 그래픽 출력 정보를 받아 출력하며, 3D 내비게이션 경로 선택 등 인터페이스 제공 고장상황 발생 시 3D 내비게이션의 이상을 알리며 듀얼OS 관리자에 의해 고장에 어떠한 영향도 클러스터에 전파되지 않음

→ 자동차 클러스터 : 속도계와 전기차의 RPM 게이지로 모델링 되어 있으며 고신뢰 시스템으로 구성되어 고성능 응용이 고장 시에도 정상적으로 동작됨

→ 3D 내비게이션 : ETRI 내부를 3D 모델링 되어 있으며 경로를 선택하여 동작 가능하며 그래픽 장치 가상화 모듈을 이용하여 클러스터와 GPU를 공유할 수 있음

. 듀얼OS 관리자 응용서비스 (IoT 스마트홈 게이트웨이) * 멀티 파티션 기반 IoT 스마트홈 게이트웨이

→ Baremetal 응용 어플리케이션: BLE Slave Nodes는 자체 ADC 인터페이스를 이용하여 센서 값을 측정 하여 무선으로 BLE Master Node로 전달하며, Baremetal 응용 프로그램인 BLE Master Controller는 BLE Master Node를 제어고, 집중 된 센서 값들을 Linux 파티션으로 넘겨줌. 이때, 두 파티션 간의 데이터 전송은 Share Memory를 UART 드라이버로 가상화 한 드라이버를 이용하여 통신

→ Linux 응용 어플리케이션: Linux 파티션의 IoT Platform Agent는 BLE Master Controller와 통신하여 센서 데이터를 가져오고, 이들(BLE Nodes, Sensor Values)을 IoT Platform 중 하나인 Thingworks와 연동 할 수 있는 Data로 모델링 한 후 WebSocket을 이용하여 원격의 서버에 전송 → BLE Master Controller와 IoT Platform Agent 간 통신은 Shared Memory를 이용하여 시리얼포트를

사용 하듯 두 O/S 간 통신 채널 API를 이용

→ BLE Master / Slave 간 멀티링크 및 양방향 통신 기능 및 IoT Platform을 이용한 WEB UI 개발 Reference Kit를 지원

. 듀얼 OS 관리자 응용 서비스 (도장로봇 시스템)

* 자동차 생산라인에 설치되는

도장로봇 시스템을 대상으로 가상화 기술을 적용하여 사업화 가능

분야를 확장

* 기존 로봇제어기에서는 OS 없이 펌웨어 수준으로 로봇SW 구동

→ 실시간 태스크 지원용 게스트 OS와 모니터링용 게스트 OS의 동시 구동 환경 구축 → 로봇 소프트웨어를 동적으로 모니터링하고 재기동시키는 고안정 구동 환경 구축

< 가상화 기반 실시간 모니터링 구조 >

* 실시간 태스크 지원용 게스트 OS와 모니터링용 게스트 OS의 동시 구동 환경 구축

→ 실시간 태스크 구동환경인 Fully Preemptible RT-Linux 게스트OS와 이를 모니터링하는 베어 메탈 게스트 OS를 구동하기 위한 Qplus-HYPER 구현

→ 실시간 및 모니터링 게스트 OS공유 디바이스 정의

→ 실시간 게스트의 점유 코어 수에 따른 동시 구동 환경 정의

→ 게스트 OS의 실시간성과 베어메탈 게스트 OS간의 격리 동작을 시험하고 검증할 수 있는 환경 구축

* 로봇 소프트웨어를 동적으로 모니터링하고 재기동시키는 고안정 구동 환경 구축

* 로봇 소프트웨어를 동적으로 모니터링하고 재기동시키는 고안정 구동 환경 구축

문서에서 R&D연구결과보고서 (페이지 91-111)

관련 문서