이 글에서는 어떻게 하면 경량 프로세스 모델과 전력관리 프레임워크를 갖는 실시간 운영체제(RTOS)와 함께 임베디드 하드웨어 기술인 ARM TrustZone 을 활용한 보안 실행 환경(TEE: Trusted Execution Environment)을 이용함으로써 소프트웨어 개발자들의 산업용 임베디드 시스템 개발에 있어서 코드의 복잡성을 줄이고 비용을 제한하는 데 도움을 줄 수 있는지 살펴본다.
IEC 61508: 안전 인증 코드 갖춘 산업 시스템의 개발 및 배치
글: 앤드류 패터슨(Andrew Patterson), 멘토 그래픽스
산업 자동화가 점점 더 광범위하게 진행됨에 따라 안전 인증 코드에 대한 요구도 전례 없이 증가하고 있고, 이러한 이유로 , 산업용 장치 소프트웨어의 복잡성도 장치 인증 관련 비용과 함께 놀라운 속도로 증가하고 있다.
늘어나는 소프트웨어의 양은 IEC 61508 안전 인증 표준을 충족시키는 장치들을 개발하기 위해 고군분투하고 있는 소프트웨어 개발자들에게 있어서 커다란 문제로 대두되고 있다. 선택되는 소프트웨어 디자인은 안전 필수 애플리케이션과 비 안전 필수 애플리케이션으로 구성되며, 이는 시스템의 복잡성과 전반적인 인증 비용을 줄이는 데 직접적인 영향을 미칠 수 있다.
이 글에서는 어떻게 하면 경량 프로세스 모델과 전력관리 프레임워크를 갖는 실시간 운영체제(RTOS)와 함께 임베디드 하드웨어 기술인 ARM TrustZone 을 활용한 보안 실행 환경(TEE: Trusted Execution Environment)을 이용함으로써 소프트웨어 개발자들의 산업용 임베디드 시스템 개발에 있어서 코드의 복잡성을 줄이고 비용을 제한하는 데 도움을 줄 수 있는지 살펴본다.
인증 및 비 인증 코드
장치에 대한 안전 무결성 수준 인증을 획득하기 위해서는 소프트웨어 문서화와 시스템 내 중요 코드의 모든 라인에 대한 테스트가 필요하다. 이를 위해서는 상당한 비용이 들기 때문에 안전 필수 코드만을 인증해야 하고, 소프트웨어 인증 비용을 낮게 유지하려면 인증된 애플리케이션들이 비 필수 애플리케이션들로부터 분리되도록 소프트웨어를 설계해야 한다.
소프트웨어 개발자들에게 주어지는 한 가지 옵션은 인증된 소프트웨어를 비 인증 소프트웨어로부터 분할하는 것이다. 이는 서로 다른 두 가지 하드웨어 서브시스템을 개발함으로써 이루어지는데, 서브시스템 하나는 인증된 애플리케이션을 실행하기 위한 것이고, 두 번째 서브시스템은 비 인증 애플리케이션을 위한 것이다. 이러한 접근 방법은 효과적이기는 하지만 여러 가지 단점이 있다. 즉, 하드웨어 비용이 증가하고, 추가적인 테스트가 필요하며 공간과 무게, 발열 및 전력소비가 늘어나는 것이다.
듀얼 서브시스템 접근방법에 대한 대안 중 한 가지는 안전 필수 애플리케이션과 비 안전 필수 애플리케이션을 단일 시스템온칩(SoC)에 통합시키는 것이다. 이처럼 혼합 임계 시스템(mixed-criticality system)을 단일 모듈 상에 개발하는 데는 그에 따른 분명한 이점들이 있다. 이 같은 디자인에서 고려해야 할 문제들은 다음과 같다:
• 안전 보증을 위한 분할
• 효율적인 자원 이용을 위한 공유
• 인증된 애플리케이션/태스크에 시스템 자원 보장
• 비 인증 애플리케이션/태스크에 가능한 최상의 서비스 제공
• 비 인증 애플리케이션이 인증 소프트웨어의 동작에 미치는 악영향 차단
새로운 프로세서의 도입은 랙이나 멀티 CPU 시스템을 작은 카드 하나에 통합시킬 수 있도록 해준다. 이 새로운 프로세서들은 안전 인증 애플리케이션과 비 안전 인증 애플리케이션을 둘 다 실행할 수 있을 정도의 파워를 제공한다. 이들은 또한 공간 및 자원 분할을 위한 프로비저닝을 제공하며, 비 인증 애플리케이션의 고장을 봉쇄하여 안전 필수 애플리케이션에 어떠한 영향도 미치지 못하도록 막아줄 수 있다.
혼합 임계 시스템
“혼합 임계성”을 위해 개발된 소프트웨어 프레임워크는 소프트웨어 개발자들이 단일 하드웨어 모듈을 이용하여 인증 애플리케이션과 비 인증 애플리케이션을 둘 다 실행할 수 있는 옵션을 제공한다. 보다 정교한 소프트웨어 프레임워크는 인증된 하이퍼바이저나 ARINC653 인증 운영체제(OS)를 포함하는데, 둘 다 이기종 운영체제 디자인에 매우 적합하다. 그러나 많은 장치들에 있어서 이러한 옵션들은 소프트웨어 개발에 불필요한 복잡성을 더할 뿐만 아니라 테스트 및 문서화 비용도 증가시킨다.
애플리케이션 및 시스템 요건에 따라서는 프로세스 모델을 갖춘 가볍고 오버헤드가 적은 RTOS를 이용하거나 혹은 대부분의 주요 실리콘 공급업체들이 제공하는 내장 하드웨어 기능인 일종의 보안 실행 환경(TEE)을 활용함으로써 성능에 영향을 미치지 않고도 애플리케이션 분할을 달성할 수 있다.
프로세스 모델 접근 방법
메모리 관리 장치(MMU)나 메모리 보호 장치(MPU)를 이용하여 메모리 가상화의 부담 없이 공간 분할을 수행하는 경량 프레임워크를 제공하는 OS를 채택하면 단일 모듈 상의 혼합 임계 시스템 설계에 대한 비용효율적인 접근방법이 용이해진다. 사용자 인터페이스(UI)와 네트워킹 소프트웨어 같은 비 안전 애플리케이션들은 결함을 봉쇄하여 비 필수 서브시스템이 전체 시스템을 무너뜨리는 일이 없도록 보장해 주는 보호된 메모리 영역에서 실행된다.
인증된 애플리케이션들은 특권 레벨과 우선순위가 보다 높은 상이한 메모리 보호 영역에서 실행됨으로써 시스템 자원들을 결정론적이고 확실하게 액세스 할 수 있도록 보장해 준다. 혼합 임계 시스템은 전반적인 소프트웨어 설계의 복잡성, 테스트 그리고 규격인증(regulatory certification) 비용을 줄여준다.
그림 1: 멘토의 Nucleus에서 제공되는 프로세스 모델은 소프트웨어 결함을 보다 빠르게 분리해내는 능력과 배치된 시스템의 자가 진단 능력 덕분에 향상된 장치 신뢰성을 제공한다.
시스템 디자이너는 프로세스 모델을 갖춘 Mentor Graphics® 인증 Nucleus® 실시간 운영체제(그림 1)를 이용해 시스템 소프트웨어를 다음과 같이 두 도메인으로 분할할 수 있다:
1) 전경: 최고의 우선순위를 가지며, 안전 필수 애플리케이션에 자원 할당을 보장할 수 있다.
2) 배경: 보다 낮은 우선순위로 동작하며 비 안전 필수 애플리케이션을 지원한다. 전경 도메인의 안전 애플리케이션들은 정적으로 혹은 동적으로 연결 및 로드 될 수 있다. 정적으로 연결된 애플리케이션들은 루트 커널과 동일한 특권 레벨로 실행되는 반면, 동적으로 로드된 모듈들은 커널 공간에서 높은 우선순위 레벨로 실행됨으로써 시스템 자원에 대한 액세스를 보장한다.
보안 실행 환경(TEE) 접근방법
오늘날 가장 일반적으로 사용되고 있는, 일종의 보안 실행 환경(TEE) 능력을 갖춘 코어들을 토대로 하는 SoC에서 안전 필수 태스크를 비 안전 태스크로부터 분리시키는 일은 프로세서에 내장된 물리적인 하드웨어 분리 기능을 이용해 달성할 수 있다. TEE 기능을 이용해 시스템 자원을 두 개의 개별 도메인으로 분할할 수 있다.
도메인 하나는 특히 비 안전 필수 애플리케이션용으로, 다른 도메인 하나는 안전 필수 애플리케이션용으로 지정된다. 비 안전 도메인에는 시스템 자원의 일부(메모리, I/O 장치 등)에 대한 액세스 권한이 할당되는 반면, 안전 필수 도메인은 비 안전 도메인이 액세스할 수 있는 시스템 자원을 포함해 모든 시스템 자원들을 액세스할 수 있다. 안전 필수 도메인에 의해 명시적으로 인가되지 않는 한 그 반대 경우는 성립되지 않는다. 안전이 보장된 안전 필수 도메인을 생성하는 주된 목적은 비 안전 도메인이 액세스하거나 수정할 수 없는 하드웨어 메커니즘을 통해 자산들을 비 안전 도메인으로부터 보호하는 것이다.
TEE 기능을 갖는 멀티코어 SoC는 프로세서 코어 하나를 비 안전 도메인에, 다른 코어 하나는 안전 필수 도메인에 할당함으로써 각 도메인이 지속적으로 실행되도록 할 수 있다. 비 안전 도메인에는 여전히 시스템 자원의 일부(메모리, I/O 장치 등)에 대한 액세스 권한이 할당되는 반면, 안전이 보장된 안전 필수 도메인은 비 안전 도메인이 액세스할 수 있는 시스템 자원을 포함해 모든 시스템 자원들을 액세스할 수 있다.
공유 메모리를 이용해 데이터를 교환할 수 있으며, 인터럽트가 두 도메인 사이의 프로세서 간 시그널링으로 사용된다. 안전 필수 도메인은 비 안전 도메인과 데이터를 공유해야 할 경우, 프로세서 간 인터럽트를 이용하여 비 안전 도메인에게 공유 메모리 내에 데이터가 있음을 알려줄 수 있다. 그러나 안전 필수 도메인 내의 안전 애플리케이션은 비 안전 도메인에 의해 인터럽트 될 수 없다. 비 안전 도메인으로부터 안전이 보장된 안전 필수 도메인으로 흘러가는 데이터는 안전 필수 도메인 내의 폴링(polling) 메커니즘이 동일한 공유 메모리 전송 기능을 이용하여 검색할 수 있다.
전력관리 프레임워크 내의 작업
현대적인 소프트웨어 아키텍처들이 장치 드라이버를 통해 하드웨어 기능을 추상화하듯이, 전력관리 프레임워크는 직관적인 애플리케이션 프로그래밍 인터페이스(API) 호출 기능을 이용함으로써 제어되어야 할 모든 시스템 장치들을 위한 구조화된 메커니즘을 제공한다. 다른 장치들에 영향을 미치는 장치 하나가 변경되면 모든 관련 서브시스템 전반에 걸쳐 공동의 변화가 야기된다. Nucleus 전력관리 프레임워크의 절전 접근 방법은 다음의 네 가지 방향으로 이루어진다:
1) 시스템 상태를 이용하여 주변자치의 전력을 제어한다.
2) 동적 전압/주파수 조정(DVFS: dynamic voltage frequency scaling) 기법이 시스템 전체에 집중된다.
3) 유휴 전력관리 기능은 확인 가능한 목표 없이는 에너지를 소비하는 일이 없도록 막는다.
4) 최대절전/절전(Hibernate/Sleep) 모드는 시스템이 오랫동안 동작하지 않을 경우 오프라인 상태가 될 수 있도록 해준다.
임베디드 소프트웨어 개발자들은 전력관리 프레임워크를 사용함으로써 코드 비대화나 풋프린트 증가 없이 전력 요건을 충족시키는 코드를 효과적으로 작성할 수 있다. 안전 필수 애플리케이션 및 비 안전 애플리케이션을 개발할 경우, 전력관리 프레임워크는 임베디드 소프트웨어 개발자들이 전력 사양을 소프트웨어 설계주기 초기에 고려할 수 있도록 해준다. 풋프린트와 전력 소비를 모두 최소화하기 위한 코드를 작성하여 개발 프로세스 전반에 걸쳐 테스트함으로써 전력 요건을 달성하도록 할 수 있다.
프로세스 모델 기능, 전력관리 프레임워크 그리고 TEE에 대한 지원은 완전한 기능의 인증된 Nucleus RTOS가 제공하는 중요 기능들 중 일부에 불과하다. 본고에서는 IEC 61508 표준에 대해 살펴보았지만, 새로운 Mentor Graphics Nucleus® SafetyCert™ 상용 솔루션(그림 2)은 다양한 산업 표준들을 지원한다.
그림 2: 멘토의 Nucleus SafetyCert 솔루션과 파트너 에코시스템은 일련의 산업 표준들을 지원한다.
인증된 OS의 중요성
안전 필수 소프트웨어는 일반적으로 인증된 실시간 운영체제(RTOS)를 기반으로 작성된다. RTOS는 안전 필수 도메인에서 실행되며, 시스템 자원들을 특정한 룰에 따라 관리하는 일을 맡는다. RTOS는 인증된 애플리케이션을 지연시키거나 영향을 미치지 않도록 자원을 효과적으로 관리 및 공유하는 것이 필수적이다. 요컨대, 안전 인증 RTOS는 인증된 애플리케이션에 방해가 되어서는 안 된다. RTOS는 다음 사항들을 준수해야 한다:
• 데이터가 올바르게 수정되도록 한다
• 예상되는 결과들을 제 시간에 구현한다
• 사용자 코드가 예상대로 실행되도록 보장해 준다
• 고장 조건을 올바르게 처리한다
결론
경량 프로세스 모델과 전력관리 프레임워크를 갖는 인증된 운영체제의 선택은 산업용 장비에서 혼합 임계성을 비용효율적으로 구현하기 위한 기초가 된다. 강력한 SoC의 도입은 소프트웨어 개발자들이 TEE를 이용하여 안전 필수 애플리케이션과 비 안전 필수 애플리케이션을 하나의 SoC에 통합시킬 수 있도록 해준다. 이러한 TEE는 시스템의 복잡성과 인증 비용을 최소한도로 유지하는 데 있어서도 극히 중요하다.
###저자 약력:
앤드류 케이플스(Andrew Caples) 씨는 멘토 그래픽스 임베디드 시스템 사업부(ESD)의 제품 마케팅 매니저이다. 신생업체와 포춘 500대 하이테크 기업에서 20년 이상 일해온 경력을 가졌으며, 기술 마케팅으로부터 판매 관리에 이르기까지 다양한 직책들을 두루 역임해온 그는 캘리포니아 폴리테크닉 대학에서 전기 및 컴퓨터 공학 학사 학위를 받았다. 현재는 Nucleus Real-Time Operating System의 제품관리 직책도 맡고 있다.