[Arm프로세서] 하이퍼바이저: wfe/wfi 명령어

Guillermo Austin Kim|2022년 1월 28일
Posts

[Arm프로세서] 하이퍼바이저: wfe/wfi 명령어

Guillermo Austin Kim|2022년 1월 28일

많은 개발자들은 hvc 명령어를 통해서만 EL1에서 EL2로 진입할 수 있다고 알고 있습니다. 사실 그렇지는 않습니다. 게스트 OS에서 하이퍼바이저로 진입하는 다른 방법은 wfe와 wfi 명령어를 실행하는 것입니다. 원래 wfe와 wfi 명령어는 Arm 코어가 저전력 모드(low-power mode)으로 실행될 수 있게 동작합니다. HCR_EL2 레지스터의 TWE 혹은 TWI 비트를 1로 설정하면 EL2 트랩이 유발되어, EL2로 진입합니다. 시스템에 하나의 운영체제가 존재하는 환경에서는 wfe, wfi 명령어는 저전력 모드용으로 실행되나, 하이퍼바이저와 같이 시스템에 2개 이상의 운영체제가 실행되는 환경에서, HCR_EL2 레지스터의 TWE 혹은 TWI 비트를 1로 설정하면 hvc 명령어처럼 EL2로

Related Posts

3 posts

[Hyper-V] 고정 IP 할당 및 Port Forwarding

박모 사진첩|2022년 9월 7일

vSwitch 쪽으로 네트워크 공유 설정으로 해도 되긴하는데, 이러면 여러가지 짜증에 직면할 수 있음. 고정 스위치를 만들고 이를 통하는 방법 사용 New-VMSwitch -SwitchName "MySwitch" -SwitchType InternalNew-NetIPAddress -IPAddress 172.16.0.1 -PrefixLength 16 -InterfaceAlias "vEthernet (MySwitch)"New-NetNat -Name "NATNetwork" -InternalIPInterfaceAddressPrefix "172.16.0.1/16" 포트 포워딩Add-NetNatStaticMapping -NatName NATNetwork -Protocol TCP -ExternalIPAddres

[Arm프로세서] GIC: 인터럽트 소스와 타입

Guillermo Austin Kim|2022년 9월 2일

GIC는 4가지 타입의 인터럽트 소스를 처리하며 그 종류는 다음 테이블에서 확인할 수 있습니다. 표 16.2 GIC를 구성하는 인터럽트 소스의 종류 GIC는 4가지 인터럽트 입력을 처리하는데 기능에 따라 다음과 같이 분류할 수 있습니다. ● PPI, SPI, LPI: 외부 I/O 디바이스에서 발생하는 하드웨어 인터럽트 ● SGI: 외부 I/O 장치가 아닌 소프트웨어적으로 유발되는 인터럽트 외부 I/O 장치에서 인터럽트가 발생하면 SPI나 PPI를 통해 CPU 코어로 전달됩니다. 먼저 SPI와 PPI에 대해 알아볼까요?

[Arm프로세서] GIC의 기본 구조

Guillermo Austin Kim|2022년 8월 21일

효율적으로 인터럽트를 설정 및 처리하기 위해 GIC를 사용합니다. GIC를 구성하는 하드웨어 블록을 제대로 이해하고 GIC에서 정의한 레지스터의 용도와 사용 방법만 익히면 됩니다. GIC의 가장 중요한 기능은 무엇일까요? 이 질문에는 다음과 같이 답할 수 있습니다. ● 인터럽트의 우선 순위를 각 I/O 장치에 적용해 설정 ● 입력으로 받은 인터럽트를 CPU에 전달 GIC는 인터럽트 콘트롤러이므로 GIC의 주된 기능은 다른 인터럽트 콘트롤러와 다르지 않습니다. 대신 GIC에서 인터럽트를 4가지로 분류해 관리합니다. 이어서 GIC에서 정의된 4가지 인터럽트 소스를 소개하고 인터럽트 상태 머신을 설명합니다.