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.
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.
endolito