logo
AOM / Мельник А

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

Пристрій для додавання двійкових чисел називається суматором. Суматор вико­ристовується в комп'ютері як складова частина АЛП, а також як елемент інших вузлів комп'ютера. Коротко розглянемо основні питання побудови суматора. На рис. 7.18 пред­ставлена схема однотактового алгоритмічного операційного пристрою (АОП) додаван­ня і віднімання чисел з фіксованою комою з послідовною обробкою двійкових чисел.

Тут вхідні операнди 1 та 2 записуються сигналами Y1 та Y2 з пристрою керування до зсувних регістрів ЗРг1 та ЗРг2, виходи молодших розрядів яких з'єднані з входами одно-розрядного суматора CM, вихід суми S. якого з'єднаний з входом старшого розряду зсув­ного регістра ЗРгЗ. Вихід переносу суматора з'єднаний з входом тригера Тг, який збері­гає значення переносу С відповідного розряду протягом одного такту для подачі його на вхід однорозрядного суматора. Перед початком роботи вміст тригера Тг встановлюється в нуль. В кожному такті сигналом зсуву з пристрою керування вміст зсувних регістрів зсувається на один розряд вправо, а в тригер записується значення переносу з чергового розряду суми. Однорозрядний суматор працює відповідно до таблиці істинності з розді­лу 4 (табл. 4.5). Розряд суми з виходу однорозрядного суматора записується до зсувного регістра ЗРгЗ. Для додавання двох n-розрядних чисел в приведеному пристрої необхідно п тактів. Після цього на виході пристрою керування з'явиться сигнал завершення робо­ти, а в зсувному регістрі ЗРгЗ буде знаходитись результат операції.

Перевагою такого пристрою є простота та малі затрати обладнання на реалізацію суматора.

Значно частіше в комп'ютерах використовуються однотактові алгоритмічні ОП для додавання та віднімання двійкових чисел (рис. 7.19), в якому всі розряди операндів по­ступають на паралельний суматор з вхідних регістрів Рг1 та Рг2 одночасно. Тим самим, за рахунок паралельної обробки досягається значно вища швидкодія порівняно з пороз-рядним додаванням операндів.

259

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

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

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

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

260

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

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

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

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

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

267

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