Арифметичні пристрої

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Арифметичні пристрої "Лекція 15. Арифметичні пристрої"

Двійкове складання tc "15.1. Двійкове складання"
До арифметичним пристроїв відносяться логічні схеми, які здатні реалізовувати додавання і віднімання. Суматори і вичітателі можна отримати, з'єднуючи один з одним звичайні логічні елементи.
Розглянемо додавання двох чисел (рис. 15.1)

Рис. 15.1. Правила двійкового складання
Перші три результати очевидні. Оскільки вони відповідають додаванню десяткових чисел. В останньому підсумовуванні (1 +1), при додаванні десяткових чисел результат буде 2. У двійковій системі 2 записується як 10. З рис. 15.1 видно, що відбувається перенесення 1 в сусідній, старший двійковий розряд.
Розглянемо приклад на складання двійкових чисел (рис 15.2)

Рис. 15.2. Приклад двійкового складання

Рис. 15.3. Правила двійкового складання
Приклад вирішується просто, поки не доходимо до розряду двійок, де потрібно знайти двійкову суму 1 +1 +1. У десятковій системі числення ця сума дорівнює 3, що відповідає бінарного числа 11. При цьому слід зауважити, що сума 1 +1 +1 може виникати в будь-якому розряді, виключаючи розряд одиниць. Таким чином до рис 15.1 потрібно додати ще одну комбінацію (рис. 15.3), яка справедлива для всіх розрядів двійкових чисел (двійок, четвірок, вісімок і т. д.), за винятком розряду одиниць.
Полусумматориtc "15.2 полусумматор"
Розглянемо таблицю істинності для двійкових чисел (табл. 15.1). вхідні стовпці таблиці заповнені значеннями доданків. В якості вихідних використовується стовпець для суми і стовпець для перенесення.
Таблиця 15.1. Таблиця істинності полусумматора

Для побудови схеми полусумматора, визначимо з табл. 15.1 булево вираз, яким можна описати стан виходів і : , Тобто для забезпечення необхідного логічного рівня на виході вхідні сигнали потрібно подати на входи логічного елемента І;
, Для реалізації такої логічної функції можна використовувати два логічних елемента І і один логічний елемент АБО. Крім цього, така логічна функція може бути реалізована логічним елементом виключає АБО. Стан цього виходу запишемо в більш простий булевої формі: .
Побудуємо логічну схему полусумматора, який складається з двох логічних елементів: 2-входові логічного елемента І і 2-входові логічного елемента виключне АБО (рис. 15.4). Полусумматор має два входи (А, В) і два виходи (У, С0).

Рис. 15.4. Логічна схема полусумматора
Полусумматор здійснює складання лише в розряді одиниць. Для двійкового складання у розрядах двійок, четвірок, вісімок і т. д. Необхідно користуватися повним суматором.
Повний сумматорtc "15.3. Повний суматор"
Розглянемо таблицю істинності, в якій представлені всі можливі комбінації двійковий однорозрядних доданків А і В і сигналу переносу Cin (табл. 15.2).
Таблиця 15.2 Таблиця істинності суматора

Таблиця 15.2 - таблиця істинності для повного суматора. Повні суматори використовуються для складання у всіх двійкових розрядах, крім розряду одиниць. Повні суматори мають три входи: А, В і додатковий вхід переносу.
Один із способів побудови логічної структури повного суматора зображений на рис. 15.5. У даному способі використовується два полусумматора і логічний елемент АБО. Відповідні булево вираз для цієї логічної структури мають вигляд , .

Рис. 15.5. Структурна схема повного суматора
Використовуючи схему полусумматора (рис. 15.4), структурну схему зображену на рис. 15.5 можна розгорнути (рис. 15.6).

Рис. 15.6. Логічна схема повного суматора
Полусумматор, суматори зазвичай використовуються разом. Так, для рішення прикладу, показаного на (рис. 15.3), потрібно мати один полусумматор (для складання в розділі одиниць) і два повних суматора (для складання в розрядах двійок і четвірок). Для складання багато розрядних двійкових чисел потрібно досить багато полусумматор і повних суматорів. Мікропроцесорні арифметико-логічні пристрої (АЛП) використовуються для складання 8-розрядних, 16 - або 32-розрядних двійкових чисел в мікропроцесорних системах, і до їх складу входить велика кількість схем, аналогічних полусумматор і суматора.
Паралельний сумматорtc "15.4. Паралельний суматор"
Певним чином, поєднуючи полусумматор і повні суматори, один з одним, отримують пристрої, одночасно виконують складання кількох двійкових розрядів. На рис. 15.7 показана схема 3-розрядного суматора. Складові позначені A2A1A0 і B2B1B0.

Рис. 15.7. Структура 3-розрядного суматора
Сигнали, що відповідають значенням розряду одиниць в доданків, надходять на входи полусумматора. Вхідними сигналами для повного суматора розряду двійок є сигнал перенесення з виходу полусумматора на вхід і значення розряду двійок в доданків. Суматор четвірок складає і сигнал переносу з виходу суматора двійок. Отриманий результат відображається на виходах полусумматора і двох повних суматорів. У результаті складання двох повних суматорів. У результаті складання двох 3-розрядних двійкових чисел може вийти 4-розрядне число, тому на індикаторі суми є додатковий розряд вісімок. Цей розряд пов'язаний з виходом суматора четвірок.
3-розрядний суматор, зображений на (рис. 15.7) є паралельним суматором. У даній схемі інформаційних біти всіх розрядів надходять на входи одночасно. Результат складання з'явиться на виході практично миттєво. Паралельний суматор відноситься до класу комбінаційних логічних схем. Для фіксації даних на входах і виходах суматорів зазвичай використовується різні додаткові регістри.
Двійкове вичітаніеtc "15.5. Двійкове віднімання"
Розглянемо віднімання двійкових чисел (рис. 15.8).

Рис. 15.8. Правила двійкового віднімання
На підставі цих правил вирахування двійкових чисел, складемо таблицю істинності (табл. 15.3).
Таблиця 15.3. Таблиця істинності для полувичітателя

З таблиці. 15.3 видно, що якщо В більше А, то потрібно зайняти 1 в сусідньому старшому розряді. Сигнал позички зазначений у стовпці .
За допомогою табл. 15.3 можна знайти логічні функції, реалізовані полувичітаніем. Для виходу отримаємо: . Для виходу . На підставі цих функцій побудуємо логічну схему полувичітателя (ріс.15.9).

Рис. 15.9. Логічна схема полувичітателя
При вирахуванні багаторозрядних двійкових чисел потрібно брати до уваги позику 1 у більш старших розрядах.
Розглянемо приклад на віднімання двійкових чисел (рис. 15.10).

Рис. 15.10. Приклад на двійкове віднімання
Складемо таблицю істинності, яка містить всі можливі комбінації при вирахуванні двійкових чисел (табл. 15.4).
Таблиця 15.4. Таблиця істинності для повного вичітателя

Наприклад, рядок 5 (табл. 15.4) описує ситуацію, що виникає при вирахуванні в розрядах одиниць для вищерозгляденому прикладу (мал. 15.10).
Вирахуванню в розряді двійок відповідає рядок 3, в розряді четвірок - рядок 6, в розряді вісімок - рядок 3, в розряді з вагою 16 - рядок 2 і в розряді з вагою 32 - рядок 6 (табл. 15.4).
Повний вичітатель, за аналогією з повним суматором, можна зібрати з двох полувичітателей і логічного елемента АБО (рис. 15.11).

Рис. 15.11. Структурна схема повного вичітателя
Повний суматор має три входи і два виходи . Використовуючи схему полувичітателя (рис. 15.9) можна побудувати розгорнуту логічну схему повного вичітателя, яка працює відповідно до табл. 15.4 (мал. 15.12).

Рис. 15.12. Логічна схема повного вичітателя
Паралельний вичітательtc "15.6. Паралельний вичітатель"
Щоб побудувати паралельний вичітатель, потрібно з'єднати один з одним полувичітателі, за аналогією з побудовою паралельного суматора (рис. 15.7). Розглянемо схему 3-розрядного паралельного вичітателя, який забезпечує віднімання двійкового числа із двійкового числа (Рис. 15.13).

Рис. 15.13. Структурна схема 3-розрядного паралельного вичітателя
З рис. 15.13 видно, що вихід полувичітателя пов'язаний з вирахуванням розряду двійок. У даній схемі виходи позички кожного вичітателя пов'язані з входами позички вичітателя старшого розряду.
Використання суматорів для вирахування
У цьому розділі розглянемо можливість використання суматорів для вирахування двійкових чисел. Вирішимо приклад на віднімання двійкового числа 0110 з числа 1010. Віднімання зробимо за наступною схемою: спочатку запишемо від'ємник у формі порозрядного доповнення до 1, а потім складемо З зменшується. Доповнення до 1 означає заміну 1 на 0 і 0 на 1 у всіх розрядах від'ємника. У результаті складання отримаємо проміжний результат. Далі здійснюємо циклічний перенесення старшого розряду в розряд одиниць і складаємо з отриманим залишком проміжної суми. У результаті виходить різниця вихідних двійкових чисел. Ця схема обчислення проілюструвала на (рис. 15.14).

Рис. 15.14. Приклад віднімання двійкових чисел
У результаті рішення запропонованого прикладу отримаємо двійкове число 100.
Розглянутий спосіб вирахування використовується в суматора для вирахування. Розглянемо схему 3-розрядного паралельного вичітателя, який побудований на трьох повних суматора і трьох інверторах (рис. 15.15).

Рис. 15.15. Структурна схема вичітателя з використанням повних суматорів
Інвертори забезпечують перетворення двійкового числа у форму доповнення до 1. Суматори складають двійкові числа і . Циклічний перенесення здійснюється з виходу суматора старшого розряду на вхід суматора одиниць. Різниця двійкових чисел відображається на вихідному індикаторі.
Розглянемо схему, яка дозволяє проводити операції і додавання і віднімання двійкових чисел (рис. 15.16).

Рис. 15.16. Структурна схема 3-розрядного суматора вичітателя
У схемі використовуються 3 логічних елемента виключає АБО. При подачі логічного 0 на вхід елемента виключне АБО інформаційні біти кожного розряду двійкового числа проходом через цей елемент без інверсії і відбувається складання двох чисел: і . Логічний 0, крім цього блокує ланцюг циклічного перенесення, т. к. 0 надходить на один з входів елемента (рис. 15.16). У даному випадку схема працює як 3-розрядний двійковий суматор.
Для того, щоб схема працювала як 3-розрядний вичітатель потрібно на керуючий вхід подати логічний 1. У цьому випадку елементи виключає АБО працюють як інвертори і на входах суматорів отримаємо . Крім цього, логічна 1 відкриває логічний елемент І, в результаті чого, сигнал з виходу останнього суматора надходить по ланцюгу циклічного перенесення на вхід суматора одиниць. На вихідному індикаторі відобразиться різниця двох двійкових чисел.
Підсумовуюче пристрій послідовного действіяtc "15.8. Підсумовують, пристрій послідовного дії"
У паралельному суматорі для кожного двійкового розряду потрібен окремий повний суматор. При іншому способі складання послідовному, потрібно тільки один повний суматор. На рис. 15.17 показаний принцип роботи суматора послідовної дії, яка крім повного суматора включає два регістра зсуву (А і В) і регістр суми. Регістри зсуву А і В пов'язані з входами А і В повного суматора.

Рис. 15.17. Принцип роботи підсумовуючого пристрою послідовного дії
Процес послідовного підсумовування складається з декількох кроків, які відображені на рис. 15.17. На першому кроці регістри А і В завантажуються двійковими числами і . З приходом першого тактового імпульсу складаються значення розряду одиниць ( і ) І сума заноситься у вихідний регістр, який пов'язаний з виходом У повної суматора. З приходом другого тактового імпульсу складаються
значення розряду двійок ( і ) І перенесення, який надходить на вхід суматора від тригера-затримки. Результат заноситься у вихідний регістр, при цьому попередня сума зрушується вправо. З приходом третій тактового імпульсу відбувається складання і перенесення . Результат поміщається у вихідний регістр. Таким чином після трьох тактових імпульсів в регістрі суми знаходиться результат - двійкове число . Слід зауважити, що в даній схемі тактові входи всіх регістрів (двох вхідних та вихідного) і тригера з затримкою пов'язані між собою. Крім цього, в кожен момент часу складаються тільки два біти інформації. Для складання двох 3-розрядних чисел слід використовувати тільки три тактових імпульсу, оскільки більше число імпульсів призведе до зсуву двійкового числа у регістрі суми і на індикаторі буде невірний результат.
Двійкове умноженіеtc "15.9. Двійкове множення"
У двійковій системі числення правила множення дуже прості. Вони показані на рис. 15.18.

Рис. 15.18. Правила двійкового множення
Розглянемо приклад на множення двійкових чисел 111 і 101 (рис. 15.19).

Рис. 15.19. Приклад на двійкове додавання
Спочатку множимое (111) множиться на значення розряду одиниць множника. У результаті виходить перше часткове твір, рівне 111. Потім множимое множиться на значення розряду двійок множника, при цьому молодший розряд другого часткового твори відкидається. На третьому етапі множимое множиться на значення розряду четвірок множника. У результаті виходить третій часткове твір 11100, але записується це число як 111. В кінці, перше, друге і третє часткові твори складаються.
На рис. 15.20 показаний ще один приклад на двійкове множення.

Рис. 15.20. Приклад на двійкове множення
Розглянемо способи, якими можна реалізувати множення двійкових чисел. Перший спосіб множення - це багато разів повторювана операція додавання. Розглянемо приклад. Припустимо необхідно знайти твір десяткових чисел 6 і 4. Твором цих чисел є число 24. Цей же результат можна отримати, використовуючи операцію складання: 6 +6 +6 +6 = 24. Таким чином, операцію множення можна замінити багаторазовим складанням.
Розглянемо схему пристрою, який дозволяє реалізувати такий спосіб множення (мал. 15.21).

Рис. 15.21. Структурна схема операції множення з використанням багаторазово повторюваного складання
Розглянемо процес множення двійкового числа 110 (десяткове 6) на двійкове число 100 (десяткове 4). Число 110 завантажується в регістр множимо. Множник (100) міститься в віднімаючий лічильнику. Твір накопичується в регістрі твори.
У табл. 15.5 показаний покроковий процес множення двійкових чисел.
Таблиця 15.5. Покроковий процес множення двійкових чисел шляхом багаторазового складання

Спочатку множимое і множник завантажуються в регістр множимо і віднімає лічильник множника відповідно, а регістр твори обнуляється. Після першого кроку в регістрі твори з'являється число 00110, а множник зменшується на 1. Після другого кроку в регістрі твори виявляється сума множимо (110) і числа 00110, множник зменшується на 1. Таким чином процес завершується після чотирьох кроків, коли лічильник множника містить 000, а регістр твори 11000 (десяткове число 24). Але цей спосіб не завжди зручний. Наприклад, для знаходження твори 56 * 12 потрібно визначити суму 12 доданків, кожне з яких дорівнює 56. Такий процес обчислення займає надто багато часу.
Другим способом множення двійкових чисел є спосіб складання зі зрушеннями.
Повернімося до прикладу, показаному на рис. 15.19. У цьому прикладі двійкове число 111 множиться на двійкове число 101. При розгляді даного прикладу можна зробити наступні висновки:
1) Часткове твір завжди дорівнює 000, якщо множник дорівнює 0, і одно множимое, якщо множник дорівнює 1.
2) Число розділів в регістрі твору має бути в два рази більше числа розділів у регістрі множимо.
3) При складанні перший часткове твір зсувається на одну позицію (розряд) вправо (по відношенню до другого твору).
На основі зроблених висновків можна побудувати схему для множення двійкових чисел (рис. 15.22).

Рис. 15.22. Структурна схема помножувача з використанням операцій додавання і зсуву
У початковому стані множимое (111) завантажується в регістр, регістр-накопичувач очищений (встановлений в стан 0000) і множник (101) завантажений в регістр. При цьому регістр-накопичувач і регістр-множника складають єдиний регістр (рис. 15.22.). Розглянемо покроковий процес множення двійкових чисел.
1) Завантаження вихідних даних в регістри.
2) Складання вмісту регістра-накопичувача і регістру-множимо, що ініціюється логічної 1 молодшого розряду на керуючу шину.
3) Зрушення вмісту регістра-накопичувача і регістру-множника на одну позицію вправо. При цьому молодший розряд регістра-множника втрачається.
4) Регістр-множник подає логічний 0 на керуючу шину. Цей сигнал блокує суматор і складання не проводиться.
5) Зрушення вмісту регістра - накопичувача і регістру - множника на одну позицію вправо.
6) Додавання вмісту регістра - накопичувача і регістру - множимо, що ініціюється логічної 1 молодшого розряду регістра - множника на керовану шину.
7) Зрушення вмісту регістра - накопичувача і регістру - множника на одну позицію вправо.
У результаті цих кроків твір (100011) знаходиться відразу в двох регістрах (табл. 15.6).
Таблиця 15.6. Покроковий процес множення з використанням операцій додавання і зсуву

У таблицях 15.5 - 15.6 показані принципи множення двома способами: шляхом багаторазового складання і шляхом складань із зрушеннями. При цьому мікропроцесори можуть і не містити в своїх АЛУ помножувачі. Конкретний спосіб множення можна запрограмувати. Таким чином задаючи процесору програму, він виконає послідовність операцій, яка забезпечить множення двійкових чисел. Завдяки цьому істотно зменшується кількість електронних схем у центральному процесорі.
15.10. Додавання і віднімання чисел, представлених у додатковому кодеtc "15.10. Додавання і віднімання чисел, представлених у додатковому коді"
До цих пір додавання і віднімання проводилося над позитивними числами. Однак мікропроцесори повинні обробляти не тільки позитивні, але і негативні числа. Використовуючи додатковий код числа, можна задати як знак числа, так і його абсолютну величину.
Розглянемо 4 - розрядний додатковий код. Старший розряд відводиться під знак числа: 0 - відповідає позитивному числу, 1 - негативному. Три розряду відводяться абсолютній величині числа. У табл. 15.7 наведено 4 - розрядний додатковий код чисел від +7 до -8.
Таблиця 15.7. Представлення двійкових чисел зі знаком.

З таблиці. 15.7 видно, що додатковий код позитивних чисел збігається зі звичайним поданням двійкового числа. Для отримання додаткового коду негативного числа потрібно спочатку сформувати додаток цього числа до 1, а потім додати 1. На рис. 15.23 показана процедура отримання додаткового коду негативного числа.

Рис. 15.23. Приклад перетворення числа зі знаком у додатковий код
Ця процедура складається з трьох кроків:
1) десяткове число перетвориться до його бінарного еквіваленту відповідного позитивного числа;
2) знаходиться додаток отриманого двійкового числа до 1, шляхом заміни всіх одиниць на нулі і всіх нулів на одиниці;
3) до отриманого доповненню до 1 додається 1. У результаті складання отримуємо додатковий код числа.
Процедура переходу від додаткового коду до двійкового числа, за яким потім визначається десяткове число, показано на рис. 15.24. Зворотне перетворення виконується наступним чином:
1) знаходимо додаток до 1 для вихідного додаткового коду, шляхом заміни всіх одиниць на нулі і всіх нулів на одиниці;
до отриманого доповненню до 1 додається 1 шляхом двійкового складання. У результаті отримуємо шукане двійкове число, але оскільки в старшому розряді додаткового коду коштує 1, відповідне десяткове число є від'ємним.

Рис. 15.24. Приклад перетворення додаткового коду в двійкове число
Розглянемо приклади на додавання і віднімання чисел, представлених у додатковому коді (рис. 15.25).

Рис. 15.25. Приклади додавання і віднімання чисел в додатковому коді
З рис. 15.25 можна зробити висновки, що складання чисел, представлених у додатковому коді, здійснюється звичайним способом, за винятком випадку, коли в результаті виходить 5 - розрядна комбінація. У цьому випадку найстарший розряд відкидається і залишається додатковий код суми.
При вирахуванні, від'ємник представляється в додатковому коді. Далі утворюється додаток до 2 отриманого додаткового коду. При отриманні 5 - розрядної комбінації найстарший розряд відкидається.
Додавання і віднімання чисел, представлених у додатковому коді, можна здійснити з використанням суматорів.
Розглянемо схему 3-розрядного суматора - вичітателя, що працює з числами, представленими в додатковому коді (рис. 15.26).

Рис. 15.26. Структурна схема 3-розрядного суматора - вичітателя чисел в додатковому коді
Для додавання і віднімання двох чисел, представлених в 3-розрядному додатковому коді, використовується три повних суматора. Для завдання режиму роботи пристрою на вході У кожного суматора введемо елемент виключає АБО. При подачі логічного 0 пристрій складає виконавчі комбінації і . На виході відображається додатковий код суми. При цьому рівень логічного 0 надходить на вхід повного суматора розряду одиниць, тобто цей суматор працює як звичайний двійковий суматор.
Для виконання операції віднімання чисел, представлених у додатковому коді, на керуючому вході завдання режиму встановлюється рівень логічної 1. У цьому випадку елементи виключає АБО інвертують інформаційні сигнали, що надходять на входи В. На вході повного суматора розряду одиниць встановлюється високий рівень сигналу. Інвертування інформаційних сигналів елементами виключає АБО з додатком 1 на вході суматора одиниць відповідає доповненню до 1 додаткового коду від'ємника і подальшого складання з 1 молодшого розряду. Це еквівалентно доповненню до 2 додаткового коду від'ємника . У результаті цих дій на виході відображається додатковий код різниці.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Книга
46.1кб. | скачати


Схожі роботи:
Інформатика Пристрої введення і виведення Периферійні пристрої
Арифметичні команди
Додаткові арифметичні команди
Арифметичні основи роботи ЕОМ
Арифметичні операції з BCD числами
Арифметичні основи обчислювальної техніки
Арифметичні задачі як засіб розвитку у дітей логічного мислення
Операції введення-виведення Арифметичні операції
Операції введення виведення Арифметичні операції
© Усі права захищені
написати до нас