태그 : armv8 요약보기전체보기목록닫기
- [Arm프로세서] Armv8: 시스템 레지스터(0)2022.05.03
- [Arm프로세서] Armv8: 스페셜 레지스터(0)2022.04.28
- [리눅스커널] IPI Call 요청: SGI(Software Generated Interrupt) 요청 (로우 레벨 뷰)!(0)2022.03.21
- [Arm프로세서] XEN 하이퍼바이저: EL2 익셉션 벡터 핸들러 코드 분석(3)2022.02.24
- [Arm프로세서] XEN 하이퍼바이저: 익셉션 핸들러 코드 소개(0)2022.02.16
- [Arm프로세서] XEN 하이퍼바이저 소개(0)2022.02.14
- [Arm프로세서] 하이퍼바이저 관점의 익셉션 벡터 테이블 분석하기(0)2022.02.11
- [Arm프로세서] 하이퍼바이저 관점으로 익셉션 벡터 테이블 스팩 문서 확인(0)2022.02.11
- [Arm프로세서] 하이퍼바이저: HCR_EL2 레지스터에 접근하는 어셈블리 코드 분석(0)2022.02.10
- [Arm프로세서] 하이퍼바이저: wfe/wfi 명령어(0)2022.01.28
- Arm_Register
- 2022/05/03 05:19
Armv8 아키텍처는 범용 레지스터 뿐만 아니라 시스템의 세부 속성을 설정할 수 있는 시스템 레지스터를 정의합니다. 이 중에 자주 사용되는 시스템 레지스터는 잘 익혀둘 필요가 있는데요. 이어서 Arm 스팩 문서를 보면서 시스템 레지스터에 대해 알아봅시다.4.3 System registersIn AArch64, system configuration is ...
- Arm_Register
- 2022/04/28 09:36
그런데 Armv8에서는 익셉션 레벨 별로 사용되는 레지스터가 있는데 이를 스페셜 레지스터라고 합니다. 그 목록은 다음 그림과 같습니다. 그림 2.4 Armv8(Aarch64) 아키텍처의 스페셜 레지스터 목록Armv7 에서는 각 동작 모드 별로 r13_<mode>/r14_<mode>와 같이 뱅크드된 레지스터가 있듯...
- Linux Kernel - Core Analysis
- 2022/03/21 09:57
저번 포스트에서는 아래 실행 흐름으로 IPI Call을 요청하는 함수를 알아봤습니다.[리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이 레벨 뷰) 이어서 Arm 아키텍처에서 제공하는 SGI를 이용해 IPI Call을 처리하는 아키텍처에 의존적인 루틴을 분석하겠습니다.다음은 gic_ipi_send_mas...
- Arm: Virtualization
- 2022/02/24 21:07
XEN 하이퍼바이저의 익셉션 벡터 핸들러를 해석하는 방법을 소개했으니 이어서 익셉션 벡터 핸들러의 코드를 분석하겠습니다.먼저 2~14번째 줄을 보겠습니다. 2 26a800: 17fffc00 b 269800 <hyp_sync_invalid>3 26a804: d503201f ...
- Arm: Virtualization
- 2022/02/16 07:22
운영체제나 RTOS 커널의 세부 동작을 파악하려면 익셉션이 유발되면 처리되는 익셉션 벡터 핸들러를 잘 알아야 합니다. 익셉션 벡터 핸들러의 코드를 보면 Armv8 아키텍처에서 정의된 스팩에 따라 익셉션 벡터 핸들러가 구현됐다는 사실을 알 수 있습니다. XEN 하이퍼바이저의 익셉션 벡터 핸들러 코드도 예외는 아닙니다. 게스트 OS와 하이퍼바이저와 통신하는...
- Arm: Virtualization
- 2022/02/14 14:11
그런데 오픈 소스 기반으로 개발되고 있는 하이퍼바이저가 있는데 그 중에서 가장 많이 사용되는 하이퍼바이저는 XEN입니다. XEN은 오픈 소스 프로젝트라서 누구나 XEN 하이퍼바이저의 코드를 내려받아 빌드해 실행할 수 있습니다. XEN에 대한 소개는 다음 홈페이지에서 확인할 수 있습니다. https://xenproject.org/이번 절에서는 Armv8...
- Arm: Virtualization
- 2022/02/11 13:54
이전 절에서 익셉션 벡터 테이블의 스팩을 분석했습니다. 이어서 EL2가 실행되는 하이퍼바이저 관점에서 익셉션 벡터 테이블을 분석하겠습니다.다음은 하이퍼바이저가 실행되는 EL2에서 본 익셉션 벡터 테이블의 동작 방식을 나타낸 표입니다.표 12.2 하이퍼바이저 관점에서 본 익셉션 벡터 테이블'EL2 with SP_EL0' 열의 내용을 분석하겠습니다. 'EL...
- Arm: Virtualization
- 2022/02/11 13:53
Armv8 아키텍처는 하이퍼바이저를 지원하기 위해 다양한 기능을 제공합니다. 이전 절에서 살펴 본 HCR_EL2 레지스터와 hvc, wfe, wfi와 같은 명령어가 가장 큰 예입니다. Armv8 아키텍처 관점으로 하이퍼바이저가 어떤 방식으로 동작하는지 파악하려면 알아야 하는 기능들이 있습니다. 이 중에 가장 중요한 내용은 바로 하이퍼바이저의 익...
- Arm: Virtualization
- 2022/02/10 15:41
이번에는 HCR_EL2 레지스터를 읽은 예시 코드를 소개합니다.다음은 XEN 하이퍼바이저에서 호출되는 _show_registers() 함수의 어셈블리 명령어입니다.01 000000000025c550 <_show_registers.isra.14>:02 25c550: a9ba53f3 stp x19, x20, [sp, #-96...
- Arm: Virtualization
- 2022/01/28 22:18
많은 개발자들은 hvc 명령어를 통해서만 EL1에서 EL2로 진입할 수 있다고 알고 있습니다. 사실 그렇지는 않습니다. 게스트 OS에서 하이퍼바이저로 진입하는 다른 방법은 wfe와 wfi 명령어를 실행하는 것입니다.원래 wfe와 wfi 명령어는 Arm 코어가 저전력 모드(low-power mode)으로 실행될 수 있게 동작합니다. HCR_EL2 레지스터...
최근 덧글