Структурная схема и регистры процессоров
Структурная схема 32-разрядного процессора Intel 80386 изображена на рисунке 8.1. Процессор 80386 состоит из следующих шести функциональных блоков, которые работают параллельно: § интерфейсный блок; § блок предварительной выборки команд; § блок предварительной дешифрации команд; § блок центрального процессора; § блок сегментации; § блок управления страницами. Центральный процессор включает в себя операционное ОУ и управляющее УУ устройства. ОУ состоит из АЛУ и восьми 32–разрядных РОН. Особенностью АЛУ является наличие 64 – разрядного сдвигателя, используемого при быстрых арифметических и циклических сдвигах, умножении и делении. В связи с этим 32–разрядное умножение выполняется менее чем за 1 мкс.
Подсистема выборки команд реализует двухступенчатый алгоритм конвейеризации и состоит из блоков предвыборки кодов и преддешифрации команд. Первый из них осуществляет заполнение очереди команд длиной 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 – разрядная граница используется для операции контроля размера. Атрибуты проверяются на соответствие типа памяти.
Имя 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), а также используются при тестировании памяти.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|