ECC-пам'ять
Пам'ять з кодом усунення помилок (англ. Error-correcting code memory , ECC-пам'ять ) є одним з видів зберігання комп'ютерних даних, які можуть виявити і усунути найбільш поширені види внутрішнього пошкодження даних.
ECC-пам'ять використовується в більшості комп'ютерів, на яких пошкодження даних не може бути допущено ні за яких обставин, наприклад, для наукових або фінансових обчислень. ECC підтримує пам'ять системи несприйнятливою до помилки в одному розряді: біти, які зчитуються з кожного слова завжди збігаються з бітами, які були записані в нього, навіть якщо один збережений біт , або більше, в деяких випадках, через різні причини були перевернуті в неправильний стан. Деякі типи пам'яті (без ECC) з підтримкою контролю парності дозволяють виявляти помилки , але не виправляти, в інших випадках помилки навіть не виявляються.
Рішення
Кілька варіантіів було розроблено для боротьби з небажаними змінами бітів :
- Immunity-aware programming
- RAM parity memory
- ECC-пам'ять
Ця проблема може бути усунена за допомогою DRAM модулів, які включають додаткові біти пам'яті і контролерів, які використовують ці біти. Ці додаткові біти використовуються для запису парності або для застосування коду корекції помилок (ECC). Парність дозволяє виявити всі однобітні помилки (насправді, будь-яке непарне число неправильних біт). Найбільш поширений код корекції помилок, SECDED код Хеммінга, дозволяє виправити однобітні помилки, і (у звичайній конфігурації, з додатковим бітом парності) виявити подвійні помилки.
Chipkill ECC є більш ефективною версією, яка також виправляє помилки декількох біт, включаючи втрату всього чипа пам'яті.