ITMI20012817A1 - Struttura di decodifica per un dispositivo di memoria con codice di controllo - Google Patents
Struttura di decodifica per un dispositivo di memoria con codice di controllo Download PDFInfo
- Publication number
- ITMI20012817A1 ITMI20012817A1 IT2001MI002817A ITMI20012817A ITMI20012817A1 IT MI20012817 A1 ITMI20012817 A1 IT MI20012817A1 IT 2001MI002817 A IT2001MI002817 A IT 2001MI002817A IT MI20012817 A ITMI20012817 A IT MI20012817A IT MI20012817 A1 ITMI20012817 A1 IT MI20012817A1
- Authority
- IT
- Italy
- Prior art keywords
- level
- group
- branches
- decoding structure
- pages
- Prior art date
Links
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 208000011580 syndromic disease Diseases 0.000 description 3
- 241000692807 SA2 group Species 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009830 intercalation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Selective Calling Equipment (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
DESCRIZIONE
dell'invenzione industriale dal titolo:
STRUTTURA DI DECODIFICA PER UN DISPOSITIVO DI MEMORIA CON
CODICE DI CONTROLLO
La presente invenzione riguarda una struttura di decodifica per un dispositivo di memoria con codice di controllo .
Codici di controllo, come ad esempio i codici a correzione di errore (Error Correction Code, o ECC), sono comunemente utilizzati per migliorare l'affidabilità di un dispositivo di memoria, come una E<2>PROM di tipo flash a celle multilivello.
Come noto, una cella multilivello può assumere un numero di stati superiore a due (a ciascuno dei quali è associato un corrispondente valore logico); tipicamente, il numero di stati è uguale ad una potenza di 2, con una cella a 2<N >stati che memorizza N bit di informazioni. Ogni stato è definito da un rispettivo intervallo di una determinata grandezza fisica (ad esempio una tensione).
L'incremento del numero di stati possibili per la cella di memoria comporta tuttavia una riduzione degli intervalli di tensione associati ad ogni valore logico (a parità di una finestra di tensione disponibile per il funzionamento della cella di memoria). Ciò rende il dispositivo di memoria più sensibile al rumore, in quanto una minore variazione di tensione può provocare la lettura di un valore logico non valido.
I codici a correzione di errore aggiungono informazioni ridondanti ad ogni gruppo prefissato di bit (pagina). Tali informazioni ridondanti sono utilizzate per individuare e correggere (se .possibile) eventuali errori nella pagina. Ciò consente di tollerare alcune celle difettose nel dispositivo di memoria senza compromettere il suo funzionamento. In tale modo, il costo di produzione del dispositivo di memoria può essere notevolmente ridotto.
La struttura sopra descritta richiede tuttavia la lettura di una pagina intera (per verificare la sua correttezza), prima di potere utilizzare i bit in essa contenuti. Ciò impone alcuni vincoli al funzionamento del dispositivo di memoria, come ad esempio nel caso di una lettura in modo sincrono (burst) in cui le informazioni richieste devono essere fornite in successione ad ogni segnale di orologio (clock) successivo.
Infatti, nel caso in cui si richieda la lettura in modo sincrono di un gruppo di bit a cavallo di due pagine consecutive, è necessario leggere interamente entrambe le pagine prima di potere inviare in uscita le informazioni richieste. Ciò richiede l'introduzione di cicli di attesa, i quali rallentano il funzionamento del dispositivo di memoria.
Una soluzione possibile a tale inconveniente sarebbe di leggere in parallelo due pagine consecutive (ad esempio una pagina pari ed una pagina dispari). Tuttavia, in una struttura di decodifica standard ciascun elemento di lettura è collegato selettivamente ad una cella di memoria di un gruppo associato (tramite elementi di selezione comandati dagli stessi segnali in tutti i gruppi); pertanto, ciò non consente ancora di effettuare la lettura in modo sincrono di un gruppo di bit a cavallo di una pagina dispari e di una pagina pari.
Una diversa struttura di decodifica (nota come decodifica smart) è stata proposta per effettuare letture in modo sincrono da una posizione qualsiasi in un dispositivo di memoria a celle con solo due livelli. In tale struttura, sono aggiunti cammini alternativi che permettono di raggiungere contemporaneamente celle di memoria in posizione diversa in ciascun gruppo. Tuttavia, ciò richiede l'introduzione di ulteriori segnali di selezione; inoltre, la gestione di tali segnali di selezione è piuttosto complessa e richiede modifiche sostanziali al funzionamento del dispositivo di memoria. Infine, la struttura di decodifica proposta non è immediatamente applicabile ad un dispositivo di memoria a celle multilivello.
Scopo della presente invenzione è di ovviare ai suddetti inconvenienti.
Per raggiungere tale scopo è proposta una struttura come indicato nella prima rivendicazione.
In breve, la presente invenzione prevede una struttura di decodifica per un dispositivo di memoria con codice di controllo comprendente una matrice di celle di memoria raggruppate in pagine a ciascuna delle quali è associato un blocco di informazioni di controllo ed una pluralità di elementi di lettura per leggere in parallelo una pluralità di pagine, in cui la struttura di decodifica include mezzi per collegare selettivamente ciascun elemento di lettura ad una pluralità di celle di memoria, e mezzi per collegare selettivamente ciascuna cella di memoria ad una pluralità di elementi di lettura.
Inoltre, la presente invenzione propone anche una memoria comprendente tale struttura di decodifica.
Ulteriori caratteristiche ed i vantaggi della soluzione secondo la presente invenzione' risulteranno dalla descrizione di seguito riportata di una sua forma di realizzazione preferita, data a titolo indicativo e non limitativo, con riferimento alle figure allegate, in cui:
Fig.l è uno schema a blocchi di principio di una sezione di lettura di una memoria in cui è utilizzabile la struttura di decodifica della presente invenzione; Figg.2a e 2b mostrano in forma schematica una struttura di decodifica secondo l'arte nota;
Figg.3a e 3b mostrano in forma schematica una struttura di decodifica secondo una forma di realizzazione preferita dell'invenzione.
Con riferimento in particolare alla Fig.l, è illustrata una sezione di lettura di un dispositivo di memoria 100, ad esempio una E<2>PROM di tipo flash. La memoria 100 include una matrice 105 di celle di memoria, ciascuna formata da un transistore MOS a gate flottante Mfg. La cella di memoria Mfg è programmabile a quattro livelli diversi; ogni livello è associato ad un valore corrispondente di una tensione di soglia del transistore, la quale dipende dalla carica accumulata nella sua gate flottante. Ciascun livello rappresenta un diverso valore logico, per cui la cella di memoria Mfg memorizza due bit di informazione (4=2<Z>).
La matrice 105 è organizzata in una pluralità di righe ed una pluralità di colonne (ad esempio 512 righe x 1024 colonne). Le celle di memoria Mfg di ogni riga hanno un terminale di gate collegato ad una corrispondente linea di parola WL, mentre le celle di memoria Mfg di ogni colonna hanno un terminale di drain collegato ad una corrispondente linea di bit BL (i terminali di source di tutte le celle di memoria Mfg sono tipicamente mantenuti ad una tensione di riferimento, o massa).
Le informazioni immagazzinate nella memoria 100 sono trattate contemporaneamente a blocchi di 16 bit, ciascuno dei quali definisce una parola WD; ogni parola WD è memorizzata in 8 celle di memoria corrispondenti Mfg di una stessa riga (8x2=16 bit). Le parole sono raggruppate logicamente in pagine PG, ciascuna delle quale è formata da 4 parole consecutive. Le informazioni sono memorizzate utilizzando un codice a correzione di errore, in cui a ciascuna pagina PG è associato un blocco di informazioni di controllo (8 bit).
Un decodificatore di riga (ROW_DEC) H Or è utilizzato per selezionare una linea di parola WL, mentre un decodificatore di colonna (C0L_DEC) 110c è utilizzato per selezionare contemporaneamente le linee di bit BL di due pagine consecutive (nella riga selezionata). Ogni parola memorizzata nella matrice 105 è individuata da un indirizzo ADR; l'indirizzo ADR è formato da un indirizzo di riga ROW_ADR (il quale è fornito al decodificatore di riga H Or) e da un indirizzo di colonna COL_ADR (parte del quale è fornito al decodificatore di colonna 110c). Nell'esempio in questione, ogni riga contiene 1024 celle di memoria Mfg (a 2 bit) e quindi 1024/8=128 parole WD (a 16 bit); pertanto, l'indirizzo di colonna COL_ADR è costituito da 7 bit AeAsiWW^AiAo (2<7>=128).
Il decodificatore di colonna 110c è collegato ad una unità di lettura (SA) 115, la quale fornisce in uscita le due pagine lette contemporaneamente dalla matrice 105 (definite dai valori memorizzati nelle corrispondenti celle di memoria Mfg), unitamente ai due blocchi di informazioni di controllo associati. La coppia di pagine lette ed i rispettivi blocchi di informazioni di controllo sono trasmessi ad un decodificatore ECC 120. Il decodificatore ECC 120 calcola una sindrome per ciascuna pagina letta, la quale è fornita ad un corrispondente decodificatore (SYND) 125. Una unità di correzione (CORR) 130 riceve in ingresso le pagine (eventualmente) da correggere dal decodificatore ECC 120 (le quali possono essere sia uguali sia diverse dalle pagine lette) ed una serie di bit di correzione dal decodificatore di sindrome 125. L'unità 130 corregge (se possibile) le pagine ricevute in ingresso in base ai corrispondenti bit di correzione; le pagine corrette così ottenute sono staticizzate in un buffer di uscita (BFR) 135. Il decodificatore di sindrome 125 genera inoltre un segnale FAIL, il quale è asserito per indicare errori non correggibili nella coppia di pagine lette.
Parte dell'indirizzo di colonna COL_ADR è fornito ad un contatore (CONT) 140 a modulo 8; il contatore 140 incrementa di una unità il valore in esso memorizzato in risposta ad un segnale di orologio Ck. Un decodificatore 145 asserisce un segnale di selezione S0-S7 corrispondente al valore ricevuto dal contatore 140. I segnali di selezione S0-S7 comandano l'invio in uscita della corrispondente parola WD staticizzata nel buffer 135. In questo modo, è possibile effettuare una lettera della memoria 100 in modo sincrono, in cui una serie di 4 parole consecutive è fornita in successione ad ogni segnale di orologio Ck, a partire dalla parola selezionata dall'indirizzo ADR.
Considerazioni analoghe si applicano se la memoria ha una diversa struttura, se le celle di memoria sono formate da dispositivi equivalenti o memorizzano un numero diverso di bit, se è utilizzata una diversa memoria di tipo non volatile (ad esempio una EPROM), se la matrice, le parole e/o le pagine hanno dimensioni diverse (e quindi sono utilizzati un numero diverso di bit di indirizzo), se le informazioni sono memorizzate utilizzando un diverso codice di controllo (ad esempio solo in grado di rilevare gli errori, ma non di correggerli), se le pagine lette contemporaneamente e/o le parole fornite in uscita in modo sincrono sono in numero diverso, e simili.
Considerando ora la Fig.2a, l'unità di lettura 115 è formata da 8 gruppi di amplificatori di rilevamento (sense amplifier) SA0-SA7, per le rispettive parole della coppia di pagine lette; ogni gruppo SA0-SA7 consiste di 8 sense amplifier, ciascuno dei quali legge una cella di memoria corrispondente (2 bit) della rispettiva parola nella coppia di pagine selezionata.
In una struttura di decodifica standard nota nell'arte, come illustrato in figura, il decodificatore di colonna 110c collega selettivamente i sense amplifier di ciascun gruppo SA0-SA7 ad un distinto pacchetto di linee di bit tramite una serie di transistori MOS di selezione Ms. I transistori di selezione Ms sono organizzati in gruppi di strutture ad albero TR0-TR7 a tre livelli (TRm0-TRm7, TRn0-TRn7, e TRo0-TRo7) .
In particolare, ciascun albero TR0-TR7 ha una radice direttamente collegata al corrispondente sense amplifier SA0-SA7. Il primo livello TRm0-TRm7 di ogni albero consiste di due rami (che si diramano dalla radice); il transistore di selezione Ms del primo ramo di tutti gli alberi TR0-TR7 è controllato da uno stesso segnale di selezione Ym0, mentre il transistore di selezione Ms del secondo ramo di tutti gli alberi TR0-TR7 è controllato da uno stesso segnale di selezione Ymi. Il secondo livello TRn0-TRn7 di ogni albero consiste di un gruppo formato da due rami per ciascun ramo del primo livello TRm0-TRm7 (2x2=4 rami); il transistore di selezione Ms del primo ramo e del secondo ramo di ciascun gruppo (in tutti gli alberi TR0-TR7) è controllato da uno stesso segnale di selezione Yn0 e Yni, rispettivamente. Il terzo livello TRO0-TRO7 di ogni albero consiste di un gruppo formato da quattro rami per ciascun ramo del secondo livello TRn0-TRn7 (4x4=16 rami); il transistore di selezione Ms del primo, secondo, terzo e quarto ramo di ciascun gruppo (in tutti gli alberi TR0-TR7) è controllato da uno stesso segnale di selezione Yo0, Y01, Yo2 e Yo3, rispettivamente. Ciascun ramo del terzo livello TRo0-TRo7 è collegato direttamente ad una linea di bit corrispondente.
Considerando ad esempio gli alberi del gruppo TR0 (per i sense amplifier del gruppo SA0) , i primi rami del primo gruppo sono collegati alle linee di bit associate alla parola WD0 (in ciascuna riga), i primi rami del secondo gruppo sono collegati alle linee di bit associate alla parola WD16, i primi rami del terzo gruppo sono collegati alle linee di bit associate alla parola WD8, ed i primi rami del quarto gruppo sono collegati alle linee di bit associate alla parola WD24. I secondi rami del primo gruppo sono invece collegati alla parola WD32, i secondi rami del secondo gruppo sono collegati alla parola WD48, i secondi rami del terzo gruppo sono collegati alla parola WD40( ed i secondi rami del quarto gruppo sono collegati alla parola WD56. I terzi rami del primo gruppo, del secondo gruppo, del terzo gruppo e del quarto gruppo sono analogamente collegati , rispettivamente, alla parola WD64, alla parola WD80, alla parola WD72, ed alla parola WD88. Infine, i quarti rami del primo, secondo, terzo e quarto gruppo sono collegati, rispettivamente, alle parole WD96, WDn2, WDI04, e WDI20. I rami degli alberi del gruppo TRX (per i sense amplifier del gruppo SAX) sono collegati alle parole adiacenti da WDi a WDX2I (saltando di 8 in 8), e così via sino ai rami degli alberi del gruppo TR7 che sono collegati alle parole da WD7 a WDX27 (di 8 in 8).
In tale modo, i sense amplifier del gruppo SA0 possono leggere la prima parola (WD0, WD8, ... WDI20) di ogni pagina pari (da PG0=WD0WDIWD2WD3 a PG30=WDI20WDI2IWDI22WDI23); i sense amplifier del gruppo SAX, del gruppo SA2 e del gruppo SA3 possono analogamente leggere la seconda (WDX, WD9, ... WD12X) , la terza (WD2, WD10, ... WDi22), e la quarta (WD3, WDn, ... WDX23) parola, rispettivamente, di ogni pagina pari. I sense amplifier dei gruppi SA*, SAs, SA6 e SA7 sono invece vincolati a leggere la prima (WD4, WDX2, ... WD124) , la seconda (WD5, WDX3, ... WDI25), la terza (WDS, WD14, ... WDI26), e la quarta (WD7, WDis, ... WD127) parola, rispettivamente, di ogni pagina dispari (da PGI=WD4WD5WD6WD7 a ;PG3i=WDi24WDl25WDi26WDi27)· ;Come mostrato in Fig.2b, i segnali di selezione Ym0-Ymi sono generati da un decodificatore 205m, il quale ricevere in ingresso il bit A3 dell'indirizzo di colonna COL_ADR (con il segnale di selezione Ym0 che è asserito per A3=0 ed il segnale di selezione Ym3 che è asserito per A3=l). 'I segnali di selezione Υη0-Υηχ sono analogamente generati da un decodificatore 205n, il quale ricevere in ingresso il bit A* (dell'indirizzo di colonna COL_ADR) . Un ulteriore decodificatore 205o genera i segnali di selezione Yo0-Yo3 in risposta ai bit A6A5. I bit A2AIA0 sono invece forniti al contatore 140; il contatore 140 pilota di conseguenza il decodificatore 145, il quale genera i segnali di selezione S0-S7.
La struttura sopra descritta (Fig.2a e Fig.2b) consente di leggere in modo sincrono 4 parole consecutive a partire da una posizione qualsiasi in una pagina pari. Si consideri ad esempio di volere effettuare la lettura sincrona partendo (in una generica riga selezionata) dalla parola WDg (A6A5A4A3A2A1Ao=0001001). I bit di maggior peso dell'indirizzo di colonna COL_ADR (A6A5A4A3=0001) individuano la corrispondente coppia di pagine PG2=WDaWDgWDioWDii e PG3=WDi2WDi3WDi4WDi5· In particolare, i decodificatori 205m, 205n e 205o asseriscono i segnali di selezione Ymi (A3=l), Yn0 (A4=0) e Yo0 (A6A5=00). Pertanto, i sense amplifier del gruppo SA0 leggeranno la parola WD8I i sense amplifier del gruppo SAX leggeranno la parola WDg, e così via sino ai sense amplifier del gruppo SA7 che leggeranno la parola WDI5.
Le pagine lette sono controllate ed eventualmente corrette (utilizzando i corrispondenti blocchi di informazioni di controllo), e quindi staticizzate nel buffer di uscita. I bit di minor peso dell'indirizzo di colonna C0L_ADR (A2AIA0=001) individuano la seconda parola nella coppia di pagine lette. In particolare, il decodificatore 145 asserisce il segnale di selezione Si, il quale comanda l'invio in uscita della parola letta dal corrispondente gruppo di sense amplifier SAi (WDg) . L'incremento del valore memorizzato nel contatore 140 provoca l'uscita in sequenza delle parole lette dai gruppi di sense amplifier SA2 (WD10) , SA2 (WDn) e SA4 (WDia) .
Tuttavia, questa struttura consente di leggere in modo sincrono 4 parole consecutive solamente a partire dalla prima posizione di una pagina dispari. Si consideri infatti di volere effettuare la lettura sincrona partendo da -una posizione diversa, ad esempio dalla parola WDi4 (A6A5A4A3A2A1Ao=0001110). I bit di maggior peso dell'indirizzo di colonna COL_ADR (AgAsA^^OOOl) individuano ancora la coppia di pagine PG2 e PG3, per cui le stesse parole WDeWDgWDxoWDn e WDI2WDI3WD14WD15 saranno staticizzate nel buffer di uscita. In tale caso, è quindi necessario leggere anche la coppia di pagine successive (PG4=WD16WDi7WDi8WDi9 e PG5=WD2oWD2iWD22WD23) prima di potere inviare in uscita le parole desiderate (WD14WD1SWDI6WDI7) in modo sincrono.
Con riferimento ora alle Figg.3a e 3b (gli elementi corrispondenti a quelli mostrati nelle Figg.2a e 2b sono identificati con gli stessi riferimenti, e la loro spiegazione è omessa per semplicità di descrizione), è mostrata una struttura di decodifica in accordo ad una forma di realizzazione preferita della presente invenzione. In questo caso, contrariamente all'arte nota, ogni pacchetto di linee di bit è collegabile selettivamente a due gruppi diversi di sense amplifier.
In particolare (Fig.3a), i transistori di selezione Ms sono organizzati in gruppi di strutture ad albero TRC0-TRC7 a tre livelli. La radice di ciascun albero TRC0-TRC7 è direttamente collegata al corrispondente sense amplifier SA0-SA7. Ogni albero ha un primo livello dedicato TRCmo-TRCm7 che consiste di quattro rami (che si diramano dalla radice). Il transistore di selezione del primo, del secondo, del terzo e del quarto ramo di tutti gli alberi TRC0-TRC3 è controllato da uno stesso segnale di selezione Ym0, Ym1# Ym2 e Ym3, rispettivamente; il transistore di selezione del primo, del secondo, del terzo e del quarto ramo di tutti gli alberi TRC4-TRC7 è controllato dagli stessi segnali di selezione sfalsati secondo una lista circolare, cioè Ym3, Ym0, Ymi e Ym2, rispettivamente .
Un secondo livello TRCn04, TRCni5, TRCn26 e TRCn37 è parzialmente in comune tra ciascuna coppia di alberi dei gruppi TRC0/TRC4I TRCÌ/TRCS, TRC2/TRCS e TRC3/TRC7, rispettivamente. In dettaglio, il secondo livello degli alberi TRC0-TRC3 consiste di un gruppo formato da due rami per ciascun ramo del primo livello TRCm0-TRCm3 (2x4=8 rami). Il secondo, terzo e quarto ramo del primo livello degli alberi TRC4-TRC7 è collegato agli stessi gruppi di rami del secondo livello dei corrispondenti alberi TRC0-TRC3. Il primo ramo del primo livello degli alberi TRC4-TRC7 è invece collegato ad un ulteriore gruppo (formato da un singolo ramo) del secondo livello. Il transistore di selezione del primo e del secondo ramo di ciascun gruppo in tutti gli alberi TRC0-TRC7 (ad eccezione del primo gruppo degli alberi TRC4-TRC7) è controllato da uno stesso segnale di selezione Yn0 e Yn3, rispettivamente; il singolo ramo che forma il primo gruppo del secondo livello degli alberi TRC4-TRC7 è controllato dal segnale di selezione Yn0.
Ogni albero ha quindi un terzo livello TRC004-TRCO37 comune tra ciascuna rispettiva coppia di alberi dei gruppi TRC0/TRC4, TRC1/TRC5, TRC2/TRC6 e TRC3/TRC7. Il terzo livello TRC004-TRC037 consiste di un gruppo formato da quattro rami per ciascun ramo del secondo livello TRCn04-TRCn37 (4x4=16 rami). I rami del primo gruppo del secondo livello degli alberi TRC4-TRC7 sono collegati ai gruppi di rami del terzo livello in modo sfalsato, rispetto ai corrispondenti rami del primo gruppo del secondo livello degli alberi TRC0-TRC3; nell'esempio illustrato nella figura, il primo gruppo del secondo livello degli alberi TRC4-TRC7 consiste di un singolo ramo, il quale è collegato al secondo gruppo di rami del terzo livello. Il transistore di selezione del primo, secondo, terzo e quarto ramo di ciascun gruppo del terzo livello TRCo04-TRCO37 (in tutti gli alberi TRC0-TRC7) è controllato da uno stesso segnale di selezione Yo0, Y01, Yo2 e Yo3, rispettivamente. Ciascun ramo del terzo livello TRCo0-TRCO7 è collegato direttamente alla linea di bit corrispondente.
La struttura sopra descritta utilizza un mappatura delle parole diversa da quella della struttura di decodifica standard. Considerando ad esempio la coppia di alberi dei gruppi TRC0 e TRC4 (per i sense amplifier dei gruppi SA0 e SA4, rispettivamente) , la mappatura è ottenuta da quella standard intercalando coppie di gruppi di rami adiacenti degli alberi TR0 e TR4 (come illustrato nella Fig.2a). In particolare, ì rami del primo e del secondo gruppo raggiungibili dal primo ramo del primo livello sono collegati alle linee di bit associate alle parole (in ciascuna riga) WD0, WD32, WD64, WD96 ed alle parole WDiS, W48, WDao, WDn2, rispettivamente. I rami del primo e del secondo gruppo raggiungibili dal secondo ramo del primo livello sono collegati alle linee di bit associate alle parole WD4, WD36, WD68, WD100 ed alle parole WD20, W52, WD84Ì WDH6, rispettivamente. Analogamente, i rami raggiungibili dal terzo ramo del primo livello sono collegati alle linee di bit associate alle parole WDa, WD40, W72, WDIQ4 e WD24, W56, WD88, WDI2Q, ed i rami raggiungibili dal quarto ramo del primo livello sono collegati alle linee di bit associate alle parole WDi2, WD44, W76, WD108 e WD28, W60, WD92Ì WD124. I rami della coppia di alberi dei gruppi TRCi e TRC5 sono analogamente collegati alle parole adiacenti da WD3 a WD121 (saltando di 4 in 4), e così via sino ai rami della coppia di alberi dei gruppi TRC3 e TRC7 che sono collegati alle parole (di 4 in 4) da WD7 a WD127.
Pertanto, i sense amplifier del gruppo SA0 e del gruppo SA4 possono leggere alternativamente sia la prima parola (WD0, WD8, ... WDI20) di ogni pagina pari (da PGO=WDOWDIWD2WD3 a PG3O=WDI2OWDI2IWDI22WDI23) sia la prima parola (WD4, WDi2, ... WDi24) di ogni pagina dispari (da PGI=WD4WD5WD6WD7 a PG3i=WD124WDi25WDi26WDi27). Analogamente, i sense amplifier dei gruppi SA3SA5, dei gruppi SA2SA6 e dei gruppi SA3SA7 possono leggere la seconda, la terza e la quarta parola, rispettivamente, sia delle pagine pari sia delle pagine dispari, cioè (WDi, WDg, ... WD12i) - (WD5, WD13, ... WDI2S), (WD2, WDXO, ...WDI22) - (WDg, WDI4, ... WDi2g) e (WD3, WDH, ...WDI23) - (WD7, WD15, ...WDI27), rispettivamente.
In modo analogo alla struttura descritta in precedenza (Fig.3b), i segnali di selezione Υηο-Υηχ ed i segnali di selezione Yo0-Yo3 sono generati, rispettivamente, dal decodificatore 205n (in risposta al bit Ai dell'indirizzo di colonna COL_ADR) e dal decodificatore 205o (in risposta ai bit A6A5). Un diverso decodificatore 305m genera invece i segnali di selezione Ym0-Ym3 in risposta ai bit A3A2. Il contatore 140 riceve solamente i bit ΑχΑο, mentre il bit più significativo in ingresso è mantenuto al valore logico 0; il contatore 140 pilota quindi il decodificatore 145 come nel caso precedente .
La struttura sopra descritta consente di leggere in modo sincrono 4 parole consecutive a partire da una posizione qualsiasi (sia in una pagina pari sia in una pagina dispari) . Si consideri ad esempio di volere effettuare la lettura sincrona partendo (in una generica riga selezionata) dalla parola WD9 (A6A5A4A3A2A1AO=0001001). I bit A6A5A4A3A2=00010 dell'indirizzo di colonna individuano la prima pagina della corrispondente coppia (PG2=WD8WD9WD10WDII e PG3=WDI2WDI3WDI4WD15). In particolare, i decodificatori 305m, 205n e 205o asseriscono i segnali di selezione Ym2 (A3A2=10), Yn0 (A4=0) e Yo0 (A6A5=00). Pertanto, i sense amplifier del gruppo SA0 leggeranno la parola WDa, i sense amplifier del gruppo SAi leggeranno la parola WD9, i sense amplifier del gruppo SA2 leggeranno la parola WDi0 ed i sense amplifier del gruppo SA3 leggeranno la parola WDn ; allo stesso tempo, i sense amplifier dei gruppi SA4, SA5, SAs e SA7 leggeranno le parola WDX2, WDI3, WDi4 e WD15) rispettivamente .
Le pagine lette sono controllate, (eventualmente) corrette e quindi staticizzate nel buffer di uscita. I bit di minor peso dell'indirizzo di colonna COL_ADR (AXA0=01) individuano la seconda parola nella coppia di pagine lette. In particolare, il decodificatore 145 asserisce il segnale di selezione Si, il quale comanda l'invio in uscita della parola letta dal corrispondente gruppo di sense amplifier SAX (WD9). L'incremento del valore memorizzato nel contatore 140 provoca l'uscita in sequenza delle parole lette dai gruppi di sense amplifier SA2 (WD10) , SA3 (WDn) e SA4 (WD12) .
In modo analogo, si consideri ora di volere effettuare la lettura sincrona partendo dalla parola WDi4
( AgA5A4A3A2AiAo=0001110 ) . I bit A6AsA4A3A2=00011 dell'indirizzo di colonna individuano la prima pagina della coppia successiva (PG3=WDi2WDi3WDi4WDi5 e PG4=WDi6WDi7WD18WDi9) . In particolare, i decodificatori 305m, 205n e 205o asseriscono i segnali di selezione Ym3 (A3A2=11), Yn0 (A4=0) e Yo0 (A6A5=00). Pertanto, i sense amplifier dei gruppi SA0, SAi, SA2 e SA3 leggeranno le parola WD12, WD13, WDX4 e WD15, rispettivamente; allo stesso tempo, i sense amplifier dei gruppi SA4, SA5, SA6 e SA7 leggeranno le parola WDI6, WDI7, WDI8 e WDI9, rispettivamente. I bit di minor peso dell'indirizzo di colonna C0L_ADR (A;iAo=10) individuano la terza parola nella coppia di pagine lette. In particolare, il decodificatore 145 asserisce il segnale di selezione S2, il quale comanda l'invio in uscita della parola letta dal corrispondente gruppo di sense amplifier SA2 (WD14) . L'incremento del valore memorizzato nel contatore 140 provoca l'uscita in sequenza delle parole lette dai gruppi di sense amplifier SA3 (WD15) , SA4 (WDI6) e SA5 (WD17) .
Nella struttura sopra descritta, i segnali di selezione Yo0-Yo4 associati ai due bit di maggior peso AgAs sono comuni a tutti gli alberi TRC0-TRC7. Pertanto, tale struttura non è in grado di consentire la lettura a cavallo di valori che comportano variazioni di tali bit, cioè ogni 32 parole nell'esempio in questione (2<7"2>=2<5>=32). Infatti, si consideri di volere effettuare la lettura sincrona partendo dalla parola WD29 (A6A5A4A3A2AIAO=0011101). In questo caso, i decodificatori 305m, 205n e 205o asseriscono i segnali di selezione Ym3 (A3A2=11), Yni (A4=l) e Yo0 (A6A5=00). Pertanto, i sense amplifier dei gruppi SA0, SAi, SA2 e SA3 leggeranno le parola WD2a, WD2g, WD30 e WD3I, rispettivamente; tuttavia, i sense amplifier dei gruppi SA4, SA5, SA6 e SA7 non sono collegati ad alcuna linea di bit (in quanto le parole WD32, WD33, WD34 e WD35 non possono essere lette utilizzando gli stessi segnali di selezione Yo0-Yo3) .
Considerazioni analoghe si applicano se ogni pacchetto di linee di bit è collegabile a tre o più gruppi di sense amplifier, se i transistori di selezione sono organizzati in alberi con un numero diverso di livelli, se ogni livello consiste di un numero diverso di gruppi ciascuno formato da un numero diverso di rami, se i transistori di selezione sono sostituiti da elementi equivalenti o sono comandati da segnali diversi, e simili. In alternativa, ogni albero ha un numero diverso di livelli dedicati e/o di livelli in comune, i segnali di selezione del primo livello sono sfalsati in modo diverso, i rami del primo gruppo del secondo livello sono collegati in modo diverso ai gruppi di rami del terzo livello, le parole sono mappate in altro modo sulle linee di bit, i segnali di selezione sono generati in modo diverso dall'indirizzo di colonna, e simili.
Più in generale, la presente invenzione prevede una struttura di decodifica per un dispositivo di memoria con codice di controllo. Il dispositivo di memoria comprende una matrice di celle di memoria raggruppate in pagine, a ciascuna delle quali è associato un blocco di informazioni di controllo; il dispositivo di memoria comprende inoltre una pluralità di elementi di lettura per leggere in parallelo una pluralità di pagine. La struttura di decodifica include mezzi per collegare selettivamente ciascun elemento di lettura ad una pluralità di celle di memoria; nella struttura dell'invenzione, sono inoltre previsti mezzi per collegare selettivamente ciascuna cella di memoria ad una pluralità di elementi di lettura.
La soluzione proposta consente di rimuovere alcuni vincoli imposti dalla decodifica standard al funzionamento del corrispondente dispositivo di memoria; in particolare, ciò consente di effettuare letture in modo sincrono a partire sostanzialmente da ogni posizione (senza richiedere l'introduzione di alcun ciclo di attesa).
Tale risultato è ottenuto con una struttura molto semplice, la quale non richiede l'aggiunta né di ulteriori cammini né di ulteriori segnali di selezione,· inoltre, la gestione dei segnali di selezione richiesti dalla soluzione della presente invenzione è estremamente semplice e richiede modifiche minime ai dispositivi di memoria esistenti.
La forma di realizzazione preferita dell'invenzione sopra descritta offre ulteriori vantaggi.
In particolare, gli elementi di selezione sono organizzati in alberi con uno o più livelli condivisi tra gruppi di alberi corrispondenti.
Tale soluzione consente di realizzare la struttura dell'invenzione in modo molto semplice ed efficace.
In una forma di realizzazione preferita, ciascun albero ha un livello intermedio parzialmente in comune tra gli alberi di ogni gruppo.
Vantaggiosamente, i rami di un primo gruppo del livello intermedio sono collegati in modo sfalsato ai corrispondenti gruppi di rami del livello condiviso.
Tale struttura consente di raggiungere lo scopo desiderato con una mappatura delle parole semplice ed immediata.
La soluzione in accordo con la presente invenzione si presta comunque ad essere realizzata anche con gli elementi di selezione organizzati in modo diverso (al limite in un singolo livello), con un diverso livello intermedio, oppure anche senza alcun livello intermedio parzialmente in comune tra gli alberi di ogni gruppo.
In una forma di realizzazione preferita dell'invenzione, gli elementi di selezione corrispondenti in ciascun livello non condiviso degli alberi di ogni gruppo sono controllati da diversi primi segnali di selezione .
Ciò permette di utilizzare sempre gli stessi segnali di selezione, semplicemente cambiando il loro ordine.
Come ulteriore miglioramento, gli elementi di selezione corrispondenti sono controllati da segnali di selezione adiacenti (secondo una lista circolare).
Tale struttura consente di raggiungere lo scopo desiderato con una struttura di immediata implementazione.
Vantaggiosamente, le parole lette sono selezionate utilizzando segnali di selezione generati in risposta ad una porzione di un corrispondente indirizzo di parola, con l'aggiunta di uno o più bit di valore pre-fissato.
In questo modo, i segnali di selezione sono gestiti in modo simile ai dispositivi di memoria esistenti.
In alternativa, gli elementi di selezione corrispondenti in ciascun livello non condiviso sono controllati diversamente, sono utilizzati segnali di selezione non adiacenti, le parole lette sono selezionate utilizzando segnali generati in altro modo, e simili.
La struttura di decodifica in accordo con la presente invenzione è preferibilmente inglobata in un dispositivo di memoria che supporta una modalità di lettura sincrona (anche se altre applicazioni sono previste e rientrano nell'ambito dell'invenzione).
L'utilizzo della struttura di decodifica proposta è particolarmente vantaggioso in una memoria non-volatile multilivello.
La soluzione della presente invenzione si presta comunque ad essere utilizzata anche in un dispositivo di memoria di tipo diverso, ad esempio una memoria volatile oppure una memoria con celle a due livelli.
Naturalmente alla soluzione sopra descritta un tecnico del ramo, allo scopo di soddisfare esigenze contingenti e specifiche, potrà apportare numerose modifiche e varianti, tutte peraltro contenute nell'ambito di protezione dell'invenzione, quale definito dalle seguenti rivendicazioni.
Claims (10)
- RIVENDICAZIONI 1. Struttura di decodifica (110c) per un dispositivo di memoria (100) con codice di controllo comprendente una matrice (105) di celle di memoria (Mfg) raggruppate in pagine a ciascuna delle quali è associato un blocco di informazioni di controllo ed una pluralità di elementi di lettura (SA0-SA7) per leggere in parallelo una pluralità di pagine, in cui la .struttura di decodifica include mezzi (TRCo,TRCn,205o,205n) per collegare selettivamente ciascun elemento di lettura ad una pluralità di celle di memoria, caratterizzato dal fatto che la struttura di decodifica ulteriormente comprende mezzi (TRCm,305m) per collegare selettivamente ciascuna cella di memoria ad una pluralità di elementi di lettura.
- 2. Struttura di decodifica (110c) secondo la rivendicazione I r ulteriormente comprendente una pluralità di elementi di selezione (Ms) raggruppati in blocchi ciascuno organizzato in un albero (TRC) con una pluralità di livelli (TRCm,TRCn,TRCo), l'albero avendo una radice collegata ad un elemento di lettura corrispondente (SA0-SA7) ed un ultimo livello (TRCo) collegato alle celle di memoria corrispondenti (Mfg), in cui almeno un livello (TRCo) a partire dall'ultimo livello è condiviso tra un gruppo formato da una pluralità di alberi associati a diversi elementi di lettura.
- 3. Struttura di decodifica (110c) secondo la rivendicazione 2, in cui ciascun albero (TRC) ulteriormente comprende un livello intermedio (TRCn) direttamente collegato all'almeno un livello condiviso (TRCo), il livello intermedio essendo parzialmente in comune tra gli alberi del corrispondente gruppo.
- 4. Struttura di decodifica (110c) secondo la rivendicazione 3, in cui ogni livello (TRCm,TRCn,TRCo) consiste di un gruppo di rami per ciascun ramo di un livello immediatamente superiore, il livello intermedio (TRCn) avendo ciascun gruppo di rami ad eccezione di un primo gruppo di rami in comune tra gli alberi del corrispondente gruppo ed i rami del primo gruppo collegati in modo sfalsato ai corrispondenti gruppi di rami dell'almeno un livello condiviso (TRCo).
- 5. Struttura di decodifica (110c) secondo una qualsiasi delle rivendicazioni da 2 a 4, ulteriormente comprendente primi mezzi di decodifica (205o,205n,305m) per generare una pluralità di primi segnali di selezione (Yo0-Yo3,Yn0-YnlfYm0-Ym3) ciascuno per controllare contemporaneamente un elemento di selezione (Ms) corrispondente in ciascun albero (TRC), gli elementi di selezione corrispondenti in ciascun livello non condiviso (TRCm) degli alberi di ogni gruppo essendo controllati da diversi primi segnali di selezione (Ym0-Ym3) .
- 6. Struttura di decodifica (110c) secondo la rivendicazione 5, in cui i primi segnali di 'selezione (Ym0-Ym3) associati a ciascun livello non condiviso sono ordinati secondo una lista circolare, gli elementi di selezione corrispondenti (Ms) in ciascun livello non condiviso (TRCm) degli alberi di ogni gruppo essendo controllati da primi segnali di selezione adiacenti secondo la lista circolare.
- 7. Struttura di decodifica (110c) secondo la rivendicazione 5 o 6, in cui ciascuna pagina consiste di una pluralità di parole e la struttura di decodifica ulteriormente comprende secondi mezzi di decodifica (145) per generare una pluralità di secondi segnali di selezione (S0-S7) ciascuno per controllare l'invio in uscita di una corrispondente parola delle pagine lette, ed in cui i primi mezzi di decodifica (205o,205n,305m) sono comandati da una prima porzione (A6-A2) di un indirizzo di parola (C0L_ADR) formato da una pluralità di bit ed i secondi mezzi di decodifica (145) sono comandati da un valore ottenuto aggiungendo almeno un bit di valore pre-fissato ad una seconda porzione (Ax-A0) dell'indirizzo di parola.
- 8. Dispositivo di memoria (100) con codice di controllo comprendente una matrice (105) di celle di memoria (Mfg) raggruppate in pagine a ciascuna delle quali è associato un blocco di informazioni di controllo, una pluralità di elementi di lettura (SA0-SA7) per leggere in parallelo una pluralità di pagine, e la struttura di decodifica (110c) secondo una qualsiasi delle rivendicazioni da 1 a 7.
- 9. Dispositivo di memoria (100) secondo la rivendicazione 8, ulteriormente comprendente mezzi (135,140,145) per inviare in uscita una pluralità di parole delle pagine lette in modo sincrono a partire da una parola iniziale identificata dall'indirizzo di parola (COL_ADR).
- 10. Dispositivo di memoria (100) secondo la rivendicazione 8 o 9, in cui il dispositivo di memoria consiste di una memoria non-volatile multilivello.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT2001MI002817A ITMI20012817A1 (it) | 2001-12-28 | 2001-12-28 | Struttura di decodifica per un dispositivo di memoria con codice di controllo |
US10/331,177 US6958949B2 (en) | 2001-12-28 | 2002-12-27 | Decoding structure for a memory device with a control code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT2001MI002817A ITMI20012817A1 (it) | 2001-12-28 | 2001-12-28 | Struttura di decodifica per un dispositivo di memoria con codice di controllo |
Publications (1)
Publication Number | Publication Date |
---|---|
ITMI20012817A1 true ITMI20012817A1 (it) | 2003-06-28 |
Family
ID=27638549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT2001MI002817A ITMI20012817A1 (it) | 2001-12-28 | 2001-12-28 | Struttura di decodifica per un dispositivo di memoria con codice di controllo |
Country Status (2)
Country | Link |
---|---|
US (1) | US6958949B2 (it) |
IT (1) | ITMI20012817A1 (it) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100543448B1 (ko) * | 2003-04-03 | 2006-01-23 | 삼성전자주식회사 | 버스트 읽기 동작 모드를 갖는 플래시 메모리 장치 |
US7099202B1 (en) * | 2005-04-08 | 2006-08-29 | Atmel Corporation | Y-mux splitting scheme |
KR100732633B1 (ko) * | 2006-02-01 | 2007-06-27 | 삼성전자주식회사 | 비연속적인 비트라인 디코딩을 수행하는 플래시 메모리장치 |
JP5339541B2 (ja) * | 2007-05-25 | 2013-11-13 | マーベル ワールド トレード リミテッド | ビット線デコーダ及び集積回路 |
US8645792B2 (en) * | 2008-12-16 | 2014-02-04 | Micron Technology, Inc. | Memory with guard value dependent error correction |
US20150262640A1 (en) * | 2014-03-11 | 2015-09-17 | Akira Katayama | Memory system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864569A (en) | 1996-10-18 | 1999-01-26 | Micron Technology, Inc. | Method and apparatus for performing error correction on data read from a multistate memory |
DE60017704D1 (de) * | 2000-02-29 | 2005-03-03 | St Microelectronics Srl | Spaltedekodierer für das Lesen von Seiten in einem Halbleiterspeicher |
US6466508B1 (en) * | 2000-11-28 | 2002-10-15 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device having high-speed read function |
-
2001
- 2001-12-28 IT IT2001MI002817A patent/ITMI20012817A1/it unknown
-
2002
- 2002-12-27 US US10/331,177 patent/US6958949B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20030149831A1 (en) | 2003-08-07 |
US6958949B2 (en) | 2005-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922171B2 (en) | Error correction code circuits, semiconductor memory devices and memory systems | |
US5313425A (en) | Semiconductor memory device having an improved error correction capability | |
US12079076B2 (en) | Apparatuses, systems, and methods for error correction | |
JP6181257B2 (ja) | 誤り訂正符号の編成を含む装置および方法 | |
JP5045242B2 (ja) | 半導体メモリ、半導体メモリの動作方法およびシステム | |
KR940002864A (ko) | 멀티-이씨씨(ecc)회로를 내장하는 반도체 메모리 장치 | |
JP2009158018A (ja) | 不揮発性半導体記憶装置 | |
ITMI20012817A1 (it) | Struttura di decodifica per un dispositivo di memoria con codice di controllo | |
KR960008847A (ko) | 불휘발성 반도체기억장치의 셀특성 측정회로 | |
TWI689935B (zh) | 具糾錯電路的記憶體 | |
US10846168B1 (en) | Memory with error correction circuit | |
US20240070025A1 (en) | Apparatuses, systems, and methods for module level error correction | |
US11321177B2 (en) | Memory device and memory module including same | |
JP6862487B2 (ja) | エラー訂正回路を有するメモリ | |
KR102194914B1 (ko) | 에러 정정 회로를 가지는 메모리 | |
CN114944186A (zh) | 用于多泵错误校正的设备、系统和方法 | |
US7196962B2 (en) | Packet addressing programmable dual port memory devices and related methods | |
CN111913828B (zh) | 具纠错电路的存储器 | |
JP2008159168A (ja) | 半導体記憶装置 | |
KR910006998A (ko) | 반도체 기억 장치 | |
US11587637B1 (en) | Apparatuses, systems, and methods for error correction of selected bit pairs | |
KR20240127545A (ko) | 메모리 모듈 | |
US11887656B2 (en) | Memory for improving efficiency of error correction | |
US20240071550A1 (en) | Apparatuses, systems, and methods for module level error correction | |
KR960002818B1 (ko) | 반도체 기억 장치 |