Physics Faculty, Electronic Devices & Systems, 7th semester,2011
Dr. MokhovikovМодели памяти. Дескрипторы и таблицы(начало).
Lection №7
Модели памяти. Дескрипторы и таблицы(начало).
Lection №7
Основные положения защищенного режима:
● дескриптор;
● формирование линейного адреса в защищенном режиме;
● особенности формирования физического адреса в защищенном режиме;
Резюме к лекции и список используемой литературы
Организация памяти:
● Сплошная (плоская) модель;
● Сегментированная модель;
● Модель режима реального адреса.
сплошная ("плоская")
модель памяти
сегментированная
модель памяти
модель режима
реального адреса
При использовании сплошной модели
(Flat Model) памяти программа оперирует единым непрерывным адресным пространством - линейным адресным пространством.
В нем содержатся и код, и стек, и данные программы, адресуемые смещением в пределах от 0 до 232-1.
Такое 32-битное смещение называется линейным адресом.
● Идеология плоской модели:
вся память представляет собой единое линейной последовательностью байт
Важно отметить!
Что плоская модель – это классическая реализация фон-неймановской архитектуры – здесь хранятся и данные и коды.
Ответственность за корректное использование памяти целиком ложится на прикладного программиста, т.е. позаботится о том, чтобы данные не затерли коды или на них не «наехал» растущий стек.
Для 16-битных процессоров плоская модель памяти позволяет адресовать 64 кБ оперативной памяти; для 32-битных процессоров 4 ГБ, для 64-битных — 16 экзабайт.
www.duartes.org
Важно отметить!
Что плоская модель не может быть использована в реальном режиме – в ней не вся адресуемая память будет доступной.
Преимущества управления памятью с плоской моделью:
1) В одном из многозадачных встроенных приложений, где управление памятью не нужно и не желательно, модель обеспечивает простейший интерфейс для программирования, с прямым доступом ко всем местам в памяти и минимальной сложностью конструкции программы.
2) При многозадачности и распределении ресурсов плоская модель по-прежнему обеспечивает максимальную гибкость для реализации этого типа управления памятью.
Управление памятью все ещё (на 2011 год) реализуется на основе плоской модели, в целях содействия функциональности операционной системы, защиты ресурсов, многозадачности или увеличения объёма памяти за пределы ограничений, налагаемых физическим адресным пространством процессора.
Процессор при помощи блока сегментации отображает логический адрес в линейное адресное пространство.
Для адресации байта памяти программа должна
использовать логический адрес, состоящий из селектора сегмента и смещения.
Селектор сегмента выбирает определенный сегмент, а смещение указывает на конкретный байт в адресном пространстве выбранного сегмента.
Каждая задача в защищенном режиме может иметь до 16383 сегментов, размером до 4 Гбайт каждый, таким образом, общий объем памяти, адресуемой программой составляет 64 Тбайт.
● Сегментация позволяет эффективно управлять пространством логических адресов.
● Сегменты используются для объединения областей памяти с общими атрибутами.
● Каждый сегмент имеет несколько связанных с ним атрибутов: размер, расположение, тип (стек, программа или данные) и характеристики защиты.
Эта модель является специфическим случаем сегментированной модели.
Линейное адресное пространство образуется из массива сегментов длиной по 64 Кбайт.
Размер такого линейного адресного пространства - 1 Мбайт.
В этой модели селектор сегмента непосредственно используется для вычисления базового адреса в линейном адресном пространстве путем сдвига значения селектора на 4 бита влево (умножение на 16).
Это значит, все сегменты начинаются с адреса, кратного 16.
● 16-байтный блок памяти называют параграфом, поэтому говорят, что сегмент выравнивается по границе параграфа.
Т.к. размер сегмента намного превышает размер параграфа, то имеет место перекрытие сегментов, т.е. один и тот же байт линейного адресного пространства может быть адресован различными логическими адресами
(используя селекторы разных сегментов).
Модель памяти в реальном режиме
● Дескрипторы выбираются с помощью 16-битных селекторов, программно загружаемых в сегментные регистры.
● Индекс совместно с индикатором таблицы TI позволяет выбрать дескриптор из локальной(TI =1) или глобальной(TI=0) таблицы дескрипторов.
● Для неиспользуемых сегментных регистров предназначен нулевой селектор сегмента , формально адресующийся к самому первому элементу глобальной таблицы.
● Попытка обращения к памяти по такому сегментному регистру вызовет исключение. Исключение возникает и при попытке загрузки нулевого селектора в регистре CS и SS.
Поле RPL указывает требуемый уровень привилегий.
● Сегмент, в защищенном режиме, это не просто область памяти, ограниченная лишь максимально допустимым значением внутрисегментного смещения, как это было в реальном режиме, - это «объект», который имеет строго определенный размер.
Минимальный размер сегмента может быть равен 1 байту, а максимальный – 1 Мб или 4 Гб (это зависит от, того, умножается размер сегмента на 4 килобайта или нет).
Но! в отличие от режима реального адреса, где адрес сегмента находился непосредственно в одном из сегментных регистров – алгоритм формирования физического адреса в защищенном режиме абсолютно иной.
e-zine.excode.ru/online/3/syscall.html
www.duartes.org
Дескрипторные таблицы
глобальная таблица дескрипторов
локальная таблица дескрипторов
таблица дескрипторов прерываний
Каждый дескриптор (элемент) таблицы описывает свой сегмент памяти.
Сегменты памяти не пересекаются!
Адрес начала каждой из таблиц (указатель на начало таблицы) хранится в специальных (программно доступных) регистрах процессора.
Указатели на таблицу глобальных дескрипторов (GDTR) и таблицу прерываний (IDTR) имеют размер 48 байт, 32 из которых указывают линейный адрес начала таблицы, а остальные 16 – ее размер (предел).
Дескрипторные таблицы — служебные структуры данных, содержащие дескрипторы сегментов
Команды загрузки регистров-указателей таблиц (GDTR, LDTR, IDTR) являются привилегированными (выполняются только на нулевом кольце привилегий
Если всё же в программе встречается
обращение к нулевому дескриптору,
то процессор генерирует
исключение и не позволит доступ
к такому дескриптору.
но на практике их удобнее
создавать иными способами
Формат регистра GDTR следующий:
биты:
[0..15]: 16-разрядный предел GDT
[15..47]: 32-разрядный адрес начала GDT
Адрес начала GDT - это тот адрес, по которому вы разместили GDT.
Предел таблицы GDT - это максимальное смещение относительно её начала.
Общее число дескрипторов будет равно четырём, потому что первым по счёту будет идти нулевой дескриптор, а за ним уже остальные три:
Размер GDT в данном случае будет равен 32 байтам, =>, предельное смещение в таблице будет равно 31 - это и есть предел GDT.
Алгоритм:
1. Вычисляем 32-разрядный адрес GDT
2. Вычисляем размер GDT
3. Сохраняем параметры GDT в 48-разрядную переменную
4. Загружаем значение в регистр GDTR
● Для загрузки значения в регистр GDTR используется команда LGDT.
● Операндом этой команды является 48-разрядное значение адреса в памяти,
где размещается адрес и предел GDT.
● Cохранить содержимое GDTR командой SGDT, указав в операнде адрес
48-разрядной переменной в памяти.
http://sasm.narod.ru/docs/pm/pm_in/chap_7.htm
● Однако, следует учитывать, что при обращении
процессора к несуществующим дескрипторам, его поведение непредсказуемо, хотя оно, скорее всего, закончится зависанием.
http://cracklab.ru/faq/Int3
http://sasm.narod.ru/apps/eflags/app_b.htm
http://club155.ru/x86cmd/POPF
http://kit-e.ru/articles/cpu/2006_9_148.php
http://de.ifmo.ru/--books/electron/cpu-cod.htm
http://www.viva64.com/ru/k/0035/
http://www.kailib.ru/arhitevm?start=23
http://www.zcub.ru/blog/org_comp_system/registry-processora.php
Основные используемые Интернет-ресурсы:
Книга «Архитектура ЭВМ»,автор Мюллер
Книга «Процессоры Pentium4, Athlon и Duron», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ», автор Танненбаум
Книга «Assembler. Учебник для ВУЗов», автор Юров
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть