Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
35
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать
    1. Структура арифметического сопроцессора

Структурная схема сопроцессора INTEL 8087:

Рисунок - Структурная схема сопроцессора INTEL 8087

Сопроцессор INTEL 8087 представляет собой однокристальный 80-разрядный арифметический сопроцессор.

В структурной схеме сопроцессора INTEL 8087 можно выделить два независимо работающих устройства, позволяющих организовать конвейерную обработку принимаемых данных:

  1. операционное устройство – выполняет функции, заданные командой,

  2. устройство шинного интерфейса

    1. принимает и декодирует команды,

    2. осуществляет считывание операндов из памяти и их преобразование в 80-разрядный формат с плавающей запятой,

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

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

Операционное устройство содержит:

  1. стек регистров,

  2. модуль обработки порядка,

  3. арифметический модуль,

  4. сдвиговый регистр,

  5. устройство МПУ.

Буфер данных обеспечивает синхронизацию работы микропроцессора и сопроцессора, имеющих разные тактовые частоты. Наличие буфера данных позволяет передавать сопроцессору команды и данные следующей операции еще до того, как закончилось выполнение текущей. Это дает возможность работы микропроцессора и сопроцессора без циклов ожидания.

Данные на обработку в сопроцессор могут поступать в любом из форматов. Независимо от этого, все вычисления в сопроцессоре выполняются в 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 замаскирован, то результатом недействительной операции является код неопределенности.

Регистр слова управления сопроцессора служит для задания режима работы сопроцессора программным путем. Различают две группы режимов:

  1. режимы вычислений,

  2. режимы обработки исключительных ситуаций.

Формат регистра слова управления сопроцессора:

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 бита маски запрещает прерывание при возникновении соответствующей ошибки сопроцессора и используется встроенная процедура обработки исключительной ситуации.