ist es nicht so, dass bei den Controller mit Write Combining & mehreren Kanälen eine gewisse fragmentierung gewünscht ist um mit allen Kanälen gleichzeitig zu lesen? Da wäre eine Defragmentierung zugar schlecht, bzw müsste so eingestellt sein dass sie die Daten jeweils auf z.b. 10 Kanäle des Controllers gleichmäßig verteilt.
Achtung - Write Combining fragmentiert nicht die Daten auf der Platte (Dateifragmentierung gibt es bei SSDs nicht), sondern die LBA-Tabelle! Ich hab jetzt 10 Minuten rumgesucht um diesen Artikel irgendeines Französischen Magazins zu finden wo das aufgeschlüsselt war, aber leider ohne Erfolg...
Ich versuch's mal zusammenzufassen:
1. Betriebssystem schickt viele random writes an aufeinanderfolgende LBAs (25, 26, 27, 28 etc.)
2. In der SSD sind diese LBAs per Wear Leveling quer über alle Blöcke vermappt
3. Write Combining Algoritmus merkt was und sagt: halt, warum in zwanzig Blöcke schreiben, was auch in einen einzigen Block passt!
4. SSD puffert die random writes im Cache und schreibt dann die gesamte Gruppe sequentiell in einen Block, der mit völlig anderen LBAs gemappt ist (zb. 57, 3482, 2, 178 etc.)
5. SSD reorganisiert ihre LBA-Tabelle, indem sie einfach umetikettiert: 25 = 57, 26 = 3482, 27 = 2, 28 = 178 und so weiter.
Das Problem dabei: wenn sehr sehr viele random writes durch dieses Verfahren in sequentielle writes umgewandelt wurden... dann ist der nächste anstehende sequentielle Zugriff im Gegenteil plötzlich random, weil die LBA-Tabelle so konfus umgeschrieben wurde!
Das ist das was man im allgemeinen unter Blockfragmentierung versteht.