Ich arbeite an einer Low-Power-Anwendung mit Datenspeicherung auf einer microSD-Karte. Im Interesse der Minimierung des Stromverbrauchs plane ich, Daten vor dem Schreiben im RAM zu puffern, und ich vermute, dass die optimale Puffergröße ein ganzzahliges Vielfaches der Flash-Blockgröße auf der SD-Karte wäre, da dies hoch minimieren / eliminieren würde -Stromversorgung/langsames Löschen/Neuschreiben von Blöcken. Leider hatte ich wenig bis keinen Erfolg, Informationen über Flash-Blockgrößen in SD-Karten zu finden. Das Beste, was ich gefunden habe, ist, dass sie anscheinend zwischen 16 KB und 2 MB groß sind. Da es sich um ein Verbraucherprodukt handelt, sind technische Details des Herstellers praktisch nicht vorhanden. Gibt es einen esoterischen Befehl in der SD-Spezifikation oder etwas, mit dem ich die Flash-Blockgröße bestimmen kann? Ist dieser Ansatz unnötig/übertrieben/ansonsten sinnlos?
Hoppla, gefunden: SECTOR_SIZE (Sektorgröße löschen) im CSD-Register.
Ich schätze, ein Follow-up ist, ob es nützlich ist, Schreibvorgänge für Energiesparzwecke sektoral auszurichten, aber zumindest werde ich das wahrscheinlich messen können.
Indem Sie Ihre Blockschreibvorgänge an den Flashkartenblöcken ausrichten, können Sie die Schreibgeschwindigkeit erhöhen, da Sie nur einen Block statt zwei oder mehr schreiben, und somit die Zeit verkürzen, die die Karte mit Strom versorgt werden muss. Darüber hinaus verbraucht ein Flash-Block-Schreibvorgang weniger Strom als die zwei, die erforderlich wären, wenn Sie über eine Grenze schreiben würden.
Ihre größte Energieeinsparung liegt jedoch darin, so schnell wie möglich mit der Karte zu kommunizieren, damit Sie sie so kurz wie möglich mit Strom versorgen können.
Obwohl ein Flash-Block-Schreibvorgang ziemlich viel Strom verbraucht, wird die langsame Kommunikation mit der Karte und das Belassen der Karte während der Kommunikation ziemlich viel mehr verbrauchen, wenn Sie die Kommunikation nicht beschleunigen.
Endolith