Государственный реестр машины
Регистр состояния машины ( MSR ) — это один из трех регистров управления процессом, присутствующих в архитектуре процессора PowerPC .
Процессоры
[ редактировать ]Детали реализации регистра состояния машины будут различаться от модели к модели. Ниже приведены две типичные реализации: 32-битное ядро Freescale e200z3 PowerPC и 64-битное IBM PowerPC .
Ядро PowerPC e200z3
[ редактировать ]Использование регистра состояния машины
[ редактировать ]Этот 32-битный регистр либо управляет, либо сообщает о нескольких важных состояниях процессора.
Мнемоника | Описание |
---|---|
UCLE | Включает/отключает в пользовательском пространстве. выполнение кэша инструкций блокировки |
SPE | Включает/отключает векторные инструкции |
МЫ | Включает/отключает управление питанием |
ЭТОТ | Включает/отключает критические прерывания |
ЭЭ | Включает/выключает внешние прерывания . |
пиар | Определяет, находится ли процессор в режиме супервизора или пользователя. |
ФП | Определяет доступность аппаратного с плавающей запятой модуля |
МНЕ | Включает/отключает проверки машины прерывания |
FE0 | Устанавливает режим исключения с плавающей запятой |
ИЗ | Включить/отключить прерывания отладки |
FE1 | Устанавливает режим исключения с плавающей запятой |
ЯВЛЯЕТСЯ | Устанавливает адресное пространство инструкций |
ДС | Устанавливает адресное пространство данных |
Чтение и запись регистра состояния машины
[ редактировать ]Содержимое регистра можно прочитать с помощью инструкции перемещения из регистра состояния машины ( mfmsr ) и можно изменить, выполнив возврат из прерывания ( rfi , rfci , rfdi ), системный вызов ( sc ) и переход в регистр состояния машины ( mtmsr). ) инструкции.
PowerPC
[ редактировать ]Использование регистра состояния машины
[ редактировать ]Этот 64-битный регистр либо управляет, либо сообщает о нескольких важных состояниях процессора.
Мнемоника | Описание |
---|---|
Сан-Франциско | Выбор 32-битного/64-битного режима |
Х.В. | Выбирает состояние гипервизора |
ЭЭ | Включить/отключить внешние прерывания |
пиар | Выбирает привилегированное или проблемное состояние |
ФП | Сообщает о доступности чисел с плавающей запятой |
МНЕ | Включает/отключает прерывания проверки машины |
FE0 | Выберите режим исключения режима с плавающей запятой |
ЮВ | Включает/отключает одношаговую трассировку |
БЫТЬ | Включает/отключает трассировку ветвей |
FE1 | Выберите режим исключения с плавающей запятой |
И | Включить/выключить трансляцию адреса инструкции |
ДР | Включить/отключить преобразование адресов данных |
ПММ | Знак монитора производительности |
РИ | Указывает, является ли прерывание (не)восстанавливаемым. |
ТО | Выбирает режим Little-Endian или Big-Endian (не G5 ) |
Чтение и запись регистра состояния машины
[ редактировать ]Регистр состояния машины можно прочитать с помощью инструкции mfmsr и изменить с помощью инструкций mtmsr[d] , rfid и hrfid .
Путаница с регистром конкретной модели
[ редактировать ]Хотя регистр состояния машины в архитектуре PowerPC и регистры конкретной модели в архитектурах IA-32 и x86-64 выполняют схожие функции, и инициализм «MSR» может относиться к любому из них, существуют важные различия, которые их отличают. Регистр состояния машины, представляющий собой единый регистр, обеспечивает грубое управление небольшим количеством функций машины. Напротив, в последних архитектурах IA-32 и x86_64 существуют от десятков до сотен регистров для конкретной модели, которые обеспечивают гораздо более точную детализацию как отчетности, так и контроля состояния машины. Термин «регистр состояния машины» не встречается в Intel и AMD документации ; аналогично «регистр конкретной модели» не фигурирует в документации IBM и Freescale .