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

Асинхронный метод

Старшая и младшая часть множителя находится в двух разных регистрах В1 и В2: регистр В аппаратно разделен на две части, управление осуществляется двумя автономными УА. Первый УА управляет вычисление суммы частичных произведений при умножении на В1, второй УА – на В2. в одном и том же такте в каждом из сумматоров может хранится сумма 5 и 7 частичных произведений(3 и 6, и т.д.). Операции сдвига в В1С1 и В2С2 независимы и инициируются разными УА. По окончании процесса умножения выдается в каждом из сумматоров осведомительный сигнал.

tумн.ср=.n/2(0.5Тумн.сдв.)+Тсум.

Если сумматоров к, то tумн.ср=.n/к(0.5Тумн.сдв.)+Тсум.

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

Вопрос №29. Аппаратные методы ускорения умножения. Использование сумматора с запоминанием переносов.

tсум=ntкс+tпр.кода

Основная идея:

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

В цикле проверки Bn

1такт – y(+) (множитель+сумма част.произведений+перенос)

2Такт – y(-)(сдвиг)

Пропуски тактов суммирования в этом алгоритме запрещены, т.к. перенос всегда необходимо прибавлять.

П осле n циклов вычисленное произведение будет представлено двумя числами С и Р. их нужно сложить на обычном сумматоре с замкнутыми цепями переноса.

0 1001 7/16*15/16=105/256

00 0110 6/16+9/256=105/256

0110

0 1111

00

Вопрос №33. Операция нормализации.

Р – порядок

М – мантисса

А=М*2Р

Если Р определяет диапазон представления чисел в ЭВМ, то М – точность представления чисел в ЭВМ.

С:=АВ; {+,-,*,/}

Необходимое оборудование:

N+2 разряд в мантиссах необходим для округления, т.к. выполнение операций с плавающей точкой связаны с потерей точности.

Операнды (ОП) поступают из памяти в ОА в нормализованном виде; знаковые разряды дублируются только на ОЭ. Результат операции тоже должен быть в нормализованном виде.

Нормализованное число: 1/2|М|1.

Нормализованное число – это число, у которого первая информационная цифра мантиссы равна 1 для положительных чисел и равна 0 – для отрицательных чисел, и знаковые разряды мантиссы при этом одинаковые.

00,11001 – нормализованное число

11,0011 – нормализованное число

Требования для нормализованных чисел:

Мс(0)Мс(2)=1

Мс(0)Мс(1)=0.

Виды нарушения нормализации:

  1. Нарушение нормализации влево(переполнение мантиссы).

01,110

01 – для положительных чисел

10 – для отрицательных чисел Восстановление нормализации в этом случае происходит сдвигом мантиссы на один разряд, при этом мантисса уменьшается в два раза, поэтому порядок нужно увеличивать на 1.

  1. Нарушение нормализации вправо(знаковые разряды мантиссы равны, но не выполняется условие: Мс(0)Мс(2)=1).

00.00010

11.110

Восстановление нормализации возможно сдвигом мантиссы влево и уменьшением порядка на 1.

-1/210=11,1002 – нормализованное число, не выполняется условие Мс(0)Мс(2)=1;

+1/210=00,1002

Исключительные ситуации при нормализации и после выполнения операций с плавающей точкой.

  1. Аварийное завершение операции(прерывание).

Мантисса=0, а порядок любой. Ситуация такая называется потеря значимости.

Fпз:=1; Р:=0.

  1. При нарушении нормализации влево, после сдвига мантиссы вправо может возникнуть переполнение порядка. Такая ситуация называется переполнение порядка.

Fпп :=1.

  1. При нарушении нормализации вправо, после сдвига мантиссы влево может возникнуть отрицательное переполнение порядка. Такая ситуация называется исчезновением порядка.

Fип :=1.

Вопрос №34. Алгоритм сложения чисел с плавающей точкой.

Даны:

А=МА*2Ра В=МВ*2Рв

Найти:

С=МС*2Рс

Операнды и результат должны быть в нормализованном виде.

  1. Проверка особых ситуаций:

Если МВ=0, то С:=А Если МА=0, то С:=В Переход к концу.

  1. Выравнивание порядков.

0,5*103+0,4*102=0,5*103+0,04*103=0,54*103.

    1. Вычисление разности порядков: РС:=РАВ.

    2. Если |РС|n+1, то сумма принимается равной числу с большим порядком:

Если РС=0, то С:=А;

Если РС=1, то С:=В.

Переход к концу.

    1. Если РС0, то производится уравнивание порядков слагаемых, путем приведения числа с меньшим порядком к числу с большим порядком. Уравнивание порядков выполняется арифметическим сдвигом мантиссы числа с меньшим порядком вправо на число разрядов равное |РС|.

Если ЗнРс=1, то преобразуется МА.

Если ЗнРс=0, то преобразуется МВ.

Сдвиг осуществляется следующим образом:

При каждом элементарном сдвиге на 1 разряд из РС вычитается 1, если сдвигается МВ, и прибавляется 1, если сдвигается МА.

Выход из цикла по РС=0.

Если МА и МВ представлены в прямом коде, то старшие освобождающиеся при сдвиге информационные разряды заполняются нулями; если в инверсном коде, то знаковыми разрядами.

  1. Мантиссы, полученные после уравнивания порядков, складываются как числа с фиксированной точкой.

МС:=МАВ.

Порядок суммы принимается равным наибольшему из порядков слагаемого.

РС:=max(РАРВ).

Отличие от алгоритма сложения с фиксированной точкой – не вырабатывается сигнал переполнения, т.к. возможна нормализация со сдвигом вправо.

  1. Округление мантиссы результата осуществляется прибавлением 1 к n+2 разряду сумматора мантисс.

  2. Нормализация результата (см. алгоритм выше).

Исключительные ситуации при сложении:

  • Потеря значимости;

  • Переполнение порядка при нормализации со сдвигом вправо;

  • Исчезновение порядка при нормализации со сдвигом влево.

Вопрос №35. Исполнение операций умножения и деления чисел с плавающей точкой.

Умножение чисел с плавающей точкой.

С=А*В

Даны:

РА, МА, РВ, МВ.

Найти:

РС, МС.

  1. Порядки складываются по правилам сложения чисел с фиксированной точкой. Мантиссы перемножаются по правилам умножения чисел с фиксированной точкой.

  2. Младшие разряды произведения, выдвигаемые в такте сдвига из сумматора мантисс, не сохраняются, кроме n+2 разряда.

  3. Результат округляется добавлением 1 в n+2 разряд МС и нормализуется.

Исключительные ситуации:

  • Исчезновение порядка при нормализации со сдвигом влево;

  • Переполнение порядков, т.к. имеет место сложение порядков в алгоритме.

Деление чисел с плавающей точкой.

С=А/В.

РСАВ;

МСАВ.

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

Исключительные ситуации:

  • Деление на ноль;

  • Исчезновение порядка при нормализации со сдвигом влево;

  • Переполнение порядков, т.к. имеет место сложение порядков в алгоритме.

Особенности применяемого алгоритма деления с фиксированной точкой.

В классический алгоритм деления вносятся незначительные изменения:

  • МА перед выполнением деления с фиксированной точкой сдвигается влево на один разряд, порядок увеличивается на 1.

Предусматривается нормализация со сдвигом влево.

Вопрос №36. Алгоритм сложения десятичных чисел.

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

Десятичные числа представляются в АЛУ в двоично-десятичном коде.

Сложение двух десятичных чисел сводится к последовательной выработке сумм вида:

PiCi=Ai+Bi+Pi+1 , где

Ai и Bi – четырехразрядные коды десятичных цифр слагаемых;

Pi+1 – десятичный перенос(перенос со сдвигом 10) из предыдущего младшего десятичного разряда суммы;

Pi – десятичный перенос в следующий старший разряд суммы;

Ci – 4-х разрядный двоичный код цифр суммы

Ai+Bi+Pi+1<=19;

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

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

Алгоритм сложения десятичных чисел.

A>0; B>0; C=A+B.

  1. Вычисляется сумма С=а1а2..an+bb..b (рассматриваются только информационные разряды).

  2. С:=С+В

Если перенос старшей тетрады равен1, то фиксируется Fпп:=1.

Иначе переход к концу.

  1. Формируется корректирующее слагаемое.

Корректирующая цифра ki=0000, если Pi=1.

Ki=1010, если Pi=0.

  1. Вычисляется сумма: С:=С+Л(суммирование производится с разорванными цепями межтетрадных переносов).

Пример:

134+591=725

0001 0011 0100

+

0110 0110 0110 +6

0111 1001 1010

+

0101 1001 0001 +В

1101 10010 1011 (*)

-

1010 0000 1010 +К

0111 0010 0101

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

В этом случае во все тетрады будет идти перенос, но учитываться он не будет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]