Forum

Abnutzungseffekte bei SSDs? - TRIM-Befehl
April 13, 2011, 14:49:48
Nachdem ich zum Thema Trim-Befehl für SSD-Platten fündigen geworden bin, stoße ich immer wieder auf die Aussage, es würde auf SSDs "Abnutzungseffekte" geben (Unter anderem bei Wikipedia und in einigen Foren).

Wie kann es bei Elektronischen-(Flash)-Speichern Abnutzungeffekte geben?
_______
«Das Internet? Gibt's diesen Blödsinn immer noch?»  (Homer Simpson)
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #1: April 13, 2011, 15:55:52
Meines Wissens gibt es mehrere physikalische Effekte, die eine Abnutzung (wear-out) von Feldeffekt-Transistoren bewirken. Nicht dass ich die hier fachmännisch erläutern könnte. (Aber das würde wohl ohnehin zu weit führen.) Fakt ist aber schon, dass so ein Transistor nur eine beschränkte Anzahl Schaltvorgänge zuverlässig ausführen kann. Und soviel ich weiss, gehören jene Transistoren, mit denen Flash-Speicher realisiert werden, zu den eher kurzlebigeren (so ab 10'000 Speicherzyklen wirds AFAIK kritisch).
_______
Complete liberty of contradicting and disproving our opinion, is the very condition which justifies us in assuming its truth for purposes of action; and on no other terms can a being with human faculties have any rational assurance of being right. (John Stuart Mill - On Liberty)

Florian

  • Verderbliche Ware!
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #2: April 13, 2011, 16:29:30
Bzgl. TRIM ist „Abnutzungseffekt“ in der Tat missverständlich.

Kurz gesagt wird auf SSDs etwas anders abgespeichert als auf einer Festplatte, der (S)ATA-Controller verwurstelte sich also und bekam dann als Erweiterung den TRIM-Befehl.

Länger gesagt:
SSD-Controller speichern in 4KB-Blöcken (Pages genannt). Sind die nun aber nicht ganz leer, liest er erst den gesamten Block aus, kopiert das Neue hinzu und speichert zusammen ab - was Zeit kostet.
Nun kommt der Festplattencontroller daher. Er ist gewohnt, bei gelöschten Dateien nicht etwa den Festplattenbereich tatsächlich zu löschen, er löscht nur den Verweis darauf und gibt sie zum Überschreiben frei. Das funktioniert nun natürlich nicht mehr zufrieden stellend, denn wenn ein „gelöschter“ SSD-Block (Page heißt das eigentlich) tatsächlich noch Inhalt hat, wird er von der SSD-Firmware eben erstmal ausgelesen. Und dann erst neu beschrieben.
Auf Dauer also eine zunehmende Verlangsamung beim Schreiben.

Das TRIM-Kommando löscht unbenutzte Blöcke wirklich. Damit kommt es viel seltener zum Block auslesen/abspeichern („block rewrite“).
Das Apple SSDs verbaut ohne das TRIM-Kommando bereitzustellen ist schon wieder mal lustig.


Desweiteren haben verschiedene Hersteller dann noch Spezialitäten wie Load Balancing auf Lager, die ich aber nicht beurteilen kann.


_______
Beitrag frei Haus geliefert. Frisch von der Apfelinsel.

mbs

Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #3: April 14, 2011, 10:29:44
Das besondere an einem Flash-Speicher ist ja, dass er Informationen auch noch "ohne Strom" behält. Dazu müssen in den Transistoren, aus denen der Flash-Speicher besteht, elektrische Ladungen dauerhaft gehalten werden. Beim Löschen und Wiederbeschreiben einer solchen Speicherzelle müssen vereinfacht gesagt also physikalische "Änderungen im Material" stattfinden, ansonsten wäre eine dauerhafte Speicherung nicht machbar. Diese Änderungen nutzen den Halbleiter tatsächlich ab.

Wie warlord schon angedeutet hat, kann eine normale Flash-Speicherzelle nicht mehr 10.000 Mal beschrieben werden. Danach arbeitet sie möglicherweise fehlerhaft und wird vom eingebauten Controller der SSD gesperrt. Bei neueren, noch kleineren Flash-Speichern, wird dies übrigens sogar noch schlimmer: Eine 34-Nanometer-Zelle hält nur 5.000 Schreibvorgänge aus, neue 25-Nanometer-Entwicklungen nur 3.000.

In den SSDs werden zwei Techniken eingesetzt, um diese Probleme auszugleichen: Zum einen ist ein starkes Überangebot an Speicher vorhanden ("Overprovisioning"), zum anderen verwendet die SSD Verfahren zur gleichmäßigen Abnutzung ("Wear Leveling").

Overprovisioning heißt, dass in Wirklichkeit viel mehr Speicher in einer SSD steckt, als dem Benutzer mitgeteilt wird. Eine 80-GB-Platte enthält in Wirklichkeit vielleicht 100 GB oder sogar 120 GB. Der Speicher, der zuviel ist, wird als stille Reserve verwendet.

Wear Leveling heißt, dass die SSD genau Buch darüber führt, wie oft jeder Speicherblock bereits beschrieben wurde und für gleichmäßiges Abnutzen über den gesamten Bereich (inklusive Reserve) sorgt. Wird ein Speicherblock nochmals beschrieben, dann wird in Wirklichkeit wahrscheinlich nicht der gleiche Block für den neuen Inhalt verwendet, sondern ein anderer Block, der noch nicht so oft genutzt wurde.

Der TRIM-Befehl hat nur zum Teil mit dem Gleichmäßigmachen der Abnutzung zu tun. Noch wichtiger ist, dass Schreibvorgänge hierdurch stark beschleunigt werden können.

Werden bei einer normalen Festplatte die Daten eines Speicherblocks verändert, so wird dieser Block einfach mit den neuen Daten überschrieben. Genau wie bei einem Tonband ist gleichzeitiges Löschen und Neubeschreiben möglich.

Bei Flash-Zellen ist das anders: Bevor eine Flash-Zelle neu beschrieben werden kann, muss der alte Inhalt zunächst mal gelöscht werden (was ziemlich lange dauert!), danach findet der eigentliche Schreibvorgang statt. Schreiben bei Flash ist deshalb extrem viel langsamer als Lesen.

Auch hier greift die SSD zu einem Trick: Verbunden mit dem Wear Leveling sucht sich die SSD beim Schreiben einen möglichst noch fabrikneuen Block, auch hierfür dient die stille Reserve. Der muss nicht gelöscht werden und das Schreiben kann sofort beginnen. Die SSD führt außerdem darüber Buch, dass der Inhalt des alten Blocks nun ungültig ist und setzt ihn auf eine interne To-Do-Liste nach dem Motto "muss ich später mal löschen, wenn ich Zeit habe". Dieses Verfahren heißt "Garbage Collection".

Wenn die SSD aber ein gewisses Alter erreicht hat, wird es immer weniger fabrikneue Blöcke geben. Die Schreibvorgänge werden - auch zusammen mit dem Füllgrad der SSD - deshalb immer langsamer. Deshalb muss es das Ziel der SSD sein, so gut wie möglich zu erkennen, welche Flash-Blöcke in stillen Minuten wirklich gelöscht werden können.

Das Problem: Zwar erkennt die SSD, dass Daten aus einem Speicherblock nicht mehr gebraucht werden, wenn dieser Block mit neuen Daten überschrieben wird, aber sie erkennt es nicht, wenn Dateien gelöscht werden. Beim Löschen von Dateien war es nämlich bisher immer so, dass das Betriebssystem einfach nur den Eintrag im Inhaltsverzeichnis des Ordners gelöscht hat. Die Datenblöcke an sich blieben aber liegen. Die SSD "weiß" nicht, dass diese Daten nicht mehr gebraucht werden und die Flash-Blöcke gelöscht werden könnten.

Hier kommt nun der TRIM-Befehl ins Spiel: Mit diesem Befehl kann das Betriebssystem der SSD helfen und ihr bei jeder Löschung einer Datei mitteilen, welche Blöcke zu dieser Datei gehören und somit auch physisch gelöscht werden können. Betriebssystem und SSD "wissen" nun beide, welche Blöcke frei und welche gelöscht sind. Die SSD kann somit sowohl das Wear Leveling verbessern als auch die Schreibgeschwindigkeit bei zunehmendem Alter konstant halten.
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #4: April 14, 2011, 10:39:08
Vielen Dank für die umfassende Erklärung.

Das macht dann SSDs nicht gerade sehr langlebig und es ist wohl schwer einzuschätzen, wie schnell eine Platte nach 5 oder mehr Jahren ist.
_______
«Das Internet? Gibt's diesen Blödsinn immer noch?»  (Homer Simpson)
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #5: April 14, 2011, 11:09:45
Ich liebe Aufsätze die ich verstehe!

Danke!
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #6: April 15, 2011, 16:14:45
mbs - das war super erklärt. Du solltest Bücher schreiben ;)
_______
I will not make any deals with you. I've resigned. I will not be pushed, filed, stamped, indexed, briefed, debriefed or numbered.
My life is my own.

Florian

  • Verderbliche Ware!
Re: Abnutzungseffekte bei SSDs? - TRIM-Befehl
Antwort #8: Juni 13, 2015, 16:56:56
Kaum wartet man fünf Jahre…
_______
Beitrag frei Haus geliefert. Frisch von der Apfelinsel.