eightcore, die Garbage Collection muss sein, sonst könnte man ja nur einnal die Kapazität beschreiben und danach nur lesen. Dann gibt es noch eine Idle-GC, die versucht im Leerlauf die gültigen Daten möglicht in ganze Blöcke zusammen zu fassen und die freigewordenen Blöcke zu löschen, so dass die beim nächsten Schreiben direkt benutzt werden können und eben nicht erst gelöscht werden müssen. Bei jeder SSD bricht die Schreibperformance ein, wenn es keine (kaum noch) freie Pages mehr gibt und der Controller während des Schreibvorgangs erst noch die gültigen Daten aus einem Block kopieren und diesen löschen muß.
Nur die Sandforce machen das grundsätzlich nicht, die löschen Blocke immer erst beim Schreiben, auch wenn sie vorher einen Teil freigeräumt haben, was zu einer geringeren WA führen soll (ist Unsinn, denn wenn in einem Block keine Pages mit gültigen Daten mehr sind, dann erzeugt das Löschen ja auch keine WA, die entsteht ja nur durch das Kopieren von noch gültigen Daten). Das ist bei denen der Unterschied zwischen den Neuzustand und dem Normalzustand und der Contrpller räumt immer sowieso Platz frei, wie die 'Over Provisioning' beträgt. Schreibt man in kurzer Zeit, also bevor er wieder aufgeräumt hat, mehr als dort hineinpasst, dann fällt bei dem die Schreibleistung nochmal ab, weil er dann auch noch gültige Daten kopieren und die Blöcke löschen muß.
Der Begriff "Over Provisioning" wird auch unterschiedlich verwendet. Sandforce bezeichnet so den Unterschied zwischen der verbauten NAND Kapazität und der Nutzkapazität, der ja bei jeder SSD vorhanden ist und i.d.R. immer mindestens so 7% beträgt (wegen GiB und GB). Andere Hersteller wie Intel nennen das Free Area und bezeichen als "Over Provisioning" nur einen Bereich der Nutzkapazität, den der User extra freiläßt (indem er ihn nicht partitioniert und die LBAs damit nie angesprochen werden oder er sogar die Anzahl der verfügbaren LBAs einschränkt, was mit entsprechenden Tools auch geht).