Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Сложение двоичных чисел с плавающей запятой
При выполнении операции сложения двоичных чисел с плавающей запятой необходимо иметь в виду, что сложение возможно только в том случае, когда порядки слагаемых одинаковы. Поэтому операция сложения включает два этапа: этап выравнивания порядков, т.е. приведения обоих слагаемых к большему из порядков, и собственно сложения мантисс. Для обработки порядков и мантисс используются разные группы аппаратных средств, т.е. в схеме операционного автомата (ОА) используются две группы элементов: одна из них предназначена для обработки порядков, другая – для обработки мантисс. При выполнении любых арифметических операций порядки всегда обрабатываются в модифицированных кодах. Это необходимо для контроля переполнения разрядной сетки порядка. Мантиссы при выполнении сложения с плавающей запятой также обрабатываются в модифицированных кодах, что позволяет использовать критерии нормализованности результата сложения. Для сложения двух чисел с одинаковыми значениями порядка достаточно сложить мантиссы двух операндов и присвоить порядку результата значение порядка одного из слагаемых. Если порядки слагаемых имеют разные значения, то вначале необходимо произвести выравнивание порядков. Для выравнивания порядков необходимо привести оба слагаемых к большему из порядков путем сдвига мантиссы меньшего числа вправо на такое число разрядов, на какое различаются порядки слагаемых. При этом следует формализовать процедуру нахождения меньшего из двух чисел, представленных в форме с ПТ, и сформулировать критерий, позволяющий выполнить необходимые преобразования мантиссы меньшего числа. После выравнивания порядков мантиссы можно складывать обычным образом. Порядку результата присваивается значение большего из порядков слагаемых. Следует позаботиться о том, чтобы больший из порядков был сохранен для упомянутого присваивания. Процедура выравнивания порядков выполняется всегда перед началом сложения. Допустим, что необходимо сложить два двоичных числа, представленных в форме с ПТ: mA*2ПА+mB*2ПВ=mC*2ПС. Опишем последовательность действий, выполняемых при сложении с ПТ.
Критерием нарушения нормализации слева является признак l: Нарушение нормализации слева может возникнуть при сложении чисел с разными знаками. Если складываются числа близкие по абсолютной величине и с разными знаками, то результат сложения может оказаться < 2-1 или нулевым. В этом случае нормализация состоит в том, что мантиссу результата сдвигают арифметическим сдвигом влево до тех пор, пока l=1, вычитая 1 из порядка результата при каждом сдвиге мантиссы влево. Если в результате сложения получена нулевая мантисса, то ее не нормализуют, и порядок обнуляют. Такой результат не является ошибкой, так как это число может участвовать в операции сложения. Для обнаружения нулевого результата на выходе сумматора мантисс используют компаратор, выходной сигнал которого равен 1 тогда и только тогда, когда мантисса суммы равна нулю. Если такая комбинационная схема не используется для проверки значения результата, необходимо поставить ограничитель на число сдвигов мантиссы суммы влево, например, с помощью счетчика. В этом случае счетчику присваивают значение n-1 и выполняют декремент счетчика при каждом сдвиге мантиссы суммы влево. Если после выполнения всех сдвигов признак нарушения нормализации слева продолжает оставаться равным 1, это является критерием нулевого результата. Однако этот способ требует больших затрат времени по сравнению с использованием компаратора.
Пример. Выполнить сложение двух чисел А= 27410, В=-3910, на Двоичном сумматоре дополнительного кода. Результат представить в нормализованной форме. Вначале выполним перевод слагаемых в форму с плавающей запятой. 27410=1000100102=0, 100010010*29; 3910=1001112=0, 100111*26. Далее необходимо выбрать параметры функциональных элементов операционного автомата, т.е. длину разрядной сетки регистров, в которых будут храниться исходные и промежуточные данные и результаты счета. Примем следующие параметры данных во внешней памяти: разрядность порядка nП=4+1, т.е. 4 числовых разряда и один знаковый разряд; разрядность мантиссы nM=6+1, т.е. 6числовых разрядов и один знаковый разряд.. Для размещения исходных данных в регистровой памяти операционного автомата потребуется 4+1+6+1=12 разрядов. Допустим, что в схеме ОА имеется два 12-разрядных регистра, в один из которых (РгА) помещают первое слагаемое, и в другой (РгВ) – второе слагаемое. Слагаемые находятся во внешней памяти в дополнительном коде. Для обработки порядков будем использовать 6-разрядные регистры РгПА и РгПВ, в которые будут загружены порядки операндов из РгА и РгВ в модифицированных кодах, а также 6-разрядный сумматор дополнительного кода СмП. Формат микроопераций загрузки имеет вид: РгПА: =РгА[0]|РгА[0-4], РгПB: =РгB[0]|РгB[0-4]. В группу аппаратных средств, предназначенных для обработки порядков необходимо также включить комбинационную схему компаратора, для получения информации о моменте, когда на выходе СмП образуется нуль. Последнее является свидетельством окончания процедуры выравнивания порядков. В группу аппаратных средств, предназначенных для обработки мантисс включим два 8-разрядных регистра мантисс со сдвигом вправо, РгМА и РгМВ, в которые загружаются мантиссы слагаемых из РгА и РгВ соответственно, а также сумматор такого же формата. Формат соответствующих микроопераций имеет вид: РгМА: =РгА[5]|РгА[5-11], РгМВ: = РгВ[5]|РгВ[5-11]. Перед началом работы сумматоры «обнуляются». Последовательность действий, выполняемых при сложении представлена в Табл. 5. Таблица 5 Пример сложения двоичных чисел с плавающей запятой
Результат сложения С=0.111010*28=232. Ошибка сложения (274-39=235) обусловлена недостаточной длиной разрядной сетки, а также потерей значащих разрядов при выполнении выравнивания порядков. |
Последнее изменение этой страницы: 2019-03-29; Просмотров: 403; Нарушение авторского права страницы