- •Раздел 4. Микропроцессоры семейства intel
- •Тема 4.1. Модели мп семейства intel и их сравнительная характеристика
- •Тема 4.2. Организация однокристальных 16-разрядных микропроцессоров
- •Стандартная архитектура 16-разрядного микропроцессора intel 8086.
- •Программная модель микропроцессора intel 8086.
- •Организация памяти.
- •Стандартная архитектура 16-разрядного микропроцессора intel 8086.
- •Программная модель микропроцессора intel 8086.
- •Сегментные регистры (cs, ds, ss, es),
- •Регистр адреса командIp,
- •Регистр флагов f.
- •Регистр флагов f
- •3. Организация памяти.
- •Тема 4.3. Система команд мп, форматы команд, классификация команд, способы адресации
- •Формат команды микропроцессора
- •Режимы адресации операндов
- •Тема 4.4. Система прерываний микроЭвм
- •Типы прерываний и особых ситуаций. Приоритеты прерываний и особых ситуаций
- •Механизм обработки прерываний
- •Типы прерываний и особых ситуаций. Приоритеты прерываний и особых ситуаций
- •Аппаратные прерывания
- •Программные прерывания
- •Исключительные ситуации
- •Механизм обработки прерываний
- •Тема 4.5. Сопроцессоры
- •Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора
- •Структура арифметического сопроцессора
- •Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора
- •Структура арифметического сопроцессора
- •Тема 4.6. Архитектура 32-разрядных мп
- •Регистровая структура мп 80486
- •Типы данных 32-разрядных мп
- •Система команд, форматы команд и способы адресации мп 80486
- •Тема 4.7. Реальный режим работы мп
- •Тема 4.8. Защищенный режим работы мп
- •Дескрипторы сегментов и их таблицы. Типы сегментов и дескрипторов
- •Страничная и сегментная организация памяти. Преобразование адресов в защищенном режиме
- •Средства поддержки мультизадачности и защиты. Механизмы защиты
- •Тема 4.9. Виртуальный режим работы мп
- •Виртуальная память. Средства поддержки виртуальной памяти
- •Пространство виртуальных адресов. Механизм преобразования адресов
- •Виртуальная память. Средства поддержки виртуальной памяти
- •Пространство виртуальных адресов. Механизм преобразования адресов
- •Сегментно - страничное распределение
-
Структура арифметического сопроцессора
Структурная схема сопроцессора INTEL 8087:
Рисунок - Структурная схема сопроцессора INTEL 8087
Сопроцессор INTEL 8087 представляет собой однокристальный 80-разрядный арифметический сопроцессор.
В структурной схеме сопроцессора INTEL 8087 можно выделить два независимо работающих устройства, позволяющих организовать конвейерную обработку принимаемых данных:
-
операционное устройство – выполняет функции, заданные командой,
-
устройство шинного интерфейса
-
принимает и декодирует команды,
-
осуществляет считывание операндов из памяти и их преобразование в 80-разрядный формат с плавающей запятой,
-
запись результатов выполнения команд в память с обратным преобразованием в требуемый формат.
-
Оба устройства могут работать параллельно, что обеспечивает совмещение во времени процессов передачи и преобразования данных.
Операционное устройство содержит:
-
стек регистров,
-
модуль обработки порядка,
-
арифметический модуль,
-
сдвиговый регистр,
-
устройство МПУ.
Буфер данных обеспечивает синхронизацию работы микропроцессора и сопроцессора, имеющих разные тактовые частоты. Наличие буфера данных позволяет передавать сопроцессору команды и данные следующей операции еще до того, как закончилось выполнение текущей. Это дает возможность работы микропроцессора и сопроцессора без циклов ожидания.
Данные на обработку в сопроцессор могут поступать в любом из форматов. Независимо от этого, все вычисления в сопроцессоре выполняются в 80-разрядном формате с плавающей запятой. Преобразование форматов данных выполняют регистры очереди операндов. Регистры очереди операндов – это 3 80-разрядных регистра. Регистры очереди операндов также служат для временного хранения данных.
В сопроцессоре организована раздельная обработка мантиссы и порядка. Все действия над порядками выполняются в модуле обработки порядка. Операции над мантиссами производятся в арифметическом модуле. Арифметический модуль также формирует признаки различных исключительных ситуаций, возникающих при обработке данных. Для выполнения операций сдвигов мантиссы используется сдвиговый регистр.
Рег8истровый стек сопроцессора представляет собой 8 80-разрядных регистров. Регистровый стек служит для хранения обрабатываемых данных. Обращение к регистрам стека может производиться к любому из регистров в любое время. Для этого с регистрами стека связан 3-разрядный указатель стека, содержимое которого определяет номер стекового регистра.
Блок управления сопроцессора построен по микропрограммному принципу. Его назначение состоит в дешифрации очередной команды и формировании управляющих сигналов, определяющих режим работы устройств сопроцессора.
Регистр слова состояния сопроцессора выполняет функции, аналогичные функциям регистра флагов микропроцессора, но только для операций с плавающей точкой. Регистр слова состояния отражает состояние сопроцессора в соответствии с выполняемыми действиями или результатами действий.
Формат регистра слова состояния сопроцессора:
-
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B
C3
ST
C2
C1
C0
IR
PE
UE
OE
ZE
DE
IE
B – признак занятости сопроцессора
В=1 – сопроцессор выполняет команду
В=0 – сопроцессор свободен;
С3-С0 – флаги, характеризующие результаты выполнения различных команд;
ST – разряды, определяющие номер арифметического регистра, являющегося вершиной стека сопроцессора;
IR – флаг запроса прерывания, который устанавливается в 1 при возникновении какой-либо незамаскированной исключительной ситуации;
PE, UE, OE, ZE, DE, IE – флаги, исключительных ситуаций, возникающих в результате выполнения команд:
PE – неточный результат – устанавливается в 1, когда значение результата не может быть представлено точно в том формате, который определен командой. Результат в этом случае округляется в соответствии с заданным режимом округления. Если PE замаскирован, сопроцессор округляет результат, не вызывая прерывания;
UE – антипереполнение – устанавливается в 1, когда результат операции не может быть представлен нормализованным конечным числом. Если UE замаскирован, то в качестве результата выдается денормализованное число;
OE – переполнение – устанавливается в 1, когда результат операции не может быть представлен конечным числом, т.е. его значение превышает 1.2∙104932. Если флаг OE замаскирован, то в качестве результата выдается код ∞;
ZE – деление на нуль – устанавливается в 1, когда делитель равен нулю. Если флаг ZE замаскирован, то в качестве результата выдается код ∞ со знаком, равным сумме по модулю два знаков операндов;
DE – денормализованный операнд – устанавливается в 1, когда хотя бы один из операндов денормализован. Если флаг DE замаскирован и операнд находится в памяти, то сопроцессор оперирует с денормализованным операндом как с нормализованным;
IE – недействительная операция – устанавливается в 1 при переполнении стека, извлечении из пустого стека, выполнения действий, приводящих к неопределенным значениям типа ∞∕∞, ∞∙0, √-а. Если флаг IE замаскирован, то результатом недействительной операции является код неопределенности.
Регистр слова управления сопроцессора служит для задания режима работы сопроцессора программным путем. Различают две группы режимов:
-
режимы вычислений,
-
режимы обработки исключительных ситуаций.
Формат регистра слова управления сопроцессора:
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
IC |
RC |
PC |
IEM |
|
PM |
UM |
OM |
ZM |
DM |
IM |
IC – порядок обработки ∞
IC=0 – без знака
IC=1 – со знаком;
RC – управление округлением
-
RC
способ округления результата
00
к ближайшему значению
01
по направлению к +∞
10
по направлению к -∞
11
округление к нулю
PC – управление точностью, определяет формат представления результатов вычислений
PC |
формат результата |
00 |
24 бита мантисса, 7 бит порядок |
01 |
зарезервировано |
10 |
53 бита мантисса, 10 бит порядок |
11 |
64 бита мантисса, 15 бит порядок |
IEM – маскирование прерываний (флаг IEM маскирует флаг запроса прерывания IR), т.е. независимо от значений масок особых случаев при IEM=1 все исключительные ситуации обрабатываются стандартно
IEM=1 – прерывания запрещены
IEM=0 – прерывания разрешены;
PM, UM, OM, ZM, DM, IM – маски исключительных ситуаций. Установка в 1 бита маски запрещает прерывание при возникновении соответствующей ошибки сопроцессора и используется встроенная процедура обработки исключительной ситуации.