ITTO20111010A1 - Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria - Google Patents

Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria Download PDF

Info

Publication number
ITTO20111010A1
ITTO20111010A1 IT001010A ITTO20111010A ITTO20111010A1 IT TO20111010 A1 ITTO20111010 A1 IT TO20111010A1 IT 001010 A IT001010 A IT 001010A IT TO20111010 A ITTO20111010 A IT TO20111010A IT TO20111010 A1 ITTO20111010 A1 IT TO20111010A1
Authority
IT
Italy
Prior art keywords
word
decoding
address
lines
memory cells
Prior art date
Application number
IT001010A
Other languages
English (en)
Inventor
Stefano Corbani
Rita Zappa
Original Assignee
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT001010A priority Critical patent/ITTO20111010A1/it
Priority to US13/669,189 priority patent/US9312028B2/en
Publication of ITTO20111010A1 publication Critical patent/ITTO20111010A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/024Detection or location of defective auxiliary circuits, e.g. defective refresh counters in decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

DESCRIZIONE
“METODO DI RILEVAZIONE DI GUASTI PERMANENTI DI UN DECODIFICATORE DI INDIRIZZO DI UN DISPOSITIVO ELETTRONICO DI MEMORIAâ€
La presente invenzione si riferisce ad un metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria.
Come à ̈ mostrato in Figura 1, un dispositivo elettronico di memoria 1 comprende da una matrice di memoria 2 formata da una pluralità di celle di memoria 3, le quali sono disposte in modo da definire un primo numero N di righe ed un secondo numero M di colonne. Inoltre, il dispositivo elettronico di memoria 1 include un decodificatore di riga 4, un circuito di polarizzazione 6, un decodificatore di colonna 8, un circuito di scrittura 9 ed un circuito di lettura 10, il quale include tipicamente un numero di amplificatori (non mostrati) pari al numero di colonne, questi ultimi essendo anche noti come amplificatori di lettura (“sense amplifier†).
Inoltre, il dispositivo elettronico di memoria 1 comprende un numero di primi cammini conduttivi WL pari al numero N di righe, questi primi cammini conduttivi essendo noti come linee di parola ed essendo connessi al decodificatore di riga 4. Considerata una riga di celle di memoria 3, la corrispondente linea di parola WL Ã ̈ collegata a ciascuna cella di memoria 3 della riga considerata.
In aggiunta, il dispositivo elettronico di memoria 1 include un numero M di collegamenti conduttivi (indicati genericamente con CC), i quali sono connessi tra il circuito di polarizzazione 6 ed il circuito di lettura 10. In figura 1, sono in particolare mostrati un primo un secondo, un terzo, un quarto, un quinto, un sesto, un settimo ed un ottavo collegamento conduttivo, indicati rispettivamente con CCA, CCB, CCc, CCD, CCE, CCF, CCG, e CCH.
In maggior dettaglio, nel caso in cui la matrice di memoria 2 definisca una memoria cosiddetta statica e ad accesso casuale (“static random-access memory†, SRAM), ciascun collegamento conduttivo CC include una prima ed una seconda linea di bit BLG, BLT (figura 2).
Più in particolare, il dispositivo elettronico di memoria 1 include, per ciascuna colonna di celle di memoria 3, una corrispondente prima linea di bit BLG ed una corrispondente seconda linea di bit BLT, le quali si estendono tra il circuito di polarizzazione 6 e l’amplificatore di lettura corrispondente alla colonna considerata; inoltre, tale amplificatore di lettura ha un terminale di uscita, il quale, insieme ai terminali di uscita degli altri amplificatori di lettura, definisce l’uscita del circuito di lettura 10. Inoltre, la prima e la seconda linea di bit BLG, BLT sono collegate a tutte le celle di memoria 3 della colonna considerata.
Come mostrato in maggior dettaglio in figura 2, relativa ancora al caso in cui le celle di memoria 3 sono di tipo SRAM, ciascuna cella di memoria 3 à ̈ formata da un primo ed un secondo transistore PUF, PUT, generalmente di tipo P-MOS e noti come primo e secondo transistore di carico, e da un terzo e da un quarto transistore PDF e PDT, generalmente di tipo N-MOS e noti come primo e secondo transistore di abbassamento (“pull-down transistor†). Inoltre, ciascuna cella di memoria 3 include un quinto ed un sesto transistore PGF, PGT, generalmente di tipo N-MNOS e noti come primo e secondo transistore di selezione.
In dettaglio, il terminale di controllo del primo transistore di carica PUF à ̈ connesso al terminale di controllo del primo transistore di pull-down PDF, così da definire un primo nodo T. Un primo terminale di conduzione del primo transistore di carico PUF à ̈ connesso ad un primo terminale di conduzione del primo transistore di pull-down PDF, così da definire un secondo nodo F. Un secondo terminale di conduzione del primo transistore di carico PUF à ̈ connesso ad un terzo nodo DD, il quale, in uso, à ̈ posto ad una tensione di alimentazione VDD; un secondo terminale di conduzione del primo transistore di pull-down PDF à ̈ connesso a massa.
Il terminale di controllo del secondo transistore di carico PUT ed il terminale di controllo del secondo transistore di pull-down PDT sono entrambi connessi al secondo nodo F. Un primo terminale di conduzione del secondo transistore di carico PUT ed un primo terminale di conduzione del secondo transistore di pull-down PDT sono entrambi connessi al primo nodo T. Inoltre, il secondo terminale di conduzione del secondo transistore di carico PUT Ã ̈ connesso al terzo nodo DD, mentre il secondo terminale di conduzione del secondo transistore di pulldown PDT Ã ̈ connesso a massa.
I terminali di controllo del primo e del secondo transistore di selezione PGF, PGT sono entrambi connessi alla linea di parola WL che corrisponde alla cella di memoria 3. Il primo ed il secondo terminale di conduzione del primo transistore di selezione PGF sono rispettivamente connessi al secondo nodo F ed alla prima linea di bit BLG della cella di memoria 3 considerata; il primo ed il secondo terminale di conduzione del secondo transistore di selezione PGT sono rispettivamente connessi al primo nodo T ed alla seconda linea di bit BLT della cella di memoria 3 considerata.
Come à ̈ noto, ciascuna cella di memoria 3 memorizza un valore logico (bit), il quale à ̈ pari a “1†o “0†. Ciascun valore logico memorizzato corrisponde ad una coppia di tensioni del primo e del secondo nodo T, F. Ad esempio, quando la cella di memoria 3 memorizza il valore logico “1†, la tensione sul primo nodo T à ̈ elevata (approssimativamente, pari alla tensione di alimentazione VDD), mentre la tensione sul secondo nodo F à ̈ bassa (approssimativamente, nulla); al contrario, quando la cella di memoria 3 memorizza il valore logico “0†, la tensione sul primo nodo T à ̈ bassa, mentre la tensione sul secondo nodo F à ̈ elevata. Le relazioni tra valori logici memorizzati e tensioni sul primo e sul secondo nodo T, F possono comunque essere invertite. Tuttavia, per semplicità, nel seguito si assume che il valore logico “1†corrisponda ad una tensione elevata sul primo nodo T ed a una bassa tensione sul secondo nodo F, salvo laddove specificato diversamente.
Ciò premesso, il dispositivo elettronico di memoria 1 comprende inoltre un circuito controllore 20, il quale à ̈ collegato al decodificatore di riga 4 ed al decodificatore di colonna 8, rispettivamente mediante un primo ed un secondo bus elettrico 22, 24. Inoltre, il circuito controllore 20 à ̈ collegato all’uscita del circuito di lettura 10, mediante un terzo bus elettrico 26, ed al circuito di scrittura 9.
Operativamente, il circuito controllore 20 à ̈ in grado di controllare il decodificatore di riga 4 inviando un corrispondente segnale elettrico di riga sul primo bus 22. Tale segnale elettrico di riga à ̈ di tipo digitale, dunque può essere rappresentato come una sequenza di valori logici, i quali formano il cosiddetto indirizzo di riga; ricevendo in ingresso tale segnale elettrico di riga, il decodificatore di riga 4 attiva una tra le linee di parola WL, la quale corrisponde appunto alla sequenza di valori logici rappresentata dal segnale elettrico di riga. In generale, l’attivazione di una linea di parola prevede che tale linea di parola sia portata ad una tensione elevata, prossima alla tensione di alimentazione VDD, le altre linee di parola restando ad una tensione bassa (nulla).
Similmente, il circuito di controllo 20 à ̈ in grado di controllare il decodificatore di colonna 8 inviando un corrispondente segnale elettrico di colonna sul secondo bus 24. Tale segnale elettrico di colonna à ̈ di tipo digitale, dunque può essere rappresentato come una sequenza di valori logici, i quali formano il cosiddetto indirizzo di colonna; ricevendo in ingresso tale segnale elettrico di colonna, il decodificatore di colonna 8 comanda il circuito di lettura 10 in maniera tale per cui esso seleziona un sottoinsieme di colonne della matrice di memoria 2, tale insieme corrispondendo all’indirizzo di colonna.
In maggior dettaglio, indicando con k il numero di bit su cui à ̈ definito l’indirizzo di colonna, e con n-k il numero di bit su cui à ̈ definito l’indirizzo di riga, si ha che N=2n-k e M=2m+k. Inoltre, il circuito di lettura 10 seleziona, sulla base dell’indirizzo di colonna, un numero 2m di colonne della matrice di memoria 2.
Ad esempio, con riferimento alla matrice di memoria 2 mostrata in figura 1, si ha N=4, M=8, n=3, k=1 ed m=2.
Inoltre, quando l’indirizzo di colonna à ̈ ad esempio pari a “0†, il circuito di lettura 10 seleziona, mediante opportuni circuiti di multiplazione contenuti al suo interno (non mostrati) e controllati dal decodificatore di colonna 8, il primo, il terzo, il quinto ed il settimo cammino conduttivo CCA, CCC, CCE, e CCG, cioà ̈ le corrispondenti colonne della matrice di memoria 2, e quindi le corrispondenti prime e seconde linee di bit. Analogamente, quando l’indirizzo di colonna à ̈ ad esempio pari a “1†, il circuito di lettura 10 seleziona, mediante i summenzionati circuiti di multiplazione, il secondo, il quarto, il sesto e l’ottavo cammino conduttivo CCB, CCD, CCF, e CCH, cioà ̈ le corrispondenti colonne della matrice di memoria 2, e quindi le corrispondenti prime e seconde linee di bit.
In pratica, dal momento che solo una linea di parola WL per volta può essere attiva, sull’uscita del circuito di lettura 10 à ̈ presente una parola, cioà ̈ un insieme di 2m bit (nella fattispecie, quattro bit), formata alternativamente:
- nel caso in cui l’indirizzo di colonna sia pari a “0†, dai valori logici memorizzati nelle celle di memoria della prima, della terza, della quinta e della settima colonna della matrice di memoria 2 che sono collegate alla linea di parola attiva; oppure,
- nel caso in cui l’indirizzo di colonna sia pari a “1†, dai valori logici memorizzati nelle celle di memoria della seconda, della quarta, della sesta e dell’ottava colonna della matrice di memoria 2 che sono collegate alla linea di parola attiva.
In altre parole, la matrice di memoria 2 corrisponde ad una matrice equivalente formata da 2n righe e da 2m colonne, la quale potrebbe essere indirizzata senza avvalersi di un decodificatore di colonna, dal momento che ciascuna riga conterrebbe esclusivamente i bit di una corrispondente parola. Rispetto a tale matrice equivalente, la matrice di memoria 2 presenta il vantaggio che, considerata una generica riga, celle di memoria adiacenti non appartengono ad una medesima parola, quindi non possono essere selezionate contemporaneamente dal circuito di lettura 10; pertanto, eventuali guasti che coinvolgono due celle di memoria contigue possono causare errori singoli nelle corrispondenti parole, ma non errori multipli.
Più in particolare, al fine di evitare di ricorrere a circuiti logici con un elevato numero di ingressi, la selezione delle righe e delle colonne della matrice di memoria 2 non avviene in un singolo passo. Infatti, assumendo ad esempio di riferirsi alla selezione delle righe, il decodificatore di riga 4 à ̈ tipicamente del tipo cosiddetto “da Nina Nout†, con Nine Noutrispettivamente pari, ad esempio, a due e a quattro, oppure a tre e a otto, come mostrato in figura 3, con particolare riferimento al caso “da due a quattro†.
In dettaglio, il decodificatore di riga 4 include un numero di ingressi pari a n-k, i quali sono collegati al circuito controllore 20 mediante il primo bus elettrico 22; a titolo puramente esemplificativo, in figura 3 sono mostrati un primo, un secondo, un terzo, un quarto, un quinto ed un sesto ingresso, indicati individualmente come A0-A5. Inoltre, il decodificatore di riga 4 comprende un numero di uscite pari a 2<n-k>.
In pratica, gli ingressi del decodificatore di riga 4 sono collegati al circuito controllore 20, il quale, ogni qual volta genera un indirizzo di riga, genera, su ciascun ingresso del decodificatore di riga 4, un corrispondente segnale di bit di riga, indicativo di un corrispondente bit dell’indirizzo di riga. Nel loro complesso, i segnali di bit di riga formano il segnale elettrico di riga. In generale, l’indirizzo di riga e l’indirizzo di colonna possono essere notificati al circuito controllore 20 da un’unità di elaborazione esterna (non mostrata).
Il decodificatore di riga 4 comprende inoltre un invertitore logico per ciascun ingresso; con riferimento alla figura 3, sono dunque presenti sei invertitori I0-I5, ciascuno dei quali à ̈ collegato ad un corrispondente ingresso tra il primo, il secondo, il terzo, il quarto, il quinto ed il sesto ingresso A0-A5; pertanto, le uscite degli invertitori logici I0-I5definiscono rispettivamente un primo, un secondo, un terzo, un quarto, un quinto ed un sesto ingresso negato A0,n-A5,n.
In maggior dettaglio, il decodificatore di riga 4 comprende inoltre una pluralità di gruppi di ingresso, ciascun gruppo di ingresso includendo quattro porte logiche di ingresso, queste ultime essendo porte logiche AND. In particolare, nell’esempio mostrato in figura 3, sono presenti tre gruppi di ingresso, indicati rispettivamente come Gin_1-Gin_3; inoltre, considerato l’i-esimo gruppo di ingresso Gin_i(con 1≤i≤3), la prima, la seconda, la terza e la quarta porta logica di ingresso di tale gruppo di ingresso sono indicate rispettivamente con Pin-i-0-Pin-i-3.
Considerato ancora l’i-esimo gruppo di ingresso Gin_i, si ha che:
- la prima porta logica Pin-i-0à ̈ collegata all’i-1-esimo ingresso negato Ai-1,ned all’i-esimo ingresso negato Ai,n;
- la seconda porta logica Pin-i-1à ̈ collegata all’i-1-esimo ingresso Ai-1ed all’i-esimo ingresso negato Ai,n;
- la terza porta logica Pin-i-2à ̈ collegata all’i-1-esimo ingresso negato Ai-1,ned all’i-esimo ingresso Ai; e - la quarta porta logica Pin-i-3à ̈ collegata all’i-1-esimo ingresso Ai-1ed all’i-esimo ingresso Ai.
Inoltre, considerato l’i-esimo gruppo di ingresso Gin_i, l’uscita della j-esima (con 0≤j≤3) porta logica di ingresso à ̈ collegata ad una linea intermedia dec-i-j, anche nota come linea di decodifica dec-i-j. Pertanto, ciascun gruppo di ingresso à ̈ collegato ad un corrispondente gruppo di linee intermedie dec-i-j.
Il decodificatore di riga 4 comprende inoltre una pluralità di gruppi di uscita, ciascun gruppo di uscita includendo quattro porte logiche di uscita, queste ultime essendo porte logiche AND. In particolare, nell’esempio mostrato in figura 3, sono presenti sedici gruppi di uscita, indicati rispettivamente come Gout_1-Gout_16(in figura 3 sono mostrati solo i gruppi di uscita Gout_1, Gout_2, Gout_15e Gout_16); inoltre, considerato l’h-esimo gruppo di uscita Gout_h(con 1≤h≤16), la prima, la seconda, la terza e la quarta porta logica di uscita di tale gruppo di uscita sono indicate rispettivamente con Pout-h-0-Pout-h-3.
In dettaglio, ciascuna porta logica di uscita ha un numero di ingressi pari al numero di gruppi di ingresso; nell’esempio mostrato in figura 3, ciascuna porta logica di uscita ha dunque un numero di ingressi pari a tre. Inoltre, considerata una generica porta logica di uscita del generico h-esimo gruppo di uscita, ed indicando con Num_Gin il numero totale di gruppi di ingresso, ciascun ingresso della porta logica di uscita à ̈ collegato ad una corrispondente linea intermedia. In particolare, ciascuno di tali ingressi à ̈ collegato ad una linea intermedia di un corrispondente gruppo di ingresso, in maniera tale per cui non possono esservi due ingressi della porta logica di uscita che si collegano a due linee intermedie uscenti da un medesimo gruppo di ingresso, cioà ̈ a due linee intermedie di un medesimo gruppo di linee intermedie.
Ancora più in particolare, dato un qualsiasi gruppo di ingresso appartenente ad un sottoinsieme S di gruppi di ingresso formato da tutti i gruppi di ingresso tranne uno (nell’esempio mostrato in figura 3, tranne il primo gruppo di ingresso Gin_1), ciascuna tra le porte logiche di uscita dell’h-esimo gruppo di uscita ha un proprio ingresso collegato ad una medesima linea intermedia uscente da tale qualsiasi gruppo di ingresso. Inoltre, relativamente al gruppo di ingresso non appartenente al sottoinsieme S di gruppi di ingresso, al quale ci si può anche riferire come al gruppo di indirizzamento locale, ciascuna tra le porte logiche di uscita dell’h-esimo gruppo di uscita ha un proprio ingresso collegato ad una corrispondente linea intermedia uscente dal gruppo di indirizzamento locale. In pratica, le porte logiche di uscita dell’h-esimo gruppo di uscita condividono un numero di ingressi pari a Num_Gin-1, mentre ciascuna di esse si collega al gruppo di indirizzamento locale grazie alla connessione di un proprio ingresso con una differente linea intermedia uscente dal gruppo di indirizzamento locale.
In pratica, i collegamenti tra le porte logiche di uscita ed il sottoinsieme S di gruppi di ingresso consentono di selezionare individualmente i gruppi di uscita, mentre i collegamenti tra le porte logiche di uscita ed il gruppo di indirizzamento locale consentono di discriminare, all’interno di un singolo gruppo di uscita, tra le porte logiche di uscita di tale gruppo di uscita.
Le uscite delle porte logiche di uscita sono collegate, ciascuna, ad una corrispondente linea di parola WL. Pertanto, per ogni n-k-upla di segnali di bit di riga generata dal circuito controllore 20, cioà ̈ per ogni indirizzo di riga, il decodificatore di riga 4 attiva, cioà ̈ pone ad un valore logico “1†, una sola uscita tra le uscite delle porte logiche di uscita, cioà ̈ una sola linea di parola.
Tutto ciò premesso, in generale, la rilevazione dei guasti all’interno dei dispositivi elettronici di memoria à ̈ demandata all’impiego dei cosiddetti codici di correzione di errore (“error correction code†, ECC). Più in particolare, i codici di correzione di errore assolvono la funzione garantire una certa tolleranza rispetto ad errori transitori.
In pratica, il circuito controllore 20, oltre a generare indirizzi di colonna e di riga, e ulteriori segnali elettrici atti a controllare le operazioni di lettura e di scrittura della matrice di memoria 2, dispone di un modulo ECC 30, il quale opera come mostrato in figura 4. Peraltro, il modulo ECC può anche essere esterno al dispositivo elettronico di memoria 1.
In dettaglio, il modulo ECC 30 genera (blocco 40) una parola di informazione, formata da un numero 2z di bit, con z<m. Successivamente, il modulo ECC 30 seleziona un indirizzo di riga ed un indirizzo di colonna (blocchi 42 e 44).
In seguito, il modulo ECC 30 genera (blocco 46) una parola di codice, sulla base della parola di informazione e di un indirizzo complessivo formato dagli indirizzi di riga e di colonna selezionati. In particolare, la parola di codice à ̈ formata da 2m bit ed à ̈ ottenuta mediante impiego di una codifica secondo un codice di correzione di errore, quale ad esempio un codice di Hamming (n+2m+c, n+2m,d) con c=bit di ridondanza e d=distanza di Hamming.
Il modulo ECC esegue (blocco 48) quindi un ciclo di scrittura, comandando il circuito di scrittura 9 ed i decodificatori di riga e di colonna 4, 8 in modo da scrivere la parola di codice nella matrice di memoria 2. In particolare, i 2m bit della parola di codice sono scritti in un sottoinsieme di celle di memoria 3 della riga indicata dall’indirizzo di riga selezionato, tale sottoinsieme essendo funzione dell’indirizzo di colonna selezionato. Per brevità, à ̈ comune riferirsi a tale operazione di scrittura come alla scrittura della parola di codice all’indirizzo complessivo. Ad esempio, con riferimento alla figura 1, in cui k=1 e n=3, l’indirizzo complessivo occupa n bit, di cui due (ad esempio, i due bit più significativi) indicano una delle quattro righe della matrice di memoria 2, mentre un bit (ad esempio, il bit meno significativo) discrimina tra colonne pari e colonne dispari della matrice di memoria 2; ad esempio, nel caso in cui quest’ultimo bit sia pari a “0†, sono selezionate la prima, la terza, la quinta e la settima colonna, mentre, nel caso in cui quest’ultimo bit sia pari a “1†, sono selezionate la seconda, la quarta, la sesta e l’ottava colonna.
In pratica, il contenuto informativo associato alla parola di codice à ̈ appunto la parola di informazione, la quale occupa un numero di bit inferiore rispetto al numero 2m di colonne della summenzionata matrice equivalente.
Successivamente, il modulo ECC 30 esegue (blocco 50) un ciclo di lettura all’indirizzo complessivo, cioà ̈ seleziona i 2m bit memorizzati in un sottoinsieme di celle di memoria della riga indicata dal summenzionato indirizzo di riga selezionato, tale sottoinsieme essendo funzione del summenzionato indirizzo di colonna selezionato. In tal modo, il modulo ECC 30 accede alle medesime celle di memoria cui ha avuto accesso durante la precedente fase di scrittura della parola di codice, e vi legge una parola memorizzata. In generale, tra le operazioni di cui al blocco 48 e le operazioni di cui al blocco 50, possono essere eseguite altre operazioni, quali ad esempio operazioni di scrittura e lettura ad indirizzi differenti dall’indirizzo complessivo.
In seguito, il modulo ECC 30 esegue (blocco 52) una decodifica della parola memorizzata, sulla base del codice di correzione di errore e dell’indirizzo complessivo. In tal modo, il modulo ECC 30 à ̈ in grado di rilevare e, in una certa misura, di correggere eventuali errori (cioà ̈, bit erronei) all’interno della parola memorizzata. In particolare, nel caso in cui il codice di correzione di errore sia del tipo cosiddetto correzione di errore singolo – rilevazione di errore doppio (“single error correction – double error detection†, SEC/DEC), il modulo ECC 30 à ̈ in grado di correggere un errore singolo presente nella parola memorizzata, nonché di rilevare, ma non correggere, un errore doppio presente nella parola memorizzata, nonché eventualmente alcuni errori di ordine superiore.
In generale, gli errori possono essere causati sia da guasti della matrice di memoria 2, ed in particolare nella porzione di matrice di memoria occupata dalla parola memorizzata, sia da guasti del decodificatore di riga 4 e/o nel decodificatore di colonna 8. Pertanto, gli errori possono generarsi durante la memorizzazione di bit all’interno di singole celle di memoria 3, oppure durante l’indirizzamento, cioà ̈ a causa di accessi non corretti.
In particolare, nel caso di guasti della matrice di memoria 2, essi possono essere temporanei, come ad esempio nel caso in cui si verifichi un’inversione (“flip†) temporanea del bit memorizzato in una cella di memoria 3. Ad esempio, dopo che la parola di codice à ̈ stata scritta nella matrice di memoria 2, tale inversione di bit può essere indotta da disturbi quali l’impatto con particelle alfa o neutroni; inoltre, tale inversione può essere rimossa mediante una successiva riscrittura.
I guasti della matrice di memoria 2 possono altresì essere permanenti, come ad esempio nel caso in cui una cella di memoria memorizzi un bit fisso, indipendentemente dai bit che il circuito controllore 20 prova a scrivere in tale cella di memoria. In tal caso, riferendosi a tale cella di memoria come alla cella guasta, l’errore si manifesta, dunque à ̈ rilevabile, solo nel caso in cui il bit della parola di codice da memorizzare nella cella guasta sia differente dal summenzionato bit fisso.
Indipendentemente dalla natura temporanea o permanente degli guasti della matrice di memoria 2, ciascuno di essi causa generalmente non più di un errore per parola memorizzata. In altre parole, con riferimento alla summenzionata parola memorizzata, un guasto della matrice di memoria 2 può causare il fatto che tale parola memorizzata si differenzi per non più di un bit rispetto alla parola di codice scritta all’indirizzo complessivo durante le operazioni di cui al blocco 48.
In particolare, la probabilità che ciascun guasto della matrice di memoria 2 causi più di un errore si riducono al crescere della multiplazione, cioà ̈ al crescere del valore di k; infatti, al crescere del valore di k, coppie di celle di memoria relative ad una medesima parola di codice si distanziano tra loro. A tal proposito, come precedentemente accennato, date due celle di memoria relative ad una medesima parola di codice e tra loro successive, tra esse risulta interposto un numero k di celle di memoria relative a parole di codice differenti.
Nel caso di guasti del decodificatore di riga 4 e/o del decodificatore di colonna 8, essi sono tipicamente di natura permanente, dal momento che sono causati, in genere, da accoppiamenti tra piste conduttive adiacenti, oppure da erronei collegamenti delle piste conduttive, quali ad esempio erronei collegamenti verso l’alimentazione o la massa. In tali casi, si verifica che, data un’operazione di scrittura di una data parola di codice ad un dato indirizzo (la data parola di codice essendo dunque funzione, oltre che di una corrispondente parola di informazione, del dato indirizzo), tale parola di codice viene scritta ad un indirizzo differente; pertanto, durante le operazioni di decodifica della parola memorizzata a tale indirizzo differente, il modulo ECC rileva la presenza di un errore. Infatti, in assenza di errori nella matrice di memoria, la parola memorizzata coincide con la data parola di codice, tuttavia essa à ̈ appunto memorizzata ad un indirizzo differente dal dato indirizzo.
Dal momento che ciascun guasto causa accessi incorretti alla matrice di memoria 2, ciascun guasto può causare un numero elevato di errori. Pertanto, con riferimento ancora alla parola di codice, nel caso di un guasto del decodificatore di riga 4 e/o nel decodificatore di colonna 8, à ̈ possibile che la parola memorizzata contenga errori multipli. Tali guasti possono dunque avere effetti molto gravi rispetto ai guasti della matrice di memoria 2.
Ciò premesso, nel caso in cui il modulo ECC 30, in seguito alle operazioni di cui al blocco 52, rilevi la presenza di almeno un errore nella parola memorizzata, esso genera (blocco 54) un segnale di errore, indicativo della presenza di almeno un errore e dell’eventuale correzione dell’errore da parte del modulo ECC 30 stesso.
In generale, come accennato in precedenza, l’implementazione di codici di controllo di errore consente di rilevare e, in alcuni casi, di correggere errori, siano essi dovuti a guasti della matrice di memoria 2, oppure a guasti del decodificatore di riga 4 e/o del decodificatore di colonna 8. Tuttavia, l’impiego dei codici di correzione di errore non consente di discriminare tra guasti della matrice di memoria 2 e guasti del decodificatore di riga 4 e/o del decodificatore di colonna, ed in particolare non consente di rilevare guasti permanenti di un decodificatore di indirizzo.
Scopo della presente invenzione à ̈ fornire un metodo di rilevazione di guasti che risolva almeno in parte gli inconvenienti dell’arte nota.
Secondo la presente invenzione sono forniti un metodo di rilevazione di guasti ed un dispositivo elettronico di memoria come definiti rispettivamente nelle rivendicazioni 1 e 10.
Per una migliore comprensione della presente invenzione vengono ora descritte forme di realizzazione, a puro titolo di esempio non limitativo, con riferimento ai disegni allegati, nei quali:
- la figura 1 mostra uno schema circuitale semplificato di un dispositivo elettronico di memoria tipo noto;
- la figura 2 mostra uno schema circuitale di una cella di memoria di tipo noto;
- la figura 3 mostra uno schema circuitale di un decodificatore di indirizzo di tipo noto;
- la figura 4 mostra un diagramma di flusso di operazioni svolte da un modulo di codice di controllo di errore;
- la figura 5 mostra uno schema circuitale semplificato di un dispositivo elettronico di memoria; e
- la figura 6 mostra un diagramma di flusso di operazioni secondo il presente metodo.
Il presente metodo viene ora descritto con riferimento, a titolo esemplificativo, al decodificatore di riga 4 mostrato in figura 3, sebbene esso possa trovare applicazione anche nel caso di decodificatori di colonna, nel qual caso le uscite delle porte logiche di uscita sono collegate, invece che a corrispondenti linee di parola, a corrispondenti multiplexer, in modo di per sé noto. A tal proposito si noti che, senza alcuna perdita di generalità, considerato l’i-esimo gruppo di ingresso Gin_i, il quale à ̈ collegato agli ingressi Ai-1e Ai, e definendo come indirizzo parziale il numero intero la cui rappresentazione binaria à ̈ fornita dalla coppia di valori logici presenti sugli ingressi Ai-1e Ai, linee intermedie dec-i-j attivate in presenza di indirizzi parziali che differiscono per una sola unità sono tra loro adiacenti.
Inoltre, il presente metodo viene descritto con riferimento al dispositivo elettronico di memoria 80 mostrato in figura 5, in cui componenti già mostrati in figura 1 sono indicati con i medesimi numeri di riferimento. In particolare, il dispositivo di elettronico di memoria 80 include un circuito controllore 82, il quale comprende un rispettivo modulo ECC 84 ed un circuito di controllo di lettura/scrittura 86, di per sé noto, elettricamente accoppiato al modulo ECC 84 ed atto a generare i segnali elettrici di riga e di colonna. Il circuito di controllo di lettura/scrittura 86 à ̈ inoltre collegato all’uscita del circuito di lettura 10, come peraltro anche il modulo ECC 84; quest’ultimo à ̈ atto ad eseguire le operazioni di cui ai blocchi 40-54.
Il circuito di controllo di lettura/scrittura 86 à ̈ inoltre collegato al circuito di scrittura 9, al fine di consentire la scrittura di parole di codice nella matrice di memoria 2. Operativamente, in modo di per sé noto, il circuito di controllo di lettura/scrittura 86 comanda sia il circuito di scrittura 9, sia il circuito di lettura 10, in modo da rendere il loro funzionamento sincrono con la generazione degli indirizzi di riga e di colonna da parte dello stesso circuito di controllo di lettura/scrittura 86.
In aggiunta, il dispositivo elettronico di memoria 80 include un modulo di test 90, ad esempio integrato nel circuito controllore 82 ed accoppiato elettricamente al modulo ECC 84, al circuito di controllo di lettura/scrittura 86 ed all’uscita del circuito di lettura 10. In generale, il modulo di test 90 può essere esterno al circuito controllore 82. Inoltre, il modulo di test 90 può anche essere esterno al dispositivo elettronico di memoria 80, nel qual caso esso può essere implementato, ad esempio, da un microprocessore o da un microcontrollore di un sistema ospite, il quale ospita il dispositivo elettronico di memoria 80.
In dettaglio, come mostrato in figura 6, il presente metodo prevede che il modulo ECC 84 rilevi (blocco 100) almeno un errore in una prima parola, memorizzata nella matrice di memoria 2 ad un primo indirizzo. La rilevazione dell’errore avviene sulla base del codice di correzione di errore e di tale primo indirizzo, come descritto relativamente alle operazioni di cui ai blocchi 40-54. Nel seguito, per brevità, il termine indirizzo sottintende, salvo laddove specificato diversamente, un indirizzo di tipo complessivo, cioà ̈ formato da un corrispondente indirizzo di riga (su n-k bit) e da un corrispondente indirizzo di colonna (su k bit), sebbene il presente metodo possa essere applicato anche nel caso in cui non vi sia multiplazione (cioà ̈, si abbia k=0), nel qual caso non à ̈ presente il decodificatore di colonna 8 ed il primo indirizzo à ̈ un indirizzo di riga.
Ad esempio, la summenzionata prima parola può essere stata memorizzata durante un precedente ciclo di scrittura, finalizzato a scrivere una corrispondente parola di codice, tale corrispondente parola di codice essendo uguale a tale prima parola solo in assenza di errori.
Successivamente, il modulo ECC 84 notifica (blocco 102) al modulo di test 90 la presenza di un errore, nonché il primo indirizzo.
Il modulo di test 90 comanda quindi il circuito di controllo di lettura/scrittura 86 in modo che esso comandi il circuito di scrittura 9 ed il circuito di lettura 10 in modo da:
- scrivere (blocco 103a) una prima parola preliminare al primo indirizzo, tale prima parola preliminare essendo scelta in modo arbitrario; e successivamente
- leggere (blocco 103b) una prima parola di confronto, memorizzata al primo indirizzo;
- scrivere (blocco 103c) al primo indirizzo una seconda parola preliminare, pari alla negazione logica della prima parola preliminare; e successivamente
- leggere (blocco 103d) una seconda parola di confronto, memorizzata ancora al primo indirizzo.
In seguito, il modulo di test 90 confronta (blocco 103e) la prima e la seconda parola preliminare con, rispettivamente, la prima e la seconda parola di confronto. Nel caso in cui una tra la prima e la seconda parola di confronto sia differente da, rispettivamente, la prima e la seconda parola preliminare (uscita NO del blocco 103e), significa che si à ̈ in presenza di un guasto permanente della matrice di memoria 2.
Viceversa, se la prima e la seconda parola preliminare sono rispettivamente uguali alla prima ed alla seconda parola di confronto (uscita SI del blocco 103e) significa che si à ̈ presenza di un guasto temporaneo della matrice di memoria, oppure di un guasto del decodificatore di riga 4. Il modulo di test 90 determina (blocco 104) quindi un insieme di indirizzi eccitazione, come descritto in seguito.
Successivamente, il modulo di test 90 comanda il circuito di controllo di lettura/scrittura 86 in modo che esso comandi il circuito di scrittura 9 e generi segnali elettrici di riga e di colonna in maniera tale da scrivere (blocco 106) una parola di test al primo indirizzo, tale parola di test essendo formata dallo stesso numero di bit della prima parola.
In seguito, il modulo di test 90 comanda il circuito di controllo di lettura/scrittura 86 in modo che esso comandi il circuito di scrittura 9 e generi segnali elettrici di riga e di colonna in maniera tale da scrivere (blocco 108) una medesima parola di eccitazione ad ognuno degli indirizzi di eccitazione.
Preferibilmente, la parola di eccitazione e la parola di test hanno la massima distanza di Hamming possibile, cioà ̈ sono l’una la negazione logica dell’altra. Ad esempio, la parola di test può essere formata da una successione alternata di “1†e “0†, la parola di eccitazione essendone la negazione logica.
In seguito, il modulo di test 90 comanda il circuito di controllo di lettura/scrittura 86 in modo che esso comandi il circuito di lettura 10 e generi segnali elettrici di riga e di colonna in maniera tale da leggere (blocco 110) una nuova parola, memorizzata al primo indirizzo. In tal modo, la nuova parola à ̈ fornita in uscita al circuito di lettura 10, e dunque à ̈ fornita allo stesso modulo di test 90.
Successivamente, il modulo di test 90 compara (blocco 112) la parola di test, scritta durante le operazioni di cui al blocco 106, con la nuova parola.
Nel caso in cui la nuova parola sia uguale alla parola di test (uscita SI del blocco 112), significa che si à ̈ trattato di un guasto temporaneo della matrice di memoria 2 o del decodificatore di riga 4, dal momento che l’errore, rilevato ad un primo istante di tempo in cui sono state effettuate le operazioni di cui al blocco 100, non si à ̈ ripresentato in un secondo istante di tempo, in cui sono state effettuate le operazioni di cui al blocco 110. Viceversa, nel caso in cui la nuova parola sia differente dalla parola di test (uscita NO del blocco 112), significa che si à ̈ in presenza di un guasto permanente del decodificatore di riga 4.
Più in dettaglio, secondo una prima forma di realizzazione, la fase 104 di determinare un insieme di indirizzi di eccitazione avviene come descritto in seguito.
In generale, avendo assunto che vi sia un numero Num_Gin di gruppi di ingresso, ciascuno dei quali à ̈ formato da porte logiche di ingresso aventi ciascuna un numero di Num_Pin di ingressi, e dunque avendo assunto che ciascun gruppo di ingresso sia collegato ad un numero Num_LI=2Num_Pin di linee intermedie, si ha che ciascuna uscita delle porte logiche di uscita (cioà ̈, ciascuna linea di parola WL) può essere identificata:
- da un corrispondente vettore esteso, formato da una successione di Num_Gin-uple di Num_Pin bit, il quale à ̈ dunque formato da Num_Gin*Num_Pin bit ed à ̈ pari all’indirizzo di riga della corrispondente linea di parola; oppure, equivalentemente
- da un corrispondente vettore compatto, formato da un numero Num_Gin di elementi, descritto qui di seguito.
In particolare, considerando una porta logica di uscita, il corrispondente vettore compatto identifica le Num_Gin linee intermedie cui sono collegati gli ingressi della porta logica di uscita considerata, tali Num_Gin linee intermedie appartenendo, come precedentemente accennato, a gruppi di ingresso differenti, quindi a gruppi di linee intermedie differenti. A tal proposito, nel seguito si adotta, per indicare un elemento del vettore compatto, una notazione dec-i-j, cioà ̈ una notazione uguale a quella usata per mostrare le linee intermedie.
Ad esempio, con riferimento alla figura 3, si ha che i tre ingressi della porta logica di uscita Pout-1-0sono rispettivamente collegati alle linee intermedie dec-1-0, dec-2-0 e dec-3-0, dunque la linea di parola WL collegata all’uscita della porta logica di uscita Pout-1-0può essere identificata dal vettore compatto [dec-1-0, dec-2-0, dec-3-0], oppure dal vettore esteso [0,0,0,0,0,0].
In pratica, ciascun vettore esteso/compatto à ̈ una rappresentazione di un corrispondente indirizzo di riga; più in particolare, data un linea di parola WL, i corrispondenti vettori esteso e compatto sono rappresentazioni dell’indirizzo di riga che corrisponde alla linea di parola WL data, cioà ̈ l’insieme dei bit che devono essere assunti dagli ingressi A0-A5per attivare la data linea di parola WL. In altre parole, vi à ̈ una corrispondenza biunivoca tra linee di parola, porte logiche di uscita e vettori estesi/compatti; vi à ̈ dunque corrispondenza biunivoca tra ciascuna linea di parola WL ed una corrispondete Num_Gin-upla di linee intermedie, le quali sono collegate agli ingressi della corrispondente porta logica di uscita e sono appunto definite dal vettore esteso/compatto.
Ciò premesso, secondo una prima forma di realizzazione, indicando con [dec-1-s1, dec-2-s2, …, dec-Num_Gin-sNum_Gin] il vettore compatto che corrisponde all’indirizzo di riga contenuto nel summenzionato primo indirizzo (con s1, s2, …, sNum_Gin compresi tra 0 e 2Num_Pin-1), gli indirizzi di eccitazione sono gli indirizzi complessivi formati:
- dall’indirizzo di colonna contenuto nel summenzionato primo indirizzo (se presente); e - dagli indirizzi di riga che corrispondono ai vettori compatti [*1, dec-2-s2, …, dec-Num_GinsNum_Gin], [dec-1-s1, *2, …, dec-Num_Gin-sNum_Gin], … [dec-1-s1, dec-2-s2, …, *Num_Gin], dove gli elementi *1,*2, …, *Num_Gin sono esprimibili genericamente con *l (con 1≤l≤Num_Gin) e sono tali per cui *l=dec-l-?, con ? pari ad un qualsiasi valore compreso tra 0 e 2Num_Pin-1, ma diverso da sl. In pratica, assumendo per semplicità che non vi sia multiplazione, cioà ̈ che non vi sia alcun indirizzo di colonna, e riferendosi al vettore compatto che corrisponde all’indirizzo di riga contenuto nel summenzionato primo indirizzo come al vettore compatto sotto indagine, gli indirizzi di eccitazione sono dati da Num_Gin indirizzi di riga, i cui vettori compatti differiscono dal vettore compatto sotto indagine per un solo elemento. In altre parole, gli indirizzi di eccitazione sono indirizzi di riga che attivano Num_Gin-uple di linee intermedie che differiscono, ciascuna, per una sola linea intermedia dalla Num_Gin-upla di linee intermedie attivata dal summenzionato primo indirizzo; più precisamente, ciascun indirizzo di eccitazione corrisponde ad un rispettivo gruppo di ingresso, e la propria Num_Gin-upla di linee intermedie differisce dalla Num_Gin-upla di linee intermedie attivata dal primo indirizzo solo per la linea intermedia che afferisce a tale rispettivo gruppo di ingresso.
A titolo esemplificativo, se il vettore compatto che corrisponde all’indirizzo di riga contenuto nel summenzionato primo indirizzo à ̈ [dec-1-3, dec-2-1, dec-3-1], gli indirizzi di eccitazione possono ad esempio corrispondere ai seguenti vettori compatti: [dec-1-2, dec-2-1, dec-3-1]; [dec-1-3, dec-2-0, dec-3-1] e [dec-1-3, dec-2-1, dec-3-0].
In tal modo si verifica che, nel caso in cui la linea intermedia dec-1-3 sia permanentemente bloccata al livello logico “1†, le operazioni di cui al blocco 108 comportano la scrittura della parola di eccitazione non solo agli indirizzi di riga che corrispondono ai vettori compatti [dec-1-2, dec-2-1, dec-3-1], [dec-1-3, dec-2-0, dec-3-1] e [dec-1-3, dec-2-1, dec-3-0], bensì anche agli indirizzi di riga che corrispondono ai vettori compatti [dec-1-3, dec-2-1, dec-3-1] (questo vettore corrispondendo all’indirizzo di riga contenuto nel summenzionato primo indirizzo), [dec-1-3, dec-2-0, dec-3-1] e [dec-1-3, dec-2-1, dec-3-0]. Pertanto, la parola di eccitazione viene scritta anche al primo indirizzo, sovrascrivendo la parola di test scritta in precedenza. Dal momento che la parola di eccitazione e la parola di test sono tra loro differenti, la differenza sarà rilevata durante le operazioni di cui al blocco 112, con conseguente rilevazione del guasto permanente.
Secondo una differente forma di realizzazione, gli indirizzi di eccitazione sono gli indirizzi complessivi formati:
- dall’indirizzo di colonna contenuto nel summenzionato primo indirizzo (se presente); e
- dagli indirizzi di riga che corrispondono a vettori compatti che differiscono dal vettore compatto sotto indagine per un solo elemento, tale elemento differente corrispondendo ad una linea intermedia, la quale appartiene al medesimo gruppo di ingresso cui appartiene la linea intermedia indicata dal corrispondente elemento del vettore sotto indagine, ed à ̈ adiacente a quest’ultima.
In altre parole, nell’ipotesi semplificativa di assenza di multiplazione, gli indirizzi di eccitazione sono gli indirizzi di riga che corrispondono a Num_Gin-uple di linee intermedie che differiscono, ciascuna, per una sola linea intermedia dalla Num_Gin-upla di linee intermedie che sono attivate dal summenzionato primo indirizzo; inoltre, ciascuno di tali indirizzi di riga à ̈ tale per cui, riferendosi alla linea differente per indicare la rispettiva linea intermedia che differisce dalla corrispondente linea intermedia della Num_Gin-upla di linee intermedie attivate dal primo indirizzo, tale linea differente à ̈ adiacente a tale corrispondente linea intermedia ed appartiene al medesimo gruppo di linee intermedie cui appartiene tale corrispondente linea intermedia.
Il numero di indirizzi di eccitazione à ̈ dunque al più pari a pari 2*Num_Gin, e si riduce nel caso in cui una o più delle linee intermedie del vettore sotto indagine siano linee intermedie di confine, cioà ̈ si trovano ai bordi dei rispettivi gruppi di linee intermedie, e dunque ciascuna di esse risulta adiacente ad una sola linea intermedia del medesimo gruppo di ingresso.
Si noti che, nel caso in cui, come nell’esempio mostrato in figura 3, linee intermedie che corrispondono ad indirizzi parziali che differiscono per una sola unità sono tra loro adiacenti, i summenzionati indirizzi di riga possono essere espressi, in termini di vettori compatti, come [**1, dec-2-s2, …, dec-Num_Gin-sNum_Gin], [dec-1-s1, **2, …, dec-Num_Gin-sNum_Gin], … [dec-1-s1, dec-2-s2, …, **Num_Gin], dove gli elementi **1,**2, …, **Num_Gin sono esprimibili genericamente con **l (con 1≤l≤Num_Gin) e sono tali per cui **l=dec-l-sl±1 (con **l limitato tra 0 e 2Num_Pin-1).
A titolo esemplificativo, se il vettore compatto sotto indagine à ̈ [dec-1-1, dec-2-1, dec-3-1], gli indirizzi di eccitazione possono ad esempio corrispondere ai seguenti vettori compatti: [dec-1-0, dec-2-1, dec-3-1], [dec-1-2, dec-2-1, dec-3-1], [dec-1-1, dec-2-0, dec-3-1], [dec-1-1, dec-2-2, dec-3-1], [dec-1-1, dec-2-1, dec-3-0] e [dec-1-1, dec-2-1, dec-3-2].
Sempre a titolo esemplificativo, in figura 3 le linee intermedie di confine sono:
- nel primo gruppo di ingresso Gin_1: decin-1-0e decin-1-
3;
- nel secondo gruppo di ingresso Gin_2: decin-2-0e decin-
2-3; e
- nel terzo gruppo di ingresso Gin_3: decin-3-0e decin-3-
3.
In pratica, anche in questo caso, la scrittura della parola di eccitazione agli indirizzi di eccitazione comporta, in caso di guasto permanente dovuto ad un accoppiamento spurio tra due linee intermedie adiacenti (ad esempio, le linee intermedie dec-1-2 e dec-1-3), la sovrascrittura della parola di test precedentemente scritta al primo indirizzo, con conseguente possibilità di rilevare il guasto permanente.
La seconda forma di realizzazione à ̈ dunque un’estensione della prima forma di realizzazione, la quale consente di rilevare anche guasti dovuti ad accoppiamenti indesiderati tra linee intermedie. In pratica, secondo la prima forma di realizzazione, gli indirizzi di eccitazione hanno una relazione di vicinanza logica con il primo indirizzo, mentre nella seconda forma di realizzazione gli indirizzi di eccitazione hanno una relazione di vicinanza fisica con il primo indirizzo.
I vantaggi che il presente metodo di rilevazione di guasti consente di ottenere emergono chiaramente dalla descrizione precedente. In particolare, esso consente di rilevare guasti permanenti nel decodificatore di riga 4 e/o nel decodificatore di colonna 8, anche nel caso in cui essi originino un singolo errore in una singola parola memorizzata nella matrice di memoria 2, tale errore potendo peraltro essere corretto, in modo di per sé noto, grazie all’implementazione del codice di correzione di errore. In pratica, la rilevazione à ̈ ottenuta scrivendo la parola di eccitazione agli indirizzi di eccitazione, i quali, nel loro complesso, rappresentano l’insieme minimo di indirizzi cui occorre scrivere la parola di eccitazione per essere certi di eccitare nuovamente il guasto.
Risulta infine evidente che al presente metodo di rilevazione di guasti, nonché al presente dispositivo elettronico di memoria 80, possono essere apportate modifiche e varianti, senza uscire dall’ambito della presente invenzione, definito dalle rivendicazioni allegate.
Ad esempio, invece che da porte logiche AND, i gruppi di ingresso e di uscita possono essere formati da porte logiche di tipo differente. Ad esempio, ciascuna porta logica AND può essere sostituita da un corrispondente insieme di porte logiche, quale ad esempio una porta logica NAND seguita da uno o più invertitori.
Come precedentemente accennato, Ã ̈ inoltre possibile che il modulo ECC 84 e/o il modulo di test 90 siano esterni al circuito controllore 82.
E’ altresì possibile che gli indirizzi di eccitazione includano ulteriori indirizzi rispetto agli indirizzi descritti.
Inoltre, il presente metodo può essere applicato anche nel caso di un decodificatore di indirizzo di tipo differente, purché provvisto di linee intermedie che definiscono una sorta di precodifica. E’ altresì possibile che le parole che vengono scritte nella matrice di memoria abbiano una dipendenza dai corrispondenti indirizzi differente da quella descritta.
Ancora, il presente metodo può presentare fasi addizionali rispetto a quelle descritte, quali ad esempio una fase di iterare, in seguito alle operazioni di cui al blocco 112, le operazioni di cui ai blocchi 106-112, ma utilizzando una parola differente dalla parola di test, ed una parola di eccitazione pari alla negazione logica di tale parola differente. In tal modo, à ̈ possibile rilevare guasti tali per cui una delle linee di parola WL à ̈ bloccata ad un livello logico basso, cosa che comporta il fatto che al corrispondente indirizzo sia memorizzata una parola pseudo-casuale. La scrittura della parola di test e della differente parola consente di rilevare la presenza di un guasto anche nel caso in cui tale parola pseudo-casuale sia pari alla parola di test.
Il presente metodo può altresì essere applicato ad altri tipi di dispositivi elettronici di memoria, non necessariamente di tipo SRAM.
Infine, il presente metodo può essere applicato anche nel caso in cui ci si riferisca, invece che ad una matrice di memoria, ad un blocco di memoria di una matrice di memoria, ovverosia ad una porzione di una matrice di memoria, le cui celle di memoria sono indirizzate mediante un rispettivo decodificatore di riga e (eventualmente) un rispettivo decodificatore di colonna.

Claims (13)

  1. RIVENDICAZIONI 1. Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo (4,8) di un dispositivo elettronico di memoria (80) includente un blocco di memoria (2) formato da una pluralità di celle di memoria (3) collegate a detto decodificatore di indirizzo mediante linee di indirizzamento (WL), detto metodo comprendendo le fasi di: - generare (40) una parola di informazione, formata da una pluralità di bit; - selezionare (42,44) un indirizzo di detto blocco di memoria, il quale identifica un insieme selezionato di celle di memoria; - generare (46) una parola di codice, in funzione della parola di informazione, dell’indirizzo selezionato e di un codice di correzione di errore; - scrivere (48) la parola di codice nell’insieme selezionato di celle di memoria; - leggere (50) una parola memorizzata nell’insieme selezionato di celle di memoria; e - rilevare (54) un errore all’interno di detta parola memorizzata; detto metodo comprendendo inoltre, in caso di rilevamento di un errore, le fasi di: - selezionare (104), sulla base dell’indirizzo selezionato, un sottoinsieme degli indirizzi del blocco di memoria differenti da detto indirizzo selezionato, detto sottoinsieme definendo un insieme di indirizzi di eccitazione; - scrivere (106) una parola di test nell’insieme selezionato di celle di memoria; e successivamente - per ciascuno di detti indirizzi di eccitazione, scrivere (108) una parola di eccitazione nell’insieme di celle di memoria identificato da detto indirizzo di eccitazione, detta parola di eccitazione essendo differente da detta parola di test; e successivamente - leggere (110) una nuova parola, memorizzata nell’insieme selezionato di celle di memoria; e - confrontare (112) detta nuova parola con detta parola di test.
  2. 2. Metodo di rilevazione secondo la rivendicazione 1, in cui detti indirizzi di eccitazione hanno una relazione di vicinanza con detto indirizzo selezionato.
  3. 3. Metodo di rilevazione secondo la rivendicazione 2, in cui detti indirizzi di eccitazione hanno una relazione di vicinanza logica con detto indirizzo selezionato.
  4. 4. Metodo di rilevazione secondo la rivendicazione 3, in cui detto decodificatore di indirizzo (4,8) include: - una pluralità di ingressi di decodifica (A0-A5) configurati per ricevere un indirizzo di detto blocco di memoria (2); - una pluralità di circuiti logici di ingresso (Gin_1-Gin_3), ciascuno dei quali à ̈ collegato in ingresso ad un corrispondente sottoinsieme di ingressi di decodifica, à ̈ collegato in uscita ad un corrispondente gruppo di linee di decodifica (dec-i-j) ed à ̈ configurato per attivare una tra le linee di decodifica del corrispondente gruppo di linee di decodifica; - una pluralità di circuiti logici di uscita (Pout-h-0-Pout-h- 3), ciascun circuito logico di uscita avendo una rispettiva uscita, collegata ad una corrispondente linea di indirizzamento (WL), ed un numero di ingressi di selezione pari al numero di gruppi di linee di decodifica, ciascuno di detti ingressi di selezione essendo collegato ad una sola linea di decodifica di un corrispondente gruppo di linee di decodifica; in cui detta fase di selezionare (104) un sottoinsieme degli indirizzi del blocco di memoria comprende: - per ciascuno di detti gruppi di linee di decodifica, scegliere un corrispondente indirizzo tale da attivare un corrispondente primo insieme di linee di decodifica, il quale differisce da un secondo insieme di linee di decodifica, attivate da detto indirizzo selezionato, per una sola linea di decodifica, la quale appartiene a detto gruppo di linee di decodifica.
  5. 5. Metodo di rilevazione secondo la rivendicazione 2, in cui detti indirizzi di eccitazione hanno una relazione di vicinanza fisica con detto indirizzo selezionato.
  6. 6. Metodo di rilevazione secondo la rivendicazione 5, in cui detto decodificatore di indirizzo (4,8) include: - una pluralità di ingressi di decodifica (A0-A5) configurati per ricevere un indirizzo di detto blocco di memoria (2); - una pluralità di circuiti logici di ingresso (Gin_1-Gin_3), ciascuno dei quali à ̈ collegato in ingresso ad un corrispondente sottoinsieme di ingressi di decodifica, à ̈ collegato in uscita ad un corrispondente gruppo di linee di decodifica (dec-i-j) ed à ̈ configurato per attivare una tra le linee di decodifica del corrispondente gruppo di linee di decodifica; - una pluralità di circuiti logici di uscita (Pout-h-0-Pout-h- 3), ciascun circuito logico di uscita avendo una rispettiva uscita, collegata ad una corrispondente linea di indirizzamento (WL), ed un numero di ingressi di selezione pari al numero di gruppi di linee di decodifica, ciascuno di detti ingressi di selezione essendo collegato ad una sola linea di decodifica di un corrispondente gruppo di linee di decodifica; in cui detta fase di selezionare (104) un insieme di indirizzi di eccitazione comprende scegliere ciascun indirizzo tale da attivare un corrispondente primo insieme di linee di decodifica, il quale differisce da un secondo insieme di linee di decodifica, attivate da detto indirizzo selezionato, per una singola linea di decodifica, la quale à ̈ adiacente alla linea di decodifica del secondo insieme di linee di decodifica che appartiene al medesimo gruppo cui appartiene detta singola linea di decodifica.
  7. 7. Metodo di rilevazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detta parola di test e detta parola di eccitazione sono l’una la negazione logica dell’altra.
  8. 8. Metodo di rilevazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detta parola di test à ̈ formata da una successione alternata di bit “1†e bit “0†.
  9. 9. Metodo di rilevazione secondo una qualsiasi delle rivendicazioni precedenti, comprendente inoltre, in caso di rilevamento di un errore, le fasi di: - scrivere (103a) una parola arbitraria nell’insieme selezionato di celle di memoria; - leggere (103b) una prima parola da confrontare, memorizzata nell’insieme selezionato di celle di memoria; - scrivere (103c) una parola pari alla negazione logica della parola arbitraria, nell’insieme selezionato di celle di memoria; - leggere (103d) una seconda parola da confrontare, memorizzata nell’insieme selezionato di celle di memoria; - confrontare (103e) la prima e la seconda parola da confrontare con, rispettivamente, detta parola arbitraria e la negazione logica della parola arbitraria, in modo da rilevare guasti permanenti di detto blocco di memoria (2).
  10. 10. Dispositivo elettronico di memoria (80) includente un decodificatore di indirizzo (4,8) ed un blocco di memoria (2) formato da una pluralità di celle di memoria (3) collegate a detto decodificatore di indirizzo mediante linee di indirizzamento (WL), detto dispositivo elettronico di memoria comprendendo inoltre: - un primo circuito generatore (84) configurato per generare una parola di informazione, formata da una pluralità di bit; - un primo selezionatore (84) configurato per selezionare un indirizzo di detto blocco di memoria, il quale identifica un insieme selezionato di celle di memoria; - un secondo circuito generatore (84) configurato per generare una parola di codice, in funzione della parola di informazione, dell’indirizzo selezionato e di un codice di correzione di errore; - un primo circuito di scrittura (9,84) configurato per scrivere la parola di codice nell’insieme selezionato di celle di memoria; - un primo circuito di lettura (10,84) configurato per leggere una parola memorizzata nell’insieme selezionato di celle di memoria; e - un circuito di rilevazione (84) configurato per rilevare un errore all’interno di detta parola memorizzata; detto dispositivo elettronico di memoria comprendendo inoltre: - un secondo selezionatore (90) configurato per selezionare, in caso di rilevamento di un errore e sulla base dell’indirizzo selezionato, un sottoinsieme degli indirizzi del blocco di memoria differenti da detto indirizzo selezionato, detto sottoinsieme definendo un insieme di indirizzi di eccitazione; - un secondo circuito di scrittura (9,90) configurato per scrivere una parola di test nell’insieme selezionato di celle di memoria; - un terzo circuito di scrittura (9,90) configurato per scrivere, per ciascuno di detti indirizzi di eccitazione, una parola di eccitazione nell’insieme di celle di memoria identificato da detto indirizzo di eccitazione, detta parola di eccitazione essendo differente da detta parola di test; - un secondo circuito di lettura (10,90) configurato per leggere una nuova parola, memorizzata nell’insieme selezionato di celle di memoria; e - un primo comparatore (90) configurato per confrontare detta nuova parola con detta parola di test.
  11. 11. Dispositivo elettronico di memoria secondo la rivendicazione 10, in cui detto decodificatore di indirizzo (4,8) include: - una pluralità di ingressi di decodifica (A0-A5) configurati per ricevere un indirizzo di detto blocco di memoria (2); - una pluralità di circuiti logici di ingresso (Gin_1-Gin_3), ciascuno dei quali à ̈ collegato in ingresso ad un corrispondente sottoinsieme di ingressi di decodifica, à ̈ collegato in uscita ad un corrispondente gruppo di linee di decodifica (dec-i-j) ed à ̈ configurato per attivare una tra le linee di decodifica del corrispondente gruppo di linee di decodifica; - una pluralità di circuiti logici di uscita (Pout-h-0-Pout-h- 3), ciascun circuito logico di uscita avendo una rispettiva uscita, collegata ad una corrispondente linea di indirizzamento (WL), ed un numero di ingressi di selezione pari al numero di gruppi di linee di decodifica, ciascuno di detti ingressi di selezione essendo collegato ad una sola linea di decodifica di un corrispondente gruppo di linee di decodifica; ed in cui detto secondo selezionatore (90) à ̈ inoltre configurato per scegliere, per ciascuno di detti gruppi di linee di decodifica, un corrispondente indirizzo tale da attivare un corrispondente primo insieme di linee di decodifica, il quale differisce da un secondo insieme di linee di decodifica, attivate da detto indirizzo selezionato, per una sola linea di decodifica, la quale appartiene a detto gruppo di linee di decodifica.
  12. 12. Dispositivo elettronico di memoria secondo la rivendicazione 10, in cui detto decodificatore di indirizzo (4,8) include: - una pluralità di ingressi di decodifica (A0-A5) configurati per ricevere un indirizzo di detto blocco di memoria (2); - una pluralità di circuiti logici di ingresso (Gin_1-Gin_3), ciascuno dei quali à ̈ collegato in ingresso ad un corrispondente sottoinsieme di ingressi di decodifica, à ̈ collegato in uscita ad un corrispondente gruppo di linee di decodifica (dec-i-j) ed à ̈ configurato per attivare una tra le linee di decodifica del corrispondente gruppo di linee di decodifica; - una pluralità di circuiti logici di uscita (Pout-h-0-Pout-h- 3), ciascun circuito logico di uscita avendo una rispettiva uscita, collegata ad una corrispondente linea di indirizzamento (WL), ed un numero di ingressi di selezione pari al numero di gruppi di linee di decodifica, ciascuno di detti ingressi di selezione essendo collegato ad una sola linea di decodifica di un corrispondente gruppo di linee di decodifica; ed in cui detto secondo selezionatore (90) à ̈ inoltre configurato per scegliere ciascun indirizzo tale da attivare un corrispondente primo insieme di linee di decodifica, il quale differisce da un secondo insieme di linee di decodifica, attivate da detto indirizzo selezionato, per una singola linea di decodifica, la quale à ̈ adiacente alla linea di decodifica del secondo insieme di linee di decodifica che appartiene al medesimo gruppo cui appartiene detta singola linea di decodifica.
  13. 13. Dispositivo elettronico di memoria secondo una qualsiasi delle rivendicazioni da 10 a 12, comprendente inoltre: - un quarto circuito di scrittura (9,90) configurato per scrivere una parola arbitraria nell’insieme selezionato di celle di memoria; - un terzo circuito di lettura (10,90) configurato per leggere una prima parola da confrontare, memorizzata nell’insieme selezionato di celle di memoria; - un quinto circuito di scrittura (9,90) configurato per scrivere una parola pari alla negazione logica della parola arbitraria, nell’insieme selezionato di celle di memoria; - un quarto circuito di lettura (10,90) configurato per leggere una seconda parola da confrontare, memorizzata nell’insieme selezionato di celle di memoria; e - un secondo comparatore (90) configurato per confrontare la prima e la seconda parola da confrontare con, rispettivamente, detta parola arbitraria e la negazione logica della parola arbitraria, in modo da rilevare guasti permanenti di detto blocco di memoria (2).
IT001010A 2011-11-03 2011-11-03 Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria ITTO20111010A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT001010A ITTO20111010A1 (it) 2011-11-03 2011-11-03 Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria
US13/669,189 US9312028B2 (en) 2011-11-03 2012-11-05 Method for detecting permanent faults of an address decoder of an electronic memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT001010A ITTO20111010A1 (it) 2011-11-03 2011-11-03 Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria

Publications (1)

Publication Number Publication Date
ITTO20111010A1 true ITTO20111010A1 (it) 2013-05-04

Family

ID=45491726

Family Applications (1)

Application Number Title Priority Date Filing Date
IT001010A ITTO20111010A1 (it) 2011-11-03 2011-11-03 Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria

Country Status (2)

Country Link
US (1) US9312028B2 (it)
IT (1) ITTO20111010A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102302595B1 (ko) 2017-05-08 2021-09-15 삼성전자주식회사 테스트 회로를 포함하는 이미지 센서
CN109712665B (zh) * 2018-02-27 2020-09-15 上海安路信息科技有限公司 存储器及存储器的功能测试方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0084460A2 (en) * 1982-01-19 1983-07-27 Tandem Computers Incorporated Improvements in and relating to computer memory control systems
US5768294A (en) * 1995-12-11 1998-06-16 International Business Machines Corporation Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US6457067B1 (en) * 1998-12-18 2002-09-24 Unisys Corporation System and method for detecting faults in storage device addressing logic

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163863A (en) * 1998-05-22 2000-12-19 Micron Technology, Inc. Method and circuit for compressing test data in a memory device
US6718494B1 (en) * 2000-12-22 2004-04-06 Intel Corporation Method and apparatus for preventing and recovering from TLB corruption by soft error
US6910155B2 (en) * 2001-06-25 2005-06-21 Hewlett-Packard Development Company, L.P. System and method for chip testing
JP2003281899A (ja) * 2002-03-22 2003-10-03 Sony Corp 半導体記憶装置とその試験方法
DE102005001520A1 (de) * 2005-01-13 2006-07-27 Infineon Technologies Ag Integrierte Speicherschaltung und Verfahren zum Reparieren eines Einzel-Bit-Fehlers
US8259521B2 (en) * 2008-05-28 2012-09-04 Macronix International Co., Ltd. Method and circuit for testing a multi-chip package

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0084460A2 (en) * 1982-01-19 1983-07-27 Tandem Computers Incorporated Improvements in and relating to computer memory control systems
US5768294A (en) * 1995-12-11 1998-06-16 International Business Machines Corporation Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US6457067B1 (en) * 1998-12-18 2002-09-24 Unisys Corporation System and method for detecting faults in storage device addressing logic

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FRANKLIN M ET AL: "Built-in self-testing of random-access memories", COMPUTER, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 23, no. 10, 1 October 1990 (1990-10-01), pages 45 - 56, XP011416353, ISSN: 0018-9162, DOI: 10.1109/2.58236 *
STEININGER A ET AL: "A transparent online memory test for simultaneous detection of functional faults and soft errors in memories", IEEE TRANSACTIONS ON RELIABILITY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 52, no. 4, 1 December 2003 (2003-12-01), pages 413 - 422, XP011105588, ISSN: 0018-9529, DOI: 10.1109/TR.2003.821927 *

Also Published As

Publication number Publication date
US9312028B2 (en) 2016-04-12
US20130114360A1 (en) 2013-05-09

Similar Documents

Publication Publication Date Title
US10403387B2 (en) Repair circuit used in a memory device for performing error correction code operation and redundancy repair operation
US6243307B1 (en) Semiconductor device including tester circuit suppressible of circuit scale increase and testing device of semiconductor device
US10120741B2 (en) Semiconductor memory device
US20060265636A1 (en) Optimized testing of on-chip error correction circuit
US20070255981A1 (en) Redundancy-function-equipped semiconductor memory device made from ECC memory
US20210055981A1 (en) Apparatuses and methods for fuse error detection
US8797808B2 (en) Semiconductor device and semiconductor memory device
US7221604B2 (en) Memory structure with repairing function and repairing method thereof
KR20170098538A (ko) 반도체 장치 및 그 구동 방법
US10665316B2 (en) Memory device
US10325669B2 (en) Error information storage circuit and semiconductor apparatus including the same
KR20060111856A (ko) 반도체 기억 장치
US7231582B2 (en) Method and system to encode and decode wide data words
US9847142B2 (en) Semiconductor apparatus and repair method thereof
US7509561B2 (en) Parity checking circuit for continuous checking of the parity of a memory cell
JP2006179057A (ja) 半導体メモリ
ITTO20111010A1 (it) Metodo di rilevazione di guasti permanenti di un decodificatore di indirizzo di un dispositivo elettronico di memoria
US7826285B2 (en) Memory column redundancy scheme
US11532375B2 (en) Latch circuit and memory device including the same
US9218262B2 (en) Dynamic memory cell replacement using column redundancy
WO2022083146A1 (zh) 修复电路和存储器
US7548473B2 (en) Apparatus and methods for determining memory device faults
CN110827878B (zh) 存储器装置
KR101051943B1 (ko) 반도체 메모리 장치
KR100345363B1 (ko) 어드레스 검출 테스트 모드 회로