Нехай множене А - будь-яке число, а множник B > 0, тобто А = [A]д і [В]д
. Тоді .Згідно з теоремою про додавання доповняльних кодів можна стверджувати, що права частина цього співвідношення відповідає доповняльному коду результату. Таким чином, у випадку додатного множника добуток доповняльних кодів співмножників дорівнює доповняльному коду результату.
Розглянемо випадок, коли множене А - будь-яке число, а множник B < 0, тобто А=[A]д і [В]д
. Виходячи з означення доповняльного коду . Отже, .Тоді
.Звідси випливає, що коли множник є від'ємним числом, то доповняльний код добутку одержується додаванням поправки
до добутку доповняльних кодів співмножників.Таким чином, у загальному випадку, в процесі множення доповняльних кодів операндів одержуємо одночасно знакову і цифрову частини добутку.
Правила множення з додаванням поправки наведені в табл. 3.10.
Приклад 3.9. Помножити доповняльні коди чисел А = - 0, 10100 і В = 0, 10011, використовуючи метод 1.
Розв'язання. Для даних чисел маємо: [А]мд =11,01100; [В]д= 0,10011. Оскільки B>0, то поправка не додається. Послідовність дій, що виконуються в процесі множення, подані у вигляді табл. 3.11.
Відповідь: [С]мд =11,1010000100; С= - 0, 0101111100.
Таблиця 3.10 - Правила множення з додаванням поправки
Методи множення | Етапи | |
З молодших розрядів множника | Множення за методом і додатковий зсув на один розряд після його завершення | Додавання |
Зі старших розрядів множника | Додавання | Додатковий зсув на один розряд і після нього множення за методом |
Таблиця 3.11 - Перший приклад множення доповняльних кодів
Приклад 3.10. Помножити доповняльні коди чисел А = - 0,10100 і В = - 0, 10011, використовуючи метод 2.
Розв'язання. Для даних чисел маємо: [А]мд=11,01011; [В]д= 1,01100. Оскільки B<0, то додається поправка. Послідовність дій, що виконуються в процесі множення, подані у вигляді табл. 3.12.
Таблиця 3.12 - Другий приклад множення доповняльних кодів
Відповідь: С= 0, 0101111100.
3.3. МЕТОДИ ПРИСКОРЕННЯ ОПЕРАЦІЇ МНОЖЕННЯ
3.3.1. Основні поняття
Прискорення операції множення дозволяє істотно підвищити продуктивність ЦОМ, оскільки приблизно 70% свого часу вони витрачають на виконання цієї операції. Аналізуючи (3.2) - (3.5), можна намітити такі шляхи скорочення часу множення: зменшення часу додавання і зсуву кодів; зменшення кількості додавань і кількості зсувів кодів.
Оскільки прості методи множення передбачають виконання в кожному циклі зсув кодів тільки на один розряд, то зменшити час зсуву неможливо тому, що кола для зсуву реалізують, як правило, з найменшою затримкою сигналів.
Зменшення часу додавання двох кодів досягається за рахунок ускладнення кіл формування розрядних сум і перенесень у суматорі. Але це ні яким чином не впливає на організацію процесу множення. Тому основні підходи щодо прискорення операції множення базуються на зменшенні кількості додавань і кількості зсувів кодів.
Відомі на цей час методи прискорення множення розподілені на дві великі групи: логічні й апаратні.
Логічними методами прискорення множення називають такі методи, реалізація яких не вимагає змін основної структури арифметичних кіл пристрою для множення (див. рис. 3.1 - 3.5), а прискорення досягається тільки за рахунок ускладнення схеми керування цим пристроєм. Стосовно пристроїв для множення паралельних кодів ознакою того, що ми маємо справу з логічним методом прискорення множення, є незалежність кількості додаткової апаратури (у порівнянні з вихідною схемою) від кількості розрядів співмножників.
Апаратні методи, прискорення множення вимагають для свого здійснення введення додаткової апаратури в основні арифметичні кола пристрою для множення.
Розрізняють апаратні методи першого порядку і другого порядку. Для апаратних методів першого порядку характерна лінійна залежність кількості додаткової апаратури від кількості розрядів у співмножниках п. Тоді як реалізація методів другого порядку вимагає введення додаткової апаратури, кількість якої пропорційна
.3.3.2. Логічні методи прискорення операції множення в двійковій системі числення
До логічних методiв прискорення операції множення належать: метод множення з пропусканням додавань у тих випадках, коли чергова цифра множнику є нуль; метод множення з перетворенням цифр множнику шляхом групування розрядiв i метод множення з послідовним перетворенням цифр множника.
В основi двох останніх логічних методiв лежить перехід до надлишкової двійкової системи числення з алфавітом {1, 0,
}, який дозволяє зменшити кількість одиниць у коді множника, але при цьому в процесi множення будуть виконуватись операції додавання та віднімання.Метод множення з пропусканням додавань є найпростішим з логічних методів прискорення множення. Схему керування взагалі простіше побудувати так, щоб за тактом зсуву щораз приділявся час на додавання, але додавання виконувалося б у залежності від цифри множника. Невелике ускладнення схеми керування, що дозволяє відводити час на додавання тільки тоді, коли воно дійсно необхідно, скорочує число тактів додавання в середньому вдвічі. Час множення за таким методом прискорення дорівнює:
.Цей метод прискорення рівною мірою підходить для тих випадків, коли множення починається зі старших розрядів множника, і для випадків, коли множення починається з молодших розрядів.
Приклад 3.11. Помножити числа А = - 0, 10100 і В = 0, 10011, використовуючи метод множення з пропусканням додавань.
Розв'язання. Для даних чисел маємо:
=1; = 0, 10100; =0; = 0, 10011. Визначаємо знак добутку: =1 0=1.Усі дії, що виконуються в кожному циклі множення, наведені табл. 3.13.
Відповідь: С= - 0, 0101111100.
Таблиця 3.13 - Приклад множення за прискореним методом
Розглянемо тепер метод множення з перетворенням цифр множнику шляхом групування розрядiв.
Кількість циклів, що необхідні для реалізації операції множення, можна скоротити, якщо в кожному циклі аналізувати не один, а два або більше розрядів множнику, виконуючи після аналізу додавання або віднімання та зсув множнику на відповідну кількість розрядів (два або більше). Для організації прискореного множення множник розбивають на групи з двох розрядів і перетворюють його таким чином, щоб кожна група містила не більш одної значущої одиниці (додатної або від'ємної).
Правила перетворення множника з молодших розрядiв у разі групування по два розряди формулюються, враховуючи таке.
Комбінації 00, 01, 10 не перетворюються, а комбінація 11 замінюється комбінацією 1.0
, яка містить від'ємну одиницю в даній групі розрядів і додатну одиницю, що передається до наступної групи розрядів множника.З урахуванням одиниці, що передається з попередньої групи розрядів, у даній групі розрядів після перетворення може зустрітися одна з таких комбінацій:
00 - якщо дана група розрядів містить цифри 00 і з попередньої групи одиниця не передається або якщо дана група розрядів містить цифри 11 і одиниця передається з попередньої групи розрядів;
01 - якщо дана група містить цифри 01 і з попередньої групи одиниця не передається, або якщо дана група розрядів містить 00 і передається одиниця з попередньої групи розрядів;
10 - якщо дана група містить 10 і нема одиниці з попередньої групи або якщо дана група містить 01 і є одиниця з попередньої групи розрядів;