контроль парності

Це один зі стандартів, запроваджених IBM, відповідно до якого інформація в банках пам'яті зберігається фрагментами по дев'ять бітів, причому вісім з них (складових один байт) призначені власне для даних, а дев'ятий є бітом парності (parity). Використання дев'ятого біта дозволяє схемами управління пам'яттю на апаратному рівні контролювати цілісність кожного байта даних. Якщо буде виявлено помилка, робота комп'ютера зупиняється і на екран виводиться повідомлення про несправності. Якщо ви працюєте на комп'ютері під керуванням Windows або OS / 2, то при виникненні помилки контролю парності повідомлення, можливо, не з'явиться, а просто станеться блокування системи.

У всіх процесорах, починаючи з 386, схема контролю парності вбудована в саму мікросхему, тому ніякі додаткові мікросхеми на системну плату встановлювати не потрібно. У більшості системних плат передбачена можливість відключення схем контролю парності для того, щоб на них можна було встановлювати модулі пам'яті без біта парності. На жаль, деякі системи взагалі не підтримують контроль парності. Даний факт ставить під сумнів чітку роботу системи з критичними додатками, які вимагають контролю парності.

Принцип роботи перевірки парності

При розробці схеми контролю парності IBM встановила, що значення біта парності задається таким, щоб кількість одиниць у всіх дев'яти розрядах (вісім розрядів даних і розряд парності) було непарним. Іншими словами, коли байт (8 біт) даних заноситься в пам'ять, спеціальна схема контролю парності (мікросхема, встановлена ​​на системній платі або на платі пам'яті) підраховує кількість одиниць в байті. Якщо воно парне, на виході мікросхеми формується сигнал логічної одиниці, який зберігається у відповідному розряді пам'яті як дев'ятий біт (біт парності). Кількість одиниць у всіх дев'яти розрядах при цьому стає непарних. Якщо ж кількість одиниць в восьми розрядах вихідних даних непарне, то біт парності дорівнює 0 і сума довічних цифр в дев'яти розрядах також залишається непарною.

Розглянемо конкретний приклад (майте на увазі, що розряди в байті нумеруються починаючи з нуля).

Розряд даних: 0 1 2 3 4 5 6 7 Біт парності

Значення біта: 1 0 1 1 0 0 1 1 0

В даному випадку загальне число одиничних бітів даних непарне (5), тому біт парності має дорівнювати нулю, щоб кількість одиниць у всіх дев'яти розрядах було непарним.

Розглянемо ще один приклад.

Розряд даних: 0 1 2 3 4 5 6 7 Біт парності

Значення біта: 0 0 1 1 0 0 1 1 1

У цьому прикладі загальне число одиничних бітів даних парне (4), тому біт парності має дорівнювати одиниці, щоб кількість одиниць у всіх дев'яти розрядах, як і в попередньому прикладі, було непарним.

При зчитуванні з пам'яті та ж сама мікросхема перевіряє інформацію на парність. Якщо в 9-розрядному байті число одиниць парне і біт парності також дорівнює одиниці, означає, при зчитуванні або запису даних сталася помилка. Визначити, в якому розряді вона сталася, неможливо (не можна навіть з'ясувати кількість зіпсованих розрядів). Більш того, якщо збій стався в трьох розрядах (в непарному їх кількості), то помилка буде зафіксована; однак при двох помилкових розрядах (або парному їх кількості) збій не реєструється. Повідомлення про помилки парності мають такий вигляд:

У комп'ютері IBM PC: PARITY СНЕСК х

У комп'ютері IBM XT: PARITY СНЕСК х yyyyy (z)

У комп'ютері IBM PC і останніх моделях XT: PARITY СНЕСК х yyyyy

При виявленні помилки схема контролю парності на системній платі формує немаскируемое переривання (Non-maskable Interrupt  NMI), за яким основна робота припиняється і ініціюється спеціальна процедура, записана в BIOS. В результаті її виконання екран очищається і в лівому верхньому кутку виводиться повідомлення про помилку. Текст повідомлення залежить від типу комп'ютера. У деяких старих комп'ютерах IBM при виконанні зазначеної процедури припиняється робота процесора, комп'ютер блокується і користувачеві доводиться перезапускати його за допомогою кнопки скидання або вимикати і через деякий час знову включати харчування. При цьому, природно, втрачається вся незбережену інформацію. (Немаскіруемое переривання  це системне попередження, яке програми не можуть проігнорувати.)

У більшості комп'ютерів в разі помилки парності процесор не зависає і користувачеві надається можливість або перезавантажити комп'ютер, або продовжити роботу як ніби нічого не сталося. У подібних системах повідомлення про помилку може виглядати інакше, ніж в комп'ютерах IBM, хоча загальний його зміст, звичайно, залишається колишнім.