멀티코어 시스템에 멀티 OS 도입
2010년 12월호 지면기사  / 글│윤 범 진 기자

인포테인먼트 시스템은 지속적으로 증가하는 기능과 복잡성에 의해 전례 없는 연산 능력을 요구하고 있다. 이러한 기능을 지원하는 기존의 싱글코어(single-core) 프로세서는 높은 연산 능력은 물론, 자동차에서 발생하는 열, 전자파 간섭(EMI), 전력소비 등의 엄격한 제한을 극복하지 않으면 안 된다. 이 때문에 자동차 제조업체와 티어1 공급업체들은 엄격한 요구조건을 충족하면서도 필요한 성능을 높일 수 있는 멀티코어(multi-core) 프로세서에 주목하고 있다.
일반적으로 실리콘 설계의 물리적 제약을 피하기 위해서는 동종 또는 이종의 프로세서를 여러 개 탑재하는 것이 바람직한 방법이다. 특히 최근의 차량 인포테인먼트 시스템처럼 풍부한 미디어 그래픽, 상시 온(always-on) 기능, 멀티밴드 접속과 광범위한 프로세싱 요건을 제공하는 융합 기기의 경우 더욱 그렇다.
대부분의 경우 서브시스템의 다양한 요구사항을 충족하기 위해서는 멀티코어 시스템에 이종의 운용체제(OS)가 공존하는 환경을 만들 필요가 있다. 예를 들면, 결정적 동작(deterministic)을 지원하는 통신 서브시스템에는 실시간 운용체제(Real-Time Operating System, RTOS)가, 사용자 애플리케이션을 실행하기 위해서는 임베디드 리눅스와 같은 범용 OS(General Purpose OS, GPOS)가 필요하다. 이러한 이종 OS 환경에서는 시스템 수준에서 애플리케이션을 설계할 필요가 있다. 낮은 지연(latency)과 실시간 동작 이외에도 프로세서 간 통신(Inter-Processor Communication, IPC), 메모리 보호, 전력관리, 디바이스 관리 서브시스템 등의 기능도 필요하다.
또한 설계, 개발, 테스트, 복잡한 멀티코어 시스템의 도입을 효율적으로 수행하기 위해서는 통합 교차 개발(cross-development) 툴 슈트가 필요하다. 이러한 툴은 이해하기 쉽고 손에 익숙한 통합개발환경(IDE), 소위 개방형 업계 표준인 이클립스 프레임워크(Eclipse Framework) 기반이 바람직할 수 있으며, 멀티코어 플랫폼 특유의 복잡한 상태를 시각화하는 디버그 솔루션을 제공해야 한다. IDE에 완벽하게 통합되는 크로스 컴파일(cross compile) 툴과 다중 디버그 전송(JTAG, 에이전트 디버깅 등) 지원도 개발 사이클에서 대단히 중요하다.
멀티코어 시스템은 오래 전부터 존재해왔다. 현재 대부분의 멀티코어 시스템은 탁월한 성능과 전력 효율을 제공하는 임베디드 기기를 실현하며 차량 멀티미디어와 내비게이션, 모바일폰, 컨수머 기기 등 폭넓은 시장에서 소비자가 추구하는 다양한 기능을 지원하고 있다.
현재 멀티코어 프로세서로서 PowerPC 계열로는 프리스케일의 QorIQ P2020, MPC8315, MPC8377, ARM 계열로는 프리스케일의 i.MX51, Cortex A9, ARM 11 MPCore, 텍사스 인스트루먼트의 Davinci DM355와 OMAP 3530, OMAP L137, MIPS 계열로는 Raza XLS와 Cavium CN56xx, CN58xx, 인텔 계열로는 Intel Core i7 등이 있다.
자원을 공유하는 동종 코어에 부하를 분산시키기 위해서는 대칭형 멀티프로세싱(Symmetric Multi-Processing, SMP)을 사용한다. SMP에서 고려해야 할 사항에는 스케줄링 메커니즘의 호환성, 어피니티(affinity: 친화력)와 스핀락(spinlocks), 가상화 등이 포함된다. SMP와 달리, 비대칭형 멀티프로세싱(Asymmetric Multi-Processing, AMP) 시스템은 동종 또는 이종의 코어 상에서 실행하는 부하의 분할(partitioning)에, 같거나 또는 다른 OS의 여러 인스턴스(instance)를 사용하는 것이 일반적이다. AMP는 최적화된 프로세서 간 통신(IPC) 프레임워크를 통해 결정적 실시간 컴포넌트와 다른 시스템 부분을 분리하는 한편, 공통의 미들웨어와 그래픽 유저 인터페이스(GUI) 서비스를 구현할 수 있다. 또 한 가지 중요한 차이는 제어 플레인과 데이터 플레인 간 서비스의 분산이다.
일반적으로 AMP 접근법은 이종의 하드웨어 설계에 적용된다. 이러한 접근법의 주요 목적은 전용 칩에서 실행되는 전용 OS를 사용하는 데 있다. 예를 들면, 휴대용 기기나 또는 차량 인포테인먼트를 겨냥한 SoC는 RTOS나 펌웨어 코드를 실행하는 각각의 DSP 또는 GPS 칩을 구성할 수 있다.
AMP 시스템은 전통적으로 동종의 하드웨어를 상정하고 있는 OS에 대해 전례 없는 도전 과제를 안겨 주고 있다. 일반적으로 낮은 지연 성능, 결정성(determinism), 최소 풋프린트 등 AMP 시스템의 실시간 기능을 제공하는 것은 RTOS이다. 그러나 다양한 파라미터 세트 내에서 동작하고 많은 유저 애플리케이션을 관리하는 범용 OS와 공존시킬 필요도 있다.

AMP 하드웨어 아키텍처
최근의 동종 멀티코어 SoC는 기존의 멀티 코어 설계에 비해 복잡하고 더 많은 기능을 제공한다. 과거에 많은 멀티코어 시스템은 싱글코어 환경에 적합한 IP(반도체 설계 자산)을 사용해 맞춤형 ASIC이나 FPGA로 구현했다.



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>


  • 100자평 쓰기
  • 로그인


  • 세미나/교육/전시

TOP