작성
·
44
0
같은 exception level 이나, exception 종류가 계속 연속해서 들어오게 되면 어떻게 처리가 되나요? spsr_mode 가 계속 덮어 씌워질 것 같아요
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. platformpjt02님.
예외 처리의 경우, 같은 예외 레벨이나 같은 종류의 예외가 연속적으로 발생할 시에 대한 질문을 주셨네요. ARM 아키텍처에서는 이런 상황에 대해 특정한 처리 방법들이 존재합니다.
SPSR(Register 상태 저장): 각 예외 레벨은 Stack에 레지스터 상태를 저장합니다. SPSR은 특정 레벨에서 실행 중인 명령어 상태를 저장해, 예외 처리 후 원래의 실행 상태로 복귀할 수 있도록 합니다.
Nested Exception Handling: 대부분의 시스템에서는 기본적으로 예외가 중첩(Nested)되는 상황을 대비해 설계되어 있습니다. 즉, 새로운 예외가 발생하면 현재의 SPSR 상태와 레지스터가 다시 저장되고, 새로운 예외을 처리합니다.
Interrupt Masking: 빈번한 예외를 방지하고자, 시스템은 특정 우선순위 이상으로 설정된 예외만을 처리하도록 인터럽트를 마스크할 수 있습니다. 이를 통해 불필요한 예외 중첩을 방지합니다.
익셉션 벡터 베이스 주소 질문: 이 게시물에서는 익셉션 레벨 간의 주소 계산 등에 대해 설명합니다.
Current EL 관련 질문: 익셉션 레벨에 따라 예외 처리 순서와 방법이 다를 수 있음을 설명합니다.
이해를 돕기 위해 위에 언급된 관련 게시물에서 구체적인 예외 처리 흐름을 설명하고 있습니다. 이는 ARM 아키텍처에서의 예외 처리 메커니즘을 보다 명확히 이해하는 데 도움이 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.