Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_po_SP_2013.doc
Скачиваний:
270
Добавлен:
11.05.2015
Размер:
754.69 Кб
Скачать

52 Программная модель математического сопроцессора.

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

В программной модели сопроцессора можно выделить три группы регистров.

1. Стек сопроцессора– восемь регистровR0...R7составляют основу программной модели сопроцессора. Размерность каждого регистра – 80 битов.

Регистровый стек сопроцессора организован по принципу кольца. Все регистры стека с функциональной точки зрения абсолютно равноправны. Контроль текущей вершины стека осуществляется аппаратно с помощью трехразрядного поля ТОР регистра SWR. В поле ТОР фиксируется номер регистра стека 0...7 (RO... R7), являющегося текущей вершиной стека. Команды сопроцессора не оперируют физическими номерами регистров стека RO...R7. Вместо этого они используют логические номера этих регистров ST(0)... ST(1). С помощью логических номеров реализуется относительная адресация регистров стека сопроцессора.

2. Три служебных регистра:

  • регистр состояния сопроцессора SWR (Status Word Register) отражает информацию о текущем состоянии сопроцессора и содержит поля, позволяющие определить, какой регистр является текущей вершиной стека сопроцессора, какие исключения возникли после выполнения последней команды, каковы особенности выполнения последней команды;

В SWR имеются:

– флаги исключительных ситуаций, сигнализирующие об ошибках работы стека сопроцессора или суммарных ошибках работы сопроцессора.

– четыре бита С0...СЗ (Condition Code), которые представляют собой код условия и отражают результат выполнения последней команды сопроцессора.

– поле ТОР, которое содержит указатель регистра текущей вершины стека.

– биты (флаги) регистрации исключительных ситуаций, т.е. особых типов прерываний.

  • управляющий регистр сопроцессора CWR(ControlWordRegister) управляет режимами работы сопроцессора; с помощью полей в этом регистре можнорегулировать точность выполнения численных вычислений, управлять округлением, маскировать исключения;

Он состоит из:

– шесть масок исключений, предназначеные для маскирования исключительных ситуаций;

– поле управления точностью PC(PrecisionControl), предназначеное для выбора длины мантиссы;

– поле управления округлением RC(RoundingControl), позволяющая управлять процессом округления чисел в ходе работы сопроцессора.

  • регистр слова тегов TWR(TagsWordRegister), используется для контроля за состоянием каждого из регистров RO.. .R7 (команды сопроцессора используют этот регистр, например, для того, чтобы определить возможность записизначений в указанные регистры).

3. Два регистра указателей — данных DPR (Data Point Register) и команд IPR (InstructionPointRegister) — предназначены для запоминания информации об адресе команды, вызвавшей исключительную ситуацию, и адресе ее операнда.

Эти указатели используются при обработке исключительных ситуаций (но не для всех команд).

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

Типы данных.

Форматы данных, с которыми работает сопроцессор:

  • двоичные целые числа в трех форматах — 16, 32 и 64 бита;

  • упакованные целые десятичные (BCD) числа — длина максимального числа составляет 18 упакованных десятичных цифр (9 байтов);

  • вещественные числа в трех форматах — коротком (32 бита), длинном (64 бита), расширенном (80 битов).

Кроме этих основных форматов, сопроцессор поддерживает специальные численные значения, к которым относятся:

  • денормализованные вещественные числа — это числа, меньшие минимального нормализованного числа (см. ниже) для каждого вещественного формата, поддерживаемого сопроцессором;

  • нуль;

  • положительные и отрицательные значения бесконечности;

  • нечисла;

  • неопределенности и неподдерживаемые форматы.

67

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]