Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

94305
1828
210800


[Arm프로세서] Armv8 익셉션(Exception)을 이루는 주요 개념 ARMv8: 익셉션(Exception)

Armv8 아키텍처에서 "익셉션이 발생하면 익셉션 벡터로 프로그램 카운터가 브랜치된다"라는 수준으로 익셉션을 이해하시는 분이 있습니다. 익셉션을 모르는 분보다는 낫겠지만 Armv8 익셉션의 동작 원리를 제대로 이해하고 배운 내용을 실전 프로젝트에 활용할 정도로 익혀두는 것이 바람직합니다. 그렇다면 실전 프로젝트에 활용할 정도로 익셉션을 제대로 배우려면 어떻게 해야 할까요?  익셉션과 관련된 내용을 읽을 때 다음과 같은 질문을 스스로에 던지면서 답을 찾도록 고민할 필요가 있습니다.

   ❑ 익셉션은 소프트웨어적으로 어떤 명령어가 실행될 때 유발될까?
   ❑ Arm 프로세서가 익셉션을 감지한 후 소프트웨어적으로 어떤 처리를 수행할까?
 
위에서 소개한 질문에 답을 하려면, 다음 그림에서 소개한 익셉션을 구성하는 주요 개념에 대해 파악할 필요가 있습니다. 

 
그림 9.3 Armv8 익셉션을 구성하는 주요 개념

그림 9.3은 8장에서 다룬 그림 8.1과 거의 비슷해 보입니다. Armv8 아키텍처에서 익셉션을 분류하는 방식이 Armv7 아키텍처와 다르지만, 익셉션이 처리되는 전체 흐름은 같습니다.

먼저 그림의 가운데 부분에 보이는 선에 대해서 알아봅시다. 이 선을 기준으로 윗 부분은 하드웨어적으로 Arm 코어가 익셉션을 감지하면서 처리하는 동작이고, 아랫 부분은 소프트웨어적으로 익셉션을 처리하는 과정을 나타냅니다.

그림 9.3에서 먼저 ‘유발 요인’으로 표기된 원의 내용부터 살펴봅시다.

Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자


>

덧글

댓글 입력 영역