Формирование физического адреса в защищенном режиме

Формирование физического адреса в защищенном режиме

Защищенный режим в первый раз появился в микропроцессоре Intel 80286 (1982 г.). Этот микропроцессор имел 24-разрядную адресную шину и мог адресовать до 16 Мбайт оперативки.

Основная мысль защищенного режима — защитить исполняемые микропроцессором программки от обоюдного воздействия. В защищенном режиме микропроцессор поддерживает два типа защиты — по привилегиям и по доступу к памяти. Разглядим Формирование физического адреса в защищенном режиме 2-ой тип защиты – по доступу к памяти.

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

Для введения хоть Формирование физического адреса в защищенном режиме какого механизма защиты необходимо иметь как можно больше инфы об объектах защиты. Для микропроцессора такими объектами являются исполняемые им программки. Организуя защиту программ по доступу к памяти, компания Intel не стала нарушать принцип сегментации, характерный ее микропроцессорам. Потому что любая программка занимает один либо несколько частей в памяти, то разумно иметь больше Формирование физического адреса в защищенном режиме инфы об этих секторах как об объектах, реально имеющихся на этот момент в вычислительной системе. Если каждому из частей присвоить определенные атрибуты, то часть функций по контролю за доступом к ним можно переложить на микропроцессор. Что и было изготовлено.

Хоть какой сектор памяти в защищенном режимеимеет последующие Формирование физического адреса в защищенном режиме главные атрибуты:

· размещение сектора в памяти;

· размер сектора;

· уровень приемуществ (определяет права данного сектора относительно других частей);

· тип доступа (определяет предназначение сектора).

В отличие от реального режима, в защищенном режиме программка уже не может просто обратиться по хоть какому физическому адресу памяти. Для этого она обязана иметь определенные возможности и Формирование физического адреса в защищенном режиме удовлетворять ряду требований.

Главным объектом защищенного режима является особая структура — дескриптор сектора, который представляет собой 8-байтовый (64-битный) дескриптор (короткое описание) непрерывной области памяти, содержащий перечисленные ранее атрибуты. На рис. 3 приведена структура дескриптора сектора для 32-разрядных микропроцессоров с 32-разрядной шиной адреса. Приведем предназначение неких полей дескриптора сектора:

limit_l (16 разрядов) и limit_2(4 разряда Формирование физического адреса в защищенном режиме) — 20-разрядное поле, определяющее размер сектора;

base_l (16 разрядов), base_2 (8 разрядов) и base_3 (8 разрядов) — 32-разрядное поле, определяющее значение физического адреса начала сектора в памяти;

AR — б, поля которого определяют права доступа к сектору;

G — бит гранулярности.

Рис. 3 Структура дескриптора сектора защищенного режима микропроцессора

Поясним наличие в структуре дескриптора разрывов в данных, описывающих, к примеру, адресок начала Формирование физического адреса в защищенном режиме сектора (другими словами адресок начала сектора содержится в битах дескриптора с 16 по 39 (младшие 24 бита – “участки” base_1 и base_2 ) и с 56 по 63 (старшие 8 бит– “участок” base_3) ). Дело в том, что микропроцессор i80286 имел 24-разрядную адресную шину и для указания физического адреса было довольно 24 битного числа в дескрипторе (другими словами Формирование физического адреса в защищенном режиме использовались участки base_1 и base_2). После возникновения микропроцессора i80386 с 32-разрядной адресной шиной в целях сопоставимости программ разработчики не стали поменять формат дескриптора, а просто использовали свободные биты с 56 по 63 (участок base_3), которые были дальновидно зарезервированы разработчиками микропроцессора i80286 для новых моделей. Для микропроцессора эти две группы битов представляют собой Формирование физического адреса в защищенном режиме единое целое. Снаружи же они остались разбитыми.

Размер поля, определяющего размер сектора, составляет 20 бит (участки limit_1 и limit_2). Как следует, размер сектора, определенный значением этого поля, может быть максимум 220 · 1 б = 1 Мбайт. Но, разработчики предусмотрели возможность роста описываемого в дескрипторе размера сектора до 4 Гбайт за счет использования бита гранулярности Формирование физического адреса в защищенном режиме G. Если G = 0, то значение в поле размера сектора значит размер сектора в б, если G = 1 — то в страничках. Размер странички составляет 4 Кбайт. Как следует, размер сектора, определенный значением поля limit с учетом бита гранулярности G, может быть максимум 220 · 4 Кбайт = 4 · 210 · 210 Кбайт = 4 Гбайт.

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

В защищенном режиме перед внедрением хоть какой области памяти должна быть проведена определенная работа по созданию и наполнению Формирование физического адреса в защищенном режиме соответственного дескриптора. Эту работу делает операционная система (операционная система перед пуском программки должна сделать дескрипторы частей, которые будут употребляться этой программкой). Все дескрипторы собираются вкупе в одну из дескрипторных таблиц:

· глобальная дескрипторная таблица (Global Descriptor Table, GDT), ее адресок хранится в регистре микропроцессора GDTR;

Таблица GDT содержит дескрипторы, доступные Формирование физического адреса в защищенном режиме для всех задач системы. Обычно GDT содержит дескрипторы частей команд и данных, применяемых ОС, и дескрипторы таблиц LDT.

· локальная дескрипторная таблица (Local Descriptor Table, LDT), ее адресок хранится в регистре микропроцессора LDTR.

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

В какую конкретно таблицу должен быть помещен дескриптор, определяется его предназначением. Адресок, по которому располагаются эти дескрипторные таблицы, может быть хоть каким; он Формирование физического адреса в защищенном режиме хранится в одном из специально созданных для этого адреса системных регистрах (GDTR либо LDTR).


Схема, показанная на рисунке 4, иллюстрируют принцип формирования физического адреса в защищенном режиме. Регистры частей (CS, SS, DS, ES) в защищенном режиме хранят 16-разрядное число, называемое селектором, в каком 12 старших разрядов представляют собой индекс в Формирование физического адреса в защищенном режиме таблице дескрипторов частей (другими словами смещение дескриптора относительно начала таблицы дескрипторов,), 1 разряд показывает, в какой из 2-ух таблиц, GDT либо LDT, находится дескриптор, а три разряда хранят значение уровня приемуществ запроса к данному сектору.

Рис.4. Сегментированная модель памяти в защищенном режиме.

ПОЯСНЕНИЕ: Пусть микропроцессору нужно считать информацию из сектора данных. Микропроцессор Формирование физического адреса в защищенном режиме глядит значение, помещенное в регистр DS. Из 16 битов он выбирает тот, который показывает из какой таблицы дескрипторов GDT либо LDT нужно получить описание сектора. Определив таблицу, микропроцессор считывает физический адресок ее начала соответственно из регистров GDTR либо LDTR. Дальше микропроцессор берет старшие 12 битов регистра DS, которые определяют номер Формирование физического адреса в защищенном режиме дескриптора в таблице дескрипторов, и, используя физический адресок начала таблицы и номер дескриптора в этой таблице, считывает 8 б соответственного дескриптора. На основании инфы, лежащей в дескрипторе, микропроцессор получает физический адресок начала сектора данных. Потом к физическому адресу начала сектора данных прибавляется смещение (микропроцессору получает значение смещения минимум из 1-го Формирование физического адреса в защищенном режиме и максимум из 3-х источников: из значения смещения в самой машинной команде и/либо из содержимого 1-го базисного и/либо 1-го индексного регистра). В итоге микропроцессор получает физический адресок данных в секторе данных (физический адресок начала сектора данных + смещение).


formirovanie-analiz-i-redaktirovanie-naborov-primitivov.html
formirovanie-assortimenta-tovarov.html
formirovanie-aziatsko-tihookeanskogo-regiona.html