요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
===============
ACRN CPUID bits
===============
A guest VM running on an ACRN hypervisor can check some of its features using
CPUID.
ACRN cpuid functions are:
function: 0x40000000
returns::
eax = 0x40000010
ebx = 0x4e524341
ecx = 0x4e524341
edx = 0x4e524341
Note that this value in ebx, ecx and edx corresponds to the string
"ACRNACRNACRN". The value in eax corresponds to the maximum cpuid function
present in this leaf, and will be updated if more functions are added in the
future.
function: define ACRN_CPUID_FEATURES (0x40000001)
returns::
ebx, ecx, edx
eax = an OR'ed group of (1 << flag)
where ``flag`` is defined as below:
================================= =========== ================================
flag value meaning
================================= =========== ================================
ACRN_FEATURE_PRIVILEGED_VM 0 guest VM is a privileged VM
================================= =========== ================================
function: 0x40000010
returns::
ebx, ecx, edx
eax = (Virtual) TSC frequency in kHz.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
ACRN CPUID 기능
1-10ACRN 하이퍼바이저에서 실행되는 게스트 VM은 `CPUID`를 사용해 하이퍼바이저가 제공하는 일부 기능을 확인할 수 있습니다. 이 문서는 ACRN 전용 CPUID 함수와 각 레지스터의 반환값을 정의합니다.
.. SPDX-License-Identifier: GPL-2.0
===============
ACRN CPUID bits
===============
A guest VM running on an ACRN hypervisor can check some of its features using
CPUID.
ACRN cpuid functions are:
함수 0x40000000: 식별 문자열과 최대 leaf
11-24함수 `0x40000000`은 `eax`에 현재 제공되는 최대 CPUID 함수 `0x40000010`을 반환하고, `ebx`, `ecx`, `edx`에는 각각 `0x4e524341`을 반환합니다. 세 레지스터를 이어 붙인 값은 문자열 `ACRNACRNACRN`에 해당합니다.
향후 ACRN CPUID 함수가 추가되면 이 leaf의 `eax` 값도 새 최대 함수 번호에 맞춰 갱신됩니다.
함수 0x40000000의 레지스터별 의미입니다.
function: 0x40000000
returns::
eax = 0x40000010
ebx = 0x4e524341
ecx = 0x4e524341
edx = 0x4e524341
Note that this value in ebx, ecx and edx corresponds to the string
"ACRNACRNACRN". The value in eax corresponds to the maximum cpuid function
present in this leaf, and will be updated if more functions are added in the
future.
함수 ACRN_CPUID_FEATURES: 기능 비트
25-40`ACRN_CPUID_FEATURES`는 함수 `0x40000001`로 정의됩니다. `eax`는 지원되는 각 `flag`에 대해 `(1 << flag)`를 OR한 비트 집합이며, `ebx`, `ecx`, `edx`에는 이 문서에서 별도 의미를 정의하지 않습니다.
현재 정의된 기능 플래그와 의미입니다.
function: define ACRN_CPUID_FEATURES (0x40000001)
returns::
ebx, ecx, edx
eax = an OR'ed group of (1 << flag)
where ``flag`` is defined as below:
================================= =========== ================================
flag value meaning
================================= =========== ================================
ACRN_FEATURE_PRIVILEGED_VM 0 guest VM is a privileged VM
================================= =========== ================================
함수 0x40000010: 가상 TSC 주파수
41-46함수 `0x40000010`은 `eax`에 가상 TSC 주파수를 kHz 단위로 반환합니다. `ebx`, `ecx`, `edx`에는 이 문서에서 별도 반환 의미를 지정하지 않습니다.
function: 0x40000010
returns::
ebx, ecx, edx
eax = (Virtual) TSC frequency in kHz.
요약·해설
cpuid.rst:1-46ACRN 전용 leaf는 벤더 문자열 확인, 기능 탐색, 시간 기준 획득을 분리합니다. 게스트는 먼저 0x40000000의 최대 leaf를 확인한 뒤 제공 범위 안에서만 기능 leaf를 조회해야 향후 확장과 호환됩니다.