[Arm프로세서] Armv8: 익셉션 종류 별 레지스터 변경

Guillermo Austin Kim|2021년 1월 27일
Posts

[Arm프로세서] Armv8: 익셉션 종류 별 레지스터 변경

Guillermo Austin Kim|2021년 1월 27일

지금까지 Armv8 아키텍처에서 익셉션이 발생하면 처리되는 전체 흐름을 살펴봤는데, 핵심 동작은 다음과 같이 요약할 수 있습니다. “Arm 프로세서는 익셉션을 감지해 익셉션의 종류 별로 지정된 주소로 프로그램 카운터로 브랜치한다.” 그런데 위와 같은 동작은 Arm 코어가 하드웨어적으로 수행합니다. 그렇다면 "Arm 코어가 하드웨어적으로 익셉션을 처리한다"라는 것은 구체적으로 어떻게 설명할 수 있을까요? 바로 Arm 코어가 익셉션과 관련된 레지스터를 업데이트하는 동작을 의미합니다. 그래서 Arm 사에서 배포한 Armv8 문서를 보면 Arm 코어가 익셉션을 처리하는 과정에서 하드웨어적으로 레지스터를 업데이트하는 동작을 슈도 코드(의사 코드)로 확인할 수 있습니다. 이번 절에서는 Arm 코어