Memoria NAND flash: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 41:
 
=== Programmazione ===
Come per l'operazione di lettura, anche l'operazione di programmazione è tipicamente parallelizzata su un'intera pagina di memoria. La programmazione delle memorie NAND flash sfrutta il processo di [[Effetto tunnel|''tunneling'']] Fowler-Nordheim<ref>{{Cita web|url=https://www.3dincites.com/2018/02/invention-tunneling-based-flash-memory/|titolo=The Invention of Tunneling-Based Flash Memory|autore=Andrew Walker|sito=3D InCites|data=2018-02-22|lingua=en-US|accesso=2023-07-05}}</ref><ref>{{Cita pubblicazione|nome=C. Monzio|cognome=Compagnoni|nome2=A. S.|cognome2=Spinelli|nome3=R.|cognome3=Gusmeroli|data=2007-12|titolo=First evidence for injection statistics accuracy limitations in NAND Flash constant-current Fowler-Nordheim programming|rivista=2007 IEEE International Electron Devices Meeting|pp=165–168|lingua=inglese|accesso=2023-07-05|doi=10.1109/IEDM.2007.4418892|url=https://ieeexplore.ieee.org/document/4418892/}}</ref> per iniettare elettroni all'interno della ''floating-gate'' della cella in programmazione. Per far si che il processo di ''tunneling'' sia efficace, è necessario sviluppare un campo elettrico sufficientemente intenso lungo lo stack di gate del transistore. Questo viene realizzato portando a massa il contatto di ''body'' dei transistori (direttamente connesso alla ''p-well'' del [[Wafer (elettronica)|wafer]] sul quale è stata processata la memoria) e alzando il potenziale alla ''control-gate'' della cella in programmazione a <math>V_{pgm}>0V</math>. Il contatto di ''source'' viene tenuto alla tensione di alimentazione logica della memoria <math>V_{cc}</math>, con il selettore adiacente spento. La ''bitline'' viene tenuta a massa mentre il resto della struttura viene polarizzato a <math>V_{pass}</math> di modo da permettere che la corrente di programmazione veda una linea a bassa resistenza dalla ''bitline'' fino alla cella selezionata. Poiché l'operazione di programmazione avviene in parallelo, è necessario poter scegliere quali celle della ''wordline'' vengano effettivamente programmate e quali no. La selettività su singola cella è ottenuta attraverso l'inibizione stessa dell'operazione di programmazione per quelle celle che devono rimanere cancellate: per far ciò, la ''bitline'' associata a tali stringhe viene portata a <math>V_{cc}</math>, questo fa sì che la stringa risulti nel complesso in uno stato ad alta impedenza che accoppia capacitivamente il canale dei transistori con le rispettive control-gate, abbassando fortemente il campo sviluppato e impedendo il processo di ''tunneling''.<ref name=":5">{{Cita pubblicazione|nome=Jong Kyung|cognome=Park|nome2=Sarah Eunkyung|cognome2=Kim|data=2022-01|titolo=A Review of Cell Operation Algorithm for 3D NAND Flash Memory|rivista=Applied Sciences|volume=12|numero=21|pp=10697|lingua=en|accesso=2023-07-06|doi=10.3390/app122110697|url=https://www.mdpi.com/2076-3417/12/21/10697}}</ref>
 
L'operazione di programmazione non viene solitamente fatta imponendo una tensione costante <math>V_{pgm}</math> alla cella selezionata, bensì sfruttando il cosiddetto algoritmo ISPP (''Incremental Step Pulse Programming''). Questo consiste nell'applicazione ripetuta di impulsi di ampiezza crescente alla cella selezionata. Ogniin impulsocui ognuno differisce dal precedente per un incremento <math>\Delta V_{pgm}</math>, detto passo di programmazione. Dopo ogni impulso un'operazione del tutto simile alla lettura, detta ''verify'', viene fatta sulle celle programmate: se il livello di soglia programmato supera un valore prestabilito, detto di ''program-verify,'' la programmazionel'operazione per la data cella viene inibita. Questo permette di piazzareuniformare le soglie di tutti i transistori della pagina con una buona uniformità, superando il limite di risposta dato dalla variabilità tra celle, imposto dal processo produttivo. Le distribuzioni di soglia programmata che idealmente si ottengono dall'applicazione dell'algoritmo di ISPP sono uniformi e larghe <math>\Delta V_{pgm}</math>.<ref>{{Cita pubblicazione|nome=Davide|cognome=Bertozzi|nome2=Stefano Di|cognome2=Carlo|nome3=Salvatore|cognome3=Galfano|data=2015-01-21|titolo=Performance and Reliability Analysis of Cross-Layer Optimizations of NAND Flash Controllers|rivista=ACM Transactions on Embedded Computing Systems|volume=14|numero=1|pp=1–24|lingua=en|accesso=2023-07-05|doi=10.1145/2629562|url=https://dl.acm.org/doi/10.1145/2629562}}</ref><ref>{{Cita pubblicazione|nome=Carmine|cognome=Miccoli|nome2=Christian|cognome2=Monzio Compagnoni|nome3=Alessandro S.|cognome3=Spinelli|data=2011-04|titolo=Investigation of the programming accuracy of a double-verify ISPP algorithm for nanoscale NAND Flash memories|rivista=2011 International Reliability Physics Symposium|pp=MY.5.1–MY.5.6|lingua=inglese|accesso=2023-07-05|doi=10.1109/IRPS.2011.5784588|url=https://ieeexplore.ieee.org/document/5784588/}}</ref>
 
=== Cancellazione ===