Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 17:51, лекция
Высокопроизводительный 32-х разрядный микропроцессор 80i86 ориентирован на эффективное выполнение программ в среде многозадачных ОС (типа Windows). Микропроцессор имеет 32-разрядные регистры и 32-х разрядные раздельные шины адреса и данных.
Процессор Intel
Архитектура микропроцессора
Высокопроизводительный 32-х разрядный микропроцессор 80i86 ориентирован на эффективное выполнение программ в среде многозадачных ОС (типа Windows). Микропроцессор имеет 32-разрядные регистры и 32-х разрядные раздельные шины адреса и данных.
Физическое адресное пространство равно 4 Гб (232)
Виртуальное адресное пространство равно 64Тб (246).
Эти
микропроцессоры имеют полную совместимость
с выпускающимися ранее 16-ти разрядными
СРU фирмы Intel.
Структурная схема микропроцессора
В состав микропроцессора входят:
-операционный блок;
-блок выборки команд;
-диспетчер памяти;
-устройство управления;
-интерфейс магистрали.
Операционный блок вместе с устройством управления составляют центральный процессор микропроцессора, который предназначен для выполнения всех логических и математических операций. Операционный блок включает в свой состав АЛУ и восемь 32-хразрядных регистров (РОНов). Подсистема выборки команд реализует двухступенчатый алгоритм конвейеризации и состоит из блоков предвыборки команд и дешифрации команд. Блок предвыборки команд принимает команды из интерфейса магистрали, выстраивая их в очередь кодов.
Блок дешифрации команд производит преддешифрацию, т.е. определяет тип и формат команд, определяет номера используемых регистров, выделяет поле относительного смещения и передает его в блок сегментации для вычисления линейного адреса.
Диспетчер памяти состоит из блока сегментации и блока управления страницами, и осуществляет двухступенчатое формирование физического адреса ячейки памяти.
Имеется два режима работы микропроцессора:
а)режим реальных адресов (реальный режим);
б)режим защищенных виртуальных адресов (виртуальный режим).
В реальном режиме микропроцессор 80i86 работает как быстрый микропроцессор 8086. В реальном режиме страничная организация памяти не используется.
В защищенном режиме используются все возможности микропроцессора. При этом возможен многозадачный режим работы микропроцессора, причем каждая задача защищена и изолирована от других задач и от ОС. В защищенном режиме может быть реализована страничная организация виртуальной памяти объемом до 64 Тб для каждой задачи.
Оперативная память состоит из сегментов, каждый из которых может быть разбит на страницы. Каждая страница имеет фиксирующий размер по 4кб каждая страница, причем разбиение памяти на страницы возможно только в защищенном режиме.
Диспетчер памяти (и сегментный, и страничный) служат для вычисления физических адресов при обращении микропроцессора к памяти.
Интерфейс магистрали позволяет осуществить обмен микропроцессора информацией с ОЗУ и ПУ с помощью 32-хразрядной двунаправленной ШД, 34-хразрядной ША и 16-разрядной ШУ. Особенностью ШД является возможность динамического изменения ее разрядности. За один цикл шины может быть переданы 1,2 или 4 байта. По ША передаются 32-х адреса. ША состоит из 30 адресных линий, обозначенных как А31-А2 и 4-х линий выбора байт, обозначенных как ВЕ3-ВЕ0. Сигналы выбора байт определяют, какие байты 32-хразрядной шины данных участвуют в текущем цикле обмена. Это позволяет легко согласовать ШД с байтной организацией памяти:
При ВЕ0=0 – адресуется младший байт ШД, т.е. разряды D0 – D7;
ВЕ1=0 – адресуется следующий байт ШД, т.е. D8 – D15;
ВЕ2=0 – адресуется следующий байт ШД, т.е. D16 – D23;
ВЕ3=0 – адресуется старший байт
ШД, т.е. D24 – D31.
Регистры
Набор
регистров микропроцессора
-РОНы;
-сегментные регистры;
-указатели команд и регистр флагов;
-регистры управления;
-регистры адреса системы;
-регистры отладки;
-регистры тестирования.
Всего
микропроцессор содержит 32 регистра, из
которых 15 регистров могут адресоваться
пользователем, кроме этого имеется
указатель команд и 16 системных регистров
недоступных пользователю. Все 16-тиразрядные
регистры микропроцессоров 8086, 80186, 80286
содержатся в 32-разрядных регистрах микропроцессора
80i386.
РОНы
Восемь 32-хразрядных РОНов предназначены для хранения операндов и адресов, и располагаются в операционном блоке.
Младшие разряды РОНов (с 0 по 15) доступны отдельно при использовании имен AX, BX, CX, DX, SI, DI, BP, SP. При операциях с байтами для 4-х верхних регистров можно отдельно обращаться к младшему байту по, именам AL, BL, CL, DL и к старшим байтам по именам АН, ВН, СН, DH.
Верхние 4 регистра используются для хранения операнда и позволяют выполнять операции над отдельными байтами, 16-разрядными словами и 32-разрядными двойными словами. Остальные (4 нижних) регистра используются как адресные регистры для хранения 16-разрядных и 32-разрядных адресов.
Регистр ESP используется как указатель вершины стека.
EBP – используется как базовый регистр.
А
регистры EDI и ESI используются как индексные
регистры (для хранения индексов). В качестве
базового и индексного регистров в некоторых
случаях может использоваться и регистр
данных EBX.
Регистры сегментов и дескрипторов сегментов
Архитектура микропроцессора поддерживает организацию памяти в виде сегментов. Всего имеется 6 сегментных регистров.
В реальном режиме: для хранения адресов начала соответствующих сегментов используется 16-хразрядные регистры CS, SS, DS, ES, FS, GS. Они выполняют те же функции, что и в микропроцессоре 8086. то есть, используются при вычислении физических адресов путем суммирования базового адреса, находящегося в сегментном регистре, со смещением. Такое суммирование выполняет блок сегментации, где располагаются и сами сегментные регистры. Максимальный размер сегмента в реальном режиме 64 Кбайт.
В защищенном режиме содержимое сегментного регистра используется как селектор сегмента. С каждым из сегментных регистров связан регистр дескриптора сегмента. Обращение к дескриптору осуществляется с помощью селектора, который представляет собой 16-хразрядный указатель, имеющий 3 поля.
Биты 0 и 1 – это поле RPL, которое определяет уровень привилегий запроса и используется в механизме защиты памяти.
Бит 2 – Это поле TI, которое служит индикатором таблицы. При TI=0 используется глобальная таблица дескрипторов GDT. При TI=1 используется локальная таблица дескрипторов LDT.
Поле INDEX – служит индексом для выбора одного из 8192 дескрипторов (213), содержащихся в таблицах GDT или LDT. Сами 8-мибайтовые дескрипторы хранятся в памяти в составе массивов данных, сформированных в виде таблиц. В микропроцессоре используется 3 таблицы дескрипторов: GDT, LDT и таблица дескрипторов прерывания IDT.
С каждой из таблиц связан соответствующий регистр, который находится в микропроцессоре. Это регистры: GDTR, LDTR и IDTR.
В качестве примера приведем формат регистра GDTR. Регистр GDTR 48-разрядный. 32-разряда задают базовый адрес таблицы дескрипторов, а 16 разрядов указывают размер этой таблицы в байтах.
При обращении селектора к таблице GDT сдвинутый на 3 разряда влево (умноженный на 8) селектор служит в качестве смещения для формирования адреса дескриптора. Это смещение сравнивается с границей (с размером) таблицы дескрипторов, находящейся в разрядах с 0 по 15 регистра GDTR. Если смещение превышает границу, то вырабатывается соответствующее прерывание. Если нарушения границы нет, то смещения суммируются с базовым адресом таблицы дескрипторов. В результате суммирования получается логический адрес младшего байта, выбираемого дескриптора.
Дескриптор имеет формат двойного слова, т.е. 8 байт или 64 разряда.
32-хразрядный базовый адрес сегмента (база) и 20-тиразрядный размер сегмента размещены по частям в различных байтах дескриптора. Пять байт занимает байт доступа, который определяет права доступа к выбираемому сегменту. Этот байт используется в механизме защиты. Четыре разряда 6-го байта определяют следующие атрибуты сегмента:
G – бит дробности, который указывает, в каких единицах задан размер сегмента;
При G = 0 – размер задан в байтах и максимальный объем сегмента в этом случае равен 220 = 1 Мб;
При G = 1 – размер задан в страницах, объемом 4 кб каждая страница. Максимальный объем сегмента в этом случае равен 212 х 220 = 232 = 4 Гб;
D – бит разрядности, который определяет разрядность формируемого относительного адреса или операнда.
При D = 0 – адрес или операнд – 16-тиразрядный;
При D = 1 – адрес или операнд – 32-хразрядный.
53-ий разряд – всегда = 0.
52-ой – имеет произвольное значение Х.
Дескриптор – это совокупность разрядов, определяющая основные программные объекты. Программными объектами могут быть сегменты или шлюзы.
Дескриптор
сегмента – дескриптор, определяющий
сегмент как совокупность сменных ячеек
памяти, начиная с нулевого адреса.
Сегментная организация памяти
В защищенном режиме для формирования линейного адреса используется две компоненты:
1)16-тиразрядный
селектор для определения
2)16
или 32-хразрядный эффективный
адрес, который зависит от
Проиллюстрируем процесс вычисления линейного адреса с помощью следующей схемы:
Для получения линейного адреса базовый адрес сегмента, содержащийся в дескрипторе, суммируется с эффективным адресом.
При
отсутствии страничной организации
памяти линейный адрес является физическим
адресом для обращения к элементу памяти.
Страничная организация памяти
Страничный диспетчер памяти, имеющийся в микропроцессоре, обеспечивает следующую возможность: 1)представляет пользователю возможность работать с большим адресным пространством;
2)обеспечивает
защиту ОС и программное
3)реализует быструю трансляцию адресов.
Линейное адресное пространство памяти объемом 4 Гб при страничной организации разбито на 220 страниц объемом по 4 кб каждая страница. Фиксированный размер всех страниц позволяет загружать любую требуемую виртуальную страницу в нужную физическую страницу.
Страничная трансляция включается в защищенный режим установкой в единицу 31-го разряда нулевого регистра управления CRQ и выключается сбросом этого разряда в ноль.
При страничной организации сегмент разбивается на отдельные разделы, число которых может достигнуть до 210.
В свою очередь каждый раздел может содержать до 210 страниц объемом по 4 кб каждая. Начальные (базовые) адреса страниц каждого раздела хранятся в соответствующей таблице страниц, содержащейся в памяти. Обращение к этой таблице производится с помощью каталога, в котором содержатся начальные адреса таблиц страниц для всех разделов. Таким образом, страницы могут быть рассеяны по разным частям памяти, а их размещение в памяти определяется содержимым каталогов разделов и таблиц страниц.