시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
안녕하세요, memory mapped i/o 라는 것이 msr 명령어를 통해 core 에서 특정 주소 값을 변경하면 해당 gic 나 interface register 값을 변경할 수 있다는 뜻인가요? 그리고 memory mapped 라는 것은 hardware 적으로 메모리 스토어만 하면 알아서 주변 gic 나 cpu interface 의 레지스터가 자동으로 바뀌게 되는 회로(메모리와 연결되는)가 있는 것인가요? (그리고 바뀌는 타이밍은 즉시 바뀌나요?) 감사합니다.
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
안녕하세요 ARM 에서 sys mode 나 undef 모드나 이런 것들은 virtual memory 를 사용하지 못할 것 같은데, (kernel 이 virtual memory를 지원할 것 같아서요) 그러면 다른 모드는 physical memory 기반 assembly code 로 작성이 되나요? 감사합니다
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
안녕하세요! Exception Level 관련 질문이 있습니다. 질문) Exception Level을 프로그래머가 직접 설정하는 것인가요? Exception 발생하는 경우를 예시로 H/W설계자가 결정 한 것 VBAR 레지스터에 설정된 주소 + Offset 위치로 분기하도록 설계 Exception 유발 직전 상태의 PSTATE값 백업 PSATE 값 변경 : 현재 EL0인 경우 EL1로 변경 ELR, ESR 업데이트 프로그래머가 설정하는 부분 VBAR 레지스터의 값은 프로그래머가 미리 초기화 Exception Vector 주소로 분기 한 경우, 어떻게 동작할지 코드 작성 → Exception Handler 작성 결국 프로그래머가 Exception Handler를 작성하는 것으로 이해했는데, 프로그래머가 자신이 작성하는 코드의 Exception Level을 설정할 수 있나요? 프로그래머가 작성하는 코드의 Exception Level이 어떻게 결정되는지 궁금합니다.
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
안녕하세요! 우선 너무 좋은 강의 잘 보고 있습니다. 질문 Current Exception Level 정의 를 어떻게 내리는지 질문드립니다. 제가 처음에 이해하기로는 리눅스OS 위에서 User App이 실행 중 Exception이 발생했다면 Current El = EL0 라고 생각했습니다. 하지만 강의를 듣다보니 Exception handler가 어느 EL에 정의 되어있는지에 따라 Current EL을 정의해야하는 것이라고 이해했는데, 위와 같이 이해하면 문제가 없을까요?
hypervisor 위에 두개의 다른 guest os가 있다면, 그때, 각 guest os에서 서로 다른 app이 실행되는데 어떤 메커니즘으로 서로의 app은 inter process communication이 가능한가요? 그리고 inter process communication에서 대표적인 model이 공유 메모리 이용, message passing이 있다고 하는데, 두 방법 모두 사용 가능한지도 궁금합니다. 감사합니다.
안녕하세요! 강의 정말 잘 듣고 있습니다. 궁금한 사항이 있어 문의 남깁니다. 강의 중간에 "EL1의 guest OS가 처리해야하는 irq를 Hypervisor에서 hooking을 해서 처리하게 할 수 있다" 라고 하셨는데요, EL1의 irq라는게 무슨 뜻인가요??? 제가 이해하기로는 EL1에서 코드가 수행하고 있을때 irq가 발생하는걸 뜻하느거 같습니다. 제가 이해한게 맞나요?? 아니면 irq마다 EL1 irq EL2 irq와 같이 처리해야하는 EL이 정해져있나요???
안녕하세요. 익셉션 모델을 이용해서 하이퍼바이저를 구현하는 방식말고 다른 방법,모델로 하이퍼바이저를 구현하는 방법이 더 있는지 문의드립니다. 익셉션 모델을 이용해서 하이퍼바이저를 구현한다라는 포괄적인 의미가 잘 이해되지 않아서 이런 질문이 발생한 것 같습니다. 감사합니다.
다음 두가지중에 어떤 것이 맞는지 문의드립니다. 1. wfe, wfi, hvc를 이용해서 guest exit을 했을때 익셉션이 발생하면 synchronous 익셉션 주소로 분기 2. wfe, wfi, hvc를 이용해서 guest exit을 하면 무조건 synchronous 익셉션 주소로 분기