Структурная схема и регистры процессоров

 

Структурная схема 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; просмотров: 3318;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.