Средства тестирования и отладки пэвм

0 – 7FFFh – свободная область.

Если режим SMM используется для питания процессора с возможностью быстрого “пробуждения”, память SMRAM, хранящая контекст процессора, должна быть энергонезависимой.

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

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

Состояние регистров процессора при входе в режим SMM приведено в таблице

Регистр
Состояние

Общие регистры

Не определено

EFLAGS

0000 0002h

EIP

0000 8000h

Селектор CS

3000h (сдвинутый вправо на 4 дв.разряда SMM Base)

База CS

SMM Base (30000h по умолчанию)

Селекторы DS, ES, FS, GS, SS

0000h

Базы DS, ES, FS, GS, SS

0000 0000h

Лимиты DS, ES, FS, GS, SS

0 FFFF FFFFh

CR0

Сброшены PE, EM, TS, PG. Остальные без изменений

DR6

Не определено

DR7

0000 0400h

Режим SMM имеет следующие особенности:

  • вычисление адресов аналогично реальному режиму

  • размер сегмента увеличен (по сравнению с реальным режимом) до 4 ГБ

  • адресуемое пространство также составляет 4 ГБ

  • режим работы регистров по умолчанию – 16-битный

  • по умолчанию запрещены прерывания: маскируемые аппаратные, исключения, немаскируемое NMI, ловушек, системного режима SMI, инициализации.

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

Контекст сопроцессора при входе в SMM автоматически не сохраняется, однако, может быть обработчиком SMI программно.

Особенности реализации режима SMM в конкретном процессоре определяются с помощью двойного слова, называемого идентификатором версии SMM (SMM Revision Identifier), которое записывается в SMRAM по адресу 7EFCh (+SMBASE) при входе в режим SMM. Младшие два байта этого двойного слова задают собственно номер версии SMM. Бит 16 указывает на поддержку процессором режима рестарта команды ввода-вывода, а бит 17 – на поддержку возможности перемещения базового адреса SMIBASE. (Остальные разряды не используются.

При выходе из режима SMM процессор проверяет корректность установки обработчиком некоторых значений в управляющих регистрах CR0 и CR4, а для процессоров 486 и Pentium также корректность адреса SMBASE, который может быть изменен обработчиком. В случае недопустимых значений новых установок процессор переходит в режим выключения (Shutdown).

Режим виртуального процессора 8086 (V86)

([1], с.85, [2], с.513)

Прикладные программы для процессора Intel 8086 могут исполняться на 32-разрядных процессорах как в реальном режиме, так и в режиме виртуального 8086 (V86), который является особым типом задачи, выполняемой в защищенном режиме. Когда операционная система или исполнительный модуль переключаются в режим задачи виртуального 8086, процессор начинает эмулировать процессор Intel 8086.

Режим V86 более привлекателен своими возможностями и гибкостью. В этом режиме работают прерывания и исключения защищенного режима, защита памяти и механизм страничной переадресации, позволяющий адресоваться к любой области 4-гигабайтного пространства памяти. Выполнение приложений 8086 в среде V86 возможно параллельно с приложениями защищенного режима. Кроме того, страничная переадресация позволяет нескольким V86 совместно использовать общие области кода операционной системы.

Одним из основных различий реального и защищенного режимов является трактовка содержимого сегментных регистров. В режиме V86, как и в реальном режиме, для получения линейного адреса содержимое сегментных регистров сдвигается на четыре разряда влево и суммируется с эффективным адресом. Как и в реальном режиме, превышение исполнительным адресом границы 64 КБ вызывает исключение 12 или13. (Процессор 8086 в этом случае переходил к начальным адресам того же сегмента, как бы свертывая его кольцом).

Один мегабайт адресуемого таким образом пространства памяти с помощью механизма страничной адресации может отображаться в любую область 4 ГБ физической памяти. Так как начальный адрес директория таблиц страничной трансляции адреса задается в управляющем регистре CR3, то в многозадачном варианте при переключении задач автоматически загружается и соответствующая таблица трансляции (см. сегмент состояния задачи TSS).

Все программы, выполняемые в режиме виртуального 8086, имеют уровень привилегий 3, то есть низший приоритет. (В реальном режиме привилегий нет, так что можно считать, что все задачи имеют привилегию 0). Следовательно, программы в режиме V86 выполняются со всеми проверками защиты. Попытка выполнения привилегированных команд (LIDT, LGDT, LMSW, CTS, HLT, операции с регистрами DR, TR, CR) вызывает исключение 13.

Попытка выполнения команд, разрешенных только для защищенного режима (LTR, STR, LLDT, LAR, LSL, ARPL, VERR, VERW), вызывает исключение 6.

В режиме V86 по-особому трактуется уровень привилегий ввода-вывода. Привилегия IOPL проверяется для команд INT n, PUSHF, POPF, STI, CLI и IRET, которые могут воздействовать на флаг прерываний IF. В то же время, на команды INT 3, INTO и BOUND (прерывание отладки, прерывание по переполнению и проверка границ массива) привилегия IOPL не оказывает влияния.

Команды ввода-вывода: IN, OUT, (REP) INS, (REP) OUTS в режиме V86 к привилегии IOPL не чувствительны, а управление доступом к портам осуществляется только через битовую карту ввода-вывода в сегменте состояния задачи. Попытка обращения к запрещенным портам вызовет исключение 13.

Прерывания в V86 для полноты эмуляции процессора 8086 обрабатываются особым образом. Все прерывания и исключения вызывают смену уровня привилегий на уровень операционной системы защищенного режима. Эта ОС может распознать, что прерывание поступило от V86 по содержимому регистра EFLAGS, сохраненному в стеке. Далее ОС может обработать это прерывание самостоятельно, либо переслать его к ОС реального режима, работающей в V86.

Таким образом, ОС защищенного режима может совершенно прозрачно для приложения, работающего в V86, эмулировать окружение обычной машины 8086, включая прерывания и перехватывая обращения к портам.

Вход в режим V86 – установка бита VM в регистре EFLAGS возможен двумя способами:

при переключении задач на задачу-386, у которой в TSS образ EFLAGS имеет установленный бит VM. Это переключение может быть вызвано либо

выполнением команды CALL или JMP, либо

выполнением команды IRET, если флаг NT (вложенной задачи) в образе регистра EFLAGS в TSS установлен в 1 (при CPL=0, иначе бит VM не установится)

при возврате из прерывания защищенного режима или из обработчика исключения, когда образ EFLAGS сохранен в стеке с установленным битом VM.

Выход из режима V86 возможен только при обработке прерывания. Если вызываемая процедура имеет CPL=0, то бит VM будет сброшен, и она будет выполняться в защищенном режиме. Если ее CPL>0, то произойдет исключение 13 – нарушение защиты.

Если прерывание вызывает переключение задач, состояние регистров с установленным флагом VM сохранится в TSS старой задачи, к которой можно будет вернуться. Новый режим (защищенный или V86) установится в соответствии с TSS новой задачи.

Общая схема входа в режим V86 и выхода из него приведена на рис.4, где цифрами 16 обозначены следующие примечания:

  1. Переключение задачи выполняется одним из двух способов

командами CALL или JMP в область, где флаг VM в образе регистра EFLAGS установлен в 1

командой IRET при флагах VM = 1 и NT = 1

  1. Аппаратное прерывание или исключение; программное прерывание

(INTn) при привилегии IOPL = 3

  1. Исключение 13 (общее нарушение защиты), вызванное программным

прерыванием (INTn), командами IRET, POPF, PUSHF, IN или OUT в

случае привилегии IOPL < 3

  1. Нормальный возврат из обработчика прерывания защищенного

режима или исключения

  1. Возврат из монитора режима виртуального 8086 для перенаправления прерывания или исключения обработчику прерываний или исключений в программе для 8086, выполняемой в режиме виртуального 8086

  2. Внутреннее перенаправление программного прерывания (INTn) при VME = 1, IOPL < 3 м бите перенаправления = 1.

Значение бита VM не может быть изменено никакими другими способами. Кроме того, его значение не может быть прочитано: при программном сохранении регистра флагов VM всегда оказывается нулевым. Таким образом, приложение, выполняемое в режиме V86, не может выяснить, в каком именно режиме – виртуальном или реальном оно выполняется.

(Детали, касающиеся режима эмуляции V86, подробно изложены в [2] с.505-532.)

Распределение областей системной памяти ([5], с.39)

Логическая структура памяти PC обусловлена особенностями системы адресации процессоров семейства x86. Процессоры 8086/88, применявшиеся в первых моделях PC, имели адресуемое пространство оперативной памяти 1 Мбайт (что ограничивалось 20-разрядной адресной шиной). Эти процессоры использовали сегментную модель памяти, унаследованную и старшими моделями в реальном режиме.

Согласно этой модели, исполнительный адрес AE вычисляется как

AE = S 16 + D,

где S – содержимое сегментного регистра, а D – смещение (записанное в каком-либо регистре или непосредственно в команде), причем и S и D ограничены двумя байтами, т.е. 16-ю двоичными или 4-мя шестнадцатеричными разрядами каждое.

Такое формирование исполнительного адреса обеспечивает доступ к адресному пространству от 00000h до FFFFFh (соответствующему 20-разрядному адресу). Кроме того, при значениях S = FFFFh и D = FFFFh получаемый исполнительный адрес AE = 10FFEFh, указывает на область выше первого мегабайта памяти, однако, старшая единица такого адреса расположена в 21-м разряде, что при 20-разрядной шине адреса дает AE = 0FFEFh. Таким образом, адресное пространство как бы сворачивается в кольцо с небольшим “нахлестом”.

Начиная с процессора 80286 шина адреса была расширена до 24-х разрядов, с 386DX – до 32-х разрядов, а с Pentium II – до 36 разрядов. Но в реальном режиме, используемом DOS, формально доступен только 1 Мбайт памяти, а при эмуляции реального режима в процессоре 80286 было обнаружено, что он эмулирует 8086 с ошибкой: единица двадцать первого разряда адреса A20 (считая с нуля) попадает на шину адреса, и адрес выходит за границы первого мегабайта.

Ошибку исправлять не стали, так как она давала доступ в дополнительный сегмент (64K – 16) оперативной памяти, позволяя увеличить ее объем, доступный прикладным программам. А саму область адресов 100000h - 10EEFEh стали называть высокой областью памяти (High Memory Area – HMA) и грузить в нее небольшие резидентные программы и часть операционной системы. Но для обеспечения полной совместимости с 8086/88 в IBM PC ввели дополнительный вентиль Gate20 адресной шины A20, управляющий передачей на нее сигнала процессора. Переключение этого вентиля сперва осуществлял контроллер клавиатуры, а затем, так как этот вариант оказался слишком медленным, появились и иные варианты его реализации. Это нашло свое отражение в соответствующей опции утилиты установки параметров BIOS.

Основную часть доступного адресного пространства занимает оперативная память. Объем установленной памяти определяет тест, выполняемый сразу после включения питания – Power On Self Test (POST). Обнаружив отсутствие памяти или ошибку, тест останавливается и сообщает объем реально работающий памяти.

Распределение памяти PC, непосредственно адресуемой процессором, приведено в таблице 2 и является следующим

Таблица 2. Распределение памяти ПЭВМ

Адреса

Объем
Название

1000000h и выше

Общий – 16 МБ

Дополнительная память (XMS-EMS)

FE0000h – FFFFFFh

128 КБ

Образ BIOS

10FFF0h – FDFFFFh

До 14,8 МБ

Дополнительная память (XMS-EMS)

100000h – 10FFEFh

64 КБ – 16 байт

Высокая область памяти (HMA)

E0000h – FFFFFh

128 КБ

ПЗУ BIOS

A0000h – DFFFFh

256 КБ

Верхняя область памяти (UMA)

00000h – 9FFFFh

640 КБ

Стандартная (базовая) память

  1. Учебно-методический комплекс основной образовательной программы по направлению подготовки бакалавров «Системный анализ и управление» Санкт-Петербург 2009 г

    Учебно-методический комплекс
    Нормативный срок освоения основной образовательной программы подготовки бакалавра по направлению 553 – Системный анализ и управление при очной форме обучения 4 года.
  2. Техническое задание 12 Архитектура web-портала 14 > Выбор средств проектирования 16 Обзор ресурсов 18

    Техническое задание
    Основополагающей является деятельность человека по поиску ответов на вопросы и достижение системного точного мировосприятия, с помощью которого эффективно решается множество проблем отдельной личности и всего общества.
  3. «Эконо­мика, разработка и использование программных средств»

    Методические указания
    Методические указания к курсовому проектированию по дисциплине «Эконо­мика, разработка и использование программных средств» / Сост.: Л.Б. Венчковский, И.
  4. Учебно-методический комплекс дисциплины (СД. Ф. 06) Технологии программирования (код и название дисциплины по учебному плану специальности)

    Учебно-методический комплекс
    Технологии разработки программного обеспечения: Разработка сложных программных систем: Учебное пособие для вузов / С. А. Орлов. - СПб.: Питер, 2002. - 464с.
  5. Программа собеседования по направлению «Информатика и вычислительная техника».

    Программа
    1.1. Множества, их спецификации; диаграммы Венна; отношения; свойства отношений; разбиения и отношение эквивалентности; отношение порядка; функции и отображения; операции.
  6. Е. А. Рудина Консультант по экономической части

    Документ
    Настоящая дипломная работа содержит результаты анализа существующих методов обнаружения распределенных вторжений, описание разработки на их основе комплексного подхода к оценке распределенных вторжений и интеграции этого подхода в
  7. Наименование оператора электронной площадки

    Документация об аукционе
    АКАДЕМИЯ ГОСУДАРСТВЕННОЙ ПРОТИВОПОЖАРНОЙ СЛУЖБЫ МИНИСТЕРСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ ПО ДЕЛАМ ГРАЖДАНСКОЙ ОБОРОНЫ, ЧРЕЗВЫЧАЙНЫМ СИТУАЦИЯМ И ЛИКВИДАЦИИ ПОСЛЕДСТВИЙ СТИХИЙНЫХ БЕДСТВИЙ
  8. Предисловие (42)

    Документ
    За все это время педвузовские кафедры программирования и вычислительной математики, как и образованные позднее на их основе кафедры информатики и вычислительной техники, не были избалованы своевременным появлением специальных учебных изданий.
  9. Программа обучения рассчитана на специалистов, которые не обладают достаточными знаниями в области спектрометрии, ее приборной базы и современных методов обработки получаемой информации и не имеют специального физического образования (1)

    Программа
    Повышение квалификации инженеров и научных сотрудников, применяющих спектрометрию ядерных излучений и специализирующихся в области ядерной, реакторной и радиационной физики и техники, охране окружающей среды, контроле радиоактивных отходов и др.

Другие похожие документы..