딥러닝 기반 AI는 미래 자율주행자동차의 대체 불가능한 핵심 기술로 부상하고 있다. 하지만 Automotive AI 구현은 극단의 도전이다. (1) High Performance Real-Time Computing, (2) Functional Safety를 고려한 Computing, (3) Security를 고려한 Computing, (4) Low Power Computing 등의 핵심 비기능적 요구사항을 동시에 만족시켜야 하기 때문이다. 많은 기업과 연구실들이 자율주행자동차 기술 개발을 진행하고 있지만, 이런 요구사항들에 체계적으로 접근하는 연구는 매우 드물다. RTOS Lab은 Automotive AI를 위한 소프트웨어 플랫폼과 이를 위한 핵심 요소 기술 개발을 통해 완전한 자율주행을 위한 비기능적 요구사항들을 효과적으로 만족시킨다.

Research Map
 Research MapRTOS Lab은 Automotive AI에서 요구되는 Architectural Design Approach를 지원하기 위한 Language-oriented Software Platform을 개발한다. 첫째, 자율주행의 비기능적 요구사항들을 명시할 수 있는 프로그래밍 언어인 SPLAD(Stream Processing Language for Autonomous Driving)을 제안한다. 둘째, SPLAD를 통해 명시된 비기능적 요구사항들을 만족시키며 Automotive AI 응용들을 수행할 수 있는 런타임 스택을 개발한다. 셋째, SPLAD로 작성된 프로그램의 Timing Constraints 만족 여부를 디자인 단계에서 분석할 수 있는 방법론을 제안하고 분석 툴을 개발한다.

1. SPLAD: Stream Processing Language for Autonomous Driving
SPLAD: Stream Processing Language for Autonomous DrivingRTOS Lab은 자율주행 알고리즘을 효과적으로 표현하고 비기능적 요구사항을 명확하게 기술하기 위한 새로운 프로그래밍 언어인 SPLAD(Stream Processing Language for Autonomous Driving)를 제안한다. SPLAD는 data flow graph를 이용하여 자율주행자동차의 센서 데이터 처리 과정을 시각적으로 나타낼 수 있다. 또한, SPLAD는 실시간성을 만족시키기 위해 Timing Constraints을 명시할 수 있고, 신뢰성을 보장하기 위해 다양한 Exception을 정의하고 이에 대한 처리를 명시할 수 있다. 본 연구실은 SPLAD 프로그램 개발을 지원하기 위해 GUI-based Schematic Capture Tool, Code Generation Tool 등 다양한 도구를 개발한다.

2. SPLAD Runtime
 SPLAD RuntimeRTOS Lab은 SPLAD 프로그램을 수행하기 위한 소프트웨어 스택인 SPLAD Runtime을 개발한다. SPLAD Runtime은 SPLAD 프로그램 상에 명시된 비기능적 요구사항들을 만족시킬 수 있도록 (1) Real-Time Stream Processing Framework, (2) DDS 기반 Real-Time Pub-Sub Communication Middleware, (3) Linux Kernel로 구성된다. 특히, 본 연구실은 실시간 스트림 프로세싱을 위해 자율주행자동차에 도입되는 새로운 하드웨어를 지원하기 위해 Linux Kernel을 최적화하는 연구들을 활발하게 진행하고 있다. 이런 연구의 대표적인 예로는 CPU와 GPU가 메모리를 공유하고 있는 시스템에서 메모리 경합으로 실시간 태스크의 지연이 발생하는 문제를 해결하는 연구가 있다.

3. Timing Verification of SPLAD Program with RT Calculus
Timing Verification of SPLAD Program with RT Calculus자율주행자동차는 실시간 시스템이기 때문에 사전 분석을 통해 Timing Constraints의 만족 여부를 검증하는 것이 매우 중요하다. 이를 위해 RTOS Lab은 SPLAD 프로그램 상에 명시된 Timing Constraints의 만족 여부를 체크할 수 있는 도구를 개발한다. 추가로 이 도구는 Timing Violation 발생 시 그 원인을 분석할 수 있는 여러 특성을 도출할 수 있다. 우선 SPLAD를 사용하여 표현된 알고리즘과 차량에 탑재된 하드웨어를 수학적으로 모델링하여 Abstract Performance Model을 구축한다. 그 이후 사전에 Real-Time Calculus를 사용하여 도출한 이론들을 사용하여 End-to-end Latency Bound, Minimum/Maximum Rate 등의 Timing Property들을 계산한다.