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

Що таке пам’ять ECC Registered (ECC RDIMM)?

«ECC» — це абревіатура англійською мовою Error-Correcting Code, що розшифровується як «Код виправлення помилок».

Цей тип оперативної пам’яті оснащений додатковою схемою, яка може виявляти та автоматично виправляти певні помилки в даних під час їх читання і запису. У ECC Registered реалізовано функціонал виправлення однобітових помилок (один перевернутий або «неправильний» біт серед багатьох у потоці даних), а багатобітові помилки якщо не виправляються одразу ж, то, принаймні, про них попереджається система, щоб вжити коригувальних дій. У звичайній пам’яті, не ECC Registered, ніякі таки помилки зазвичай не виявляються і не виправляються. З часом це призводить до накопичення помилок, що призводить до пошкоджених і неправильних обчислень, програмних збоїв і необхідності перезавантаження системи, що може бути або довгим процесом, або взагалі неможливим без переривання важливих обчислень, у тому числі, критичних.

Пам’ять ECC додає «контрольні біти» поряд із фактичними бітами даних у кожному модулі пам’яті. Коли контролер пам’яті отримує дані, він обчислює код, подібний до контрольної суми, порівнює його з контрольними бітами і, якщо виявляє розбіжність, виправляє однобітові помилки тут же на місці, не перериваючи виконання робочих завдань. Цей процес відбувається без участі програмного забезпечення. Тобто пам’ять ECC «самовідновлює» випадкові перемикання бітів, спричинені, наприклад:

  • електричним шумом;
  • випадковим попаданням високо заряджених часток космічного випромінювання;
  • старінням комірок пам’яті;
  • стрибками напруги.

«Реєстрованою» така пам’ять є через те, що модулі пам’яті містять реєстр (буфер) між комірками пам’яті та контролером пам’яті. Адреси та команди до мікросхем пам’яті проходять через буфер, який перезавантажує їх, замість того, щоб контролер безпосередньо керував усіма мікросхемами пам’яті. Чому це важливо? У багатомодульних системах сигнал стає складним. Контролер може мати певні труднощі з підтримкою чистоти сигналів на довгих трасах або при кількох модулях DIMM. Буферизуючи сигнали, ECC RDIMM зменшує електричне навантаження на контролер, покращує синхронізацію й дозволяє надійно розпізнавати більше модулів або більшу ємність на модуль. Так, потрібно відзначити, що буферизація додає невелику затримку у робочий процес (5-10%), але для багатьох професійних робочих навантажень це є вигідним компромісом задля підвищення стабільності, масштабованості та цілісності даних.

Ключові відмінності ECC Registered і пам’яті без ECC

Критерії

Пам’ять без ECC

ECC RDIMM

Призначення пам’яті

Для повсякденних задач

Для професійного використання: робота з складними обчисленнями, рендерінг графіки, інжиніринг, big data, ШІ тощо

Надійність

Звичайна, бо до неї не висуваються вимоги наднадійності

Висока надійність за прогнозованого терміну експлуатації

Швидкість роботи

На 5-10% більш швидка, ніж пам’ять ECC Registered

Через додаткові технологічні процеси, швидкість повільніша

Вартість

Рівень мас-маркету

У кілька разів дорожче за мас-маркет (окупність передбачається за рахунок підвищеної стабільності роботи)

Сумісність

Базові мас-маркетні збірки: робочі і домашні ПК, ноутбуки. Пам’ять ECC Registered не працюватиме на звичайних процесорах і материнських платах, якщо така підтримка не вказана виробником

Тільки висококласні збірки з топовими процесами і материнками, наприклад, платформи серверного класу, такі як Intel Xeon/AMD EPYC

Об’єм на 1 планку, Гб

Макс. 128

256-512

Стабільність роботи

Можливі зависання/ збої, бо переважна кількість перевернутих бітів ігнорується

Зависання/збої — рідкісне явище, бо більшість перевернутих бітів виправляється на місці

Чому ECC Registered так важлива у професійних середовищах

Сервери піддаються постійним, інтенсивним робочим навантаженням. Вони можуть робити:

  • рендерінг відео сцен і графіки;
  • тривалі обчислювальні симуляції;
  • навчання моделей штучного інтелекту;
  • обробку великих наборів даних;
  • підтримку критично важливих служб у режимі 24/7.

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

Висновок

Пам’ять ECC Registered має використовуватися там, де існують ультра-високі вимоги щодо надійності, цілісності даних та передбачуваної роботи під великими навантаженнями. Тобто, для систем, що відповідають за тривалі рендеринги, наукові обчислення, машинне навчання, сервери високої доступності або роботу критичної інфраструктури — це основна вимога. Відмова від ECC Registered у таких випадках може, звісно, заощадити гроші на початку, але при втраті часу, даних і uptime, буде витрачено куди більше грошей, тому ризикувати не варто.