[중요!]
이 강의는 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 3부'의 트러스트존에 해당되는 부분입니다. 트러스트존만 배우시려는 분을 위해 Publish했습니다만, 되도록 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 3부' 전체 내용을 다 들어 주시길 권장합니다.
[강의 소개]
스마트폰은 물론 AI 용 SoC 시스템 반도체, 전기자동차 Automotive(인포테인먼트, 자율주행) 그리고 클라우드 서버 및 맥북에서 사용되는 Arm 프로세서는 모두 Armv8-A 기반 64비트 Cortex-A(e.g: Cortex-A53, Cortex-A57, Cortex-A72) 프로세서입니다. 현재 시스템 소프트웨어 업계에서 가장 많이 필요한 기반 지식이 요구되는 내용이 Armv8-A 아키텍처라고 볼 수 있어요.
* TrustZone을 배워야 하는 이유
그런데 Arm 프로세서를 소프트웨어로 제어하는 규칙인 Arm 아키텍처를 이루는 주요 기능 중에 실전 프로젝트에 가장 많이 활용되는 기능(Feature)은 무엇일까요? 바로 '트러스트존(Trustzone)'입니다.
시스템 소프트웨어 개발자를 채용하는 경력 및 신입 면접에서 많이 나오는 질문이기도 합니다.
사실 '트러스트존(Trustzone)'는 원래 보안 확장 기능으로 사용됐지만, 이제 대부분 Arm 프로세서에서 기본으로 '트러스트존(Trustzone)' 활성화해서 사용합니다. 스마트폰을 비롯한 전기 자동차의 인포테인먼트 및 자율주행에서 사용되는 Arm 프로세서는 트러스트존이 활성화되어 있습니다.
시스템의 전체 구조를 이해하기 위해 '트러스트존(Trustzone)'는 반드시 이해해야 하는 기능입니다.
* 12년차 시스템 엔지니어의 노하우를 담은 저자직강!
제가 쓴 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 책(14장)에서 '트러스트존(Trustzone)'을 상세히 다루고 있습니다. 저자직강 강의를 통해 '트러스트존(Trustzone)'을 깊이있게 학습해보시길 바랍니다!
[강의 주요 내용]
Arm 스펙 문서를 상세하게 리뷰하면서 트러스트존의 구성 요소를 설명합니다.
Armv7 아키텍처에서 논 시큐어 월드와 시큐어 월드의 실행 흐름을 어셈블리 명령어와 함께 설명합니다.
Armv7 아키텍처의 익셉션 벡터 테이블과 모니터 모드 관련 핸들러 코드를 함께 상세하게 리뷰합니다.
Armv8 아키텍처에서 트러스트존의 실행 흐름 어셈블리 명령어와 함께 상세히 설명합니다.
Armv8 아키텍처에서 익셉션 핸들러와 익셉션 벡터 테이블 그리고 트러스트존의 실행 흐름을 함께 설명합니다. 또한 트러스트존의 동작 원리를 Arm-Trusted Firmware 코드를 분석하면서 배울 수 있습니다.