Схемою порівняння (компаратором) називається функціональний вузол комп'ютера, призначений для вироблення ознак відношень між двійковими словами (числами). Ознаки відношень записуються у вигляді: Fi: = А*K або Fi, А*K або FA*K; Fi: = А*В або Рi, А*В або FA*В, де А і В – двійкові або двійково-десяткові числа; К – двійкова константа; i – номер відношення (часто пропускається); * – операція відношення вигляду =, ≠, <, >, £, ³ і т. ін.; Fi – функція, що задає результат відношення: лог.1 – якщо відношення виконується, тобто істинне, і лог.0 – якщо відношення не виконується, тобто помилкове. Функція компаратора позначається буквами COMP (comparator) або знаками = =. Основними відношеннями вважаються: «рівне» FA=В, «більше» РА>В і «менше» РА<В. Часто схеми, що реалізують відношення РА>В або РА<В, називають схемами порівняння «на більше» або «на менше». Маючи в своєму розпорядженні основні ознаки відношень, можна на їхній основі отримати ряд додаткових ознак, наприклад: FA≠B = ; FA≤B =; FA≤B = FA=BÚFA<B. Ознаки відношення використовуються як логічні умови (повідомляючі сигнали) в мікропрограмах, командах передачі керування, а також у пристроях контролю і діагностики. Після виконання кожної команди в машині автоматично формуються ознаки результатів операції. Ці ознаки, які називаються прапорами (прапорцями), вміщуються в спеціальний регістр прапорів. До прапорів звичайно відносять ознаки нульового результату, переповнення розрядної сітки, знак результату, наявність перенесень із старшого розряду суматора, парне або непарне число одиниць в результаті та ін. Зазначимо, що формування і використання ознак (прапорців) – це основна відмінність комп'ютера від калькулятора. Тільки за допомогою прапорців машина приймає рішення про хід обчислювального процесу, тобто володіє інтелектуальними властивостями.
9.2. Схеми порівняння слів з константою
Приймемо, що потрібно отримати ознаки відношень двійкового слова А=А2А1А0 з наступними заданими константами: F1:= (А=000); F2:= (А=111) і F3:= (А£011). На основі табл. 9.1 значення ознак відношення слова А з константами запишуться у вигляді: F1 = ; F2= A2 A1 A0; F3= (9.1) Схема порівняння слова з константою згідно з виразами (9.1) показана на рис. 9.1. Таблиця 9.1
A2
A1
A0
F1
F2
F3
Рис. 9.1. Схема порівняння слова з константою
9.3. Схеми порівняння двійкових слів А і В
Багаторозрядні двійкові слова рівні, коли одночасно попарно рівні всі їхні розряди, тобто А(n) = В(n), якщо Аi = Вi, i = 1, 2, ..., n. На основі табл. 9.2, яка задає умову рівності ri двох i-x розрядів А і В, отримаємо: , (9.2) де Мі – функція додавання по модулю два (“виключальне ЧИ”). Схемна реалізація функції (9.2) показана на рис. 9.2. Ознака рівності двох n-розрядних слів РА=В визначається логічним добутком порозрядних умов ri: FA=B = rn rn-1 … r1 = (9.3)
Таблиця 9.2
Аi
Вi
ri
Схема порівняння двох чотирирозрядних слів А і В згідно з виразом (9.3) показана на рис. 9.3. Схема вміщує чотири логічних елементи «виключальне ЧИ» і один кон’юнктор.
Рис. 9.2. Елемент “Виключальне ЧИ”: а – схема; б – умовне позначення
Рис. 9.3. Схема порівняння двох чотирирозрядних слів А і В
При великій розрядності слів, які порівнюються, можна на першому рівні отримати ознаки для чотирирозрядних груп і на другому рівні реалізувати загальний прапор логічним множенням групових ознак. Наприклад, при розрядності порівнюваних слів n = 16 отримаємо чотири групові ознаки порівняння: ; ; ; , де верхні індекси означають номери розрядів у групах. Тоді ознака порівняння двох 16-розрядних слів запишеться у вигляді: FA=B = ∙∙∙ Схема порівняння двох 16-розрядних слів показана на рис. 9.4, а.
Рис. 9.4. Схема порівняння двох слів на рівність: а – групова структура; б – на основі дешифратора і мультиплексора
Порівняння може бути реалізоване і на інших схемотехнічних принципах. Схема порівняння двох чотирирозрядних чисел А і В на основі дешифратора і мультиплексора показана на рис. 9.4, б. Дешифратор виробляє одиничне значення сигналу на тому виході, номер якого також визначається десятковим еквівалентом вхідного коду. Наприклад, при А4 А3 А2 А1 = 0111 логічна одиниця з'явиться на виході з номером сім. Мультиплексор підключає до виходу той вхід, номер якого також визначається десятковим еквівалентом вхідної комбінації. Якщо B4B3B2B1 = 0111, то дозволяється проходження на вихід сигналу із сьомого входу. Таким чином, якщо слова А і В рівні, то формується прапор FA=В =1.
9.4. Схеми порівняння двох слів «на більше»
Схема порівняння двох слів А і В «на більше» за абсолютним значенням виробляє ознаку FA>В і будується за наступним алгоритмом: аналіз нерівності слів А і В виконується послідовно в напрямку від старших розрядів до молодших; молодші розряди включаються в аналіз в тому випадку, коли старші розряди рівні (еквівалентні); для отримання ознаки РА>В будується диз'юнктивна сума порозрядних умов. Логіка порівняння розрядів А і В наведена в табл. 9.3, де Сi – ознака Аi>Вi; ri – умова підключення до аналізу сусідніх молодших розрядів обох слів. На основі табл. 9.3 отримуємо такі вирази: (9.4) З урахуванням виразу (9.4) і алгоритму аналізу функцію ознаки FA>B представляємо у вигляді: (9.5) Для порівняння двох чотирирозрядних слів «на більше» ознаку нерівності згідно з виразом (9.5) представляємо таким чином: (9.6)
Схема порівняння «на більше» двох чотирирозрядних слів А і В згідно із співвідношенням (9.6) показана на рис. 9.5.
9.5. Багаторозрядні схеми порівняння «на більше»
Рис. 9.5. Схема порівняння двох слів «на більше»
При реалізації схем порівняння багаторозрядних слів «на більше» виникають технічні труднощі, пов'язані з необхідністю використання вентилів з великою кількістю входів. Тому слова, що порівнюються, розбиваються на групи, які складаються, наприклад, з чотирьох розрядів. Кожна група виробляє свою ознаку нерівності Fia>b і умову підключення до аналізу молодшої групи згідно з виразом (9.6) і схемою (рис. 9.5). Наприклад, для n = 16 маємо чотири групи, які об'єднуються згідно із співвідношенням (9.7) де F4A>В – прапор порівняння «на більше» в найстаршій групі з розрядами A16 – А13, В16 – В13 і М 4гр= М16М15М14M13 – умова для підключення до аналізу сусідньої молодшої групи; F 3A>В – прапор порівняння «на більше» у групі з розрядами А12 – А19, В2 – В9 і M 3гр = =М12M11M10М9 – умова аналізу молодшої групи; F2A>В – прапор порівняння «на більше» у групі з розрядами А8 – А5, В8 – В5 і M 2гр = =М8M7M6М5 – умова підключення молодшої групи; F1A>В – прапор порівняння «на більше» у групі з розрядами A4–A1, B4–B1.
Схема порівняння «на більше» двох 16-розрядних слів А і В на основі рівняння (9.7) показана на рис. 9.6.
Рис. 9.6. Схема порівняння «на більше» двох 16-розрядних слів
9.6. Застосування компараторів
Контроль (виявлення) і корекція (виправлення) результатів операцій є важливою умовою грамотної експлуатації машин. Контроль може бути програмним або апаратним. До апаратних методів відносяться дублювання операцій і відновлення вхідних сигналів. Контроль операцій додавання методом дублювання реалізується двома однаковими суматорами (SM), на входи яких одночасно поступають доданки А(n) і В(n). Обидва результати S1(n) і S2(n) поступають на входи схеми порівняння (рис. 9.7, а). Якщо обидва результати рівні, то на виході схеми порівняння значення ознаки FS1=S2 = 1 і помилок немає. При нульовому значенні ознаки операцію потрібно повторити або зупинити роботу ЕОМ.
Рис. 9.7. Застосування схеми порівняння для контролю операцій
Схема контролю методом відновлення вхідних сигналів показана на рис. 9.7, б. Дворозрядне слово А2A1 декодується і значення унітарного коду з виходів дешифратора поступає на входи шифратора. При правильній роботі дешифратора і шифратора вхідний код А2A1 має збігатися з вихідним кодом шифратора В2B1. При цьому на виході схеми порівняння встановиться одиничне значення ознаки FA=В. При передачі інформації з одного регістра в інший контроль правильності пересилки може здійснюватися порозрядним порівнянням вмісту цих двох регістрів. На рис. 9.7, в показаний один з варіантів контролю пересилок слів між регістрами. Після передачі інформації з регістра А в регістр В (або навпаки) проводиться порівняння їхнього вмісту. Якщо значення двох слів збігаються, то значення ознаки рівності набуває одиничного значення, інакше – виробляється сигнал помилки.
9.7. Загальна характеристика схем контролю парності
У комп'ютерах широко використовується контроль парності (синонім – за паритетом або відповідністю). Цей спосіб заснований на допущенні, що в двійковому числі найчастіше виникають одиничні помилки – втрата або поява зайвої одиниці. У обох випадках число одиниць зміниться на одну. Якщо двійкове число мало непарне число одиниць, то після одиничної помилки воно виявиться парним і навпаки. На практиці контроль парності здійснюється таким чином. Для підвищення ефективності контролю двійкове слово розбивається на частини, як правило, байти. До кожного байта додається додатковий контрольний розряд. Вміст контрольного розряду залежить від вибраного способу контролю (за парністю або непарністю). При контролі за парністю значення контрольного розряду вибирається таким, щоб загальне число одиниць у байті й контрольному біті було парним. У цьому випадку значення контрольного (паритетного) біта визначається додаванням за модулем два значень розрядів байта (рис. 9.8, а): (9.8) Внаслідок операції додавання за модулем два значень розрядів байта з парним число одиниць одержуємо значення контрольного байта FK.П = 0. При додаванні за модулем два значень розрядів байта з непарним числом одиниць значення контрольного байта FK.П = 1.
FK.П
FK.Н
а
б
Рис. 9.8. Контроль байта: а – за парністю; б – за непарністю При контролі за непарністю значення контрольного біта вибирається з умови, щоб кількість одиниць у байті з урахуванням вмісту контрольного розряду була непарною. У цьому випадку значення контрольного біта набуває такого виразу: (9.9) На практиці контроль непарності використовується частіше, оскільки фіксує повне пропадання інформації. Контроль парності (непарність) передбачає формування значень контрольних розрядів до виконання операції та перевірку байта після виконання операції з урахуванням контрольних розрядів. Наприклад, при записуванні байта в пам'ять комп'ютера одночасно автоматично формується (генерується) значення його контрольного розряду. При зчитуванні байта, що зберігається, здійснюється додавання за модулем два значень його розрядів спільно з контрольним бітом згідно з визначеним способом контролю парності або непарності. Таким чином, контроль за паритетом вимагає використання додаткових розрядів. Схеми, що забезпечують отримання значення контрольного розряду і перевірку двійкового числа за ознакою парності або непарності, називаються схемами контролю парності. Їх часто називають схемами згортки, схемами контролю за модулем два, схемами контролю за паритетом. Для отримання умови парності потрібне складання за модулем два восьмирозрядного слова, що реалізується за допомогою ступінчатого включення двовходових елементів «виключальне ЧИ»: на першому рівні отримують функції F1 – F4: F1 = А1ÅA2; F2 = А3ÅА4; F3 = A5ÅA6; F4 = А7ÅA8; (9.10) на другому і третьому рівнях реалізуються функції: F5= F1ÅF2; F6 = F3ÅF4; М = F5ÅF6. (9.11) Функція М згідно з виразами (9.10) і (9.11) набуває значення лог.1 при непарному числі одиниць у вхідному байті та значення лог.0 – при парному числі одиниць у вхідному байті.Для задання ознаки контролю вводиться керуючий сигнал V, який разом з сигналом М поступає на входи схеми «виключальне ЧИ» в четвертому рівні; на прямому й інверсному виходах цього рівня формуються пряме й інверсне значення контрольного розряду:
Логіка роботи схеми контролю, показаної на рис. 9.9, а, наведена в табл. 9.4.
Рис. 9.9. Схеми контролю за парністю: а – ступінчате включення елемента «виключальне ЧИ»; б – умовне позначення
Таблиця 9.4
Входи A8 – A1
V
F
На входах:
Парне число одиниць
Непарне число одиниць
На входах:
Парне число одиниць
Непарне число одиниць
Із табл. 4.9 видно, що при V = 0 на виході F генерується значення контрольного розряду для контролю парності, при V = 1 на виході F генерується значення контрольного розряду для контролю непарності. Як приклад схема контролю непарності пересилок байта від джерела інформації (ДІ) до приймача інформації (ПІ) показана на рис. 9.10.
Рис. 9.10. Контроль пересилок байта
Схема контролю з боку джерела інформації виступає як генератор значення контрольного розряду непарності FДІ. Схема контролю з боку приймача інформації забезпечує додавання за модулем два значень розрядів визначеного байта спільно з визначеним контрольним бітом непарності. Прийом інформації можливий тільки при виконанні умови непарності FПІ = 1 з боку приймача.