Разделы:


Best links:

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

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

Регистр управления CR. Служит для задания различных режимов работы сопроцессора. Различают две основные группы режимов - вычислений и обработки исключительных ситуаций. Для управления режимами вычислений служат поля, расположенные в старшем байте регистра CR (см. рис. 2.4). Поле RC осуществляет управление округлением результатов вычислений в соответствии с табл. 2.5.

Режим округления к ближайшему четному значению используется наиболее часто, так как обеспечивает максимальную точность вычислений. Режимы округления по направлению к плюс/минус бесконечности используются для определения границ значений, в пределах которых находится результат (например, полученный в режиме RC = 00). Наконец, режим округления по направлению к нулю используется в редких случаях, например для моделирования на базе АП целочисленной арифметики.

Поле РС осуществляет управление точностью представления результатов вычислений в соответствии с табл. 2.6. Обычно задается значение поля РС = 00, которое позволяет получить наиболее точные значения при вычислениях. Два других варианта задания точности РС = 01 и РС = 10 ограничивают представление результатов форматами КВФ и ДВФ. Причем, поскольку АП производит все действия в формате ВВФ, округление результатов до более коротких форматов может приводить к потере точности.

        Таблица 2.5                                                        Таблица 2.6

Код поля RC

Способ округления результата

00

 К ближайшему четному

01

 По направлению к – оо

10

 По направлению к +оо

11

 По направлению к нулю

Код поля РC

Точность представления результата

00

В формате ВВФ

01

В формате КВФ

10

В формате ДВФ

Флаг IC позволяет управлять типом арифметики. Значение IC = 1 определяет режим работы АП в обычной арифметике, использующей числа, лежащие в диапазоне от минус до плюс бесконечности. Значение IC = 0 определяет режим работы в так называемой проективной арифметике, которая имеет одну бесконечность без знака. Обычная арифметика имеет две бесконечности, между которыми расположены все вещественные числа. В проективной арифметике числа отображаются на проективную окружность, верхняя точка которой соответствует бесконечности без знака, нижняя нулю, а все остальные точки соответствуют конечным положительным и отрицательным числам. Особенность вычислений в проективной арифметике состоит, в частности, в том, что ни одно конечное число несравнимо с бесконечно большим. При выполнении операций сравнения это различие приведет к тому, что в результате сравнения чисел, одно из которых бесконечно большое, а другое конечное, в режиме IC = 1 получится вполне определенный результат (С3С0 = 00 или 01), а в режиме IC = 0 числа окажутся несравнимы (С3С0 = 11).

предыдущаяследующая