Thomas Wildgruber <
excp...@web.de>:
> On Tue, 22 Jan 2013 10:07:46 +0100, Marc Stibane wrote:
>
>> Wenn man also 200mal dieselbe Datei (ein Directory ist auch nur eine
>> Datei) auf "denselben" (logischen) Block schreibt (z.B. nur das Datum
>> verï¿œndert), wird die SSD jedesmal einen neuen (physikalischen) Block aus
>> der Menge der leeren Blï¿œcke nehmen und den bisher benutzten
>> (physikalischen) Block freigeben. Wenn man der SSD nicht mittels TRIM
>> sagt dass Blï¿œcke von gelï¿œschten Dateien ebenfalls frei sind, kann die
>> SSD diese nicht verwenden und muss zwangsweise mit immer weniger
>> werdenden noch niemals beschriebenen Blï¿œcken auskommen.
>
> Eigentlich eh verwunderlich, wie sich so ein ineffizientes Konzept
> ï¿œberhaupt durchsetzen konnte... ;-)
Das kommt davon, wenn man logische Blocknummern frei nach irgend einem
komplizierten Wear-Leveling-Algorithmus dynamisch den physikalischen
Speicherstellen zuordnet.
Bei HDD (und allen anderen direkt addressierbaren Speichermedien)
reicht es, wenn das Betriebsystem sich irgendwo merkt, welche Bloecke
belegt und welche frei sind, und selbst dafuer sorgt, das neue Daten
nur in gemaess dem Betriebssytem (d.h. Dateisystemtreiber) bekannt
"freie" Bloecke auf dem Speichermedium ueberschreibt.
Es ist einer solchen HDD schnurtzpiepegal, ob ein Block "frei" ist
oder nicht.
Bei Flash hingegen hast du eine Abstraktionsebene dazwischen, eben
weil ein Flash-Controller versucht schreibzugriffe moeglichst
intelligent auf alle Speicherzellen gleichmaessig zu verteilen.
Um jetzt moeglichst effizient speicherzellen die selten geschrieben
wurden mit in die Auswahl potentiell zu beschreibender Zellen
aufzunehmen, muss er wissen ob diese nun frei sind oder nicht.
Bei Klassischen Dateisystemen war sowas (s.O.) aber nie vorgesehen,
darum hat man den TRIM befehl erfunden, der es dem OS erlaubt diese
Information an den SSD-Controller weiterzuleiten.
Auch ohne TRIM arbeitet wear-leveling so effizient wie es mit der
je nach Hersteller mehr oder weniger Ueppig ausgestatteten
UEberprovisionierung moeglich ist.
Aber hier gilt: Viel hilft Viel, je mehr freie Bloecke dem Controller
zur Verfuegung stehen, desto effizienter, schneller und besser
(langlebiger) das Wear-Leveling.
Ein moeglicher Weg dafuer ist einfach mehr als den vorm Herstller
vorgesehenen Platz frei lassen (kleinere Partition als verfuegbar),
ein dazu unabhaengiger zweiter Weg ist eben TRIM. Ein dritter Weg ist
uebrigens ein spezielles Flash-Filesystem, dass diese Funktion nicht
nur nachtraeglich draufgepappt bekommen hat, sondern konzeptionell
schon von vorneherein eingebaut.
Und Durchsetzen konnte es sich nur deswegen, weil es die einzige
technisch realisierbare und bezahlbare Moeglichekeit ist.
Juergen
--
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)