Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_Вычисл техн и микропроц_2 автора_130709.doc
Скачиваний:
9
Добавлен:
07.05.2019
Размер:
5.26 Mб
Скачать

4.2 Цифрові компаратори

Вхідний контроль:

  1. Який пристрій називається компаратором?

  2. Для чого використовується компаратор?

Цифровим компаратором називають функціональний вузол обчислювальної техніки, який порівнює два багаторозрядних числа A i B між собою і результат порівняння подає у вигляді сигналів співвідношення між ними A = B, A < B, A > B.

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

  • якщо результат дорівнює 0, то це є ознакою того, що значення A i B співпадають;

  • якщо результат не дорівнює 0, а вихідне переповнення дорівнює 1, то A < B;

  • якщо вихідне переповнення дорівнює 0, то це є ознакою, що A > B.

Сигнали, що показують співвідношення між вхідними числами формуються за допомогою логічних схем. Функціональна схема цифрового компаратора для чотирирозрядних чисел наведена на рис. 4.4.

Умовне графічне позначення компаратора, який показано на рис. 4.4, наведено на рис. 4.5.

Для нарощування розрядності вхідних даних цифрові компаратори дозволяється каскадувати, для чого набір вхідних сигналів компаратора доповнюють вихідними сигналами попереднього каскаду A = B, A < B, A > B (рис. 4.5). Формування кінцевого результату порівняння відбувається з урахуванням цих сигналів.

Рисунок 4.4 – Функціональна схема чотирирозрядного

цифрового компаратора

Рисунок 4.5 – Умовне графічне позначення чотирирозрядного

цифрового компаратора

Контрольні питання:

  1. Як виконується порівняння двох двійкових чисел у цифровому компараторі?

  2. Поясніть призначення формувача доповнювального коду у схемі, що наведена на рис. 4.4.

Контрольні питання підвищеної складності:

  1. На підставі якої ознаки приймається рішення, що A = B?

  2. На підставі яких ознак приймається рішення, що A > B?

4.3 Арифметично-логічний пристрій

Вхідний контроль:

  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) і не відбулося перенесення до старшого (знакового) розряду.

CD7 = 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 – Умовне графічне позначення мікросхеми чотирирозрядного АЛП

Виводи цієї мікросхеми мають таке функціональне призначення:

  • a0a3 – входи операнда А;

  • b0b3 – входи операнда B;

  • S0S3 – входи для подання коду операції, що буде виконуватись;

  • c – вхідне перенесення;

  • M – код режиму роботи M = 1 – АЛП може виконувати 16 логічних операцій, M = 0 – 16 арифметичних операцій;

  • F0F3 – результат виконання операції;

  • C – вихідне перенесення;

  • A = B – ознака рівності вхідних операндів;

  • G – вихід сигналу генерування перенесення;

  • P – вихід сигналу розповсюдження перенесення.

Останні два сигнали використовуються для нарощування розрядності операндів і збільшення швидкодії схеми, яка буде отримана.

Контрольні питання:

    1. Яке місце займає АЛП у складі мікропроцесора?

    2. Чому операнди, над якими необхідно виконати операцію в АЛП, необхідно спочатку записати в два запам’ятовувальні пристрої – регістри?

    3. Які ознаки результату формуються після виконання операції в АЛП і яке їх призначення?

    4. Які ознаки результату не змінюються при виконанні логічних операцій?

Контрольні питання підвищеної складності:

1 Які ознаки результату будуть сформовані при виконанні арифметичної операції

+89D – 120D.

2 Які ознаки результату будуть сформовані при виконанні логічної операції

11001110 V 01100011.

3 Яке значення буде мати ознака P, якщо результат виконання операції дорівнює 11100001?