PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SandForce Controller und TRIM


Gast
2010-10-02, 08:51:47
Hallo,

schreib mal hier, will mich bei Computerbase nicht erst anmelden.

Das ist ein Kommentar im aktuellen SSD Benchmark bei CB.

------------------------------------------------

Besonderheit bei SandForce-SSDs:

Da in unserem Forum trotz der vorangegangenen Artikel immer wieder gefragt wird, warum die Schreibrate bei den SandForce-SSDs einmalig sinkt und auch mit TRIM nicht wieder steigt:
TRIM ist eine Benachrichtigung des Betriebssystems an den SSD-Controller, dass bestimmte Bereiche nicht-valide (also eigentlich gelöschte) Daten bzw. Dateien enthalten. Die Nachricht nutzen die meisten Controller um valide Daten zusammenzufassen (ähnlich der Defragmentierung bei Festplatten) und Blöcke mit nicht-validen Daten zu löschen, damit stets leere Blocke vorhanden sind, die somit immer mit der gleichen sequentiellen Geschwindigkeit beschrieben werden können.

Nach unserem Verständnis werden diese TRIM-Nachrichten vom SandForce-Controller zwar verarbeitet, führen aber nicht automatisch zum Leeren von Blöcken. Sobald alle Zellen einmal beschrieben wurden, dauert das erneute Beschreiben länger, da entsprechende Blöcke immer erst geleert bzw. gelöscht werden müssen, um mit neuen Daten befüllt werden zu können. Der Vorteil dieser Vorgehensweise liegt darin, dass insgesamt weniger Löschvorgänge nötig sind und somit die Lebenserwartung der Flash-Chips bzw. der SSD erhöht wird. Da Blöcke also erst bei Bedarf vom Controller geleert werden, ist das Anheben der sequentiellen Schreibleistung auf das Ursprungsniveau nicht mehr ohne weiteres möglich.

------------------------------------------------

Mich stört an der letzten Behauptung etwas. Wenn der Controller immer erst bei Bedarf die als leer markierten Zellen löscht, dann ist der ganze Controller sinnlos. (oder TRIM funktioniert einfach nicht richtig) Denn darin besteht doch überhaupt kein Vorteil. Auch steigt damit nicht im geringsten die Lebenserwartung. Denn gelöscht werden muß die Zelle so oder so, egal wann dort wieder geschrieben wird. Ist absolut völlig egal.
Also kann der Controller die markierten Zellen auch löschen wenn er Zeit hat um dann wieder höhere Schreibraten abliefern zu können.

Was meint Ihr?

ZipKaffee
2010-10-02, 10:10:50
Das habe ich mich auf gefragt für was dann Trim? Hast du die Frage schon im CB Forum gestellt?

Morpog
2010-10-02, 14:26:06
Auch steigt damit nicht im geringsten die Lebenserwartung. Denn gelöscht werden muß die Zelle so oder so, egal wann dort wieder geschrieben wird. Ist absolut völlig egal.

Das stimmt so nicht. Mehrere Pages bilden einen Erase Block. Man kann einzelne pages beschreiben ohne vorher den Erase Block zu löschen. Sobald aber eine Page überschrieben werden muss, muss man einen Erase Block löschen.

Gast
2010-10-02, 18:33:27
Hallo,

das was Du meinst macht jeder Controller sowieso in dieser Art und Weise. Darum geht es auch nicht im erwähnten Kommentar.

Hugo78
2010-10-02, 19:17:40
Was meint Ihr?

Wenn es wirklich so ist, dann ist TRIM sinnlos bei Sandforce SSDs.
Kann ja nicht sein das mit über 250MB/s Schreibleistung geworben wird,
bei den meisten Sandforce Modellen und man diese Leistung dann nur einmal nutzen kann. :usweet:

Naja mir egal, meine beiden Hübschen haben Marvell und Indilinx Controller.
Da schleicht die Schreibleistung von vornherein. ;D

=Floi=
2010-10-02, 19:50:53
das habe ich im sammelthread auch gefragt und warum löscht der controller dann nicht selbst einen "leeren" block vorzeitig?
imho kann es doch gar nicht sein, dass alle blöcke angeschrieben sind und nicht mehr weiter belastet werden, damit man auch wieder komplette blöcke leer bekommt.


imho zieht hier wieder der spruch: "bigger is better"

Gast
2010-10-02, 20:18:38
Die Firmware wird wohl einfach verbuggt sein, wird (vielleicht) irgendwann gefixt. Oder auch nicht.

Hugo78
2010-10-02, 21:54:46
Die Firmware wird wohl einfach verbuggt sein, wird (vielleicht) irgendwann gefixt. Oder auch nicht.

Einen Fix wird es schon geben.
Bei SSDs ist es, wie bei jeder neuen Technik ohne Standards.

Da kauft man am bessten nur das, was andere schon erprobt haben.
Weswegen meine erste SSD auch einen Indilinx Controller hatte.

Von Speed her zwar kein Champ, aber zuverlässig und imernoch doppelt so schnell wie alle HDDs. ;)

Von den Zugriffszeiten ganz zu schweigen.

RavenTS
2010-10-09, 13:38:12
IEEE ist ja gerade dabei Standards für die Haltbarkeit von SSDs zu finalisieren. Damit dürfte man dann ja nachweisen können ob diese Taktik der Sandkräfte auch wirklich etwas bringt oder nur Leistung kostet...

Birdman
2010-10-09, 14:22:26
Hallo,
Nach unserem Verständnis werden diese TRIM-Nachrichten vom SandForce-Controller zwar verarbeitet, führen aber nicht automatisch zum Leeren von Blöcken. Sobald alle Zellen einmal beschrieben wurden, dauert das erneute Beschreiben länger, da entsprechende Blöcke immer erst geleert bzw. gelöscht werden müssen, um mit neuen Daten befüllt werden zu können. Der Vorteil dieser Vorgehensweise liegt darin, dass insgesamt weniger Löschvorgänge nötig sind und somit die Lebenserwartung der Flash-Chips bzw. der SSD erhöht wird. Da Blöcke also erst bei Bedarf vom Controller geleert werden, ist das Anheben der sequentiellen Schreibleistung auf das Ursprungsniveau nicht mehr ohne weiteres möglich.
Sandforce nutzt Trim nicht (nur) um mehr Scheibspeed zu erhalten, sondern um vor allem die Lebensdauer der Flashzellen zu erhöhen.
Der Controller speichert sich welche Blöcke (512 Bytes) gemäss TRIM command zum löschen sind und erst wenn genug davon in einem einzelnen Erase Block (das sind afaik 2 oder 4 MB bei den heutigen Sandforce Disks) werden die Zellen auch wirklich gelöscht.

Das nützt insofern der Lebensdauer als dass man weniger oft Zellen löscht die danach sofort wieder beschrieben und wieder gelöscht werden.

Wenn der Controller clever, ist wird er auch wenns ums überschreiben von Daten geht und keine vorgenullten Zellen verfügbar sind - die Blöcke hierfür aussuchen, wo schon am meisten Blöcke zum TRIMen markiert sind.


Grundsätzlich schlecht finde ich daher das Verhalten der Sandforce Dinger nicht.
Leider kenne ich die interna des Controller nicht, aber das imho für die Praxis beste Verhalten wäre ein mix aus sofort Trimmen und dem was Sandforce macht.
Denn mehr als 2-4GB an Speicher muss eigentlich nie leer sein in der Praxis denn wer und wann schreiben man schon so viel an einem Stück?
D.h. der Controller müsste schauen dass immer ein kleiner Teil ohne Rücksicht auf Verluste getrimmt wird, beim Rest kann er sich aber Zeit lassen bis das Optimum an Lebensdauer/Speed erreicht ist.

Leider ist so ein Verhalten halt schlecht für Benchmarks und daher maulen dann die Leute rum...