А..Ю. Physics Faculty, Electronic Devices & Systems, 7th
semester,2010 Dr. Mokhovikov Alexander YurievichОрганизация памяти. Модель памяти в реальном режиме.
Режимы адресации.
Организация памяти. Модель памяти в реальном режиме.
Режимы адресации.
Физическая организация памяти
Основная
(главную, оперативную, физическую)
Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер).
Процессор извлекает команду из основной памяти, декодирует и выполняет ее.
Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти.
Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Вторичная
(внешнюю) память
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов.
В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.
Единицы памяти
Байт
(8бит)
Слово
(16 бит)
Двойное слово
(32 бит)
Учетверённое слово
(64бит)
Параграфы
(области из 16 смешных байт)
ВСЁ ПРОСТРАНСТВО ПАМЯТИ
Сегменты
Страницы
Три адресных пространства
Логическое
Линейное
Физическое
ADDRESS MEMORY SPACES
ADDRESS MEMORY SPACES
ЭВУ
ruleZZZ!!
Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных.
Большинство программ представляет собой набор модулей, созданных независимо друг от друга.
Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов.
Логическая память
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией.
Однако чаще модули помещаются в разные области памяти и используются по-разному.
!
Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация.
Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.
Организация памяти
Организация памяти
Селектор сегмента хранится в старших 14 битах сегментного регистра (CS,DS,ES,FS,GS), участвующего в адресации конкретного элемента памяти
Логический адрес, также называемый виртуальным, состоит из селектора сегмента (в реальном режиме – просто адреса сегмента) и эффективного адреса, называемого также смещением.
Эффективный адрес формируется суммированием компонентов base, index, displacement с учётом масштаба scale.
Каждая задача может иметь до 16Кбайт селекторов (214)
Х
Смещение, ограниченное размером сегмент, может достигать 4Гбайт
}
Логическое пространство для каждой задачи может достигать 64 Тбайт
Организация памяти
Блок сегментации транслирует логическое адресное пространство в 32(64)-битное пространство линейный адресов.
Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом.
Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16.
В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.
Перевести сегментный адрес в линейный очень просто: ea = segment * 0x10 + offset
Организация памяти
Физический адрес памяти образуется после преобразования линейного адреса блока страничной переадресации.
В простейшем случае он совпадает с линейным.
Блоком страничной переадресации осуществляет трансляцию линейного адреса в физический страницами (4Кбайт/2Мбайта/4Мбайта)
Организация памяти
Физические адреса - это реальные адреса, используемые для выбора микросхем физической памяти, содержащих данные.
Организация памяти
Физическая память организована в виде последовательности 8-разрядных байтов.
Каждому байту присвоен уникальный адрес, который может изменяться от 0 до 232-1 (или 236-1 у P6+).
Физическая память составляет единое целое с компьютером и управляется процессором (с некоторой помощью средств прямого доступа к памяти).
Формирование физического адреса памяти процессором,
с использованием
16-разрядных регистров
Физический адрес памяти состоит из двух(четырех)-битных частей – адреса сегмента(Seg) и исполнительного адреса EA (executive address),суммируемых со смещением на 4 бита.
Сдвиг адреса сегмента на 4 бита влево эквивалентен умножению на 16, следовательно, физический адрес
PA=16*Seg +EA
Поскольку свернутым в кольцо является всё пространство памяти: по мере увеличения исполнительного адреса и адреса сегмента физический адрес растет,
но только до значения FFFFFh, после чего обнуляется и начинает расти с начала.
Модель памяти в реальном режиме
Модель памяти в реальном режиме
Модель памяти в реальном режиме
Ох уж это переполнение!!
При использовании средств процессора для управления памятью, программа может использовать одну из трех моделей доступа к памяти
сплошная ("плоская")
модель памяти
сегментированная
модель памяти
модель режима
реального адреса
При использовании сплошной модели (Flat Model) памяти программа оперирует единым непрерывным адресным пространством - линейным адресным пространством. В нем содержатся и код, и стек, и данные программы, адресуемые смещением в пределах от 0 до 232-1. Такое 32-битное смещение называется линейным адресом.
При использовании сегментированной модели (Segmented Model) для программы память представляется группой независимых адресных блоков, называемых сегментами. Для адресации байта памяти программа должна использовать логический адрес, состоящий из селектора сегмента и смещения. Селектор сегмента выбирает определенный сегмент, а смещение указывает на конкретный байт в адресном пространстве выбранного сегмента. Каждая задача в защищенном режиме может иметь до 16383 сегментов, размером до 4 Гбайт каждый, таким образом, общий объем памяти, адресуемой программой составляет 64 Тбайт. Микропроцессор при помощи блока сегментации отображает логический адрес в линейное адресное пространство. Сегментация позволяет эффективно управлять пространством логических адресов. Сегменты используются для объединения областей памяти с общими атрибутами. Каждый сегмент имеет несколько связанных с ним атрибутов: размер, расположение, тип (стек, программа или данные) и характеристики защиты.
Архитектура может использовать модель режима реального адреса (Real-address Mode Model). Эта модель является специфическим случаем сегментированной модели. Линейное адресное пространство образуется из массива сегментов длиной по 64 Кбайт. Размер такого линейного адресного пространства - 1 Мбайт. В этой модели селектор сегмента непосредственно используется для вычисления базового адреса в линейном адресном пространстве путем сдвига значения селектора на 4 бита влево (умножение на 16). Это значит, все сегменты начинаются с адреса, кратного 16. 16-байтный блок памяти называют параграфом, поэтому говорят, что сегмент выравнивается по границе параграфа. Т.к. размер сегмента намного превышает размер параграфа, то имеет место перекрытие сегментов, т.е. один и тот же байт линейного адресного пространства может быть адресован различными логическими адресами (используя селекторы разных сегментов).
Книга «Ассемблер. Учебник для ВУЗов», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ»,автор Мюллер
http://www.insidepro.com/kk/009/009r.shtml
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть