기계 상태 레지스터

Machine state register

기계 상태 레지스터(MSR)는 PowerPC 프로세서 아키텍처에 존재하는 세 가지 프로세스 제어 레지스터 중 하나이다.

프로세서

기계 상태 레지스터의 구현 세부사항은 모델마다 다를 것이다.다음은 32비트 Freescale e200z3 Power라는 두 가지 대표적인 구현이다.PC 코어 및 64비트 IBM PowerPC.

e200z3 전력PC 코어

기계 상태 레지스터 사용

이 32비트 레지스터는 몇 가지 중요한 프로세서 상태를 제어 및/또는 보고한다.

니모닉 설명
UCLE 캐시 잠금 명령의 사용자 공간 실행 활성화/비활성화
SPE 벡터 명령 활성화/비활성화
WE 전원 관리 활성화/비활성화
CE 중요한 인터럽트 활성화/비활성화
EE 외부 인터럽트 활성화/비활성화
PR 프로세서가 감독자 모드인지 사용자 모드인지 식별
FP 하드웨어 부동 소수점 장치의 가용성 확인
ME 기계 점검 인터럽트 사용/사용 안 함
FE0 부동 소수점 예외 모드 설정
DE 디버그 인터럽트 사용/사용 안 함
FE1 부동 소수점 예외 모드 설정
IS 명령어 주소 공간 설정
DS 데이터 주소 공간 설정

기계 상태 레지스터 읽기 및 쓰기

레지스터의 내용은 기계 상태 레지스터(mfmsr)의 이동 명령을 사용하여 판독할 수 있으며 인터럽트(rfi, rfci, rfdi), 시스템 호출(sc)에서 복귀를 실행하여 수정하고 기계 상태 레지스터(mtmsr)로 이동할 수 있다.

파워PC

기계 상태 레지스터 사용

이 64비트 레지스터는 몇 가지 중요한 프로세서 상태를 제어 및/또는 보고한다.

니모닉 설명
SF 32비트/64비트 모드 선택
HV 하이퍼바이저 상태 선택
EE 외부 인터럽트 사용/사용 안 함
PR 권한 있는 상태 또는 문제 상태 선택
FP 부동 소수점 가용성 보고
ME 기계 점검 인터럽트 사용/사용 안 함
FE0 부동 소수점 모드 예외 모드 선택
SE 단일 단계 추적 사용/사용 안 함
있다 분기 추적 사용/사용 안 함
FE1 부동 소수점 예외 모드 선택
IR 명령 주소 변환 사용/사용 안 함
DR 데이터 주소 변환 사용/사용 안 함
PMM 성능 모니터 표시
RI 인터럽트를 복구할 수 있는지 여부(비) 나열
LE Little-Endian 또는 Big-Endian 모드 선택(G5가 아님)

기계 상태 레지스터 읽기 및 쓰기

기계 상태 레지스터는 mfmsr 명령을 사용하여 읽을 수 있으며 mtmsr[d], rfidhrfid 명령을 사용하여 수정할 수 있다.

모델별 레지스터와의 혼동

PowerPC 아키텍처에서 발견된 기계 상태 레지스터와 IA-32x86-64 아키텍처에서 발견된 모델별 레지스터는 유사한 기능을 수행하고 초기주의 "MSR"은 둘 중 하나를 가리킬 수 있지만, 이들을 구분하는 중요한 차이점이 있다.단일 레지스터인 기계 상태 레지스터는 소수의 기계 기능에 대한 거친 제어 기능을 제공한다.이와는 대조적으로, 최근의 IA-32 및 x86_64 아키텍처에는 수십에서 수백 개의 모델별 레지스터가 존재하며, 기계 상태에 대한 보고와 제어 둘 다에 대한 훨씬 더 세분화된 정보를 제공한다."기계 상태 레지스터"라는 용어는 IntelAMD 문서에는 나타나지 않으며, 마찬가지로 "모델별 레지스터"도 IBMFreescale 문서에는 나타나지 않는다.

참조