Tamaño del bloque flash MicroSD

Estoy trabajando en una aplicación de bajo consumo con almacenamiento de datos en una tarjeta microSD. Con el fin de minimizar el consumo de energía, planeo almacenar los datos en la RAM antes de escribirlos, y sospecho que el tamaño óptimo del búfer sería un múltiplo entero del tamaño del bloque flash en la tarjeta SD, ya que esto minimizaría/eliminaría la alta -poder/borrado de bloque lento/reescrituras. Desafortunadamente, he tenido poco o ningún éxito para encontrar información sobre los tamaños de bloques flash en las tarjetas SD; lo mejor que he encontrado es que aparentemente oscilan entre 16Kb y 2Mb. Naturalmente, al ser un producto de consumo, los detalles técnicos del fabricante son prácticamente inexistentes. ¿Hay algún comando esotérico en la especificación SD o algo que pueda usar para determinar el tamaño del bloque flash? ¿Es este enfoque innecesario/excesivo/de otro modo inútil?

Vaya, lo encontré: SECTOR_SIZE (borrar tamaño de sector) en el registro CSD.

Entonces, supongo que un seguimiento es si es útil o no alinear las escrituras sectoriales para ahorrar energía, pero al menos probablemente podré medir eso.

Use la herramienta de formateo SD oficial y vea qué tamaño de bloque usa para su tarjeta, y luego use el mismo tamaño si vuelve a formatear: sdcard.org/downloads/formatter

Respuestas (1)

Al alinear sus escrituras de bloque con los bloques de la tarjeta flash, puede aumentar la velocidad de escritura, ya que solo escribirá un bloque en lugar de dos o más y, por lo tanto, disminuirá la cantidad de tiempo que la tarjeta debe estar encendida. Además, una escritura de bloque flash consumirá menos energía que las dos que se requerirían si escribiera a través de un límite.

Sin embargo, su mayor ahorro de energía estará en comunicarse con la tarjeta lo más rápido posible para que pueda alimentarla durante el menor tiempo posible.

Aunque una escritura de bloque flash consume bastante energía, comunicarse lentamente con la tarjeta y dejarla encendida durante las comunicaciones consumirá un poco más si no acelera las comunicaciones.

Al escribir en una tarjeta SD, ¿hay bits de estado separados para indicar "Terminé lo suficiente con la última escritura para aceptar otro comando" versus "Terminé lo suficiente con la última escritura para poder apagarlo de manera segura"?
@supercat No recuerdo, pero esa es una buena pregunta para la especificación SD.