Unterschiedliche Dateisysteme erfordern unterschiedliche RAM-Mengen in einem System, das sie verwendet. Ein System, das eine Datei in ein FAT-Dateisystem schreiben muss, könnte theoretisch mit einem einzigen 512-Byte-Puffer auskommen, obwohl die Leistung ziemlich schrecklich wäre. Die Erweiterung auf zwei oder drei 512-Byte-Puffer würde die Dinge enorm verbessern. Wenn Sie darüber hinaus gehen, verbessern Sie die Situation etwas mehr, und wenn Sie die optimale Leistung einer größeren Karte erzielen möchten, benötigen Sie mehr Speicher als die optimale Leistung einer kleineren Karte. Eine Kamera, die nur genügend Puffer enthält, um mit kleineren Karten eine optimale Effizienz zu erzielen, kann dies jedoch weiterhin mit größeren arbeiten, wenn auch weniger effizient.
Ein kniffligeres Problem betrifft die Tatsache, dass Speicherkartenstandards festlegen, dass sich jede Karte wie eine nummerierte Sammlung von 512-Byte-Sektoren verhält, die unabhängig voneinander in beliebiger Reihenfolge gelesen und geschrieben werden können. Auf diese Weise werden die Daten jedoch nicht auf den Chips in gespeichert Karten. Die in einer typischen Speicherkarte verwendeten Speicherchips sind in 528-Byte-Seiten unterteilt. Diese wiederum sind in Blöcken von 256 oder mehr gruppiert. Sobald eine Seite geschrieben ist, kann sie nicht mehr neu geschrieben werden, ohne sie und alle anderen Seiten in ihrem Block zu löschen. Theoretisch wäre es für eine SD-Karte möglich, einer Aufforderung zum Schreiben eines 512-Byte-Sektors nachzukommen, indem alle Daten in ihrem Block in den RAM kopiert, der Block gelöscht und der gesamte Block mit neuen Daten in einem Sektor zurückgeschrieben werden . In der Praxis wäre die Leistung schrecklich. Stattdessen, Das Schreiben eines Sektors bewirkt, dass die SD-Karte eine leere Seite auswählt, die Daten zusammen mit ihrer Sektornummer und verschiedenen Zusatzinformationen (die Grundseiten sind 528 Bytes anstatt 512) dort schreibt und irgendwie festhält, dass dies der richtige Ort ist die Daten. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss.
All diese Logik bedeutet, dass die SD-Karte zusätzlich zu FAT32 oder einem anderen Dateisystem, das von der Kamera erkannt wird, ein eigenes Blockzuweisungs- und -verwaltungssystem haben muss. Alle Probleme, die in diesem System auftreten, können zu Datenverlusten führen, unabhängig davon, auf welchem System sich das System befindet. Theoretisch sind viele Speicherkarten so konzipiert, dass sie selbst dann, wenn die Stromversorgung während eines Vorgangs unerwartet unterbrochen wird, den Status der Karte auf den Stand vor Beginn des Vorgangs zurücksetzen oder vollständig ausführen können ( wenn alle erforderlichen Daten geschrieben wurden und die Karte einfach redundante Daten löscht). Leider unterscheiden sich Karten darin, wie gut sie eine solche Logik implementieren. Wenn ein unerwarteter Stromausfall die Speicherverwaltungstabellen einer Karte verstopft,
Persönlich wäre es für das SD-Konsortium besser gewesen, ein Dateisystem anzugeben, das von FAT32 unabhängig ist, oder zumindest anzugeben, dass eine Karte, die als FAT32-Volume lesbar sein muss, mithilfe einer dateibasierten Kommunikation geschrieben werden sollte Protokoll. Eine Karte, die weiß, welche Sektorgruppen Mitglieder jeder Datei sind, könnte ihre Defragmentierungsroutinen dahingehend optimieren und auch einen besseren Schutz vor Datenverlust bieten als eine Karte, die die Festplatte als eine Gruppe unabhängiger 512-Byte-Dateien darstellen musste Sektoren, aber zum Guten oder Schlechten sind die Dinge nicht so spezifiziert.