Člověk si řekne, že On-Die-ECC je takové "Must-have" pro DDR5, ale....pak najdeš moduly, které nemají ani to pitomé On-Die-ECC :-D
Nedávno jsem potřeboval SODIMM DDR5 paměti alespoň s On-Die-ECC a nějakou dobu jsem to přebíral, nehledě na to, že se přítomnost těžko On-Die-ECC ověřuje... dmesg | grep -i EDAC
se na tom systému tvářilo, že o ničem neví...
Ideální je samozřejmě použít DDR5 SODIMM moduly se skutečným ECC a systém, který to ECC umí....a to je těžší sehnat...
Nejprve rekapitulace:
ECC se dneska evidentně používá na více "vrstvách" či pozicích v RAM subsystému (vynechme tentokrát diskový subsystém):
1) klasické ECC RAM.
Non-ECC DIMM/SODIMM má bajt široký 8 bitů, a žádná data navíc neukládá.
Paritní a později ECC modul přidává devátý bit na každý bajt, ze kterého řadič RAM dokáže poznat chybu (prostá parita), případně řadič RAM dokáže chybu opravit (potřebuje víc bitů redundance = řádek RAM je ve skutečnosti delší než 1 bajt).
Klasickou ECC RAM poznáte nejsnáze tak, že DIMM/SODIMM modul má počet velkých švábů dělitelný nikoli osmi, ale devíti. Protože na každých osm čipů je tam jeden paritní navíc.
Přesněji řečeno, v případě DDR5 jsou navíc dva: dva bity na bajt, dva čipy na sadu osmi užitečných. Tzn. počet čipů je dělitelný nikoli osmi, nikoli devíti, ale deseti.
Pinout ECC a non-ECC pamětí je v zásadě shodný, pouze non-ECC paměť nevyužívá "dodatečné paritní" signály.
Bavíme se zde každopádně o komunikační cestě mezi řadičem RAM a DIMM/SODIMM modulem, o počtu datových bitů na každý "vnější řádek" či přenosový takt této paměťové sběrnice na motherboardu.
2) InBand ECC je nějaké schéma, jak nad non-ECC RAMkou (počet čipů a vodičů) provozovat ECC v režii řadiče RAM. Tzn. modul teoreticky můžete použít jaký chcete.
3) on-die ECC = něco co se děje uvnitř DRAM čipu.
Slýchám tyhle zvěsti už delší dobu, nejpozději od DDR4, že interní organizace čipu je ve skutečnosti složitější, že jsou tam každopádně v křemíku nějaké ECC bity navíc, což "cílový řadič" uvnitř RAM čipu navenek cudně skrývá. Vnější organizace je stále hezky binární a pravoúhlá, přístupová doba se nemění, ale realita dovnitř směrem k fyzickému křemíku je dnes už složitější. Protože bez low-level ECC by to při dnešní hustotě litografie prostě už nešlo.
O tomhle řadič RAM v north bridgi (dnes on-die v CPU) nemá tušení a nezajímá ho to. Proto mě nepřekvapuje, že se o tom člověk běžně nedočte v datasheetech zejména modulů, ale možná i čipů, "protože to dělá každej, a navenek se tím moc nechlubí".
Tzn. "to pravé oříškové" je stále ECC se širší paměťovou cestou (devíti až desetibitovou) mezi (SO)DIMM modulem a "procesorem" (jeho řadičem RAM). V počítačových platformách spíše konzumních, a spíše levných, o kterých se tu bavíme, se ECC moc nenosí. Procesory to běžně neumí, takže ani není příliš poptávka po RAM modulech takto vybavených. Proto je taky člověk zas tak často nevidí na každém rohu u zeleného plyšáka apod.
Moduly ECC unbuffered jsou tradičně často k vidění v "industrial/embedded" nasazení - třeba v dražších routerech nebo hardwarových RAID řadičích (těch které mají paměť ve slotu). Cisco a konkurence, LSI (MegaRAID), Adaptec, Areca, Accusys, Infortrend a další. Potažmo paměťové moduly s ECC jako doplňky prodává přednostně výrobce těchto hraček svým zákazníkům. Procesory jsou převážně ne-x86, tzn. s architekturou ARM, PowerPC, snad i MIPS (historicky i960).
Pokud se týče x86 procesorů a konkrétně rodiny ATOM, tradičně jsou podporou ECC vybaveny některé modely procesorů Intel, určené pro industrial/embedded trh. Jedná se z každé generace ATOMů o některé "produktové varianty" - viz produktový web ark.intel.com, nebo jak se to dneska jmenuje. Následně se podpora ECC vyskytuje na motherboardech takto vybavených. Část z nich je ve formátu Mini-ITX, případně firemních proprietárních (ale stále je to v zásadě PC s BIOSem pro všeobecné použití). Nebavme se tu o situacích, kdy si dostatečně velká firma navrhne motherboard pro své interní použití a deska nemá ani otevřený BIOS.
Moduly s ECC se prodávají převážně "od výrobce modulů přímo výrobci užívajícího hardwaru". Viděl jsem je například u výrobce Unigen, který je v tomto segmentu zřejmě hojně zastoupen - s minimálkou ve stovkách kusů.
Disclaimer o střetu zájmů: níže zmíněná značka Innodisk mě částečně živí - omluva za reklamu.
Pro trh "drobných průmyslových zákazníků a malých integrátorů" existují na Taiwanu výrobci, kteří drží dlouhou produktovou životnost, u populárních položek i skromnou skladovou zásobu hotové produkce, k ostatnímu mají plošáky, součástky a osazují i malé počty kusů. Prakticky se dají koupit jednotlivé kusy s dodací lhůtou buď obratem, nebo řekněme 2-3 týdny EXW. Bývá k dispozici jak "konzumní" tak průmyslový rozsah teplot.
Pokud se bavíme o modulech DDR5 ECC SODIMM, na aktuálním webu výrobce Innodisk (opět ho předělali, ach jo) bych zmínil následující dva odkazy:
https://www.innodisk.com/en/products/dram-modules/ddr5/ddr5-ecc-sodimmhttps://www.innodisk.com/en/products/dram-modules/ddr5/ddr5-wide-temp-ecc-sodimm