Kann ich TRIM simulieren, indem ich alle Nullen schreibe?
Nein.
Der Schreibvorgang erfordert einen gelöschten Sektor, und dann erfolgt der eigentliche Schreibvorgang.
Der Schreibvorgang ist ein Hinweis für die SSD, dass dieser Sektor verwendet wird (die entgegengesetzte Bedingung, die Sie mit einem echten TRIM-Befehl wünschen).
Bevor auf einen SSD-Sektor geschrieben wurde, sieht es aus, als wären alle mit Nullen gefüllt.
Falsch, und anscheinend beruht Ihre Frage auf dieser fehlerhaften Prämisse.
Ein gelöschter Sektor wird mit Bytes von 0xFF (alle Einsen) gefüllt.
Ein Format schreibt normalerweise alle Nullen in jeden Sektor.
Wenn ich also aus Gründen der Funktionalität alle Nullen in einen Sektor schreibe, sieht es wie ein freier aus.
Nein es wird nicht.
Beachten Sie, dass es auf Dateisystemebene "freie" Sektoren und auf SSD-Ebene "freie" Sektoren gibt. Theoretisch sollte es sich um dieselbe Gruppe handeln. Da jedoch die SSD vom Dateisystem explizit darauf hingewiesen werden muss, dass ein Sektor "frei" ist (mit einem TRIM-Befehl), gibt es Diskrepanzen.
NACHTRAG
Die Steuerung hat somit eine technische Möglichkeit, sie als solche zu behandeln. Mein begrenztes Wissen über die IC-Architektur besagt, dass das Herunterfahren einer Schaltung für alle Nullen in Bezug auf die Hardware wahrscheinlich vernachlässigbar wäre, wenn überhaupt.
Die Frage ist: implementiert irgendein Flash / SSD-Controller dieses oder ähnliches tatsächlich?
Nein, weil dies zu unbeabsichtigtem Datenverlust führen würde.
Immer, wenn ein Programm einen Sektor aller Nullen schreibt (z. B. ein Speicherabbild kann solche Blöcke enthalten), würde Ihr SSD die Möglichkeit haben, diesen Sektor zu löschen, da er ihn als nicht zugeordneten Sektor behandeln würde, anstatt einen Sektor zu verwenden, der gerade verwendet wird eine Datei.
Unterm Strich funktioniert Ihr vorgeschlagenes Schema (mit Dateninhalt) nicht.
Wenn Sie einen Sektor als frei oder nicht verwendet kennzeichnen möchten, gibt es den Befehl TRIM.
Es gibt keine Ersatzschreiboperation.