flash memory program and erase operations

FLASH MEMORY PROGRAM AND ERASE
OPERATIONS
• PROGRAM CIRCUITS
– Tensioni di programmazione: scelta ottima
– Program path tipico
– Regolazione della tensione di drain
– Regolazione della tensione di gate
• ERASE CIRCUITS
– Double supply: source erase, scarica nodi critici
– Single supply: pompe di carica, regolatori di tensione, source
switch
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
PROGRAM VOLTAGES
•
Meccanismo di programmazione tipico: Channel Hot Electron (CHE):
VS=0V; VCG=9-10V; VD=4-5V
NB
VCG/VD > VSUPPLY (~3-5V) ⇒ sono necessarie: pompe di carica per
generare tali tensioni e circuiti di regolazione di tensione per evitare
picchi di tensione dannosi per l’affidabilità
•
Sono necessari altri livelli di tensione: ad esempio, durante l’operazione
di Program Verify, che controlla la tensione di soglia della celle dopo
un impulso di programmazione
•
Criteri di scelta delle tensioni di programmazione:
–
durante tutta la fase di programmazione, VD deve stare all’interno
della “working window”, che definisce il range permesso per la
tensione di drain rispetto alla lunghezza efficace della cella,
tenendo in conto di 1) efficienza di programmazione; 2) snap-back;
3) drain stress
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
1
PROGRAM VOLTAGES /2
–
VCG influenza IDS, l’efficienza di programmazione e il punto di
innesco dello snap-back
• esiste un VCG critico per cui lo snap-back si innesca alla minima
VDS: per questo, è importante applicare la rampa VCG prima di
dare tensione alla bitline, VDS
–
drain stress: contano il valore e il tempo in cui è applicata VDS
I circuiti di regolazione di VD e VCG devono essere tarati in modo da
eliminare o limitare al massimo drain stress e snap-back
•
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
PROGRAM VOLTAGES /3
•
•
Tipico diagramma
temporale in
programmazione
Vincoli per avere
un’ottima tensione di
programmazione:
VD: efficienza e tempo
di programmazione;
drain stress su celle
non selezionate;
snap-back; corrente
di drain;
VCG: efficienza e tempo
di programmazione;
snap-back; corrente
di drain; gate stress
su celle non
selezionate;
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
2
PROGRAM PATH
•
•
Diagramma a blocchi per la generazione dei segnali analogici per
programmare una memoria Flash
Il Program/Erase Controller è stato attivato da appropriate istruzioni di
controllo e sta eseguendo il suo algoritmo: indirizzi e dati da
programmare sono contenuti nei buffer di ingresso
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
PROGRAM PATH /2
ALGORITMO di PROGRAMMAZIONE:
1.
Program Verify: confronto fra il contenuto delle celle e del buffer di
ingresso: se non sono uguali → 2; se sono uguali (o se non sono
uguali ma il numero di programmazioni ha superato il massimo
previsto) → 3
2.
Impulso di programmazione: VD e VCG → alta tensione per un
determinato periodo di tempo; → 1
3.
End
NOTAZIONE:
•
VPCX = tensione applicata al gate attraverso i row decoder
•
VPCY = tensione applicata al drain attraverso i column decoder
•
VPD = tensione sul drain della cella attraverso i program load
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
3
VD REGULATION
Ci sono 2 modi per applicare e regolare una tensione al drain:
1.
attraverso i column decoder: controllo molto fine della tensione di uno
dei pass-transistor del column decoder; VPP è applicata interamente e
senza controllo al program load
−
il circuito di regolazione di YN fissa la tensione del drain della cella
a VD=VREG-VGS-V1 (V1 è la caduta di tensione sul pass-transistor
della bitline Y0 e sulla bitline locale)
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VD REGULATION /2
−
il controllo di tensione si effettua su YN e non su Y0, perché i passtransistors Y0 sono distribuiti nella matrice, mentre YN è posto
all’estremità inferiore della bitline
☺ no corrente attraverso il regolatore (più facile fare la pompa di
carica); V1 è dovuta soltanto alla caduta sulla bitline locale
W del column decoder va aumentata per ridurre VGS e V1
ES se le correnti nei due rami sono uguali, M2=M5 e M6=M7 ⇒ VD =
f(VPP,R1,R2,R3); tuttavia questa soluzione senza retroazione è
sensibile a variazioni di temperatura e di processo!
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
4
VD REGULATION /3
2.
program load regulation: sul data bus è applicata una tensione VPD
regolata da un opportuno circuito; sui pass-transistors dei column
decoder è applicata una tensione alta in modo da tenere i MOS in
triodo (e limitare la dissipazione): VD=VPD-V1
☺ column decoder molto compatto
il circuito di regolazione della tensione deve fornire la corrente di
programmazione ⇒ più difficile fare le pompe di carica
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VD REGULATION /4
ES
•
Regolatore di program load composto da un op amp, un dummy
decoder ed uno specchio di corrente, che specchia IC nel dummy
decoder
La caduta di tensione sul program load è trascurabile: scegliendo
opportunamente k (mirror factor dello specchio), ΔVC e ΔVD si
compensano, VD risulta indipendente da temperatura, corrente e età:
VD=(R2/R1+R2)VPP
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
5
VD REGULATION /5
NB
•
Se la memoria è single supply, lo schema appena descritto non è il più
vantaggioso: VPD, generata internamente dalle pompe di carica, è
diminuita dalla caduta di tensione sullo specchio (almeno pari a VT)
Una possibile configurazione è quella di figura, che fissa VPD e la
stabilizza attraverso l’op amp e il divisore di tensione
⎛ R + R2 ⎞
⎟⎟ VBG
VPD = ⎜⎜ 1
⎝ R2 ⎠
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VCG REGULATION
•
•
•
Ogni cella riceve la tensione di gate da un row decoder attraverso una
wordline
VPCX è una tensione dedicata che viene trasferita alla cella selezionata
a seconda dell’operazione in corso
VPCX è generato da un circuito composto da 2 blocchi principali:
1. VPCX regulator: regolatore di tensione che genera tutti i livelli di
tensione diversi da VCC
Memorie a semiconduttore
Operation
VPCX level
Read
VCC
Program pulse
VPP (10-12V)
Program verify
VPV (~7V)
Erase pulse
< VCC
Erase verify
VEV (~3V)
Flash Memory PROGRAM/ERASE
6
VCG REGULATION /2
2.
VPCX switch: connette il row
decoder a VCC o VREG in
funzione dell’operazione che
si sta eseguendo
NB entrambi i circuiti sono
controllati dal
Program/Erase Controller
tramite il control bus
DOUBLE SUPPLY (VPP=12V –
5% di tolleranza): circuito tipico
di regolazione: le varie tensioni
di riferimento sono generate da
partitori di tensione connessi
con pass-transistor (M2-M5)
(M2-M5) selezionati da
opportuni bit del control bus
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VCG REGULATION /3
NB i segnali del control bus devono essere traslati per permettere la
completa accensione degli switch analogici: M1-M4 (MOS high
voltage) formano un circuito bistabile pilotato da IN (due inverter
retroazionati → no consumo di potenza statica)
–
Un op-amp connesso come source follower è usato per disaccoppiare il regolatore di tensione (che non fornisce corrente) da HV
switch e row decoder:
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
7
VCG REGULATION /4
–
Per limitare i consumi, le transizioni di tensione sugli indirizzi
avvengono solo quando VPCX=VCC: il regolatore di tensione va perciò
progettato in modo da avere un appropriato settling time e essere
sufficientemente stabile (tramite circuiti di compensazione)
SINGLE SUPPLY: VCC è poco stabile ⇒ si affianca un generatore interno di
tensione (band-gap reference): dato che VREG>VREF, l’op amp lavora come
ampl. non-invertente a guadagno programmabile
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VCG REGULATION /5
–
•
VPP è fornita da appositi circuiti
denominati pompe di carica ⇒
il design dei regolatori deve
limitare al massimo il consumo
⇒ partitori capacitivi di
tensione
HV switch: circuito in grado di
selezionare due o più livelli di
tensione che deve avere consumo
nullo:
–
il circuito più semplice è
costituito da due pMOS pilotati
da opportuni segnali di
controllo: la giunzione drainbulk del pMOS connesso a VCC
va in diretta quando OUT →
VPP
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
8
VCG REGULATION /6
–
il circuito in figura risolve
questo problema (ogni ramo è
formato da 2 pMOS con n-well
opposte), a patto che i segnali
di swing siano pilotati
opportunamente
ES VCC<VREG:
VPCX →VCC ⇒ ENAVCCHV# e
ENAVCC# → gnd (A→ →VCC);
ENAVREGHV# e ENAVREG#
→VCC (B floating ⇒ giunzioni
di drain e di source polarizzate
correttamente)
VPCX →VREG ⇒
ENAVREGHV# e ENAVREG#
→VCC;
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
VCG REGULATION /7
NB
ENAVCCHV# →VREG e ENAVCC# →VCC (A floating, giunzioni di drain e
di source polarizzate correttamente)
dato che HV switch fornisce due tensioni distinte, è molto importante che
i due rami non siano mai simultaneamente ON: questa condizione critica
si evita con temporizzando opportunamente i segnali di controllo
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
9
ERASE CIRCUITRY
•
La cancellazione è un’operazione globale: riguarda tutte le celle di un
settore (Flash) o di un byte (EEPROM – select transistor)
•
Ogni settore ha una propria linea di source e una propria circuiteria
dedicata a switch-are questa linea
•
La cancellazione avviene per tunnel Fowler-Nordheim ⇒ una elevata
differenza di potenziale deve essere applicata fra source/substrato e
floating gate: i circuiti deputati alla generazione di queste tensioni
dipendono da se la memoria è single o double supply
DOUBLE SUPPLY (source erase)
•
VPP è connessa al settore da cancellare tramite soluzioni a ridotta
complessità circuitale
•
La cancellazione avviene con impulsi VCG di ~10 ms: dopo ogni impulso si
verifica la tensione di soglia delle celle, e se tutte le VT sono sotto un
certo limite, la cancellazione si arresta
•
Fenomeni indesiderati cha avvengono in cancellazione sono:
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
ERASE CIRCUITRY /2
1.
2.
•
•
•
band-to-band tunneling (IBBT) sulla giunzione di source
avalanche breakdown, che avviene quando la giunzione è pesantemente
in inversa (IAV)
Il circuito che da tensione alla source line è chiamato source switch:
source line→VPP (erase) e source line→gnd (read/program)
Read: ERASE1_N=ERASE2_N=SLOWD→VCC; ERASE→VCC
CSECT = capacità parassita data da CSB di tutte le celle + capacità
parassite verso massa della source line (CSECT ~ 1-2nF/Mbit)
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
10
ERASE CIRCUITRY /3
•
•
•
Il diodo Zener modellizza le correnti IBBT e IAV: per limitare la corrente
fornita in cancellazione, MP1 è progettato (W/L) in modo da avere una
resistenza di canale che limita la corrente totale a 10-20mA per tutto il
settore: in questo caso, VSL<VPP
I nodi critici CSECT devono essere scaricati lentamente: il rumore associato
alla scarica di CSECT è significativo (la massa può oscillare, inducendo
commutazioni non desiderate nella logica di controllo) ⇒ la corrente di
scarica va ridotta
MN2 è il transitor che garantisce una scarica lenta: SLOWD ha …
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
ERASE CIRCUITRY /4
NB
•
•
... un fronte di salita lento, mentre MN1 e MN3 sono spenti (ERASE1_N e
ERASE2_N → 0)
VSL≈VPP-1V: affinchè ISCARICA< 10-20 mA ⇒ TSCARICA ≅ 10-50 ms (TSCARICA
dipende dalle dimensioni del settore)
SLOWD cresce lentamente anche per evitare lo snap-back di MN2, che
avviene quando sul MOS sono presenti contemporaneamente alte VD e
VCG ⇒ VCG cresce mentre VD sta scendendo
Durante la scarica di SL, la capacità parassite fra WL e SL determina una
tensione negativa su WL ⇒ la giunzione drain-body del transistor pulldown del driver va in diretta: una scarica lenta ne limita la corrente
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
11
ERASE CIRCUITRY /5
SINGLE SUPPLY (negative gate erase – tripple well)
I circuiti che generano V>VCC e V<0 sono chiamati pompe di carica:
questi circuiti hanno una limitata capacità di fornire corrente, che
deve perciò essere limitata;
☺
•
con negative gate erase (2a gen) o con tripple well (3a gen): VSL
limitata ⇒ ISL limitata
POMPA DI CARICA: il suo principio di funzionamento è basato
sull’immagazzinamento di carica (con il suo segno) in un nodo
−
pompa positiva: V>VCC (Q>0 è immagazzinata su un nodo)
−
pompa negativa: V<0 (Q>0 è rimossa da un dato nodo)
−
l’elemento usato per trasferire carica da un nodo all’altro è il
condensatore, che conserva una tensione costante ai suoi terminali
per piccoli intervalli di tempo
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
ERASE CIRCUITRY /6
−
−
lo schema base di una pompa di carica è dato da una serie di stadi
connessi serialmente, ciascuno dei quali è composto da un
condensatore e uno switch
sono necessari due segnali (VCC ↔ 0) in opposizione di fase
FUNZIONAMENTO:
−
a→H - b→L: S2 e S4 chiusi; S1 e S3 aperti ⇒ trasferimento di carica
da 1→2 e da 3→4;
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
12
ERASE CIRCUITRY /7
−
−
−
−
a→L - b→H: S1 e S3 chiusi; S2 e S4 aperti ⇒ trasferimento di carica
da VCC→1, da 2→3, e da 2→OUT;
all’uscita si accumula della carica ⇒ VOUT aumenta
trasferimento di carica fra i nodi i e i+1: se le capacità sono uguali,
Vi+1,fin=(Vi,in+Vi+1,in)/2
la tensione massima guadagnata da ogni stadio è VCC
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
ERASE CIRCUITRY /8
Relazioni analitiche fondamentali:
−
tensione guadagnata da n stadi: VMAX,POS=(n+1)⋅VCC e | |VMAX,NEG|
=n⋅VCC
−
carica trasferita fra due stadi adiacenti in un periodo di clock
QMAX=C⋅VCC
−
corrente in uscita: IMAX=Q/T=C⋅VCC/T
−
resistenza di uscita: RPOS= VMAX,POS/IMAX=(n+1)T/C ; RNEG=
|VMAX,NEG|/IMAX= n⋅T/C
Note generali:
!
è molto critica la realizzazione degli switch: i MOS soffrono dell’effetto
body ⇒ soluzioni diverse a seconda della tecnologia
AREA: maggiore è la corrente richiesta, minore è la tensione
ottenibile: 1) data VCC, VOUT dipende solo dal numero degli stadi, n: +
stadi ⇒ + area; 2) IMAX ∝ C: C + grandi ⇒ + area; globalmente,
l’aumento di IMAX e VOUT ⇒ aumento area
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
13
ERASE CIRCUITRY /9
CONSUMO DI POTENZA: i circuiti che applicano tensione ai
condensatori di boost consumano molta potenza e hanno un impatto
negativo sul rumore generato internamente su GND e VCC
NB Data la limitata capacità di fornire corrente, i circuiti connessi alle
pompe di carica devono
1. consumare meno corrente possibile (no crow-bar current)
2. devono avere capacità parassite più piccole possibili, per evitare
rallentamenti dei transitori di carica/scarica
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
ERASE CIRCUITRY /9
REGOLATORE DI TENSIONE:
−
limitano e regolano la tensione fornita dalla pompa di carica: limi-ter e
voltage regolator sono circuiti diversi, entrambi in retroazione
−
limiter: campiona la tensione di uscita della pompa e disabilita la pompa
se la tensione è troppo alta
−
regulator: alimentato qualche volta dalla tensione di uscita della pompa,
confronta la tensione da regolare con un preciso riferimento, VREF: lo
stadio finale è costituito da pull-up e pull-down MOS
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
14
ERASE CIRCUITRY /10
−
tipico regolatore per tensioni negative: la tensione da regolare HVNEG è
campionata con un partitore capacitivo (no power consumption):
−
se HVNEG è bassa ⇒ M1 ON ⇒ corrente sul nodo da regolare ⇒ la
sua tensione aumenta
−
se HVNEG è alto ⇒ op amp out → H ⇒ il limiter spegne la pompa di
carica
Memorie a semiconduttore
Flash Memory PROGRAM/ERASE
15