Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы Экзамен АрхЭВМ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.08 Mб
Скачать

31.Сегментация памяти для семейства процессоров ia-32. Реальный и защищенный режим.

В разделе 5.1 кратко рассказывалось об использовании сегментных регистров в архитектуре IA-32 для формирования адресов памяти (см. рис. 5.1). Мы про­должим развивать эту тему. Для начала читателю полезно будет узнать, как сег­ментные регистры использовались в процессоре 8086. Более современные про­цессоры IA-32 способны функционировать в так называемом реальномрежиме, где они могут выполнять машинный программный код процессора 8086.

Реальный режим

Реальный режим процессоров IA-32 — это режим генерирования адресов, исполь­зуемый процессором 8086. В нем память рассматривается как последователь­ность сегментов объемом по 64 Кбайт. Для каждого сегмента 16-разрядные ис­полнительные адреса формируются с использованием режимов адресации про­цессора 8086. Для доступа к сегментам кода, стека и двум сегментам данных в этом процессоре применяются сегментные регистры CS,SS,DSиES. В процес­сор 80386 были включены еще два сегментных регистра —FSиGS.

На рис. 9.6.1 представлен процесс генерирования 20-разрядных внешних адре­сов памяти. Заданное в сегментном регистре 16-разрядное значение сдвигается на четыре позиции влево, вследствие чего получается 20-разрядный адрес памяти, представляющий собой начальный адрес сегмента. Для получения 2-разрядного исполнительного адреса к начальному адресу сегмента добавляется сгенериро­ванный процессором 16-разрядный исполнительный адрес, обозначенный на ри­сунке как смещение.

Чтобы локализовать в памяти сегмент, в сегментный регистр помещаются 16 старших разрядов 20-разрядного адреса начала этого сегмента. В адресном пространстве, занимающем 1 Мбайт и покрываемом 20-разрядными адресами, может располагаться 16 неперекрывающихся сегментов объемом 64 Кбайт. Одна­ко сегменты могут и перекрываться. Это удобно при организации совместного доступа к командам и данным разными программами. Сегменты CS и SSисполь­зуются в тех случаях, когда в программе имеются ссылки на команды или стек. Для хранения данных по умолчанию выделяется сегментный регистрDS. Если же для доступа к данным команды должен применяться регистрES, в начало этой команды добавляется соответствующий код.

Рис. 9.6.1.Формирование адреса памяти в процессоре 8086

Защищенный режим

Процессоры архитектуры IA-32 обычно работают в защищенномрежиме. На рис. 9.6.2 показано, как в этом режиме генерируется физический адрес памяти на основе содержимого базового и индексного регистров, а также содержащегося в команде значения смещения. Для получения 32-разрядного исполнительного ад­реса значение индексного регистра умножается на коэффициент масштабирова­ния, равный 1, 2, 4 или 8, затем результат прибавляется к содержимому базового регистра с учетом заданного в команде смещения. Четырнадцать старших битов одного из шести сегментных регистров определяютде­скриптор,используемый в качестве индекса в таблице дескрипторов сегментов, из которой извлекается 32-разрядный базовый адрес. Этот адрес прибавляется к исполнительному адресу внутри сегмента, вследствие чего получается 32-разряд­ныйлинейный адрес.Страничный блок, используя таблицу страниц, транслирует линейный адрес в 32-разрядный физический адрес.

Рис. 9.6.2.Формирование адреса в архитектуре IA-32

Таблицы страниц и дескрипторов сегментов довольно велики, поэтому они хранятся в основной памяти. Для обеспечения быстрой трансляции адресов мо­жет использоваться буфер быстрого преобразования адресов TLB. В таблицах дескрипторов сегментов содержатся поля прав доступа, а также поля границ сегментов, определяющие их максимальный размер. Этими парамет­рами управляет операционная система. Они нужны для защиты как операцион­ной системы, так и прикладных программ, находящихся в основной памяти. От­сюда и название данного режима работы процессора — «защищенный»

Сегменты и страницы используются для организации памяти одним из сле­дующих способов:

в виде плоского адресного пространства, в котором исполнительный ад­рес играет роль физического;

в виде одного или нескольких сегментов переменой длины (без разбиения на страницы);

в виде 32-разрядного пространства памяти, разделенного на страницы объе­мом 4 Кбайт;

в виде структуры, состоящей из сегментов и страниц.