# Memoria NAND flash

Una memoria NAND flash è un tipo di memoria non volatile a stato solido. In quanto memoria non volatile, un dispositivo NAND flash è in grado di mantenere in memoria l'informazione anche se gli viene tolta l'alimentazione. Insieme all'architettura NOR, la NAND si costituisce una delle scelte di riferimento per lo sviluppo di memorie flash. Ad oggi, l'archetipo NAND è il più presente sul mercato, trovando largo impiego nel settore dei personal computer, smartphone, tablet, SSD, SD cards e chiavette USB.
La memoria NAND flash è in grado di essere riscritta e le operazioni di scrittura e cancellazione possono essere effettuate grazie al solo ausilio di segnali elettrici. Si distingue in questo dalle memorie di sola lettura (ROM), che pur essendo non volatili non ammettono la riprogrammazione dell'informazione scritta. Grazie a questa sua caratteristica, la memoria NAND flash è principalmente impiegata per le attività di memorizzazione di larghi volumi di dati.
La memoria NAND flash è stata il primo dispositivo elettronico al mondo a superare il trend di scaling planare previsto dalla legge di Moore, introducendo il concetto di elettronica verticale (o elettronica 3D).

## Storia

Al principio dell'invenzione delle memorie flash, ed in particolare delle NAND flash, vi è l'idea del transistore a floating-gate. Questo dispositivo, progettato all'interno dei Bell Labs nel 1967 da Dawon Kahng e Simon Min Sze, dimostrò da subito le sue potenzialità nell'ambito applicativo delle memorie elettroniche. Fu però all'inizio degli anni ottanta, nei laboratori di Toshiba (ora Kioxia), che Fujio Masuoka e Hisakazu Iizuka gettarono le basi per lo sviluppo di un dispositivo di memorizzazione non volatile capace di supportare le operazioni di programmazione e cancellazione controllate interamente con segnali elettrici. Nel 1984 la prima memoria NOR flash fu commercializzata, mentre si dovette aspettare fino al 1987 per vedere il lancio sul mercato del primo prodotto NAND flash. In quegli anni il tipico taglio di memoria non volatile spaziava da 4 a 16Mbit e la principale tecnologia di storage era quella a dischi magnetici.
Negli anni successivi le memorie NAND flash vissero uno sviluppo estremamente veloce: alla fine del millennio la capacità di memorizzazione di questi dispositivi a stato solido aveva raggiunto uno standard di 256Mbit, i dispositivi erano stati resi compatibili con la nuova logica a 3.3V (rispetto a quella a 5V inizialmente presente) e nuovi processi produttivi erano stati sviluppati per porre le basi della futura evoluzione tecnologica.
Nel frattempo il mercato globale delle memorie NAND flash si stava popolando di produttori, molti dei quali tutt'oggi presenti. Tra questi si ricordano Micron Technology, Samsung, SK Hynix, Intel, Western Digital e la joint venture dell'italo-francese STMicroelectronics e Intel Numonyx (ora parte di Micron Technology).
Le memorie flash continuarono negli anni la loro evoluzione, riuscendo a strappare sempre più mercato alla più consolidata tecnologia HDD. Ad oggi, le memorie flash rappresentano una grossa fetta dei dispositivi di storage per uso consumer ed aziendale, avendo ridotto di molto il mercato degli HDD.
Nel 2007 viene proposto il concetto di memoria NAND verticale (3D NAND, VNAND) mentre il 2010 vede il primo dispositivo a scaling verticale approdare sul mercato. Nel 2020 Micron lancia sul mercato la prima memoria NAND flash a 176 piani e nel 2023 la stessa Micron è la prima ad annunciare un dispositivo a 232 piani.

## Descrizione e funzionamento

Il seguente paragrafo ha lo scopo di introdurre alla fondamentale unità costitutiva della memoria NAND flash: il transistore a floating-gate. Una volta compreso il funzionamento alla base della singola unità di memorizzazione, verrà discusso di come queste possano essere connesse elettricamente per formare un dispositivo in grado di memorizzare larghi volumi di dati. Segue poi una breve discussione sulle operazioni basilari di lettura, programmazione e cancellazione.

### Il transistore a floating-gate

Il dispositivo alla base di una matrice di memoria NAND flash, ed in generale di ogni memoria flash, è il transistore a floating-gate. Questo dispositivo è nei fatti molto simile ad un normale MOSFET, con la differenza che all'interno del dielettrico d'isolamento (tipicamente silice, ${\ce {SiO_2}}$) tra il contatto di gate ed il canale in silicio viene cresciuta un'isola metallica, tipicamente costituita da un metallo o da uno strato di silicio policristallino degenere. Tale isola, priva di un collegamento elettrico diretto, si trova sempre in uno stato di alta impedenza e, per tale ragione, viene definita flottante (da cui il nome floating-gate transistor).
Questo dispositivo è naturalmente adatto per applicazioni di memorizzazione. Il funzionamento è del tutto identico a quello di un normale transistore MOS, con la peculiarità di poter modificare la tensione di soglia $V_{T}$ iniettando o rimuovendo carica dalla floating-gate. Tali operazioni, dette rispettivamente di programmazione e cancellazione, sono non-distruttive per il dispositivo e permettono quindi l'operazione del transistore come unità di memoria riprogrammabile. In tal senso, l'informazione logica viene rappresentata dal valore di $V_{T}$: nel caso più semplice è possibile rappresentare un singolo bit associando al valore logico 1 lo stato fisico di "soglia bassa" ed al valore 0 lo stato fisico di "soglia alta". La soglia viene valutata in fase di lettura del bit polarizzando il transistore con una tensione alla gate accessibile, detta anche control-gate, più alta della soglia rappresentante il bit 1 e minore della $V_{T}$ rappresentante il bit 0. In questo modo i due stati possono essere distinti valutando la corrente che è in grado di scorrere da drain a source (se alta si leggerà 1, se bassa 0).

### Architettura di una memoria NAND flash

L'architettura di un array di memoria NAND flash è facilmente partizionabile considerando i collegamenti elettrici delle singole unità di memorizzazione. Alla base dell'array vi è la singola unità di memoria, fisicamente descritta da un transistore a floating-gate. La connessione in serie dei canali dei transistori floating-gate definisce una stringa di memoria. La connessione in parallelo dei contatti di gate dei transistori definisce invece un piano di memoria, spesso chiamato wordline. L'insieme di un gruppo di stringhe connesse in parallelo alla stessa sourceline definisce un blocco di memoria. Si noti che, oltre alle singole unità di memorizzazione, l'array NAND flash necessità di ulteriori componenti. Nella fattispecie, ogni stringa di memoria si caratterizza per la presenza di due transistori di selezione all'inizio ed alla fine della stringa stessa, spesso definiti SSL (Selector Source Line) e SDL (Selector Drain Line). Questi, tipicamente realizzati con una geometria meno scalata rispetto alle singole celle di memoria, hanno il compito di connettere o sconnettere la stringa dalle linee di bitline e di sourceline, di modo da permettere selettività nelle operazioni svolte. Mentre i selettori di drain sono indirizzabili singolarmente, i selettori di source hanno le gate connesse in parallelo all'interno di tutto il blocco.
Una singola pagina di memoria è generalmente in grado di memorizzare dagli 8kB ai 16kB di informazione. Una stringa connette invece in serie un numero di celle di memoria variabile tra le 256 e le 1024. Nel complesso un blocco di memoria è in grado di mantenere da 2MB a 16MB di informazione memorizzata.
Un dispositivo commerciale è costituito da un gran numero di blocchi, molti dei quali contribuiscono a raggiungere il taglio di memoria nominale del dispositivo ed alcuni adibiti a fare da scorta in caso di malfunzionamento dei blocchi inizialmente assegnati alla funzione di storage.
Oltre alla componentistica legata in maniera specifica alla funzione di memorizzazione, un dispositivo NAND flash presenta al suo interno altri componenti ausiliari al funzionamento dello stesso. Tra questi vi sono un microcontrollore per la gestione delle operazioni, dei decoder di riga e colonna necessari all'indirizzamento delle operazioni, la circuiteria ausiliaria alla lettura e la circuiteria necessaria a produrre le alte tensioni necessarie alle operazioni di programmazione e cancellazione.

### Lettura

Una memoria NAND flash è in grado di parallelizzare l'operazione di lettura su un'intera pagina del blocco di memoria selezionato. Per semplicità, ci si limiterà nel seguito a descrivere l'operazione di lettura di una singola stringa di memoria.
Per poter leggere il bit memorizzato in una data cella è necessario testarne la tensione di soglia. Per fare ciò, tutta la stringa, ad eccezione della cella selezionata, viene polarizzata ad una tensione di pass $V_{pass}$ più alta rispetto alla più alta $V_{T}$ programmata. In questo modo la stringa si comporta come una cascata di transistori operati in regime di pass-transistor ad esclusione della cella in lettura. La cella in lettura viene polarizzata con una tensione alla sua gate maggiore rispetto alla $V_{T}$ cancellata ma minore di quella programmata. A questo punto, tenendo il contatto di source a massa ed i selettori di source e drain accesi, viene valutata la capacità della stringa di condurre corrente idealmente attraverso un'opportuna tensione positiva imposta alla bitline. Se la corrente letta risulta sufficientemente alta, ovvero se la tensione di gate alla cella selezionata è sufficientemente alta da accenderla, il bit verrà letto come 1 (stato cancellato), altrimenti come 0. In realtà, per ragioni di semplicità e di costo d'integrazione, la stringa non viene letta direttamente forzando una tensione alla bitline e leggendo la risultante corrente, ma viene sfruttata la capacità parassita della metallizzazione di bitline per integrare la corrente e leggerla successivamente attraverso un latch.

### 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 tunneling Fowler-Nordheim 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 sul quale è stata processata la memoria) e alzando il potenziale alla control-gate della cella in programmazione a $V_{pgm}>0V$. Il contatto di source viene tenuto alla tensione di alimentazione logica della memoria $V_{cc}$, con il selettore adiacente spento. La bitline viene tenuta a massa mentre il resto della struttura viene polarizzato a $V_{pass}$ 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 $V_{cc}$, 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.
L'operazione di programmazione non viene solitamente fatta imponendo una tensione costante $V_{pgm}$ 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 in cui ognuno differisce dal precedente per un incremento $\Delta V_{pgm}$, 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, l'operazione per la data cella viene inibita. Questo permette di uniformare le soglie di tutti i transistori della pagina 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 $\Delta V_{pgm}$.

### Cancellazione

L'operazione di cancellazione, al contrario della lettura e della programmazione, può essere fatta unicamente per blocchi. Il motivo risiede nel fatto che viene sfruttata la possibilità di polarizzare il contatto di body dei transistori, comune a tutte le celle di memoria dello stesso blocco. Così come per la programmazione, la cancellazione avviene per tunneling Fowler-Nordheim. La polarizzazione è nel complesso simile a quella imposta durante la programmazione, chiaramente con un'inversione dei segni delle tensioni applicate in quanto il processo di tunneling ha per obiettivo l'estrazione della carica immagazzinata nella floating-gate. Nel complesso ci si ritrova con tutte le celle di memoria che vedono la loro control-gate portata a massa, con selettori, bitline e sourceline lasciati in uno stato di alta impedenza. Il contatto alla p-well viene invece portato alla tensione $V_{era}<0V$, che permette lo sviluppo del campo elettrico necessario al processo di tunneling. Al contrario dell'operazione di programmazione, la cancellazione viene eseguita a tensione costante, il che porta tipicamente ad avere distribuzioni di tensioni di soglia cancellate ben più larghe rispetto a quelle programmate.
Mentre le operazioni di lettura e programmazione sono rimaste, ad oggi, quasi del tutto invariate anche sulle più recenti architetture di memoria NAND flash, come ad esempio l'architettura con sviluppo verticale 3D-NAND, l'operazione di cancellazione ha subito forti modifiche nel tempo, mutuate dal fatto che i moderni dispositivi 3D non permettono di accede direttamente al contatto di body dei transistori di memoria.

## Tipologie di memoria NAND flash

Le più comuni tipologie di memoria NAND flash vengono differenziate in base al numero di bit logici che è possibile memorizzare per singola unità fisica. Tra queste figurano le sigle SLC (Single-Level Cell, 1 bit/cella), MLC (Multi-Level Cell, 2 bit/cella) e TLC (Triple-Level Cell, 3 bit/cella). Recentemente sono apparse sul mercato soluzioni QLC (Quad-Level Cell, 4 bit/cella) e nell'ambito della ricerca sono state dimostrate memorie capaci di immagazzinare fino a 6 bit/cella e 7 bit/cella.
Alla base della possibilità di rappresentare più di un singolo bit logico per cella vi è l'idea di suddividere la finestra di tensioni di soglia disponibili in più di due regioni. Così facendo è possibile memorizzare $N$ bit per cella suddividendo la finestra di $V_{T}$ in $2^{N}$ regioni, ognuna delle quali rappresenta un livello logico di programmazione. Ad ogni livello logico viene così associato un codice binario di $N$ bit, che saranno i bit memorizzati dalla singola cella. L'associazione della specifica $N$-upla al livello logico è tipicamente fatta seguendo un codice Gray per minimizzare al più ad un bit i possibili errori di lettura che possono accadere durante il funzionamento del dispositivo. Il livello cancellato, cioè quello rappresentato dalla tensione di soglia più bassa, è tipicamente associato alla $N$-upla di bit composta da soli 1.
La rappresentazione di più di un bit rallenta l'operazione di lettura della singola cella, poiché per $N$ bits memorizzati nel singolo transistore sono necessarie $2^{N}-1$ singole operazioni di lettura. Oltre a ciò, la stessa operazione di programmazione viene rallentata tanto più sono i bit memorizzati per singola cella, poiché la maggiore precisione necessaria al posizionamento della $V_{T}$ impone un rallentamento dell'algoritmo di programmazione o l'impiego di metodi più raffinati per eseguire la stessa operazione.
Ad oggi sul mercato sono ancora presenti tutte le tipologie di NAND flash, le quali trovano impiego in diversi settori a seconda dei loro punti di forza e delle necessità dell'utilizzatore. Un confronto delle caratteristiche specifiche delle tipologie di NAND flash è qui riportato:
* SLC: sono le memorie con le migliori performance in termini di endurance, con un funzionamento garantito fino ai 100'000 cicli di programmazione/cancellazione. Data la loro relativa semplicità, le operazioni di lettura e programmazione sono estremamente veloci. A parità di taglio di memoria rappresentano la tipologia di NAND flash più costosa a causa della bassa densità di bit memorizzati per numero di transistori fisici. Ad oggi non trovano largo impiego nel mercato consumer ma vengono impiegate principalmente nei settori in cui è necessaria un'alta affidabilità ed un mantenimento delle performance per periodi molto lunghi, come nel caso di applicazioni server.
* MLC: data la maggior capacità di memorizzazione a parità di transistor fisici per chip, le memorie NAND flash MLC possono essere trovate sul mercato in tagli di memoria più grandi rispetto alla controparte SLC. Per lo stesso motivo, a parità di tagli di memoria, i dispositivi MLC sono generalmente più economici. Essi sono caratterizzati da un buon compromesso tra le performance di endurance (tipicamente sono garantiti fino a 10'000 cicli di programmazione/cancellazione), prezzo e performance, con un impiego tipico nel mercato consumer.
* TLC: con un maggior numero di bit memorizzati per cella, i dispositivi TLC si contraddistinguono per un costo ridotto e una maggiore capacità di memoria. Tuttavia, ciò ha effetti negativi sulle prestazioni e sulla durata, la quale si riduce a solo 3.000 cicli di programmazione/cancellazione garantiti. I dispositivi TLC vengono spesso impiegati come nel mercato consumer quando sono necessari grossi tagli di memoria a prezzi contenuti.
* QLC: con un 4 bit memorizzati per cella, i dispositivi QLC si contraddistinguono per un costo ridotto e una maggiore capacità di memoria. Tuttavia, ciò ha effetti negativi sulle prestazioni e sulla durata, la quale si riduce a solo 300 cicli di programmazione/cancellazione garantiti. I dispositivi QLC vengono spesso impiegati come nel mercato consumer di fascia bassa quando sono necessari grossi tagli di memoria a prezzi contenuti.
* PLC: con 5 bit memorizzati per cella, i dispositivi PLC sono in fase di studio.

## Scaling

Questa sezione si occupa di illustrare il trend di miniaturizzazione che i dispositivi NAND flash hanno seguito negli anni, a partire dal loro ingresso nel mercato di massa ad inizio anni 2000 fino ad oggi. Per poter discutere la miniaturizzazione di questo tipo di dispositivi è utile introdurre due figure di merito tipicamente impiegate nell'ambito dei dispositivi elettronici e, nello specifico, delle memorie elettroniche. Queste sono la dimensione minima del processo produttivo $F$, che corrisponde alla minima dimensione lineare che è possibile realizzare attraverso i processi di pattern litografici a disposizione del produttore, e il cosiddetto GBSD (Gross Bit Storage Density), ovvero il rapporto tra la capacità di memorizzazione di un dato dispositivo (espressa in Byte) e l'area totale occupata sul wafer di silicio (espressa in millimetri quadri).
Si discuterà prima il trend di miniaturizzazione seguito fino al 2015. Dal 2015 in poi il mercato è stato dominato dai dispositivi ad integrazione verticale. Lo scaling dei dispositivi 3D-NAND verrà discusso in una sezione dedicata, trattando anche le motivazioni che hanno portato all'introduzione sul mercato di tali dispositivi.
Così come la maggior parte dei dispositivi elettronici, anche le memorie NAND flash hanno cercato di seguire lo scaling imposto dalla legge di Moore. Tale legge, che afferma il raddoppio del numero di transistori presenti per singolo chip ogni due anni, impone una riduzione di un fattore ${\sqrt {2}}$ sulla dimensione minima litografica $F$ da raggiungere a cadenza biennale. I dati storici dei maggiori produttori di memorie NAND flash mostrano come tale tendenza sia stata sostanzialmente rispettata rigorosamente fino al 2015.
La riduzione della minima dimensione litografica ha permesso il costante aumento del numero di celle di memoria integrabili sullo stesso chip, portando ad un conseguente aumento della capacità di memorizzazione a parità di area occupata. Ciò si traduce in una tendenza crescente del GBSD con l'avanzare degli anni, il quale mostra all'incirca un raddoppio per ogni biennio.

### La svolta verso un'architettura verticale

Il 2015 segna l'anno di svolta per i dispositivi NAND flash. Nella fattispecie, questo è l'anno in cui il mercato ha massivamente adottato i dispositivi verticalmente integrati come principale veicolo per i successivi sviluppi tecnologici. Le ragioni storiche dietro a tale scelta sono da ricercarsi nella difficoltà che si era ormai raggiunta sugli ultimi nodi planari decananometrici nel mantenere gli standard di affidabilità sopra le soglie di accettazione di mercato. La ragione fisica sottostante tali difficoltà risiede nell'esacerbazione estrema dell'impatto dei fenomeni di singolo elettrone (rumore di programmazione, RTN, ecc.) sulle operazioni basilari della matrice di memoria.
L'integrazione verticale ha permesso di mantenere il trend di crescita del GBSD costante fino agli anni più recenti, dando però la possibilità ai produttori di rilassare fortemente le dimensioni fisiche delle singole celle di memoria e consentendo, in tal senso, di tenere maggiormente sotto controllo i fenomeni di singolo elettrone.

## La memoria 3D NAND flash

Nonostante in linea di principio il funzionamento della memoria NAND flash non sia cambiato a seguito della transizione verso i dispositivi ad integrazione verticale, il processo di produzione e l'architettura fisica del dispositivo hanno subito grosse modifiche per potersi adattare a tale cambiamento. Pur considerando le molte proposte avanzate agli albori di questa tecnologia, si procederà nel seguito a descrivere l'architettura che su tutte ha raggiunto il maggior consenso ed il maggior successo dal punto di vista implementativo: l'architettura a transistore GAA (Gate-All-Around) charge-trap.
Il blocco costitutivo fondamentale rimane un transistore capace di modulare in maniera non distruttiva la sua tensione di soglia. L'architettura GAA impone però che questo si sviluppi in simmetria cilindrica, con uno sviluppo concentrico dello stack della gate. Questo permette il miglior controllo elettrostatico del canale ottenibile su un comune transistore MOS. Il layer di immagazzinamento non è più costituito da un'isola a carattere metallico flottante all'interno del dielettrico di gate bensì da uno strato di materiale ricco di difetti (tipicamente un nitruro di silicio). L'archetipo di cella, ovvero il transistore charge-trap, era stato commercializzato nel 2002 da AMD e Fujitsu attraverso lo spin-off congiunto Spansion. Le celle sono sviluppate una sull'altra e condividono un layer di immagazzinamento comune a tutti i transistori della stessa stringa. Benché questo porti a delle complicazioni del punto di vista dell'affidabilità, ciò non costituisce un problema per il funzionamento del dispositivo: mentre in un metallo la carica tende a delocalizzarsi su tutto il volume del materiale, nel nitruro di storage questa viene intrappolata in regioni specifiche e confinate (le trappole). Il contributo della carica intrappolata in un difetto localizzato modifica quindi l'elettrostatica della sola regione attigua, il che permette di continuare a controllare le celle singolarmente e con selettività.
Un'altra grande differenza rispetto alla controparte planare risiede nel materiale costitutivo del canale. Pur rimanendo silicio, le limitazioni processuali non permettono che questo venga cresciuto in fase completamente cristallina, ma al più in fase policristallina. Questo impatta non soltanto i meccanismi di conduzione di carica nel canale, i quali non sono più regolati da processi di deriva/diffusione bensì dall'emissione termoionica ai bordi dei grani monocristallini, ma introduce anche una densità di difetti che ha svariate ripercussioni dal punto di vista dell'affidabilità.
La terza maggiore differenza risiede nell'impossibilità di accedere alla p-well del wafer, privando così la stringa dell'accesso ad un reservoir di lacune. Il canale dei transistori risulta infatti non direttamente accessibile ed elettricamente scollegato dal wafer di partenza. Ciò rende impraticabile l'operazione di cancellazione così come veniva eseguita sulle NAND flash planari. La soluzione che si è scelto di adottare è stata quella di far leva su un processo fisico differente per iniettare lacune nel canale di poli-silicio, ovvero l'iniezione di portatori positivi attraverso un processo di tunneling banda-banda sviluppato agli estremi della stringa, sui selettori di source e drain.

## Affidabilità

Una grande fetta della ricerca legata ai dispositivi NAND flash si concentra, ad oggi, sullo studio dei processi legati all'affidabilità delle celle di memoria. In questo contesto si tende a suddividere l'argomento in due macrocategorie:
* Affidabilità sui tempi brevi: che studia i processi colpevoli degli errori nelle operazioni di programmazione e cancellazione e nella lettura effettuata immediatamente dopo una delle appena citate operazioni.
* Affidabilità su tempi lunghi: legata allo studio dei processi che portano al deterioramento ed alla corruzione dell'informazione immagazzinata nelle celle di memoria.
Qui di seguito sono riportati alcuni tra i principali problemi di affidabilità storicamente studiati nell'ambito delle memorie NAND flash.

### Rumore di programmazione

Il rumore di programmazione, indicato spesso come program noise (PN), è il fenomeno legato alle fluttuazioni intrinseche della risposta di una singola cella all'operazione di programmazione. Ciò che si osserva sperimentalmente è che, ripetendo più volte la stessa operazione di programmazione sulla stessa cella, la risposta del transistore è affetta da fluttuazioni stocastiche. In ultima analisi tali fluttuazioni originano dal fatto che il processo di iniezione di carica nella floating-gate è un processo stocastico, e quindi affetto da variabilità. Sperimentalmente è stato possibile verificare che le fluttuazioni della risposta di cella sono univocamente legate alle fluttuazioni nel numero di elettroni introdotto nella floating-gate, riuscendo persino a risolvere l'iniezione di un singolo elettrone.
I processi stocastici legati ai fenomeni di iniezione sono ampiamente studiati, in virtù di una fenomenologia abbastanza comune in vari ambiti della fisica (si pensi ad esempio alla rilevazione di fotoni attraverso foto-rivelatori o ai processi di iniezione di carica legati al rumore shot). Ciò che si osserva è che se le particelle possono essere iniettate solo per processi discreti (ovvero non è possibile iniettare una frazione di particella) e se vale l'ipotesi che ogni evento di iniezione è indipendente dai precedenti (non vi è cioè correlazione tra gli eventi), il processo stocastico segue la statistica di Poisson. Per le proprietà della appena citata statistica, la varianza associata alle fluttuazioni sarà proporzionale al valor medio del processo. Questo pone dei vincoli alla precisione con cui la soglia delle celle di memoria può essere programmata: adottando nell'algoritmo di ISPP un $\Delta V_{pgm}$ alto il numero di elettroni iniettato per passo di programmazione sarà alto e caratterizzato da forti fluttuazioni. Al contrario, riducendo il passo di programmazione anche le fluttuazioni statistiche tenderanno a diminuire. Questo fatto va considerato nel momento in cui vengono decise le caratteristiche dell'algoritmo di programmazione da adottare sul dispositivo di memoria: un passo di programmazione ampio garantisce velocità di programmazione alta ma distribuzioni di soglia intrinsecamente larghe e ancor più allargate dalle fluttuazioni dovute al program noise mentre un passo di programmazione piccolo permette una programmazione più precisa al costo di un rallentamento della stessa operazione.
Va precisato però che il processo di iniezione per tunneling Fowler-Nordheim non rispetta completamente le ipotesi entro cui viene solitamente trattato il rumore di iniezione. Successivi eventi di iniezione mostrano, infatti, una correlazione: il processo di iniezione $i-$esimo vede una probabilità di tunneling ridotta a causa della riduzione di campo elettrico indotta dai precedenti $i-1$ eventi di iniezione. Questa correlazione, osservabile nel momento in cui il numero di elettroni iniettati risulta sufficientemente grande, fa sì che il processo di programmazione sia affetto da fluttuazioni che seguono una statistica sub-Poissoniana.

### Rumore telegrafico casuale

Il rumore telegrafico casuale, indicato come random telegraph noise (RTN), non è un fenomeno specifico che caratterizza l'affidabilità delle memorie NAND flash, bensì è presente nella maggior parte dei dispositivi elettronici. Nel caso di transistori MOS l'origine del processo si deve alla presenza di difetti nella regione d'interfaccia canale/ossido o nel dielettrico di gate. Le dinamiche di cattura ed emissione di portatori, tipicamente elettroni, che avvengono durante il normale funzionamento del dispositivo portano a fluttuazioni locali dell'elettrostatica che si traducono in un rumore sulla corrente di uscita del transistore.
Si consideri in questo senso l'effetto di una singola trappola. Polarizzando il transistore di modo da permettere il flusso di corrente attraverso il canale ci si aspetterebbe che questa fosse stabile nel tempo. Al contrario, la trappola ivi presente può dar luogo ad un segnale simile a quello di un telegrafo, ove la corrente oscilla tra due stati in maniera sostanzialmente casuale. I due stati sui quali la corrente oscilla, nel prosieguo detti di "alta corrente" e di "bassa corrente", sono associabili alle due configurazioni elettrostatiche del transistore ottenibili a pari tensioni applicate ma con la trappola RTN piena, ovvero che ha catturato un elettrone, o vuota, ovvero nella condizione successiva all'emissione del portatore. Quando un elettrone viene catturato, ad esempio all'interfaccia canale/ossido, l'inversione del canale nelle immediate vicinanze della trappola viene ridotta e la resistenza del canale aumenta conseguentemente, portando ad una diminuzione della corrente. Al contrario, l'emissione del portatore da parte della trappola ripristina la normale configurazione elettrostatica, che si traduce quindi nel ripristino della normale conduttanza di canale ed in un aumento della corrente d'uscita.
Le dinamiche di RTN possono risultare un problema dal punto di vista dell'affidabilità delle memorie NAND flash poiché influenzano l'operazione di lettura della cella. In tal senso, considerato che la cella viene tipicamente operata in regime di sottosoglia e che l'effetto delle dinamiche di RTN può essere visto anche come un'oscillazione della tensione di soglia $V_{T}$, è facile comprendere come l'operazione di lettura, che si basa sulla comparazione della corrente che scorre in canale con una di riferimento, possa venire fortemente influenzata dal rumore telegrafico casuale. Dal punto di vista modellistico, il processo RTN può essere descritto come un processo telegrafico casuale.
Benché la breve descrizione qui riportata faccia riferimento al caso di una singola trappola, è bene ricordare che più difetti possano combinarsi per dar luogo a dinamiche di RTN più complesse.

### Interferenza di programmazione

L'operazione di programmazione di una cella selezionata all'interno della stringa può avere ripercussioni anche sulle celle adiacenti. Questo fenomeno, detto interferenza di programmazione, è presente in diverse tecnologie di memorie NAND flash ed ha origine da diversi processi, ognuno strettamente legato alla tecnologia sotto indagine. Nelle memorie NAND flash planari l'interferenza di programmazione origina dall'accoppiamento capacitivo che si sviluppa tra la cella programmata e le sue vicine. Ciò fa sì che non solo la cella selezionata aumenti la sua soglia durante l'operazione di programmazione, ma che anche le celle a lei adiacenti subiscano un aumento di soglia, tipicamente affetto da una certa variabilità.
Nelle memorie charge-trap 3D-NAND, invece, il fenomeno è legato all'intrappolamento spurio di carica nelle regioni di intercella. Durante la programmazione, infatti, le regioni d'intercella vengono invertite grazie ai campi di fringing prodotti dall'accensione delle celle adiacenti a quella selezionata e dalla tensione di programmazione della cella operante. Questo fa sì che parte della carica intrappolata non si localizzi perfettamente nella regione sottostante alla cella in programmazione e che venga invece intrappolata nelle regioni ove non vi è un diretto controllo elettrostatico. Il risultato è una variazione dell'elettrostatica della stringa. Ne consegue che i valori delle tensioni di soglia delle celle adiacenti alla cella appena programmata risultano più alte rispetto al valore di programmazione inizialmente verificato, come conseguenza dell'incremento di resistività delle regioni d'intercella.
Nonostante il processo alla base dell'interferenza di programmazione sia diverso a seconda della tecnologia di memoria NAND flash considerata, la fenomenologia osservata è spesso simile, il che porta a riconoscere con lo stesso nome processi di natura differente.

### Disturbo di lettura, di pass e di programmazione

Durante il normale funzionamento del dispositivo di memoria, le celle sono soggette a disturbi di vario tipo. I più semplici da analizzare sono i disturbi di lettura e di pass. I due nomi fanno riferimento ad un simile processo fisico legato però a due operazioni diverse: il disturbo di lettura avviene quando la stringa di memoria viene letta, mentre il disturbo di pass quando questa viene programmata. In entrambi i casi, le celle di memoria portate a $V_{pass}^{Read}$ o a $V_{pass}^{Pgm}$ sono soggette ad un overdrive dell'ordine di qualche Volt. Benché questo non sia tipicamente sufficiente a promuovere lo sviluppo di campi elettrici sufficientemente alti da dar luogo a tunneling Fowler-Nordheim, è possibile che una seppur debole corrente di tunneling, in questo caso diretto, fluisca verso le loro floating-gate. Ne risulta che le celle subiscono una leggera programmazione, spesso indicata come soft-programming. Il disturbo di programmazione si sviluppa invece sulle celle posizionate sulla stessa wordline della cella in programmazione che però sono state inibite. Se l'operazione di inibizione non è perfetta, è possibile che una differenza di potenziale permanga tra la control-gate ed il canale della cella inibita. Ciò fa si che questa subisca un soft-programming.

### Perdita di carica

Il livello di programmazione di una cella di memoria non rimane indefinitamente stabile nel tempo, ma è soggetto ad una deriva verso livelli di soglia più bassa mutuata da fenomeni di perdita di carica. Tali fenomeni si possono manifestare come risultato congiunto di un insieme di processi fisici e vengono ricompresi nello studio dei processi di ritenzione di una cella di memoria.
Un primo è strettamente legato alla presenza di trappole e difetti nell'ossido di tunnel. Nella fattispecie, è possibile che durante l'operazione di programmazione una frazione di carica venga intrappolata in regioni difettive del dielettrico che compone lo stack della gate. Tali regioni possono essere native del processo di deposizione o possono essere il risultato del deterioramento dell'ossido soggetto a ripetute operazioni di programmazione/cancellazione. La carica qui intrappolata può essere perso attraverso diversi processi, tra i quali tunneling, emissione termoionica, emissione Poole-Frenkel. Un secondo processo descrive invece la perdita di carica direttamente dalla floating-gate. È possibile infatti che la carica qui immagazzinata possa essere perduta attraverso due processi principali: tunneling diretto verso il canale/control-gate promosso dal campo elettrico lungo la cella in stato di ritenzione o tunneling assistito da difetti. Il secondo processo è tanto più importante quanto è alta la densità di difetti nell'ossido, e tende a peggiorare all'aumenta del numero di cicli di programmazione/cancellazione a cui il dispositivo è stato sottoposto.
Le memorie CT 3D-NAND mostrano una fenomenologia di ritenzione più complessa rispetto alla controparte planare con cella floating-gate. Il materiale ad intrappolamento di carica utilizzato come struttura di storage può dar luogo a perdita di carica in direzione del canale o della control-gate attraverso processi di trap-to-band tunneling e, data la sua natura priva di interruzioni lungo tutta la stringa di memoria, è possibile che la carica immagazzinata nella regione sottostante una cella migri lateralmente verso le celle adiacenti a causa dei gradienti di carica e dei campi elettrici presenti. Quest'ultimo fenomeno prende il nome di migrazione laterale (lateral migration).