Memoria NAND flash: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
dimensioni immagini
Etichetta: Link a pagina di disambiguazione
Riga 1:
[[File:NAND plan.jpg|miniatura|upright=1.5|Un[[Die]] di chip da 4GB di memoria NAND flash.]]
Una '''memoria NAND flash''' è un tipo di [[memoria non volatile]] a [[Unità di memoria a stato solido|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 [[Memoria flash|memorie flash]]. Ad oggi, l'archetipo NAND è il più presente sul mercato, trovando largo impiego nel settore dei [[personal computer]], [[smartphone]], [[Tablet computer|tablet]], [[Unità di memoria a stato solido|SSD]], [[Secure Digital|SD cards]] e [[Chiave USB|chiavette USB]].<ref name=":11">{{Cita web|url=https://www.enterprisestorageforum.com/hardware/nand-flash-storage/|titolo=What is Flash? NAND vs NOR|autore=Don Hall|sito=Enterprise Storage Forum|data=2023-06-05|lingua=en-US|accesso=2023-07-04}}</ref>
 
Riga 7:
 
== Storia ==
[[File:Philips BDP3280-12 - Toshiba TC58NVG0S3ETA00 -1772.jpg|miniatura|upright=1.2|Un chip di memoria da 128MB]]
Al principio dell'invenzione delle memorie flash, ed in particolare delle NAND flash, vi è l'idea del [[Transistor|transistore]] a ''[[Floating Gate MOSFET|floating-gate]]''. Questo dispositivo, progettato all'interno dei [[Bell Labs]] nel 1967 da [[Dawon Kahng]] e [[Simon Sze|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<ref name=":1" /> 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 16[[Megabit|Mbit]] e la principale tecnologia di ''storage'' era quella a [[Disco magnetico|dischi magnetici]].<ref name=":3">{{Cita web|url=https://www.kioxia.com/en-jp/rd/technology/history.html|titolo=Technology Development History {{!}} KIOXIA - Japan (English)|sito=キオクシア株式会社|lingua=en-JP|accesso=2023-07-06}}</ref>
 
Riga 22 ⟶ 23:
=== Il transistore a ''floating-gate'' ===
{{vedi anche|Floating Gate MOSFET}}
[[File:NAND FGMOS verbose.png|sinistra|miniatura|306x306pxupleft=1.5|Schema di un transistore a ''floating-gate''. Si noti la presenza dell'isola metallica immersa nel dielettrico di ''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]], <chem>SiO_2</chem>) 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 [[Silicio policristallino|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'').<ref name=":1">{{Cita pubblicazione|nome=Fujio|cognome=Masuoka|nome2=Hisakazu|cognome2=Iizuka|data=1985-07-23|titolo=Semiconductor memory device and method for manufacturing the same|numero=US4531203A|accesso=2023-07-05|url=https://patents.google.com/patent/US4531203/en}}</ref><ref>{{Cita web|url=https://www.nexthardware.com/focus/le-memorie-nand-flash-facciamo-il-punto--183/|titolo=Le memorie NAND Flash, facciamo il punto ...|sito=Nexthardware|lingua=it|accesso=2023-07-05}}</ref><ref>{{Cita web|url=https://flashdba.com/2015/01/09/understanding-flash-floating-gates-and-wear/|titolo=Understanding Flash: Floating Gates and Wear|sito=flashdba|data=2015-01-09|lingua=en|accesso=2023-07-05}}</ref>
 
Riga 28 ⟶ 29:
 
=== Architettura di una memoria NAND flash ===
[[File:NAND scheme.png|miniatura|426x426pxupright=1.5|Schema di un blocco di memoria NAND flash. I riquadri evidenziano le strutture costitutive di base, tra cui la singola cella, la stringa e la ''wordline''.]]
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 Souce 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.<ref>{{Cita web|url=https://www.cactus-tech.com/resources/blog/details/solid-state-drive-primer-3-nand-architecture-strings-and-arrays/|titolo=Solid State Drive Primer # 3 - NAND Architecture - Strings and Arrays|autore=Steve Larrivee|sito=Cactus Technologies|data=2015-03-16|lingua=en-US|accesso=2023-07-06}}</ref>
 
Riga 40 ⟶ 41:
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 <math>V_{pass}</math> più alta rispetto alla più alta <math>V_T</math> 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 <math>V_T</math> 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]].<ref name=":4" /> [[File:NAND bias op.png|sinistradestra|miniatura|268x268pxupright=1.5|Schema di tensioni utilizzato per polarizzare una stringa di memoria NAND flash durante le operazioni di a) lettura, b) programmazione e c) cancellazione.]]
 
=== Programmazione ===
Riga 53 ⟶ 54:
 
== Tipologie di memoria NAND flash ==
[[File:NAND levels.png|miniatura|329x329pxupright=1.5|Diagramma schematico di confronto tra le distribuzioni dei livelli logici per una memoria NAND flash a funzionamento SLC, MLC e TLC.]]
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)<ref name=":7" />. 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<ref>{{Cita web|url=https://www.kioxia.com/en-jp/rd/technology/topics/topics-25.html|titolo=Device technology/Study of 6bit/cell Cryogenic Operation of 3D Flash Memory {{!}} KIOXIA - Japan (English)|sito=キオクシア株式会社|lingua=en-JP|accesso=2023-07-04}}</ref><ref name=":0">{{Cita web|url=https://www.hwupgrade.it/news/storage/kioxia-sperimenta-le-3d-nand-del-futuro-con-6-e-7-bit-per-cella-per-ora-a-temperature-criogeniche_115581.html|titolo=Kioxia sperimenta le 3D NAND del futuro con 6 e 7 bit per cella (per ora a temperature criogeniche)|sito=Hardware Upgrade|lingua=it-IT|accesso=2023-07-04}}</ref> e 7 bit/cella<ref>{{Cita web|url=https://www.kioxia.com/en-jp/rd/technology/topics/topics-33.html|titolo=Device technology/7-bit per Cell Demonstration of 3D Flash Memory by Combination of Single-crystal Channel and Cryogenic Operation {{!}} KIOXIA - Japan (English)|sito=キオクシア株式会社|lingua=en-JP|accesso=2023-07-04}}</ref><ref name=":0" />.
 
Riga 68 ⟶ 69:
 
== Scaling ==
{{Doppia immagine|destra|NAND Fscaling 01.png|360|NAND Fscaling 02.png|395|a) trend di scaling della minima dimensione litografica di processo. b) trend di scaling del parametro GBSD.}}
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 <math>F</math>, che corrisponde alla minima dimensione lineare che è possibile realizzare attraverso i processi di pattern [[Litografia (elettronica)|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 (elettronica)|wafer]] di silicio (espressa in millimetri quadri).<ref name=":2" />
 
Riga 76:
 
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.<ref name=":2" />
 
{{Doppia immagine|destracentro|NAND Fscaling 01.png|360|NAND Fscaling 02.png|395|a) trend di scaling della minima dimensione litografica di processo. b) trend di scaling del parametro GBSD.}}
 
=== La svolta verso un'architettura verticale ===
Riga 100 ⟶ 102:
 
=== Rumore di programmazione ===
[[File:NAND injection.png|miniatura|341x341pxupright=1.5|Schema del processo di iniezione di elettroni all'interno della ''floating-gate.'' In a) si mostra l'equivalente circuitale della cella come serie di due capacità mentre in b) è mostrato il profilo della banda di conduzione.]]
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.<ref>{{Cita pubblicazione|nome=Yuri|cognome=Tkachev|nome2=Alexander|cognome2=Kotov|data=2006-09|titolo=Detection of Single-Electron Transfer Events and Capacitance Measurements in Submicron Floating-Gate Memory Cells|rivista=2006 European Solid-State Device Research Conference|pp=411–414|accesso=2023-07-07|doi=10.1109/ESSDER.2006.307725|url=https://ieeexplore.ieee.org/document/4099943}}</ref>
 
Riga 106 ⟶ 108:
 
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 <math>i-</math>esimo vede una probabilità di ''tunneling'' ridotta a causa della riduzione di campo elettrico indotta dai precedenti <math>i-1</math> 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.<ref>{{Cita pubblicazione|nome=Wei|cognome=Hou|nome2=Lei|cognome2=Jin|nome3=Xinlei|cognome3=Jia|data=2020-01|titolo=Investigation of Program Noise in Charge Trap Based 3D NAND Flash Memory|rivista=IEEE Electron Device Letters|volume=41|numero=1|pp=30–33|accesso=2023-07-07|doi=10.1109/LED.2019.2954621|url=https://ieeexplore.ieee.org/document/8907848}}</ref>
[[File:NAND RTN.png|sinistra|miniatura|342x342px|Schema del processo legato al rumore telegrafico causale in un transistore a ''floating-gate.'' In a) viene mostrato il profilo della banda di conduzione, sottolineando la presenza di una trappola interfacciale mentre b) mostra il tipico andamento della corrente in presenza di RTN.]]
 
=== Rumore telegrafico casuale ===
[[File:NAND RTN.png|sinistra|miniatura|342x342pxupright=1.5|Schema del processo legato al rumore telegrafico causale in un transistore a ''floating-gate.'' In a) viene mostrato il profilo della banda di conduzione, sottolineando la presenza di una trappola interfacciale mentre b) mostra il tipico andamento della corrente in presenza di RTN.]]
 
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.<ref>{{Cita pubblicazione|nome=Francesco Maria|cognome=Puglisi|nome2=Paolo|cognome2=Pavan|nome3=Luca|cognome3=Vandelli|data=2015-04|titolo=A microscopic physical description of RTN current fluctuations in HfOx RRAM|editore=IEEE|pp=5B.5.1–5B.5.6|lingua=inglese|accesso=2023-07-06|doi=10.1109/IRPS.2015.7112746|url=http://ieeexplore.ieee.org/document/7112746/}}</ref>