Архитектура процессоров второго поколения
Структурная схема 16-разрядного процессора второго поколения, разработанного фирмой Intel, изображена на рисунок 6.8. Процессор состоит из четырех блоков: адресного AU, шинного BU, исполнительного EU и командного IU, причем все блоки могут работать параллельно. Шинный блок осуществляет считывание памяти и портов ввода/вывода. Адресный блок вычисляет все адреса и формирует физические адреса. За счет независимой параллельной работы блоков производительность возрастает в 2-3 раза по сравнению с процессором 8086 (при том, что тактовая частота у него возросла всего до 12,5 МГц по сравнению с 5 МГц в 8086). Для использования шин с максимальной эффективностью применяется 6-байтовая очередь команд. При этом осуществляется упреждающее считывание команд, время выполнения которых в АЛУ велико. Результаты дешифрации помещаются в очередь результата. Поэтому командный блок после выполнения одной команды сразу же переходит к выполнению следующей. При наличии команд переходов очередь сбрасывается.
Процессор может работать в двух режимах: реальном и защищенном. Реальный режим используется для выполнения программ МП предыдущего поколения и инициализации регистров защищенного режима. Защищенный режим обеспечивает возможность поддержки виртуальной памяти, реализовать механизм привилегий с целью защиты памяти и многозадачную работу. После подачи питания или сигнала сброса процессор устанавливается в реальный режим. В этом режиме процессор х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 дескрипторов в таблице дескрипторов; 81928 (число байт в дескрипторе) = 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.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|