Смекни!
smekni.com

Обзор x86 процессоров (стр. 4 из 4)

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 битное смещение в сегменте, определенном одной из регистрированных пар сегмента/дескриптора. Глобальный указатель - это полный логический адрес, состоящий из селектора и смещения.

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

3.7.1 Типы данных математического сопроцессора

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

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

переведена в любой другой тип с помощью команды запоминания.

Таблица 3.7.1.1

Главные типы данных и команды математического сопроцессора

Команды Тип Разрядность
Загрузка, запоминание, сравнение, сложение, вычитание, умножение, деление Целое 16,32,64 бит
Загрузка, запоминание Упакованное десятичное 18 цифр
Загрузка, запомонание, сравнение сложение, вычитание, умножение, деление Действительное 32,64 бит
Сложение, вычитание, умножение, деление, извлечение квадратного корня, масштабирование остатка, вычисление части целого, смена знака, вычисление абсолютной величины, выделение порядка и мантиссы, сравнение, осмотр, проверка, обмен, арктангенс, 2-1, Y*LOG(X+1), Y*LOG(X), загрузка константы (0.0, П, и т.д.) (80387 добавляет синус, косинус, синус и косинус, неупорядоченное сравнение). Промежуточное действительное 80 бит

ЗАключение

Изобретение процессоров i80386 и i80286 было большим шагом в улучшении архитектуры и производительности процессоров фирмы Intel, сейчас эти процессоры морально устарели и в основном используются о контроллерах, а так же в бытовой технике.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. В.Л. ГРИГОРЬЕВ “Микропроцессор i80486” БИНОМ Москва 1993

2. М. ГУК “Аппаратные средства IBM PC” Питер Санкт-Петербург 1997