Vida de la tarjeta SD mientras se usa para almacenar una estructura de datos

StackOverflow https://stackoverflow.com/questions/1214293

  •  06-07-2019
  •  | 
  •  

Pregunta

Se me ocurrió una estructura de datos basada en disco para almacenar datos entrantes en tiempo real, esto no está en la memoria porque la matriz puede llenarse y hacer que el jvm se bloquee. La estructura de datos y el algoritmo funcionan muy bien. Mi única pregunta es si esto afecta en gran medida la vida de una tarjeta SD.

Sé que las tarjetas SD tienen lecturas y escrituras limitadas, pero cuánto es "limitado". ¿Escribir en la tarjeta SD por ejemplo, en promedio, 20 minutos por sesión afectará en gran medida a la tarjeta SD hasta el punto en que el usuario vea que fue esta aplicación la que la mató?

¿Fue útil?

Solución

El número de escrituras en la tarjeta está en de 100'000s. Este es el número de borrados del sector flash, que puede ser mucho mayor que un sector de disco.

He encontrado el siguiente documento con cálculos: STEC SMALL CARDS WEAR LEVELING Y CALCULADORA DE POR VIDA

Uno de los ejemplos: Vida útil = 2,000,000 x (512MB - 100MB - 128KB) / (50MB x 10 / día) = 4,513 años

Entonces, si hace un trabajo razonable de diseño (es decir, no abra / cierre archivos por cada byte que escriba, ya que esto puede forzar el vaciado y, por lo tanto, escribir), ni siquiera me molestaría en configurar pruebas muy extensas ... .

Otros consejos

Pensé que recordaba que la memoria flash moderna era buena para cientos de miles de reescrituras. El número de lecturas, hasta donde yo sé, no está limitado.

Si te hace sentir mejor, Windows Vista admite una característica llamada ReadyBoost, que te permite asignar espacio de caché en una unidad flash USB para mejorar el rendimiento. Creo que siempre y cuando consigas igualar las escrituras de alguna manera, deberías estar bien.

Además, algunos módulos de memoria flash tienen controladores incorporados con optimización de escritura integrada, por lo que intentarán escribir en diferentes áreas de la memoria en operaciones de escritura posteriores. Sin embargo, probablemente no pueda contar con eso, a menos que descubra con certeza si su tarjeta de memoria en particular tiene un controlador integrado (SD, en particular, no tiene un controlador integrado, pero tal vez todavía tenga algún otro mecanismo por el cual iguala las escrituras).

EDITAR: aquí hay un enlace que explica el desgaste de la memoria y la "nivelación del desgaste" con más detalle: http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

Compré uno de los primeros eeepc que usaban una tarjeta SD como 'disco duro' y por eso me interesaron las discusiones sobre esto, particularmente porque tenía el modelo de 2Gb. Tarjeta SD de 4GB. Es difícil obtener datos reales, pero todas las opciones informadas que puedo encontrar sugieren que esto no debería ser un problema dentro de una vida útil razonable para la máquina (y ciertamente mi eeepc ha estado funcionando muy bien en un sistema de archivos ext3 en el Tarjeta SD, es decir, mucha actividad, sin ningún problema, ya que la pirateé).

La opinión parece ser que las tarjetas SD modernas deberían proporcionarle al menos 100,000 ciclos, por lo que creo que puede esperar razonablemente estar bien si la vida útil de su dispositivo es de solo unos pocos años. Sin embargo, su única forma de asegurarse es configurar algunas pruebas con su programa escribiendo continuamente en un lote de tarjetas de muestra y ver si fallan dentro de un período de tres meses más o menos. También preguntaría directamente a los fabricantes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top