6.1 멀티코어 프로세서 관련 군 감항 지침 및 기준
앞서 서술한 내용을 바탕으로 멀티코어 프로세서를 항공기에 적용할 시 항공기 비행안전성 관점에서 고려해야 할 사항들을 해외 군용(Military) 분야에서는 크게 다음 3가지 문서를 기반으로 기준 및 지침을 정의하고 있다. 참고로 AA-22-01의 경우, MIL-HDBK-516C 배포 후 미 국방부에서 인증지침으로 추가 고시한 문서이며 이후 MIL-HDBK-516D 개정을 통해 AA-22-01 내용을 기반으로 Rev D 내 멀티코어 프로세서 관련 내용을 추가하였다. 이로 인해, AA-22-01과 MIL-HDBK-516D 내 MCP 관련 상당수 내용이 많이 유사하다는 점을 참고해주기 바란다.
6.1.1 AA-22-0
AA-22-01은 기존 MIL-HDBK-516C에 제시된 컴퓨터 자원(Computer Resources) 및 항공전자(Avionics) 기준만으로는 MCP의 안전성을 적절히 평가하기 어렵다는 점을 인식한 미 국방부에서 MCP가, 특히 안전 필수 기능(Safety Critical Function, 이하 SCF)를 지원하는 경우 준수해야 할 추가 인증지침 및 검증방법 등을 제공하기 위해 발행된 인증지침서이다. 인증지침 및 검증방법은 MIL-HDBK-516C의 컴퓨터 자원 장절인 15장의 기준을 기반으로 기존 기준 대비 추가되어야 할 표준(Standard)과 그에 따른 추가 입증방법에 대해서 나열식으로 다음 그림과 같이 제시하고 있다.
그림 4. AA-22-01 표지
그림 5. AA-22-01 내 표준 및 추가 입증방법 예시
AA-22-01에서 요구하는 핵심 감항성 기준 및 검증방법 대다수를 차지하는 15.3.1 장절의 추가 인증 지침이 요구하는 바를 간략히 하면 다음과 같다.
- 하드웨어 아키텍처 및 설정 제한(15.3.1)
- 안전지원 소프트웨어 요소(Safety Support Software Element, 이하 SSSE)를 처리하는 코어의 경우, 각 코어가 독립된 OS를 실행하거나 서로 다른 역할을 수행하는 비대칭 다중 처리(Asymmetric Multiprocessing, 이하 AMP) 또는 하나의 OS가 모든 코어를 관리하면서 특정 어플리케이션 또는 스레드를 지정된 코어에 고정하는 형태의 바운드 다중 처리(Bound Multiprocessing, 이하 BMP) 구조를 완벽히 지원하도록 설계해야 함
15.3.1 기준의 추가 핵심 감항성 기준 및 검증방법(Additional Standard & Method of Compliance) 중 ‘미사용 코어 관리’ 항목을 대표 예시로 기준 항목, 요구 기준, 검증방법 및 테스트 분석 방법은 다음과 같다.
6.1.2 MIL-HDBK-516D
MIL-HDBK-516D는 기존 MIL-HDBK-516C에서 부재하던 MCP 관련 인증기준을 MCP 관련 감항 지침서인 AA-22-01을 기반으로 기준 공백을 메워 정식 규정으로 통합시키는 과정을 거쳤다. MIL-HDBK-516D의 15장 컴퓨터 시스템 및 소프트웨어(COMPUTER SYSTEMS AND SOFTWARE) 장절에서는 AA-22-01를 통해 수립한 MCP 추가 표준 및 적합성 입증방법이 기존 기준들과 정식으로 통합되어 기준화되었으며, 각 검증 항목별로 “In addition, for designs utilizing MCP environments:” 문구 추가를 통해 MCP 관련 필수 인증 요구사항을 명문화하고 있다.
그림 6. MIL-HDBK-516D 표지
그림 7. MIL-HDBK-516D 내 MCP 기준(15.1.4)
AA-22-01과 마찬가지로, MIL-HDBK-516D 또한, 하드웨어 관련 기준인 15.3.1 항목을 MCP 관련 핵심 기준으로 제시하고 있으며, 특히 MCP 하드웨어 요소와 관련하여 다음 8가지 상세 기준을 요구하고 있다.
- 코어 활성화 및 비활성화 통제
- 하드웨어적으로 활성화 및 비활성화된 코어 및 리소스를 별도 식별해야 하며, 비활성화된 코어는 시스템 작동 동안 그 상태를 유지해야 함
- 캐시(Cache) 할당
- 최하위 레벨 캐시는 해당 처리 코어에 전적으로 할당(dedicated)되어야 하며, 상위 레벨 캐시는 물리적 또는 파티셔닝 방식을 통해 개별 코어에 전용으로 할당되어 성능 저하를 막아야 함
- 데이터 일관성(Data coherency)
- MCP 환경 내 안전 임계 처리와 관련된 데이터의 가치와 타이밍 무결성을 유지하기 위해 데이터 일관성이 구현되어야 함
- 간섭 채널(Interference channels) 및 리소스 경합 방지
- 간섭 채널 및 리소스 경합 가능성이 있는 영역을 식별하고, SCF 작동 무결성에 악영향을 주지 않도록 완화 조치를 마련해야 함
- 결정론적 성능 저하 기능 비활성화
- 동적 클럭 속도 수정(Dynamic modification of clockrates) 등 결정론적 처리에 영향을 주거나 간섭을 유발할 수 있는 MCP의 동적 성능 수정 기능은 비활성화하거나 안전하게 완화해야 함
- AMP/BMP 아키텍처 필수
- SCF를 지원하는 소프트웨어 요소(SESS)를 처리하는 코어에 대해 비대칭 다중 처리(AMP, Asymmetric Multi-Processing) 또는 바운드 다중 처리(BMP) 방식을 완벽하게 지원해야 하며, 프로세스나 가상 머신(VM)을 다른 코어로 동적 할당하는 것을 허용해서는 안 됨
- 인터럽트 및 상호 연결
- 하드웨어 인터럽트는 다른 코어에 영향을 주지 않고 결정론적으로 처리되어야 하며, SCF 작업을 위해 인터럽트를 공유해서는 안 됨. 또한, 프로세서 간 상호 연결 및 중재(Arbitration) 방식이 수용 불가능한 지연(Latency) 등을 유발하지 않아야 함
이는 멀티코어라는 MCP의 구조적 특성상 하드웨어 요소로써 안정성 및 결정론적(Deterministic) 작동이 보장되는 것이 본 개정사항의 주요 목표임을 확인할 수 있다.
6.1.3 AMACC
AMACC(Army Military Airworthiness Certification Criteria)는 미 육군 항공기 체계의 감항성 평가를 위한 인증기준, 표준 및 적합성 입증방법을 제공하는 문서로 최신 공개본인 AMACC Rev B는 2024년 11월에 발행되었다. 전반적인 문서 구조 형태는 MIL-HDBK-516과 유사하며, MCP 관련된 사항은 14장(System Safety)과 15장(Software Airworthiness) 내에 수록되어 있다. 14장 내 MCP 관련 내용은 MCP의 정의 및 관련 공유 자원(실시간 OS, 인터커넥트, 캐시, 파티셔닝 메커니즘 등)을 선언하고 체계 시스템 안전 전반적인 프로그램을 계획하는 SSPP(System Safety Program Plan) 내 MCP의 위험도(Criticality), 핵심 설정값, MCP에 탑재되는 소프트웨어 등을 식별 및 평가할 수 있도록 명시하는 등, 시스템 안전 프로그램 계획을 수립하는 단계에서부터 MCP의 특성을 고려하여 위험도 평가를 수행할 수 있도록 기준 및 검증 방안을 수립함을 원칙으로 제시하고 있다. 15장에서는 MCP 관련되어 좀 더 구체적인 안전 요구사항을 명시하고 있는데, MIL-HDBK-516D와 마찬가지로 자원 할당 및 간섭, 강건한 파티셔닝(Robust Partioning), WCET 및 최악의 경우 시나리오 등을 고려해야 함을 제시하고 있다. AMACC 본문 내에는 'Table 15.1-2 Software Requirements for MCP'를 통해 15장에서 요구하는 산출물(Deliverable/Artifact) 및 세부 내용(Description)이 다음과 같이 제시되어있다.
그림 8. AMACC 내 MCP 소프트웨어 요구사항(표 15.1-2)
MIL-HDBK-516D에서는 MCP를 고려해야 할 핵심 항목들을 별도로 규정했다면, AMACC에서는 MCP 기반 항공기 소프트웨어에 대해 설계·검증·산출물 전 과정을 상세히 규정하고 있으며, 특히 소프트웨어 개발 산출물인 PSAC(Plan for Software Aspects of Certification) 등 소프트웨어 개발단계 간 발생하는 산출물 내 MCP 관련 안전 요구사항 및 검증내용을 명확히 검증하도록 명시하고 있다.
6.2 멀티코어 프로세서 관련 민간 감항 지침 및 기준
군의 MCP 관련 감항 기준 및 지침과 마찬가지로 민간 또한, 멀티코어 프로세서가 항공기에 적용됨에 따른 고려사항을 인증당국 또는 워킹그룹 주관으로 고민하고 있으며, MCP 관련 안전 요구사항을 여러 문서를 통해 고시하고 있다. 2016년, 각 나라 인증당국 소프트웨어 담당자로 구성된 CAST(Certification Authorities Software Team)에서 WCET, 간섭채널, 파티셔닝 등 MCP에서 중점 고려되어야 할 사항을 개념적으로 이해하기 위해 발간한 기초문서 CAST-32A를 시작으로, 2022년과 2024년에 FAA 및 EASA 등 전 세계 주요 항공안전당국에서 MCP 관련 항공탑재 시스템 또는 장비 내 MCP 안전성을 확인하기 위해 고시한 AC 20-193, AMC 20-193 등, 다음 장절에서는 MCP 관련 민간 안전성 인증 및 적합성 검증방법 등이 수록된 지침 문서를 설명하고자 한다.
6.2.1 CAST-32A
CAST-32A는 MCP에서 실행되는 항공탑재 소프트웨어의 안전성, 성능 및 무결성에 영향을 줄 수 있는 항목을 식별하기 위해 2016년에 만들어진 개념문서로 민·군에서 규정하는 모든 MCP 관련 안전 지침서의 기반 문서로 활용되고 있다. 단, CAST-32A의 경우, 공식적인 정책 또는 지침이 아닌 MCP 개념 및 논리 이해를 위한 선행 자료로써 이를 실제 인증기준 또는 적합성 검증방법으로 적용 시, 인증당국과 별도로 협의해야 함을 강조하고 있다.
그림 9. CAST-32A 표지
CAST-32A에서는 MCP에서 사용하는 용어의 정의부터 적용·비적용 범위를 장절별로 설명하고 있으며, 안전한 MCP 사용을 보장하기 위해 6가지의 목표(Objectives)를 정의하고 각 목표별 필요 요구사항을 개발보증수준(Development Assurance Level, 이하 DAL)에 따라 차등 적용하는 방안을 다음과 같이 제시하고 있다. 예를 들면, MCP가 적용된 DAL C 소프트웨어는 간섭 채널 식별 및 오류 처리 안전망(safety net)과 관련된 목표 대비 요구사항 적용에 있어서 제외되는 등 MCP가 적용된 소프트웨어 수준에 따라 유연하게 요구사항을 적용하고 있다.
그림 10. CAST-32A 내 MCP 핵심 목표
CAST-32A에서 요구하는 핵심 목표(Objectives)를 6가지 카테고리 및 10가지 항목으로 식별·정리하면 다음 표와 같다.
6.2.2 AC 20-193 / AMC 20-193
AC 20-193과 AMC 20-193은 민간 항공 인증당국인 미 FAA와 유럽 EASA에서 MCP 관련 항공기 감항 기준 및 적합성 검증방법을 제시한 가이던스 문서이다. 제시된 문서 내에는 CAST-32A에서 제시한 10가지 핵심 항목(자원 사용, 간섭 채널 분석, 소프트웨어 검증 등)을 기본 틀로 MCP_Software_1 등의 식별자 이름까지 거의 그대로 이관되어 작성됨에 따라 그 내용과 요구하는 바가 CAST-32A와 유사하다.
그림 11. AC 20-193 표지
그림 12. AMC 20-193 표지
CAST-32A는 공식 정책이 아닌 교육·정보 전달 목적으로 관계 인증 당국 간 협의한 내용이 작성된 실무 가이드라인 수준의 문서였다면, AC 20-193 및 AMC 20-193의 경우, 항공산업 내 MCP 도입이 본격화됨에 따라 공식적인 MCP 인증지침 및 적합성 입증방법으로써 FAA, EASA에서 공식 발행한 문서이다. 미 FAA에서 발행한 AC 20-193은 미 연방규정집인 14 CFR(Code Federal Regulations)의 감항 기준을 충족하기 위한 인증 요구사항을 담고 있으며, 유럽 EASA에서 발행한 AMC 20-193은 유럽 인증기준인 CS(Certification Specifications)의 감항 기준을 충족하기 위한 방법론을 설명한다. 두 문서 모두 MCP 탑재 항공시스템 또는 소프트웨어의 안전성 입증을 위해 만들어짐에 따라 거의 동일한 구조 및 목표(Objectives)를 공유하도록 조화롭게(Harmonized) 작성되어 있다. 또한, AC 20-193 및 AMC 20-193 모두 법적 구속력이 없는 가이던스 문서로 신청자가 동등한 안전 수준을 보장하는 다른 입증방법을 대안으로 제시할 수 있음을 문서 내 제시하고 있다. 특징으로 두 문서 모두 ARINC 653, DO-178C, DO-254와 같은 최신 민간 인증지침과도 연계할 수 있는 방안을 강구하고 있는데 CAST-32A에서 존재하던 MCP_Resource_Usage_2 목표 내 DAL A 또는 B에서 요구하는 시스템의 경우 AMC 20-152A의 Objective COTS-8에 제시된 입증방법을 참고 가능함을 문서에서 제시하고 있다.
그림 13. AC 20-193 내 MCP 핵심 목표
그림 14. AMC 20-193 내 MCP 핵심 목표
6.3 민·군 공통 적용 및 고려사항 정리
앞선 장절에서 분석한 MCP 관련 민·군 인증지침 및 기준을 분석한 결과, MCP의 안전성을 확보하기 위한 핵심 목표 및 요구사항의 형태는 조금 다르나 두 분야 모두 공통적으로 MCP의 다음 항목들을 고려하고 있음을 확인할 수 있었다.
- MCP 내 활성화·비활성화된 코어의 정확한 구성 및 작동 식별
- 공유 캐시, 메모리, 인터커넥트, I/O 등 간섭 채널 식별
- 안전필수기능과 관련된 자원 사용량 및 WCET 등 최악 조건 분석
- 코어 간 데이터·제어 결합 및 관리
- 안전필수기능과 비-안전필수기능 간 격리
- 시간적·공간적 파티셔닝 적용
- 최종 MCP 탑재 구성에서의 통합시험
- MCP 시스템 내 고장 검출, 격리 및 처리
- OS, BSP, 드라이버, 설정값 등의 형상관리
제시된 사항들을 종합하면, MCP가 안전필수기능과 관련된 시스템에 관여하여 기능을 수행할 때, 간섭 채널을 포함한 MCP 구성요소들의 구성 및 작동 수준을 명확히 이해하고 이를 바탕으로 MCP 기능 또는 임무가 구현 및 실행될 때 코어 간 데이터 처리를 수행하되, WCET 등 최악의 상황이 발생했을 때 MCP가 사용자가 요구하는 데드라인 이내에 처리 가능한지를 체계적인 통합시험들을 통해 명확화해야 한다. 이뿐만 아니라, MCP 시스템 내 고장이 발생했을 때 이를 1차적으로 검출 및 인지하여 다른 기능에 영향을 주지 않도록 격리, 고장을 처리·대응할 수 있는 능력을 갖추어야 항공기 체계 내에서의 MCP 안전성이 확보됨을 확인할 수 있다.