¿Puedo escribir en una página previamente escrita si evito las áreas ya escritas?
Si entiendo p. 16 de la hoja de datos correctamente, dice: Con este chip en particular, no debe escribir en una página escrita previamente, incluso si evita las áreas ya escritas.
detalles
La hoja de datos del chip de memoria flash SST25VF064C en la pág. 16 dice "La instrucción del programa de página programa hasta 256 bytes de datos en la memoria. La dirección de página seleccionada debe estar en el estado borrado (FFH) antes de iniciar la operación del programa de página".
Supongo que, por lo tanto, "toda la página seleccionada debe estar en el estado borrado (cada byte en la página FFh) antes de iniciar una operación de Programa de página". ¿SST o Microchip han publicado alguna documentación que aclare esta oración enloquecedoramente ambigua?
En mi experiencia, el fabricante de todos los chips flash MLC y algunos chips flash SLC más nuevos exige que una vez que se haya escrito una página, la página debe borrarse antes de que se vuelva a escribir, incluso si solo desea cambiar 1 bit a 0 bit. (Esto se llama la "regla de escritura única" en el artículo de YAFFS ).
En mi experiencia, todos los chips flash más antiguos le permiten cambiar 1 bit a 0 bit sin un ciclo de borrado, incluso si ese bit está en una página o incluso en un byte que ya tiene otros bits programados a cero: un La página de flash se puede programar varias veces entre borrados. (Esto se llama "escritura múltiple" en el artículo de YAFFS).
La hoja de datos del fabricante es una promesa condicional que el fabricante le hace. Siempre que siga todas las recomendaciones de la hoja de datos, el fabricante promete que el chip funcionará según lo especificado. Sospecho que si programa una página previamente escrita, evitando las áreas ya escritas, existe una buena posibilidad de que una lectura inmediata pueda proporcionar los datos que espera: los bytes recién escritos son los valores que acaba de escribir, y los otros bytes probablemente no hayan cambiado. Sin embargo, debido a que esto no sigue las recomendaciones de la hoja de datos, ya no puede confiar en todas las promesas de la hoja de datos. Escucho rumores de que dicha actividad no autorizada causa que el tiempo de retención de datos y la resistencia se vean afectados, debido a la perturbación del programa, la sobreprogramación, la captura de carga, los efectos similares al martillo de fila DRAM , etc.
"El esquema de uso de la memoria influye en la tasa de error de bits. La programación de páginas parciales, la programación de páginas no secuenciales dentro del bloque, la lectura excesiva por bloque sin borrar, así como el número no igual de operación de lectura dentro de un solo bloque aumentan el número de lectura molestar errores ". - Michal Jedrak.
"Memoria Flash NAND en sistemas embebidos".
"La perturbación del programa ocurre cuando un bit se programa involuntariamente de un" 1 "a un" 0 "durante un evento de programación de página. Este error de bit puede ocurrir ya sea en la página que se está programando o en otra página del bloque. Condiciones de voltaje de polarización en el bloqueo durante la programación de la página puede hacer que una pequeña cantidad de corriente se canalice hacia las celdas de memoria cercanas. Los intentos repetidos de programación parcial de la página continuarán agravando esta condición ". - Douglas Sheldon y Michael Freie.
"Molestar las pruebas en memorias flash" . pag. 8, 9.
"La perturbación del programa ocurre cuando un bit se programa involuntariamente (1 a 0) durante una operación de programación ... Esta condición empeora por la programación aleatoria en el bloque y al aplicar múltiples escrituras parciales a las páginas".
"Mitigación de falla flash NAND de Yaffs"