Обзор х86 процессоровРефераты >> Программирование и компьютеры >> Обзор х86 процессоров
3.4 Механизмы защиты
Выполняя 3-4 миллиона операций в секунду, 80386 имеет достаточно вычислительной мощности для обеспечения самых
сложных систем, состоящих из сотен или тысяч программных модулей. В таких системах вопрос заключается не в том, будут ли ошибки, а в том как их накти и повозможности быстро устранить и насколько их действие может быть ограничено. Такие системы могут быть быстро отлажены и сделаны более надежными при серийном освоении, если процессор будет проверять каждую команду по критерию защиты. При этом степень и тип используемой защиты зависит от конкретного применения. Обычно простые системы реального времени работают достаточно хорошо без использования защиты. Различные требования к защите могут быть наиболее полно удовлетворены с помощью набора выборочно используемых функций защиты, введенных в 80386:
- разделение адресных пространств задач;
- введение 0-4 уровней привилегий ;
- использование привилегированных команд (например,HALT);
- разделение сегментов по типам (например, кодовый сег
мент или сегмент данных);
- введение прав доступа к сегментам и страницам (например, право только чтения или только исполнения);
- проверка границ сегмента.
Для сохранения максимельной производительности все проверки защиты в 80386 выполняются одновременно с выполнением
команды.
3.5 Совместимость с микропроцессорами 8086/80286
Два поколения процессоров семейства 86 предшествуют процессору 80386 - 80286 и 8086, с каждым из них 80386 совместим на уровне двоичных кодов. Благодаря такой совместимости экономятся программные затраты, обеспечивается быстрый выход на рынок и доступ к обширной библиотеке программного обеспечения, написанного для машин на базе микропроцессоров семейства х86.
Микропроцессор 80386, конечно, может выполнять программы для 8086, он также может одновременно выполнять программы для 80286 и 80386. Однако наиболее важным свойством совместимости 80386 представляется свойство, называемое VIRTUAL 86 ( виртуальный 86), устанавливающее защищенную структуру для 8086 внутри системы задач 80386. Дополняя свойство виртуального 8086 страничной организацией памяти, 80386 может закрепить за каждой задачей виртуального 8086 1 мбайтное адресное пространство в любой области физического адресного пространства 80386. Более того, если операционная система 80386 обеспечивает работу с виртуальной памятью, то задачи виртуального 8086 могут переноситься с диска и обратно как любые другие задачи. Таким образом, свойство виртуального 8086 позволяет
80386 одновременно выполнять программы, написанные для трех поколений семейства 86.
3.6 Способы адресации
Микропроцессор 80386 обеспечивает регистровую и непосредственную адресацию операндов, содержащихся, соответственно, в регистрах или командах. Eще более важным является способность 80386 обеспечивать различные способы адресации необходимые для эффективного обращения к таким элементам структур данных в памяти как массивы, записи (структуры), массивы записей и записи, содержащие массивы. При этом программа определяет поле смещения в логическом адресе по одному из способов адресации памяти в 80386. Процессор 80386 вычисляет поле смещения логического адреса по следующей формуле:
смещение = база + (идекс X масштаб) + отклонение
Для вычисления смещения могут быть использованы любые
или все переменные базы, индекса и отклонения. Переменные базы и индекса являются величинами, хранящимися в общих регисрах, а величина отклонения содержится в команде. Для хранения базы или индекса может быть использован любой общий регистр.
Величина в индексном регистре может быть отмаштабирована (умножена) коэффициэнтом 1,2,4 или 8, что дает возможность делать ссылки на элементы массива или записи соответствующей длины. Величина отклонения может иметь разрядность 8 или 32 бит и интерпретируется процесспром как величина со знаком в дополнительном коде.
Разумные комбинации базы, индекса и отклонения дают следующие способы адресации памяти 80386:
- прямая: используется только отклонение;
- регистривая косвенная: используется только база;
- базовая: используется база + отклонение;
- индексная: используется индекс (в масштабе);
- индексная с отклонением: используется индекс (в
масштабе)+отклонение;
- базовая индексная: используется база + индекс (в масштабе);
- базовая индексная с отклонением: используется база + индекс
(в масштабе) + отклонение;
3.7 Главные типы данных
В табл. 3.7.1 перечислены типы данных и команды, обеспечиваемые процессором 80386. В этой таблице приведены только наиболее употребимые команды. Варианты команд, такие как (в случае циклического сдвига) циклический сдвиг вправо и циклический сдвиг через перенос, также опущены.
Таблица 3.7.1
Главные типы данных и команды
Тип |
Разрядность |
Команды |
Целое, порядковое |
8, 16, 32 бит |
Пересылка,обмен, преобразование, проверка, сравнение,перевод, сдвиг, двойной сдвиг, циклический сдвиг, отрицание, логическое "и", "или", исключающее "или". Сложение, вычитание, умножение, деление, увеличение на 1, уменьшение на 1, перевод (пересылка с расширением знака/ноля) |
Неупакованное десятичное |
1 цифра |
Коррекция для сложения, вычитания, умножения,деления |
Упакованное десятичное |
2 цифры |
Коррекция для сложения, вычитания |
Строка (байтов,слов, двойных слов) |
0-4гбайт слов, двойных слов |
Пересылка, загрузка, запоминание, сравнение, просмотр, повтор |
Строка бит |
1-4гбит |
Проверка, проверка и установ- ка, проверка и гашение, про- верка и дополнение, просмотр, вставление, изъятие |
Локальный указатель |
32 бит |
(см. Порядковое) |
Глобальный указатель |
48 бит |
Загрузка |
Примечание.
Локальный указатель - 32 битное смещение в сегменте, определенном одной из регистрированных пар сегмента/дескриптора. Глобальный указатель - это полный логический адрес, состоящий из селектора и смещения.