Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка Укр - 69 - v1.1 - pass.docx
Скачиваний:
3
Добавлен:
13.09.2019
Размер:
916.79 Кб
Скачать

1.2. Перевірка парності

Контроль парності або корекція помилок (ECC – код виправлення помилок) використовується в основному тільки в найбільш важливих комп'ютерних системах, де неприпустима навіть одна помилка за кілька десятиліть. Перевірка парності – досить простий метод виявлення помилок пам'яті, без можливості відновлення. Кожен байт даних пов'язаний з одним бітом парності або так званим паритетним бітом. Цей біт встановлюється під час запису, і потім розраховується і порівнюється під час читання. Зміна стану цього біта говорить про цю помилку. Цей метод обмежений визначенням зміни стану одиночного біта у байті. У разі зміни стану двох бітів, можлива ситуація, коли обчислення паритетного біта співпаде з записаним. У цьому випадку система не визначить помилку, і відбудеться екстрена зупинка системи. Так як приблизно 90% всіх нерегулярних помилок відбувається саме з одиночним розрядом, перевірки парності буває достатньо для більшості ситуацій. На жаль необхідність у додаткових обчисленнях паритетного біта вимагає певних витрат процесорного часу, що дещо знижує продуктивність всієї системи. Більш цікавим методом перевірки помилок роботи пам'яті є так звана корекція помилок (ECC) або код виправлення помилок. Цей метод включає визначення помилки не тільки в одиночному розряді, але і двох, трьох і чотирьох розрядах. ECC може бути реалізований або на модулі пам'яті (ECC - on - Simm, або EOS) або в чіпсеті. Однак модулі EOS зустрічаються вкрай рідко. ECC базується на алгоритмі "хешинга", який працює одночасно з 8 байт (64 біт), і розміщує результат у 8-ми розрядне ECC слово. Під час зчитування результат ECC слова порівнюється з розрахованим, подібно до того, як відбувається в методі перевірки парності. Основна відмінність полягає в тому, що в перевірці кожен біт парності пов'язаний з одним байтом, у той час як ECC слово пов'язана з усіма 8 байтами. Це означає, що розрядні значення для ECC не будуть тими ж, що й індивідуальні біти для перевірки парності для тих же восьми байтів, тому модулі ECC не можуть використовуватися в режимі парності (однак, паритетні модулі, можуть використовуватися в режимі ECC, як описано нижче). ECC модулі можуть використовуватися на не паритетних і на ECC / non-ECC платах. Модуль ECC не може використовуватися в режимі перевірки парності. Причина цього є схемотехнічна реалізація модуля ECC. Він не може встановлювати окремі біти, тому чіпсет не буде записувати правильні дані в ECC слово.

1.3. Код CRC

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

Повідомлення: 6 4 23

Повідомлення з контрольною сумою: 6 23 4 33

Повідомлення після передачі: 6 27 4 33

Як видно, другий байт повідомлення при передачі виявився зміненим з 23 на 27. Приймач може виявити помилку, порівнюючи передану контрольну суму 33 з розрахованої їм самим: 6 + 27 + 4 = 37. Якщо при правильній передачі повідомлення виявиться пошкоджена сама контрольна сума, то таке повідомлення буде неправильно витлумачено, як викривлене. Однак, це не найгірша ситуація. Більш небезпечно, одночасне пошкодження повідомлення та контрольної суми таким чином, що всі повідомлення можна вважати достовірними. На жаль, виключити таку ситуацію неможливо, і краще, чого можна досягти, це знизити ймовірність її появи, збільшуючи кількість інформації в контрольній сумі (наприклад, розширивши її з одного до 2 байт).

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