- •Змістовний модуль 1.1.Основи теорії компютерної схемотехніки.
- •1.1 Поняття елементів, вузлів і пристроїв комп'ютерної схемотехніки
- •2. Логічні основи побудови елементів компютерної схемотехніки
- •3. Схемотехніка цифрових елементів
- •6 Дешифратори і шифратори
- •7. Шифратори
- •8 Мультиплексори і демультиплексори
- •9 Компаратори. Схеми контролю
- •10 Суматори. Арифметико-логічні пристрої
- •12.Аналогово-цифрові, цифро-аналогові перетворювачі. Кодоперетворювачі
- •12.4. Основні параметри і характеристики цифрово-аналогових перетворювачів
- •Мікропроцесори. Великі інтегральні схеми з програмовними структурами.
- •Запамятовуючі пристрої
- •16. Структури мікропроцесорних систем.
10 Суматори. Арифметико-логічні пристрої
10.1. Загальна характеристика суматорів
Суматором називається функціональний вузол комп’ютера, призначений для додавання двох n-розрядних слів (чисел). Операція віднімання заміняється додаванням слів в оберненому або доповняльному коді. Операції множення та ділення зводяться до реалізації багаторазового додавання та зсування. Тому суматор є важливою частиною арифметико-логічного пристрою. Функція суматора позначається буквами SM або ?. Суматор складається з окремих схем, які називаються однорозрядними суматорами; вони виконують усі дії з додавання значень однойменних розрядів двох чисел (операндів). Суматори класифікуються за такими ознаками: -способом додавання – паралельні, послідовні та паралельно-послідовні; -числом входів – напівсуматори, однорозрядні та багаторозрядні суматори; -організацією зберігання результату додавання – комбінаційні, накопичувальні, комбіновані; -організацією перенесення між розрядами – з послідовним, наскрізним, паралельним або -комбінованим перенесеннями (з груповою структурою); -системою числення – позиційні (двійкові, двійково-десяткові, трійкові) та непозиційні, наприклад, у системі залишкових класів; -розрядністю (довжиною) операндів – 8-, 16-, 32-, 64-розрядні; -способом представлення від’ємних чисел – в оберненому або доповняльному кодах, а також в їхніх модифікаціях; -часом додавання – синхронні, асинхронні. У паралельних n-розрядних суматорах значення всіх розрядів операндів поступають одночасно на відповідні входи однорозрядних підсумовуючих схем. У послідовних суматорах значення розрядів операндів та перенесення, що запам’ятовувалися в минулому такті, поступають послідовно в напрямку від молодших розрядів до старших на входи одного однорозрядного суматора. В паралельно-послідовних суматорах числа розбиваються на частини, наприклад, байти, розряди байтів поступають на входи восьмирозрядного суматора паралельно (одночасно), а самі байти – послідовно, в напрямку від молодших до старших байтів з урахуванням запам’ятованого перенесення. У комбінаційних суматорах результат операції додавання запам’ятовується в регістрі
.
В накопичувальних суматорах процес додавання поєднується із зберіганням результату. Це пояснюється використанням Т-тригерів як однорозрядних схем додавання. Організація перенесення практично визначає час виконання операції додавання. Послідовні перенесення схемно створюються просто, але є повільнодіючими. Паралельні перенесення схемно організуються значно складніше, але дають високу швидкодію. Розрядність суматорів знаходиться в широких границях: 4–16 – для мікро- та міні-комп’ютерів та 32–64 і більше – для універсальних машин. Суматори з постійним інтервалом часу для додавання називаються синхронними. Суматори, в яких інтервал часу для додавання визначається моментом фактичного закінчення операції, називаються асинхронними. В асинхронних суматорах є спеціальні схеми, які визначають фактичний момент закінчення додавання і повідомляють про це в пристрій керування. На практиці переважно використовуються синхронні суматори. Суматори характеризуються такими параметрами: швидкодією – часом виконання операції додавання ta, який відраховується від початку подачі операндів до одержання результату; часто швидкодія характеризується кількістю додавання в секунду Fa=1/ta, тут маються на увазі операції типу регістр–регістр (тобто числа зберігаються в регістрах АЛП); апаратурними витратами: вартість однорозрядної схеми додавання визначається загальним числом логічних входів використаних елементів; вартість багаторозрядного суматора визначається загальною кількістю використаних мікросхем; споживаною потужністю суматора.
10.2. Однорозрядні суматори
Однорозрядним суматором називається логічна схема, яка виконує додавання значень i-х розрядів Xi та Yi двійкових чисел з урахуванням перенесення Zi з молодшого сусіднього розряду та виробляє на виходах функції результат Si і перенесення Pi в старший сусідній розряд. На основі однорозрядних схем додавання на три входи та два виходи будуються багаторозрядні суматори будь-якого типу. Алгоритм роботи однорозрядного суматора відображається таблицею істинності (табл. 10.1). На основі табл. 10.1 записується система логічних функцій для результату Si та перенесення Pi у ДДНФ:
(10.1)
(10.2)
Мінімізація
функцій (10.1) та (10.2) за допомогою карт
Карно показана на рис. 10.1.
Як видно з
карт Карно, функція результату Si не
мінімізується, а функція Рі мінімізується
зі зниженням рангу кон’юнкції та
використовує тільки прямі значення
змінних:
(10.3)
Рис. 10.1. Карти Карно для
мінімізації функцій: а – Si; б – Рi
При
проектуванні комбінаційних однорозрядних
суматорів враховують такі чинники:
схема
має характеризуватися регулярністю
(подібністю) структури та мінімальною
вартістю, тобто мати по можливості
найменше число логічних входів всіх
елементів;
з метою підвищення швидкодії
багаторозрядного суматора потрібен
мінімальний час одержання функції
перенесення tП=k tР, де k – число послідовно
увімкнених елементів від входів до
виходів Рi або
;
tP – середня затримка розповсюдження
сигналу одним логічним елементом в
обраній серії інтегральних мікросхем;
параметр k часто називають каскадністю
(поверховістю) схем. Таким чином, для
мінімізації часу одержання перенесення
необхідно зменшити каскадність схеми
та використати інтегральні мікросхеми
з малим часом затримки розповсюдження
сигналу;
для схем однорозрядних
суматорів на основі рівнянь (10.1) і (10.2)
необхідно виробляти як прямі Pi , так й
інверсні
значення
функції перенесення. Така організація
перенесень називається парафазною.
Для побудови схеми однорозрядного
суматора на універсальних логічних
елементах НЕ І рівняння (10.1) і (10.2)
перетворюються на основі правил
подвійної інверсії та де Моргана до
такого вигляду:
(10.4)
Схема однорозрядного суматора,
побудована на елементах НЕ І відповідно
до рівнянь (4.30), показана на рис. 10.2, а;
її вартість, яка вимірюється числом
логічних входів всіх елементів, становить
27, каскадність k=3.
Рівняння (10.1) та
(10.2) можуть бути виражені через функцію
«Виключальне ЧИ»:
(10.5)
(10.6)
Схема однорозрядного суматора
на елементах «виключальне ЧИ» згідно
з рівняннями (10.5) і (10.6) показана на рис.
10.2, б; її вартість становить вісім
входів і каскадність k=2.
Рис.
10.2. Схеми однорозрядних суматорів: а –
на елементах НЕ І; б – на елементах
«виключальне ЧИ»; в – з використанням
власного перенесення
Функції
однорозрядного суматора – самоподвійні,
тобто їхні інверсії утворюються
інвертуванням значень аргументів без
зміни місцезнаходження знаків диз’юнкції
та кон’юнкції, наприклад, для
перенесення з рівняння (10.2):
(10.7)
Помножуючи ліві та праві частини
співвідношення (10.7) на макстерм (XiUYiUZi),
одержують:
(10.8)
Після підстановки лівої частини
співвідношення (10.8) в праву частину
виразу (10.1) одержують рівняння для
функції Si з використанням власного
перенесення:
(10.9)
Схема однорозрядного суматора
відповідно до рівнянь (10.9) і (10.3) показана
на рис. 10.2, в; її вартість дорівнює 17
входів, каскадність k=2. Важливою
властивістю цієї схеми є використання
тільки прямих значень вхідних змінних
і однофазного ланцюга формування
перенесення Pi в старший розряд.
Напівсуматором
називається логічна схема, яка виконує
додавання значень i-х розрядів Xi і Yi
двійкових чисел X і Y та реалізує на
виході значення результату Mi і перенесення
в старший сусідній розряд Ri:
(10.10)
Таким чином, напівсуматор виконує
лише частину завдання підсумовування
в i-му розряді, оскільки не враховує
перенесення з сусіднього молодшого
розряду. Схема напівсуматора,
побудована на основі рівнянь (10.10),
показана на рис. 10.3. З рівнянь (10.5) і
(10.6) виходить, що схема однорозрядного
суматора може бути побудована на основі
двох напівсуматорів і додаткового
логічного елемента ЧИ, як показано на
рис. 10.3, в.
Рис.
10.3. Схеми підсумовування: а, б –
напівсуматор і його умовне
позначення;
в, г – однорозрядний суматор і його
умовне позначення
10.3. Послідовний багаторозрядний суматор
Послідовний двійковий багаторозрядний
суматор містить:
n-розрядні зсуваючі
регістри операндів X і Y, регістр результату
S, однорозрядний суматор SM і двоступеневий
D-тригер для запам’ятовування
перенесення. Усі регістри забезпечують
одночасне зсування праворуч, у бік
молодших розрядів (рис. 10.4).
Рис.
10.4. Схема послідовного багаторозрядного
суматора
У послідовному суматорі
попарна подача значень розрядів Xi і Yi
починається з молодших розрядів.
Утворюються значення суми Si і перенесення
Pi, які записуються відповідно в регістр
результату та в тригер запам’ятовування
перенесення на один такт Тс.
Послідовне
додавання виконується за стільки тактів,
скільки розрядів у числі. Тому час
додавання tS визначається співвідношенням:
tS = nTс, де Тс – тривалість машинного
такту.
Від’ємні числа рекомендується
представляти в доповняльному
коді.
Послідовний суматор потребує
мінімальних апаратних витрат, однак
тривалість операції додавання пропорційна
розрядності операндів. Тому послідовний
суматор можна використовувати у
відносно повільнодіючих цифрових
пристроях.
10.4. Паралельні багаторозрядні суматори
Паралельний багаторозрядний суматор містить n однорозрядних схем додавання, наприклад, чотири, як показано на рис. 10.5.
Рис. 10.5. Паралельний чотирирозрядний суматор: а – схема; б – умовне позначення
Значення всіх
розрядів двох чисел Х та Y поступають
на входи відповідних однорозрядних
суматорів паралельно (одночасно). В
паралельних суматорах з послідовним
перенесенням значення сигналу перенесення
Pi передається від розряду до розряду
послідовно в часі (асинхронно). При
застосуванні оберненого коду перенесення
з найстаршого розряду подається на вхід
перенесення молодшого розряду по
ланцюзі циклічного перенесення (рис.
10.5, а). При застосуванні доповняльного
коду ланцюг циклічного перенесення
розривається, а на вхід перенесення
молодшого розряду подається логічний
нуль.
У паралельних
суматорах з послідовним перенесенням
час додавання визначається співвідношенням:
tS = (n–1) tП
+ tS ,
де tП – час формування перенесення
в кожному розряді, tS – час додавання в
найстаршому розряді. У гіршому випадку
можливий варіант, коли сигнал
перенесення послідовно розповсюджується
від п
ершого
до n-го розряду.
10.5. Мікросхеми ALU
Промисловість випускає
мікросхеми із символом функції ALU для
виконання 16 арифметичних та 16 порозрядних
логічних мікрооперацій залежно від
вхідних сигналів настройки. У серіях
ТТЛШ 530, 531, 533, 555 та 1533 вони мають позначення
ИП3; в серіях ЕЗЛ 100, 500 і 700 використовують
позначення ИП179.
Мікросхема ALU в серіях
ТТЛШ має (рис. 10.6):
· інформаційні
входи для подання двох чотирирозрядних
операндів X i Y;
· входи настроювання
E3–E0 для задання номера однієї з
мікрооперацій;
· вхід M для задання
типу мікрооперації: М=0 – арифметичні,
М=1 – логічні;
· вхід перенесення
,
необхідний тільки при виконані
арифметичних мікрооперацій;
·
виходи: результату мікрооперації S4–S1,
послідовного перенесення L, генерації
G, транзиту Н, а також вихід з відкритим
колектором від внутрішнього компаратора
для вироблення ознаки рівності операндів
FA=B.
Перелік арифметичних і логічних
операцій, які виконують ALU, наведений у
табл. 10.2. При виконанні логічних операцій
перенесення між розрядами не
використовується. Арифметичні операції
реалізуються з урахуванням перенесень
і позик. В арифметичні операції включені
фрагменти логічних дій. Наприклад, запис
означає,
що спочатку виконується операція
інверсії (
),
потім – логічного додавання (X v Y) та
логічного множення (
),
а потім одержані таким чином два числа
додаються арифметично з урахуванням
перенесень.
Таблиця 10.2
E3 |
E2 |
E1 |
E0 |
Логіка М=1 |
Арифметика М=0 |
0 |
0 |
0 |
0 |
|
|
0 |
0 |
0 |
1 |
|
|
0 |
0 |
1 |
0 |
|
|
0 |
0 |
1 |
1 |
0 |
-1 |
0 |
1 |
0 |
0 |
|
|
0 |
1 |
0 |
1 |
|
|
0 |
1 |
1 |
0 |
|
|
0 |
1 |
1 |
1 |
|
|
1 |
0 |
0 |
0 |
|
|
1 |
0 |
0 |
1 |
|
|
1 |
0 |
1 |
0 |
|
|
1 |
0 |
1 |
1 |
|
|
1 |
1 |
0 |
0 |
1 |
|
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
|
|
1 |
1 |
1 |
1 |
|
|
Мікросхема ALU виконує операцію арифметичного додавання двох чотирирозрядних операндів X і Y, якщо на входи настроювання подані сигнали Е3Е2Е1Е0=1001 та М=0. В цьому випадку мікросхема ALU виконує функцію суматора.
10.6. ДВІЙКОВО-ДЕСЯТКОВІ СУМАТОРИ
Двійково-десяткові суматори
використовуються для обробки масивів
десяткової інформації за порівняно
простими алгоритмами, оскільки при
цьому вилучаються витрати часу на
переведення чисел з десяткової системи
числення в двійкову і навпаки.
Кожна десяткова цифра Xi кодується
двійковим кодом прямого заміщення
“8421” (двійковою тетрадою), тобто
Xi=Xi4Xi3Xi2Xi1 і Yi=Yi4Yi3Yi2Yi1. Наприклад
Xi=710=01112-10, Yi=910=10012-10; для дворозрядних
десяткових чисел:
XiXi-1=1610=000101102-10:
YiYi-1=2810=001010002-10.
Один
розряд двійково-десяткового суматора
(декада) містить чотирирозрядний суматор
SM1 для одержання попередньої суми в
тетраді, чотирирозрядний суматор SM2 для
корекції результату та логічний елемент
І ЧИ для вироблення ознак корекції, як
показано на рис.10.7.
Рис.10.7.
Однорозрядний двійково-десятковий
суматор: а – схема; б – умовне позначення
Декада працює таким чином. Двійкові
тетради десяткових цифр Xi=Xi4Xi3Xi2Xi1 і
Yi=Yi4Yi3Yi2Yi1 разом із перенесенням поступають
на входи суматора SM1 і на його виходах
утворюється попередня сума
S’iT=S’i4S’i3S’i2S’i1, де S’iT – десятковий
еквівалент тетради.
Схема
чотирирозрядного двійково-десяткового
суматора з послідовним перенесенням в
тетрадах і між декадами показана на
рис. 10.8. Швидкодія таких суматорів
розраховують за аналогією з двійковими
послідовними перенесеннями. Для
двійково-десяткових суматорів можна
використовувати групові структури
прискорених перенесень.
Рис.
10.8. Схема чотирирозрядного
двійково-десяткового суматора.
Операція віднімання в двійково-десятковому
суматорі заміняється додаванням
операндів у оберненому або доповняльному
кодах. Обернений код від’ємних десяткових
чисел одержують заміною кожної цифри
її доповненням до дев’яти. Схема
одного десяткового суматора з
перетворювачами прямого коду операндів
і результату в обернений код показана
на рис.
Рис. 10.9. Схема одного розряду
десяткового суматора з перетворювачами
прямого коду в обернений
Значення від’ємних чисел при Xзн=1, Yзн=1, Sзн=1 інвертується схемою “виключальне ЧИ”; при цьому утворюється двійковий код тетрад з надлишком шість. Корекцію результату виконують суматорами SM1, SM2 і SM3, в яких віднімання замінюється додаванням двійкової тетради з оберненим кодом числа шість, тобто плюс 10102.
