posso scrivere in una pagina precedentemente scritta, se evito le aree già scritte?
Se capisco p. 16 del foglio dati in modo corretto, sta dicendo: Con questo particolare chip, non è necessario scrivere in una pagina precedentemente scritta, anche se si evitano le aree già scritte.
dettagli
Il datasheet del chip di memoria flash SST25VF064C a pag. 16 dice "L'istruzione del programma di pagina programma fino a 256 byte di dati nella memoria. L'indirizzo di pagina selezionato deve essere nello stato cancellato (FFH) prima di avviare l'operazione di programma di pagina."
Presumo quindi che "L'intera pagina selezionata deve essere nello stato cancellato (ogni byte nella pagina FFh) prima di avviare un'operazione di programma pagina". SST o Microchip hanno rilasciato documentazione per chiarire questa frase esasperatamente ambigua?
Nella mia esperienza, il produttore di tutti i chip flash MLC e di alcuni chip flash SLC più recenti richiede che una volta che una pagina sia stata scritta, la pagina debba essere cancellata prima che quella pagina venga scritta di nuovo, anche se si desidera cambiare solo 1 bit in un 0 bit. (Questa è chiamata la "regola di write-once" in questo articolo YAFFS .)
Nella mia esperienza, tutti i chip flash più vecchi ti consentono di cambiare qualsiasi 1 bit in uno 0 bit senza un ciclo di cancellazione, anche se quel bit è in una pagina o anche un byte che ha già programmato altri bit a zero - a la pagina del flash può essere programmata più volte tra le cancellazioni. (Questo si chiama "scrittura multipla" nell'articolo YAFFS).
La scheda tecnica del produttore è una promessa condizionale che il produttore fa a te. Finché si seguono tutte le raccomandazioni del foglio dati, il produttore promette che il chip funzionerà come specificato. Sospetto che se si programma una pagina precedentemente scritta, evitando le aree già scritte, ci sono buone probabilità che una lettura immediata possa fornire i dati che ci si aspetta: i byte appena scritti sono i valori che hai appena scritto, e gli altri byte sono probabilmente invariati. Tuttavia, poiché ciò non segue le raccomandazioni del foglio dati, non è più possibile fare affidamento su tutte le promesse contenute nel foglio dati. Ho sentito voci secondo cui tale attività non sanzionata causa il tempo di conservazione dei dati e la resistenza, a causa di disturbi del programma, programmazione eccessiva, trappola di carica, effetti simili al martello di fila DRAM , ecc.
"Lo schema di utilizzo della memoria influenza il tasso di errore del bit. Programmazione di pagine parziali, programmazione di pagine non sequenziali all'interno del blocco, lettura eccessiva per blocco senza cancellazione nonché numero non uguale di operazioni di lettura all'interno di un singolo blocco aumento del numero della lettura disturbare gli errori ". - Michal Jedrak.
"Memoria flash NAND nei sistemi integrati".
"Il disturbo del programma si verifica quando un bit viene programmato involontariamente da uno" 1 "a uno" 0 "durante un evento di programmazione della pagina. Questo errore di bit può verificarsi sulla pagina in fase di programmazione o su un'altra pagina del blocco. Condizioni di tensione di polarizzazione in il blocco durante la programmazione della pagina può causare il tunneling di una piccola quantità di corrente nelle celle di memoria vicine. Ripetuti tentativi di programmazione parziale della pagina continueranno ad aggravare questa condizione. " - Douglas Sheldon e Michael Freie.
"Test di disturbo nei ricordi flash" . p. 8, 9.
"Il disturbo del programma si verifica quando un bit viene programmato involontariamente (da 1 a 0) durante un'operazione di programmazione ... Questa condizione viene aggravata dalla programmazione casuale nel blocco e dall'applicazione di più scritture parziali alle pagine."
"Mitigazione del fallimento del flash NAND di Yaffs"