Flash-Politur

Wie ABI die Lebensdauer älterer SSDs verlängert

Praxis & Tipps | Tipps & Tricks

Dieser Artikel ist der Aprilscherz der c't-Redaktion aus dem Jahr 2015

Die ersten erschwinglichen Solid-State Disks für Desktop-PCs und Notebooks nähern sich allmählich dem Ende ihrer Lebensdauer. Der Verschleiß der Flash-Zellen lässt sich bei manchen SSDs jedoch abschwächen.

Undichtigkeit bedeutet Datenverlust! Und genau der droht manchen Solid-State Disks (SSDs) der ersten Generationen, weil ihre Flash-Zellen in die Jahre kommen. Umso ärgerlicher ist es, dass SSD-Hersteller zwar viele Tricks kennen, um Speicherzellen zu schonen, aber nicht alle davon auch konsequent von Anfang an eingesetzt haben. Das effektivste Verfahren zur Lebensdauerverlängerung sorgt dafür, dass moderne SSDs die doppelte bis vierfache Menge an geschriebenen Daten vertragen wie ihre Vorgänger. Weil die Algorithmen jedoch einiges an Rechenleistung erfordern, sperren die SSD-Hersteller dieses Feature bei älteren und billigeren Laufwerken. Dabei wäre deren Firmware durchaus dazu in der Lage, einen Teil der Berechnungen in den PC-Prozessor auszulagern, jedenfalls unter Windows ab 7.

Leider lässt sich nicht so leicht herausfinden, bei welchen SSD-Typen das klappt. Außerdem muss das Betriebssystem beziehungsweise der Treiber für den SATA-Adapter mitspielen, sonst droht Datensalat. Unsere Testsoftware ctSSD, die Sie über den Link am Ende des Artikels finden, erleichtert die Prüfung Ihrer SSD.

Löchrige Zellen

Die Flash-Chips in SSDs speichern Daten, indem sie elektrische Ladungen – Elektronen – in einer Falle einsperren. Die Halbleiterphysik dahinter bereitet Kopfzerbrechen, aber das Prinzip und die damit einhergehenden Probleme verdeutlicht ein Vergleich mit Weinfässern. Stellen Sie sich vor, ein Winzer wolle Informationen in Fässern speichern. Ein volles Fass bedeutet „1“, eine leeres „0“. Damit bei langer Lagerung möglichst wenig Wein verdunstet, haben die Fässer keine Öffnungen und Stopfen. Zum Befüllen (Schreiben) presst man den Wein vielmehr mit extrem hohem Druck durch die Poren und Fugen der Holzdauben ins Fass. Das Entleeren (Löschen) erfolgt umgekehrt, indem man die Flüssigkeit im Vakuum durch die Fasswände saugt.

Man kann sich leicht vorstellen, dass jedes Befüllen und Leeren nach dieser Brachialmethode die Fasswände strapaziert – allmählich werden sie undicht. Je häufiger sie in der Vergangenheit entleert und wieder gefüllt wurden, desto mehr Wein suppt durch die Poren.

NAND-Flash-Zellen kommen ohne Holzdauben aus, hier verhindert vielmehr eine isolierende Oxidschicht, dass eingesperrte Elektronen die Zelle verlassen. Diese Oxidschicht leidet jedoch bei jedem Schreib- und Löschvorgang ein kleines bisschen, verliert also allmählich ihre Isolationswirkung.

Der ABI-Trick

Die wirksamste Schonung von Flash-Zellen besteht darin, Schreibvorgänge so oft wie möglich zu vermeiden. Ein besonders effektiver Trick zur Schreibvermeidung wiederum besteht in der Idee, die starre Zuordnung von Zellbelegung und Interpretation aufzulösen. Angenommen in einem Zellenblock steht bisher „0b00000000“, es soll nun aber „0b1111110“ gespeichert werden, dann müssten sieben Fässer befüllt werden. Viel schonender ist es, das Datum vorher zu invertieren, also „0b00000001“ zu schreiben und lediglich eine Notiz anzulegen, wie dieser Zellenblock zu interpretieren ist.

Bei SSD-Controllern heißt dieses Verfahren Adaptive Bit Inversion (ABI) und es geht sogar noch einen Schritt weiter: Es durchsucht vor dem Schreiben den Fundus an zum Löschen vorgemerkten Blöcken, ob einer davon besonders gut zum jeweiligen Bitmuster oder dessen Inversion passt. Falls ja, speichert ABI nur einen Verweis, ebenfalls im ABI-Tag.

Im Detail sind die ABI-Algorithmen äußerst komplex. Sie untersuchen beispielsweise zu schreibende Daten in unterschiedlichen Blockgrößen, weil je nach Charakter der Daten verschiedene ABI Block Sizes (ABBS) optimale Resultate liefern. ABI bewertet je nach Bitmuster auch den Nutzen einer Inversion: ABI-Blöcke, in denen besonders viele Einsen stehen, schaden den Flash-Zellen potenziell mehr – es müssten ja mehr Elektronen durch das Oxid tunneln und es dabei beschädigen. Flash-Zellen, die jeweils zwei oder drei Bits speichern – also Multi- und Triple-Level-Cells (MLC/TLC) –, erzwingen noch aufwendigere ABI-Algorithmen. Bei MLC muss die Zelle vier Zustände unterscheiden, also vier unterschiedliche Elektronen-„Füllstände“, wobei jedes höhere Level die Belastung der Zelle quadratisch erhöht. Hier bewertet ABI die zur Speicherung nötigen Bitmuster danach, wann eine Inversion besonders lohnt – und muss dabei logischerweise die Muster der anderen Zellen desselben ABI-Blocks berücksichtigen. ABI berechnet also die Summe der Zellenbelastungen im normalen und im invertierten Zustand.

Eine „Landkarte“ der invertierten und nicht-invertierten Blöcke führen ABI-taugliche SSD-Controller in Form der ABI Bitmap (ABIB); es gibt auch NAND-Flash-Typen mit speziellen ABIB-Puffern.

Zusammenfassend wird aber klar, dass ABI eine gewisse Rechenleistung oder auch Rechenzeit erfordert. Moderne SSD-Controller enthalten Hardware-Beschleuniger für ABI, aber bei älteren SSDs mit langsameren Controllern kann ABI zu etwas höheren Latenzen führen – vor allem beim Schreiben, aber wegen der unterschiedlichen ABBS auch beim Lesen, falls sehr viele Inversionen nötig sind. Es sind also überwiegend Performance-Gründe, weshalb ABI in vielen älteren SSDs nicht freigeschaltet wurde. ABI ist aber auch bei modernen SSDs längst nicht immer aktiv – ein Versuch mit ctSSD kann sich lohnen.

ABI-Prüfung

Um die internen Algorithmen einer SSD muss man sich als bloßer Nutzer üblicherweise keine Gedanken machen – und bei aktuellen SSDs mit ABI ist von außen, sprich: an der SATA-Schnittstelle, davon auch nichts zu bemerken. Schwieriger wird es, wenn man ABI nachträglich freischalten möchte, weil ursprünglich eine sozusagen externe ABI-Version vorgesehen war: Weil die SSD-Controller seinerzeit zu lahm waren, sollte der Hauptprozessor über den SATA-AHCI-Treiber den größten Teil der Rechenarbeit übernehmen. Für den Server-Einsatz gibt es einige SAS-RAID-Hostadapter mit optionalen ABI-Beschleunigermodulen.

Aus heutiger Sicht bietet die Möglichkeit, externes ABI (eABI) nachträglich einschalten zu können, eine Chance zur Verlängerung der Lebensdauer älterer SSDs. Manche davon sind jetzt schon fünf bis sechs Jahre im Einsatz – prüfen Sie ruhig mal nach, wie viele Terabyte Written (TBW) die SMART-Diagnose bei Ihrer SSD anzeigt [2]. Nach bisherigen Untersuchungen halten SSDs zwar häufig viel größere Mengen an Schreibdaten aus, als von den Herstellern versprochen, aber irgendwann kommt schließlich doch das Ende.

Leider lässt sich eABI nicht bei beliebigen SSDs aktivieren, bei manchen klappt es wiederum nur mit bestimmten Firmware-Versionen. Wenn Sie Windows ab Windows 7 verwenden, können Sie mit ctSSD leicht prüfen, ob es bei Ihrer SSD Chancen auf Erfolg gibt. Sie sollten vorher ein Backup anlegen, auch wenn ctSSD nur lesend auf Ihre Daten zugreift.

Unsere Software analysiert die Datenstrukturen auf der SSD – mit ATA-Befehlen lässt sich leider nicht direkt auslesen, ob sich das ABI-Bit setzen lässt. Doch anhand der bei ABI-tauglichen SSD-Controllern typischen Verteilung der Daten auf die logischen Blockadressen (LBAs) erkannte ctSSD im c’t-Labor mit hoher Trefferquote eABI-taugliche Flash-Medien. Bei verschlüsselten SSDs, also auch beim Einsatz von BitLocker, empfiehlt sich eABI übrigens nicht – hier können die Latenzen extrem ansteigen, weil die Berechnungen sehr kompliziert werden.

Je nach SSD-Typ, Kapazität und Füllstand kann ein Testlauf von ctSSD über eine Stunde lang dauern. Verläuft die Prüfung erfolgreich, bietet das Tool an, eABI gleich einzuschalten – dazu ist ein Zugriff auf die Registry nötig, weshalb Sie ctSSD auch mit Administratorrechten starten müssen.

Voraussetzung für eABI ist der Betrieb des SATA-Hostadapters im AHCI-Modus, denn die Inversionsalgorithmen stecken im AHCI-Treiber von Windows, also msahci.sys bei 7 und storahci.sys unter Windows 8/8.1. Bei Letzterem findet sich der ABI-Schalter „ABIControl“ unter HKLM\System\CurrentControlSet\Services\storahci\, bei Windows 7 steht er in HKLM\SYSTEM\CurrentControlSet\services\msahci. Unter Linux funktioniert eABI bisher nicht, denn schon der Bootloader muss ja mit den invertierten Daten umgehen können.

Besondere Vorsicht ist bei Macs geboten, auf denen Windows mit Bootcamp installiert wurde. Wenn Sie auf einem noch nicht kompatiblen MacBook oder einem mit zu altem Betriebssystem ABI in der Windows-Installation aktivieren, kann OS X nicht mehr auf die Daten zugreifen. Nach unseren Erkenntnissen sind alle MacBooks ab dem MacBook Air 11" und 13" von Mitte 2012 an grundsätzlich kompatibel. Aber nur, wenn ab Werk eine SSD von Samsung eingebaut war, ist ABI in der Firmware für OS X freigeschaltet, es wird außerdem erst seit OS X 10.9 (Mavericks) genutzt. Das MacBook Pro ist schon seit Oktober 2011 ABI-fähig.

Erfrischte Zellen

Leider haben SSD-Hersteller anscheinend kein Interesse daran, all ihren Produkten die jeweils maximale Lebensdauer zu bescheren – die geplante Obsoleszenz lässt grüßen. Glücklicherweise ermöglicht es eABI, die Lebensdauer vieler Solid-State Disks deutlich zu verlängern. Schade ist bloß, dass eABI in manchen Fällen die Reaktionsgeschwindigkeit des Flash-Mediums deutlich drosselt. Doch ein PC, der etwas gemächlicher, dafür aber länger arbeitet, beschert seinem Nutzer immer mal wieder Entspannungspausen. (ciw@ct.de)

Literatur
  1. [1] Benjamin Benz, Festplatte ade, Wie Flash-Speicher allmählich den PC erobert, c’t 21/07, S. 100
  2. [2] Boi Feddern, Gucken kost’ nix, SSD-Diagnose mit SMART, c’t 15/13, S. 152

Artikel kostenlos herunterladen

weiterführende Links

Kommentare

Anzeige