Як ECC працює в пам'яті
Для пам'яті ECC використовує додаткову парність (або контрольні біти), доступну завдяки використанню додаткових компонентів DRAM на модулі, щоби перевірити точність кожного збереженого слова даних. Під час запису даних контролер пам'яті в процесорі генерує код виправлення помилок на основі бітового шаблону та зберігає його разом з вихідними даними.
Під час подальшого зчитування даних контролер перераховує код та порівнює його із збереженим значенням. Якщо коди збігаються, дані є чистими. Якщо виявлено помилку одного біта, контролер пам'яті автоматично виправляє її за допомогою бітів ECC.
Для належного функціонування ECC як процесор, так і материнська плата повинні підтримувати ECC-режим. Така скоординована підтримка дозволяє виявляти та виправляти помилки на всьому шляху пам'яті, забезпечуючи надійність даних. Важливо зазначити, що серверні платформи корпоративного класу зазвичай вимагають використання модулів пам'яті ECC-класу у вигляді регiстрових DIMM (RDIMM), DIMM із зниженим навантаженням (LRDIMM) або мультиплексних DIMM (MRDIMM).
У DDR5 ці типи модулів не сумісні з роз'ємами ECC або небуферизованими DIMM (UDIMM) без ECC, які зазвичай використовуються в стаціонарних ПК або робочих станціях базового рівня.
Модулі пам'яті з DRAM шириною x8 підтримують виявлення та виправлення однобітних помилок за допомогою ECC. У разі виявлення багатобітної помилки контролер пам'яті позначає її, таким чином система розуміє, що дані не є надійними. Ця функція «виправлення одинарної помилки, виявлення подвійної помилки» (SECDED) є стандартною для модулів DIMM серверного класу та є основою стабільної та цілісної роботи пам'яті в корпоративних системах.
Модулі пам'яті, побудовані з використанням DRAM шириною x4, підтримують виявлення та виправлення багатобітних помилок за допомогою ECC та є кращим варіантом для критично важливих серверів, які вимагають вищого рівня цілісності даних.
З появою DDR5 з'явився новий рівень цілісності даних в оперативній пам'яті, який називається On-Die ECC (ODECC) та забезпечує виявлення та виправлення однобітних помилок у кожному окремому компоненті DRAM. Це дозволило значно підвищити стабільність не тільки серверних систем, але й усіх систем, що використовують технологію пам'яті DDR5, незалежно від того, чи належав модуль до класу ECC.
Причини виникнення помилок пам'яті
Помилки пам'яті виникають тому, що комірки DRAM зберігають дані у вигляді крихітних електричних зарядів, що можуть зміщуватися або порушуватися під впливом електричних перешкод, коливань напруги або незначних змін у часі. Стрес і тепло також можуть спричиняти перевертання бітів, так само як і космічне фонове випромінювання, що призводить до м'яких помилок, котрі не викликають збою, але можуть непомітно пошкодити дані.
Зі зменшенням літографії напівпровідників пам'яті та збільшенням щільності також зростає ймовірність перевертання бітів, особливо у випадку серверів, які працююють під постійним навантаженням. Ці ризики зростають, тому ECC потрібна для запобігання поширенню незначних несправностей на програмний рівень.
М'які та жорсткі помилки бітів
М'які та жорсткі помилки виникають через різні механізми несправностей, а розуміння цих відмінностей є необхідним для оцінки того, чому ECC відіграє таку важливу роль у пам'яті серверного класу.
М'які помилки – це тимчасові перевертання бітів, спричинені такими зовнішніми факторами, як електричні перешкоди, стрибки напруги або фонове випромінювання. Вони не свідчать про пошкодження апаратного забезпечення, а ECC-пам'ять призначена для автоматичного виявлення та виправлення таких помилок до того, як вони вплинуть на роботу програм.
Натомість жорсткі помилки виникають через фізичні дефекти або погіршення якості самої DRAM. Ці помилки є постійними та зазвичай повторюються в тих самих місцях пам'яті. Хоча ECC може фіксувати ці проблеми та іноді обмежувати багатобітне пошкодження, жорсткі помилки зазвичай вимагають таких заходів технічного обслуговування, як реєстрація, ізоляція несправних діапазонів або заміна ураженого DIMM. Оскільки вони відображають реальне зношення обладнання, в корпоративному середовищі вони становлять проблему довгострокової надійності.
Вплив ECC-пам'яті на продуктивність корпоративних систем
Серверні навантаження створюють величезне навантаження на пам'ять: тривалі процеси, постійна паралельність та великі масиви даних у пам'яті значно підвищують ризики для цілісності даних. Одна-єдина помилка пам'яті в буфері бази даних, хості віртуальної машини або фінансових обчисленнях може призвести до збою або пошкодження транзакцій. Саме тому ECC-пам'ять є обов'язковою для всіх серверних систем.
Середовища, чутливі до цілісності даних:
- Кластери віртуалізації
- Платформи баз даних
- Фінансові та наукові обчислювальні середовища
- Будь-яка система, що вимагає надійності 24/7 та передбачуваного часу безвідмовної роботи
Функція ECC не має на меті зробити пам'ять «швидшою», вона робить всю платформу більш стабільною, що є надзвичайно важливим для бізнес-критичних систем.
RAM з ECC vs RAM без ECC
Хоча серверні системи вимагають використання RAM з ECC, інші сегменти центру обробки даних, такі як робочі станції, периферійні системи або маршрутизатори, можуть мати цю функцію в якості опції при використанні небуферованих модулів DIMM або SODIMM. Робочі станції та ноутбуки можуть підтримувати ECC за допомогою спеціальних процесорів та відповідних налаштувань в BIOS. Рішення про оснащення системи RAM ECC-класу слід приймати з урахуванням типу програм, які будуть використовуватися в системі.
Оскільки оперативна пам'ять без ECC не має відповідної функціональності та не може виявляти або виправляти помилки, вона не підходить для робочих навантажень, що вимагають великого обсягу пам'яті, є постійними або багатокористувацькими. Оскільки додаткова DRAM на модулі ECC-класу збільшує вартість, оперативна пам'ять без ECC більше підходить і є дешевшим варіантом для програм загального призначення на клієнтських ПК та ноутбуках, які не використовуються в режимі 24/7.
Ось чому розуміння відмінностей між типами пам'яті сервера та правильний вибір модуля для заданого навантаження є надзвичайно важливими для забезпечення сумісності та довгострокової стабільності системи.