Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дубинин Н.М. Методические указания по курсовому проектированию.DOC
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
668.16 Кб
Скачать

6.4 Проектирование блока сопроцессора порядков для выполнения арифметических операций над числами с плавающей запятой

Этапы проектирования блока порядков соответсвуют этапам проектирования блока арифметического суммирования с фиксированной запятой. Основные отличия в суммировании возникают в разработке соответствующей микропрограммы. Поэтому рассмотрим специфику операции сложение-вычитание с плавающей запятой более подробно.

Число Х, представленное в форме с плавающей запятой, имеет вид :

где Р - порядок числа, М - мантисса, R- основание системы счисления. Если каждому числу Х однозначно соответствует пара Р, R , то , а число Х называется нормализованным.

Порядок и мантисса числа записываются в своих разрядах в виде чисел с фиксированной запятой; мантисса - в виде дробного числа с запятой перед старшим из основных разрядов, порядок - в виде целого числа с запятой после младшего разряда. Структура представления в ЭВМ числа с плавающей запятой показана на рис.6. Разрядная сетка машины с плавающей запятой имеет следующий вид:

1 m 1 L

Мантисса Порядок

Рисунок 6

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

Выполнение операции сложения-вычитания чисел с плавающей запятой состоит из следующих этапов:

  • выравнивание порядков;

  • суммирование мантисс;

  • определение порядка результата;

  • нормализация результата;

  • округление результата.

Выравнивание порядков осуществляется путем сдвига вправо мантиссы числа с меньшим порядком. Так как сдвиг вправо эквивалентен делению мантиссы на k, то при каждом сдвиге порядок должен увеличиваться на 1. В результате алгебраического сложения мантисс получаются мантиссы суммы (разности). Порядок результата принимается равным порядку большего числа. Полученная сумма (разность) нормализуется.

Для выполнения операции выравнивания порядка используется сумматор порядков, на котором из порядка первого числа вычитают порядок второго числа. По знаку разности определяют больший порядок, а абсолютная величина разности позволяет определить необходимое число сдвигов.

При сравнении порядков возможны пять случаев:

а) Px - Py m ,где m - число разрядов мантиссы, при этом в качестве результатов сразу берется первое слагаемое, поскольку при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевые значения;

б) Px - Py < m - второе слагаемое является результатом суммирования;

в) Px - Py = 0 - приступают к суммированию мантисс;

г) Px - Py = k1 (k1< m) - мантисса второго слагаемого сдвигается на k1 разрядов вправо, затем мантиссы суммируются;

д) Py - Px = k2 (k2 < m) - мантисса первого слагаемого сдвигается на k2 разрядов вправо, затем мантиссы суммируются.

Мантиссы, полученные после выравнивания порядков, складываются как двоичные числа с фиксированной запятой. Сумма мантисс определяет мантиссу суммы, при этом результат может оказаться ненормализованным. Если используются модифицированные коды, то переполнение (левое нарушение нормализации) определяется по комбинациям цифр 01 и 10 в знаковых разрядах суммы мантисс. Нормализация заключается при этом в сдвиге мантиссы результата вправо на 1 разряд. Правое нарушение нормализации определяется по комбинациям цифр 00,0 и 11,1 в старшем и знаковом разрядах мантиссы результата. При этом нормализация результата заключается в сдвиге мантиссы результата влево до тех пор, пока не появится “1” в старшем разряде сетки мантиссы.

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

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

В общем случае блок сложения-вычитания чисел с плавающей запятой должен содержать:

  • сумматор мантисс;

  • сумматор порядков;

  • узел выравнивания порядков, состоящий из схемы сравнения порядков и присвоения порядка результату, схемы сдвига мантиссы вправо и счетчика сдвигов;

  • узел нормализации чисел, состоящий из схемы сдвига вправо мантиссы на 1 разряд; схемы определения числа разрядов сдвига мантиссы влево; схемы анализа нарушения нормализации;

  • схему округления.