Physics Faculty, Electronic Devices & Systems, 7th semester,2011
Dr. Mokhovikov Alexander YurievichОрганизация памяти. Модель памяти в реальном режиме
Lection №5
Организация памяти. Модель памяти в реальном режиме
Lection №5
Резюме к лекции и список используемой литературы
Программная модель процессора:
● Введение ;
● Регистры процессора
Процессор извлекает команду из основной памяти, декодирует и выполняет ее.
Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти.
Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Основная память представляет собой упорядоченный
массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер).
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов.
В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.
Однако чаще модули помещаются в разные области памяти и используются по-разному.
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией.
Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.
При использовании сегментированной модели (Segmented Model) для программы память представляется группой независимых адресных блоков, называемых сегментами.
Каждый сегмент имеет несколько связанных с ним атрибутов: размер, расположение, тип (стек, программа или данные) и характеристики защиты.
Сегментация
позволяет
используется
эффективно управлять пространством логических адресов
для объединения областей памяти с общими атрибутами
Логический адрес,
также называемый виртуальным,
состоит из селектора сегмента
(в реальном режиме – просто адреса сегмента) и эффективного адреса, называемого также смещением.
Смещение, ограниченное размером сегмент, может достигать 4Гбайт
Х
Каждая задача может иметь до 16Кбайт селекторов (214)
}
Логическое пространство для каждой задачи может достигать 64 Тбайт
● Смещение (Displacement или Disp) —
8-, 16- или 32-битное число, включенное в команду.
● База (Base) — содержимое базового регистра. Обычно используется для указания на начало некоторого массива.
● Индекс (Index) — содержимое индексного регистра. Обычно используется для выбора элемента массива.
● Масштаб (Scale) — множитель (1, 2, 4 или 8), указанный в коде инструкции. Этот элемент используется для указания размера элемента массива, доступен только при 32-битной адресации.
Различия режимов адресации
Линейный адрес
образуется сложением базового адреса сегмента с эффективным адресом
Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16.
В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.
Перевести сегментный адрес в линейный очень просто: EA = Segment * 0x10 + offset
Физические адреса - это реальные адреса, используемые для выбора микросхем физической памяти, содержащих данные.
Формирование физического адреса памяти процессором,
с использованием
16-разрядных регистров
Физический адрес памяти состоит из двух(четырех)-битных частей – адреса сегмента(Seg) и исполнительного адреса EA (executive address), суммируемых со смещением на 4 бита.
Сдвиг адреса сегмента на 4 бита влево эквивалентен умножению на 16, следовательно, физический адрес
PA=16*Seg +EA
Формат двухоперандной команды общего вида:
Команда может начинаться с нескольких необязательных байтов (префиксов), которые определяют особенности выполнения команды.
Для операндов совместно с битом W, содержащимся в коде команды, префикс размера позволяет определить операнд длиной 8, 16 или 32 разряда.
В коде команды могут использоваться также дополнительные байты для:
● префикса замены сегментного регистра, установленного по умолчанию,
● префикса повторения операции,
● префикса, предотвращающего прерывание операции перемещения данных.
Поле КОП содержит код выполняемой команды, а также бит W размерности используемых операндов. Для команд, применяющих непосредственный операнд, код операции может также занимать часть постбайта.
Формат постбайта
Постбайт определяет местоположение операндов.
Основная часть команд микропроцессора с архитектурой IA-32 позволяет работать только с одним операндом, находящимся в оперативной памяти. Его режим адресации кодируется полями md и r/m постбайта.
Второй операнд либо извлекается из регистров общего назначения микропроцессора (его номер указывается в поле reg постбайта), либо кодируется в поле Imm самой команды (непосредственный операнд).
Байт масштабируемого индекса базы (SIB) служит для представления сложных структур памяти. На его наличие указывает код 100 в поле r/m постбайта.
Формат SIB-байта
Применение SIB-байта позволяет формировать смещение в сегменте, иногда называемое эффективным адресом (EA), для операндов следующим образом:
где [base] – значение базового регистра, [index] – значение индексного регистра,
ss – величина масштабного множителя, disp – значение смещения, закодированного в самой команде. В качестве базы или индекса может быть использован любой регистр общего назначения микропроцессора.
Величина индекса может быть умножена на масштабный коэффициент (1, 2, 4 или 8), что дает возможность ссылки на элемент массива или записи соответствующей длины.
Смещение disp кодируется как величина со знаком в дополнительном коде.
Его длина определяется значением бита D в дескрипторе сегмента, битом W в первом байте команды и наличием или отсутствием префикса разрядности адреса. Этот механизм отражает основные усовершенствования в способах адресации операндов для 32-разрядной архитектуры IA-32 по сравнению с архитектурой x86.
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: Нажмите что бы посмотреть