Es gibt ein Missverständnis. Das Beschneiden verursacht keine zusätzlichen Schreibvorgänge, es verringert sie.
Eine SSD, oder besser gesagt ihr NAND, hat zwei Begriffe von "Blöcken", von denen einer eigentlich Block genannt wird (normalerweise etwas 128k bis 512k), und die andere, die viel näher an dem liegt, was Sie meinen, wenn Sie von "Block" sprechen Die Begriffe Ihres Dateisystems werden als Seite bezeichnet (normalerweise etwa 4k). Sie können schreiben, eine vollständige Seite zu einem Zeitpunkt aus, so wie man es auf einer alten Festplatte, kein Problem. Die Dinge funktionieren einfach wie erwartet.
Sie können eine Seite jedoch nicht überschreiben, sie wird nur einmal geschrieben. Sie können es danach nur noch löschen und wieder beschreibbar machen. Dies ist, was für die Lebensdauer des NAND zählt. Das Problem ist nur ... in Wirklichkeit können Sie keine Seiten löschen. Sie können nur Blöcke löschen (dh Cluster von 32 bis 64 Seiten gleichzeitig).
Das bedeutet, dass der Controller beim Überschreiben einer Seite ("blockieren" in Bezug auf das Dateisystem):
- Lesen Sie im kompletten Block
- Wenn ein "jungfräulicher" oder bereits gelöschter Block vorhanden ist, verwenden Sie diesen
- Anderenfalls den gleichen Block löschen
- Schreiben Sie den kompletten Block aus und ändern Sie den Inhalt der überschriebenen Seite entsprechend
- Führen Sie einige unspezifische "Magie" durch, so dass die Löschzyklen gleichmäßig über alle Blöcke verteilt sind, um einen vorzeitigen Tod zu verhindern
Dies ist etwas vereinfacht, aber das Prinzip ist so. Ein intelligenter Controller macht vielleicht etwas anderes (z. B. logische Neuzuordnung von Seiten, füllt alle Seiten so lange aus, bis keine übrig ist, und "erinnert sich" irgendwie daran, welche gut und welche schlecht sind usw.), aber im Prinzip ist der Arbeitsablauf wie beschrieben über.
Dies ist insofern ein Problem, als kleine Schreibvorgänge eine übliche Sache sind, so dass bald jeder Block auf Ihrer Festplatte mindestens einmal beschrieben wurde. Was kann der Controller jetzt tun? Nicht viel. Es weiß nicht wirklich, was das Dateisystem macht oder was erwartet wird, daher muss es an der konservativsten Annahme arbeiten. Das heißt, alles und alles, was einmal geschrieben wurde, muss erhalten bleiben.
TRIM löst dieses Problem. Sie teilt dem Controller mit, dass ein so großer Bereich nicht verwendet wird, so dass der Controller diesen auch verwerfen kann. Es schreibt nichts. Wenn überhaupt, werden nur Blöcke gelöscht (allerdings nur einmal, nicht jedes Mal).
Da Sie dem Controller mitgeteilt haben, dass Sie diese Daten nicht verwenden, besteht die Gefahr, dass Sie sie ohne Schaden wegwerfen. Nun sind plötzlich wieder beschreibbare Blöcke verfügbar, ohne dass Daten kopiert und Blöcke wiederholt gelöscht werden müssen. Dadurch wird das Schreiben nicht nur schneller, sondern es werden auch weniger Löschungen durchgeführt.