Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системы счислений.doc
Скачиваний:
8
Добавлен:
27.04.2019
Размер:
5.25 Mб
Скачать

Последовательное и параллельное сложение чисел

Параллельный способ передачи информации является более быстродействующим по сравнению с последовательным, но менее экономичным (требуется вместо одного проводника (и усилителя сигналов) n проводников).

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

Последовательный сумматор (рис. 3).

Сумматор – устройство, предназначенное для выполнения арифметического сложения чисел в двоичном коде. Простейший случай - это суммирование двух одноразрядных чисел.

Tc(посл)  n t, t-время задержки сигнала переноса на элементе задержки.

В этой схеме на входы x и y последовательно подаются попарно разряды слагаемых xi и yi. На выходе S формируются si разряды суммы. Триггер введен в схему для хранения значения переноса до следующего такта (следующей пары разрядов).

Параллельный сумматор (рис. 4).

Старший разряд Младший разряд

xn SM S x2 SM S x1 SM S

. . .

yn y2 y1

P P P

Рис. 4. Схема параллельного суммирования

Тс(пар)  nлэ .

Очевидно, Tc(посл) ≤ Тс(пар), так как

t  (3,6) kлэ ,

где k - коэффициент запаса, обеспечивающий полное окончание всех переходных процессов в сумматоре последовательного действия k  [1,2, 1,3].

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

Сложение чисел с плавающей запятой

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

A=mArpA,

B=mBrpB.

Алгоритм сложения чисел с произвольными знаками состоит в следующем.

1. Производится сравнение порядков pA и pB. Для этого из порядка числа A вычитается порядок числа B. Разность p=pA-pB указывает, на сколько разрядов требуется сдвинуть вправо мантиссу числа с меньшим порядком. Если p=pA-pB>0, то pA>pB и для выравнивания порядков необходимо сдвинуть вправо мантиссу MB. Если p=pA-pB<0, то pB>pA и для выравнивания порядков необходимо сдвинуть вправо мантиссу MA. Если p=pA-pB=0, то pA=pB и порядки слагаемых выравнивать не требуется.

2. Выполняется сдвиг соответствующей мантиссы до тех пор, пока p≠0.

3. Выполняется сложение мантисс MA и MB по правилу сложения правильных дробей.

4. Если при сложении мантисс произошло переполнение, то производится нормализация путем сдвига мантиссы суммы вместе со знаковым разрядом вправо на один разряд с увеличением порядка на единицу. Если же происходит денормализация, то выполняется сдвиг мантиссы результата на соответствующее количество разрядов в сторону, противоположную нарушению нормализации с соответствующим изменением порядка суммы.

Пример: МА=-0,10110 рА=+0111

МВ=-0,11011 рВ=+0101

[MA]доп=1,01010 p= [рА]доп+[-рВ]доп= 0.0111

[MB]доп=1,00101 + 1.1011

10.0010

Так как [рАВ]доп>0, то сдвигу подвергается мантисса МВ.

В рассматриваемом примере при каждом сдвиге мантиссы на один разряд из положительной разности порядков производим последовательное вычитание единицы до тех пор, пока в результате не будет получен ноль. При этом выполняется анализ разности порядков на каждом шаге. Если она отлична от нуля, то производится очередной сдвиг соответствующей мантиссы. В случае если разность [рАВ]доп<0, необходимо либо прибавлять единицу до нулевого результата, либо изменить знак разности на противоположный и, как и выше, выполнять вычитание единицы.

[MB]доп=1,00101 0.0010

[-1]доп= 1.1111

[MB]доп=1,10010 1 0.0001

[MB]доп=1,11001 01 [-1]доп= 1.1111

0.0000

[MB]доп=1,11001 01

[MA]доп=1,01010

11,00011 01 = [МА+В] рА+В=max(рА,pB)=pA=+0.0111

Полученный результат нормализован. После выполнения операции округления получим [МА+В]= 1,00011.