Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборка Часть2 / АВМиС / Лекции / Переключение между реальным и защищенным режимами.doc
Скачиваний:
49
Добавлен:
15.09.2014
Размер:
46.08 Кб
Скачать

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

Современные модели 32-битных процессоров (начиная с некоторых модификаций 486 и 386SL) помимо обычных режимов — реального, защищенного и V86 — имеют дополнительный режим системного управления (System Management Mode, SMM). Этот режим предназначен для выполнения ряда действий с полной изоляцией их от прикладного программного обеспечения и даже от операционной системы. Главным образом этот режим служит для реализации системы управления энергопотреблением, хотя может использоваться и в иных целях.

В режим SMM процессор может войти только по сигналу на входе SMI# (System Management Interrupt), процессоры P5+ могут войти в режим SMM и по приему соответствующего сообщения по шине APIC. Сигнал SMI# для процессора является немаскируемым прерыванием с наивысшим приоритетом. Обнаружив активный сигнал SMI# (низкий уровень), процессор по завершении текущей инструкции и выгрузке буферов записи переключается в режим SMM, о чем сигнализирует своим интерфейсом. Сразу при входе в SMM процессор сохраняет свой контекст — почти все регистры — в специальной памяти SMRAM (не в стеке!). Она представляет собой выделенную область физической памяти, доступ к которой разрешается внешними (по отношению к процессору) схемами в шинных циклах обращения к памяти только при сигнализации процессором о нахождении в режиме SMM. После сохранения контекста процессор переходит к обработке SMI — соответствующий обработчик расположен в той же памяти SMRAM. Обработчик представляет собой последовательность обычных инструкций, исполняемых процессором в режиме, напоминающем реальный. При входе в режим SMM автоматически запрещаются аппаратные прерывания (включая немаскируемые) и не генерируются исключения, так что действия процессора однозначно определяются программой обработчика SMI. Процедура обработки завершается инструкцией RSM, по которой процессор восстанавливает свой контекст из образа, хранившегося в SMRAM, и возвращается в обычный режим работы.

При возврате из режима SMM возможны некоторые варианты в зависимости от действий обработчика: он может программно внести изменения в образ контекста процессора, а также запросить рестарт (повторное исполнение) инструкции, предшествующей появлению сигнала SMI#.

Возможность рестарта инструкции ввода-вывода расширяет режим SMM, позволяя организовать на уровне BIOS управление энергопотреблением совершенно прозрачно для прикладного ПО и ОС. Прозрачность SMM обеспечивается следующими свойствами этого режима:

  • возможностью только аппаратного входа в SMM<;

  • исполнением кода SMM в отдельном адресном пространстве;

  • полным сохранением состояния прерванной программы в области SMRAM;

  • запретом обычных прерываний;

  • восстановлением состояния прерванной задачи по выходу из режима SMM.

Память SMRAM должна быть физически или логически выделенной областью размером от 32 Кбайт (минимальные потребности SMM) до 4 Гбайт. В ней выделяются область сохранения контекста и точка входа в обработчик SMI; кроме того, имеется свободная область.

Карта сохранения контекста имеет «официальную» часть, в которой находятся образы архитектурных (видимых) регистров, и непубликуемую часть (зарезервированные поля). Неосторожная модификация полей, запрещенных для записи, может привести к непредсказуемым (для непосвященных) результатам. В зарезервированных полях скрывается автоматически сохраняемый управляющий регистр CR4 и программно невидимые (скрытые) регистры дескрипторов для всех сегментов, но местоположение и формат их образа зависят от модели процессора.

используется для отключения питания процессора с возможностью быстрого «пробуждения», память SMRAM, хранящая контекст процессора, должна быть энергонезависимой и схемотехнически защищенной от доступа прикладных программ. Если память SMRAM не является энергонезависимой, то системная логика должна обеспечивать возможность ее инициализации (записи программного кода обработчика) процессором из обычного режима работы до появления сигнала SMI#.