Ich kann keine verlässlichen Informationen dazu finden. Ich habe nicht die vollständige Spezifikation der SD / MMC-Kartenhardware.
Ist es wahr? Meine High-Level-Anwendung muss sich nicht mit dem Abnutzungsgrad befassen, wenn ich mit diesen Karten arbeite?
BEARBEITEN
Könnte jemand bestätigen, dass der Verschleiß durch die SD-Spezifikation garantiert wird? Ich möchte sicher sein, da es so aussieht, als ob die meisten Hersteller es tun, aber es wird von der Spezifikation nicht benötigt.
Antworten:
Ich arbeite für ein Unternehmen, das Mitglied der SD Association war. Wir kennen die Spezifikation 2.0 (SDHC). Die SD-Kartenspezifikation hat KEINEN Eintrag für den Verschleißausgleich. Das ist völlig abhängig vom SD-Hersteller, um das zu handhaben, wenn sie dies wünschen. Wir haben gesehen, dass einige wahrscheinlich tun, während andere sehr viel nicht tun (Vorsicht vor den supergünstigen Nachahmungs-SD-Karten). SDXC hat dies möglicherweise geändert, um den Verschleiß auszugleichen, aber ich bin mir nicht sicher. Leider ist die einzige Möglichkeit, dies wirklich zu zeigen, die offizielle Spezifikation in den Händen zu halten. Sie können es am ehesten online finden, aber der SD-Verband möchte wirklich, dass Sie dafür bezahlen.
Als Randnotiz: Wenn Sie eine 2-GB-Karte nehmen und sie von Anfang bis Ende immer wieder beschreiben, beträgt der Durchschnitt etwa 10 TB, bevor die Karte tot und nicht mehr beschreibbar ist. Außerdem werden Sie von SD-Karten nicht informiert, wenn Daten fehlerhaft sind, dh es wird kein E / A-Fehler zurückgegeben, wie dies bei einer PC-Festplatte der Fall ist. Dies ist möglicherweise kein Problem für eingebettete Designs, da 10 TB eine Menge Daten sind, es kann jedoch für jemanden ein Faktor sein.
quelle
Das ist wahr! MicroSD-Karten enthalten einen NAND-Flash-Chip, der mit einem (ARM-) Mikrocontroller verbunden ist, der in schwarzem Kunststoff eingekapselt ist. http://www.bunniestudios.com/blog/?p=898 erklärt.
Am Ende des Follow-up-Beitrags http://www.bunniestudios.com/blog/?p=918 setzt Bunnie voraus, dass die Integration des Controllers weniger kostet als das Testen des Flashs im Voraus.
Zitat aus dem SD-Karten-Produkthandbuch von SanDisk: "1.9 Wear Leveling. Wear Leveling ist ein wesentlicher Bestandteil der Erase Pooling-Funktionalität der SD-Karte unter Verwendung von NAND-Speicher." Sie können das Ganze im Datenblatt für eine SanDisk-Markenkarte nachlesen .
quelle
Ja, SD / MMC-Karten verfügen über Controller, die einen Verschleißausgleich durchführen. Andernfalls könnten Sie in wenigen Minuten eine mit den falschen Schreibmustern zerstören.
Das ist eigentlich ein Problem für einige eingebettete Projekte. Es gibt (anscheinend) keine Möglichkeit zu wissen, welche Sektoren zu irgendeinem Zeitpunkt abgenutzt sein könnten, sodass ein Aus- und Wiedereinschalten zum falschen Zeitpunkt Daten an einer beliebigen Stelle auf der Karte zerstören kann, unabhängig davon, an welcher Stelle Sie DENKEN, dass Sie schreiben. (frag nicht, woher ich das weiß :))
SD-Karten müssen mit einem System verwendet werden, das ein sauberes Herunterfahren des Systems garantiert (oder zumindest das Abschließen von Schreibvorgängen zulässt). Andernfalls kommt es (möglicherweise) zu Datenverlusten.
BEARBEITEN
Das Problem ist, dass der Prozess des Verschleißausgleichs vollständig verborgen ist. JEDER Sektor auf der Festplatte kann jederzeit verschoben werden (mit der geschriebenen Seite ausgetauscht werden), und wenn die Stromversorgung während dieses Vorgangs ausfällt, kann dieser zufällige Sektor beschädigt werden.
Es gibt zwar einigermaßen sichere Wege, um diesen Schritt auszuführen, aber er ist in keiner Spezifikation enthalten, sodass Sie nicht darauf vertrauen können, dass die Karte dies tut. Sie könnten eine Karte testen, damit sie funktioniert, dann könnte der Hersteller die Implementierung ändern, ohne die Teilenummer zu ändern, und Sie sind fertig.
Nach dem Testen führt der Controller meiner SD-Karten dies NICHT auf sichere Weise durch.
Ich könnte eine SD-Karte mit "hoher Zuverlässigkeit" untersuchen, die speziell für Stromausfalltoleranzen angekündigt wurde. Dann muss man dem Hersteller vertrauen, dass er das richtig macht, und das tue ich nicht. Ich möchte wirklich die direkte Kontrolle über das Löschen von Seiten. Ich versuche immer noch, das herauszufinden.
quelle
Jede Art von SD-Karte, die einen herkömmlichen NAND-Flash-Speicher verwendet, muss eine Art von Sektorvirtualisierung verwenden, da kein herkömmliches NAND-Flash-Gerät das Löschen einzelner 512-Byte-Sektoren und kein herkömmliches NAND-Flash-Gerät von erheblicher Größe unterstützen kann Es wäre möglich, eine Leistung zu erzielen, die in einer Größenordnung liegt, die sogar geringfügig akzeptabel ist, wenn bei jedem Versuch, einen Sektor zu schreiben, das Gerät alle Sektoren in dem Löschblock dieses Sektors (sogar in den RAM) kopieren und dann den Block löschen und schreiben müsste Alle Sektoren zurück. Die meisten Sektorvirtualisierungstechniken sind von Natur aus etwas abgenutzt. Ich würde erwarten, dass das größte Problem der Varianz zwischen Qualitätsgeräten und Abschlägen das Ausmaß ist, in dem ein Gerät aktiv versucht, den Ausgleich zwischen Blöcken zu erreichen. im Gegensatz zur einfachen Verwendung einer pseudozufälligen Blockzuweisung und der Hoffnung, dass sich annehmbar annähernd gleichmäßige Ergebnisse ergeben. In der Praxis würde ich davon ausgehen, dass in den meisten Fällen auch eine zufällige / auf das Beste gehoffte Zuordnung ausreicht.
quelle
Sandisk hat ein Whitepaper , in dem die Logik der Abnutzungskorrektur auf den Karten erläutert wird. Anschließend werden Schätzungen zur Lebensdauer der Karte in einer Reihe von Szenarien gegeben. Zusammenfassung: Wenn Sie die Karte nicht ohne Unterbrechung einschlagen, wird sie Jahrzehnte dauern.
quelle
Es ist interessant zu bemerken, dass trotz alledem viele Geräte SD - und microSD - Karten beschädigen, insbesondere solche mit hoher Dichte, wenn der Akku schwach ist oder das Telefon abstürzt / herunterfährt / etc. Ich vermute , dass das Problem unzureichende Regulierung der Spannungsversorgung ist , da dies auch auf einigen Karten bekannt ist (Husten Ad t / Husten) in dem Phänomen einer nicht lesbaren Karte auf bestimmten externen Lesern zu führen , sondern funktioniert auf der Mikro Vielfalt von einigen geliefert Computergeschäfte.
Ich bin gerade dabei, eine Karte mit diesem Fehler wiederherzustellen, merkwürdigerweise sind die meisten Daten wiederherstellbar, aber einige Sektoren ändern sich nicht bei jedem Versuch. Könnte der Abnutzungsgrad selbst ein Fehler sein? (ja mehrere leser ausprobiert, gleicher fehler!)
quelle
Hatte auch einige Erfolge beim "Nuking" von Zombie-Karten, dh solchen, die ein Format nicht vervollständigen oder schreibgeschützt sind. Funktioniert nur mit einem kleinen Prozentsatz, aber sie sind in Bezug auf den Effekt viel empfindlicher als die meisten "offiziellen" Richtlinien.
Eine so behandelte Testkarte hat volle vier Monate gedauert, bevor sie erneut versagt hat. Wenn sie nicht für das Gerät verwendet worden wäre, das für die Versorgung mit verrauschten Spannungen verwendet wurde, wäre die Lebensdauer möglicherweise länger gewesen.
quelle