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

Сегментная адресация в реальном режиме

В реальном режиме процессора всё адресное пространство делится на одинаковые сегменты размером 65536 байт. База каждого последующего сегмента смещена относительно базы предыдущего на 16 байт. Таким образом, сегменты частично перекрывают друг друга. (Например, байт 17 сегмента 2 — это также и байт   сегмента 3, и байт   сегмента 1.)

Селектор 16-разрядный и задаёт номер сегмента. Учитывая, что сегменты следуют друг за другом с постоянным интервалом в 24=16 байт, очень легко выяснить линейный адрес сегмента, умножая его на 16.

Сегментная адресация в защищённом режиме (селекторная адресация)

В защищённом режиме процессора адресное пространство задачи делится на сегменты различных размеров с различными базами. Для определения базы и размера сегментов служатдескрипторы сегментов, хранящиеся в дескрипторных таблицах (GDT и LDT).

49. Логические, физические и линейные адреса.

Логический адрес (Logical Address) — это адрес ячейки памяти, принадлежащей разделу памяти. Фактически логические адреса можно рассматривать как номера байтов раздела, отсчитываемые от нуля. Совокупность всех логических адресов, потенциально доступных задаче, образует её логическое адресное пространство.

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

Линейный адрес является результатом преобразования логического адреса механизмом сегментации. Разрядность линейного адреса зависит от типа процессора: для 80286 — 24 бита, для 32-разрядных микропроцессоров, начиная с 80386 — 32 бита, для 64-разрядных процессоров — 64 бита в режиме IA-32e и 32 бита в других режимах. В микропроцессоре 8086 20- более поздних процессоров, ввиду отключённого механизма страничной трансляции. При разрядный линейный адрес численно совпадает сфизическим, равно как и в реальном режиме работы этом для формирования линейного адреса используется напрямую значение селектора сегмента: оно смещается на 4 бита влево, формируя 20-битный базовый адрес. После этого суммированием базового адреса и смещения вычисляется линейный адрес, непосредственно отображаемый на физическое адресное пространство.

Физический адрес — это адрес, по которому производится реальное обращение к памяти.

Обычно программисты не имеют напрямую дело с физическими адресами. Вместо этого они работают свиртуальными адресами (в терминологии фирмы Intel — с логическими адресами), которые затем преобразуются процессором в физические. Процесс преобразования может включать несколько стадий. Например, в реальном режиме IA-32 стадия всего одна — преобразование логического адреса, состоящего из селектора сегмента и смещения, в линейный, численно совпадающий с физическим. В защищённом режиме логический адрес сначала преобразуется в линейный, а уже последний преобразуется в физический (частным случаем — когда страничный механизм отсутствует или неактивен — является совпадениелинейного и физического адресов). В 64-разрядном режиме преобразование выполняется в одну стадию. Здесь линейный адрес совпадает с логическим адресом, поскольку механизм сегментации отключен, и преобразование производится лишь с помощью страничного механизма из линейного в физический адрес.

Разрядность физического адреса зависит от модели процессора. Микропроцессоры 8086 и 80186 использовали 20-разрядный физический адрес, 80286 — 24-разрядный, 80386 и ряд последующих 32-разрядных процессоров — 32-разрядный. Начиная с микропроцессора Pentium Pro, появилась возможность использования расширенных 36-разрядных физических адресов — технология PAE. С выпуском 64-разрядных микропроцессоров (технологии AMD64 и Intel EM64T) теоретическая разрядность физического адреса возросла до 64 бит, однако на практике используются более узкие физические адреса, но не меньше, чем 36 бит.

50. Трансляция адреса: от логического до физического.

 MMU поддерживает механизм страничной организации памяти. Размер страницы определяется программно и может принимать одно из фиксированных значений в пределах от 256 байт до 32 Кбайт. Для преобразования логического адреса в физический используется ряд таблиц трансляции, находящихся в физической памяти. Для доступа к таблице первого уровня используется один из регистров указателей корня: CRP (в режиме пользователя) или SRP (в режиме супервизора).      Содержимое полей логического адреса (TIA, TIB, TIC, TID) используется при табличном поиске для индексации таблицы соответствующего уровня. Каждая таблица состоит из дескрипторов, содержащих адреса таблиц следующего уровня и специальные поля, определяющие права доступа. Таблица нижнего (четвертого) уровня включает в себя дескриптор с физическим адресом начала страницы, содержащей искомый физический адрес (страничный дескриптор). Адресуемый элемент находится внутри страницы с помощью поля смещения логического адреса. Размер страницы определяется полем PS регистра ТС и может иметь значения: 256 байт, 512 байт, 1К, 2К, 4К, 8К, 16К, 32К (коды поля PS: 1000 - 1111 соответственно).      Описанная процедура нахождения требуемого физического адреса по сформированному процессором логическому называется табличным поиском, а сам найденный таким образом физический адрес - трансляцией.      Для ускорения трансляции логического адреса в физический MMU имеет специальный кэш -АТС (Address Translation Cashe -кэш адресной трансляции) с 22-мя входами, в которых хранятся трансляции наиболее часто используемых логических адресов. АТС по сути является матрицей, в которой по текущему логическому адресу определяется физический адрес, который и передается контроллеру магистрали. Если ПТС не содержит требуемую трансляцию, то контроллеру магистрали передается логический адрес, по которому в памяти организуется табличный поиск. После проведения поиска найденная трансляция записывается в один из входов АТС. Запись производится в один из свободных входов. Если все входы АТС заняты, удаляется в первую очередь недостоверная запись, а если таковой нет -дольше всего неиспользуемая запись (алгоритм LRU -Last Recently Used). Каждый вход с целью определения доступа к нему имеет 28-битное поле тэга 

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