Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AK.doc
Скачиваний:
28
Добавлен:
17.03.2016
Размер:
3.6 Mб
Скачать

IV варіант

Z = 2 - n * ((... (0 + X * Y -1) * 2 + X * Y -2) * 2 + XY n) \

Множене помножити на старшу цифру множника, отриманий перший ЧД передати в суматор, який зсувається вліво на 1 розряд. Знаходимо 2-ий ЧД, передаємо або не передаємо в суматор, потім зсуваємо. Останньою дією є операція підсумовування n-го ЧД з вмістом суматора. Якщо за III варіантом в суматорі - n зрушень вправо, то по IV варіанту - (N-1) зрушень вліво.

Приклад X = 0.1011 Y = 0.1101

X

1 0 1 1

0

0 0 0 0

0 0 0 0

XY-1

1 0 1 1

1

1 0 1

1

1 0 1 1

1*2(1-й сдвиг)

0 0 0 1

0 1 1 0

XY-2

1 0 1 1

1

0 1

2

0 0 1 0

0 0 0 1

2*2(2-й сдвиг)

0 1 0 0

0 0 1 0

XY-3

1 0 1 1

0

1

3

0 1 0 0

0 0 1 0

3*2(3-й сдвиг)

1 0 0 0

0 1 0 0

XY-4

1 0 1 1

1

Z

1 0 0 0

1 1 1 1

Схемна реалізація вимагає 3-х регістрів. В Рг Z - подвоєне число розрядів, Рг Y і Рг Z повинні мати ланцюги лівого зсуву, замість якого можна зробити «косу» передачу на 1 розряд вліво. СПК управляється старшим розрядом множника. Т.я. додавання ведеться за всіма розрядами, скорочувати суматор можна.

1.7.6. Реалізація в процесорі операції множення в додатковому коді

Існують алгоритми множення в додатковому коді (ДК), які вимагають введення поправок і які не вимагають. При реалізації множення в ДК знакові розряди співмножників беруть участь в множенні поряд з числовими розрядами.

1. Методи, що вимагають введення поправок

1) X> 0, Y> 0 - поправок немає

2) X> 0, Y <0      [X] дк = X   [Y] дк = 2 + Y      XY <0      

[X] дк * [Y] дк = 2 X + XY           [XY] дк = 2 + XY

                                Корекція:-2Х.

Тобто при множенні позитивного множимо на негативний множник необхідно ввести поправку (-2Х). Для спрощення процесу представимо Y   у вигляді:

Приклад    

[X] дк = 0.1011 = 11/16

[Y] = -13/16 = -0.1101

[Y] дк = 1.0011

Множення проводиться по 3 варіанту.

3) X <0, Y> 0     [X] дк = 2 + X    [Y] дк = Y [X] дк * [Y] дк = 2Y + XY

[XY] дк = 2 + XY

                                Корекція:-2Y.

Якщо виконувати множення по I варіанту і при цьому користуватися правилами зсуву від'ємних чисел в ДК вправо, то така поправка буде вводитися автоматично.

Правила зсуву вправо від'ємних чисел в ДК: передача знакової одиниці в старший числовий розряд; заповнення утворилися вакансії одиницею.

[Y] дк = Y -1 * 2 -1 + Y -2 * 2 -2 + ... + Y - n * 2 - n

[X] дк * [Y] дк = [X] дк * Y -1 * 2 -1 + [X] дк * Y -2 * 2 -2 + ... + [X] дк * Y - n * 2 - n

[XY] дк = [X * 2 -1] дк * Y -1 + [X * 2 -2] дк * Y -2 + ...

      4) X <0, Y <0          Корекція:-2Х і -2 Y.

Недоліки:   залежність величини корекції від поєднання знаків.

Метод множення знаків в ДК без введення корекції

Алгоритм Бутта. Його суть: перетворення множника в модифіковану двійкову СС з трьома символами: , 0, 1. Причому це перетворення робиться не до операції, а під час її в розумі.

1,0101      зрушення

1,1010       вправо

Нехай Y = [Y] дк-2Y 0, Y 0 - знаковий розряд

Y> 0   Y 0 = 0             Y = [Y] дк

Y <0   Y 0 = 1             Y = [Y] дк -2

Уявімо Y: [Y] дк = Y -1 * 2 -1 + Y -2 * 2 -2 + ... + Y-n * 2-n + Y - (n +1) * 2-n  

Y - (n +1)  0

Зробимо заміну: Y-i * 2-i = Y-i * 2 - (i +1) - Y-i * 2-i

Остаточно отримаємо: Y =  0 * 2 0 +  -1 * 2 -1 + ... +  - n * 2 - n, Y - (n +1) = 0. Це запис   в двійковій модифікованої СС з трьома символами: , 0, 1.

 

- I = y - (i +1) + y - I

Ці символи виходять, якщо в процесі множення аналізуються поточний і сусідній з ним молодший розряд. Якщо інформація співпадає, то цифра перетвореного множника - 0, інакше - дивись таблицю.

«0» відповідає відсутності передачі множимо на суматор.

«1» - передача множимо зі своїм знаком, « Прямоугольник 956»- Із зворотним знаком.

В даний блок входять 3 регістра, в Рг Z і Рг Y організований правий зсув на 1 розряд; комбінаційний суматор; СПК, робота якого управляється двома сигналами ПП (пряма передача) та ІП (інверсна передача). 1 розряд СПК має вигляд:

Сигнали ПП та ІП виробляються за допомогою двох КС, які аналізують 2 розряди множника: молодший розряд n і додатковий розряд (n +1). Перед множенням в (n +1) розряд записується 0.

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