[Arm프로세서][Armv8] 트러스트존(TrustZone): 시큐어 RTOS 구현 사례: QSEE(Qualcomm's Secure Execution Environment)
By Guillermo Austin Kim | 2022년 1월 9일 |
각 SoC 칩 벤더와 보안 업체들은 arm 아키텍처의 트러스트존을 활용해 독자적인 보안 RTOS(Trusted OS)를 개발했습니다. 이번에는 퀄컴에서 설계한 QSEE를 소개하면서 시큐어 RTOS는 어떤 방식으로 구현됐는지 알아보겠습니다. QSEE는 Qualcomm's Secure Execution Environment의 약자로 Arm 아키텍처의 트러스트존을 활용해 퀄컴에서 제작한 Trusted OS 아키텍처입니다. 다음은 QSEE을 구성하는 구성도입니다.(출처: 그림 11.10 QSEE의 구성도 실제 퀄컴에서 배포된 문서에서 확인된 내용인데 이번 장에서 다뤘던 개념을 이해했다면 바로 이해할만한 내용입니다. 그림의 가장 왼쪽 부분은 논 시큐어 상태, 오른쪽 부분은 시큐어 상태를 나타냅니다. 위
[ARM] ARM 프로세서를 배워야 하는 이유
By Guillermo Austin Kim | 2019년 12월 17일 |
이번 시간에는 ARM 프로세스를 왜 배워야하는지 이야기를 해보겠습니다. 우리가 어떤 것을 처음 배울 때는 그것을 왜 배워야 하는지 알면 좋습니다. 왜냐면, 무엇을 공부하기 전에 왜 배워야 하는지 알면 더 동기 부여가 되기 때문이죠. 다른 동료들이나 친구들이 ARM 프로세서는 잘 배워야 한다고 해서 등떠밀려 공부하면 잘 집중이 안되는 거 같습니다. 그렇지 않나요? 무엇보다 배운 내용이 어떻게 활용되는지 알면 공부할 때 더 힘이 날 겁니다. 소형 기기에서 ARM 프로세서를 많이 탑재 ARM 프로세스를 배우는 가장 큰 이유는 ARM 프로세서를 많이 쓰기 때문이에요. 대부분 휴대 기기에는 ARM 프로세서가 많이 탑재돼 있어요. 여러분들, 모두 휴대폰 1개는 다 들고 다니죠? 안드로이드 스마트폰에 탑재된 CPU
[Arm프로세서] AAPCS: Armv7: LR(R14) 링크 레지스터와 어셈블리 명령어 분석
By Guillermo Austin Kim | 2021년 6월 23일 |
SP 레지스터보다 링크 레지스터인 LR(R14)는 '함수 호출'에서 가장 중요한 역할을 수행합니다. 함수를 호출한 다음에 복귀할 주소를 LR(R14) 레지스터가 저장하기 때문입니다. 우리가 함수를 작성하면 어디선가 함수를 호출할 것이라 예상합니다. 그런데 함수를 호출한 다음에, 호출된 함수의 실행이 종료되면, 함수를 호출한 바로 아랫 부분에 있는 코드가 실행됩니다. LR 레지스터와 관련된 예제 코드 분석 이번에는 아래와 같이 main() 함수의 코드(C 코드와 어셈블리 코드로 같이 변환)을 보면서 이 내용에 대해 조금 더 알아봅시다. 01 0001047c <main>:0203 int main(void)04 {05 1047c: e92d4800 push {fp
[Arm프로세서] Armv8: 범용(General Purpose) 레지스터란
By Guillermo Austin Kim | 2022년 4월 25일 |
Armv8 아키텍처의 레지스터 Armv7에서 Armv8로 넘어 오면서 Armv7의 구조가 많이 변경됐습니다. CPU 아키텍처의 최신 기법을 Armv8 아키텍처에 적용하면서 아키텍처의 구조를 많이 개선했으므로 Armv7 대비 20% 이상의 성능 개선이 있었다고 합니다. 그렇다면 Armv8 아키텍처에서 가장 많이 바뀐 기능이 무엇일까요? 레지스터와 기존의 Arm 동작 모드를 개선한 익셉션 레벨이라고 할 수 있습니다. 앞으로 Armv8 아키텍처에서 정의된 다음과 같은 레지스터를 설명합니다. * 범용 레지스터 * 스페셜 레지스터 * 시스템 레지스터 먼저 범용 레지스터를 알아봅시다. Armv8 아키텍처의 범용 레지스터 Armv8 아키텍처에서 다양한 레지스터를 정의하는데 먼저 범용 레지스터가 무