Структурная схема и регистры процессоров
Структурная схема 32-разрядного процессора Intel 80386 изображена на рисунке 8.1. Процессор 80386 состоит из следующих шести функциональных блоков, которые работают параллельно:
§ интерфейсный блок;
§ блок предварительной выборки команд;
§ блок предварительной дешифрации команд;
§ блок центрального процессора;
§ блок сегментации;
§ блок управления страницами.
Центральный процессор включает в себя операционное ОУ и управляющее УУ устройства. ОУ состоит из АЛУ и восьми 32–разрядных РОН. Особенностью АЛУ является наличие 64 – разрядного сдвигателя, используемого при быстрых арифметических и циклических сдвигах, умножении и делении. В связи с этим 32–разрядное умножение выполняется менее чем за 1 мкс.
Рисунок 8.1 – Структурная схема 32-разрядного процессора 80386 |
Подсистема выборки команд реализует двухступенчатый алгоритм конвейеризации и состоит из блоков предвыборки кодов и преддешифрации команд. Первый из них осуществляет заполнение очереди команд длиной 16 байт.
Во втором блоке производится преддешифрация, определяется тип и формат команд, выделяется поле относительного смещения, содержимое которого поступает в блок сегментации для вычисления линейного адреса.
Команды, подготовленные к выполнению, хранятся в очереди команд, куда помещается в среднем 3 команды.
Диспетчер памяти (MMU – Memory Management Unit) состоит из блока сегментации и блока управления страницами. Осуществляет двухступенчатое формирование физического адреса ячеек памяти.
Наличие диспетчера памяти определяет два режима работы МП:
§ режим реальных адресов (реальный режим);
§ и режим защищенных виртуальных адресов.
В реальном режиме МП 386 работает как очень быстрый 8086, но при необходимости с расширением разрядности операндов и адресов до 32.
В защищенном режиме могут осуществляться переключения и выполнения нескольких задач, предназначенных для режима виртуального МП 8086.
Блок управления страницами действует на более низком уровне, по сравнению с сегментированием. Разбиение на страницы возможно только в защищенном режиме. Каждый сегмент делится на страницы фиксированного размера по 4 Кбайта каждая.
Блок магистрального интерфейса реализует циклы обмена с памятью, сопроцессором, контроллерами. Обмен осуществляется с помощью 32-й ШД, 34-й ША и 16-разрядной й шиной управления. Особенность шины данных является возможность динамического изменения ее разрядности. За один цикл могут быть переданы 8, 16 или 32 бита (сигналы BE(0 – 3)# - Byte Enable – указывают на используемые шины данных). Здесь значок # означает, что активным сигналом является низкий уровень (инверсный сигнал). Структура и состав регистров процессора Intel 80386 показаны на рисунке 8.2.
Набор регистров включает:
§ РОН;
§ сегментные регистры;
§ указатель команд и регистр флагов;
§ регистры управления;
§ регистры адреса системы;
§ регистры отладки;
§ регистры тестирования.
Все 16 – разрядные регистры МП 8086 и 80286 содержатся в 32 – разрядных регистрах МП 80386. Состав сегментных регистров расширен за счет введения регистров дополнительных сегментов данных FS и GS.
Содержимое регистров определяется текущей задачей, т.е. регистры автоматически загружаются новыми значениями при переключении задач. РОН поддерживают работу с 1, 8, 16, 32 и 64 битовыми операндами. Адреса имеют размер 16 и 32 бита. Младшие 16 разрядов этих регистров доступны отдельно при использовании имен АХ, ВХ и т.д. При операциях с байтами можно обращаться отдельно к младшему AL либо старшему АН байту.
В состав процессора входят также шесть 16–разрядных сегментных регистров CS, SS, DS, ES, FS и GS содержат значения селекторов сегментов, указывающих на текущие адресуемые сегменты памяти. С каждым из них связан программно-недоступный регистр дескриптора сегмента.
В защищенном режиме каждый сегмент может иметь размер от 1 байта до 4 Гбайт. В режиме реальных адресов максимальный размер сегмента 64 Кбайта. Селекторы CS указывает текущий сегмент кода команд, SS – стека, а селекторы DS, ES, FS и GS – текущие сегменты данных.
Каждый регистр дескриптора содержит 32 разрядный базовый адрес сегмента, 32 – разрядную границу сегмента, другие необходимые атрибуты (рис.9.13). Когда в регистр сегмента загружается новое значение селектора, содержимое соответствующего регистра дескриптора автоматически корректируется.
В режиме реальных адресов непосредственно обновляется только базовый адрес (он получается путем сдвига значения селектора на 4 разряда влево), т.к. максимальный размер и атрибуты сегмента в реальном режиме фиксированы.
В защищенном режиме корректируются все параметры. При каждом обращении к памяти регистр дескриптора сегмента, связанный с выбранным сегментом, автоматически вовлекается в эту операцию.
Базовый адрес сегмента (32 разрядный) становится компонентом вычисления линейного адреса. 32 – разрядная граница используется для операции контроля размера. Атрибуты проверяются на соответствие типа памяти.
Рисунок 8.3 – Регистры селекторов и дескрипторов процессора 80386 |
Имя 32–разрядного флагового регистра EFLAGS. Кроме флагов С, Р, А, Z, S, T, I, D, и O добавлены новые флаги:
§ IOPL – уровень привилегии ввода – вывода (биты 12 – 13);
§ NT – вложенная задача (бит 14);
§ RF – флаг итога (бит 16) используется в пошаговом режиме при отладке. Если бит установлен, то любая ошибка отладки в следующей команде игнорируется;
§ VM – виртуальный режим 8086 (бит 17).
В процессоре имеется четыре 32 – разрядных регистра управления CR0, CR1, CR2 и CR3, используемые для фиксации общего состояния процессора, в частности:
§ CR0 – регистр управления машины. Младшие 16 разрядов называют словом состояния (MSW). Другие биты используются для управления страницами, переключения задач, эмуляции сопроцессора, управление сопроцессором, включение защиты;
§ CR1 – зарезервирован;
§ CR2 – линейный адрес ошибки страницы. Содержит адрес, который вызвал последнюю ошибку страницы;
§ CR3 – базовый адрес каталога страниц.
В состав процессора входят также регистры системных адресов, которые служат для обращения к элементам, управляющих механизмом сегментации памяти:
GDTR – регистр таблицы глобальных дескрипторов;
IDTR – регистр таблицы дескрипторов прерываний;
LDTR – регистр таблицы локальных дескрипторов;
TR – регистр задачи.
Кроме того, МП содержит 10 регистров тестирования, два из которых зарезервированы. Эти регистры определяют точки останова и показывают текущее состояние МП при остановах (R6), а также используются при тестировании памяти.
Дата добавления: 2016-02-09; просмотров: 3299;