Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методы ускорения умножения




Умножение в дополнительном коде

Ели числа поступают на обработку уже представленные в дополнительном коде, то для умножения их можно перевести в прямой код или умножать сразу в дополнительном коде. В последнем случае в умножении участвуют и знаковые разряды сомножителей, причем знак произведения получается в том же цикле, что и разряды модуля произведения. Однако в некоторых случаях требуется коррекция предварительного результата. Мы не будем рассматривать здесь случаи умножения в дополнительном коде. Любознательным рекомендуем соответствующую литературу, например [11].

Методы ускорения умножения принято делить [8, 11] на аппаратные и логические. Как те, так и другие требуют дополнительных затрат оборудования. При использовании аппаратных методов дополнительные затраты оборудования прямо пропорциональны числу разрядов в операндах. Эти методы вызывают усложнение схемы операционного автомата АЛУ.

Дополнительные затраты оборудования при реализации логических методов ускорения умножения не зависят от разрядности операндов. Усложняется в основном схема управления АЛУ. В ЭВМ для ускорения умножения часто используются комбинации этих методов.

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

Пример реализации умножения с использованием n-входового сумматора показан на рис. 3.24.

Здесь частичные произведения формируются на схемах п -разрядных конъюнкторов одновременно и подаются на входы n-входового сумматора, причем в сумматоре за счет соответствующей коммутации цепей осуществляются сдвиги частичных произведений (как при выполнении умножения на бумаге "в столбик"). На выходе сумматора получается 2n-разрядное произведение.

Метод табличного умножения (рис. 3.25) позволяет получить произведение за один такт при условии, что вся таблица умножения (результаты умножения всевозможных пар п -разрядных сомножителей!) будет размещена в памяти. Очевидно, для этого понадобится запоминающее устройство объемом 22п 2n-разрядных слов (точно таким же способом можно выполнять и другие "длинные" операции — деление, вычисление функций). Так, для организации 8-разрядного умножителя потребуется память объемом 216 х16 бит=128 Кбайт, что для современного уровня развития интегральной технологии не кажется чрезмерным.

(Страница66)

Однако для 16-разрядного АЛУ умножитель "потянет" уже на 232 х32 бит=16 Гбайт! Что касается современных 32-разрядных процессоров, то к расчету потребности в памяти для таких умножителей даже страшно приступать.

Рис. 3.24. Матричное умножение

Рис. 5.25. Табличное умножение

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

Рассмотрим этот способ умножения подробнее. Пусть n — четное. Тогда каждый из двух сомножителей можно представить конкатенацией двух полей одинаковой разрядности n/2: А = AhAl, B=BhBl. В этом случае произведение можно представить следующим выражением:

(3.28)

Таким образом, располагая, например, таблицей умножения 8x8, можно получить произведение двух 16-разрядных сомножителей, сложив (с соответствующим сдвигом) всего 4 слагаемых. Проиллюстрируем этот метод на простом примере.

Пусть требуется перемножать 4-разрядные числа без знака. Построим таблицу умножения 2x2 (при рассмотрении примера не будем включать в нее пары сомножителей, когда один из них равен нулю, а так же пары сомножителей, симметричные уже включенным) — рис. 3.26.

Рис. 3.26. Вспомогательная таблица умножения

Пример 3.22

Выполним умножение 6x10=60 или в двоичном коде 01.10x10.10=00111100. Из таблицы получаем частичные произведения: AlхBl,=10x10=0100, AlхBh=10x10=0100, Ahl,= 01x10=0010, AhxBh =01x10=0010.

Теперь сложим частичные произведения, предварительно сдвинув их в соответствии с (3.28). Результат — на рис. 3.27.

Рис 3.27. Результат выполнения примера 3.22

Выполним умножение 7х11=77 или в двоичном коде 01.11x10.11=01001101.

Из таблицы получаем частичные произведения: Al х Bl =11х11=1001, AlxBh =11x10=0110, AhxBl= 01x11=0011, Ah xBh= 01x01=0001.

Теперь сложим частичные произведения, предварительно сдвинув их в соответствии с (3.28). Результат — на рис. 3.28.

Рис. 3.28. Результат выполнения примера 3.23

Среди логических наиболее распространены в настоящее время методы, позволяющие за один шаг умножения обработать несколько разрядов множителя. Рассмотрим один из способов умножения на два разряда множителя, начиная с его младших разрядов. В зависимости от результата анализа пары разрядов множителя предусматриваются следующие действия (табл. 3.3).

Таблица 3.3. Действия

Комбинация Действие Добавлено
  Сдвиг — Сдвиг  
  Сложение — Сдвиг — Сдвиг А
  Сдвиг — Сложение — Сдвиг
  Сложение — Сдвиг — Сложение — Сдвиг 3А=4А - А

Таким образом, для умножения сразу на два разряда множителя достаточно:

□ при 00 просто произвести сдвиг на два разряда;

□ при 01 прибавить к сумме частичных произведений множимое и произвести сдвиг на два разряда;

□ при 10 прибавить к сумме частичных произведений удвоенное множимое и произвести сдвиг на два разряда;

□ при 11 вычесть из суммы частичных произведений множимое (или добавить обратный (дополнительный) код множимого), произвести сдвиг на два разряда и добавить 1 к следующей (старшей) паре цифр множителя. При классическом методе умножения двоичных п -разрядных чисел согласно выражению (3.26) потребуется n сдвигов суммы частичных произведений и n/2 (в среднем) сложений множимого с суммой частичных произведений. Один из методов ускорения операции умножения — анализ сразу двух разрядов множителя. Это позволит получить результат, применяя n/2 сдвигов и (в среднем) 3n/8 сложений/вычитаний.




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 3353; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.