Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6842

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

260

Тим самим доволі просто вдалося в два рази скоротити критичний шлях формування переносу. Цей же підхід можна використати повторно і для прискорення роботи n/2-роз-рядних суматорів, як це показано на рис. 7.21 і т. д.

Часто в комп'ютерах використовується пристрій для накопичення двійкових чисел, тобто для послідовного багатомісного додавання N чисел (рис. 7.22). В такому операцій­ному пристрої є вхідний Рг1 та вихідний Рг2 регістри, а також суматор, причому один з входів суматора з'єднаний з виходом вихідного Рг2 регістра. Для забезпечення коректної роботи пристрою розрядність суматора повинна бути розширеною в сторону старших розрядів на ]log2N[ бітів.

Для прискорення накопичення чисел використовують запам'ятовування не тільки сум з виходу суматора, а й переносів (так звані суматори з запам'ятовуванням перено­сів). В цьому випадку такт роботи пристрою в режимі накопичення чисел буде визна­чатися затримкою лише однорозрядного суматора.

Важливим питанням при побудові пристроїв додавання є фіксація переповнення. Для цього аналізується перенос із останнього розряду та знаки операндів. Для спро­щення аналізу наявності переповнення використовуються так звані модифіковані коди з двома знаковими розрядами (0-00, 1-11). Незбіжність цих розрядів говорить про на­явність переповнення.

Потрібно зауважити, що зазвичай для виконання віднімання використовується до­давання, перед яким від'ємник перетворюється в обернений або доповняльний код. Пряме віднімання використовується рідко. Якщо ж така потреба є, то взамін суматора


267

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

7.13.2. Пристрої множення двійкових чисел з фіксованою комою

Послідовне (багатотактове) множення базується на послідовному утворенні суми часткових добутків, використовуючи один або декілька суматорів, і реалізується шля­хом послідовного виконання операцій додавання.

Як ми вже бачили в розділі 4, процес множення може починатися з молодших і стар­ших розрядів множника. При цьому повну суму часткових добутків (тобто добуток) можна отримати двома шляхами:

" зсувом множеного на потрібну кількість розрядів і додаванням отриманого чер­гового часткового добутку до раніше накопиченої суми;

* зсувом суми раніше отриманих часткових добутків на кожному кроці на один розряд і наступним додаванням нерухомого множеного або 0 до зсунутої суми.

Таким чином, існує 4 методи множення двійкових чисел, на основі яких можна побу­дувати 4 алгоритми ітераційного виконання цієї операції та 4 базових структури багато-тактових АОП множення двійкових чисел:

" множення починаючи з молодших розрядів множника зі зсувом суми часткових добутків вправо;

множення починаючи з молодших розрядів множника зі зсувом множеного вліво;

множення починаючи з старших розрядів множника зі зсувом суми часткових
добутків вліво;

множення починаючи з старших розрядів множника зі зсувом множеного вправо.
Розглянемо їх детальніше.

7.13.2.1. Багатотактовий пристрій множення двійкових чисел з молодших розрядів множника при нерухомому множеному з зсувом суми часткових добутків

Алгоритм множення двійкових чисел, який реалізує метод множення починаючи з молодших розрядів множника з зсувом суми часткових добутків вправо, описується на­ступним ітераційним виразом:

Тут вжито наступні позначення: X, Y, Z - множене, множник і добуток відповідно, Z. - сума часткових добутків на і-му етапі, Y(i) - і-й розряд множника, п - кількість роз­рядів операндів без врахування знакового розряду.

В кожному циклі множене додається до суми часткових добутків, якщо Yi=0, і не додається, якщо Y. = 0, після чого сума часткових добутків множиться на 2-1тобто зсу­вається на один розряд вправо. Після закінчення n-го циклу утворюється шуканий до­буток, тобто Zn = Z = XY.

Алгоритм можна представити блок-схемою, показаною на рис. 7.23.


262





Приклад:

Необхідно помножити два числа (без знакового розряду):

Х = 0101 0101; Y = 01101011;

Хід операцій проілюстровано в табл. 7.3:

Таблиия 7.3

i

Zi

Y (Y(i))

X*Y(i)

Zi+X*Y(i)

zi+1

0

0000 0000 0000 0000

0110 1011

0101 0101

010101010000 0000

0010 1010 1000 0000

1

0010 1010 1000 0000

0110 1011

01010101

0111 1111 1000 0000

0011 1111 1100 0000

2

0011 1111 1100 0000

0110 1011

0000 0000

0011 1111 1100 0000

0001 1111 1110 0000

3

0001 1111 11100000

0110 1011

01010101

0111 0100 11100000

0011 1010 0111 0000

4

0011 101001110000

0110 1011

0000 0000

0011 10100111 0000

0001 1101 0011 1000

5

0001 1101 0011 1000

0110 1011

01010101

01110010 0011 1000

0011 10010001 1100

6

0011 10010001 1100

0110 1011

01010101

1000 1110 0001 1100

0100 01110000 1110

7

010001110000 1110

0110 1011

0000 0000

01000111 0000 1110

0010 0011 1000 0111

Таким чином 0101 0101 .01101011 =0010 0011 1000 0111.

Базова структура багатотактового АОП множення двійкових чисел за описаним ме­тодом наведена на рис. 7.24.

Тут СМЧД - суматор часткових добутків. Множник зберігається в регістрі множни­ка, а множене - в регістрі множеного. Обидва ці регістри є n-розрядними. Суматор част-


263

кових добутків є накопичувальним суматором, тобто на його виході є регістр з оберне­ним зв'язком, як це показано на рис. 7.22. В кожному такті вміст цього регістра та регі­стра множника зсуваються на один розряд вправо в сторону молодших розрядів. Розряд в крайньому правому тригері регістра множника випадає, а на його місце поміщається наступний розряд множника, який керує операцією СМЧД, тобто вказує, чи є в даному такті додавання, чи його немає. При зсуві молодший розряд СМЧД може випадати, а може і зберігатися, залежно від того, якої розрядності потрібен результат - n-розрядний, чи 2п-розрядний. Завдяки тому, що в даній структурі регістри множеного і множника є n-розрядними, а не 2n-розрядними, як це є в базових структурах АОП множення інши­ми методами, перший метод множення використовується найчастіше.

7.13.2.2. Багатотактовий пристрій множення двійкових чисел з молодших розрядів при нерухомій сумі часткових добутків з зсувом множеного вліво

Алгоритм множення двійкових чисел, який реалізує цей метод, описується наступ­ними ітераційними виразами:

Тут вжито наступні позначення: X, Y, Z - мгожене, множник і добуток відповідно, Zі - сума часткових добутків на і-му етапі, Y(i) - і-й розряд множника, п - кількість роз­рядів операндів без врахування знакового розряду.

Алгоритм можна представити блок-схемою, показаною на рис. 7.25.

Приклад:

Необхідно помножити два числа (без знакового розряду):

Х=0101 0101; Y=01101011.

Хід операцій проілюстровано в табл. 7.4.


264

Таблиця 7 A



і

Zi

Y (Y(0)

X

zi+i=zi+x*Y(i)

0

0000 0000 0000 0000

0110 1011

0000 0000 0101 0101

0000 0000 0101 0101

1

0000 0000 0101 0101

0110 1011

0000 0000 1010 1010

0000 0000 1111 1111

2

0000 0000 11111111

0110 1011

0000 0001 0101 0100

0000 0000 1111 1111

3

0000 0000 11111111

0110 1011

0000 0010 1010 1000

0000 0011 10100111

4

0000 0011 10100111

0110 1011

0000 0101 0101 0000

0000 0011 10100111

5

0000 0011 10100111

0110 1011

0000 1010 1010 0000

0000 1110 0100 0111

6

0000 1110 0100 0111

0110 1011

00010101 0100 0000

00100011 10000111

7

0010 0011 1000 0111

0110 1011

0010 1010 1000 0000

00100011 10000111

Таким чином 0101 0101 .01101011 =0010 0011 1000 0111.

Базова структура багатотактового АОП множення двійкових чисел за описаним ме­тодом наведена на рис. 7.26.

Тут СМЧД - суматор часткових добутків. Множник зберігається в регістрі множни­ка, а множене - в регістрі множеного. Перший з цих регістрів є n-розрядним, а другий . - 2n-розрядним. Суматор часткових добутків є накопичувальним суматором, тобто на його виході є регістр з оберненим зв'язком як це показано на рис. 7.22, який також є 2n-розрядним. Перед початком виконання операції множене знаходиться в правій час­тині регістра множеного. В кожному такті вміст регістра множеного зсувається на один розряд вліво в сторону старших розрядів, а вміст регістра множника в кожному такті зсувається на один розряд вправо в сторону молодших розрядів. Розряд в крайньому правому тригері регістра множника випадає, а на його місце поміщається наступний розряд множника, який керує операцією СМЧД, тобто вказує чи є в даному такті дода­вання, чи його немає. В порівнянні з попередньою структурою тут регістр множеного та СМЧД обов'язково мають бути 2n-розрядними.

7.13.2.3. Багатотактовий пристрій множення двійкових чисел з старших розрядів при нерухомій сумі часткових добутків з зсувом множеного вправо

Алгоритм множення двійкових чисел, який реалізує цей метод, описується наступ­ними ітераційними виразами: