[ARM] 익셉션(Exception)을 효율적으로 배우는 방법
By Guillermo Austin Kim | 2020년 10월 12일 |
많은 개발자분들이 익셉션이 어렵다고 합니다. 익셉션을 배우기 어려운 이유는 무엇일까요? 다들 ARM 아키텍처의 익셉션이 어렵기 때문이라고 생각합니다. 익셉션이 어렵기 보다는 익셉션을 효율적으로 공부하지 않기 때문이라고 봅니다. 누차 강조하지만 익셉션은 매우 중요한 기능이라 운영체제를 전반적으로 관리하는 시스템 개발자는 반드시 배워야 하는 필수 지식입니다. 하지만 입문자 입장에서 익셉션은 배우기 어렵습니다. 제가 여러 시행 착오를 통해 깨달은 익셉션을 공부하는 문제점에 대해 말씀드리고 익셉션을 효율적으로 배우는 방법을 소개합니다. 익셉션을 배우기 위해 필요한 기반 지식을 같이 배운다 익셉션을 배울 때 익셉션 벡터 테이블을 분석하는 경우가 많습니다. 이 익셉션 벡터 테이블의 내용을 읽으면 잘 이해가 가나
[Arm프로세서] Armv8 익셉션 레벨: PSTATE와 currentEL 레지스터
By Guillermo Austin Kim | 2021년 11월 4일 |
Armv8 아키텍처는 프로세서의 상태를 PSTATE를 통해 제공하는데, 이 정보 중에 익셉션 레벨이 포함돼 있습니다. 먼저 Armv8 아키텍처 문서를 보면서 PSTATE가 무엇인지 알아봅시다. (출처: DDI0487Fc_armv8_arm.pdf)D1.7 Process state, PSTATE In the Armv8-A architecture, Process state or PSTATE is an abstraction of process state information. 스팩 문서의 내용을 해석하면 PSTATE는 프로세서의 다양한 상태 정보를 담고 있는 인터페이스(Abstraction)이라고 볼 수 있습니다. PSTATE에서 프로세서의 상태는 PSTATE.field에서 확인할 수 있으며, 이 필드 중
[Arm프로세서] AAPCS: Armv7: push 명령어
By Guillermo Austin Kim | 2021년 5월 31일 |
SP 레지스터와 프로세스의 스택이 변경될 때 실행되는 명령어는 push와 pop입니다. 각 명령어의 의미를 알아보고, 예제 코드를 분석하겠습니다. 먼저 Arm 스팩 문서에서 push 명령어를 어떻게 설명하는지 알아봅시다. A8.8.133 PUSH Push Multiple Registers stores multiple registers to the stack, storing to consecutive memory locations ending just below the address in SP, and updates SP to point to the start of the stored data.(출처: DDI0406C_C_arm_architecture_reference_manual) 스팩 문서에서 p
애플 실리콘 DTK 벤치마크 및 추가적인 정보들...
By being nice to me | 2020년 6월 30일 |
예상은 했지만, 이게 올라온 것을 보고 든 생각은... 와...용자들(https://browser.geekbench.com/v5/cpu/search?q=eperm-d995af6e2ef02771)... Dev Transition Kit 사용 조건에 분명 '벤치마크 결과를 올리는 것 뿐 아니라 벤치마크를 돌리는 것 조차도 허용 안한다'라고 명시되어 있고, 이 조건을 어기면 애플 개발자 영구제명이 가능하다고 되어 있음에도 호기심은 어쩔 수 없나보네요. 물론, 덕분에 다른 겁쟁이들(...)은 돌려볼 필요도 없게 해 준 것은 감사합니다. 이제 다른 용자가 제명을 각오하고 분해 인증만 해 주면 되겠군요. (애플인사이더는 핸즈온 동영상도 올렸다가 내렸네요) 저정도면 생각보다 낮은 점수인가...라고 했는데 이건 로제