Материалы

Операционные устройства с плавающей запятой

Рейтинг:   / 0
ПлохоОтлично 

Операции над числами с плавающей запятой имеют существенные отличия от операций целочисленной арифметики, поэтому их реализуют с помощью самостоятельного операционного устройства (ОП). Минимальный набор операций этого устройства включает четыре действия: сложение, вычитание, умножение и деление. Операции выполняются над числами в формате IEEE 754. Особенностью ОП является то, что операции над тремя составляющими чисел с ПЗ (знаками, мантиссами и порядками операндов) выполняются раздельно:

  • блоком обработки знаков;
  • блоком обработки порядков;
  • блоком обработки мантисс.

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

  1. Подготовительный этап.
  2. Определение операнда, имеющего меньший порядок, и сдвиг его мантиссы вправо на число разрядов, равное разности порядков операндов.
  3. Приравнивание порядка результата большему из порядков операндов.
  4. Сложение мантисс.
  5. Проверка на переполнение.
  6. Заключительный этап.

Подготовительный этап осуществляет "распаковку" чисел с ПЗ, загрузку трех составляющих. В старший разряд мантиссы восстанавливается единица. Здесь может быть выполнена проверка на равенство нулю одного или обоих операндов. Это позволяет исключить ненужные операции. Действия на заключительном этапе сводятся к выявлению нулевого значения мантиссы, нормализации мантиссы, выявлению отрицательного переполнения порядка (появляется денормализованный операнд), "упаковке" составляющих результата. В отличие от целочисленной арифметики, в операциях с ПЗ сложение и вычитание производятся приближенно, так как при выравнивании порядков происходит потеря младших разрядов одного из слагаемых. В этом случае погрешность всегда отрицательна и может доходить до единицы младшего разряда. Умножение чисел с ПЗ включает следующую последовательность этапов:

  1. Подготовительный этап.
  2. Проверка на равенство нулю одного из сомножителей. Если один из них ноль, то в качестве результата выдается нуль в формате чисел с ПЗ.
  3. Сложение порядков. Если используется смещенный порядок, то из полученной суммы вычитается величина смещения. Проводится анализ переполнения и антипереполнения поля порядка (возникает прерывание по особому случаю).
  4. Перемножение мантисс с учетом знака. Результат округляется до длины поля мантиссы.
  5. Заключительный этап.
Яндекс.Метрика