Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Режим системного управления SMM



Режим системного управления SMM (system management mode) такого же уровня, как защищенный, реальный и виртуальный режимы работы, но он предусматривается для функционирования в качестве менеджера. Режим SMM не предназначен для использования его как приложения или элемента системного уровня. Он предназначен для системных функций высокого уровня, таких как управление режимом электропитания и обеспечение безопасности, которые большинство микропроцессоров Pentium используют во время работы.

Доступ к режиму SMM осуществляется с помощью нового внешнего аппаратного прерывания, сигнал запроса которого подается на вывод SMI (system management interrupt) микропроцессора Pentium. При активизации этого прерывания процессор сохраняет свой контекст — содержимое почти всех своих регистров — в специальной памяти, называемой ОЗУ системного управления, или SMRAM (system management RAM), и начинает выполнять программное обеспечение, расположенное в этой же области памяти. Сигнал SMI для процессора является запросом прерывания с наи­высшим приоритетом. Вызываемое им прерывание запрещает все прерывания, которые обычно обрабатываются приложениями пользователя и операционной системой. Возврат из SMM-прерывания осуществляется с помощью новой команды rsm, которая помещается в конце обработчика прерывания и предназначена для восстановления контекста процессора из памяти SMRAM и возвращения в режим работы программы в точке прерывания.

SMM-прерывание обращается к программному обеспечению, первоначально размещенному по адресу 38000Н, используя следующие значения регистров: CS = 3000Н и EIP = 8000Н. Исходное состояние базового адреса памяти SMRAM может быть программно изменено, используя переход в любую ячейку в пределах 1 Мбайта. Режим работы, аналогичный адресации памяти в реальном режиме, вводится SMM-прерыванием, но он отличается тем, что режим SMM позволяет микропроцессору Pentium интерпретировать систему памяти как однородную систему объемом 4 Гбайта вместо адресации в пределах 1 Мбайта.

SMM-прерывание, кроме выполнения программы, котороя начинается с адреса 38000Н, также записывает состояние микропроцессора Pentium в так называемом дампе записи (dump record). Дамп записи находится в диапазоне адресов 3FFA8H—3FFFFH с резервируемой Intel областью 3FE00H—3FFF7H. Дамп записи позволяет системе, построенной на базе микропроцессора Pentium, вводить режим ожидания (sleep mode) и возобновлять программу в точке прерывания. Такая организация требует подачи питания на память SMRAM в период ожидания. Многие компактные компьютеры типа laptop имеют отдельную батарейку для питания памяти SMRAM на протяжении нескольких часов в режиме ожидания. В табл. 6.2 перечисляется содержимое дампа записи.

Авторестарт инструкции halt (halt auto restart) и рестарт ловушки ввода-вывода (I/O trap restarts) используются в режиме SMM при активизации команды rsm. Эти данные позволяют команде rsm вернуться к инструкции останова halt или инструкции ввода-вывода. Если инструкция останова или инструкция ввода-вывода не действуют с вводом режима SMM, тогда команда rsm перезагружает состояние машины из дампа записи и возвращает процессор в точку прерывания.


Таблица 6.2.

Содержимое дампа записи для режима SMM микропроцессора Pentium

Смещение Регистр
FFFCH CR0
FFF8H CR3
FFF4H EFLAGS
FFF0H EIP
FFECH EDI
FFE8H ESI
FFE4H EBP
FFE0H ESP
FFDCH EBX
FFD8H EDX
FFD4H ECX
FFD0H EAX
FFCCH DR6
FFC8H DR7
FFC4H TR
FFC0H LDTR
FFBCH GR
FFB8H FS
FFB4H DS
FFB0H SS
FFACH CS
FFA8H ES
FF04H—FFA7H Резерв
FF02H Авторестарт инструкции HALT
FF00H Рестарт ловушки ввода-вывода
FEFCH Идентификатор версии SMM
FEF8H Состояние базы дампа
FE00H—FEF7H Резерв

Примечание: Смещения адреса первоначально располагаются относительно базового адреса 00003000Н.

Режим SMM может использоваться системой перед тем, как разместить операционную систему в памяти. Он также может использоваться периодически для управления системой при условии не использования области памяти 38000Н—3FFFFH под программное обеспечение. Если система перемещает память SMRAM перед стандарт­ной загрузкой операционной системы, то ее можно использовать дополнительно со стандартной системой памяти.

Базовый адрес памяти SMRAM режима SMM изменяется посредством замены значения в регистре базового адреса состояния дампа (ячейки 3FEF8H—3F3FBH) после первого SMM-прерывания. При выполнении команды rsm, которая обратно передает управление прерванной системе, новое значение из этих ячеек изменяет базовый адрес SMM-прерывания для всего последующего использования. Например, если базовый адрес содержимого дампа изменяется на 000Е8000Н, то все последующие SMM-прерывания микропроцессора Pentium будут использовать ячейки Е8000Н— EFFFFH для дампа записи. Эти адреса совместимы с DOS и Windows.

Новые команды микропроцессора Pentium

Микропроцессор Pentium имеет только одну новую команду для работы со стандартным программным обеспечением системы; остальные новые команды добавлены для режима системного управления SMM, идентификации процессора и некоторые другие системные команды. В табл. 6.3 перечислены новые команды, которые добавлены в набор команд микропроцессора Pentium.


Таблица 6.3.

Новые команды микропроцессора Pentium

Команда Функция
CMPXCHG8B Сравнивает и обменивает 8 байт содержимого регистров EDX:EAX с приемни- ком команды
CPUID Возвращает идентификационный код микропроцессора (CPU)
RDTSC Считывает из счетчика тактов процессора TSC
RDMSR Считывает из специфического регистра для модели — регистра MSR
WRMSR Записывает в специфический регистр для модели — регистр MSR
RSM Возврат из прерывания системного управления SMM

 

Команда cmpxchg8b является расширенной командой cmpxchg, дополненной в набор команд микропроцессора 80486. Команда cmpxchg8b сравнивает 64-разрядное число, хранимое в регистровой паре EDX и ЕАХ с содержимым 64-разрядной ячейки памя­ти или регистровой парой, указанной приемником команды. Например, команда cmpxchg8b data1 сравнивает 8 байт содержимого ячейки памяти DATA1 с 64-раз­рядным числом, хранящимся в регистрах EDX и ЕАХ. Если содержимое ячейки DATA1 равно содержимому регистровой пары EDX:EAX, тогда хранимое в этой па­ре регистров 64-разрядное число запоминается в ячейке памяти DATA1. Если же они не равны, то содержимое ячейки DATA1 копируется в регистры EDX:EAX. Об­ратите внимание, что флаг нулевого результата ZF после выполнения команды cmpxchg8b устанавливается, если содержимое регистров EDX.EAX было равно содер­жимому ячейки DATA1 или сбрасывается в противном случае.


 

Значение регистра ЕАХ до выполнения команды Результат выполнения командыcpuid
ЕАХ = 1 для всех микропроцессоров Pentium
EBX:EDX:ECX = идентификация производителя процессора
ЕАХ (биты 3—0) = модификация процессора (stepping ID)
ЕАХ (биты 7—4) = модель
ЕАХ (биты 11—8) = семейство
ЕАХ (биты 13—12) = тип
ЕАХ (биты 31—14) = зарезервированы и равны нулю
EDX (бит 0) = процессор содержит сопроцессор (FPU)
EDX (бит 1) = поддержка улучшенного режима виртуального микропроцессора 8086
EDX (бит 2) = процессор поддерживает точки останова для ввода-вывода
EDX (бит 3) = процессор поддерживает расширенный размер страниц 4 Мбайта
EDX (бит 4) = поддержка счетчика TSC
EDX (бит 5) = поддержка регистра MSR
EDX (бит 6) = зарезервирован
EDX (бит 7) = поддержка бита МСЕ в регистре CR4
EDX (бит 8) = поддержка команды CMPXCHG8B
EDX (бит 9) = микропроцессор с питанием 3,3 В
EDX (биты 10—31) = зарезервированы

 

Специальные особенности микропроцессора Pentium Pro

Микропроцессор Pentium Pro, по существу, является таким же микропроцессором, как 80386, 80486 и Pentium, за исключением некоторых дополнительных особенностей и изменений в наборе управляющих регистров. В этом разделе рассматриваются различия в структуре одного из управляющих регистров CR4 и регистра флагов мик­ропроцессора Pentium Pro и процессора 80386.

 

Управляющий регистр CR4

На рис. 6.12 показан формат управляющего регистра CR4 микропроцессора Pentium Pro. Обратите внимание на то, что регистр CR4 имеет два новых управляющих бита: РАЕ (бит 5) и PGE (бит 7), которые добавлены в этот управляющий регистр и рассмотрены в этом разделе текста.

Рис. 6.12. Новый управляющий регистр CR4 микропроцессора Pentium Pro

Для сравнения следует обратиться к рассмотренному ранее на рис. 6.5.Далее следует описание битов управляющего регистра CR4 микропроцессора Pentium Pro.

VME

Бит VME (virtual mode extension) регистра CR4 разрешает поддержку флага виртуального прерывания в защищенном режиме. Если бит VME = 0, то поддержка виртуального прерывания запрещается.

PVI

Бит PVI (protected mode virtual interrupt) регистра CR4 разрешает использование флага виртуального прерывания в защищенном режиме.

TSD

Бит TSD (time stamp disable) регистра CR4 управляет командой rdtsc.

 

 

DE

Бит DE (debugging extension) регистра CR4, если он установлен, то попытки обращения к регистрам DR4 и DR5 вызывают исключение недопустимого кода операции, если же бит сброшен, то разрешает использовать регистры DR4 и DR5 для установки контрольных точек останова при обращении к портам ввода-вывода.

PSE

Бит PSE (page size extension) регистра CR4, если он установлен, то разрешается использовать страницы памяти размером по 2 Мбайта (в микропроцессоре Pentium разрешается страница 4 Мбайта), если же он сброшен, то используются стандартные страницы по 4 Кбайта.

РАЕ

Бит расширения физического адреса РАЕ (page address extension), если он установлен, разрешается дополнительно использовать адресные линии А35—А32 при разрешении нового режима страничной адресации микропроцессора Pentium Pro, управляемого битом PSE.

МСЕ

Бит MCE (machine check enable) регистра CR4, если он установлен, то разрешается исключение машинного контроля (аппаратной проверки), возникающее, когда блок внутреннего контроля операций внутри чипа или на шине обнаруживает ошибку, если же бит МСЕ сброшен, то это исключение запрещается.

PGE

Бит PGE (page global enable), если он установлен, то разрешается использование глобальных страниц, доступных всем пользователям. Перед установкой этого бита необходимо сначала разрешить страничное преобразование, т. е. установить бит PG, находящийся в регистре CR0.

 






Читайте также:

Последнее изменение этой страницы: 2016-03-22; Просмотров: 128; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.089 с.) Главная | Обратная связь