Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Страничная и сегментная организация памяти. Виртуальная память




 

Режимы процессора

 

32-разрядный про­цессор может работать в одном из двух режимов и переключаться между ними достаточно быстро:

Real Address Mode – режим реальной адресации (или просто реальный режим – Real Mode), полностью совместим с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти.

Protected Virtual Address Mode – защищенный режим виртуальной адресации (или просто защищенный режим – Protected Mode). В этом режиме процессор позво­ляет адресовать до 4 Гбайт физической памяти, через которую при использовании механизма страничной адресации могут отображаться до 64 Тбайт виртуальной памяти каждой задачи.

Существенным дополнением является Virtual 8086 Mode – режим виртуального процессора 8086. Этот режим является особым состоянием задачи защищенного режима, в котором процессор функционирует как 8086.

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

 

Организация памяти

 

Ячейка памяти – элементарная адресуемая единица запо­минающего устройства.

Память для 32-разрядных процессоров 80х86 подразделяется на байты (8 бит), слова (16 бит), двойные слова (32 бит) и учетверенные слова (64 бит). Все пространство памяти разбивается на параграфы – области из 16 смежных байт, начиная с нулевого адреса.

Более крупными единицами организации памяти являются страницы и сегменты.

Сегмент – единица памяти, которая в зависимости от режима работы процессора может быть 64 Кбайт, 1Мбайт или 4 Гбайта.

Страница памяти – единица памяти, обычно 4Кбайта.

Страничный сегмент – сегмент в памяти, разделенный на страницы.

Память может логически организовываться в виде одного или множества сегмен­тов переменной длины (в реальном режиме – фиксированной). Кроме сегмента­ции, в защищенном режиме возможно разбиение (Paging) логической памяти на страницы размером 4 Кбайта, каждая из которых может отображаться на любую область физической памяти. Начиная с 5-го поколения появилась возможность увеличения размера страницы до 4 Мбайт. Сегментация и разбиение на страницы могут применяться в любых сочетаниях. Сегментация является средством организации логической памяти на прикладном уровне. Разбиение на страницы применяется на системном уровне для управления физической памятью. Сегмен­ты и страницы могут выгружаться из физической оперативной памяти на диск и по мере необходимости подкачиваться с него обратно в физическую память. Таким образом реализуется виртуальная память.

Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. Основным режимом работы 32-разрядных процессоров считается защищенный режим, в котором работают все механизмы преобразова­ния адресных пространств.

Логический адрес, также называемый виртуальным, состоит из селектора сегмента и эффективного адреса, называе­мого также смещением (offset).

Селектор сегмента хранится в старших 14 битах сегментного регистра (CS, DS, ES, SS, FS или GS), участвующего в адресации конкретного элемента памяти. По значению селектора из специальных таблиц, хранящихся в памяти, извлекается начальный адрес сегмента.

Эффективный адрес вычисляется по формуле

EA=Base+Index · Scale+Disp,

где Смещение (Displacement или Disp) – 8-, 16- или 32-битное число, включенное в команду;

База (Base) – содержимое базового регистра;

Индекс (Index) – содержимое индексного регистра;

Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде инструкции.

Блок сегментации транслирует логическое адресное пространство в 32-битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента со смещением.

Базовый адрес – адрес, относительно которого указываются другие адреса в сегменте данных.

Смещение – величина, добавляемая к базовому адресу для получения исполнительного адреса.

Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регис­тра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дес­криптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.

32-битный физический адрес памяти образуется после преобра­зования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора. В простейшем случае (при отключенном блоке страничной переадресации) физический адрес совпадает с линейным. Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физи­ческий страницами размером 4 Кбайт (для старших поколений процессоров так­же возможны страницы размером 2 или 4 Мбайт). Блок обеспечивает расшире­ние разрядности физического адреса процессоров шестого поколения до 36 бит.

Шина адреса разрядностью 32/64 бита позволя­ет адресовать 4/64 Гбайта физической памяти, но в реальном режиме доступен только 1 Мбайт младших адресов.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 1056 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2447 - | 2133 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.