Смекни!
smekni.com

Виконання операцій множення і ділення у двійковій системі числення (стр. 4 из 9)

Нехай множене А - будь-яке число, а множник 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 і є одиниця з попередньої групи розрядів;