DDR5 ECC у робочих станціях
Два роки тому Лiнус Торвальдс висловився про важливість пам’яті ECC та «погану політику» Intel, що зробила пам’ять з кодом виправлення помилок менш поширеною. На його думку, своєю сегментацією ринку та iгноруванням ECC Intel завдала шкоди всій галузі.
Що він мав на увазі?
До недавнього часу Intel зводила умовнi бар'єри між «професійними» та «побутовими» користувачами настiльних систем. Першим продавали процесори з підтримкою ECC (як Xeon E або Xeon W). Другим – процесори тієї ж архітектури, на тому самому ядрі, але з заблокованою пiдтримкою ECC (Core i5 / i7 / i9). Штучне розведення по сегментах «щоб уникати канібалізації ринкiв» (насправдi, заробляти бiльше на серверних продуктах) нічого крім роздратування не викликало. Посилила негативне ставлення до примусового розподiлу на сорти споживачiв ковiдна лихоманка з постачанням компонентiв. Замовники мiсяцями чекали на малотиражні сервернi процесори, тодi як з масовими було все гаразд - завдяки саме масовостi та широкій пропозиції.
Прийшов час DDR5
Поточне покоління синхронної динамічної оперативної пам’яті DDR5 радикально відрізняється від попередника DDR4 новими функціями для підвищеної продуктивності та надійнішої цілісності даних.
Cерверний ринок тiльки почав перехiд на DDR5, тодi як у настiльних системах DDR5 вже давно не новина. Якщо за часiв DDR4 у деяких серверах можна було використовувати або регiстрову, або небуферизовану пам’ять, то зараз шляхи RDIMM i UDIMM остаточно розійшлися: RDIMM – в сервери, UDIMM – у робочі станції.
RDIMM та UDIMM
Регiстровий DIMM має регістр, розміщений на модулi перед мікросхемами пам’ятi. Це посередник мiж DRAM і контролером пам’яті. Вiн буферизує адреси, командні рядки та тактуючі сигнали, тоді як дані потрапляють до DRAM безпосередньо з контролера. Те, що супроводжуючi інструкції надходять до регістра пам'яті, покращує цілісність сигналу та зменшує електричне навантаження на контролер пам’яті, дозволяючи системі стабiльно підтримувати більше модулів. Модулi RDIMM завжди підтримують перевiрки та виправлення помилок ECC.
UDIMM не має вбудованого буфера чи регiстру. Усі інструкції від контролера пам’яті надходять безпосередньо до DRAM. За відсутністю буфера адреси та керуючі сигнали додають електричне навантаження на контролер пам'яті. Таким чином, системи з UDIMM зможуть обробляти лише обмежену кількість модулів пам’ятi. Поширенi в настiльних системах модулі UDIMM не мають перевiрок парності (non-ECC). В професiйних робочих станцiях використовується пам'ять UDIMM ECC. Фізично пам’ять ECC відрізняється від пам’яті non-ECC додатковою мікросхемою для виявлення та виправлення помилок інших мікросхем пам’яті, що використовуються під дані.
Чому сервери більше не підтримують UDIMM ECC?
Процесори AMD EPYC Genoa та Intel Xeon Sapphire Rapids підтримують тільки RDIMM, не UDIMM. Основною причиною цього є те, що компоненти живлення тепер знаходяться на самих модулях DIMM.
Щоб впоратися з вищими тактовими частотами, яких прагне досягти DDR5, відбулось багато змін у підсистемі живлення. На сервернi модулi подається 12 В, у клієнтських системах 5 В. Це перетворюється на 1,1 В для DDR5 DIMM вбудованою мікросхемою керування живленням, або PMIC. Ранiше цим опiкувалась материнська плата, зараз – додатковi компоненти на модулях DIMM.
Фізичні ключі модулів RDIMM та UDIMM тепер різнi, щоб запобігти вставці неправильних модулів у систему та підпалу пам'яті (і в свою чергу відрізняються від розташування на модулях DDR4 - часiв, коли UDIMM і RDIMM були сумісні за контактами).
Два канали до одного DIMM
Ще однією важливою зміною DDR5 є нова архітектура каналу DIMM. Модулі DDR4 мають 72-розрядну шину пiд 64 бітів даних та вісім бітів ECC. З DDR5 кожен DIMM матиме два канали. Кожен із цих каналів матиме 40-бітну ширину: 32 біти даних із вісьмома бітами ECC. Хоча ширина даних однакова (загалом 64 біти), наявність двох менших незалежних каналів покращує ефективність доступу до пам’яті. Зросла частка розрядів, що відводяться під корекцiю помилок: вiд 8 з 72 (11%) до 16 з 80 (20%). Це безумовно посприяє достовірності даних в пам'яті серверів та професійних робочих станцій.
On-die ECC
В DDR5 з’явилася нова функція On-die ECC, розроблена для виправлення бітових помилок у мікросхемі DRAM. Зi збільшенням щільності чіпів DRAM зростає ймовірність витоку даних. Вбудована ECC зменшує цей ризик, виправляючи помилки в мікросхемі, підвищуючи надійність і знижуючи кількість дефектів. Ця технологія не може виправляти помилки за межами чіпа або ті, що виникають на шині між модулем і контролером пам’яті, розміщеним у ЦП. Тобто, On-die ECC доповнює, але не замінює стандартну корекцiю помилок пам’ятi ECC, так званий Side-band ECC.
Процесори з підтримкою ECC для серверів і робочих станцій мicтять код, який може виправляти одно- або багатобітові помилки на льоту. Для цього на модулях пам’ятi ECC є додаткові мiкросхеми, на материнській платі розведенi додаткові дорiжки до пiдсистеми пам’ятI, а BIOS має все це пiдтримувати. Корекцiя помилок ECC - справа трьох: пам’ятi, процесора, плати.
Всi сервернi процесори та пам’ять RDIMM пiдтримують ECC. Інша рiч - настільні системи з UDIMM. Потрiбно узгоджене тріо: пам’ять DDR5 UDIMM ECC, процесор з пiдтримкой ECC та вiдповiдна плата.
Пам’ять DDR5 UDIMM ECC
Вперше Intel вирішила не відключати підтримку ECC у споживчих моделей процесорів в Intel Core 12-го покоління (Alder Lake). Продовжила в 13-му поколiннi (Raptor Lake). Однак для доступу до цієї функції необхідно використовувати материнську плату із чіпсетом Intel W680. Цей набір логіки призначений для робочих станцій з UDIMM ECC або non-ECC. На ньому є плати як під DDR4, так i DDR5 - на вибiр користувача.
На відміну від Intel, AMD ніколи не блокувала ECC у своїх процесорах Ryzen та Ryzen Threadripper (хоча i не афiшувала цього). Це розширює свободу користувача вибирати, що і як йому робити. Усі модулі ECC будуть працювати без ECC, якщо ця функціональність не підтримується материнською платою та ЦП, проте ви не можете чарівним чином створити додатковий чіп парності для плат та ЦП, які підтримують.
Процесори AMD Ryzen 7000 підтримують DDR5 UDIMM ECC. Серед материнських плат на сокетi AM5, здебільшого під DDR5 UDIM non-ECC, є i такі, що офіційно підтримують i ECC. Користувач обирає функціональне рішення відповідно до своїх додатків. Для зниження ризику помилок пам'яті та збiльшення стабiльностi платформи обере з ECC.
Одним із недооцінених вигодонабувачів ECC є оверклокери. Код виправлення помилок визначає, коли поганий розгін починає спрацьовувати, корегуючи досліди користувача. Вiн побачить стелю можливостей модулей пам’ятi до того, як почнуться сині екрани та аварії.
Контроль On-die ECC, що з'явився в DDR5, певною мірою сприяє цілісності даних, але нічого не робить для цілісності даних при передачі. Пiдтримка ECC по всьому тракту даних («справа трьох») стає пріоритетом в робочих станцiях.
Процесори та плати з підтримкою ECC
Два кандидати в робочі станції на DDR5 UDIMM ECC - це Intel Core 12th/13th Gen (Alder Lake / Raptor Lake) або AMD Ryzen 7000.
Необхідна умова підтримки ECC для плат на процесорах Intel - чіпсет W680. Приклад такої – ASUS Pro WS W680-ACE IPMI
Про те, що плата призначена під критичні програми свiдчить, крім підтримки DDR5 UDIMM ECC, комплектування карткою IPMI для віддаленого моніторингу робочих параметрів станції, зі своїм мережним портом та відеовиходом.
Флагман плат ASUS пiд AMD Ryzen ROG CROSSHAIR X670E EXTREME виглядає не менш переконливо:
За завітами Лінуса
Підтримка коду корекції помилок пам'яті з боку процесора-плати-пам'яті не є примусом користувача. Той може, як і раніше, обирати материнську плату без підтримки ECC та ставити в неї звичайну пам'ять. Але, як заповідав великий Лiнус, аргументи проти пам’ятi з виправленням помилок – «повне смiття», а економiя власниками професійних робочих станцій на затратах виходить боком.