Flash-Speicher: Strom weg - Daten gerettet

Solid State Drives sind nahezu perfekt für Embedded-Systeme geeignet, weil sie unempfindlich gegen mechanische Belastungen sind und einen großen Temperaturbereich aushalten. Probleme kann es aber bei einem unvorhergesehenen Ausfall der Stromversorgung geben. Dann ist die Integrität der Daten gefährdet. Zwei Lösungsansätze schaffen Abhilfe.

Solid State Drives haben langsame, traditionelle Festplatten in vielen Anwendungsbereichen wie zum Beispiel Laptops für den Privatbereich, Unternehmens-Rechenzentren und industriellen Embedded-Systemen auf breiter Front verdängt. Neben hoher I/O-Geschwindigkeit führt der Verzicht auf bewegliche Teile bei SSDs auch zu einem geringeren Stromverbrauch. Hinzu kommt, dass SSDs von Natur aus schock- und vibrationsresistent sind, wodurch sie wiederum besonders für die rauen und harten Umgebungen geeignet sind, in denen Industrie- und Embedded-Systeme oft eingesetzt werden.

Diese robusten Eigenschaften von SSDs machen sie zur zuverlässigen Datenspeicherlösung für eingebettete und industrielle Anwendungen, aber nur, wenn das Problem der Stromversorgung berücksichtigt wird. Während sich das Lesen von Flash-Speicher noch sehr einfach gestaltet, ist das Schreiben weitaus komplizierter, weshalb die meisten SSDs einen flüchtigen DRAM-Cache verwenden, um Schreibvorgänge zu optimieren. Dieser DRAM-Puffer verbessert die Leistung und Lebensdauer der SSDs durch das Zusammenfassen von I/O-Befehlen und die Verteilung der Schreibvorgänge auf das gesamte Laufwerk. Da DRAM aber ein flüchtiges Speichermedium ist, können ohne eine adäquate Sicherung der Stromversorgung bei einem unerwarteten Stromausfall kritische Daten, die in diesen Puffern gespeichert sind, unwiederbringlich verloren gehen. Entgegen den SSDs in den Rechenzentren von Unternehmen mit redundanten Backup-Stromerzeugern und geplanten Datensicherungen oder SSDs in Laptops mit Batterie-Backup speichern SSDs in Industrie- und Embedded-Systemen oft wichtige Daten, während sie in einer harten Umgebung mit einer unzuverlässigen Stromversorgung arbeiten müssen. Daher ist mehr noch als in anderen Anwendungsfeldern eine Strategie für eine stabile Stromversorgung wichtig, wenn SSDs in Embedded-Umgebungen im Einsatz sind.

Das Schreib-Problem

Während sich Daten von Flash-Speichern leicht und schnell lesen lassen, sind Schreibvorgänge deutlich umfangreicher. Auf magnetischen Trägermedien können Daten an Ort und Stelle überschrieben werden. Das Schreiben auf Flash-Speichern erfordert jedoch, dass die zuvor gespeicherten Daten zuerst gelöscht werden. Dadurch besteht jeder Schreibzyklus aus zwei Vorgängen: Löschen und Speichern. Darüber hinaus sind Leseoperationen zwar in der Lage, jeweils kleine Datenzellen auszulesen, P/E-Zyklen (Program/Erase, Schreiboperationen) können dagegen nur auf der Blockebene gesteuert werden. Das Löschen eines großen Blocks, um dann nur eine Zelle darin zu beschreiben, ist daher enorm ineffizient. Die Schreiboperationen werden also oft in einem Cache zwischengespeichert, um dann einen ganzen Block auf einmal schreiben zu können.

Um Schreibvorgänge effizienter durchzuführen, verwenden die meisten SSDs einen DRAM-Puffer, der die Schreibbefehle für eine höhere Leistung zwischenspeichert. Die Implementierung dieses Schreibpuffers in modernen SSDs steigert die Menge der I/O-Befehle pro Sekunde enorm. Zur gleichen Zeit stellt DRAM aber einen flüchtigen Datenspeicher dar, was ihn in Bezug auf die Zuverlässigkeit der Daten bei schlechten Versorgungsverhältnissen zu einer großen Herausforderung macht. Geht die Stromversorgung unerwartet verloren, müssen alle Pufferinhalte in den nichtflüchtigen Speicher übertragen werden oder es folgt der Datenverlust bzw. die Beschädigung der Daten.