ITRM970344A1 - Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo diprogrammazione e stabilizzazione della carica - Google Patents

Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo diprogrammazione e stabilizzazione della carica Download PDF

Info

Publication number
ITRM970344A1
ITRM970344A1 IT97RM000344A ITRM970344A ITRM970344A1 IT RM970344 A1 ITRM970344 A1 IT RM970344A1 IT 97RM000344 A IT97RM000344 A IT 97RM000344A IT RM970344 A ITRM970344 A IT RM970344A IT RM970344 A1 ITRM970344 A1 IT RM970344A1
Authority
IT
Italy
Prior art keywords
cells
programming
cell
stabilization
memory device
Prior art date
Application number
IT97RM000344A
Other languages
English (en)
Inventor
Zenzo Maurizio Di
Giuliano Imondi
Giulio Marotta
Giuseppe Savarese
Original Assignee
Consorzio Eagle
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Consorzio Eagle filed Critical Consorzio Eagle
Priority to IT97RM000344A priority Critical patent/IT1293041B1/it
Publication of ITRM970344A0 publication Critical patent/ITRM970344A0/it
Publication of ITRM970344A1 publication Critical patent/ITRM970344A1/it
Application granted granted Critical
Publication of IT1293041B1 publication Critical patent/IT1293041B1/it

Links

Landscapes

  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)

Description

DESCRIZIONE
a corredo di una domanda di Brevetto d'invenzione avente per titolo: "Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica programmata"
La presente invenzione si riferisce in generale ad un dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica programmata.
Più in particolare, l'invenzione riguarda un dispositivo del tipo detto in cui è possibile programmare ogni singola cella multilivello tenendo conto delle particolari caratteristiche fisiche di essa in ogni istante e mantenendo il parallelismo della matrice di memoria sia in scrittura che in lettura, ed in cui è possibile stabilizzare la carica immagazzinata, nel gate fluttuante, o floating gate, di ogni singola cella, compensando il naturale scostamento dal valore programmato.
E’ noto che l'utilizzazione di dispositivi di memoria, sia volatile che non volatile, è estremamente diffusa nelle applicazioni elettroniche.
In particolare, i dispositivi di memoria in cui ogni singola cella è sostanzialmente composta da un transistor con floating gate, noti come dispositivi di tipo Flash, vengono ampiamente utilizzati come memorie non volatili riprogrammabili elettricamente, realizzando un compromesso tra le memorie di sola lettura programmabili e cancellabili (EPROM), veloci e di dimensioni ridotte, e le memorie di sola lettura programmabili e cancellabili elettricamente (EPROM), facilmente gestibili con segnali elettrici.
La tensione di soglia, applicata al terminale di gate, alla quale conduce il transistor dipende dalla carica immagazzinata nel floating gate. Un dato viene memorizzato nelle celle di memoria Flash modificando opportunamente la carica presente sul floating gate.
Per programmare una cella, può essere utilizzata la nota tecnica dell'iniezione di elettroni caldi nel floating gate, applicando particolari tensioni ai terminali di source (solitamente connesso a massa), di drain e di gate. La tensione di soglia aumenta con l'aumentare della carica iniettata nei floating gate. Un’altra tecnica di programmazione prevede una iniziale piena programmazione delle celle, nelle quali viene immagazzinata la massima quantità di carica progettata, ed un successivo scaricamento controllato di tale carica tramite, ad esempio, effetto tunnel verso il canale o l’area di source generato dall’applicazione di particolari tensioni ai terminali di source, di drain e di gate.
Ai termine della programmazione, la cella si troverà in uno stato, corrispondente ad un dato, determinato dalla carica presente nel floating gate e, di conseguenza, dalla tensione di soglia del relativo transistor. Ogni stato della cella corrisponde ad un intervallo prestabilito di tensioni di soglia.
Attualmente, i dispositivi in commercio prevedono due possibili stati per le celle di memoria, che, pertanto, consentono la memorizzazione di dati ad un solo bit.
L'esigenza di ridurre l’area attiva, detta anche “chip”, di tali dispositivi di memoria ha condotto ad esplorare nuove soluzioni che consentissero di utilizzare le celle di memoria prevedendo più di due stati possibili, memorizzando dati a più di un bit.
Tuttavia, tali soluzioni richiedono una grande precisione di iniezione della quantità di carica nel floating gate per posizionare la tensione di soglia delle celle all'interno di intervalli consentiti più stretti.
Questo comporta una serie di notevoli problemi che le soluzioni proposte, pur descrivendo sistemi complessi di tensioni e/o correnti di riferimento ed architetture in grado di rivelare e memorizzare tali dati, hanno lasciato irrisolti.
Innanzitutto, la richiesta accuratezza nella determinazione e nel controllo della quantità di carica iniettata contrasta con una desiderabile velocità di programmazione della memoria.
Inoltre, le celle Flash sono soggette ad invecchiamento, nel senso che le caratteristiche di una cella Flash si alterano nel tempo, in misura non quantificabile, per fenomeni dovuti alle variazioni delie condizioni ambientali, quali la temperatura, alla tensione di alimentazione ed al numero di cancellazioni e programmazioni effettuate durante la vita della cella. Quindi, il sistema di riferimento che stabilisce gli intervalli consentiti per le tensioni di soglia dei vari stati deve tenere conto di tale instabilità temporale. In caso contrario, leggendo la tensione di soglia programmata in una cella Flash in tempi diversi, l'utilizzazione dei medesimi riferimenti in lettura potrebbe fornire dati differenti.
Ulteriormente, in un chip di memoria le celle non presentano le medesime caratteristiche, e, pertanto, mantenendo lo stesso sistema di riferimento in tensione per tutte le celle, la programmazione deve essere specifica per ogni singola cella. In caso contrario, volendo memorizzare lo stesso dato in due celle Flash con caratteristiche differenti, l'utilizzazione dei medesimi parametri di programmazione potrebbe posizionare le relative tensioni di soglia in intervalli differenti, fornendo in lettura due dati differenti.
Infine, con il passare del tempo dopo una programmazione, la carica iniettata nel floating gate tende a diminuire per dispersione naturale e la diminuzione della quantità di carica immagazzinata può modificare la tensione di soglia fino al punto di far passare la cella dallo stato programmato ad un altro.
Lo scopo della presente invenzione è, pertanto, quello di consentire una programmazione di celle multilivello di memoria a transistor a gate fluttuante che sia precisa, veloce, specifica per ogni cella, adattativa all’invecchiamento delie celle e che mantenga il parallelismo della matrice di memoria in scrittura ed in lettura.
Un ulteriore scopo è quello di consentire la stabilizzazione della carica immagazzinata nel gate fluttuante, o floating gate, di ogni singola cella, compensando il naturale scostamento dai valore programmato, tenendo conto della specificità di ogni cella, deirinvecchiamento delle celle, mantenendo il parallelismo ed i tempi di accesso della matrice di memoria in scrittura ed in lettura.
Forma oggetto specifico della presente invenzione un metodo di programmazione e stabilizzazione di un dispositivo di memoria a celle multilivello a transistor a gate fluttuante, o celle multilivello Flash, aventi un numero di stati possibili maggiore di due, ogni stato corrispondendo ad un intervallo consentito per la tensione di soglia del transistor della cella, ognuno di detti intervalli consentiti essendo stabilito da una coppia di tensioni di riferimento, dette celle essendo programmate a partire dallo stato di piena cancellazione tramite applicazione di opportune tensioni ai terminali di source, di drain e di gate e conseguente iniezione di carica nel floating gate, detto metodo essendo caratterizzato dal fatto di prevedere una prima fase di programmazione, in cui ad ogni cella da programmare viene applicato un primo impulso di programmazione, seguito da una prima lettura di verìfica della tensione di soglia prodotta da detto primo impulso per classificare ogni singola cella in base alla sua velocità di programmazione, detta classificazione delle celle prevedendo almeno due categorie di celle, detta prima fase di programmazione essendo seguita da una o più fasi successive di programmazione, in ogni fase successiva essendo applicati ad ogni cella impulsi, di pari durata nella stessa fase, il cui numero, maggiore o uguale a zero, e la cui ampiezza sono selezionabili per ogni cella in base al dato da memorizzare e/o alla categorìa della cella, ognuno di detti impulsi essendo seguito da una lettura di verìfica della tensione di soglia, detto metodo essendo altresì caratterizzato dal fatto che la stabilizzazione prevede una lettura di verifica della tensione di soglia delle celle, seguita dall’applicazione, alle sole celle la cui carica deve essere ripristinata, di uno o più impulsi di programmazione, detti intervalli consentiti, per la tensione di soglia dei transistor della cella, corrispondenti ad ogni stato, essendo variabili in funzione dell’invecchiamento delle celle.
Forma ulteriore oggetto della presente invenzione un dispositivo di memoria a celle multilivello Flash, caratterizzato dal fatto di applicare detto metodo di programmazione e stabilizzazione e di prevedere mezzi per la programmazione delle celle, mezzi per la determinazione delle tensioni di riferimento in funzione dell'invecchiamento delle celle, e mezzi per la stabilizzazione delle celle, dette tensioni di riferimento essendo specifiche per le operazioni di programmazione, di stabilizzazione e di lettura delle celle.
Ulteriori caratteristiche della presente invenzione sono descritte nelle rivendicazioni dipendenti.
La presente invenzione verrà ora descritta, a titolo illustrativo, ma non limitativo, secondo sue preferite forme di realizzazione, con particolare riferimento alle Figure dei disegni allegati, in cui:
la Figura 1 mostra una distribuzione di celie Flash a 4 stati in funzione della tensione di soglia dei transistor con floating gate;
la Figura 2 mostra un diagramma schematico di un circuito di programmazione delle celle di memoria secondo l'invenzione;
la Figura 3 mostra uno schema a blocchi di una prima forma di realizzazione del dispositivo secondo l'invenzione;
!a Figura 4 mostra uno schema a blocchi di una seconda forma di realizzazione del dispositivo secondo l'invenzione; e
la Figura 5 mostra uno schema a blocchi di una terza forma di realizzazione del dispositivo secondo l'invenzione.
Nel seguito viene fatto riferimento a dispositivi di memoria Flash le cui celle multilivello hanno quattro stati possibili, ognuno dei quali implementa un dato a due bit, che vengono programmate, a partire dallo stato di piena cancellazione delle celle, iniettando carica nei fioating gate. Si deve tuttavia tenere presente come il numero degli stati possibili possa essere un qualsiasi numero maggiore di due, rimanendo sempre neH'ambito di protezione della presente invenzione.
Come detto, nei dispositivi di memoria Flash, la scrittura convenzionale delle celle avviene applicando una tensione di programmazione al terminale di gate. Generalmente, la programmazione si compone di un certo numero di passi di scrittura e verìfica, cioè lettura, del dato memorizzato, ovvero della tensione di soglia determinata, in scrittura. Applicando differenti valori di tensione di programmazione al terminale di gate, è possibile ottenere differenti tensioni di soglia del transistor a fioating gate, ognuna corrispondente ad un differente stato della cella. Tuttavia, poiché le celle non hanno le stesse caratteristiche, applicando la stessa tensione di programmazione per lo stesso tempo al terminale di gate di celle che devono immagazzinare io stesso dato, non si otterrà la medesima tensione di soglia, ma si avrà una distribuzione statistica, approssimativamente gaussiana, delle celle in funzione delia tensione di soglia. Tale distribuzione, che per celle a due stati non ha praticamente effetti, rende inutilizzabile la maggior parte dei dispositivi a celle multilivello. In proposito, in Figura 1 è mostrata una tale distribuzione per un dispositivo di memoria Flash le cui celle hanno quattro possibili stati. Le curve a campana di tali distribuzioni, corrispondenti a due stati con tensioni di soglia vicine, possono sovrapporsi e provocare conseguenti errori di lettura delle celle programmate.
Pertanto, si deve far ricorso ad una programmazione specifica per ogni singola cella multilivello del dispositivo di memoria Flash, classificandone preliminarmente le caratteristiche ed applicando opportune tensioni di programmazione al terminale di gate per un tempo sufficiente a posizionare la tensione di soglia all'interno della campana corrispondente al dato da memorizzare.
Applicando impulsi sufficientemente brèvi si riesce a dosare la quantità di carica che viene iniettata nel floating gate. In questo modo, è possibile controllare l’iniezione di carica all’interno del floating gate tramite la durata complessiva degli impulsi di tensione di programmazione applicati al terminale di gate.
Pertanto, per programmare una cella in uno specifico stato, si applicano successive serie di impulsi, ogni serie formata da un numero di impulsi specifico per quella data cella, tali da portare il valore della tensione di soglia all’interno di intervalli sempre più stretti. Con tale metodo di programmazione, è possibile ridurre la massima differenza tra le tensioni di soglia di celle appartenenti al medesimo stato a poche decine di milliVolt.
Utilizzando impulsi di breve durata, anche notevoli variazioni percentuali di tale durata non producono corrispondenti notevoli variazioni nella tensione di soglia programmata.
Un controllo ancora più accentuato sull'iniezione di carica all’interno del fioating gate è ottenibile inserendo delle resistenze in serie ai terminali di source e di drain. Variando il valore di tali resistenze è possibile modificare le differenze di potenziale applicate, in programmazione, alle coppie di terminali del transistor, modulando l'iniezione della quantità di carica all'interno del fioating gate. Altre forme di realizzazione prevedono solo una resistenza inserita in serie al terminale di source od al terminale di drain.
In definitiva, la programmazione avviene inserendo una o più resistenze in serie alla cella, i cui valori sono selezionabili per ogni cella in base al dato da memorizzare, ed applicando una serie di impulsi di programmazione, il cui numero e la cui durata sono pure selezionabili per ogni cella in base alle sue specifiche caratteristiche, che sono rilevate dalla prima verìfica dopo la prima scrittura, uguale per tutte le celle.
Con riferimento alla Figura 2, si può osservare che la struttura della memoria cui ci si riferisce prevede che le celle Flash multilivello siano organizzate in una struttura matriciale detta “array”. Tutte le celle appartenenti ad una medesima riga sono abilitate dal medesimo segnale WL di indirizzo di riga, detto “word line”, connesso ai terminale di gate dei transistor costituenti le celle. Ogni riga è abilitata da un particolare segnale WL. Quando il segnale WL di una riga è alto, i terminali di drain delle celle corrispondenti vengono connessi a linee di bit BL Ogni linea di bit BL costituisce una colonna dell'array ed è comune a tutte le celle appartenenti alla corrispondente colonna.
Un circuito di programmazione delle celle di memoria secondo l'invenzione prevede un insieme di generatori 1 di impulsi, ognuno in grado di generare impulsi di durata specifica, collegabili, tramite un commutatore 2, ad una rete logica, costituita di un numero di porte AND 3 pari al numero di celle Flash 4 con lo stesso indirizzo di riga WL. Ogni porta logica AND 3 riceve in ingresso il segnale proveniente da uno specifico generatore 1 di impulsi ed il segnale proveniente da un contatore 5, relativo alla cella 4, ed in uscita è connessa alla linea di bit BL, ovvero al terminale di drain, della corrispondente cella 4. I terminali di source delle celle 4 sono connessi a massa tramite una resistenza 6 selezionabile in un banco tramite un commutatore 7.
In Figura 2 è mostrata una memoria con dimensione di parola fìsica pari a quattro celle, corrispondente ad una dimensione di parola logica pari a 8 bit. Si deve tuttavia tenere presente come la dimensione di parola fisica possa variare, rimanendo sempre nel'ambito di protezione della presente invenzione.
Ognuno dei passi di programmazione prevede che le porte logiche AND 3 vengano connesse in ingresso al medesimo generatore di impulsi 1 , ma l'impulso viene applicato un numero di volte specifico per ogni cella 4, dipendendo dalle caratteristiche della cella 4 stessa, poiché compare all'uscita della corrispondente porta 3 solo se abilitato dal segnale proveniente dal corrispondente contatore 5 opportunamente inizializzato. Inoltre, l'ampiezza dell’impulso, da cui dipende la quantità di carica iniettata e, di conseguenza, la tensione di soglia ed il dato memorizzato, viene controllata per ogni cella 4 in base alla selezione della specifica resistenza 6 di source operata dal commutatore 7.
E’ chiaro che, in funzione della particolare architettura dell’array di memoria, il banco di resistenze 6 è posizionabile diversamente. Ad esempio, nel caso di array con terminali di source tutti connessi a massa, è preferibile spostare detti banchi di resistenze 6 sulle linee di bit BL, cioè sui terminali di drain delle celle 4. in particolare, in questo caso l'introduzione di tale circuito di programmazione non implica un considerevole impatto sulla struttura complessiva del dispositivo di memoria, poiché ci sarà un contatore 5, una porta logica AND 3 ed un banco di resistenze 6 per ognuna delle linee di bit BL che, almeno in scrittura, sono limitate alla dimensione di parola fisica della memoria, tipicamente limitata.
E’ altresì ovvio che, nel caso si utilizzi una architettura in cui i terminali di gate delle celle appartenenti alla medesima riga non siano in comune, si può progettare un circuito di programmazione che consenta di selezionare anche il valore della tensione da applicare a detto terminale di gate.
Come risulta dalla Figura 2, le celle Flash, pur essendo soggette ad una programmazione singolarmente specifica in funzione del dato da memorizzare e delle loro caratteristiche, vengono tuttavia programmate in parallelo secondo l’organizzazione matriciale della memoria.
Nella preferita forma di realizzazione del metodo di programmazione secondo l'invenzione, è previsto un algoritmo di programmazione suddiviso in quattro fasi.
Nella prima fase, detta “spread programming", viene applicato, a tutte le celle da programmare, un impulso “lungo”, inserendo in serie alle celle resistenze di pari valore. Il passo di verifica della tensione di soglia prodotta dall'applicazione di tale impulso consente di classificare le celle, in funzione della velocità di programmazione verificata, in “deboli”, cioè a programmazione lenta, “medie” e “forti”, cioè a programmazione veloce.
Nella seconda fase di programmazione, detta “jump programming”, nella terza* detta “linear programming”, e nella quarta, detta “adjustment programming”, vengono applicati, alle celle da programmare, impulsi rispettivamente “lunghi” (di durata pari a quella degli impulsi delia fase di spread), “medi” (più brevi degli impulsi “lunghi”) e “corti" (più brevi degli impulsi “medi”), selezionando in ognuna di dette fasi la resistenza da inserire in serie, in base al dato da memorizzare, ed il numero di impulsi, in base al dato da memorizzare ed alla classificazione della celia.
Ogni impulso inietta una quantità di carica all’Interno del fioating gate che produce una variazione nel valore della tensione di soglia. Ovviamente, gii impulsi lunghi delle fasi di spread e di jump modificano le tensioni di soglia dei transistor delle celle in modo maggiore degli impulsi medi della fase di linear e degli impulsi brevi della fase di adjustment.
Si deve tenere presente come sia possibile variare il numero delle fasi di programmazione e/o il numero di impulsi di differente durata e/o il numero delle resistenze selezionabili e/o il valore di tali resistenze in funzione del numero di stati possibili delle celle, dell’accuratezza desiderata nella classificazione delle caratteristiche delie celle, della richiesta velocità di programmazione, della precisione nella programmazione delle tensioni di soglia e della semplicità del circuito di programmazione, rimanendo sempre nell ’ambito di protezione della presente invenzione.
L'obiettivo è quello di portare, con un procedimento di approssimazioni successive, il valore della tensione di soglia all’interno di un intervallo consentito molto stretto centrato sul vertice della campana di distribuzione corrispondente al dato da memorizzare. Dopo ogni impulso, viene eseguita una lettura di verifica del dato memorizzato che interrompe l’applicazione dei successivi impulsi nel caso possano spostare la tensione di soglia al di fuori di detto intervallo consentito.
In Figura 1 sono mostrati i valori delle tensioni di riferimento per le tensioni di soglia delle celle Flash. In particolare, i valori Vrefl , Vref2 e Vref3 sono utilizzati dalla circuiteria del dispositivo che esegue la lettura e la decodifica del dato memorizzato, ad esempio mediante una comparazione binaria-logaritmica. Le coppie di valori (Vref4, Vref5), (Vref6, Vref7), (Vref8, Vref9) e (VreflO, Vref11) sono utilizzate, come indicative degli intervalli consentiti per le tensioni di soglia degli stati possibili delle celle, dalla circuiteria del dispositivo che esegue la verifica del dato programmato ed i! controllo delle varie fasi di programmazione. In altre parole, una cella viene programmata finché la carica iniettata nel suo floating gate non produce una tensione di soglia il cui valore cade all'interno dell'intervallo consentito, delimitato da una di dette coppie, corrispondente al dato da memorizzare. Un eventuale superamento dei limiti superiori degli intervalli consentiti, stabiliti per le operazioni di scrittura e stabilizzazione, rivela che il dispositivo è degradato ed inutilizzabile.
Come detto in precedenza, a causa dell' invecchiamento delle celle, tali valori delle tensioni di riferimento non possono essere valori assoluti. E’ noto, ad esempio, che le tensioni di soglia delio stato non programmato, indicato in Figura 1 come "11”, e dello stato di piena programmazione, indicato in Figura 1 come “00”, tendono a convergere con l'invecchiamento del dispositivo.
Pertanto, si rende necessario un aggiustamento dei posizionamento di tali valori di riferimento, per evitare errori sia in lettura che in verìfica di scrittura.
Tale aggiustamento viene ottenuto correggendo i valori assoluti in base ai valori delle tensioni di soglia di opportune celle di riferimento. In particolare, le celle di memoria sono organizzate in blocchi per consentire la cancellazione selettiva deile informazioni. Dette celle di riferimento sono specifiche per ogni blocco e sono fisicamente poste all'interno del blocco stesso. Dette celle di riferimento sono sottoposte ai medesimi stress elettrici, termici e meccanici delle celle di memoria e, inoltre, vengono cancellate e riscritte ogni volta che viene attivata un'operazione di cancellazione sul blocco di appartenenza. Sono, pertanto, rappresentative dell’invecchiamento delle celle di memoria del blocco.
Nella preferita forma di realizzazione dette celle di riferimento memorizzano esclusivamente gli stati di piena programmazione (“00”) e di completa cancellazione ("11 "). Si deve tuttavia tenere presente come possano memorizzare anche altri stati, rimanendo sempre neH’ambito di protezione della presente invenzione.
Con riferimento ora alta Figura 3, si può osservare che uno schema a blocchi di una prima forma di realizzazione del dispositivo secondo l'invenzione prevede un blocco “Sequencer” che interpreta la temporizzazione dei segnali di controllo (CE, OE, W), integrandoli con le configurazioni di bit presenti sul bus degli indirizzi “Address Bus” e sul bus dei dati “Data Bus". Il Sequencer gestisce i blocchi specializzati “Read”, “Erase”, “Write" e “Verify” che eseguono, rispettivamente, le operazioni di lettura, cancellazione, scrittura e verifica della scrittura sulle celle di memoria.
Detti blocchi specializzati controllano, attraverso uno specifico bus di comando, il blocco “Voltage Mngr”, che seleziona le opportune tensioni per il terminale di gate in comune alle celle della riga o, se l’architettura dell'array lo rende possibile, per i singoli terminali di gate delle celle della riga. Inoltre, per ogni cella Flash il Voltage Mngr seleziona ta resistenza 6, inizializza il contatore 1 e seleziona i valori delle tensioni di riferimento per le tensioni di soglia.
I blocchi “Row Select” e “Column Select" operano la decodifica degli indirizzi, rispettivamente, di riga e di colonna e polarizzano i terminali di gate, drain e source delle celle indirizzate in base alla tensione di gate ed alle resistenze selezionate dal Voltage Mngr.
L’array di memoria comprende celle utilizzate per memorizzare i dati, rappresentate dal blocco “Memory Array", e celle di riferimento, rappresentate dal blocco “Ref Celi Arri" ed indirizzate dal blocco “Ref celi row sei" di decodifica dell'indirizzo.
Le tensioni di riferimento necessarie alla lettura, alla scrittura ed alla verifica della programmazione vengono generate a partire dal blocco “Band Gap Gen”, che fornisce una tensione sempre costante per tutta la vita del dispositivo. A partire da tale tensione, il blocco “Absolute Reference Levels” genera un primo insieme di tensioni assolute. A partire da tale insieme e dalle tensioni di soglia lette dalle opportune celle di riferimento, il blocco “Relative Reference Levels" genera le tensioni di riferimento adattate all’invecchiamento de! chip ed utilizzate nelle operazioni di accesso alle celle Flash. I blocchi “Band Gap Gen" , “Absolute Reference Levels" e “Relative Reference Levels" sono sostanzialmente semplici blocchi analogici.
I blocchi “Sensing” sono costituiti da amplificatori bidirezionali, o Sense Amplifier, che ricostruiscono in lettura, a partire dalla tensione o dalla corrente fornita dalla cella e dai riferimenti, la coppia di bit corrispondente ai dato memorizzato nella cella a quattro stati, e segnata in scrittura al blocco "Verify” quando la carica iniettata nel fioating gate della cella ha raggiunto il livello corrispondente al dato da memorizzare.
L’introduzione della circuiteria necessaria aH’implementazione del metodo di programmazione descritto accresce l'area del chip in maniera limitata, ma l’aumento del numero di bit di memoria ottenuto con le celle multilivello compensa tale incremento di area, producendo un risparmio netto di area del chip a parità di numero di bit di memoria. Tale risparmio aumenta all’aumentare del numero di celle nell’array.
Come detto, per contrastare il fenomeno di scarica della fioating gate e necessario stabilizzare tale carica. La soluzione proposta secondo l'invenzione prevede di adottare un metodo simile al Rinfresco, o Refresh, dei dati nelle memorie volatili dinamiche DRAM, con la differenza che il ripristino dei dati memorizzati nella memoria Flash avviene solo quando viene rivelato uno scostamento apprezzabile della tensione di soglia dal valore programmato.
Leggendo i dati memorizzati nelle celle e verificando che la carica presente nel fioating gate è minore del valore programmato, a condizione che sia rimasta in un intorno di esso, si applicano, alle sole celle la cui carica deve essere ripristinata, uno o più impulsi di programmazione di durata tale da non rallentare il funzionamento del dispositivo e/o da non far superare alla tensione di soglia il limite superiore dell’intervallo consentito per lo stato corrispondente al dato programmato.
Con riferimento ancora alla Figura 1, l’intorno del valore programmato all'interno dei quale deve rimanere la carica può essere stabilito in base alle specifiche esigenze di progetto, ma deve essere inferiore alla distanza tra due valori di riferimento in lettura, ad esempio Vrefl e Vref2 per lo stato “10". E' preferibile che detto intorno sia non superiore, ancora meglio sia inferiore, agli intervalli consentiti per le tensioni di soglia, ad esempio (Vref6, Vref7) per lo stato “10”.
Pertanto, viene introdotta una coppia di riferimenti addizionale, denominati Vchk, per ogni stato, tale da rivelare lo scostamento del livello di carica dalla regione ammissibile, ed in lettura si può evidenziare un comportamento potenzialmente anomalo, pur rimanendo questo nei limiti dei funzionamento normale.
Per riportare il livello di carica a condizioni ottimali è sufficiente iniettare elettroni nel floating gate per un tempo dell’ordine di poche decine di nanosecondi, anche se il tempo totale di programmazione può essere di svariati microsecondi.
Tale procedura di stabilizzazione della carica può essere effettuata all’accensione dei dispositivo, in cui il Sequencer scandisce tutta la memoria ed esegue il ripristino completo della carica nelle celle la cui tensione di soglia è uscita dall'intorno determinato dai Vchk corrispondenti allo stato programmato. In tal caso è ancora valido lo schema di Figura 3, dove il Voltage Mngr seleziona all’accensione i valori di riferimento Vchk. Tale soluzione comporta un allungamento del tempo di accensione di cui il processore connesso al dispositivo di memoria Flash deve tenere conto.
Inoltre, detta procedura di stabilizzazione della carica può essere effettuata anche mediante l’attivazione di una particolare funzionalità di controllo, o test-mode, del dispositivo, in cui il Sequencer scandisce tutta la memoria ed esegue il riprìstino completo della carica. Tale testmode può essere abilitato dal processore nei suoi momenti di inattività, estremamente frequenti in molte applicazioni, ad esempio telefoni cellulari e portatili, Personal Computer, videogiochi portatili, telecamere, videocamere e macchine fotografiche, dove dispositivi di memoria Flash sono utilizzati. Tale test-mode può anche essere abilitato manualmente dall'utente. Anche nel caso di test-mode è ancora valido lo schema di Figura 3.
Ancora, la procedura di stabilizzazione della carica può essere effettuata durante il normale funzionamento dei dispositivo, cioè alla lettura di una parola di memoria. Anche se gli impulsi applicati non ripristinano completamente la quantità di carica nel floating gate, tuttavia letture e conseguenti stabilizzazioni successive della stessa cella possono riportare progressivamente la carica immagazzinata ai livello programmato.
Con riferimento alla Figura 4, si può osservare che per implementare questa funzionalità è sufficiente aggiungere al dispositivo un banco addizionale di Senso Amplifìer “Monitor Sensing” che utilizzeranno tensioni di riferimento Vchk diverse da quelle Vref usate per la normale operazione di lettura.
Se una comparazione dovesse risultare sfavorevole, una segnalazione al Sequencer potrà attivare una routine di ripristino del l'informazione di complessità variabile in funzione del tempo a disposizione, per esempio un singolo impulso di programmazione od una serie di impulsi di programmazione intervallati da letture di verifica del dato ripristinato.
Tali tre modalità operative possono essere selettivamente abilitate da opzioni programmabili a livello di prodotto finito (scrittura in registri interni al chip), oppure durante la fase produttiva (metal or bonding options)
Su architetture di tipo convenzionale ad alta velocità, in cui vengono letti tipicamente, 8, 16 o 32 bit per accesso, c’è solo un limitato margine temporale durante l'operazione di accesso in lettura e, pertanto, la contemporanea esecuzione della stabilizzazione della carica può essere inattuabile.
Inoltre, lo schema mostrato in Figura 4 è applicabile solo a dispositivi in cui il numero di Sense Amplifier in lettura è limitato. Tuttavia stanno emergendo alcune nuove architetture, da utilizzare, ad esempio, in macchine destinate alla sola navigazione in Internet ed alla gestione della posta elettronica e per le quali sono richiesti tempi di attesa pressoché nulli per il caricamento nella memoria volatile del sistema operativo residente sulla memoria non volatile. Tali nuove architetture prevedono che le interfacce delle memorie Flash supportino funzionalità analoghe a quelle delle interfacce delle DRAM, quali interfacce FPM/EDO e sincrone, e, pertanto, prevedono l'utilizzo di migliaia di Sense Amplifier in lettura. In questo caso il raddoppio del numero di Sense Amplifier dovuto al blocco Monitor Sensing sarebbe proibitivo.
In questo caso è più appropriato usare tecniche di correzione di errore ad alta efficienza, ad esempio Reed-Solomon parallelo. In tal modo, anche con dispositivi estremamente veloci, è possibile effettuare il ripristino della carica durante il normale funzionamento della memoria, poiché le migliaia di dati prelevati durante un accesso alla memoria permangono all’uscita dei corrispondenti Sense Amplifier, dove vengono selezionati dal processore, per un tempo sufficiente ad eseguire detto ripristino sulle celle di memoria che un rivelatore di errore individua come memorizzanti dati errati.
Ridondanze del 12% sono facilmente implementabili. L’aggravio di tempo necessario per calcolare la sindrome di errore è di piccola entità, se comparato al tempo necessario alla successiva iniezione di carica nella cella fallente.
Il calcolo della sindrome di errore fornisce l'informazione sulla posizione dei bit fallenti, per cui con facilità si può ricostruire la parola di codice originaria.
Con riferimento alla Figura 5, si può osservare che per implementare questa funzionalità è sufficiente aggiungere al dispositivo di Figura 3 un blocco “Errar Decoder" ed un blocco “Sindrome Data" che forniscono in uscita i dati corretti ed inviano una segnalazione ai Sequencer per attivare la routine di ripristino della carica. Inoltre, deve essere aggiunto un blocco “Check Bits" che introduce le celle necessarie alla ridondanza della specifica tecnica di correzione di errore utilizzata.
E’ da notare come il parallelismo di programmazione, che prevede Sense Amplifìer piuttosto complessi, è limitato alla dimensione delle parole fisiche della memoria, tipicamente 8, 16 o 32, mentre il parallelismo di lettura può raggiungere svariate migliaia di bit.
Anche in questo caso sono applicabili le modalità di scansione dell'intera matrice di memoria, all’accensione ed in test-mode, e le diverse modalità operative possono essere selettivamente abilitate.
La presente invenzione è stata descritta a titolo illustrativo, ma non limitativo, secondo sue forme preferite di realizzazione, ma è da intendersi che gli esperti del ramo potranno apportare modificazioni e cambiamenti senza con ciò uscire dal relativo ambito di protezione, come definito dalle rivendicazioni allegate.

Claims (1)

  1. RIVENDICAZIONI 1 Metodo di programmazione e stabilizzazione di un dispositivo di memoria a celle multilivello a transistor a gate fluttuante, o celle multilivello Flash, aventi un numero di stati possibili maggiore di due, ogni stato corrispondendo ad un intervallo consentito per la tensione di soglia del transistor della cella, ognuno di detti intervalli consentiti essendo stabilito da una coppia di tensioni di riferimento, dette celle essendo programmate a partire dallo stato di piena cancellazione tramite applicazione di opportune tensioni ai terminali di source, di drain e di gate e conseguente iniezione di carica nel floating gate, detto metodo essendo caratterizzato dal fatto di prevedere una prima fase di programmazione, in cui ad ogni cella da programmare viene applicato un primo impulso di programmazione, seguito da una prima lettura di verifica della tensione di soglia prodotta da detto primo impulso per classificare ógni singola cella in base alla sua velocità di programmazione, detta classificazione delle celle prevedendo almeno due categorie di celle, detta prima fase di programmazione essendo seguita da una o più fasi 'successive di programmazione, in ogni fase successiva essendo applicati ad ogni cella impulsi, di pari durata nella stessa fase, il cui numero, maggiore o uguale a zero, e la cui ampiezza sono selezionabili per ogni cella in base al dato da memorizzare e/o alla categoria della cella, ognuno di detti impulsi essendo seguito da una lettura di verifica della tensione di soglia, detto metodo essendo altresì caratterizzato dal fatto che la stabilizzazione prevede una lettura di verifica della tensione di soglia delle celle, seguita dall'applicazione, alle sole celle la cui carica deve essere ripristinata, di uno o più impulsi di programmazione, detti intervalli consentiti, per la tensione di soglia dei transistor della cella, corrispondenti ad ogni stato, essendo variabili in funzione dell’invecchiamento delle celle. 2.- Metodo di programmazione e stabilizzazione secondo la rivendicazione 1, caratterizzato dal fatto che detto invecchiamento delle celle è rilevato dalla lettura delle tensioni di soglia di opportune celle di riferimento distribuite nel dispositivo di memoria in modo che ognuna di esse sia riferita ad un insieme delle normali celle del dispositivo, dette celle di riferimento essendo programmate nei vari stati possibili per le celle del dispositivo, ognuna di dette celle di riferimento essendo cancellata e riprogrammata ogni volta che viene eseguita una operazione di cancellazione sull'insieme delle celle del dispositivo al quale è riferita. 3.- Metodo di programmazione e stabilizzazione secondo la rivendicazione 2, caratterizzato dal fatto che dette celle di riferimento memorizzano esclusivamente lo stato di piena programmazione e lo stato di completa cancellazione. 4.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che la durata degli impulsi di ogni fase di programmazione è non crescente con il numero progressivo della fase. 5.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che in ogni fase di programmazione successiva alla prima l'applicazione degli impulsi è interrotta se l'ulteriore applicazione di un impulso sposta la tensione di soglia oltre il limite superiore dell'intervallo consentito corrispondente al dato da memorizzare. 6.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detti uno o più impulsi applicati durante la stabilizzazione sono di pari durata, detta durata essendo tale da non far superare alla tensione di soglia il limite superiore dell’intervallo consentito per lo stato corrispondente al dato programmato. 7.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle rivendicazioni 1-5, caratterizzato dal fatto che detti uno o più impulsi applicati durante la stabilizzazione hanno durata variabile in base alla quantità di carica da ripristinare, detta durata essendo tale da non far superare alla tensione di soglia il limite superiore dell’intervallo consentito per lo stato corrispondente al dato programmato. 8.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto di prevedere per ognuno di detti stati possibili un intervallo di controllo, ognuno di detti intervalli di controllo essendo stabilito da una coppia di tensioni (Vchk) di riferimento ed essendo interno all'intervallo consentito corrispondente allo stesso stato, detta coppia di tensioni (Vchk) di riferimento essendo utilizzata in detta lettura di verifica eseguita dalla stabilizzazione. 9.- Metodo di programmazione e stabilizzazione secondo una qualsiasi delle rivendicazioni 1-7, caratterizzato dal fatto di prevedere la stabilizzazione durante il normale funzionamento del dispositivo, eseguendo il ripristino della carica sulle celle, indirizzate durante un normale accesso in lettura, che una tecnica di correzione di errore rileva come memorizzanti dati errati. 10.- Dispositivo di memoria a celle multilivello Flash, aventi un numero di stati possibili maggiore di due, le cui celle di memoria hanno una struttura matriciale, o ad array, per applicare il metodo di programmazione e stabilizzazione secondo una qualsiasi delle rivendicazioni 1-7, caratterizzato dai fatto di prevedere mezzi per la programmazione delle celle, mezzi per la determinazione delle tensioni di riferimento in funzione dell'invecchiamento delle celle, e mezzi per la stabilizzazione delle celle, dette tensioni di riferimento essendo specifiche per le operazioni di programmazione, di stabilizzazione e di lettura delle celle. 11.- Dispositivo di memoria secondo la rivendicazione 10, caratterizzato dal fatto che detti mezzi per la programmazione delle celle comprendono un circuito costituito da un insieme di generatori (1) di impulsi selezionabili e collegabili, tramite una rete logica, alle celle Flash (4) indirizzate dalla programmazione, il terminale di source e/o il terminale di drain di ognuna di dette celle Flash (4) essendo connessi in serie ad una resistenza (6) selezionabile in un banco di resistenze, detta rete logica prevedendo per ogni cella Flash (4) indirizzata una porta logica AND (3) ed un contatore (5), detti mezzi per la programmazione applicando al terminale di gate di ogni celia Flash (4) indirizzata l'opportuna tensione di programmazione. 12.- Dispositivo di memoria secondo la rivendicazione 10 o 11, caratterizzato dal fatto che le celle Flash (4) appartenenti alla medesima riga dell'array di memoria hanno il terminale di gate in comune. 13.- Dispositivo di memoria secondo una qualsiasi delle rivendicazioni 10-12, caratterizzato dal fatto che detti mezzi per la determinazione delle tensioni di riferimento prevedono che le celie di memoria siano organizzate in blocchi, ogni blocco presentando celle per la memorizzazione dei dati e celle di riferimento, dette celle di riferimento essendo programmate ai diversi stati possibili per le celle ed essendo cancellate e riprogrammate ogni volta che viene attivata un’operazione di cancellazione sui blocco di appartenenza, detti mezzi per la determinazione delle tensioni di riferimento prevedendo altresì una circuiteria che, a partire da un insieme di tensioni di riferimento assolute, o costanti, e dalle tensioni di soglia lette da dette celle di riferimento, genera l'insieme delle tensioni di riferimento relative al blocco cui appartengono le celle indirizzate nell'accesso all’array. 14.- Dispositivo di memoria secondo la rivendicazione 13, caratterizzato dal fatto che dette celle di riferimento memorizzano esclusivamente lo stato di piena programmazione e lo stato di completa cancellazione delle celle. 15.- Dispositivo di memoria secondo una qualsiasi delle rivendicazioni 10-14, caratterizzato dal fatto che detti mezzi per la stabilizzazione delle celle applicano il metodo di stabilizzazione secondo la rivendicazione 8, prevedendo una circuiteria di lettura e comparazione del dato memorizzato nelle celle indirizzate con la coppia di tensioni (Vchk) di riferimento che stabilisce l'intervallo di controllo, detta circuiteria attivando la programmazione di ripristino della carica quando rileva che la tensione di soglia della cella non appartiene a detto intervallo di controllo. 16.- Dispositivo di memoria secondo la rivendicazione 15, caratterizzato dal fatto di eseguire la stabilizzazione sulle celle indirizzate durante un accesso in lettura. 17.- Dispositivo di memoria secondo la rivendicazione 15, caratterizzato dai fatto di prevedere la stabilizzazione all'accensione del dispositivo con una scansione totale della memoria ed un ripristino completo della carica. 18.- Dispositivo di memoria secondo la rivendicazione 15, caratterizzato dal fatto di prevedere la stabilizzazione all'attivazione di una funzionalità di controllo, o test-mode, del dispositivo, con una scansione totale della memoria ed un ripristino completo della carica. 19.- Dispositivo di memoria secondo una qualsiasi delle rivendicazioni 10-14, caratterizzato dal fatto che detti mezzi per la stabilizzazione delle celle applicano il metodo di stabilizzazione secondo la rivendicazione 9, prevedendo una circuiteria di lettura del dato memorizzato che fornisce in uscita il dato corretto ed attiva la programmazione di ripristino della carica quando rileva un errore, l’array di memoria prevedendo delle celle Flash aggiuntive necessarie alla ridondanza richiesta dalla tecnica di correzione di errore. 20. Metodo di programmazione e stabilizzazione di un dispositivo di memoria a celle multilivello Flash e relativo dispositivo secondo ognuna delle precedenti rivendicazioni 1-9 e 10-19, rispettivamente, sostanzialmente come illustrato e descritto.
IT97RM000344A 1997-06-09 1997-06-09 Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica IT1293041B1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT97RM000344A IT1293041B1 (it) 1997-06-09 1997-06-09 Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT97RM000344A IT1293041B1 (it) 1997-06-09 1997-06-09 Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica

Publications (3)

Publication Number Publication Date
ITRM970344A0 ITRM970344A0 (it) 1997-06-09
ITRM970344A1 true ITRM970344A1 (it) 1998-12-09
IT1293041B1 IT1293041B1 (it) 1999-02-11

Family

ID=11405121

Family Applications (1)

Application Number Title Priority Date Filing Date
IT97RM000344A IT1293041B1 (it) 1997-06-09 1997-06-09 Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo di programmazione e stabilizzazione della carica

Country Status (1)

Country Link
IT (1) IT1293041B1 (it)

Also Published As

Publication number Publication date
ITRM970344A0 (it) 1997-06-09
IT1293041B1 (it) 1999-02-11

Similar Documents

Publication Publication Date Title
US7567458B2 (en) Flash memory array having control/decode circuitry for disabling top gates of defective memory cells
TWI402849B (zh) 用於控制記憶體之系統及方法
JP4129170B2 (ja) 半導体記憶装置及びメモリセルの記憶データ補正方法
KR960010958B1 (ko) 소거시간을 단축할 수 있는 불휘발성 반도체 메모리
KR100522561B1 (ko) 메모리 셀마다 단일 또는 다중 디지털 비트들을 저장 및 검색하기 위한 안정 회로 및 기술
US7939892B2 (en) Test circuit and method for multilevel cell flash memory
US9423969B2 (en) Sensing operations in a memory device
KR100286720B1 (ko) 불휘발성 반도체 메모리
US6992934B1 (en) Read bitline inhibit method and apparatus for voltage mode sensing
US7596037B2 (en) Independent bi-directional margin control per level and independently expandable reference cell levels for flash memory sensing
US20070263436A1 (en) Method and apparatus to improve nonvolatile memory data retention
US8780639B2 (en) Non-volatile memory device with plural reference cells, and method of setting the reference cells
ITRM970344A1 (it) Dispositivo di memoria a celle multilivello a transistor a gate fluttuante e metodo diprogrammazione e stabilizzazione della carica
JP3693915B2 (ja) プログラマブル不揮発性複数ビットメモリセルを有する記憶装置およびそのセルの記憶状態を分界する装置と方法
EP0978843A1 (en) A floating gate transistor, muti-level cell memory device and method for programming the cells and stabilizing the programmed charge
EP0967617A1 (en) A floating gate transistor, multi-level cell memory device and method for programming the cells and stabilizing the programmed charge
JP2000021184A (ja) 多重レベル・セル・フラッシュ・メモリ・デバイスをプログラムおよび安定化するための方法とデバイス
CN113921062A (zh) 存储器及其操作方法
KR20000003191A (ko) 부동 게이트 트랜지스터, 셀을 프로그래밍하고 프로그램된전하를 안정화시키기 위한 멀티-레벨 셀 메모리 장치 및 방법

Legal Events

Date Code Title Description
0001 Granted