Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0_МПиИСТС_Все главы.doc
Скачиваний:
518
Добавлен:
27.03.2016
Размер:
10.5 Mб
Скачать

6.6. Управление памятью микропроцессора Pentium

Блок управления памятью MMU (memory-management unit) в микропроцессоре Pentium совместим снизу вверх с микропроцессорами 80386 и 80486. В микропроцессоре Pentium многие функции прежних микропроцессоров, по существу, не изменены. Основные изменения коснулись блока страничной трансляции адресов (paging unit) и связаны с введением нового режима системного управления SMM (system management mode).

Блок страничной трансляции адресов

Механизм страничной трансляции адресов функционирует со страницами памяти размером 4 Кбайта или новым расширенным значением размера страниц памяти микропроцессора Pentium, равного 4 Мбайтам. Размер структуры таблиц страничного преобразования может быть большим в системах с большой памятью. Следует напомнить, что микропроцессору для полного переразбиения памяти размером 4 Гбайта на страницы требуется объем памяти несколько больший, чем 4 Мбайт, только для одной таблицы страниц. В микропроцессоре Pentium, с новой 4-мегабайтной страничной организацией, количество элементов страничной трансляции сокращено до одного каталога страниц. Новый размер страниц, равный 4 Мбайт, выбирается с помощью бита PSE, расположенного в регистре CR4.

Основное отличие в страничной трансляции при размере страниц 4 Кбайта и 4 Мбайта заключается в том, что теперь в линейном адресе не содержится части адреса, определяющей строку в таблице страниц, поскольку таковой не имеется. На рис. 6.11 представлена система трансляции адресов при размере страницы 4 Мбайта микропроцессора Pentium. Следует обратить внимание на способ использования линейного адреса в этой схеме трансляции. Необходимо отметить, что старшие 10 разрядов линейного адреса выбирают строку в каталоге страниц, как это было, когда страница была размером 4 Кбайта. Разница состоит в том, что здесь нет таблиц страниц. Вместо этого каталог страниц адресует страницу памяти размером 4 Мбайта.

Рис. 6.11. Схема преобразования линейного адреса 00200001Н в адрес ячейки физической памяти 01000001Н, расположенной на странице размером 4 Мбайт. В приведенной схеме таблицы страниц отсутствуют

Режим системного управления 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.