Was ist ECC-Speicher? Was ist ECC-RAM? Gepufferter RAM – was ist das? ECC-fähiger Speicher

Auf die Frage Erklären Sie, was "ECC-Unterstützung" im RAM ist, die vom Autor gegeben wurde Aljonka Die beste Antwort ist es ist eine Fehlerkorrekturfunktion. ein solcher Speicher wird auf Servern platziert, da es für sie unmöglich ist, aufgrund von Fehlern zu verzögern, abzuschalten oder zu überlasten. Für einen Heimcomputer ist dies keine notwendige Sache, obwohl es nützlich ist. Wenn Sie sich entscheiden, selbst einen zu installieren, stellen Sie sicher, dass Ihr Motherboard diese Art von RAM mit ECC unterstützt.
Quelle: ku

Antwort von Regengepeitscht[Guru]
ECC (Error Correct Code) - Erkennung und Korrektur von Fehlern (andere Interpretationen der gleichen Abkürzung sind möglich) - ein Algorithmus, der die "Paritätsprüfung" ersetzt hat. Im Gegensatz zu letzterem ist jedes Bit in mehr als einer Prüfsumme enthalten, wodurch im Falle eines Fehlers in einem Bit die Fehleradresse wiederhergestellt und korrigiert werden kann. In der Regel werden auch Fehler in zwei Bits erkannt, jedoch nicht korrigiert. Um diese Fähigkeiten zu implementieren, wird ein zusätzlicher Speicherchip auf dem Modul installiert und es wird 72-Bit, im Gegensatz zu den 64 Datenbits eines herkömmlichen Moduls. ECC wird von allen modernen Motherboards unterstützt, die für Serverlösungen entwickelt wurden, sowie von einigen "allgemeinen" Chipsätzen. Einige Speichertypen (Registered, Full Buffered) sind nur in der ECC-Version verfügbar. Es sollte beachtet werden, dass ECC kein Allheilmittel für defekten Speicher ist und verwendet wird, um zufällige Fehler zu korrigieren, wodurch das Risiko von Computerfehlfunktionen durch versehentliche Änderungen des Inhalts von Speicherzellen verringert wird, die durch externe Faktoren wie Hintergrundstrahlung verursacht werden.
Registrierte Speichermodule werden für die Verwendung in Systemen empfohlen, die mindestens 4 GB RAM benötigen (oder unterstützen). Sie sind immer 72 Bit groß, also ECC-Module, und enthalten zusätzliche Registerbausteine ​​zur partiellen Pufferung.
PLL-Phase Locked Loop - Frequenz- und Signalphasen-Autotuning-Schaltung, dient zur Reduzierung der elektrischen Belastung des Speichercontrollers und Erhöhung der Stabilität bei Verwendung einer großen Anzahl von Speicherchips, wird in allen gepufferten Speichermodulen verwendet.
Gepuffert - gepuffertes Modul. Aufgrund der hohen elektrischen Gesamtkapazität heutiger Speichermodule führen deren lange "Lade"-Zeiten zu zeitraubenden Schreibvorgängen. Um dies zu vermeiden, sind einige Module (meist 168-Pin-DIMMs) mit einem speziellen Chip (Puffer) ausgestattet, der eingehende Daten relativ schnell speichert, wodurch der Controller entlastet wird. Gepufferte DIMMs sind im Allgemeinen nicht mit ungepufferten kompatibel. Teilweise gepufferte Module werden auch als „Registered“-Module und vollständig gepufferte Module als „FB-DIMMs“ bezeichnet. In diesem Fall bezieht sich "ungepuffert" auf gewöhnliche Speichermodule ohne Puffermöglichkeiten.
Parität - Parität, Module mit Parität, auch Parität. Ein ziemlich altes Prinzip der Datenintegritätsprüfung. Der Kern des Verfahrens besteht darin, dass für das Datenbyte beim Aufzeichnen eine Prüfsumme berechnet wird, die als spezielles Paritätsbit in einem separaten Chip gespeichert wird. Beim Lesen von Daten wird die Prüfsumme neu berechnet und mit dem Paritätsbit verglichen. Bei Übereinstimmung gelten die Daten als authentisch, andernfalls wird eine Paritätsfehlermeldung generiert (was in der Regel zu einem Systemstopp führt). Zu den offensichtlichen Nachteilen des Verfahrens gehören die hohen Speicherkosten, die zum Speichern zusätzlicher Paritätsbits erforderlich sind, die Anfälligkeit für Doppelfehler (sowie falsche positive Ergebnisse im Falle eines Fehlers im Paritätsbit), das Herunterfahren des Systems selbst bei einem geringfügigen Fehler (z. in einem Videoframe). Derzeit nicht anwendbar.
SPD - ein Chip auf einem DIMM-Speichermodul, das alle Daten darüber enthält (insbesondere Informationen über die Geschwindigkeit), die zur Bereitstellung erforderlich sind normale Operation. Diese Daten werden beim Selbsttest des Computers ausgelesen, lange bevor das Betriebssystem geladen wird, und ermöglichen Ihnen, die Speicherzugriffseinstellungen zu konfigurieren, selbst wenn verschiedene Speichermodule gleichzeitig im System vorhanden sind. Einige Motherboards weigern sich, mit Modulen zu arbeiten, die keinen SPD-Chip haben, aber solche Module sind jetzt sehr selten und sind hauptsächlich PC-66-Module.


Antwort von Mowgley[Guru]
Speicherprüfung auf Fehler

So wie ich es verstehe, sind seine Argumente wie folgt:

  1. Google hat ECC nicht verwendet, als sie 1999 ihre Server bauten.
  2. Die meisten RAM-Fehler sind systematische Fehler, keine zufälligen.
  3. RAM-Fehler sind selten, weil Hardware verbessert.
  4. Wenn ECC-Speicher wirklich wichtig wäre, dann würde er überall verwendet werden, nicht nur in Servern. Für diese Art von optionalem Material zu bezahlen, ist eindeutig zu unseriös.
Gehen wir diese Argumente nacheinander durch:

1. Google hat ECC 1999 nicht verwendet

Wenn Sie etwas tun, nur weil Google es einmal getan hat, versuchen Sie Folgendes:

A. Platzieren Sie Ihre Server in Versandbehältern.

Heute schreiben sie immer noch Artikel, dass dies eine großartige Idee ist, obwohl Google gerade ein Experiment durchgeführt hat, das als Fehlschlag angesehen wurde. Es stellt sich heraus, dass selbst Googles Experimente nicht immer aufgehen. Tatsächlich bedeutet ihre notorische Vorliebe für „Durchbruchsprojekte“ („Loonshots“), dass sie mehr gescheiterte Experimente haben als die meisten Unternehmen. Meiner Meinung nach ist dies ein erheblicher Wettbewerbsvorteil für sie. Machen Sie diesen Vorteil nicht größer, als er ist, indem Sie fehlgeschlagene Experimente blind kopieren.

B. Feuer in Ihren eigenen Rechenzentren legen.

Ein Teil von Atwoods Beitrag diskutiert, wie erstaunlich diese Server waren:

Einige werfen vielleicht einen Blick auf diese frühen Google-Server und sehen die Unprofessionalität in Bezug auf die Brandgefahr. Nicht ich. Ich sehe hier ein visionäres Verständnis dafür, wie kostengünstige Standardhardware das moderne Internet prägen wird.

Der letzte Teil des Gesagten ist wahr. Aber im ersten Teil ist etwas Wahres dran. Als Google anfing, eigene Boards zu entwerfen, hatte eine Generation von ihnen ein "Wachstumsproblem" ( ), das eine Anzahl von Bränden ungleich Null verursachte.

Übrigens, wenn Sie zu Jeffs Post gehen und sich das Foto ansehen, auf das im Zitat verwiesen wird, werden Sie feststellen, dass sich auf den Platinen viele Überbrückungskabel befinden. Dies verursachte Probleme und wurde in der nächsten Hardwaregeneration behoben. Auch sieht man eine etwas schlampige Verkabelung, die zusätzlich Probleme bereitete und auch schnell behoben wurde. Es gab noch andere Probleme, aber ich überlasse sie dem Leser als Übung.

C. Erstellen Sie Server, die Ihre Mitarbeiter verletzen

Die scharfen Kanten einer Generation von Google-Servern haben ihnen den Ruf eingebracht, „Rasierklingen und Hass“ zu sein.

D. Erstellen Sie Ihr eigenes Wetter in Ihren Rechenzentren

Nach Gesprächen mit den Mitarbeitern vieler großer Technologieunternehmen scheint es, dass die meisten Unternehmen so klimatisiert waren, dass sich Wolken oder Nebel in ihren Rechenzentren bildeten. Man könnte es Googles kalkulierten und hinterhältigen Plan nennen, das Wetter von Seattle zu replizieren, um Microsoft-Mitarbeiter abzuwerben. Alternativ könnte es ein Plan sein, buchstäblich „Cloud Computing“ zu schaffen. Oder vielleicht nicht.

Bitte beachten Sie, dass alles, was von Google angegeben wurde, ausprobiert und dann geändert wurde. Fehler zu machen und sie dann zu beheben, ist in jeder erfolgreichen Entwicklungsorganisation üblich. Wenn Sie die Ingenieurpraxis vergöttern, dann sollten Sie zumindest an der modernen Praxis festhalten und nicht an dem, was 1999 getan wurde.

Als Google 1999 Nicht-ECC-Server verwendete, zeigten sie eine Reihe von Symptomen, die sich schließlich als Speicherbeschädigung herausstellten. Einschließlich eines Suchindex, der praktisch zufällige Ergebnisse in Abfragen zurückgab. Der tatsächliche Fehlermodus hier ist aufschlussreich. Ich höre oft, dass ECC auf diesen Maschinen ignoriert werden kann, weil Fehler in einzelnen Ergebnissen akzeptabel sind. Aber selbst wenn Sie zufällige Fehler für akzeptabel halten, bedeutet deren Ignorieren die Gefahr einer vollständigen Datenverfälschung, es sei denn, es wird sorgfältig analysiert, dass ein Fehler ein Ergebnis nur geringfügig verfälschen kann.

In durchgeführten Studien am Dateisysteme ah, es hat sich immer wieder gezeigt, dass es trotz heroischer Versuche, Systeme zu schaffen, die gegen einen einzigen Fehler resistent sind, äußerst schwierig ist, dies zu tun. Grundsätzlich kann jedes stark getestete Dateisystem aufgrund eines einzelnen Fehlers (). Ich werde Dateisystementwickler nicht angreifen. Sie sind bei dieser Art von Analyse besser als 99,9 % der Programmierer. Es hat sich nur immer wieder gezeigt, dass das Problem so schwierig ist, dass die Leute es nicht vernünftig diskutieren können, und ein automatisiertes Tool für eine solche Analyse ist noch weit davon entfernt, ein einfacher Knopfdruck zu sein. In ihrem Warehouse Computer Handbook diskutiert Google die Fehlererkennung und -korrektur, und ECC-Speicher gilt als die beste Option, wenn es offensichtlich ist, dass Hardware-Fehlerkorrektur ( ) verwendet werden muss.

Google verfügt über eine hervorragende Infrastruktur. Nach dem, was ich über die Infrastruktur anderer großer Technologieunternehmen gehört habe, scheint Google das beste der Welt zu sein. Aber das bedeutet nicht, dass Sie alles kopieren sollten, was sie tun. Auch wenn nur ihre guten Ideen berücksichtigt werden, macht es für die meisten Unternehmen keinen Sinn, sie zu kopieren. Sie haben einen Ersatz für den Linux-Job-Hook-Scheduler geschaffen, der sowohl Hardware-Laufzeitinformationen als auch statische Ablaufverfolgungen verwendet, damit sie die Vorteile der neuen Hardware in Intel-Serverprozessoren nutzen können, was eine dynamische Cache-Partitionierung über Kerne hinweg ermöglicht. Wenn Sie dies auf ihrer gesamten Hardware verwenden, spart Google in einer Woche mehr Geld, als Stack Exchange in seiner gesamten Geschichte für alle seine Maschinen ausgegeben hat. Bedeutet das, dass Sie Google kopieren müssen? Nein, es sei denn, Sie wurden bereits mit Manna vom Himmel getroffen, z. B. wenn Sie Ihre Kerninfrastruktur in hochoptimiertem C++ anstatt in Java oder (Gott bewahre) Ruby geschrieben haben. Und Tatsache ist, dass es für die überwiegende Mehrheit der Unternehmen eine absolut vernünftige Entscheidung ist, Programme in einer Sprache zu schreiben, die eine 20-fache Verringerung der Produktivität mit sich bringt.

2. Die meisten RAM-Fehler sind systematische Fehler

Das Argument gegen ECC gibt den folgenden Abschnitt der DRAM-Fehlerstudie wieder (Hervorhebung hinzugefügt von Jeff):
Unsere Studie hat mehrere Hauptergebnisse. Erstens haben wir herausgefunden, dass etwa 70 % der DRAM-Ausfälle wiederholte (z. B. permanente) Ausfälle sind, während nur 30 % intermittierende (intermittierende) Ausfälle sind. Zweitens haben wir festgestellt, dass große Multibit-Fehler, wie z. B. Fehler, die eine ganze Zeile, Spalte oder einen Block betreffen, über 40 % aller DRAM-Fehler ausmachen. Drittens haben wir festgestellt, dass fast 5 % der DRAM-Ausfälle Schaltkreise auf Platinenebene betreffen, wie z. B. Daten- (DQ) oder Gate- (DQS) Leitungen. Schließlich fanden wir heraus, dass die Chipkill-Funktion die Häufigkeit von Systemausfällen, die durch DRAM-Ausfälle verursacht wurden, um den Faktor 36 reduzierte.

Das Zitat mutet etwas ironisch an, denn es scheint kein Argument gegen ECC zu sein, sondern ein Argument für Chipkill – eine bestimmte ECC-Klasse. Abgesehen davon zeigt Jeffs Beitrag, dass systematische Fehler doppelt so häufig sind wie zufällige Fehler. Der Post sagt dann, dass sie Memtest auf ihren Maschinen ausführen, wenn systematische Fehler auftreten.

Erstens ist das Verhältnis von 2:1 nicht groß genug, um zufällige Fehler einfach zu ignorieren. Zweitens impliziert der Beitrag Jeffs Überzeugung, dass systematische Fehler im Wesentlichen unveränderlich sind und nicht nach einer Weile auftauchen können. Das ist nicht wahr. Elektronik verschleißt genauso wie mechanische Geräte. Die Mechanismen sind unterschiedlich, aber die Wirkungen sind ähnlich. Wenn wir die Chip-Zuverlässigkeitsanalyse mit anderen Arten der Zuverlässigkeitsanalyse vergleichen, können wir in der Tat sehen, dass sie häufig dieselben Familien von Verteilungen für die Fehlermodellierung verwenden. Drittens impliziert Jeffs Argumentation, dass ECC nicht helfen kann, Fehler zu erkennen oder zu beheben, was nicht nur falsch ist, sondern dem Zitat direkt widerspricht.

Wie oft werden Sie Memtest auf Ihren Computern ausführen, um diese Systemfehler zu erkennen, und wie viel Datenverlust sind Sie bereit zu ertragen? Einer der Hauptzwecke von ECC ist nicht das Korrigieren von Fehlern, sondern das Signalisieren von Fehlern, sodass Hardware ersetzt werden kann, bevor eine „stille Beschädigung“ auftritt. Wer würde zustimmen, jeden Tag alles auf der Maschine zu schließen, um Memtest auszuführen? Es wäre viel teurer, als nur ECC-Speicher zu kaufen. Und selbst wenn Sie mich überzeugen könnten, einen Speichertest durchzuführen, würde memtest nicht so viele Fehler finden wie ECC.

Als ich für ein Unternehmen mit einer Flotte von etwa tausend Maschinen arbeitete, stellten wir fest, dass wir seltsame Fehler bei der Datenintegritätsprüfung hatten, und nach etwa sechs Monaten stellten wir fest, dass Fehler auf einigen Maschinen wahrscheinlicher waren als auf anderen. Diese Ausfälle waren ziemlich selten (im Durchschnitt vielleicht ein paar Mal pro Woche), daher dauerte es lange, Informationen zu sammeln und zu verstehen, was passierte. Ohne die Ursache zu kennen, war es auch nicht trivial, die Protokolle zu analysieren, um festzustellen, ob die Fehler durch einzelne Bit-Flips (mit hoher Wahrscheinlichkeit) verursacht wurden. Wir hatten das Glück, dass als Nebeneffekt des von uns verwendeten Prozesses die Prüfsummen in einem separaten Prozess auf einem anderen Computer zu unterschiedlichen Zeiten berechnet wurden, sodass ein Fehler das Ergebnis nicht verfälschen und diese Verfälschung auf die Prüfsumme übertragen konnte.

Wenn Sie nur versuchen, sich mit In-Memory-Prüfsummen zu schützen, besteht eine gute Chance, dass Sie eine Prüfsummenoperation für bereits beschädigte Daten durchführen und die korrekte Prüfsumme der fehlerhaften Daten erhalten, es sei denn, Sie führen einige wirklich ausgefallene Berechnungen durch die ihre eigenen Prüfsummen geben. Und wenn Sie es mit der Fehlerkorrektur ernst meinen, verwenden Sie wahrscheinlich immer noch ECC.

Jedenfalls stellten wir nach Abschluss der Analyse fest, dass memtest keine Probleme feststellen konnte, aber der Austausch des Arbeitsspeichers auf schlechten Maschinen führte zu einer Verringerung der Fehlerrate um ein bis zwei Größenordnungen. Die meisten Dienste haben nicht die Art von Prüfsummen, die wir hatten; Diese Dienste schreiben beschädigte Daten einfach unbemerkt in den dauerhaften Speicher und sehen das Problem nicht, bis sich der Client beschwert.

3. Durch die Weiterentwicklung der Hardware sind Fehler sehr selten geworden.

Die Daten in der Post reichen für eine solche Aussage nicht aus. Beachten Sie, dass RAM-Ausfälle mit steigender und weiterhin exponentiell steigender RAM-Auslastung mit einer größeren exponentiellen Rate abnehmen müssen, um die Häufigkeit von Datenbeschädigungen tatsächlich zu verringern. Da die Chips immer kleiner werden, werden auch die Zellen kleiner, wodurch die im zweiten Punkt diskutierten Verschleißprobleme relevanter werden. Beispielsweise kann ein DRAM-Kondensator mit der 20-nm-Technologie ungefähr 50 Elektronen ansammeln, und diese Zahl wird für die nächste DRAM-Generation geringer sein, während sie weiter abnimmt.

Noch ein Hinweis: Wenn Sie für ECC bezahlen, zahlen Sie nicht nur für ECC-Speicher, sondern für Teile (Prozessoren, Platinen), die eine höhere Qualität aufweisen. Dies lässt sich leicht an den Ausfallraten von Laufwerken ablesen, und ich habe gehört, dass viele Leute dies bei ihren persönlichen Beobachtungen bemerkt haben.

Um öffentlich zugängliche Forschungsergebnisse zu zitieren, veröffentlichte die Gruppe von Andrea und Ramsey, soweit ich mich erinnere, vor einigen Jahren das SIGMETRICS-Papier, das zeigte, dass ein SATA-Laufwerk mit viermal höherer Wahrscheinlichkeit beim Lesen fehlschlägt als ein SCSI-Laufwerk und mit zehnmal höherer Wahrscheinlichkeit versteckte Datenkorruption haben. . Dieses Verhältnis wurde auch bei Verwendung von Discs des gleichen Herstellers beibehalten. Es gibt keinen besonderen Grund zu der Annahme, dass die SCSI-Schnittstelle zuverlässiger sein sollte als die SATA-Schnittstelle, aber es geht nicht um die Schnittstelle. Wir sprechen über den Kauf von hochzuverlässigen Serverkomponenten im Vergleich zu Clientkomponenten. Vielleicht sind Sie nicht besonders an der Zuverlässigkeit der Festplatte interessiert, weil Sie alles auf den Prüfsummen haben und Schäden leicht zu finden sind, aber es gibt einige Arten von Verstößen, die schwieriger zu erkennen sind.

4. Wenn ECC-Speicher wirklich wichtig wäre, dann würde er überall verwendet werden, nicht nur in Servern.

Um dieses Argument leicht zu paraphrasieren, können wir sagen: "Wenn diese Eigenschaft für Server wirklich wichtig wäre, dann würde sie auch bei Nicht-Servern verwendet werden." Sie können dieses Argument auf ziemlich viele Serverhardware anwenden. Tatsächlich ist dies eines der frustrierendsten Probleme, mit denen große Cloud-Anbieter konfrontiert sind.

Sie haben genug Einfluss, um die meisten Komponenten zum richtigen Preis zu bekommen. Verhandlungen funktionieren jedoch nur dort, wo es mehr als einen tragfähigen Lieferanten gibt.

Einer der wenigen Bereiche, in denen es keine brauchbaren Wettbewerber gibt, ist die Produktion von Zentraleinheiten und Videobeschleunigern. Zum Glück für große Anbieter brauchen sie normalerweise keine Videobeschleuniger, sie brauchen viel Prozessoren - das ist seit langem der Fall. Es gab mehrere Versuche von Prozessorherstellern, in den Servermarkt einzusteigen, aber jeder dieser Versuche hatte von Anfang an fatale Fehler, die offensichtlich zum Scheitern verurteilt waren (und das sind oft Projekte, die mindestens 5 Jahre dauern, d.h. es war notwendig viel Zeit ohne Vertrauen in den Erfolg zu verbringen).

Die Bemühungen von Qualcomm haben viel Aufsehen erregt, aber wenn ich mit meinen Kontakten bei Qualcomm spreche, sagen sie mir alle, dass der Chip, der derzeit hergestellt wird, im Wesentlichen zum Testen dient. Es geschah, weil Qualcomm von all den Leuten, die es von IBM abgeworben hatte, lernen musste, wie man einen Serverchip herstellt, und dass der nächste Chip der erste sein würde, der hoffentlich wettbewerbsfähig sein könnte. Ich setze große Hoffnungen in Qualcomm und auch in die Bemühungen von ARM, gute Serverkomponenten herzustellen, aber diese Bemühungen haben noch nicht das gewünschte Ergebnis gebracht.

Die fast vollständige Untauglichkeit aktueller ARM- (und POWER-) Optionen (abgesehen von hypothetischen Optionen für Apples beeindruckenden ARM-Chip) für die meisten Server-Workloads in Bezug auf die Leistung pro Dollar der Gesamtbetriebskosten (TCO) ist ein Thema, das etwas abseits der ausgetretenen Pfade liegt , also belasse ich das erstmal bei einer weiteren Veröffentlichung. Aber der Punkt ist, dass Intel eine Position auf dem Markt hat, die die Leute dazu zwingen kann, für Serverfunktionen extra zu bezahlen. Und Intel macht es. Außerdem sind einige Funktionen für Server wirklich wichtiger als für mobile Geräte mit mehreren Gigabyte RAM und einem Energiebudget von mehreren Watt, mobile Geräte, von denen immer noch erwartet wird, dass sie regelmäßig abstürzen und neu starten.

Abschluss

Soll ich ECC-RAM kaufen? Es hängt von vielen Dingen ab. Für Server ist dies angesichts der Kosten wahrscheinlich eine gute Option. Es ist jedoch wirklich schwierig, eine Kosten-Nutzen-Analyse durchzuführen, da es ziemlich schwierig ist, die Kosten einer latenten Datenbeschädigung oder die Kosten des Risikos zu bestimmen, ein halbes Jahr Zeit eines Entwicklers mit der Suche nach zeitweiligen Abstürzen zu verlieren, nur um festzustellen, dass sie verursacht wurden von Nicht-ECC-Speichernutzung.

Für Desktops bin ich auch ein Unterstützer von ECC. Wenn Sie jedoch keine regelmäßigen Backups erstellen, ist es für Sie sinnvoller, in regelmäßige Backups zu investieren als in ECC-Speicher. Und wenn ja Sicherungen ohne ECC können Sie beschädigte Daten problemlos in den Hauptspeicher schreiben und diese beschädigten Daten in das Backup replizieren.

Danke an Prabhakar Ragda, Tom Murphy, Jay Weiskopf, Leah Hanson, Joe Wilder und Ralph Corderoy für Diskussionen/Kommentare/Korrekturen. Außerdem danke (oder vielleicht auch nicht danke) an Leah, dass sie mich überzeugt hat, diesen mündlichen Impromptu als Blog-Beitrag zu schreiben. Wir entschuldigen uns für etwaige Fehler, fehlende Referenzen und erhabene Prosa; Dies ist im Wesentlichen eine Aufzeichnung der Hälfte der Diskussion, und ich habe die Begriffe nicht so detailliert erklärt, Links bereitgestellt oder die Fakten überprüft, wie ich es normalerweise tue.

Ein lustiges Beispiel ist (zumindest für mich) die magische selbstheilende Schmelzverbindung. Obwohl es viele Implementierungen gibt, stellen Sie sich eine schmelzbare Verbindung auf einem Chip als eine Art Widerstand vor. Wenn Sie etwas Strom durchleiten, sollten Sie eine Verbindung erhalten. Wenn der Strom zu hoch ist, erwärmt sich der Widerstand und bricht schließlich. Dies wird häufig zum Deaktivieren von Elementen auf Chips oder für Aktivitäten wie das Einstellen der Taktfrequenz verwendet. Das Grundprinzip ist, dass es nach dem Durchbrennen des Jumpers keine Möglichkeit gibt, ihn wieder in seinen ursprünglichen Zustand zu versetzen.

Vor langer Zeit gab es einen Halbleiterhersteller, der mit seinem Herstellungsprozess etwas voreilig war und die Toleranzen in einer bestimmten Technologiegeneration etwas übertrieben reduzierte. Nach einigen Monaten (oder Jahren) konnte die Verbindung zwischen den beiden Enden eines solchen Jumpers wieder auftauchen und sie wiederherstellen. Wenn Sie Glück haben, ist ein solcher Jumper so etwas wie das höchstwertige Bit des Taktmultiplikators, der, wenn er geändert wird, den Chip deaktiviert. Wenn Sie kein Glück haben, führt dies zu einer versteckten Datenbeschädigung.

Ich habe von vielen Leuten in verschiedenen Unternehmen von den Problemen in dieser Technologiegeneration dieses Herstellers gehört, das waren also keine Einzelfälle. Wenn ich sage, dass es lustig ist, meine ich, dass es lustig ist, diese Geschichte in einer Bar zu hören. Es ist weniger lustig, nach einem Jahr des Testens herauszufinden, dass einige Ihrer Chips nicht funktionieren, weil ihre Jumper-Einstellungen bedeutungslos sind und Sie Ihren Chip neu machen und die Veröffentlichung um 3 Monate verzögern müssen. Übrigens ist diese Wiederherstellungssituation durch Schmelzverbindungen ein weiteres Beispiel für eine Klasse von Fehlern, die mit ECC gemildert werden können.

Dies ist kein Google-Problem; Ich erwähne das nur, weil viele Leute, mit denen ich spreche, überrascht sind, wie Hardware ausfallen kann.

Wenn Sie nicht das ganze Buch durchwühlen möchten, hier ist der Ausschnitt:

In einem System, das einer Reihe von Ausfällen auf Softwareebene standhalten kann, besteht die Mindestanforderung für den Hardwareteil darin, dass Ausfälle dieses Teils immer erkannt und gemeldet werden. Software rechtzeitig genug, damit die Softwareinfrastruktur sie eindämmen und geeignete Wiederherstellungsmaßnahmen ergreifen kann. Es ist nicht erforderlich, dass die Hardware explizit alle Fehler behandelt. Dies bedeutet nicht, dass die Hardware für solche Systeme ohne Fehlerkorrekturfähigkeit ausgelegt sein sollte. Wann immer Bugfixing-Funktionalität zu vernünftigen Kosten oder Komplexität angeboten werden kann, zahlt sich der Support oft aus. Dies bedeutet, dass das System möglicherweise eine billigere Version verwenden kann, die nur Erkennungsfunktionen bietet, wenn die Hardwarefehlerkorrektur extrem teuer wäre. Aktuelle DRAM-Systeme sind ein gutes Beispiel für eine Situation, in der eine leistungsfähige Fehlerkorrektur zu sehr geringen zusätzlichen Kosten bereitgestellt werden kann. Eine Lockerung der Anforderung zur Erkennung von Hardwarefehlern wäre jedoch viel schwieriger, da dies bedeuten würde, dass jede Softwarekomponente mit der Notwendigkeit belastet würde, ihre eigene korrekte Ausführung zu überprüfen. In der Anfangsphase seiner Google-Geschichte Ich musste mich mit Servern befassen, auf denen DRAM nicht einmal Parität hatte. Die Erstellung eines Websuchindex besteht im Wesentlichen aus einem sehr umfangreichen Sortier-/Zusammenführungsvorgang, bei dem mehrere Maschinen nacheinander verwendet werden. Im Jahr 2000 scheiterte eine der monatlichen Webindex-Aktualisierungen von Google an der Vorabvalidierung, als festgestellt wurde, dass eine Teilmenge der getesteten Abfragen scheinbar willkürlich Dokumente zurückgab. Nach einigen Recherchen wurde in den neuen Indexdateien eine Situation gefunden, die einem Fixieren eines Bits auf Null an einer bestimmten Stelle in den Datenstrukturen entsprach, was ein negativer Nebeneffekt des Streamens einer großen Datenmenge durch einen fehlerhaften DRAM-Chip war. Den Indexdatenstrukturen wurden Konsistenzprüfungen hinzugefügt, um die Wahrscheinlichkeit zu minimieren, dass dieses Problem erneut auftritt, und es sind keine weiteren Probleme dieser Art aufgetreten. Allerdings ist zu beachten, dass dieses Verfahren keine 100%ige Fehlererkennung im Indizierungsdurchlauf garantiert, da nicht alle Speicherstellen geprüft werden – Anweisungen bleiben beispielsweise ungeprüft. Dies funktionierte, weil die Indexdatenstrukturen so viel größer waren als alle anderen an der Berechnung beteiligten Daten, dass das Vorhandensein dieser selbstüberwachenden Datenstrukturen es sehr wahrscheinlich machte, dass Maschinen mit defektem DRAM identifiziert und aus dem Cluster ausgeschlossen würden. Die nächste Generation von Maschinen bei Google enthielt bereits eine Speicherparitätserkennung, und als der Preis für ECC-Speicher auf ein konkurrenzfähiges Niveau fiel, verwendeten alle nachfolgenden Generationen ECC-DRAM.

Tags: Tags hinzufügen

Außerdem können ECC-Datenschutzschemata auf den in Mikroprozessoren eingebauten Speicher angewendet werden: Cache-Speicher, Registerdatei. Manchmal wird Rechenschaltungen auch eine Steuerung hinzugefügt.

Beschreibung des Problems

Es besteht die Sorge, dass der Trend zu kleineren physikalischen Abmessungen von Speichermodulen zu einer Erhöhung der Fehlerraten führen wird, da Teilchen mit geringerer Energie das Bit ändern können. Andererseits verringert die kompakte Größe des Speichers die Wahrscheinlichkeit, dass Partikel hineingelangen. Darüber hinaus kann der Wechsel zu Technologien wie Silizium auf einem Isolator den Speicher stabiler machen.

Eine auf einer großen Anzahl von Google-Servern durchgeführte Studie zeigte, dass die Anzahl der Fehler im Bereich von 25.000 bis 70.000 Fehlern pro Milliarde Arbeitsstunden (dt. Gerätestunden) pro Megabit liegen kann (d. h. 2,5-7,0 × 10 − 11 Fehler). / Bitstunde) .

Technologie

Eine Lösung für dieses Problem ist die Parität – die Verwendung eines zusätzlichen Bits, das die Parität der restlichen Bits aufzeichnet. Mit diesem Ansatz können Sie Fehler erkennen, aber nicht korrigieren. Wenn also ein Fehler erkannt wird, können Sie nur die Ausführung des Programms unterbrechen.

Ein zuverlässigerer Ansatz ist einer, der fehlerkorrigierende Codes verwendet. Der am häufigsten verwendete Fehlerkorrekturcode ist der Hamming-Code. Die meisten fehlerkorrigierenden Speicher, die in modernen Computern verwendet werden, können einen Einzelbitfehler in einem 64-Bit-Maschinenwort korrigieren und einen Zwei-Bit-Fehler in einem einzelnen 64-Bit-Wort erkennen, aber nicht korrigieren.

Der effektivste Ansatz zur Fehlerkorrektur hängt von der Art der erwarteten Fehler ab. Oft wird angenommen, dass sich die verschiedenen Bits unabhängig voneinander ändern. In diesem Fall ist die Wahrscheinlichkeit von zwei Fehlern in einem Wort vernachlässigbar klein. Diese Annahme gilt jedoch nicht für moderne Computer. Speicher basierend auf Fehlerkorrekturtechnologie Chipkill(IBM) können Sie mehrere Fehler korrigieren, auch wenn der gesamte Speicherchip beschädigt ist. Andere Speicherkorrekturtechnologien, die keine Unabhängigkeit von Fehlern in unterschiedlichen Bits annehmen, umfassen Erweiterte ECC(Sonne Mikrosysteme), Chipersatz(Hewlett Packard) und SDDC(Intel).

Viele ältere Systeme haben keine behobenen Fehler gemeldet, sondern nur Fehler gemeldet, die gefunden wurden und nicht behoben werden konnten. Moderne Systeme erfassen sowohl korrigierte Fehler (CE, englisch correctable errors) als auch nicht korrigierbare Fehler (UE, englisch nicht korrigierbare Fehler). Auf diese Weise können Sie beschädigten Speicher rechtzeitig ersetzen: Obwohl eine große Anzahl korrigierter Fehler ohne nicht korrigierbare Fehler den korrekten Betrieb des Speichers nicht beeinträchtigt, kann dies darauf hindeuten, dass für ein bestimmtes Speichermodul die Wahrscheinlichkeit nicht korrigierbarer Fehler besteht wird in Zukunft zunehmen.

Vor- und Nachteile

Fehlerkorrigierender Speicher schützt vor fehlerhaftem Betrieb eines Computersystems aufgrund von Speicherbeschädigung und verringert die Wahrscheinlichkeit eines schwerwiegenden Systemausfalls. Allerdings kostet ein solcher Speicher mehr; Das Motherboard, der Chipsatz und der Prozessor, die einen fehlerkorrigierenden Speicher unterstützen, können auch teurer sein, daher wird ein solcher Speicher in Systemen verwendet, in denen ein reibungsloser und korrekter Betrieb wichtig ist, wie z. B. Dateiserver, wissenschaftliche und finanzielle Anwendungen.

Fehlerkorrigierender Speicher ist je nach Anwendung 2–3 % langsamer (und erfordert oft einen zusätzlichen Zyklus des Speichercontrollers, um Summen zu prüfen) als herkömmlicher Speicher. Zusätzliche Logik, die das Zählen, die ECC-Prüfung und die Fehlerkorrektur implementiert, erfordert logische Ressourcen und Zeit, um entweder in der Speichersteuerung selbst oder in der Schnittstelle zwischen der CPU und der Speichersteuerung zu arbeiten.

siehe auch

Anmerkungen

  1. Werner Fischer. RAM aufgedeckt (unbestimmt) . admin-magazine.com. Abgerufen am 20. Oktober 2014.
  2. Archivierte Kopie (unbestimmt) (nicht verfügbarer Link). Abgerufen am 20. November 2016. Archiviert vom Original am 18. April 2016.
  3. Single Event Upset at Ground Level, Eugene Normand, Mitglied, IEEE, Boeing Defence & Space Group, Seattle, WA 98124-2499
  4. "Ein Überblick über Techniken zur Modellierung und Verbesserung der Zuverlässigkeit von Computersystemen", IEEE TPDS, 2015
  5. Kuznetsov VV Solar-terrestrische Physik (Vorlesung für Physikstudenten). Vorlesung 7. Sonnenaktivität. // Sonnenstürme. Staatliche Universität Gorno-Altai. 2012
  6. Gary M. Swift und Steven M. Guertin. "In-Flight-Beobachtungen von Multiple-Bit-Upset in DRAMs". Labor für Strahlantriebe
  7. Borucki, "Comparison of Accelerated DRAM Soft Error Rates Measured at Component and System Level", 46th Annual International Reliability Physics Symposium, Phoenix, 2008, S. 482–487
  8. Schröder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich. DRAM-Fehler in freier Wildbahn: Eine groß angelegte Feldstudie (unbestimmt) // SIGMETRICS/Performance. - ACM, 2009. - ISBN 978-1-60558-511-6.
  9. Verwendung von StrongArm SA-1110 im Bordcomputer von Nanosatelliten (unbestimmt) . Tsinghua Space Center, Tsinghua-Universität, Peking. Abgerufen am 16. Februar 2009. Archiviert vom Original am 2. Oktober 2011.
  10. Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Archiviert vom Original am 5. September 2009. . 2005-2009. "Das Ziel des "edac"-Kernelmoduls ist es, Fehler zu erkennen und zu melden, die innerhalb des Computersystems auftreten, das unter Linux läuft."
  11. Diskussion über ECC auf pcguide (unbestimmt) . Pcguide.com (17. April 2001). Abgerufen am 23. November 2011.

Seite 1 von 10

Im Internet können Sie häufig Fragen in thematischen Foren zum fehlerkorrigierenden Speicher sehen, nämlich zu seiner Auswirkung auf die Systemleistung. Der heutige Test wird diese Frage beantworten.

Bevor Sie dieses Material lesen, empfehlen wir Ihnen, sich mit den Materialien auf und vertraut zu machen Plattform LGA1151.

Theorie

Lassen Sie uns vor dem Testen über Speicherfehler sprechen.
Fehler, die im Speicher auftreten, können in zwei Typen unterteilt werden – Hardware und zufällig. Der Grund für das Erscheinen ersterer sind defekte DRAM-Chips. Letztere entstehen durch den Einfluss elektromagnetischer Störungen, Strahlung, Alpha- und Elementarteilchen etc. Dementsprechend können Hardwarefehler nur durch den Austausch von DRAM-Chips korrigiert werden, und zufällige Fehler können mit speziellen Technologien, beispielsweise ECC (Error-Correcting Code), korrigiert werden. Die ECC-Fehlerkorrektur hat zwei Methoden in ihrem Arsenal: SEC (Single Error Correction) und DED (Double Error Detection). Der erste korrigiert Einzelbitfehler in einem 64-Bit-Wort und der zweite erkennt Zweibitfehler.
Die Hardwareimplementierung von ECC soll zusätzliche Speicherchips aufnehmen, die zum Schreiben von 8-Bit-Prüfsummen benötigt werden. So hat ein fehlerkorrigierendes Speichermodul mit einseitigem Design 9 Speicherchips statt 8 (wie ein Standardmodul) und mit einem doppelseitigen 18 statt 16. Gleichzeitig wird die Breite von das Modul erhöht sich von 64 auf 72 Bit.
Beim Lesen von Daten aus dem Speicher wird die Prüfsumme neu berechnet und mit der ursprünglichen verglichen. Wenn der Fehler in einem Bit liegt, wird er korrigiert, wenn er in zwei Bits erkannt wird.

Üben

Theoretisch ist alles in Ordnung - fehlerkorrigierender Speicher erhöht die Zuverlässigkeit des Systems, was beim Bau eines Servers oder einer Workstation sehr wichtig ist. Aber in der Praxis gibt es auch die finanzielle Seite dieses Problems. Benötigt der Server Fehlerkorrekturspeicher, kann die Workstation auf ECC verzichten (viele fertige Workstations unterschiedlicher Hersteller sind mit herkömmlichem RAM ausgestattet). Wie viel teurer ist Speicher mit Fehlerkorrektur?
Ein typisches 8-GB-DDR4-2133-Modul kostet etwa 39 US-Dollar, während ein ECC-Modul 48 US-Dollar kostet (zum Zeitpunkt des Schreibens). Der Kostenunterschied beträgt ca. 23 %, was auf den ersten Blick recht beachtlich ist. Wenn Sie sich jedoch die Gesamtkosten der Workstation ansehen, wird dieser Unterschied 5% davon nicht überschreiten. Der Erwerb von Arbeitsspeicher mit ECC verteuert die Workstation also nur geringfügig. Bleibt nur noch die Frage, wie sich Speicher mit ECC auf die Prozessorleistung auswirkt.
Um diese Frage zu beantworten, hat die Redaktion der Seite Samsung DDR4-2133 ECC und Kingston DDR4-2133 Speichermodule mit den gleichen Timings 15-15-15-36 und 8 GB zum Testen genommen.

Auf Samsung M391A1G43DB0-CPB Speichermodulen mit Fehlerkorrektur sind 9 Chips auf jeder Seite verlötet.

Während bei herkömmlichen Kingston KVR21N15D8/8 Speichermodulen 8 Chips auf jeder Seite verlötet sind.

Prüfstand: Intel Xeon E3-1275v5, Supermicro X11SAE-F, Samsung DDR4-2133 ECC 8GB, Kingston DDR4-2133 non-ECC 8GB

Detaillierung

Prozessor: (HT an; TB aus);
- Hauptplatine: ;
- Arbeitsspeicher: 2x (M391A1G43DB0-CPB), 2x (KVR21N15D8/8);
- Betriebssystem: .

Testmethodik

3DMark06 1.21;
-7zip 15.14;
-AIDA64 5,60;
- Cinebench-R15;
-Fritz 4.2;
- Geekbench 3.4.1;
- Luxmark v3.1;
- MaxxMEMI 1,99;
- Bestehen Sie Mark v8;
-RealBench v2.43;
-SiSoftware Sandra 2016;
- SVPmark v3.0.3b;
- TrueCrypt 7.1a;
- WinRAR 5.30;
- wPrime 2.10;
- x264 v5.0.1;
- x265 v0.1.4;
- Kraken;
- Oktan;
- Oktan 2,0;
- Friedenswächter;
- Sonnenspinne;
- Web-XPT.

mob_info