Преобразование адресов в процессоре i486.

11/11/94 03:10pm i4_pradr.lek
А.В.Фролов, Г.В.Фролов "Защищенный режим процессоров Intel 80286/80386/80486. Практическое руководство по использованию защищенного режима" БСП том 6М "Диалог-МИФИ" 1993
В.Б.Бродин, И.И.Шагурин "Микропоцессор i486. Архитектура, программирование, интерфейс" М "Диалог-МИФИ" 1993
--"i486tm микропроцессор" в 2-х книгах Библиотека программиста "И.В.К.-СОФТ" М 1993

Преобразование адресов в процессоре i486.

В реальном режиме вычисление адреса практически полностью идентично процессору i8086. Имеется только одно исключение: поскольку схема адресной арифметики 32-х разрядная, то перенос из 19-го бита (считая с нуля) не теряется и адресуется 1М + 64К.

В защищеном режиме память делится на 4-х килобайтовые страницы и используется трехуровневая система адресов:

1 На первом уровне находится ЛОГИЧЕСКИЙ адрес, состоящий из селектора и смещения. Селектор имеет длину 16 бит, смещение - 32 бита;

2 Из компанент логического адреса получается ЛИНЕЙНЫЙ адрес. Схема его формирования напоминает схему формирования физического адреса в процессоре i286, но линейный адрес не используется для непосредственного обращения к памяти;

ПРИМЕЧАНИЕ: Сформированный линейный адрес может быть использован как физический, если не используется режим виртуальной памяти. Преобразование осуществляется если установлен бит "подкачки страниц" (PG) в регистре CR0.

3 При использовании системы виртуальной памяти осуществляется дальнейшее двухступенчатое преобразование адреса (ТРАНСЛЯЦИЯ СТРАНИЦ):

Сформированный 32-х разрядный линейный адрес разбивается на три участка:

Дескрипторы каталога таблиц страниц и таблицы страниц имеют длину 32 бита. Их форматы полностью совпадают:

Таблицы GDT, LDT и IDT содержат дескрипторы, формат которых незначительно отличается от формата дескрипторов процессора i286 (от младших разрядов к старшим):

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

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


Stay-at-home