Faust2011 schrieb:
sind zusätzlichen Bit(s) für die Fehlererkennung und Korrektur (das sind übrigens zwei verschiedene paar Stiefel! -
Ja, die einfache Parity konnte nur Singlebitfehler erkennen, aber die Fehlerkennung bringt viel weniger als dies auch Beheben zu können, denn man kann bei nicht korrigierbaren Fehler allenfalls mit einer Kernel Panik reagieren um keine falschen Daten weiterzureichen.
Faust2011 schrieb:
Aber ein Client dessen (also die CPU) hat damit nichts zu tun. Letztlich interessiert (und adressiert) eine CPU nur die (Nutz)Daten, aber nicht die Parity-Infos.
Das ist falsch, die DRAM selbst erkennen und korrigieren keine Fehler (außer der CRC zur Erkennung von Übertragungsfehlern die mit DDR4 eingeführt wurde), die ECC erfolgt immer im RAM Controller, also in der CPU und nicht im DRAM selbst. Damit weiterhin die volle Breite an Nutzdaten hat, braucht man dazu mehr Bits, denn Fehlererkennung (und -korrektur) braucht immer Redundanz, also hat man eben pro 8 Datenbits noch jeweils ein neuntes und somit bei den normalen x86er Plattformen 72 Bit pro Channel, bei 64 Datenbits. Bisher jedenfalls, bei
DDR5 ECC RAM wird es (auch?) 80 Bit breite Riegel geben, die dann also statt pro 64 Bit Daten 16 statt 8 Bit zusätzlich für die ECC bieten und bei RYZEN 3000 wird es gerüchteweise auch eine ECC RAM Funktion ohne ECC RAM Riegel geben. Dies kann nur funktionieren, wenn man von den 64 Bit dann z.B. nur 56 Bit für die Daten nutzt, dann hätte man eben bei 32GB installiertem RAM nur 28GB nutzbar und entsprechend auch nur 7/8 der Bandbreite, da ja dann 1/8 der übertragenen Daten nur ECC und keine Nutzdaten wären.
Die ECC Funktion ist also gerade im RAM Controller und das RAM hat damit nichts zu tun, außer eben die zusätzlichen Bits für die zusätzlichen ECC Informationen (z.B. Hamming Codes) zu bieten. Es bringt daher auch nichts, wenn man ECC RAM Riegel in ein System steckt, welches dies nicht unterstützt, denn dann hängen die zusätzlichen Bits nur nutzlos in der Luft. Da der RAM Controller heutzutage in den CPUs steckt, muss man also neben den ECC RAM Riegeln auch ein Board und eine CPU mit ECC RAM Unterstützung haben, damit die ECC Funktion auch vorhanden ist.
Faust2011 schrieb:
Aber wir driften ab in Richtung Off-topic...
Ja, aber dem einen oder anderen hilft das ja auch und wie gesagt, sollen ja gerüchteweise die RYZEN 3000, um die es in der News ja auch geht, eine Neuheit bzgl. einer ECC RAM Funkion ohne ECC RAM Riegel bringen. Dies und die Tatsache das man bei DDR5 RAM statt 9 Bit pro Byte nun auf 10 Bit geht um eine noch stärkere ECC zu ermöglichen, deutet für mich darauf, dass RAM Fehler offenbar immer öfter ein Problem werden und man deswegen gegen verstärkt Maßnahmen gegen RAM Fehler ergreift.