Lox2Eagle said:
Modran said:
[...]Damit sich die Schreibzugriffe über möglichst viele leere Sektoren streuen können. [...]
Bei FAT werden Schreibzugriffe gestreut? Das wäre mir neu.
Nein!
Das Filesystem hat damit nichts zu tun. Ich meine damit eine generelle Eigenschaft von SD-Karten (und anderen Speichern auf Flash-Basis).
In der Theorie läuft es so: zu jedem Speicherblock in der SD-Karte wird zusätzlich ein Wert gespeichert, wie oft in diesen Speicherblock geschrieben wurde. Der Controller INNERHALB der SD-Karte versucht nun, die Schreibzugriffe so zu verteilen, daß zuerst selten geschriebene Blöcke neu geschrieben werden. Laut Wikipedia gibt es hier deutliche Qualitätsunterschiede in den Streuungs-Strategien in der Firmware der vrschiedenen SD-Karten-Hersteller, was ich allerdings bisher selbst noch kaum austesten konnte (für einen aussagefähigen Test müßte man insg. ca. 100 SD-Karten so lange stressen, bis sie kaputt sind. Danke, nicht mein Job.)
Lox2Eagle said:
Ich dachte gerade da das nicht passiert, ist FAT anfällig für Fragmentierung und allgemein ein Flash-unfreundliches Dateisystem.
Das FAT-System kann da nix für, das ist sogar recht fehlerunanfällig. Im Prinzip. In der Praxis kommt es darauf an, wie es verwendet wird. Wie halt immer ...
Nicht umsonst kann jedes heutige System (Mac, Linux, Dig-Kameras, Handys ...) das FAT-System. Nur Windows kann es nicht. Also, es kann schon, aber es will nicht.
- FAT32 unterstützt 265Mio Cluster, Windows (egal welches) nur 4 Mio
- Fat32 kann 8 TeraByte formatieren, außer unter Windows, da sind es nur 2GigaByte ... :twisted:
Lox2Eagle said:
Modran said:
[...]ich [tausche] nach einiger (längerer!) Zeit die belegten Blöcke aus ....
Wie stellst Du das an?
Da wirds tricky - aber das macht auch erst bei 24/7-Benutzung Sinn, also egal
edit:
Fragmentierung spielt bei SD-Karten überhaupt keine Rolle. Wirklich, nicht die geringste!
Stell Dir vor, Du bist ein 2-GH-Pentium, der gerade den Sektor 1 von der Festplatte gelesen hat. Du hast gute Karten, wenn Du als nächstes den Sektor 3 lesen willst. Doch für Sektor 2 ist es knapp zu spät, das erste Byte davon ist gerade eben schon am Lesekopf vorbeigezischt. Ganz knapp zu spät. Wenn Du jetzt wirklich als nächstes den Sektor 2 lesen willst, mußt Du so lange warten, bis die Festplatte sich ein ganzes Mal um sich selbst gedreht hat. Das sind Millisekunden - für den Prozessor eine Ewigkeit! Und für den Benutzer auch, wenn die Platte nach jedem gelesenen Sektor erstmal wieder dreitausend Sektoren überspringen muß.
Noch schlimmer wird es, wenn Du als nächstes den Sektor 50.000 lesen willst - nun mußt Du auch noch den Lesekopf bewegen und so lange warten, bis der sich über der richtigen Spur eingependelt hat.
Und nun nimm die SD-Karte. Der ist es völlig Wurscht, ob Du Sektor 1, 2, 3 oder 7 Millionen auslesen willst, denn die muß keinen Lesekopf bewegen, und sie muß nicht warten, bis ein Scheibe sich an die richtige Stelle gedreht hat. Sektor 9 oder Sektor 99999, ganz egal (Ausnahme: gecachtes Lesen).