728x90

ARM 8

Learn the architecture - Generic Interrupt Controller v3 and v4, Overview

📢 GIC 봐도봐도 헷갈려서 간단하게 정리해봤어요 GIC는 무엇이고 왜 필요한가?Interrupt는 보통 외부 peripheral가 발생 시키는 event를 의미해요이 Interrupt에 우선순위를 매기고 적합한 PE(Process Element, CPU)에게 전달하는 역할을 하는게 ARM이 설계한 GIC에요 요즘은 멀티 코어를 사용하다보니 peripheral이 발생 시킨 Interrupt를 목적 CPU에 라우팅하기 위한 별도의 controller가 꼭 필요하죠 Interrupt는 어떤 경로로 전달 되나?Interrupt 종류 별 전달 경로가 다르다SPI (Shared Peripheral Interrupt)모든 core에게 전달 될 수 있는 interrupt (별도 세팅 없으면 적절한 core에 전달..

TIL/2025 2025.06.12

Virtualizing the generic timers, Arm architecture aarch64

📢 Timer(Physical, Virtual)에 대해 알아봐요 하루 8시간 책상에 앉아 공부를 했을 때 정말 내 순수 공부 시간이 8시간이 맞을까요?딴생각 안 하고 집중해서 공부를 한 순수 공부시간이 의미 있는 게 아닐까요? Physical Timer와 Virtual Timer도 위와 유사한 개념이에요 무심히 흐르는 벽시계, System Counter모든 코어가 공유하는 System Counter(CNTPCT_EL0)는 멈추지 않고 계속 증가해요이 카운트를 각 코어의 Physical Comparator가 감시하다 비교 값에 도달하면 “띠링!” 하고 Physical IRQ를 발생시켜요(Virtual IRQ도 마찬가지죠) +--------------------..

TIL/2025 2025.04.29

Virtualizing Exceptions in the Arm Architecture AArch64

📢 Virtualizing Exception에 대해 알아봐요 왜 Virtual Exception이 필요한가실제 하드웨어 인터럽트(IRQ, FIQ, SError)는일부는 하이퍼바이저(EL2)가 처리해야 하고,일부는 VM(EL0/EL1) 안의 소프트웨어(vCPU)가 처리해야 해요VM이 그 순간 실행 중이지 않을 수도 있어, 하이퍼바이저(EL2)가 대신 받아두고 적절한 시점에 전달해 줘야 하죠 가상 인터럽트(vIRQ/vFIQ/vSError) 개념하이퍼바이저가 실제 인터럽트를 여러 Guest OS에게 전달하기 위해 만들어낸 "가짜 인터럽트"에요물리 인터럽트처럼 동작하지만 EL0/EL1에서만 발생하며, EL2/EL3에선 절대 발생하지 않아요 Virtual Interrupt 활성화 (Enabling)하이퍼바..

TIL/2025 2025.04.29

Trapping and Emulation of instructions

📢 Hypervisor의 trap & emulate 과정에 대해 알아봐요 Trapping and emulation of instructionsHypervisor는 VM의 특정 동작(예: 전력 관리)을 Trap해서 Emulation할 수 있어요Trap이 설정되면 VM이 특정 동작(레지스터 접근, WFI 실행 등)을 할 때 예외가 발생하고, Hypervisor가 제어권을 가져옵니다. 예를 들어,HCR_EL2.TWI 비트 필드를 1로 설정하면VM(EL1/EL0)이 WFI 명령을 실행할 때 CPU 저전력 전환 대신 Hypervisor로 Trap(Exception)이 발생해요Hypervisor는 이를 이용해CPU를 저전력으로 보내는 대신,다른 vCPU를 스케줄링할 수 있어요이런 Trap 메커니즘은 VM 간 ..

TIL/2025 2025.04.29

Memory Management Unit (MMU)의 Stage 2 translation

📢 2 stage translation의 컨셉을 알아봐요 What is stage 2 translationVirtual address ↔ Intermediate Physical Address (IPA) ↔ Physical addressstage1을 위한 translation table은 Guest OS에서 컨트롤stage2를 위한 translation table은 Hypervisor가 컨트롤실제 VA → IPA → PA 변환은 MMU가 한 번에 수행해요 Virtual Address Space IPA (Stage 1 Output) Physical Address Space+--------------+ +--------------+ ..

TIL/2025 2025.04.29

About the Arm architecture

📢 Arm archtecture란 무엇인가 한 번 살펴봐요 About the Arm architectureArm은 세계에서 가장 인기있는 Processor에요A/R/M의 3가지 Profile이 있어요 A-Profile (Application)High performance를 자랑해요Linux, Window 등 복잡한 OS를 수행 할 수 있게 설계되었죠 R-Profile (Real-time)실시간 요구사항을 만족하는게 목표에요네트워크 장비나 자동차 등 임베디드 제어 시스템에 많이 사용되죠 M-Profile (Microcontroller)저전력, 작은 크기의 제품이 목표에요다양한 IoT 기기에 사용돼요 3가지 profile 모두 base가 되는 개념과 기능은 동일해요 What is architecture..

TIL/2025 2025.04.28

Arm R-Profile Architecture 학습 방법 및 자료

📢 업무를 위해 Armv8-R AArch32 공부를 해야해서 무엇으로 어떻게 공부해야 할 지 알아봤어요 ※ 초보자의 검증되지 않은 야매 학습법임을 참고하세요 :) 시작 점무엇이든 시작점을 찾는 게 가장 어려워요Arm developer 사이트 내 Home > Documentation > Architectures > Learn the architecture 에 들어가보니아래 문서가 보였어요.. 뭔가 시작 지점인 것 같아요 Introducing the R-Profile architecture guide [Link]Cortex-R profile에 대한 소개도 있어서 Armv8-R AArch32의 Overview를 학습 할 수 있어요그리고 관련 Documentation, Related Information 정..

TIL/2025 2025.04.28

Overview of Armv8-R AArch32, Cortex-R52

📢 업무를 하며 Cortex-R52 Architecture에 대해 알아봐야해서 Armv8-R AArch32를 알아봤어요 Armv8-R AArch32의 등장2013년 Virtualization 기능을 탑재한 Armv8-R AArch32가 등장 했어요R 시리즈는 실시간성 보장, 낮은 latency를 요구하는 시스템에서 효율적인 제어를 할 수 있어요 권한 레벨안전한 시스템 동작을 위해 존재해요Application은 PL0 권한을 가져 직접적인 시스템 자원 접근에 제한이 있죠 Decreasing privilege ↑ +-------------------+ | Tasks | PL0 +-..

TIL/2025 2025.04.28
728x90