ARM
Posts
173 posts[Arm프로세서] 하이퍼바이저: hvc 명령어(하이퍼바이저 콜)
먼저 Arm 스팩 문서에서 HVC 명령어를 설명한 부분을 소개합니다. C6.2.94 HVCHypervisor Call causes an exception to EL2. Software executing at EL1 can use this instruction to call the hypervisor to request a service. 스팩 문서의 내용은 다음과 같이 해석할 수 있습니다. 하이퍼바이저 콜은 EL2로의 익셉션을 유발한다. EL1에서 실행되는 소프트웨어는 이 명령어(hvc)를 사용해 하이퍼바이저에게 어떤 서비스를 요청한다. EL1에서 hvc 명령어를 실행해 하이퍼바이저가 구동되는 EL2로 진입하는 동작을 하이퍼바
[Arm프로세서] 하이퍼바이저를 왜 알아야 할까?
하이퍼바이저가 무엇인지 알고 나면 "하이퍼바이저를 왜 배워야 할까?"라는 의문이 생길 가능성이 높습니다. 사실 하이퍼바이저는 x86 기반 CPU에서 Vmware나 IBM과 같은 업체에서 50년전 부터 꾸준히 개발돼 왔습니다. 그래서 x86 CPU에서 데스트 탑이나 서버에서 개발됐던 기술인데, Armv8 아키텍처에서 하이퍼바이저를 왜 알아야 하는지 궁금할 것입니다. 하이퍼바이저를 배워야 하는 가장 큰 이유는 시스템 소프트웨어에서 하이퍼바이저 기법을 많이 활용하는 추세이기 때문입니다. 2020년 이후 소프트웨어 업계를 이끄는 기술은 AI와 Big Data와 클라우드인데, 3가지 기술들이 다양한 제품군의 생태계에 영향을 끼치고 있습니다. 하이퍼바이저는 클라우드 분야에서 활발히 적용되고 있는 아키텍처 중 하나입니
[Arm프로세서] 하이퍼바이저를 구성하는 요소
2개 이상의 멀티 운영체제를 동시다발적으로 실행할 수 있는 플렛폼이나 아키텍처를 하이퍼바이저라고 소개했습니다. 이어서 다음 그림을 보면서 하이퍼바이저 아키텍처를 구성하는 주요 기능에 대해 알아봅시다. 그림 12.1 하이퍼바이저 아키텍처의 전체 구조 위 그림의 가운데 윗 부분을 보면 게스트 OS1, 게스트 OS2라고 표시된 부분은 하이퍼바이저에서 실행되는 운영체제입니다. 게스트 OS1이 안드로이드, 게스트 OS2는 리눅스가 될 수 있습니다. 그런데 게스트 OS1와 게스트 OS2에서 실행되는 운영체제는 각각 독립적인 EL0와 EL1에서 실행됩니다. 게스트 OS1의 커널은 EL1, 게스트 OS1의 애플리케이션은 EL0에서 실행됩니다. 마찬가지로 게스트 OS2의 커널은 EL1, 게스트 OS2의 애플리케이
[Arm프로세서] 트러스트존(TrustZone): 시큐어 상태(Secure State)와 SCR_EL3 레지스터란
이전 포스트에서 소개했듯이 트러스트존 아키텍처 관점으로 보면 시큐어 상태와 논 시큐어 상태가 존재합니다. 일반적으로 우리가 알고 있는 유저 애플리케이션이나 운영체제 커널은 논 시큐어 상태에서 동작한다고 볼 수 있습니다. 그렇다면 각 익셉션 레벨 별로 현재 시큐어 상태인지 아닌지는 어떻게 알 수 있을까요? 바로 SCR_ELx 레지스터의 값을 통해 알 수 있습니다. [정보]SCR_ELx에서 보이는 ELx는 익셉션 레벨을 뜻하면 EL0--EL3까지를 뜻합니다. SCR_ELx 레지스터는 EL3에서만 변경하거나 접근할 수 있습니다. 다음은 EL3에서만 접근할 수 있는 SCR_EL3 레지스터의 다이어그램입니다. 그림 11.7 SCR_EL3 레지스터의 Bit Assignment SCR 레지스터의 맵을 보면
![[웹툰단행본] 『통제구역관리부』 1권 후기 : 이상한 변칙과 기이한 일들이 일어나는 공간에 대하여](https://img.zoomtrend.com/2026/06/09/1780996474-SE-5eda86fa-0d63-4afd-b8dd-b801879fed52.jpg)


![[CV] [Comi] 'あかね噺'(아카네 이야기) 22권. 아카네의 첫 전력 승부](https://img.zoomtrend.com/2026/06/08/1780982081-EC9D8CEC9585EC9D98EBA6ACEB93ACEC9CBCEBA19C.jpg)