Арифметично-логічний пристрій
Вхідний контроль:
1 Які арифметичні операції використовуються в обчислювальній техніці?
2 Які логічні операції використовуються в обчислювальній техніці?
3 Які правила використовуються при виконанні арифметичних операцій в обчислювальній техніці?
Арифметично-логічні пристрої (АЛП) широко використовуються для побудування арифметичних вузлів, зокрема, АЛП є обов’язковою складовою частиною будь-якого процесора. АЛП використовується для виконання арифметичних і логічних операцій з даними, які до нього надходять і являють собою числа або будь-який інший вид інформації. Кількість розрядів у даних, над якими виконується операція, звичайно співпадає з кількістю розрядів в основних регістрах МПС. АЛП випускають як окремі мікросхеми або вони є невід’ємною складовою мікросхеми центрального процесора.
Операції, які виконуються в АЛП, можна поділити на такі групи:
- арифметичні операції над двійковими числами з фіксованою точкою;
- арифметичні операції над двійковим числами з плаваючою точкою;
- операції десяткової арифметики;
- операції індексної арифметики (для модифікації адрес команд);
- логічні операції з операндами, які є логічними змінними;
- спеціальні арифметичні операції;
- операції над алфавітно-цифровими полями.
До арифметичних операцій відносяться додавання, віднімання, множення і ділення двійкових і двійково-десяткових чисел, операції з рядками даних. До групи логічних операцій входять: диз’юнкція (логічне АБО), кон’юнкція (логічне ТА), виключне АБО, інверсія, логічні зсуви, порівняння кодів між собою тощо. До групи спеціальних арифметичних операцій входять операції нормалізації даних, арифметичні зсуви тощо.
Арифметичні операції в АЛП виконуються за допомогою багаторозрядного суматора, а логічні – відповідними логічними схемами. В залежності від характеру використання цих пристроїв АЛП поділяються на блочні і багатофункційні. В блочних АЛП для виконання різних типів операцій використовуються окремі блоки. Це дає змогу підвищити швидкодію, але збільшує апаратні витрати. В багатофункційних АЛП для виконання операцій різних типів використовуються одні й ті ж пристрої, які комутуються по-різному, в залежності від виконуваної операції. Вибір операції і необхідних блоків здійснюється за допомогою сигналів керування, якими кодується операція, яку необхідно виконати. Крім результату АЛП формує набір спеціальних сигналів – ознаки результату (прапорці). Умовне позначення АЛП на схемах показано на рис. 4.6.
Рисунок 4.6 – Умовне графічне позначення АЛП
Тому що двійковий суматор, який використовується в АЛП для виконання арифметичних операції, є комбінаційним пристроєм, то для одночасного подання двох операндів на його входи необхідно мати запам’ятовувальні пристрої для тимчасового зберігання операндів і результату.
До АЛП операнди можуть надходити з двох регістрів загального призначення (РЗП) або із регістра і комірки пам’яті, а результат надходить до регістра або до комірки пам’яті, які визначені як приймач результату. Така система має назву двоадресної. тому МПС повинна подати адреси обох операндів. Схему організації двоадресної системи показано на рис. 4.7, а.
В інших МПС один з операндів до початку виконання команди обов’язково зберігається в акумуляторі, а після закінчення результат записується на місці операнда, який безповоротно втрачається. Така система має назву одноадресної, тому що необхідно адресувати лише один операнд. Схему організації одноадресної системи показано на рис. 4.7, б.
До важливої характерної ознаки АЛП відноситься формування ним ознак результату (прапорців) – тобто деяких властивостей результату, які можуть вплинути на подальше виконання програми. Ознаки результату формуються після отримання результату і записуються у спеціальний регістр – регістр ознак результату (або інші назви цього регістра – регістр прапорців, регістр стану), де вони зберігаються до формування результату наступної операції. Слід зазначити, що ознаки результату формують лише команди арифметичних і логічних операцій. Регістр ознак, у залежності від типу мікропроцесора, може мати різну кількість розрядів, які відповідають властивостям результату і зберігають інформацію про стан деяких апаратних або програмних компонентів процесора. Формат регістра ознак для відповідної мікросхеми може бути таким, як показано на рис. 4.8.
Кожна з ознак результату (прапорець) зберігається у одному розряді регістра і кодує наявність відповідної ознаки значенням 0 або 1. Розглянемо кожну з ознак результату з короткою характеристикою:
- C (carry) – ознака зберігає значення перенесення до наступного старшого розряду за межами розрядної сітки або значення позики з цього розряду;
| |||||
Рисунок 4.7 – Схема організації двоадресного (а)
і одноадресного (б) АЛП
C | S | Z | AC | OVR | P |
Ознака перенесення (позики) | Ознака знаку | Ознака нуля | Ознака допоміжного перенесення | Ознака переповнення | Ознака парітету |
Рисунок 4.8 – Формат регістра і назви ознак результату
- S (sign) – розряд регістра зберігає копію знакового розряду результату операції. Значення цієї ознаки, що дорівнює 1 відповідає від’ємному результату;
- Z (zero) – ознака нульового результату. Для результату, що дорівнює 0 – ознака набуває значення 1;
- AC (auxiliary carry) – ознака зберігає значення перенесення зі старшого розряду молодшої тетради у молодший розряд старшої тетради байта при додаванні двійково-десяткових чисел або – значення позики зі старшої тетради до молодшої при відніманні;
- OVR (overflow) – ознака, яка сигналізує про втрату старшого біта результату додавання або віднімання чисел зі знаком, що обумовлено наявністю перенесення у знаковий розряд. При додаванні ознака набуває значення 1, якщо є перенесення у старший (знаковий) біт результату, але немає перенесення з нього і навпаки якщо є перенесення у біт C, але немає перенесення у старший (знаковий) біт. При відніманні ознака дорівнює 1, якщо є позика зі старшого (знакового) біта результату, але немає позики з нього і навпаки, якщо є позики з біта C, але немає позики зі старшого (знакового) біта. Значення ознаки дорівнює результату виконання логічної операції виключне АБО над значеннями бітів C і перенесенням до старшого (знакового) біта результату
C Å CD7,
де CD7 – перенесення до старшого (знакового) біта результату;
- P (parity) – значення цієї ознаки дорівнює 0, якщо результат операції складається з непарної кількості одиниць.
Формування ознак покажемо на прикладі виконання арифметичної і логічної операцій для восьмирозрядних чисел:
– арифметична операція над двійковими числами
.
Якщо вважати, що операція виконується над беззнаковими числами, то це 239D + 120D = 359D і результат з урахуванням перенесення правильний, якщо вважати що числа зі знаками, то це (–17D) + 120D = + 103D . Враховуючи, що числа зі знаком подані в доповнювальному коді, то результат також правильний. Ознаки результату не залежать від того, над якими числами виконувалась операція. Вони набувають таких значень:
C = 1– перенесення у 9 розряд має місце;
S = 0 – восьмий розряд результату, що кодує знак, дорівнює 0, результат додатний;
Z = 0 – результат не дорівнює нулю;
AC = 1 – відбулося перенесення з молодшої тетради до старшої. Слід сказати, що АЛП виставляє ознаки, формально, за їх наявності, не враховуючи конкретні обставини виконання операції;
OVR = 1 – відбулося переповнення розрядної сітки (біт C) і не відбулося перенесення до старшого (знакового) розряду.
C Å D7 = 1 Å 0 = 1.
якщо це числа зі знаком і передбачається їх подальша обробка, то необхідно збільшити довжину розрядної сітки;
P = 0 – результат (без урахування перенесення) складається з непарної кількості (5) одиниць;
– логічна операція кон’юнкція над восьмирозрядними логічними змінними
.
При виконанні логічних операцій перенесення не відбувається, тому ознаки C, AC і OVR не формуються, а зберігають свої значення, яких набули при попередній операції. Ознака S формується формально копіюванням старшого розряду результату. Після виконання логічної операції ознаки набувають таких значень:
C = Х – зберігає попереднє значення;
S = 0 – восьмий розряд результату, що кодує знак, дорівнює 0;
Z = 0 – результат не дорівнює нулю;
AC = Х – зберігає попереднє значення;
OVR = Х – зберігає попереднє значення;
P = 0 – результат складається з непарної кількості (3) одиниць.
Умовне графічне позначення мікросхеми чотирирозрядного АЛП наведено на рис. 4.9.
Рисунок 4.9 – Умовне графічне позначення мікросхеми чотирирозрядного АЛП
Виводи цієї мікросхеми мають таке функціональне призначення:
- a0 – a3 – входи операнда А;
- b0 – b3 – входи операнда B;
- S0 – S3 – входи для подання коду операції, що буде виконуватись;
- c – вхідне перенесення;
- M – код режиму роботи M = 1 – АЛП може виконувати 16 логічних операцій, M = 0 – 16 арифметичних операцій;
- F0 – F3 – результат виконання операції;
- C – вихідне перенесення;
- A = B – ознака рівності вхідних операндів;
- G – вихід сигналу генерування перенесення;
- P – вихід сигналу розповсюдження перенесення.
Останні два сигнали використовуються для нарощування розрядності операндів і збільшення швидкодії схеми, яка буде отримана.
Контрольні питання:
1 Яке місце займає АЛП у складі мікропроцесора?
2 Чому операнди, над якими необхідно виконати операцію в АЛП, необхідно спочатку записати в два запам’ятовувальні пристрої – регістри?
3 Які ознаки результату формуються після виконання операції в АЛП і яке їх призначення?
4 Які ознаки результату не змінюються при виконанні логічних операцій?
Контрольні питання підвищеної складності:
1 Які ознаки результату будуть сформовані при виконанні арифметичної операції
+89D – 120D.
2 Які ознаки результату будуть сформовані при виконанні логічної операції
11001110 V 01100011.
3 Яке значення буде мати ознака P, якщо результат виконання операції дорівнює 11100001?
4.4 Програмовані логічні інтегральні схеми (ПЛІС)
У мікропроцесорних системах у багатьох випадках, наприклад, у телекомунікаціях, при виконанні цифрового оброблення сигналів можна доповнювати, а іноді навіть заміняти мікропроцесорні засоби на програмовані логічні інтегральні схеми (ПЛІС).
На них можна будувати спеціалізовані цифрові пристрої, керувальні засоби – контролери, і застосовувати у тих областях, де апаратним рішенням задач можна віддати перевагу порівняно з програмними рішеннями, які завжди є послідовними. Застосування ПЛІС забезпечує паралельне оброблення різних гілок одного обчислювального процесу і, таким чином, збільшує продуктивність системи іноді у десятки разів. У той самий час зберігається така ж сама гнучкість реалізації алгоритмів, як і при програмному способі. Задавати алгоритм дії проектованого цифрового пристрою для реалізації на ПЛІС можна у вигляді часових діаграм, текстового опису, схем на логічних елементах, у вигляді логічних функцій. Для отримання оптимального алгоритму використовується процедура мінімізації, як було показано вище. Використовуючи засоби САПР, розробники отримують файл, який використовується потім при програмуванні ПЛІС на програматорі. ПЛІС – це надвелика інтегральна схема, яка вміщує на кришталі універсальні налаштовувані користувачем функціональні перетворювачі та програмовані зв’язки між ними. ПЛІС можуть реалізовувати блоки пам’яті, блоки цифрової обробки сигналів, вбудовані процесорні ядра з периферією, швидкісні канали введення-виведення.
Окремі цифрові пристрої – шифратори, перетворювачі кодів, спеціальні функціональні пристрої, декодери адрес тощо, як правило, входять до складу мікропроцесорних систем. Вони не є складними й описати алгоритм їхньої роботи можна у вигляді логічної функції не більше як від трьох до п’яти логічних змінних. Синтез таких логічних схем можна здійснити після мінімізації логічних функцій, які їх описують. Їх можливо реалізовувати на трьох типах програмованих логічних пристроїв:
- програмовані логічні матриці ПЛМ (PLA – programmable logic array);
- програмована матрична логіка ПЛМ (PAL – programmable array logic);
- вентильна матрична логіка ВМЛ (GAL – gated array logic).
Останнім часом елементи PAL знайшли широке застосування у МПС для побудування адресних дешифраторів. Схема такого пристрою складається з двох матриць логічних пристроїв – матриці логічних елементів АБО та матриці логічних елементів ТА. Програмування такої структури полягає у перепалюванні перемичок між матрицями, в результаті чого формується схема, що відповідає заданому алгоритму роботи.
Контрольні питання:
1 Чому використання ПЛІС дозволяє збільшити продуктивність МПС?
2 Які типи мікросхем ПЛІС Ви знаєте?
3 Для чого використовуються мікросхеми PAL уМПС?
Контрольні питання підвищеної складності:
1 Поясніть, для чого необхідно використовувати мінімізацію при розробці алгоритму робити ПЛІС.