ITRM20080693A1 - Programmazione in un dispositivo di memoria. - Google Patents
Programmazione in un dispositivo di memoria. Download PDFInfo
- Publication number
- ITRM20080693A1 ITRM20080693A1 IT000693A ITRM20080693A ITRM20080693A1 IT RM20080693 A1 ITRM20080693 A1 IT RM20080693A1 IT 000693 A IT000693 A IT 000693A IT RM20080693 A ITRM20080693 A IT RM20080693A IT RM20080693 A1 ITRM20080693 A1 IT RM20080693A1
- Authority
- IT
- Italy
- Prior art keywords
- programming
- voltage
- pulses
- programming pulses
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 126
- 238000000034 method Methods 0.000 claims description 38
- 238000012795 verification Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 3
- 238000009826 distribution Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
Landscapes
- Read Only Memory (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
PROGRAMMAZIONE IN UN DISPOSITIVO DI MEMORIA
DESCRIZIONE
CAMPO TECNICO DELL'INVENZIONE
La presente invenzione fa riferimento genericamente a dispositivi di memoria e, in una particolare forma di realizzazione, la presente invenzione fa riferimento a dispositivi di memoria non volatile.
FONDAMENTO DELL'INVENZIONE
I dispositivi di memoria vengono di norma forniti come circuiti interni a semiconduttori, integrati in computer o altri dispositivi elettronici. Vi sono molti tipi differenti di memorie, che includono memorie ad accesso casuale (RAM), memorie a sola lettura (ROM), memorie dinamiche ad accesso casuale (DRAM), memorie sincrone dinamiche ad accesso casuale (SDRAM), e memorie flash.
Una memoria flash è un tipo di memoria che può essere cancellata e riprogrammata in blocchi invece che un solo byte alla volta. Una tipica memoria flash comprende una schiera di memoria che include un gran numero di celle di memoria. Ciascuna delle celle di memoria include un transistore ad effetto di campo a porta flottante in grado di conservare una carica. Le celle sono di solito raggruppate in blocchi di 64 pagine di celle di livello singolo (SLC) o 128 pagine di celle di livello multiplo (MLC), dove ciascuna pagina è di norma 2048 bytes di dati su 32 righe di parole. Ciascuna delle celle all'interno di un blocco può essere programmata elettricamente su base casuale caricando la porta flottante.
I dati in una cella sono determinati dalla presenza o assenza di carica sulla porta flottante. Ciascuna cella di memoria può essere programmata come una SLC o MLC. Ciascuna tensione di soglia (Vt) della cella determina i dati che sono memorizzati nella cella. Ad esempio, in una SLC, una Vtdi 0,5V p indicare una cella programmata, mentre una Vtdi -0,5V potrebbe indicare una cella cancellata. La cella di livello multiplo ha più intervalli di Vtche indicano ciascuno uno stato differente. Celle di livello multiplo possono avere il vantaggio della natura analogica di una cella flash tradizionale, assegnando una configurazione di bit ad una distribuzione di tensione specifica per la cella. Questa tecnologia consente l'immagazzinamento di due o più bit per cella, a seconda della quantità degli intervalli di tensione assegnati alla cella. La carica può essere rimossa dalla porta flottante per mezzo di un'operazione di cancellazione di blocco.
La figura 1 illustra un tipico diagramma di distribuzione di Vtdi tecnica antecedente, dove l'asse verticale è la quantità di celle, e l'asse orizzontale è la tensione di soglia Vt. Lo stato più negativo 101 è di norma indicato come stato cancellato, ha tensione negativa, ed è di norma rappresentato come un "11" logico. Gli stati programmati sono di norma indicati come stato logico "01" 102, stato logico "00" 103, e stato logico "10" 104, e sono programmati a partire dallo stato cancellato 101.
Le variazioni in ciascuna larghezza di distribuzione di Vt110 sono un parametro importante da controllare durante una programmazione. Si desidera la distribuzione più stretta possibile, come mostrato in figura 1, per produrre una maggiore distanza 115 tra ciascuno degli stati 101-104. Ciò consente una discriminazione più facile tra gli stati 101 - 104, dal momento che viene ridotta la possibilità di una maggiore tensione di una singolo distribuzione che si sovrappone su una Vtpiù bassa della distribuzione successiva.
Come mostrato in figura 2, una programmazione convenzionale SLC e MLC utilizza impulsi di programmazione 200 a crescita incrementale (ad esempio ΔΝ/) che sono applicati alla linee di accesso (ad esempio righe di parole) della schiera di celle di memoria per ottenere livelli discreti di Vtper le celle nella schiera. Tra ciascun impulso di programmazione viene eseguita una verifica per determinare se è stata ottenuta la Vtdella cella bersaglio. Celle di memoria che hanno raggiunto le loro Vtbersaglio sono inibite da una ulteriore programmazione durante impulsi successivi, polarizzando la linea dei dati (ad esempio, la linea dei bit).
La figura 2 mostra una distribuzione iniziale cancellata 201 che viene spostata ad uno stato programmato più positivo mediante l'applicazione degli impulsi di programmazione degli impulsi di programmazione 200 per controllare le porte delle celle di memoria. Gli impulsi di programmazione cominciano in Vstarted aumentano di una tensione a gradino ΔΝ/ a partire dall'impulso precedente. Dopo il primo impulso di programmazione, la distribuzione 202 si è spostata verso l'origine 0V. Il terzo impulso di programmazione ha leggermente assottigliato la distribuzione 203 poiché questa si è spostata nella direzione positiva. Il quarto impulso di programmazione si è spostato ed ha assottigliato ancora ulteriormente la distribuzione 204.
Si può osservare dalla figura 2 che la larghezza della distribuzione viene pilotata dalla tensione a gradino degli impulsi di programmazione. Se la tensione a gradino viene ridotta, viene ridotta la larghezza finale della distribuzione. Tuttavia, è presente un punto in cui la riduzione della tensione a gradino non ha ulteriore effetto sulla larghezza di distribuzione. A questo punto, è stata raggiunta una "saturazione" della larghezza di distribuzione. Questa area di saturazione può essere differente per ciascuna cella di memoria. Perciò, anche se la tensione di programmazione a gradino è ΔΝ/ la larghezza della distribuzione finale potrebbe essere maggiore di ΔΝ/.
Un ulteriore problema con la riduzione della tensione di programmazione a gradino è l'influenza sulla resa di programmazione. Come la tensione a gradino viene ridotta, aumenta la quantità di tempo richiesta per programmare una cella di memoria.
Per i motivi sopra asseriti, e per altri motivi asseriti in seguito che diventeranno evidenti a coloro che sono esperti nel ramo dopo aver letto e compreso la presente invenzione, c'è la necessità, nella tecnica, di un modo per ridurre la larghezza di distribuzione Vtsenza influenzare significativamente la resa di programmazione del dispositivo di memoria.
BREVE DESCRIZIONE DEI DISEGNI
La figura 1 mostra un tipico diagramma di distribuzione della tensione di soglia di tecnica antecedente.
La figura 2 mostra tipici impulsi di programmazione di tecnica antecedente e l'effetto risultante sulla distribuzione della tensione di soglia.
La figura 3 mostra uno schema di massima di una forma di realizzazione e di una schiera di memoria non volatile.
La figura 4 mostra impulsi di programmazione e di verifica per una forma di realizzazione di un metodo di programmazione.
La figura 5 mostra un grafico della tensione di controllo di porta durante una tipica operazione di programmazione di tecnica antecedente.
La figura 6 mostra un grafico della tensione di controllo di porta durante una forma di realizzazione del metodo di programmazione della presente descrizione.
La figura 7 mostra un diagramma di flusso di una forma di realizzazione del metodo di programmazione della presente descrizione.
La figura 8 mostra uno schema a blocchi semplificato di una forma di realizzazione di un sistema di memoria della presente invenzione.
DESCRIZIONE DETTAGLIATA
Nella seguente descrizione dettagliata dell'invenzione, si fa riferimento ai disegni annessi, che ne formano una parte, ed in cui vengono mostrati a titolo di illustrazione specifiche forme di realizzazione in cui l'invenzione può essere realizzata. Nei disegni, numeri identici descrivono sostanzialmente componenti simili in ogni parte delle svariate viste. Queste forme di realizzazione sono scritte in dettaglio sufficiente a consentire a coloro che sono esperti nel ramo di realizzare l'invenzione. Possono essere utilizzate altre forme di realizzazione, e possono essere effettuare variazioni strutturali logiche ed elettriche senza allontanarsi dall'ambito della presente invenzione. La seguente descrizione dettagliata, perciò, non deve essere assunta in senso limitativo, e l'ambito della presente invenzione è definita soltanto dalle rivendicazioni annesse e dai relativi equivalenti.
La figura 3 illustra uno schema di massima di una parte di una schiera di memoria ad architettura NAND comprendente stringhe serie di celle di memoria non volatile su cui possono operare le forme di realizzazione di raccolta e compressione/decompressione di dati discusse nel seguito. Benché le seguenti discussioni facciano riferimento ad un dispositivo di memoria NAND, le presenti forme di realizzazione non sono limitate a tale architettura, ma possono essere utilizzate pure in altre architetture di dispositivi di memoria. Ad esempio, schiere di forme di organizzazione alternative potrebbero essere organizzate in architetture NOR e AND.
La schiera di memoria è formata da una schiera di celle di memoria non volatile 301 (ad esempio porta flottante) disposte in colonne come stringhe serie 304, 305. Ciascuna delle celle 301 è accoppiata da pozzo a sorgente in ciascuna stringa serie 304, 305. Una riga di parole WL0-WL31, che si estende attraverso più stringhe serie 304, 305, è collegata alle porte di controllo di ciascuna cella di memoria in una fila per polarizzare le porte di controllo delle celle di memoria nella fila. Le linee di bit BL1, BL2 sono infine collegate ad amplificatori di rilevazione (non mostrati) che rivelano lo stato di ciascuna cella rivelando la corrente su una particolare linea di bit.
Ciascuna stringa serie 304, 305 di celle di memoria è accoppiata ad una linea di sorgente 306 mediante un transistore 316, 317 di porta di selezione di sorgente e ad una singola linea di bit BL1, BL2 mediante un transistore 312, 313 di porta di selezione di pozzo. I transistori 316, 317 delle porte di selezione di sorgente sono controllati da una linea di controllo 318 delle porta di selezione di sorgente SG(S) accoppiata alle loro porte di controllo. I transistori 312, 313 delle porte di selezione di pozzo sono controllati da una linea di controllo 314 delle porte di selezione di pozzo SG(D).
La schiera di memoria può essere organizzata come blocchi di memoria. La quantità di blocchi di memoria è di norma determinata dalla dimensione del dispositivo di memoria (cioè, 512 MB, 1GB). In una forma di realizzazione, ciascun blocco di memoria programmato in una maniera SLC è formato da 64 pagine. In un'altra forma di realizzazione, un blocco di memoria programmato in una maniera MLC è formato da 128 pagine. Ciascuna pagina può essere costituita da 2048 byte di dati di 32 righe di parole.
La figura 4 illustra una serie di impulsi di programmazione e di verifica secondo una forma di realizzazione di un metodo per programmazione, quale il metodo di figura 7. Il metodo è in seguito descritto poiché si applica ad una cella di memoria. Tuttavia, un dispositivo di memoria flash è di norma cancellato e programmato su base blocco per blocco di memoria. Perciò, le forme di realizzazione del metodo di programmazione descritto possono essere espanse per programmare interi blocchi di memoria nonché altri gruppi di celle di memoria.
La forma di realizzazione di figura 4 mostra sia un impulso di programmazione 410, che è applicato alle porte di controllo delle celle di memoria per programmazione ed il successivo impulso di verifica 415 che è applicato alle porte di controllo delle celle di memoria per la verifica di programmazione. Invece di aumentare ciascun successivo impulso di programmazione, come viene effettuato nelle operazioni di programmazione di tecnica antecedente, il metodo illustrato in figura 4 genera un numero di impulsi di programmazione sostanzialmente alla stessa tensione della porta di controllo (ossia, l'ampiezza dell'impulso di programmazione) prima di aumentare la tensione per il successivo insieme di impulsi di programmazione.
L'utilizzazione di un numero di impulsi di programmazione alla stessa tensione di programmazione spinge le celle di memoria nell'area di saturazione molto più rapidamente rispetto all'aumento della tensione di programmazione con ogni impulso. La condizione di saturazione si verifica quando la tensione di soglia (Vt) della cella di memoria si sposta, aumentando la tensione di porta (Vg), secondo l'equazione del fattore di accoppiamento di cella dVt= K*d Vg. In altri termini, il tasso di variazione della tensione di soglia è uguale ad una costante per il tasso di variazione della tensione della porta della cella di memoria. Se gli impulsi di programmazione hanno una piccola larghezza di impulso, anche un'ampia tensione a gradino Vgnon sposterà la sezione di soglia della cella di memoria tanto rapidamente quanto gli impulsi di programmazione aventi maggiore larghezza di impulso.
Il movimento lento della tensione di soglia di norma non si verifica se la stessa tensione di porta viene utilizzata su molti impulsi, come nelle presenti forme di realizzazione di programmazione. Molteplici impulsi di programmazione con la stessa tensione di porta in ciascun insieme degli impulsi di programmazione spostano la tensione di soglia più rapidamente verso la regione di saturazione. Inoltre, molteplici impulsi di programmazione nella stessa tensione di porta forniscono una tensione di soglia che è molto più vicina a quella che può essere calcolata utilizzando l'equazione del fattore di accoppiamento di cui sopra.
La forma di realizzazione di figura 4 mostra tre impulsi di programmazione in ciascun insieme di impulsi di programmazione aventi la stessa ampiezza/ Vg. Ciò è soltanto a fini di illustrazione, dal momento che le presenti forme di realizzazione non sono limitate ad una qualsiasi quantità di impulsi di programmazione in ciascun insieme. La quantità di impulsi di programmazione in ciascun insieme viene determinata sperimentalmente in base alla tecnologia della memoria. Ad esempio, uno strato di immagazzinamento di carica di nitruro potrebbe utilizzare una quantità differente di impulsi di programmazione per insieme piuttosto che uno strato di immagazzinamento di carica di silicio policristallino. In modo simile, la programmazione di un dispositivo di memoria MLC potrebbe richiedere più impulsi per insieme rispetto alla programmazione di un dispositivo di memoria SLC.
La forma di realizzazione di Figura 4 mostra un primo insieme di impulsi di programmazione 401 alla tensione di programmazione iniziale (ad esempio, 15V). La tensione di programmazione viene quindi aumentata dalla tensione a gradino ΔΝ/ (ad esempio, 0,2V) alla tensione di programmazione (ad esempio, Vg= 15,2V) per il successivo insieme degli impulsi di programmazione 402. In modo simile, gli impulsi di programmazione vengono aumentati dalla tensione a gradino alla successiva tensione di programmazione (ad esempio, Vg= 15,4V) per l'insieme successivo di impulsi di programmazione. Un'operazione di verifica di programmazione con l'impulso di verifica 415 viene eseguita tra ciascuno impulso di programmazione in ciascun insieme degli impulsi di programmazione. Questo procedimento viene ripetuto finché non si è verificato che la cella di memoria è programmata oppure non si verifica una condizione di errore quando la cella di memoria non può essere verificata come programmata. L'operazione di verifica è una forma di lettura di celle di memoria che polarizza la porta di controllo della cella di memoria con un impulso di verifica ad una tensione di lettura che può essere all'interno dell'intervallo allocato di tensioni di soglia per lettura. La tensione di lettura porta a conduzione attiva la cella di memoria e consente alla circuiteria di rilevazione di confrontare la corrente risultante sulla linea di bit con una corrente di riferimento, per determinare se la cella di memoria è programmata alla tensione di soglia bersaglio. Se la cella di memoria ha raggiunto la tensione di soglia bersaglio, la linea di bit accoppiata a quella cella di memoria viene polarizzata ad una tensione di inibizione (ad esempio \/∞) per inibire una ulteriore programmazione di quella cella di memoria durante la presente programmazione del blocco di memoria. Nella posizione tra due impulsi di programmazione della stessa tensione, lo spostamento della tensione di soglia è minore, aumentando perciò la risoluzione della tensione di soglia. Questo concetto è illustrato nelle Figure 5 e 6.
La Figura 5 illustra un grafico della tensione della porta di controllo durante una tipica operazione di programmazione di tecnica antecedente. Questo grafico mostra una curva 510 per quando l'impulso di programmazione ha ampiezza di 14,5V (ossia, Vg= 14, 5V) ed un'altra curva 511 è per quando l'impulso di programmazione ha ampiezza di 15, 0V. Ciascun impulso di programmazione ha larghezza di tempo di impulso T 501. Durante l'operazione di programmazione illustrata, un impulso iniziale di programmazione a 14, 5V ha come conseguenza l'aumento lungo la curva 14, 5V, come mostrato dall'alimento verticale 502. Una tensione a gradino 0,5V è aggiunta alla 14, 5V iniziale, avendo come conseguenza il secondo impulso avente ampiezza di 15,0V. Questo secondo impulso, avente larghezza d'impulso T, ha come conseguenza un aumento lungo la curva 15V 511, come mostrato dal secondo incremento verticale 503.
La Figura 5 mostra i larghi incrementi 502, 503 che derivano da due impulsi di programmazione del metodo di programmazione di tecnica precedente. Tali grandi incrementi possono avere come conseguenza una sovra-programmazione di una cella di memoria se la sua tensione di soglia bersaglio è, ad esempio, da qualche parte lungo la curva 15V tra l'estremità del primo impulso di programmazione e l'estremità del secondo impulso di programmazione. Tale operazione di programmazione avrebbe inoltre come conseguenza una distribuzione di tensione di soglia molto più ampia per lo stato bersaglio, per effetto dell'incapacità rispetto agli ampi aumenti da un impulso di programmazione al successivo.
La figura 6 illustra un grafico della tensione della porta di controllo come conseguenza delle forme di realizzazione del presente metodo di programmazione. Questo grafico mostra la stessa curva 14, 5V Vg600 e la curva 15V 620 come nel metodo di tecnica precedente di Figura 5. Tuttavia, ciascuno impulso di programmazione di larghezza T 601-603 ed ampiezza 14, 5V ha come conseguenza aumenti verticali 611-613 molto più piccoli lungo la curva 14, 5V. Quando la tensione di programmazione è aumentata con tensione a gradino di 0,5V da 14, 5V a 15V, lo spostamento lungo la curva 15V 620 indica inoltre un breve aumento verticale 614. Perciò, le forme di realizzazione del presente metodo di programmazione genererebbero sostanzialmente distribuzioni di tensione di soglia più strette come conseguenza di questi aumenti ridotti.
La Figura 7 illustra un diagramma di flusso della forma di realizzazione del metodo per programmare un dispositivo di memoria. Dal momento che celle di memoria flash sono programmate da uno stato cancellato su base di blocco per blocco, il primo passo è una operazione di cancellazione sul blocco di cancellazione 701. Tuttavia, se viene eseguita una forma di realizzazione di programmazione su una tecnologia differente che non richiede uno stato cancellato, l'operazione di cancellazione 701 non viene richiesta.
Vengono generati, 703, impulsi di programmazione alla tensione di programmazione iniziale (ad esempio, 15V). Come discusso in precedenza, la tensione di programmazione è la tensione utilizzata per polarizzare la porta di controllo della cella o delle celle di memoria che è'/sono programmata/e ed è di norma applicata ad una riga di parole selezionata che accoppia la riga di celle di memoria che vengono programmate.
Viene quindi eseguita, 705, un'operazione di verifica per determinare se la cella o le celle di memoria che è/sono programmata/e ha/hanno raggiunto la loro rispettiva tensione di soglia bersaglio. Le celle di memoria che sono state programmate alla loro rispettiva tensione di soglia bersaglio 707 sono inibite da una ulteriore programmazione durante quest'operazione mediante polarizzazione della linea di bit o qualche altro metodo di inibizione.
Se le celle di memoria che vengono programmate non hanno raggiunto la loro rispettiva tensione di soglia bersaglio, si determina se sono stati applicati, 709, tutti gli impulsi di programmazione nel presente insieme degli impulsi di programmazione. Se non sono stati applicati tutti gli impulsi di programmazione in un particolare insieme di impulsi di programmazione, viene generato, 713, un altro impulso di programmazione avente la stessa ampiezza dell'impulso precedente, per polarizzare la linea di parole selezionata, dopo che viene di nuovo eseguita, 705, un'operazione di verifica.
Se è stata generata, 709, tutta la quantità predeterminata di impulsi di programmazione per una particolare ampiezza e le celle di memoria che vengono programmate non hanno raggiunto la loro rispettiva tensione bersaglio, viene aggiunta una tensione a gradino alla tensione di programmazione corrente 711, e viene generato, 713, un altro impulso di programmazione alla nuova tensione. Questo procedimento viene ripetuto finché le celle di memoria non vengono programmate oppure non si verifica una condizione di errore quando le celle di memoria selezionate non possono essere programmate.
La Figura 8 illustra uno schema a blocchi funzionale di un sistema di memoria 820 che include un dispositivo di memoria 800. Il dispositivo di memoria 800 è stato semplificato per essere focalizzato su caratteristiche della memoria che sono utili nel comprendere le presenti forme di realizzazione per la programmazione di memorie. Il dispositivo di memoria 800 è accoppiato ad un dispositivo di controllo 810 di sistema. Il dispositivo di controllo 810 può essere un microprocessore o qualche altro tipo di dispositivo di controllo.
II dispositivo di memoria 800 include una schiera 830 di celle di memoria non volatile, quale le stringhe serie illustrate in figura 3 e discusse in precedenza. La schiera di memoria 830 è disposta in banchi di righe di file di parole e colonne di file di bit. In una forma di realizzazione, le colonne della schiera di memoria 830 sono formate da stringhe serie di celle di memoria. Come è ben noto nel ramo, i collegamenti delle celle alle linee di bit determinano se la schiera è un'architettura NAND, un'architettura AND, oppure un'architettura NOR.
Una circuiteria 840 di buffer di indirizzo è fornita per agganciare segnali di indirizzo forniti attraverso la circuiteria I/O 860. Segnali di indirizzo vengono ricevuti e decodificati da un decodificatore 844 di riga e un decodificatore 846 di colonna per accedere alla schiera di memoria 830. Si comprenderà da parte di coloro che sono esperti nel ramo con l'aiuto della presente descrizione che il numero dei collegamenti di ingresso di indirizzi dipende dalla densità e dall'architettura della schiera di memoria 830. Ossia, il numero di indirizzi aumenta con sia i numeri di celle di memoria aumentati che i numeri di banchi e blocchi aumentati.
Il dispositivo di memoria 800 legge i dati nella schiera di memoria 830 rilevando variazioni di tensione o corrente nelle colonne della schiera di memoria utilizzando una circuiteria 850 di amplificatori di rilevazione. La circuiteria 850 di amplificatori di rilevazione, in una forma di realizzazione, è accoppiata per leggere ed agganciare una riga di dati dalla schiera di memoria 830. Una circuiteria I/O 860 è inclusa per comunicazione bidirezionale di dati nonché comunicazione di indirizzi su una molteplicità di collegamenti 862 di dati con il dispositivo di controllo 810. Una circuiteria di scrittura 855 è fornita per programmare dati nella schiera di memoria 830.
Una circuiteria 870 di controllo di memoria decodifica segnali forniti su collegamenti di controllo 872 dal dispositivo di controllo 810. Questi segnali sono utilizzati per controllare le operazioni sulla schiera di memoria 830, comprese operazioni di lettura di dati, scrittura (programmazione di dati) e cancellazione di dati. La circuiteria 870 di controllo di memoria può essere una macchina a stati, un sequenziatore, o qualche altro tipo di circuiteria di controllo per generare i segnali di controllo di memoria. In una forma di realizzazione, la circuiteria 870 di controllo di memoria è configurata per trasferire dati alla schiera di memoria 830 per esecuzione delle forme di realizzazione di programmazione descritte in precedenza. La circuiteria 870 di controllo di memoria è inoltre configurata per leggere dati dalla schiera di memoria 830.
Il dispositivo di memoria illustrato in Figura 8 è stato semplificato per facilitare la comprensione di base delle caratteristiche della memoria. Una comprensione più dettagliata della circuiteria interna delle funzioni delle memorie flash è nota a coloro che sono esperti nel ramo.
CONCLUSIONE
In sintesi, una o più forme di realizzazione della presente invenzione forniscono un metodo per programmare, ad esempio, dispositivi di memoria allo stato solido, per produrre distribuzioni Vtstrette senza influenzare notevolmente la velocità di programmazione. Ad esempio, ciò può essere realizzato polarizzando le porte di controllo di celle di memoria selezionate (ad esempio attraverso righe di parole) con insiemi di impulsi di programmazione, dove ciascun impulso nell'insieme degli impulsi di programmazione ha la stessa ampiezza. Vengono generati insieme successivi impulsi di programmazione aggiungendo una tensione a gradino AV alla tensione corrente. Ciò viene ripetuto finché tutte le celle di memoria bersaglio non sono state programmate alle loro rispettive tensioni di soglia bersaglio.
Sebbene siano state illustrate e descritte in questa sede forme specifiche di realizzazione, si comprenderà da parte di coloro di capacità ordinaria nel ramo che, per le specifiche forme di realizzazione mostrate, può essere sostituita una qualsiasi disposizione che è calcolata per ottenere lo stesso scopo. Molti adattamenti dell'invenzione saranno evidenti a coloro che sono di capacità ordinaria nel ramo. Di conseguenza, questa domanda è intesa per coprire qualsiasi adattamento o variante dell'invenzione. E' manifestamente inteso che questa invenzione è limitata soltanto dalle seguenti rivendicazioni e dai loro equivalenti.
Claims (1)
- RIVENDICAZIONI 1. Metodo per programmare una cella di memoria, il metodo comprendendo: applicare una molteplicità di impulsi di programmazione alla cella di memoria, in cui la molteplicità di impulsi di programmazione è formata da una molteplicità di insiemi di impulsi di programmazione, in cui tutti gli impulsi di programmazione in uno rispettivo degli insiemi sono sostanzialmente uguali in ampiezza, ed almeno uno degli insiemi ha un'ampiezza differente ad almeno un altro degli insiemi; e determinare se la cella di memoria ha raggiunto una tensione di soglia bersaglio tra ciascuno della molteplicità degli impulsi della programmazione, 2. Metodo della rivendicazione 1 che include inoltre la cancellazione iniziale della cella di memoria. 3. Metodo della rivendicazione 2, in cui la cancellazione della cella di memoria comprende fare in modo che la cella di memoria abbia tensione di soglia negativa. 4. Metodo della rivendicazione 1, in cui la determinazione se la cella di memoria ha raggiunto una tensione di soglia bersaglio comprende l'applicazione alla cella di memoria di un impulso di verifica avente una tensione di lettura. 5. Metodo della rivendicazione 4, in cui la tensione di lettura è all'interno di un intervallo localizzato di tensioni di soglia per lettura. 6. Metodo della rivendicazione 1, in cui ciascuno successivo insieme di impulsi di programmazione ha un'ampiezza maggiore degli impulsi di programmazione rispetto ad un insieme precedente. 7. Metodo della rivendicazione 6, in cui l'ampiezza degli impulsi di programmazione di ciascuno rispettivo dei successivi impulsi di programmazione è maggiore dell'ampiezza dell'insieme precedente degli impulsi di programmazione di una tensione a gradino. 8. Metodo della rivendicazione 1 e comprendente inoltre la determinazione di una quantità di impulsi di programmazione in ciascuno insieme di impulsi di programmazione in risposta ad un tipo di cella di memoria. 9. Metodo per programmare una molteplicità di celle di memoria, il metodo comprendendo: applicare una prima molteplicità di impulsi di programmazione a celle di memoria selezionate della molteplicità di celle di memoria, la prima molteplicità di impulsi di programmazione avendo tutti una prima tensione di programmazione; determinare se le celle di memoria selezionate hanno raggiunto ciascuna una rispettiva tensione di soglia bersaglio tra ciascuno della prima molteplicità di impulsi di programmazione. 10. Metodo della rivendicazione 9 e comprendente inoltre: applicare una seconda molteplicità di impulsi di programmazione a quelle celle di memoria selezionate che non hanno raggiunto la loro rispettiva tensione di soglia bersaglio, in cui la seconda molteplicità di impulsi di programmazione hanno tutti una seconda tensione di programmazione che è maggiore della prima tensione di programmazione; determinare se le celle di memoria selezionate hanno raggiunto ciascuna la loro rispettiva tensione di soglia bersaglio tra ciascuno della seconda molteplicità di impulsi di programmazione 11. Metodo della rivendicazione 10 e comprendente inoltre l'applicare ulteriori molteplicità di impulsi di programmazione, e determinare se le celle di memoria selezionate hanno raggiunto la loro rispettiva tensione di soglia bersaglio tra ciascuno impulso di programmazione, a quelle celle di memoria selezionate che non hanno raggiunto le loro rispettive tensioni di soglia bersaglio, in cui ciascuna delle molteplicità ulteriori di impulsi di programmazione hanno tensioni di programmazione maggiori rispetto ad una molteplicità precedente d'impulsi di programmazione, e tutti gli impulsi di programmazione all'interno di ciascuna molteplicità di impulsi di programmazione hanno sostanzialmente la stessa tensione di programmazione. 12. Metodo della rivendicazione 11, in cui la seconda tensione di programmazione è sostanzialmente uguale alla prima tensione di programmazione più una tensione a gradino, e la tensione di programmazione di ciascuna successiva molteplicità di impulsi di programmazione è maggiore della tensione di programmazione della molteplicità precedente di impulsi di programmazione della tensione a gradino. 13. Metodo della rivendicazione 9, in cui ciascuno impulso di programmazione è applicato ad almeno una linea di accesso accoppiata alle celle di memoria selezionate. 14. Metodo per programmare un dispositivo di memoria, il metodo comprendendo: cancellare un blocco di memoria selezionato avente una molteplicità di linee di accesso con una molteplicità di celle di memoria accoppiate a ciascuna linea di accesso; applicare almeno un impulso di programmazione di un insieme di una quantità predeterminata di impulsi di programmazione ad una linea di accesso selezionata della molteplicità di linee di accesso, l'insieme della quantità predeterminata di impulsi di programmazione avendo una prima tensione di programmazione; eseguire un'operazione di verifica di programmazione sulla linea di accesso selezionata dopo ciascun impulso di programmazione; applicare ulteriori impulsi di programmazione alla linea di accesso selezionata se l'operazione di verifica di programmazione indica che una cella di memoria accoppiata alla linea di accesso selezionata non è programmata ad un valore di soglia bersaglio, in cui gli ulteriori impulsi di programmazione sono formati da ulteriori insiemi impulsi di programmazione, ciascun insieme di impulsi di programmazione comprendendo la quantità predeterminata di impulsi di programmazione e ciascuno impulso di programmazione in un insieme di impulsi di programmazione avendo sostanzialmente la stessa tensione di programmazione. 15. Metodo della rivendicazione 14, in cui una linea di dati accoppiata a celle di memoria programmate che passano l'operazione di verifica di programmazione è polarizzata per inibire un'ulteriore programmazione delle celle di memoria programmate. 16. Metodo della rivendicazione 14, in cui almeno un impulso di programmazione sposta la tensione di soglia della cella di memoria selezionata da una tensione di soglia bersaglio negativa ad una tensione di soglia bersaglio positiva. 17. Metodo della rivendicazione 14, in cui la tensione di programmazione dell'altro insieme è maggiore della prima tensione di una tensione a gradino. 18. Metodo della rivendicazione 14, in cui la prima tensione di programmazione è una tensione di porta di controllo che è applicata a ciascuna porta di controllo di celle di memoria selezionate accoppiate alle linea di accesso selezionata. 19. Dispositivo di memoria comprendente: una schiera di memoria formata da una molteplicità di celle di memoria non volatile; una circuiteria di controllo accoppiata alla schiera di memoria e configurata per controllare l'operazione della schiera di memoria, la circuiteria di controllo ulteriormente configurata per controllare la generazione di una molteplicità di insiemi di impulsi di programmazione, in cui ciascun insieme di impulsi di programmazione è formato da una stessa molteplicità predeterminata di impulsi di programmazione, e ciascuno impulso di programmazione in quello rispettivo degli insiemi è generato sostanzialmente ad un'ampiezza uguale degli altri impulsi di programmazione nel rispettivo insieme. 20. Dispositivo di memoria della rivendicazione 19, in cui la schiera di memoria è formata da un'architettura NAND di celle di memoria flash. 21. Sistema di memoria comprendente: un dispositivo di controllo configurato per controllare l'operazione del sistema di memoria; e un dispositivo di memoria non volatile, accoppiato al dispositivo di controllo, che opera in risposta al dispositivo di controllo, il dispositivo di memoria non volatile comprendendo: una schiera di memoria comprendente una molteplicità di celle di memoria; e una circuiteria di controllo accoppiata alla schiera di memoria e configurata per controllare la programmazione della schiera di memoria e configurata per controllare la programmazione della schiera di memoria, in cui la circuiteria di controllo è configurata per controllare la generazione di una molteplicità di insiemi di impulsi di programmazione, ciascun impulso di programmazione avendo una tensione di programmazione, in cui ciascun insieme comprende una molteplicità di impulsi di programmazione e ciascun impulso di programmazione in un insieme ha sostanzialmente la stessa tensione di programmazione che è differente dalle tensioni di programmazione degli altri insiemi di impulsi di programmazione. 22. Sistema di memoria della rivendicazione 21, in cui la circuiteria di controllo è ulteriormente configurata per controllare la polarizzazione di una linea di dati con una tensione che rallenta o inibisce la programmazione di una cella di memoria bersaglio in risposta ad una tensione di soglia della cella di memoria bersaglio che viene raggiunta. 23. Sistema di memoria della rivendicazione 21, in cui la circuiteria di controllo è ulteriormente configurata per controllare la generazione di impulsi di verifica tra ciascuno degli impulsi di programmazione.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000693A ITRM20080693A1 (it) | 2008-12-24 | 2008-12-24 | Programmazione in un dispositivo di memoria. |
US12/477,314 US7983088B2 (en) | 2008-12-24 | 2009-06-03 | Programming in a memory device |
US13/170,420 US8174897B2 (en) | 2008-12-24 | 2011-06-28 | Programming in a memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000693A ITRM20080693A1 (it) | 2008-12-24 | 2008-12-24 | Programmazione in un dispositivo di memoria. |
Publications (1)
Publication Number | Publication Date |
---|---|
ITRM20080693A1 true ITRM20080693A1 (it) | 2010-06-25 |
Family
ID=40433988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT000693A ITRM20080693A1 (it) | 2008-12-24 | 2008-12-24 | Programmazione in un dispositivo di memoria. |
Country Status (2)
Country | Link |
---|---|
US (2) | US7983088B2 (it) |
IT (1) | ITRM20080693A1 (it) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITRM20080693A1 (it) * | 2008-12-24 | 2010-06-25 | Micron Technology Inc | Programmazione in un dispositivo di memoria. |
US9953703B2 (en) * | 2015-10-16 | 2018-04-24 | Samsung Electronics Co., Ltd. | Programming method of non volatile memory device |
US11081170B2 (en) | 2018-12-19 | 2021-08-03 | Micron Technology, Inc. | Apparatus and methods for programming memory cells responsive to an indication of age of the memory cells |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041346A1 (en) * | 1995-06-07 | 1996-12-19 | Macronix International Co., Ltd. | Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width |
WO2005101424A1 (en) * | 2004-04-06 | 2005-10-27 | Sandisk Corporation | Variable programming of non-volatile memory |
WO2008013619A2 (en) * | 2006-07-27 | 2008-01-31 | Cswitch Corporation | Method and apparatus for programming phase change devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5122985A (en) * | 1990-04-16 | 1992-06-16 | Giovani Santin | Circuit and method for erasing eeprom memory arrays to prevent over-erased cells |
US5563823A (en) * | 1993-08-31 | 1996-10-08 | Macronix International Co., Ltd. | Fast FLASH EPROM programming and pre-programming circuit design |
ATE208536T1 (de) * | 1994-03-03 | 2001-11-15 | Rohm Corp | Überlöschungsdetektion in einer niederspannungs- eintransistor-flash-eeprom-zelle unter verwendung von fowler-nordheim-programmierung und -löschung |
US5903499A (en) * | 1997-09-12 | 1999-05-11 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method to erase a flash EEPROM using negative gate source erase followed by a high negative gate erase |
ITRM20080693A1 (it) * | 2008-12-24 | 2010-06-25 | Micron Technology Inc | Programmazione in un dispositivo di memoria. |
-
2008
- 2008-12-24 IT IT000693A patent/ITRM20080693A1/it unknown
-
2009
- 2009-06-03 US US12/477,314 patent/US7983088B2/en active Active
-
2011
- 2011-06-28 US US13/170,420 patent/US8174897B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041346A1 (en) * | 1995-06-07 | 1996-12-19 | Macronix International Co., Ltd. | Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width |
WO2005101424A1 (en) * | 2004-04-06 | 2005-10-27 | Sandisk Corporation | Variable programming of non-volatile memory |
WO2008013619A2 (en) * | 2006-07-27 | 2008-01-31 | Cswitch Corporation | Method and apparatus for programming phase change devices |
Also Published As
Publication number | Publication date |
---|---|
US7983088B2 (en) | 2011-07-19 |
US8174897B2 (en) | 2012-05-08 |
US20100157685A1 (en) | 2010-06-24 |
US20110255343A1 (en) | 2011-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8547749B2 (en) | Multi-pass programming in a memory device | |
US8773910B2 (en) | Programming to mitigate memory cell performance differences | |
US11404125B2 (en) | Memory cell programming applying a programming pulse having different voltage levels | |
US20080219055A1 (en) | Multiple level programming in a non-volatile memory device | |
US8363471B2 (en) | Nonvolatile memory device and method of programming the same | |
JP5750314B2 (ja) | 半導体メモリ装置及びその動作方法 | |
US8213233B2 (en) | Reduction of quick charge loss effect in a memory device | |
KR20090011249A (ko) | 비휘발성 메모리 셀 프로그래밍 방법 | |
US8064267B2 (en) | Erase voltage reduction in a non-volatile memory device | |
ITRM20060074A1 (it) | Circuito per dati a latch singolo in un dispositivo di memoria volatile e delle a piu livelli | |
TWI614760B (zh) | 半導體記憶裝置 | |
KR20080084025A (ko) | 차지 트랩형 불휘발성 메모리 장치 및 그 프로그램 방법 | |
US20100027348A1 (en) | Program method of flash memory device | |
KR20080016650A (ko) | 플래시 메모리 디바이스에서의 선택적 저속 프로그래밍컨버전스 | |
KR20130071686A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
JP2009043391A (ja) | フラッシュメモリ素子のプログラム方法 | |
ITRM20070621A1 (it) | Compensazione dell'effetto della configurazione a ritroso in un dispositivo di memorizzazione. | |
US7570514B2 (en) | Method of operating multi-level cell and integrate circuit for using multi-level cell to store data | |
ITRM20080693A1 (it) | Programmazione in un dispositivo di memoria. | |
KR20120004742A (ko) | 비휘발성 메모리 및 이의 프로그램 방법 | |
KR20110033695A (ko) | 비휘발성 메모리장치, 그의 프로그램 및 이레이즈 방법 | |
KR20100089507A (ko) | 플래시 메모리 소자의 프로그램 방법 | |
KR20100076321A (ko) | 플래시 메모리 소자의 프로그램 방법 |