인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

platformpjt02님의 프로필 이미지

작성한 질문수

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

메모리 어보트 익셉션의 흐름

exception 문제

작성

·

44

0

같은 exception level 이나, exception 종류가 계속 연속해서 들어오게 되면 어떻게 처리가 되나요? spsr_mode 가 계속 덮어 씌워질 것 같아요

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. platformpjt02님.

예외 처리의 경우, 같은 예외 레벨이나 같은 종류의 예외가 연속적으로 발생할 시에 대한 질문을 주셨네요. ARM 아키텍처에서는 이런 상황에 대해 특정한 처리 방법들이 존재합니다.

예외 처리의 기본 개념

  1. SPSR(Register 상태 저장): 각 예외 레벨은 Stack에 레지스터 상태를 저장합니다. SPSR은 특정 레벨에서 실행 중인 명령어 상태를 저장해, 예외 처리 후 원래의 실행 상태로 복귀할 수 있도록 합니다.

  2. Nested Exception Handling: 대부분의 시스템에서는 기본적으로 예외가 중첩(Nested)되는 상황을 대비해 설계되어 있습니다. 즉, 새로운 예외가 발생하면 현재의 SPSR 상태와 레지스터가 다시 저장되고, 새로운 예외을 처리합니다.

  3. Interrupt Masking: 빈번한 예외를 방지하고자, 시스템은 특정 우선순위 이상으로 설정된 예외만을 처리하도록 인터럽트를 마스크할 수 있습니다. 이를 통해 불필요한 예외 중첩을 방지합니다.

추가 설명 및 관련 링크

이해를 돕기 위해 위에 언급된 관련 게시물에서 구체적인 예외 처리 흐름을 설명하고 있습니다. 이는 ARM 아키텍처에서의 예외 처리 메커니즘을 보다 명확히 이해하는 데 도움이 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.