ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6850
Скачиваний: 22
217
Різниця в тому, що тут часткові добутки зміщуються на і (R1, R2, ...,Ri, Rn-1) розрядів праворуч, а це вимагає розширення на один біт розрядності кожного і-го ОДД в порівнянні з (і-1)-м.
Обидва розглянуті алгоритми вимагають виконання послідовно n-1 додавання, тобто послідовного виконання ОДД, причому в другому алгоритмі ОДД є обчислювально складнішими.
Алгоритм паралельного попарного додавання часткових добутків з використанням структури бінарного дерева вимагає виконання лише log2n послідовних додавань за рахунок розпаралелення обчислень. Граф цього алгоритму показано на рис. 6.16.
При цьому на рис. 6.16 часткові множники зміщуються ліворуч, як на рис. 6.14, хоча їх можна змістити і праворуч, як на рис. 6.15.
Найчастіше в якості операторів додавання в алгоритмах виконання багатомісної операції додавання часткових добутків використовується оператор двомісного однороз-
218
рядного двійкового додавання. Це дозволяє повніше врахувати особливості порозряд-ної обробки даних та зменшити обчислювальну складність алгоритмів, тобто кількість виконуваних операцій. Для цього випадку розроблена велика кількість алгоритмів додавання часткових добутків. Нижче розглянуті найуживаніші алгоритми. Найвідоміши-ми серед матричних алгоритмів, які базуються на використанні операторів двомісного однорозрядного двійкового додавання, є алгоритми з горизонтальним та діагональним розповсюдженням переносу та алгоритми Дадда і Уоллеса.
Для наочності обмежимося чотирирозрядними числами. Виконання багатомісної операції додавання часткових добутків для двох чотирирозрядних чисел А та В, де А -можна представити у вигляді, показаному на рис. 6.17.
Перший рядок даного виразу представляє перший частковий добуток, другий - другий, і так далі. Окремі часткові добутки ah., як це було показано раніше на рис. 6.13, отримані за допомогою елементів AND. Додавання часткових добутків зводиться до додавання розрядів часткових добутків з однаковими вагами (по стовпцях) з врахуванням переносів з молодших розрядів.
На рис. 6.18 зображено граф алгоритму виконання багатомісної операції додавання часткових добутків з горизонтальним розповсюдженням переносу при використанні операторів однорозрядного двійкового додавання, який синтезований на основі графа алгоритму послідовного попарного додавання часткових добутків, отриманих починаючи з аналізу молодших розрядів множника, який показаний на рис. 6.14.
219
В наведеному алгоритмі знаком суми з трьома входами позначено оператор виконання повного однорозрядного двійкового додавання, представлений на рис. 6.8, де арі - вхідні дані; zi - сума, а знаком суми з двома входами (три крайні зліва оператори) позначено оператор виконання неповного однорозрядного двійкового додавання, коли відсутній вхідний перенос, що спрощує алгоритм додавання. Цей оператор виконує операції відповідно до табл. 6.8. На рис. 6.18 переноси не позначено з метою спрощення сприйняття.
Таблиця 6.8
X, |
У; |
z |
с;+( |
|
0 |
0 |
0 |
0 |
|
0 |
1 |
1 |
0 |
|
і |
0 |
1 |
0 |
|
і |
1 |
і_ ° А |
1 |
|
Його роботу можна описати наступними формулами:
Обчислювальна складність даного алгоритму рівна: п2 - п операцій двомісного од-норозрядного двійкового додавання {п2 - 2п операцій повного та п операцій неповного двомісного однорозрядного двійкового додавання). Кількість операторів двомісного однорозрядного двійкового додавання на критичному шляху рівна Зп - 4.
Виконання багатомісної операції додавання часткових добутків з діагональним розповсюдженням переносу показано на рис. 6.19. Цей алгоритм також синтезований на основі графа алгоритму послідовного попарного додавання часткових добутків, отриманих починаючи з аналізу молодших розрядів множника, який показаний на рис. 6.14.
Обчислювальна складність даного алгоритму рівна: п2 - п операцій двомісного однорозрядного двійкового додавання (п2 - 2п операцій повного та п операцій неповного двомісного однорозрядного двійкового додавання). Кількість операторів двомісного однорозрядного двійкового додавання на критичному шляху рівна 2n- 2.
Подібним чином можна побудувати алгоритми виконання багатомісної операції додавання часткових добутків з послідовним та діагональним розповсюдженням переносу
220
відповідно до графа алгоритму послідовного попарного додавання часткових добутків, отриманих починаючи з аналізу старших розрядів множника, показаного на рис. 6.15.
На рис. 6.20 показано граф алгоритму Дадда виконання багатомісної операції додавання часткових добутків, побудований на основі графа алгоритму паралельного попарного додавання часткових добутків з використанням структури бінарного дерева (рис. 6.16).
Обчислювальна
складність даного алгоритму рівна: п2
- п операцій двомісного
од-норозрядного двійкового додавання
(п2
- 2п операцій повного
та п операцій
неповного двомісного однорозрядного
двійкового додавання). Кількість
операторів двомісного однорозрядного
двійкового додавання на критичному
шляху рівна 2и - 2.
6.4.4.3. Множення двійкових чисел із знаками
При множенні чисел, представлених в оберненому коді, найпростіше перевести множене і множник в прямий код та виконати операції в цьому представленні, а при від'ємному результаті провести інвертування його значення.
Існує метод множення двійкових чисел, представлених в доповняльному коді, без перетворення в прямий код. В цьому випадку множення виконується за формулою:
Значення розряду множника, на який здійснюється множення на і-му кроці, визначається з виразу:
Результат множення також отримується в доповняльному коді. На основі даного виразу та використання підходу, застосованого в п. 6.4.4.2, можна побудувати графи відповідних алгоритмів множення двійкових чисел в доповняльному коді.
221
6.4.4.4. Прискорене множення двійкових чисел за методом Бута
Особливістю цього методу є те, що аналізуються відразу два розряди множника. Цей метод широко застосовується. Пришвидшення досягається тим, що при обрахуванні добутку за цим методом зменшується кількість додавань. Суть методу можна виразити наступними формулами для обчислення часткових добутків:
де: X, Y, Z - множене, множник і добуток відповідно, Zi - сума часткових добутків на і-му етапі, Y(i, і-1) - і-й таі-1 розряди множника, п - кількість розрядів операндів X та Y без врахування знакового розряду
Тут знаком --арифм---> позначена операція арифметичного зсуву праворуч.
Можна проілюструвати цей алгоритм за допомогою блок-схеми, показаної на рис. 6.21.