Опубликован: 05.04.2005 | Уровень: специалист | Доступ: свободно | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 16:

Система управления памятью в персональной ЭВМ

< Лекция 15 || Лекция 16: 12 || Лекция 17 >
Аннотация: Рассматриваются вопросы, связанные с распределением памяти, организацией виртуальной памяти на основе страничного распределения, а также сегментно-страничное представление памяти в персональной ЭВМ и методы сокращения времени адресного преобразования.

В ЭВМ на основе 32-разрядного микропроцессора при работе в так называемом защищенном режиме, поддерживающем мультипрограммирование и обеспечивающем адресацию операндов в максимально возможном для данной архитектуры диапазоне до 232 байт, виртуальная память организуется на основе сегментно-страничного представления памяти. При этом память разбивается на сегменты переменной длины, выделяемые пользователю под размещение его программ и данных. Сегменты, в свою очередь, делятся на страницы фиксированной длины (4К = 212 байт), используемые системой управления памятью для ее виртуализации 4

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

Механизм формирования физического адреса при сегментно-страничной организации памяти показан на рис. 16.1

Формирование физического адреса при сегментно-страничной организация памяти в 32-разрядном микропроцессоре

увеличить изображение
Рис. 16.1. Формирование физического адреса при сегментно-страничной организация памяти в 32-разрядном микропроцессоре

Основой получения физического адреса, выдаваемого на адресную шину микропроцессора, служит логический адрес. Он состоит из двух частей: селектора, являющегося идентификатором сегмента, и смещения в сегменте.

Смещение в сегменте (32 разряда) (эффективный адрес) вычисляется по задаваемому в команде режиму адресации операнда и является виртуальным адресом операнда. При обращении к команде в качестве смещения выступает значение регистра-указателя команд.

Селектор размещается в сегментном регистре (см. рис. 16.1 ). Основная его часть представляет собой номер ( INDEX ), по которому в одной из специальных таблиц дескрипторов можно найти дескриптор (описатель) данного сегмента. Вид используемой таблицы определяется битом TI (table indicator) селектора. Селектор содержит также двухразрядное поле RPL, используемое при организации защиты памяти по привилегиям.

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

Структура дескриптора сегмента

Рис. 16.2. Структура дескриптора сегмента

Сумма полученного из дескриптора базового адреса сегмента и вычисленного смещения дает линейный адрес операнда, который при включенном механизме страничного преобразования представляет собой номер виртуальной страницы (старшие 20 разрядов) и смещение операнда в странице (младшие 12 разрядов линейного адреса в соответствии с объемом страницы в 4 Кбайт).

При преобразовании номера виртуальной страницы в номер физической используются следующие системные объекты: каталог таблиц страниц (КТС) и таблицы страниц (ТС). Структуры этих таблиц сходны между собой ( рис. 16.3).

Элемент каталога таблиц страниц (таблицы страниц)

Рис. 16.3. Элемент каталога таблиц страниц (таблицы страниц)

Преобразование проводится в два этапа.

Сначала по разрядам А31-А22 линейного адреса в КТС выбирается нужный элемент. Каталог таблиц страниц всегда присутствует в ОП и содержит указания по размещению таблицы страниц, относящейся к тому или иному процессу.

Элемент КТС содержит

  • адрес начала таблицы страниц,
  • бит присутствия ( P ) таблицы страниц в оперативной памяти,
  • бит разрешения чтения/записи ( R/W ),
  • бит защиты страницы (пользователь/супервизор ( U/S )) и некоторые другие атрибуты.

После получения из выбранного элемента КТС начального адреса таблицы страниц происходит обращение к ТС. В выбранной таблице страниц находится элемент, номер которого определяется разрядами А21-А12 линейного адреса. Структура элемента таблицы страниц аналогична структуре элемента КТС. Элемент ТС в соответствующем поле содержит адрес начала требуемой физической страницы и другие атрибуты, аналогичные элементу КТС.

При P =0 возникает прерывание, необходимая страница подкачивается в ОП, ее адрес заносится в соответствующий элемент ТС, и команда выполняется повторно.

< Лекция 15 || Лекция 16: 12 || Лекция 17 >
Илья Бекиров
Илья Бекиров
Кирилл Кондратьев
Кирилл Кондратьев