Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ukr1_PTTsA_kl_ch1_10-02-2010.doc
Скачиваний:
110
Добавлен:
07.02.2016
Размер:
2.66 Mб
Скачать

13.2 Множення чисел на дсок при негативному множнику

Випадок В0. Якщо множник негативний, то добуток чисел на суматорі ДСОК є додатком виправленя А і [A]об2-n до отриманого добутку обернених кодів співмножників.

Доказ. Нехай А=[A]об і В<0, тоді ; відповідно до подання у ФРК, фіксовано перед старшим розрядом |B|+[B]об=qq-n=22-n; звідси [В]об=2+В2-n; тож,+ 2-n1, добуток дорівнює: АВ =Aоб+[A]об (2-n)+; є два виправлення: перше [A]об(2-n) порівняне мале (тому часто ігнорується) і друге +.

Алгоритм. Множення на ДСОК (при В0) виконується в наступній послідовності (наведена в таблиці 13.2):

- у суматор записуються 11.111...1 (машинний нуль оберненого коду);

- у регістр В записується множник у оберненому коді (без знака);

- у суматор додається множене у оберненому коді Аоб;

- ведеться аналіз розрядів РгВ (починаючи з молодшого), і якщо там «1» («0»), то до вмісту суматора додається (нічого не додається) обернений код множеного;

- після циклу додавання і аналізу робиться зсув вправо вмісту суматора і РгВ на один розряд (можна з переносом молодших розрядів суматора в старші розряди РгВ);

- після аналізу і зсуву старшого розряду множника до результату додають виправлення [] інверсію Аоб, включаючи і знак;

- якщо знак результату негативний, то він у оберненому коді і необхідне перетворення у прямий код;

- після перетворення в прямий код, необхідно перевірити нормалізацію результату.

Приклад. Метод 2, множення чисел на ДСОК. А=0/110101; В=0/101000; АВ=+2120. Рішення: Запишемо машинне зображення чисел.

Амоб = 11/001010; Вмоб = 11/010111; = 00/110101.

Послідовність виконання операції множення наведена в таблиці 13.2.

З урахуванням розрядів РгВбудемо мати 100\100001000111. Переповнення «1» із знакового розрядуSg1додається до молодшого розряду числа. Тоді, одержимо відповідь:Спр=00\100001001000=2120(10).

Існує ряд методів множення заснованих на роздільному під-сумковуванні груп часткових доданків з наступним об’єднанням сум з урахуванням переносів. Роздільна обробка проміжних сум і переносів вимагає так званого "дерева суматорів" (використано в IBM-360).

Таблиця 13.2  Множення на ДСОК при негативному множнику

Існують також прискорені методи множення, засновані на використанні матриць проміжних результатів. Розглянемо схему множення:

A=a5,a4,а3,а2,a1

*B = b5, b4, b3, b2, b1

a5b1 а4b1 а3b1а2b1а1b1

+.........................................

а5b5 а4b5 а3b5 а2b5 а1b5

С10С9.......................С2С1

Цю схему можна представити також у вигляді матриці таблиці 13.3. Кожний елемент цієї матриці дорівнює "0" або "1".

Таблиця 13.3 Матричне множення чисел

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

Рисунок 13.1  Структурна схема пристрою множення для реалізації матричного алгоритму

Рисунок 13.2 Схема множного пристрою за алгоритмом Дадда

Найбільше поширення одержали алгоритми Дадда, Уоллеса (матричний) і алгоритм збереження переносів [1-21]. На рис. 13.1 представлена структурна схема матричного пристрою множення для реалізації матричного алгоритму.

Алгоритми відрізняються друг від друга групуванням часткових добут-ків, кількістю етапів перетворень. Для матричного алгоритмучотири етапи перетворення, для алгоритму Дадда – три етапи. Однак, матричні методи множення, незважаючи на більший об’єм устаткування, дають великий виграш часу, а використання ВІС значно знижує обмеження на устаткування.

Розглянуті методи множення знайшли широке застосування в практиці бінарної арифметики.

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