Архитектура процессоров второго поколения

 

Структурная схема 16-разрядного процессора второго поколения, разработанного фирмой Intel, изображена на рисунок 6.8. Процессор состоит из четырех блоков: адресного AU, шинного BU, исполнительного EU и командного IU, причем все блоки могут работать параллельно.

Шинный блок осуществляет считывание памяти и портов ввода/вывода. Адресный блок вычисляет все адреса и формирует физические адреса. За счет независимой параллельной работы блоков производительность возрастает в 2-3 раза по сравнению с процессором 8086 (при том, что тактовая частота у него возросла всего до 12,5 МГц по сравнению с 5 МГц в 8086). Для использования шин с максимальной эффективностью применяется 6-байтовая очередь команд. При этом осуществляется упреждающее считывание команд, время выполнения которых в АЛУ велико. Результаты дешифрации помещаются в очередь результата. Поэтому командный блок после выполнения одной команды сразу же переходит к выполнению следующей. При наличии команд переходов очередь сбрасывается.

 
  Рисунок 6.8 – Структурная схема 16-разрядного процессора второго поколения  

Процессор может работать в двух режимах: реальном и защищенном. Реальный режим используется для выполнения программ МП предыдущего поколения и инициализации регистров защищенного режима. Защищенный режим обеспечивает возможность поддержки виртуальной памяти, реализовать механизм привилегий с целью защиты памяти и многозадачную работу.

После подачи питания или сигнала сброса процессор устанавливается в реальный режим. В этом режиме процессор х286 имеет такую же базовую архитектуру, что и 8086, которая работает с большой скоростью. Различие двух режимов состоит в способе вычисления базового адреса.

БИС процессора 80286 имеет встроенное устройство управление памяти УУП. Это устройство оказывает поддержку виртуальной памяти и мультипрограммного режима. Регистровая структура МП имеет вид, изображенный на рисунке 5.9. В защищенном режиме в сегментных регистрах располагается не информация о физическом адресе, а селекторы, указывающие на описатели сегментов. С помощью селекторов, расположенных в сегментных регистрах, центральный процессор получает из локальной или глобальной таблиц дескрипторов описатели, характеризующие размещение и длину используемых сегментов.

Если процедура получения дескрипторов будет осуществляться при выполнении каждой команды, то это приведет к существенному снижению быстродействия. Дескрипторы находятся в ОЗУ и при поступлении нового селектора считываются в регистры дескрипторов. Таким образом, информация о физическом адресе сегмента и его длине при загрузке сегментного регистра загружается в так называемый теневой регистр, который имеется для каждого сегментного регистра. Т.е. каждый сегментный регистр содержит кроме видимой части – 16 битового селектора – другую невидимую часть, имеющую ширину 48 бит (для каждого из четырех селекторов). Аналогичные теневые регистры имеются для регистров глобальной и локальной таблиц дескрипторов.

 

 
 

TI – Table Indicator; RPL – Requested Privilege Level.

 

Загрузка теневых регистров относительно медленная операция. Так для выполнения команды MOV DS, AXв реальном режиме требуется только два такта, то в защищенном режиме 18.

По сравнению с МП 8086 структура регистров CS, DS, SS и ES, предназначенных для управления памятью, расширена за счет дополнительных регистров, используемых в качестве дескрипторов сегментов. Содержимое дескрипторов не используется непосредственно в программе. Их содержимое автоматически записывается центральный процессор и используется для управления памятью.

Регистр задачи TR указывает задачу, выполняемую в данный момент.

Все пространство виртуальных адресов состоит из локальных адресных пространств, отдельных для каждой задачи, и глобального адресного пространства, общего для всех задач. Системные программы (ОС и др.) хранятся в глобальном адресном пространстве. Пространство виртуальных адресов каждой задачи занимает объем 1 Гбайт =213 сегментов ´ 216 – объем сегмента. Для разделения пространства на глобальное и локальное в секторе сегмента выделяется один бит TI (индикатор таблицы: 0 – глобальный, 1 – локальный).

Физические адреса, выдаваемые МП во внешние блоки, являются 24-разрядными (т.е. объем основной памяти может достигать 16 Мбайт). С помощью 24-разрядной базы физического адреса, хранящейся в дескрипторе сегмента, вычисляется физический адрес, который равен базе физического адреса + смещение сегмента.

Одновременно на основании атрибута и размера сегмента, хранящемся в этом же регистре, обнаруживаются сегментные ошибки и ошибки памяти. При их возникновении инициируется обработка исключительной ситуации.

Селектор – это 16-разрядный указатель, с помощью которого выбираются дескрипторы. В логическом адресе селекторная часть определяет индивидуальный дескриптор.

Селектор имеет следующие поля:

§ Индекс – биты 15-3. Индекс выбирает один из 8192 дескрипторов в таблице дескрипторов; 81928 (число байт в дескрипторе) = 64К – емкость сегмента;

§ Индикатор таблицы TI – бит 3 определяет таблицу, на которую ссылается селектор: 0 – означает GDT, а 1 – текущую таблицу LDT;

§ Запрашиваемый уровень привилегий RPL (2-0).

Регистры системных адресов GDTR, IDTR, LDTR и TR служат для обращения к элементам, которые управляют механизмом сегментации памяти.

Такими элементами являются таблицы и сегменты, входящие в структуру защиты памяти МП 286/386:

GDT – таблица глобальных дескрипторов

IDT – таблица дескрипторов прерываний

LDT – таблица локальных дескрипторов

TSS – сегмент состояния задачи.

Регистры GDTR и IDTR содержат 24–разрядные линейные адреса базы и 16-разрядные величины границ GDT и IDT, которые являются глобальными по отношению ко всем задачам. Перед переходом в защищенный режим программа должна создать в ОЗУ таблицу GDT и загрузить регистр GDTR при помощи специальной команды LGDT.

Регистр таблицы локальных дескрипторов LDTR и регистр задачи TR содержит 16-разрядные селекторы сегментов LDT и TSS, которые определены для конкретной задачи. С каждым из них связан программно недоступный регистр дескрипторов сегмента.

В МП 80286 входит регистр слова состояния машины (это не регистр флагов! Он имеется само собой) В его состав входят следующие поля:

§ PE (Protected Mode Enable) – «защита разрешена». Устанавливается в 1 при работе в виртуальном режиме, 0 – в реальном;

§ MP – бит присутствия сопроцессора. Если MP=1, то 286 будет учитывать команды WAIT, ESC;

§ EM – режим эмуляции. Если ЕМ=1, то МП при встрече команды ESC генерирует особый случай отсутствия сопроцессора. Процедура обработки особого случая в случае отсутствия сопроцессора может эмулировать команды сопроцессора программно;

§ TS – бит “задача переключена”. Устанавливается автоматически, когда МП осуществляет переключение задач.

 

Процессор имеет различные виды адресного пространства: физическое, логическое и линейное.

Физическое – это реальные адреса, используемые для выбора ячеек микросхем физической памяти, содержащих данные.

Логический адрес состоит из селектора и относительного адреса внутри сегмента.

Линейный адрес – это адрес, сформированный добавлением относительного адреса к базовому адресу сегмента.

Допустим, что процессор выполняет задачу, в которой используется некоторое локальное адресное пространство и ЛТД сегментов, расположенных в нем. Дескрипторы ЛТД-сегментов хранятся в ГТД. При инициировании этой задачи селектор ЛТД, служащий для выбора дескриптора сегмента, автоматически помещается в соответствующее поле регистра ЛТД (РгЛТД). Индекс, содержащийся в селекторе, дает смещение относительно базового адреса ГТД. Дескриптор сегмента имеет длину 4 слова или 8 байт. Индекс помещается в старшие 13 бит селектора. Поэтому смещение в памяти равно:

 

Смещение=Числовое_значение_индекса8 .

При таком способе обращения автоматически считываются дескрипторы сегментов ЛТД, хранящиеся в ГТД, и помещаются в свой РгЛТД. С помощью содержимого этого регистра можно обратиться в ЛТД. Схема преобразования виртуальных адресов в физические изображена на рисунок 6.10.

В селекторной части регистра CS хранится селектор сегмента программы. Дескриптор сегмента программы, указываемый этим селектором, автоматически считывается из ЛТД и помещается в регистр дескрипторов сегментов CS. Содержимое его принимается за базу, а содержимое IP – за смещение, и на основании их значений осуществляется обращение к памяти. Процессор может одновременно обратиться к четырем сегментам. В этих сегментах уже задается смещение, поэтому формирование адреса может осуществляться с высокой скоростью.

Система команд процессора 80286 включает все команды 8086-го процессора и дополнена рядом новых команд:

§ сохранение константы в стеке, сохранение и восстановление всех регистров PUSHA (Push All – все регистры), POPA;

§ целочисленное умножение на константу;

§ сдвиги с указанием счетчика в константе;

§ вход и выход из процедур ENTER, LEAVE;

§ контроль диапазона BOUND;

§ ввод/вывод байта (слова) в строку, одиночный INSB, INSW, OUTSB, OUTSW, или по счетчику в регистре СХ, повторение строковых команд по префиксу REP;

§ сброс флага переключения задач CTS;

§ команды управления защитой LGDT, SGDT, LIDT, LMSW, SMSW, доступные в обоих режимах и только в защищенном режиме: LLDT, SLDT, LTR, STR, ... .

Попытка выполнения недействительной команды (или в реальном режиме команды, предназначенной только для защищенного режима) вызывает исключение 6.









Дата добавления: 2016-02-09; просмотров: 2050;


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

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

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

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