- •Экзаменационные вопросы по курсу Архитектура эвм и систем
- •4. Физические основы эвм: понятие транзистора, электронные логические вентили.
- •16.Память эвм: операции доступа к памяти
- •17.Архитектура Intel ia-32.
- •17.Система команд микропроцессора на примере Intel ia-32
- •19.Режимы адресации памяти в архитектуре Intel ia-32.
- •20.Организация ветвлений и циклов на языке ассемблера Intel ia-32.
- •21. Организация памяти эвм, кэширование.
- •22.Кэширование. Прямое и ассоциативное отображение
- •23.Кэширование. Множественно-ассоциативное отображение
- •24.Кэширование. Алгоритмы замещения
- •25.Организация памяти эвм, виртуальная память
- •26. Виртуальная память, преобразование адресов.
- •28. Прерывания. Векторы прерываний, приоритеты прерываний, маскирование прерываний.
- •29. Прямой доступ к памяти
- •30. Суперскалярная обработка команд
- •31.Сегментация памяти для семейства процессоров ia-32. Реальный и защищенный режим.
- •32.Конвейерная обработка команд.
- •33. Основы мультитредовой архитектуры
- •34. Способы оценки производительности процессоров
- •35. Большие компьютерные системы: параллельная обработка.
- •36.Большие компьютерные системы: архитектура многопроцессорных систем
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 Кбайт;
в виде структуры, состоящей из сегментов и страниц.
