강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sdyeob10024541
sdyeob10024541

câu hỏi đã được viết

Cấu trúc và nguyên lý của kiến trúc Arm cho phát triển phần mềm hệ thống - Phần 1 Giảng dạy trực tiếp bởi tác giả (Phiên bản 2024)

6.3.3 Lệnh thay đổi mức độ ngoại lệ: Lệnh SVC

Armv8의 Exception Level에서 질문이 있습니다.

Viết

·

145

0

svc, hvc, smc와 같은 어셈블리 명령어를 수행하면, 내부적으로 exception이 발생하고 el이 변경된다고 말씀해주셨는데, 여기서 el이 변경된다는 건 하드웨어적으로는 단순히 PSTATE의 EL 비트 필드의 값이 갱신되는 것으로 이해해도 될까요?

임베디드arm-architecturemicroprocessorscortex-a

Câu trả lời 2

0

sdyeob10024541님의 프로필 이미지
sdyeob10024541
Người đặt câu hỏi

답변 감사합니다.

0

austinkim님의 프로필 이미지
austinkim
Người chia sẻ kiến thức

제대로 이해하셨습니다. Arm 프로세서의 내부 하드웨어는 PSTATE의 EL 비트를 변경하면서 익셉션 레벨을 변경합니다. 현재 익셉션 레벨(Exception Level)의 정보는 PSTATE.EL에서 확인할 수 있습니다.

추가로 설명을 드리면요:

  1. PSTATE의 값은 직접 어셈블리 명령어를 통해 읽을 수 없습니다. PSTATE.EL은 currentEL이라는 시스템 레지스터를 통해서 확인할 수 있습니다.

  2. 실전 프로젝트 관점에서 보면, 현재 currentEL 시스템 레지스터를 통해 익셉션 레벨 정보(PSTATE.EL)를 읽는 것보다, SPSR_EL1 레지스터의 값을 더 많이 확인합니다. 익셉션이 유발된 시점의 PSTATE의 정보가 더 중요하기 때문입니다.

궁금하신 점이 있으면 질문을 다시 올려주세요.

감사합니다.

Hình ảnh hồ sơ của sdyeob10024541
sdyeob10024541

câu hỏi đã được viết

Đặt câu hỏi