Ddr2 800 667 nicht ecc nicht gepuffert. Servertechnologien – ECC vs. Nicht-ECC: Der Einfluss des Speichertyps auf die Prozessorleistung

ECC (Error Correct Code) wird zur Korrektur zufälliger Speicherfehler verwendet, die durch verschiedene externe Faktoren verursacht werden, und ist eine verbesserte Version des „Paritätskontrollsystems“.

Physisch wird ECC in Form eines zusätzlichen 8-Bit-Speicherchips implementiert, der neben den Hauptspeicherchips installiert ist.

Somit sind Module mit ECC 72-Bit (im Gegensatz zu Standard-64-Bit-Modulen).

Einige Speichertypen (Registered, Full Buffered) sind nur in der ECC-Version verfügbar.

AMD Radeon Software Adrenalin Edition 19.9.2 Optionaler Treiber

Der neue optionale Treiber AMD Radeon Software Adrenalin Edition 19.9.2 verbessert die Leistung in Borderlands 3 und bietet Unterstützung für die Radeon Image Sharpening-Technologie.

Kumulatives Windows 10-Update 1903 KB4515384 (hinzugefügt)

Am 10. September 2019 veröffentlichte Microsoft ein kumulatives Update für Windows 10 Version 1903 – KB4515384 mit einer Reihe von Sicherheitsverbesserungen und einer Behebung eines Fehlers, der die Windows-Suche störte und eine hohe CPU-Auslastung verursachte.

Treiber Game Ready GeForce 436.30 WHQL

NVIDIA hat ein Game Ready GeForce 436.30 WHQL-Treiberpaket veröffentlicht, das für die Optimierung in den Spielen Gears 5, Borderlands 3 und Call of Duty: Modern Warfare, FIFA 20, The Surge 2 und Code Vein konzipiert ist und eine Reihe aufgetretener Fehler behebt in früheren Versionen und erweitert die Liste der G-Sync-kompatiblen Displays.

AMD Radeon Software Adrenalin 19.9.1 Edition-Treiber

Die erste September-Veröffentlichung der AMD Radeon Software Adrenalin 19.9.1 Edition-Grafiktreiber ist für Gears 5 optimiert.

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

  1. Google nutzte ECC nicht, als es 1999 seine Server baute.
  2. Bei den meisten RAM-Fehlern handelt es sich um systematische und nicht um zufällige Fehler.
  3. RAM-Fehler sind selten, da die Hardware verbessert wurde.
  4. Wenn ECC-Speicher wirklich wichtig wäre, würde er überall verwendet werden, nicht nur in Servern. Die Bezahlung dieser Art von optionalem Material ist eindeutig zu fragwürdig.
Schauen wir uns diese Argumente einzeln an:

1. Google hat ECC 1999 nicht verwendet

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

A. Platzieren Sie Ihre Server in Versandbehältern.

Heutzutage schreiben die Leute immer noch Artikel darüber, wie großartig die Idee ist, obwohl Google gerade ein Experiment durchgeführt hat, das als gescheitert galt. Es stellt sich heraus, dass selbst die Experimente von Google nicht immer aufgehen. Tatsächlich führt ihre bekannte Vorliebe für „Durchbruchsprojekte“ („Lunshots“) dazu, 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 noch größer, indem Sie fehlgeschlagene Experimente blind kopieren.

B. Brände in Ihren eigenen Rechenzentren entfachen.

In einem Teil von Atwoods Beitrag geht es darum, wie großartig diese Server waren:

Einige schauen sich diese frühen Google-Server an und stellen möglicherweise einen Mangel an Professionalität in Bezug auf Brandgefahren fest. Nicht ich. Was ich hier sehe, ist ein zukunftsorientiertes 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 steckt etwas Wahres. Als Google mit der Entwicklung seiner eigenen Boards begann, hatte eine Generation davon ein „Wachstumsproblem“ ( ), das zu einer Zahl von Bränden ungleich Null führte.

Wenn Sie sich übrigens Jeffs Beitrag ansehen und sich das Foto ansehen, auf das sich das Zitat bezieht, werden Sie feststellen, dass sich auf den Platinen viele Überbrückungskabel befinden. Dies verursachte Probleme und wurde in der nächsten Hardwaregeneration behoben. Man sieht auch die recht schlampige Verkabelung, die zusätzlich Probleme verursachte und auch schnell behoben wurde. Es gab noch andere Probleme, aber ich überlasse sie dem Leser als Übung.

C. Erstellen Sie Server, die Ihren Mitarbeitern schaden.

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

D. Erstellen Sie Ihr eigenes Wetter in Ihren Rechenzentren

Nach Gesprächen mit Mitarbeitern vieler großer Technologieunternehmen scheint es, dass die meisten Unternehmen über eine solche Klimatisierung verfügten, dass sich in ihren Rechenzentren Wolken oder Nebel bildeten. Man könnte es Googles kalkulierten und hinterhältigen Plan nennen, das Wetter in Seattle nachzuahmen, um Microsoft-Mitarbeiter abzuwerben. Alternativ könnte es ein Plan sein, im wahrsten Sinne des Wortes „Cloud Computing“ zu schaffen. Oder vielleicht nicht.

Bitte beachten Sie, dass Google alles versucht und dann geändert hat. In jeder erfolgreichen Entwicklungsorganisation kommt es häufig vor, dass Fehler gemacht und dann behoben werden. Wenn Sie die Ingenieurspraxis vergöttern, sollten Sie zumindest an der modernen Praxis festhalten und nicht an dem, was 1999 gemacht wurde.

Als Google 1999 Nicht-ECC-Server nutzte, zeigten diese eine Reihe von Symptomen, die schließlich auf eine Speicherbeschädigung zurückzuführen waren. Einschließlich eines Suchindex, der praktisch zufällige Ergebnisse zu Suchanfragen lieferte. Der tatsächliche Fehlermodus ist hier aufschlussreich. Ich höre oft, dass ECC auf diesen Maschinen ignoriert werden kann, da Fehler in den einzelnen Ergebnissen akzeptabel sind. Aber selbst wenn Sie gelegentliche Fehler als akzeptabel erachten, bedeutet das Ignorieren dieser Fehler, dass das Risiko einer vollständigen Datenbeschädigung besteht, es sei denn, es wird eine sorgfältige Analyse durchgeführt, um sicherzustellen, dass ein Fehler ein Ergebnis nur geringfügig verfälschen kann.

Untersuchungen zu Dateisystemen haben wiederholt gezeigt, dass dies trotz heldenhafter Versuche, Systeme zu schaffen, die gegen einen einzigen Fehler resistent sind, äußerst schwierig ist. Grundsätzlich kann jedes stark getestete Dateisystem aufgrund eines einzelnen Fehlers () schwerwiegend ausfallen. Ich werde Dateisystementwickler nicht angreifen. Sie beherrschen diese Art der Analyse besser als 99,9 % der Programmierer. Es hat sich nur immer wieder gezeigt, dass das Problem so schwierig ist, dass man es nicht vernünftig diskutieren kann, und ein automatisiertes Tool für eine solche Analyse ist noch weit von einem einfachen Prozess auf Knopfdruck entfernt. Google erörtert die Fehlererkennung und -korrektur in seinem Leitfaden zur Computerverarbeitung von Warehouse-Daten. ECC-Speicher wird als die am besten geeignete Option angesehen, wenn offensichtlich ist, dass eine Hardware-Fehlerkorrektur verwendet werden muss ( ).

Google verfügt über eine hervorragende Infrastruktur. Nach allem, was ich über die Infrastruktur anderer großer Technologieunternehmen gehört habe, scheint Google das Beste der Welt zu sein. Das heißt aber nicht, dass Sie alles kopieren sollten, was sie tun. Selbst wenn wir nur ihre guten Ideen berücksichtigen, macht es für die meisten Unternehmen keinen Sinn, sie zu kopieren. Sie haben einen Ersatz für den Linux-Job-Interception-Scheduler entwickelt, der sowohl Hardware-Laufzeitinformationen als auch statische Traces verwendet, um die Vorteile der neuen Hardware in Intel-Serverprozessoren zu nutzen, die eine dynamische Partitionierung des Caches auf mehrere Kerne ermöglicht. Wenn Sie dies auf der gesamten Hardware nutzen, 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 sollten? Nicht, es sei denn, Mann vom Himmel ist bereits auf Sie gefallen, zum Beispiel in Form der Tatsache, dass Ihre Kerninfrastruktur in hochoptimiertem C++ geschrieben ist und nicht in Java oder (Gott bewahre) Ruby. Und Tatsache ist, dass es für die allermeisten Unternehmen eine völlig vernünftige Entscheidung ist, Programme in einer Sprache zu schreiben, die einen 20-fachen Rückgang der Produktivität mit sich bringt.

2. Die meisten RAM-Fehler sind systematische Fehler

Das Argument gegen ECC wird im folgenden Abschnitt der DRAM-Fehlerstudie wiederholt (Hervorhebung durch Jeff):
Unsere Studie hat mehrere wichtige Ergebnisse. Erstens haben wir herausgefunden, dass etwa 70 % der DRAM-Ausfälle wiederholbare (z. B. dauerhafte) Ausfälle sind, während nur 30 % intermittierende (intermittierende) Ausfälle sind. Zweitens haben wir herausgefunden, dass große Multi-Bit-Fehler, beispielsweise Fehler, die eine ganze Zeile, Spalte oder einen ganzen Block betreffen, mehr als 40 % aller DRAM-Fehler ausmachen. Drittens haben wir herausgefunden, dass fast 5 % der DRAM-Ausfälle Schaltkreise auf Platinenebene wie Datenleitungen (DQ) oder Strobe-Leitungen (DQS) betreffen. Schließlich haben wir herausgefunden, dass Chipkill die Rate von Systemausfällen, die durch DRAM-Ausfälle verursacht wurden, um das 36-fache reduzierte.

Das Zitat wirkt etwas ironisch, da es sich offenbar nicht um ein Argument gegen ECC handelt, sondern um ein Argument für Chipkill – eine bestimmte Klasse von ECC. Abgesehen davon weist Jeffs Beitrag darauf hin, dass systematische Fehler doppelt so häufig sind wie zufällige Fehler. In dem Beitrag heißt es dann, dass sie Memtest auf ihren Maschinen ausführen, wenn systematische Fehler auftreten.

Erstens ist das Verhältnis 2:1 nicht so groß, dass man zufällige Fehler einfach ignorieren kann. Zweitens impliziert der Beitrag Jeffs Überzeugung, dass systematische Fehler im Wesentlichen unveränderlich sind und keine Zeit brauchen, um sich zu manifestieren. 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 tatsächlich erkennen, dass sie häufig dieselben Verteilungsfamilien zur Modellierung von Ausfällen verwenden. Drittens impliziert Jeffs Argumentation, dass ECC nicht dabei helfen kann, Fehler zu erkennen oder zu korrigieren, was nicht nur falsch ist, sondern im direkten Widerspruch zum Zitat steht.

Wie oft werden Sie also Memtest auf Ihren Computern ausführen, um diese Systemfehler zu erkennen, und wie viel Datenverlust sind Sie bereit, hinzunehmen? Einer der Hauptzwecke von ECC ist nicht die Korrektur von Fehlern, sondern die Signalisierung von Fehlern, sodass Hardware ausgetauscht werden kann, bevor es zu einer stillen Beschädigung kommt. Wer würde zustimmen, jeden Tag alles auf dem Computer zu schließen, um Memtest auszuführen? Es wäre viel teurer, als nur ECC-Speicher zu kaufen. Und selbst wenn Sie davon überzeugt werden könnten, Speichertests 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 bei der Überprüfung der Datenintegrität seltsame Fehler auftraten, und nach etwa sechs Monaten wurde uns klar, dass Fehler auf einigen Maschinen wahrscheinlicher waren als auf anderen. Diese Fehler waren recht 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 zu verstehen, dass die Fehler durch einzelne Fälle von Bit-Flipping (mit hoher Wahrscheinlichkeit) verursacht wurden. Wir hatten das Glück, dass die Prüfsummen als Nebeneffekt des von uns verwendeten Prozesses 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 speicherinternen Prüfsummen zu schützen, besteht eine gute Chance, dass Sie eine Prüfsummenoperation an bereits beschädigten Daten durchführen und am Ende eine korrekte Prüfsumme für die falschen Daten erhalten, es sei denn, Sie machen etwas wirklich Besonderes Rechenoperationen, die ihre eigenen Prüfsummen liefern. Und wenn Sie Fehlerkorrektur ernst nehmen, verwenden Sie wahrscheinlich immer noch ECC.

Nach Abschluss der Analyse stellten wir jedenfalls fest, dass memtest keine Probleme erkennen konnte, der Austausch des RAM auf fehlerhaften Maschinen jedoch zu einer Reduzierung der Fehlerraten um ein bis zwei Größenordnungen führte. Die meisten Dienste verfügen nicht über die Art von Prüfsummen, die wir hatten; Diese Dienste schreiben die beschädigten Daten einfach stillschweigend in den persistenten Speicher und erkennen das Problem erst, wenn der Client anfängt, sich zu beschweren.

3. Durch Fortschritte in der Hardware sind Fehler sehr selten geworden.

Die Daten im Beitrag reichen nicht aus, um eine solche Aussage zu treffen. Beachten Sie, dass RAM-Ausfälle exponentiell abnehmen müssen, wenn die RAM-Nutzung zunimmt und weiterhin exponentiell zunimmt, um die Häufigkeit von Datenbeschädigungen tatsächlich zu verringern. Darüber hinaus werden die Elemente immer kleiner, wenn die Späne immer kleiner werden, wodurch die in Punkt zwei besprochenen Verschleißprobleme noch dringlicher werden. Mit der 20-nm-Technologie kann ein DRAM-Kondensator beispielsweise etwa 50 Elektronen ansammeln, und diese Zahl wird bei der nächsten DRAM-Generation geringer sein, wobei der Trend weiterhin sinkt.

Noch ein Hinweis: Wenn Sie für ECC bezahlen, zahlen Sie nicht nur für ECC-Speicher, sondern auch für Teile (Prozessoren, Platinen), die hochwertiger sind. Dies lässt sich leicht an den Ausfallraten von Laufwerken erkennen, und ich habe gehört, dass viele Leute dies in ihren eigenen persönlichen Beobachtungen bemerkt haben.

Um öffentlich zugängliche Forschungsergebnisse zu zitieren: Ich glaube, dass die Gruppe von Andrea und Remzi vor einigen Jahren ein SIGMETRICS-Papier veröffentlicht hat, das zeigte, dass die Wahrscheinlichkeit, dass ein SATA-Laufwerk beim Lesen ausfällt, viermal höher ist als bei einem SCSI-Laufwerk und dass die Wahrscheinlichkeit, dass Daten verborgen sind, zehnmal höher ist Korruption. Dieses Verhältnis blieb auch bei Verwendung von Scheiben desselben Herstellers erhalten. Es gibt keinen besonderen Grund zu der Annahme, dass eine SCSI-Schnittstelle zuverlässiger sein sollte als eine SATA-Schnittstelle, aber das ist nicht die Schnittstelle, über die wir sprechen. Es geht darum, hochzuverlässige Serverkomponenten anstelle von Clientkomponenten zu kaufen. Möglicherweise interessiert Sie die Zuverlässigkeit der Festplatte nicht speziell, da alles auf Prüfsummen basiert und Schäden leicht zu finden sind. Es gibt jedoch einige Arten von Verstößen, die schwieriger zu erkennen sind.

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

Um dieses Argument ein wenig 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 eine ganze Reihe von Serverhardware anwenden. Tatsächlich ist dies eines der lästigsten Probleme, mit denen große Anbieter von Cloud-Lösungen konfrontiert sind.

Sie verfügen über genügend Einfluss, um die meisten Komponenten zum richtigen Preis zu bekommen. Verhandeln kann man aber nur dort, wo es mehr als einen brauchbaren Lieferanten gibt.

Einer der wenigen Bereiche, in denen es keine lebensfähigen Konkurrenten gibt, ist die Produktion von Zentraleinheiten und Videobeschleunigern. Zum Glück benötigen große Anbieter in der Regel keine Videobeschleuniger; sie benötigen Prozessoren, und zwar viele davon – und das ist schon lange der Fall. Es gab mehrere Versuche von Prozessorherstellern, in den Servermarkt einzusteigen, aber jeder dieser Versuche wies von Anfang an fatale Mängel auf, die deutlich machten, dass er zum Scheitern verurteilt war (und dabei handelt es sich oft um Projekte, die mindestens fünf Jahre in Anspruch nehmen, d. h. das war es auch). Es ist notwendig, viel Zeit ohne Gewissheit über den Erfolg zu verbringen.

Die Bemühungen von Qualcomm haben großen Hype hervorgerufen, aber wenn ich mit meinen Kontakten bei Qualcomm spreche, sagen mir alle, dass der Chip, der bisher hergestellt wird, im Wesentlichen zu Testzwecken dient. Dies geschah, weil Qualcomm lernen musste, wie man aus all den von IBM abgeworbenen Leuten einen Serverchip herstellt, und weil der nächste Chip hoffentlich der erste sein würde, der konkurrenzfähig sein würde. Ich setze große Hoffnungen in Qualcomm und die Bemühungen von ARM, gute Serverkomponenten zu entwickeln, aber diese Bemühungen haben noch nicht die gewünschten Ergebnisse gebracht.

Die fast völlige Ungeeignetheit aktueller ARM- (und POWER-)Varianten (hypothetische Varianten von Apples beeindruckendem ARM-Chip nicht mitgerechnet) für die meisten Server-Workloads im Hinblick auf die Leistung pro Dollar Gesamtbetriebskosten (TCO) ist daher eher ein Nebenthema Ich werde es für eine andere Veröffentlichung aufheben. Der Punkt ist jedoch, dass Intel eine solche Marktposition einnimmt, dass es die Leute dazu zwingen kann, einen Aufpreis für Serverfunktionen zu zahlen. Und Intel macht es. Darüber hinaus sind einige Funktionen für Server wirklich wichtiger als für mobile Geräte mit mehreren Gigabyte RAM und einem Leistungsbudget von mehreren Watt, bei denen immer noch mit regelmäßigen Abstürzen und Neustarts zu rechnen ist.

Abschluss

Sollten Sie ECC-RAM kaufen? Es hängt von vielen Dingen ab. Für Server ist dies angesichts der Kosten wahrscheinlich eine gute Option. Tatsächlich ist es jedoch schwierig, eine Kosten-Nutzen-Analyse durchzuführen, da es ziemlich schwierig ist, den Schaden durch versteckte Datenbeschädigung oder die Kosten zu ermitteln, die entstehen, wenn man riskiert, sechs Monate Entwicklerzeit für die Suche nach zeitweiligen Fehlern zu verlieren, nur um dann herauszufinden, dass sie durch die Nutzung verursacht werden Nicht-ECC-Speicher.

Bei Desktop-Computern bin ich auch ein Befürworter von ECC. Wenn Sie jedoch keine regelmäßigen Backups durchführen, ist es besser, in regelmäßige Backups zu investieren als in ECC-Speicher. Und wenn Sie über Nicht-ECC-Backups verfügen, können Sie die beschädigten Daten problemlos in den Primärspeicher schreiben und diese beschädigten Daten in das Backup replizieren.

Vielen Dank an Prabhakar Raghda, Tom Murphy, Jay Weiskopf, Leah Hanson, Joe Wilder und Ralph Corderoy für Diskussionen/Kommentare/Korrekturen. Vielen Dank (oder vielleicht auch nicht Danke) an Leah, die mich überzeugt hat, diesen Spoken-Word-Beitrag spontan als Blog-Beitrag zu schreiben. Wir entschuldigen uns für etwaige Fehler, fehlende Referenzen und großartige Prosa; Hierbei handelt es sich im Wesentlichen um eine Abschrift der Hälfte der Diskussion, und ich habe die Begriffe nicht so ausführlich erklärt, Links bereitgestellt oder Fakten überprüft, wie ich es normalerweise tue.

Ein lustiges Beispiel ist (zumindest für mich) der magische, selbstheilende Schmelzpullover. Obwohl es viele Implementierungen gibt, stellen wir uns einen schmelzbaren Jumper auf einem Chip als eine Art Widerstand vor. Wenn Sie etwas Strom durchleiten, sollten Sie eine Verbindung herstellen. Wenn der Strom zu hoch ist, erhitzt sich der Widerstand und fällt schließlich aus. Dies wird normalerweise verwendet, um Elemente auf Chips zu deaktivieren oder für Aktionen wie das Einstellen der Taktrate. Das Grundprinzip besteht darin, dass ein durchgebrannter Jumper nicht mehr in seinen ursprünglichen Zustand zurückversetzt werden kann.

Es war einmal ein Hersteller von Halbleiterbauelementen, der seinen Herstellungsprozess ein wenig überstürzte und die Toleranzen einer bestimmten Technologiegeneration zu stark reduzierte. Nach einigen Monaten (oder Jahren) konnte die Verbindung zwischen den beiden Enden eines solchen Jumpers wieder hergestellt und wiederhergestellt werden. Wenn Sie Glück haben, handelt es sich bei einem solchen Jumper um so etwas wie das höchstwertige Bit des Taktmultiplikators, der bei Änderung den Chip deaktiviert. Wenn Sie Pech haben, führt dies zu einer versteckten Datenbeschädigung.

Ich habe von vielen Leuten in verschiedenen Unternehmen von Problemen in dieser Technologiegeneration dieses Herstellers gehört, es handelte sich also nicht um Einzelfälle. Wenn ich sage, dass es lustig ist, meine ich, dass es lustig ist, diese Geschichte in einer Bar zu hören. Es macht weniger Spaß, nach einem Jahr des Testens herauszufinden, dass einige Ihrer Chips nicht funktionieren, weil ihre Jumper-Einstellungen keinen Sinn ergeben, und Ihr Chip neu entworfen und um drei Monate verzögert werden muss. Übrigens ist diese Situation mit der Wiederherstellung der Schmelzverbindung ein weiteres Beispiel für eine Klasse von Fehlern, deren Schweregrad mithilfe von ECC geglättet werden kann.

Das ist nicht Googles 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, finden Sie hier den Ausschnitt, den Sie benötigen:

In einem System, das einer Reihe von Fehlern auf Softwareebene standhalten kann, besteht die Mindestanforderung an die Hardware darin, dass Fehler dieses Teils immer rechtzeitig erkannt und der Software mitgeteilt werden, damit die Softwareinfrastruktur sie eindämmen kann Ergreifen Sie geeignete Wiederherstellungsmaßnahmen. Es ist nicht erforderlich, dass die Hardware alle Fehler explizit behandelt. Dies bedeutet nicht, dass die Hardware für solche Systeme ohne Fehlerkorrekturfunktionen ausgelegt sein sollte. Wenn Fehlerbehebungsfunktionen zu vertretbaren Kosten oder mit vertretbarem Aufwand angeboten werden können, lohnt es sich häufig, sie zu unterstützen. Das heißt, wenn die Hardware-Fehlerkorrektur extrem teuer wäre, könnte das System möglicherweise eine günstigere Version verwenden, die nur Erkennungsfunktionen bietet. Moderne DRAM-Systeme sind ein gutes Beispiel für eine Situation, in der eine leistungsstarke Fehlerkorrektur mit sehr geringen Zusatzkosten bereitgestellt werden kann. Eine Lockerung der Anforderungen zur Erkennung von Hardwarefehlern wäre jedoch deutlich schwieriger, da dies bedeuten würde, dass jede Softwarekomponente selbständig überprüfen müsste, ob sie ordnungsgemäß funktioniert. Zu Beginn seiner Geschichte hatte Google mit Servern zu kämpfen, bei denen DRAM nicht einmal über Parität verfügte. Das Erstellen eines Websuchindexes besteht im Wesentlichen aus einem sehr umfangreichen Sortier-/Zusammenführungsvorgang, an dem mehrere Maschinen im Laufe der Zeit beteiligt sind. Im Jahr 2000 scheiterte die Vorabvalidierung einer der monatlichen Webindexaktualisierungen von Google, als festgestellt wurde, dass eine Teilmenge der getesteten Abfragen scheinbar zufällig Dokumente zurückgab. Nach einigen Untersuchungen wurde in den neuen Indexdateien eine Situation festgestellt, bei der ein Bit an einer bestimmten Stelle in den Datenstrukturen auf Null hängen blieb. Dies war ein negativer Nebeneffekt beim Streamen großer Datenmengen über einen fehlerhaften DRAM-Chip. Den Indexdatenstrukturen wurden Konsistenzprüfungen hinzugefügt, um die Wahrscheinlichkeit eines erneuten Auftretens dieses Problems zu minimieren, und es sind keine weiteren Probleme dieser Art aufgetreten. Allerdings ist zu beachten, dass diese Methode keine 100-prozentige Erkennung von Fehlern im Indexierungsdurchlauf garantiert, da nicht alle Speicherpositionen überprü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 wurden. Die nächste Generation von Google-Geräten verfügte bereits über eine Paritätserkennung im Speicher, und als der Preis für ECC-Speicher auf ein wettbewerbsfähiges Niveau sank, verwendeten alle nachfolgenden Generationen ECC-DRAM.

Tags: Tags hinzufügen

Seite 1 von 10

Im Internet sieht man in thematischen Foren häufig Fragen zum fehlerkorrigierenden Speicher, nämlich zu seinen Auswirkungen 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 LGA1151-Plattform.

Theorie

Vor dem Test informieren wir Sie über Speicherfehler.
Fehler, die im Speicher auftreten, können in zwei Typen unterteilt werden: Hardwarefehler und zufällige Fehler. Die ersten werden durch defekte DRAM-Chips verursacht. Letztere entstehen durch die Einwirkung 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 durch spezielle Technologien, beispielsweise ECC (Error-Correcting Code), korrigiert werden. Die ECC-Fehlerkorrektur verfügt über zwei Methoden: SEC (Single Error Correction) und DED (Double Error Detection). Der erste korrigiert Einzelbitfehler in einem 64-Bit-Wort und der zweite erkennt Doppelbitfehler.
Die Hardware-Implementierung von ECC besteht aus der Platzierung zusätzlicher Speicherchips, die zum Schreiben von 8-Bit-Prüfsummen benötigt werden. Somit verfügt ein Fehlerkorrektur-Speichermodul mit einseitigem Design über 9 Speicherchips statt 8 (wie bei einem Standardmodul) und mit doppelseitigem Design über 18 statt 16. Gleichzeitig ist die Breite von Das Modul erhöht sich von 64 auf 72 Bit.
Beim Auslesen von Daten aus dem Speicher wird die Prüfsumme neu berechnet und mit dem Original verglichen. Liegt der Fehler in einem Bit, wird er korrigiert, liegt der Fehler in zwei, wird er erkannt.

Üben

Theoretisch ist alles in Ordnung – fehlerkorrigierender Speicher erhöht die Systemzuverlässigkeit, was beim Aufbau eines Servers oder einer Workstation sehr wichtig ist. Doch in der Praxis hat dieses Thema auch eine finanzielle Seite. Wenn der Server Speicher mit Fehlerkorrektur benötigt, kann die Workstation problemlos auf ECC verzichten (viele fertige Workstations verschiedener 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 typisches ECC-Modul 48 US-Dollar kostet (zum Zeitpunkt des Schreibens). Der Kostenunterschied beträgt etwa 23 %, was auf den ersten Blick durchaus beachtlich ist. Betrachtet man jedoch die Gesamtkosten der Workstation, wird dieser Unterschied nicht mehr als 5 % betragen. Somit erhöht der Kauf von ECC-Speicher die Kosten der Workstation nur geringfügig. Bleibt nur noch die Frage, wie sich ECC-Speicher auf die Prozessorleistung auswirkt.
Um diese Frage zu beantworten, haben die Redakteure der Website Samsung DDR4-2133 ECC- und Kingston DDR4-2133-Speichermodule mit den gleichen Timings 15-15-15-36 und einer Kapazität von 8 GB getestet.

Samsung M391A1G43DB0-CPB Speichermodule mit Fehlerkorrektur verfügen über 9 Chips, die auf jeder Seite verlötet sind.

Während normale Kingston KVR21N15D8/8-Speichermodule auf jeder Seite 8 Chips verlötet haben.

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

Detaillierung

Prozessor: (HT ein; TB aus);
- Hauptplatine: ;
- RAM: 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;
- PassMark 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;
- Oktanzahl 2,0;
- Friedenstruppe;
- SunSpider;
- WebXPRT.

ECC, vom englischen Fehlerkorrekturcode, wird als Fehlerkorrekturcode ins Russische übersetzt. In Flash-Laufwerk-Controller integrierte Technologie zur Erkennung und Korrektur von Fehlern während der Datenübertragung. ECC kann nur kleinere Probleme bewältigen; in schweren Fällen wird das Schreiben von Daten auf das Flash-Laufwerk blockiert.

WARUM IST DAS BENÖTIGT?

Im Zeitalter hochwertiger SLC- und MLC-Flash-Speicherchips hatte es wenig Sinn, diesem Fehlerkorrekturmechanismus Aufmerksamkeit zu schenken. Da nun die überwiegende Mehrheit der Flash-Laufwerke entweder über TLC-Speicher oder eine Art MLC-DownGrade verfügt, sollten Sie die Einstellungen des ECC-Mechanismus nicht vernachlässigen.

Mit dieser Technologie können Sie die Lebensdauer eines Flash-Laufwerks verlängern, bis das nächste Mal angeschlossen wird, da Sie Ihr Flash-Laufwerk nicht jeden Monat neu flashen möchten.

Ein weiteres positives Merkmal ist die Wahrscheinlichkeit, die maximal mögliche Kapazität eines Flash-Laufwerks zu erreichen. Insbesondere bei Flash-Laufwerken mit ausrangierten Chips kann sie sogar höher ausfallen als ursprünglich auf dem Träger angegeben.

MÄNGEL

Je höher Sie den ECC-Parameterwert einstellen, desto mehr Belastung entsteht auf dem Flash-Laufwerk-Controller. Und dies wiederum kann sich negativ auf seine Leistung auswirken, d.h. Geschwindigkeit der Arbeit. Zu den spürbaren Nachteilen der hohen Belastung gehört auch die stärkere Erwärmung des Flash-Laufwerks.

Die meisten Dienstprogramme verwenden nicht die in Flash-Listen verwendeten Werte (z. B. 7b/512B und 72b/1K), sondern die Summen bestimmter Parameter. In der Regel im Bereich von 0 bis 15, in manchen Produktionsprogrammen aufgrund der Unterstützung extrem minderwertiger Speicher von 0 bis 20.

ECC-Wert
SPEICHERTYP: ECC:
SLC 1
MLC 32 nm, 35 nm, 42 nm, 50 nm, … 3-4
MLC 24 nm, 25 nm, 26 nm, 32 nm 4-8
MLC 21 nm, 20 nm, 19 nm, … 8-12
TLC 27 nm, 32 nm, 43 nm, … 8
DC 24 nm, 21 nm, 19 nm, … 12-15

Einige Versorgungsunternehmen verwenden ein anderes Koordinatensystem, beispielsweise der Dyna-Produktionskomplex für SMI-Controller. In diesem Fall finden Sie direkt unten einen Link zu den spezifischen Einstellungen bestimmter Hersteller.

Lassen Sie mich ein wenig erklären, wie Sie die obige Tabelle verwenden. Wenn Ihr Flash-Laufwerk also von guter Qualität ist (eine etablierte Marke), wählen Sie den Mindestwert aus. Bei Geschenk- und gefälschten Flash-Laufwerken empfehle ich Ihnen dringend, den Maximalwert des ECC-Parameters für Ihren Speichertyp zu verwenden.

UMSETZUNG IN PRODUKTIONSUNTERNEHMEN

Nicht alle Dienstprogramme ermöglichen eine manuelle Anpassung der ECC-Option. Wir können sagen, dass ECC eine Funktion der Sortierkomponente von Produktionsdienstprogrammen ist. Ich versuche, dies in einer Tabelle für die wichtigsten Hersteller von USB-Controllern kurz auszudrücken.

ECC-kompatible Software
Unternehmen: Werkzeuge:
ALCOR AlcorMP_UFD
FC MpTool
AAMP
CHIPSBANK Chipsbank UMPTool
CBM2093 UMPTool
CBM2098 UMPTool
umptool209X
V68-Bauwerkzeuge
INNOSTOR Innostor MPTool
Innostor 917 LFA MP-Tool
PHISON UPTool
UP19_CTool
UP21_CTool
UP23_CTool
SILIKON GO KingStore-Herstellungswerkzeug
SiliconGo MPTools
SiliconGo MPTool2
SKYMEDI SK6221 MPTool
SMI Dyna Massenspeicher-Produktionstool
ARTIKEL ZUM THEMA ECC-KORREKTUR
mob_info