Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPT_otvety_na_ekzamen.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
417 Кб
Скачать
☆

5. Режим smm

Как было уже упомянуто выше, кроме рассмотренных трех основных рабочих режимов работы процессоров семейства Х86, в середине 90-х годов в микропроцессорах Intel и AMD (начиная с модифицированных процессоров класса 486) введен дополнительный специальный режим системного управления SMM (System Management Mode). Этот режим работы независим от программ пользователя и даже самой операционной системы и предназначен для выполнения некоторых автономных действий. Главной его задачей в первое время являлась обеспечение управления энергопотреблением. Однако, в современных процессорах задачей Power Management занимаются специальные блоки (например блок реализующий режим Turbo Boost). Поэтому эта функция для него становится второстепенной.

К возможным применениям SMM можно отнести:

  • Обработка системных ошибок, таких как ошибки памяти и чипсета

  • Функции защиты, например выключение процессоров при сильном перегреве

  • Глубокие уровни энергосбережения

  • Управление питанием, например, схемами изменения напряжения (VRM)

  • Эмуляция периферии, которая была не реализована на материнской плате или реализация которой содержит ошибки

  • Эмуляция мыши и клавиатуры PS/2, при использовании USB-версий устройств

  • Централизованная конфигурация системы, например, на ноутбуках Toshiba и IBM

  • Обход системы защиты, встроенных в ОС

  • Запуск высокопривилегированных руткитов, как было предложено на Black Hat 2008

  • Эмуляция или передача вызовов на модуль Trusted Platform Module (TRM)

В режим SMM процессор может войти только при поступлении на его вход SMI (System Management Interrupt), сигнала немаскируемого прерывания с наивысшим приоритетом - SMI#, генерируемого специальными схемами системной платы при наступлении контролируемых событий. Процессор подтверждает приход прерывания SMI специальным циклом шины (цикл подтверждения SMI). Обнаружив активный (низкий уровень сигнала) SMI#, процессор завершает исполнение текущей команды и переключается в режим SMM. При переключении в режим SMM, процессор первым делом процессор запоминает состояние почти всех своих регистров (сохраняет свой контекст) в специальной энергонезависимой памяти SMRAM (System Mode RAM), доступ к которой разрешается только при нахождении в режиме SMM.

Режим SMM был разработан для управления такими объектами и событиями в системе, существование которых требовалось «скрыть» от ОС. Поэтому для хранения адреса процедуры обработки аппаратного прерывания SMI не используется ни один из векторов в стандартной таблице векторов, в отличие от всех остальных прерываний. А этот адрес хранится в специальных регистрах процессора. Таким образом, для сохранения и восстановления состояния процессора при обработке прерывания SMI, не используется стандартный стек. Для этого используется память SMRAM, в которой хранятся все данные, необходимые для поддержки SMM.

Процессоры Pentium Pro и все более поздние модели процессоров семейства Х86, могут войти в режим SMM также и при приеме соответствующего сообщения по шине APIC (Advanced Peripheral Interrupt Controller – усовершенствованного контроллера прерываний). Этот контроллер разработан специально для использования в многопроцессорных системах, в которых могут работать процессоры 6 поколения и выше.

Как уже упоминалось, поскольку режим SMM является автономным режимом, при входе в него, после выполнения текущей команды, процессор в специальной энергонезависимой памяти SMRAM (System Management RAM) запоминает свой контекст. В контекст включается состояние практически всех его основных регистров на момент перехода в режим SMM, включая программно-невидимые регистры CR1, CR2 и CR4, а также теневые регистры дескрипторов для CS, DS, ES, FS, GS и SS. Автоматическое сохранение содержимого регистров DR5…DR0, TR7…TR3 и регистров FPU не производится. Память SMRAM представляет память, объемом от 32 Кбайт (минимальный объем) до 4 Гбайт, и начинается она с физического адреса SMBASE (по умолчанию 30000h), значение которого хранится во внутреннем регистре процессора. Кроме области сохранения контекста процессора, она включает в себя область размещения подпрограмм обработки запросов SMI. После сохранения контекста процессор переходит к выполнению обработчика SMI (см. рис.IX.1).

Рис.IX.1. Распределение адресного пространства SMRAM.

Обработчик представляет собой последовательность обычных инструкций, исполняемых процессором в режиме, напоминающем реальный. При входе в режим SMM автоматически запрещаются аппаратные прерывания (и даже немаскируемые), и не генерируются особые случаи, так что действия процессора однозначно определяются программой обработчика SMI (Как правило, процедуры сохранение системы в критических ситуациях, например, при отключении электроэнергии). Программа обработчика завершается инструкцией RSM (Reset system Management), которая выполняется только в режиме SMM. Выполнение команды RSM приводит к восстановлению контекста процессора из образа, хранившегося в SMRAM, т.е. восстановлению регистров процессора, и его переключение в исходный режим. Далее процессор продолжает выполнение прерванной программы.

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

Для более четкого усвоения вышеизложенного, на рисунке IX.2 приведена схема переходов между различными режимами работы процессоров i486+ с указанием сигналов, инициирующих эти переходы.

12

Рис IX.2. Схема переходов между режимами работы процессоров

семейства Х86 и сигналы, инициирующие эти переходы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]