Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
міні-шпори - v3.doc
Скачиваний:
4
Добавлен:
01.09.2019
Размер:
834.05 Кб
Скачать

2)Приклади використання кодів з корекцією помилок і пояснити принцип їх дії

ECC (англ. error-correcting code, код корекції помилок) - дані, що приєднуються до кожного передається сигналу, що дозволяють приймаючій стороні визначити факт збою і (у деяких випадках) виправити несуттєву помилку.

ECC використовується у пристроях зберігання даних (у тому числі і для оперативної пам'яті).

Необхідність перевірки помилок.

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

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

Apple підійшла до цього питання по іншому. Вони порахували, що для середнього, домашнього користувача, для якого розроблені комп'ютери Apple (не плутати з сучасними Apple Macintosh), виникнення випадкової помилки не буде носити настільки серйозний характер. З цієї причини було ухвалено рішення не включати в схему комп'ютера модулі пам'яті з контролем парності. Це дозволило зменшити вартість на 12%, що на ті часи дуже істотно, адже 4MB пам'яті стояли кілька сотень доларів.

Виробники IBM PC клону комп'ютерів, порахували, що вони також можуть поступово відмовитися від використання моделей пам'яті з контролем парності, і вперше стали використовувати їх у 386 машинах. З появою 486 процесора, більшість комп'ютерів використовували модулі пам'яті без контролю парності.

Сьогодні практично всі комп'ютери використовують модулі без перевірки парності. Сучасні чіпи пам'яті можуть викликати випадкову помилку з імовірністю один раз на десять років або навіть рідше.

Контроль парності або корекція помилок (ECC (код виправлення помилок)) використовується в основному тільки в життєво важливих комп'ютерних системах, де неприпустима навіть одна помилка в кілька десятиліть.

Як працює перевірка помилок?

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

Так як приблизно 90% всіх нерегулярних помилок відбувається саме з одиночним розрядом, перевірки парності буває достатньо для більшості ситуацій.

На жаль необхідність у додаткових обчисленнях паритетного біта потребує певного процесорного часу, що трохи знижує продуктивність всієї системи.

Більш цікавим методом перевірки помилок роботи пам'яті є т.з. ECC чи корекція помилок або код виправлення помилок. Цей метод включає визначення помилки не тільки в одиночному розряді, а й двох, трьох і чотирьох розрядах. Крім того ECC може також виправляти помилку в одиночному розряді. ECC може бути реалізований або на модулі пам'яті (ECC - on - Simm, або EOS) або в чіпсеті. Однак модулі EOS зустрічаються вкрай рідко.

ECC грунтується на алгоритмі «хешінга», який працює одночасно з 8 байтами (64 біта), і розміщує результат у 8-ми розрядне ECC слово. Під час зчитування результат ECC слова порівнюється з розрахованим, подібно до того, як відбувається в методі перевірки парності. Основна відмінність полягає в тому, що в перевірці парності кожен біт пов'язаний з одним байтом, в той час як ECC слово пов'язана з усіма 8 байтами. Це означає, що розрядні значення для ECC не будуть тими ж, що й індивідуальні біти для перевірки парності для тих же восьми байтів, тому модулі ECC не можуть використовуватися в режимі парності (однак, паритетні модулі, можуть використовуватися в режимі ECC, як описано нижче ). Зверніть увагу, що це опис для ECC засноване на ширині пам'яті 64 біта. Якщо ECC реалізується на 486 процесорі (32-х розрядна шина), то це вимагає 7-ми бітного ECC слова.

Модулі з перевіркою парності проти ECC модулів.

Паритетні і ECC модулі можуть працювати практично на будь-який системній платі, яка не має підтримки parity / ECC. У цьому випадку контрольні біти просто ігноруються.

Модулі SIMM можуть бути з і без перевірки парності, а також з підтримкою ECC. DIMM модулі бувають тільки з або без ECC.

Паритетні SIMM можуть використовуватися на будь-який системній платі, що підтримує парність або ECC (за умови правильної реалізації BIOS).

ECC модулі можуть використовуватися на не паритетний і на ECC / non-ECC платах. Модуль ECC не може використовуватися в режимі перевірки парності. Причина цього є Схемотехнічна реалізація модуля ECC. Він не може встановлювати окремі біти, тому чіпсет не буде записувати правильні дані в ECC слово.