Сегментная адресация памяти

Сегментная адресация памяти

Сегментная адресация памяти — схема логической адресации памяти компьютера в архитектуре x86. Линейный адрес конкретной ячейки памяти, который в некоторых режимах работы процессора будет совпадать с физическим адресом, делится на две части: сегмент и смещение. Сегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.

Селектором называется число (в x86 — 16-битное), однозначно определяющее сегмент. Селектор загружается в сегментные регистры.

В реальном и защищённом режимах x86-процессора функционирование сегментной адресации отличается.

Содержание

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

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

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

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

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

Segment addressing.png

Здесь сегменты № 3 и № 11 указывают на одну и ту же область. Такие сегменты называются алиасными (англ. Alias). Сегмент № 7 охватывает сегменты № 1, № 2, № 3 и № 11. Сегмент № 5 указывает на GDT, позволяя её изменять (это никак не относится к GDT — её настоящий дескриптор хранится в регистре GDTR (показан жёлтым)). Адресация через локальную таблицу дескрипторов (LDT) происходит аналогично.

Селектор также 16-разрядный, но делится на три части: RPL (биты 0-1), TI (бит 2) и номер дескриптора ([биты 3-15).

  • RPL — см.: Сегментная защита памяти;
  • TI определяет дескрипторную таблицу (GDT или LDT при 0 или 1 соответственно), из которой выбирается дескриптор;
  • номер дескриптора — порядковый номер в дескрипторной таблице. Так как размер дескриптора равен восьми байтам, а номер дескриптора начинается с третьего бита, то можно адресовать дескриптор (если надо), просто обнулив RPL и TI.

См. также

Примечания

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Сегментная адресация памяти" в других словарях:

  • Сегментная защита памяти — В этой статье отсутствует вступление. Пожалуйста, допишите вводную секцию, кратко раскрывающую тему статьи. Сегментная защита памяти  один из вариантов реализации защиты памяти в процессорах архитектуры x86. Может применяться в защищенном… …   Википедия

  • Адресация памяти — Адресация  осуществление ссылки (обращение) к устройству или элементу данных по его адресу[1]; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта[2]. Содержание …   Википедия

  • Защита памяти — (англ. Memory protection)  это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти,… …   Википедия

  • Модель памяти Intel x86 — Модель памяти для платформ x86  способ указать предположения, которые должен сделать компилятор при генерации кода для платформ с сегментной адресацией памяти или со страничной памятью. Чаще всего термин употребляется при работе с различными …   Википедия

  • Менеджер виртуальной памяти — (далее просто «менеджер памяти»)  часть операционной системы, благодаря которой можно адресовать память большую, чем объем физической памяти (ОЗУ). Благодаря виртуальной памяти можно запускать множество ресурсоёмких приложений, требующих… …   Википедия

  • Виртуальная память — (англ. Virtual memory)  технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем …   Википедия

  • Своп-файл — Виртуальная память  схема адресации памяти компьютера, при которой память представляется программному обеспечению непрерывной и однородной, в то время как в реальности для фактического хранения данных используются отдельные (разрывные) области… …   Википедия

  • Файл подкачки — Виртуальная память  схема адресации памяти компьютера, при которой память представляется программному обеспечению непрерывной и однородной, в то время как в реальности для фактического хранения данных используются отдельные (разрывные) области… …   Википедия

  • Страничная память — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Защищённый режим — (режим защищённой виртуальной адресации)  режим работы x86 совместимых процессоров. Частично был реализован уже в процессоре 80286, но там существенно отличался способ работы с памятью, так как процессоры еще были 16 битными и не была… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»