본문 바로가기

ARM Architecture/ARMv83

ARMv8 Exception Exception CPU 아키텍처 관점에서 기계어를 정상적으로 처리하지 못한 상황을 의미하며 이를 처리하기 위해 모든 CPU Architecture에서는 대개 Exception이 유발되면 해당 Exception 종류에 해당하는 특정 주소로 분기 ARM의 경우 Exception을 "외부에서 발생한 인터럽트나 정의되지 않은 명령어를 실행하려는 시도와 같은 이벤트를 처리하기 위해 실행되고 있는 프로세스를 멈추게하는 것"으로 정의하고 있으며, Exception을 처리하기 위해 다양한 정보들을 register에 업데이트 하고, 해당 Exception 종류에 해당하는 특정 주소로 분기하는 과정을 수행함. Exception Type ARMv8의 익셉션 종류는 대략 하기와 같이 분류 됨 Synchronous Excep.. 2024. 1. 29.
ARMv8 Exception Level Exception Level Overview ARMv7 대비 ARMv8에 새로 도입된 개념 중 하나인 Exception Level은 레벨마다 System의 resource에 대한 특권(Privilege)를 다르게 부여하여 각 레벨에 맞는 동작을 수행 Privileged / Unprivileged mode를 구분하는 이유(a.k.a user space와 kernel space를 구분한 이유) Privileged mode로 동작을 하게되면 시스템의 주요 설정과 메모리 등에 접근이 가능함 만약 User Application도 Privilege가 부여되어 시스템 메모리나 시스템 설정이 가능해진 상황에서 이러한 주요 resource를 잘못 사용할 경우 시스템에 critical한 error를 유발할 수 있음. 따라.. 2024. 1. 21.
ARMv8 주요 register General Purpose Registerassembly instruction의 입력과 출력을 담당하는 registerAArch64: 각 64bit size의 X0 - X30 register로 구성AArch32: 각 32bit size의 W0 - W30 register로 구성X30은 LR(Link Register)로 사용 됨주로 데이터를 연산하거나 메모리에 접근하는 명령어를 실행할 때 address나 data를 저장하는 역할Special Register프로세스의 흐름을 저장하는 기능을 수행하는 registerException Level별로 사용하는 레지스터를 구분하여 Exception 발생 이전의 Exception Level로 복귀할 때 주로 사용 됨.종류XZR / WZR(Zero Register): .. 2024. 1. 21.
728x90