3 votos

¿Cuántas veces se puede reescribir la memoria flash antes de tener que borrarla?

Con la memoria flash, sólo es posible escribir borrando los bits de su estado de borrado (establecido), y la única manera de establecer un bit es borrar la región que lo contiene. Si sólo necesitas borrar bits, entonces puedes hipotéticamente reescribir una sección de la memoria flash hasta tantas veces como bits haya en esa sección antes de tener que borrarla. Sin embargo, he notado que las partes SAM-D de Atmel especifican un límite más estricto en esto. Sección 37-12 de la hoja de datos de la familia SAM D21/DA1:

Tenga en cuenta que en esta tecnología flash, se permite un número máximo de 8 escrituras consecutivas por fila. Una vez que se alcanza este número, es obligatorio borrar la fila.

He revisado algunas otras hojas de datos de otros MCUs y algunos ICs de memoria flash, y hasta ahora la hoja de datos del SAM D21 es el único lugar donde he visto un límite como este especificado. Dado que la hoja de datos de Atmel lo indica sólo como una nota y no como una especificación cualificada, no estoy seguro de si este límite se basa en las peores condiciones (como el voltaje, la temperatura o el número de ciclos). Supongo que este límite puede variar con la tecnología específica utilizada (de ahí la mención en la nota de Atmel), pero en ese caso no sé qué características específicas de la flash D21 imponen este límite.

No creo que sea razonable esperar que se pueda borrar cada bit de una región individualmente, pero si hay un límite general en el número de reescrituras antes de que se requiera un borrado no he podido encontrar una referencia para ello.

Es evidente que existe un límite inferior, impuesto por la forma en que se organiza generalmente la memoria flash: concretamente, el hecho de que el tamaño mínimo que puede borrarse de una vez suele ser un múltiplo del tamaño mínimo que puede escribirse de una vez. Por ejemplo, la mencionada SAM D21 escribe por "página", pero borra por "fila", y como hay cuatro páginas por fila, debe ser posible escribir en una fila determinada al menos cuatro veces antes de que se requiera un borrado si se va a utilizar toda la flash a la vez.

Más allá de este límite inferior, a falta de una especificación clara en la hoja de datos, ¿existe una norma o directriz general sobre el número mínimo o máximo de veces que una parte de la memoria flash puede reescribirse de forma segura entre borrados? ¿Qué características específicas de la tecnología de memoria, si es que hay alguna, podrían influir en este límite?

Edito para aclarar: no me preocupa la resistencia general de escritura/borrado, que suele estar bien especificada y es independiente de la especificación de reescrituras por borrado que estoy pidiendo. Y para los fines de esta pregunta, podemos asumir que cualquier reescritura está dentro de cualquier tamaño de escritura que soporte la memoria flash.

-1voto

ozba Puntos 1558

He tenido una experiencia reciente con el Samsung K9F8G08UXm. Se trata de un dispositivo de 8 Gbit organizado de la siguiente manera:

1 página = 4096 principal + 128 extra = 4224 bytes

1 bloque = 64 páginas

1 dispositivo 4096 bloques

Se parece a esto:

enter image description here

El dispositivo se borra por bloques, o 64 páginas a la vez.

Una vez que se ha borrado un bloque, se puede escribir una vez en cada página de ese bloque. Una página no puede volver a escribirse a menos que se borre todo el bloque. Se puede escribir en diferentes páginas dentro de un bloque en diferentes momentos; es decir, todas las páginas dentro de un bloque no tienen que ser escritas al mismo tiempo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X