IT201900019976A1 - Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico - Google Patents

Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico Download PDF

Info

Publication number
IT201900019976A1
IT201900019976A1 IT102019000019976A IT201900019976A IT201900019976A1 IT 201900019976 A1 IT201900019976 A1 IT 201900019976A1 IT 102019000019976 A IT102019000019976 A IT 102019000019976A IT 201900019976 A IT201900019976 A IT 201900019976A IT 201900019976 A1 IT201900019976 A1 IT 201900019976A1
Authority
IT
Italy
Prior art keywords
complementary
direct
memory cell
coupled
pgl
Prior art date
Application number
IT102019000019976A
Other languages
English (en)
Inventor
Fabio Enrico Carlo Disegni
Maurizio Francesco Perroni
Cesare Torti
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 IT102019000019976A priority Critical patent/IT201900019976A1/it
Priority to EP20202266.1A priority patent/EP3817001B1/en
Priority to US17/072,887 priority patent/US11355191B2/en
Priority to CN202011173740.7A priority patent/CN112750484A/zh
Publication of IT201900019976A1 publication Critical patent/IT201900019976A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0042Read using differential sensing, e.g. bit line [BL] and bit line bar [BLB]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0045Read using current through the cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0078Write using current through the cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0085Write a page or sector of information simultaneously, e.g. a complete row or word line
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0088Write with the simultaneous writing of a plurality of cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Description

DESCRIZIONE
del brevetto per invenzione industriale dal titolo:
“METODO DI PROGRAMMAZIONE DI UN DISPOSITIVO DI MEMORIA A CAMBIAMENTO DI FASE DI TIPO DIFFERENZIALE, DISPOSITIVO DI MEMORIA A CAMBIAMENTO DI FASE, E SISTEMA ELETTRONICO”
La presente invenzione è relativa ad un metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, ad un dispositivo di memoria a cambiamento di fase, ed ad un sistema elettronico includente il dispositivo di memoria a cambiamento di fase.
Sono note memorie non volatili a cambiamento di fase (cosiddette PCM, dall’inglese “Phase Change Memory”), in cui, per immagazzinare informazioni, si sfruttano le caratteristiche di materiali che hanno la proprietà di commutare fra fasi aventi caratteristiche elettriche diverse. Ad esempio, tali materiali possono commutare fra una fase amorfa, disordinata, ed una fase cristallina o policristallina, ordinata, e le due fasi sono associate a resistività di valore notevolmente differente, e conseguentemente ad un differente valore di un dato memorizzato. Ad esempio, gli elementi del VI gruppo della tavola periodica, quali Tellurio (Te), Selenio (Se), o Antimonio (Sb), chiamati calcogenuri o materiali calcogenici, sono utilizzabili vantaggiosamente per la realizzazione di celle di memoria a cambiamento di fase. I cambiamenti di fase vengono ottenuti aumentando localmente la temperatura delle celle di materiale calcogenico, attraverso elettrodi resistivi (generalmente noti come riscaldatori) disposti a contatto con rispettive regioni di materiale calcogenico. Dispositivi di selezione (ad esempio transistori MOSFET), sono collegati ai riscaldatori, ed abilitano il passaggio di una corrente elettrica di programmazione attraverso un rispettivo riscaldatore (impulsi di corrente noti come “SET” e “RESET”, aventi un rispettivo valore, a seconda del cambiamento di fase che si intende generare); tale corrente elettrica, per effetto Joule, genera le temperature necessarie per il cambiamento di fase. In lettura, lo stato del materiale calcogenico viene rilevato applicando una tensione sufficientemente bassa da non causare un sensibile riscaldamento, e quindi leggendo il valore della corrente che fluisce nella cella. Dato che la corrente è proporzionale alla conduttività del materiale calcogenico, è possibile determinare in quale stato si trovi il materiale, e quindi risalire al dato memorizzato nelle celle di memoria.
In modo noto, le memorie non volatili comprendono una matrice di celle di memoria organizzate in righe (linee di parola, o “wordline”) e colonne (linee di bit, o “bitline”); ciascuna cella di memoria è realizzata, nel caso delle memorie PCM, da un elemento di memorizzazione a cambiamento di fase e da un transistore selettore, collegati in serie. Un decodificatore di colonna ed un decodificatore di riga permettono di selezionare, sulla base di segnali logici di indirizzo ricevuti in ingresso e schemi di decodifica più o meno complessi, le celle di memoria, ed in particolare le relative word line e bit line, di volta in volta indirizzate.
Il decodificatore di colonna comprende una pluralità di interruttori analogici di selezione (realizzati da transistori), riceventi ai rispettivi terminali di controllo i segnali di indirizzo; gli interruttori di selezione sono organizzati secondo una struttura ad albero in livelli gerarchici, ed il loro numero in ogni livello gerarchico è legato all’organizzazione ed alla dimensione della matrice di memoria. Gli interruttori di selezione, quando abilitati, permettono di portare la bit line selezionata ad un valore definito di tensione e/o corrente, a seconda delle operazioni che si desidera implementare; in particolare, un percorso di corrente viene creato tra uno stadio di programmazione o uno stadio di lettura e la bit line selezionata. Tale percorso di corrente è definito dalla serie di un certo numero di interruttori di selezione.
In modo noto, amplificatori di lettura (“sense amplifier”) eseguono la lettura dei dati memorizzati nelle celle di memoria, confrontando la corrente (o una quantità elettrica ad essa correlata) che fluisce nella cella di memoria selezionata, anche detta “cella diretta”, con una corrente di riferimento che scorre in una cella complementare(lettura cosiddetta “double-ended”). Ovviamente, anche la fase di programmazione deve prevedere la scrittura del dato logico sia nella cella di memoria diretta che nella cella complementare. Ad esempio, il bit scritto nella cella complementare (es., “0” logico) è associato ad uno stato, o impulso, di RESET, mentre lo stesso bit (es., “0” logico) viene scritto nella cella diretta mediante un impulso di SET . Ogni operazione di scrittura di un bit, dunque, comprende sia la scrittura delle celle dirette che delle relative celle complementari, per abilitare la successiva fase di lettura. Questo tipo di memoria è nota come memoria differenziale.
Al fine di velocizzare le operazioni di programmazione (scrittura), è noto scrivere più bit in parallelo, programmando in parallelo celle di memoria in funzione della tipologia di impulso da inviare (RESET o SET) e per tipo di cella (diretta o complementare). Ad esempio, si accede alle celle dirette e si programmano contemporaneamente con il dato “0” le celle dirette che devono essere programmate a “0”; poi, mantenendo attivo l’accesso alle celle dirette, si programmano contemporaneamente con il dato “1” le celle dirette che devono essere programmate a “1”. Analogamente per le celle complementari.
Risulta evidente che questo tipo di approccio ha alcuni svantaggi.
Infatti, per la scrittura di una singola cella diretta, è necessario preselezionare il tipo di bit da scrivere (“1” o “0”) e quindi generare il corrispondente impulso di corrente (SET o RESET). Si passa quindi alla relativa cella complementare, generando il corrispondente impulso di corrente (RESET o SET). Quindi, si procede con la selezione della successiva cella diretta, preselezionando il tipo di bit da scrivere (“1” o “0”) e quindi generando il corrispondente impulso di corrente (SET o RESET). Si procede quindi della alla programmazione relativa cella complementare. Così via fino alla programmazione di tutte le celle di memoria che compongono la relativa parola da scrivere.
Gli impulsi per programmare le celle in stato di SET e rispettivamente RESET hanno forma diversa tra loro; quindi, per ogni cella diretta e relativa complementare da programmare il generatore di corrente deve essere (ri)configurato in modo da generare l’impulso corretto, con conseguente ritardo temporale e stress della relativa circuiteria.
Scopo della presente invenzione è fornire un metodo di programmazione di un dispositivo di memoria a cambiamento di fase, ed un dispositivo di memoria a cambiamento di fase, che consentano di risolvere, in tutto o in parte, i problemi associati ai dispositivo di memoria PCM di tipo noto sopra identificati, e che risulti ottimizzato per quanto riguarda le operazioni di programmazione delle celle di memoria dirette e complementari. Scopo della presente invenzione è altresì fornire un sistema elettronico includente il dispositivo di memoria a cambiamento di fase.
Secondo la presente invenzione vengono pertanto forniti un metodo di programmazione di una memoria a cambiamento di fase, un dispositivo di memoria a cambiamento di fase e un sistema elettronico includente il dispositivo di memoria a cambiamento di fase, come definiti nelle rivendicazioni allegate.
Per una migliore comprensione della presente invenzione, ne vengono ora descritte forme di realizzazione preferite, a puro titolo di esempio non limitativo e con riferimento ai disegni allegati, nei quali:
- le figure 1A-1C mostrano rispettive porzioni di una memoria a cambiamento di fase, limitatamente a porzioni di interesse per la comprensione della presente invenzione;
- la figura 2 illustra un diagramma temporale durante il quale avviene la scrittura di una parola logica nel dispositivo di memoria non volatile delle figure 1A-1C, secondo un aspetto della presente invenzione;
- le figure 3A-3C e 4A-4C illustrano un esempio di programmazione della memoria a cambiamento di fase secondo la presente invenzione; e
- la figura 5 è uno schema a blocchi semplificato di un sistema elettronico incorporante il dispositivo di memoria non volatile, in una forma di realizzazione della presente invenzione.
Nella figura 1A è mostrata schematicamente, ed indicata nel suo complesso con il numero di riferimento 1, una porzione di un dispositivo di memoria non volatile, in particolare di tipo a cambiamento di fase (PCM), limitatamente alle sole parti necessarie alla comprensione della presente invenzione.
In particolare, il dispositivo di memoria 1 comprende un i-esimo driver di programmazione 7 (PGL[i]; ovvero PGL[0] con i=0) avente una uscita 7a elettricamente accoppiata ad una pluralità di bitline principali (“main bitlines”) mediante rispettivi selettori 4a, 4b, 5a e 5b (qui, esemplificativamente, MOSFET di tipo p-MOS); in particolare il driver di programmazione 7 è collegato a:
una bitline principale MBLd<0>, a cui sono collegate prime celle di memoria dirette 3a, tramite il selettore 4a, una bitline principale MBLc<0>, a cui sono collegate prime celle di memoria complementari 3b (che memorizzano un dato complementare a quello scritto in rispettive celle 3a), tramite il selettore 4b,
una bitline principale MBLd<1>, a cui sono collegate seconde celle di memoria dirette 6a, tramite il selettore 5a, e
una bitline principale MBLc<1>, a cui sono collegate seconde celle di memoria complementari 6b (che memorizzano un dato complementare a quello scritto in rispettive celle 6a), tramite il selettore 5b.
Il driver di programmazione 7 forma uno stadio di programmazione del dispositivo di memoria 1.
Le bitline principali MBLd<0>, MBLc<0> afferiscono, per la lettura, ad uno stesso stadio di lettura, o sense amplifier, 26’(SA[0]), mentre le bitline principali MBLd<1>, MBLc<1> afferiscono, per la lettura, ad uno stesso stadio di lettura, o sense amplifier, 26” (SA[1]), tramite un blocco di decodifica 27 formato dai p-MOS YNd, YNc (di per sé non oggetto della presente invenzione). La figura 1A illustra solo qualitativamente il collegamento della decodifica di colonna 27 alle bitline principali MBL<>; l’implementazione effettiva (tipologia di connessioni, disposizione dei circuiti per la decodifica, ecc.) sono scelti in funzione del caso specifico e non sono qui rappresentati in dettaglio in quanto non oggetto della presente invenzione e non necessari per la comprensione della stessa.
In modo noto, ciascun sense amplifier 26’, 26” esegue la lettura dei dati memorizzati nelle celle di memoria 3a confrontando la corrente (o una quantità elettrica ad essa correlata) che fluisce in una cella di memoria 3a selezionata con la corrente di riferimento che scorre in una rispettiva cella complementare 3b selezionata (lettura cosiddetta “double-ended”).
Risulta evidente che, in generale e come illustrato in figura 1B, ad uno stesso sense amplifier SA<> possono afferire un numero di bitline principali MBL<> maggiore di quanto illustrato in figura 1A, ad esempio quattro bitline principali dirette MBLd<0-4> e quattro corrispondenti bitline principali complementari MBLc<0-4>.
Inoltre, si nota che ciascun driver di programmazione 7 è associato a, e configurato per programmare, bitline principali MBL<> afferenti ad una pluralità di sense amplifier SA[0-3].
Inoltre, si nota che, come illustrato in figura 1C, in una memoria PCM sono tipicamente presenti una pluralità di strutture del tipo illustrato in figura 1B, in cui una pluralità j di driver di programmazione PGL[0-j] è associato, e configurato per programmare, bitline principali MBL<> afferenti ad una rispettiva pluralità di sense amplifier SA[]. Il valore di j è pari a, o maggiore di, 1.
Con riferimento nuovamente alla figura 1A, il dispositivo di memoria 1 comprende inoltre una matrice di memoria 2, includente:
le prime celle di memoria dirette 3a, selezionabili mediante rispettive linee di parola (“wordline”) locali WL<0>, WL<1>, …, WL<255>, e linee di bit (“bitline”) locali BLd’<0>, …, BLd’<32>;
le prime celle di memoria complementari 3b, selezionabili mediante le linee di parola (“wordline”) locali WL<0>, WL<1>, …, WL<255>, e rispettive linee di bit (“bitline”) locali BLc’<0>, …, BLc’<32>;
le seconde celle di memoria dirette 6a, selezionabili mediante rispettive linee di parola (“wordline”) locali WL<0>, WL<1>, …, WL<255>, e linee di bit (“bitline”) locali BLd”<0>, …, BLd”<32>; e
le seconde celle di memoria complementari 6b, selezionabili mediante le linee di parola (“wordline”) locali WL<0>, WL<1>, …, WL<255>, e rispettive linee di bit (“bitline”) locali BLc”<0>, …, BLc”<32>.
In Figura 1A, le bitline locali afferenti alle celle dirette sono identificate con il pedice “d” (BLd<>), mentre le bitline afferenti alle celle complementari sono identificate con il pedice “c” (BLd<>).
In modo di per sé noto, le prime celle di memoria complementari 3b corrispondono, per numero e caratteristiche di fabbricazione, alle prime celle di memoria durette 3a. Analogamente per le celle di memoria dirette 6a e complementari 6b. In uso, le celle di memoria complementari 3b e 6b memorizzano un dato logico complementare a quello delle celle di memoria dirette 3a e, rispettivamente, 6a. Le prime celle di memoria complementari 3b vengono interrogate durante la lettura “double-ended” delle prime celle di memoria dirette 3a, per leggere il dato logico memorizzato nelle prime celle di memoria dirette 3a mediante confronto con il dato logico memorizzato in rispettive prime celle di memoria complementari 3b. Analogamente per la lettura delle seconde celle di memoria dirette 6a e complementari 6b.
Per maggior chiarezza della presente descrizione, le prime celle di memoria dirette 3a formano una prima porzione di memoria 2a’; le prime celle di memoria complementari 3b formano una seconda porzione di memoria 2b’; le seconde celle di memoria dirette 6a formano una terza porzione di memoria 2a”; e le seconde celle di memoria complementari 6b formano una quarta porzione di memoria 2b”. Pertanto, la prima e la seconda porzione di memoria 2a’, 2b’ memorizzano una informazione logica (bit) comune in forma diretta e complementare; e la terza e la quarta porzione di memoria 2a”, 2b” memorizzano una rispettiva informazione logica (bit) comune in forma diretta e complementare.
Le bitline locali BLd’<0> - BLd’<32> della prima porzione di memoria 2a’ sono collegate alla bitline principale MBLd<0>; le bitline locali BLc’<0> - BLc’<32> della seconda porzione di memoria 2b’ sono collegate alla bitline principale MBLc<0>; le bitline locali BLd”<0> - BLd”<32> della terza porzione di memoria 2a” sono collegate alla bitline principale MBLd<1>; e le bitline locali BLc”<0> - BLc”<32> della quarta porzione di memoria 2b” sono collegate alla bitline principale MBLc<1>.
Le celle di memoria 3a, 3b, 6a, 6b sono tra loro identiche e comprendono un elemento a cambiamento di fase ed un elemento selettore, ad esso operativamente accoppiato (non illustrati in dettaglio). L’elemento a cambiamento di fase include un materiale a cambiamento di fase (ad esempio un calcogenuro), ed è quindi in grado di immagazzinare dati sotto forma di livelli di resistenza associati alle differenti fasi assunte dal materiale a cambiamento di fase (opera dunque come un resistore con resistenza variabile). L’elemento selettore, è ad esempio un transistore MOS avente terminale di porta (gate) collegato alla rispettiva wordline WL<>, un primo terminale di conduzione collegato all’elemento a cambiamento di fase, ed un secondo terminale di conduzione collegato ad un potenziale di riferimento (ad esempio a massa). L’elemento selettore è controllabile in modo da consentire, quando selezionato (ovvero, acceso mediante il segnale della rispettiva wordline locale WL<> a cui è accoppiato), il passaggio di una corrente di scrittura/lettura attraverso l’elemento a cambiamento di fase durante la rispettiva operazione di scrittura/lettura di un dato logico in tale elemento a cambiamento di fase.
Il dispositivo di memoria non volatile 1 comprende inoltre un decodificatore di riga (qui non illustrato in dettaglio), atto a selezionare la wordline locale WL<> corrispondente alla cella di memoria 3a, 3b, 6a, 6b di volta in volta da indirizzare, ed un decodificatore di colonna (qui non illustrato), atto a selezionare la bit line della cella di memoria 3a, 3b, 6a, 6b da indirizzare. Data la struttura matriciale, l’attivazione di una wordline locale WL<> e di una bitline locale BLd,c<> consente di selezionare univocamente una ed una sola cella di memoria 3a, 3b, 6a, 6b.
In scrittura, i selettori 4a, 4b, 5a, 5b vengono controllati in conduzione e interdizione in funzione della necessità di accedere alla rispettiva bitline principale MBLd,c<> per la programmazione delle celle di memoria 3a, 3b, 6a, 6b ad esse collegate.
Il driver di programmazione 7 è realizzato in modo di per sé noto, ad esempio mediante uno specchio di corrente, e riceve in ingresso un segnale in corrente PGIN[i] che rappresenta il dato logico da scrivere (“1” o “0”).
I selettori 4a e 4b, e 5a e 5b ricevono ai rispettivi terminali di controllo segnali di controllo YMP<0>, YMP<1>; ulteriori interruttori di selezione 8a’, 8b’, 8a”, 8b” (di tipo p-MOS) sono previsti, in modo di per sé noto, per selezionare/deselezionare le bitline BLd,c<> delle porzioni di memoria 2a’, 2b’, 2a”, 2b”.
In generale, gli interruttori di selezione sono organizzati secondo una struttura ad albero in livelli gerarchici, ed il loro numero in ogni livello gerarchico è legato all’organizzazione ed alla dimensione della matrice di memoria. I selettori 4a, 4b, 5a, 5b, così come gli interruttori di selezione 8a’, 8b’, 8a”, 8b”, quando abilitati, permettono di portare la bitline selezionata ad un valore definito di tensione e/o corrente, a seconda delle operazioni che si desidera implementare; in particolare, un percorso di corrente viene creato tra lo stadio di programmazione e la bitline selezionata.
La presente invenzione prevede che la programmazione delle celle di memoria 3a, 3b, 6a, 6b avvenga secondo lo schema illustrato in figura 2.
La programmazione delle celle di memoria avviene per “parole” di bit, ovvero selezionando e scrivendo celle di memoria appartenenti una stessa wordline WL<0>, WL<1>, ecc. Quanto descritto qui di seguito si applica pertanto alla scrittura di una parola in una rispettiva wordline, ad esempio nella wordline WL<0>.
Come illustrato in figura 1B e in figura 1C, a ciascun driver di programmazione PGL[0-j] sono associati quattro gruppi di otto bitline principali (di cui quattro dirette e quattro complementari). Ciascun gruppo di otto bitline principali afferisce ad un rispettivo sense amplifier SA[].
La programmazione di una cella di memoria da parte del driver di programmazione PGL[0] avviene selezionando univocamente l’indirizzo di tale cella di memoria, ovvero attivando uno solo tra i segnali YMP<0>-YMP<3> per selezionare la relativa bitline principale, e selezionando la cella di memoria da programmare con la decodifica di riga e colonna. La programmazione di una cella di memoria da parte del driver di programmazione PGL[1] avviene in modo analogo, e così via per tutti i driver di programmazione PGL[j].
Con riferimento alla figura 2, in un intervallo temporale T1, viene generato un impulso di RESET, ovvero un impulso elettrico atto a programmare le celle di memoria indirizzate in stato logico “0”.
A tal fine, nell’intervallo temporale T1, vengono attivati tutti e soli i selettori 4a, 4b, 5a, 5b che sono accoppiati a bitline principali MBLd<0>, MBLc<0>, MBLd<1> e MBLc<1> attraverso cui far passare il segnale di RESET.
La scrittura dei dati logici avviene per parole, ovvero scrivendo una stessa wordline. Questo significa che, se si sta scrivendo la wordline WL<0>, si programmeranno tutte esole le celle di memoria 3a, 3b, 6a, 6b disposte lungo la wordline WL<0>, indipendentemente dal driver di programmazione PGL[i]; le restanti wordline WL<1>-WL<255> non sono selezionate. Ad esempio, con riferimento alla figura 1A, se si desidera scrivere il dato logico di RESET nella cella 3a indirizzata dalla coppia (riga, colonna)=(WL<0>, BLd<32>), verrà acceso il selettore 4a (agendo sul segnale YMP<0>), mentre verranno spenti i selettori 4b, 5a e 5b. Contemporaneamente, la relativa cella di memoria 3a verrà indirizzata agendo sui segnali WL<0>, BLd<32>, in modo di per sé noto e dipendente dalla decodifica di colonna (che non è oggetto della presente invenzione). Il dato logico da scrivere è rappresentato dal segnale PGIN[i] che viene fornito al driver 7.
Le figure 3A-3C e 4A-4C illustrano un esempio di programmazione della memoria PCM secondo la presente invenzione.
Secondo un aspetto della presente invenzione, l’accensione dei selettori 4a e 5a, così come lo spegnimento dei selettori 4b e 5b, sono controllati da rispettivi segnali generati in uscita da una rispettiva porta logica NAND.
È quindi presente una porta logica NAND per ciascuna bitline principale MBLd,c<>; l’uscita di ciascuna porta logica NAND è accoppiata al terminale di controllo di un rispettivo selettore 4a, 4b, 5a, 5b, per accendere/spegnere il relativo selettore in modo da accoppiare/disaccoppiare la rispettiva bitline principale MBLd,c<> al/dal driver di programmazione 7.
Con riferimento esemplificativo alla figura 1A, sono quindi presenti quattro porte logiche NAND N1-N4, ciascuna atta a generare in uscita un rispettivo segnale tra i segnali YMPD<0> (applicato ai selettori 4a e 5a accoppiati alle bitline principali dirette MBLd<0-1>) e YMPC<0> (applicato ai selettori 4b e 5b accoppiati alle bitline principali complementari MBLc<0-1>).
Le porte logica NAND N1 e N3, accoppiate ai selettori delle bitline principali dirette MBLd<0-1>, ricevono in ingresso un primo segnale di controllo DIN[0] e un secondo segnale di controllo Y[0].Le porte logica NAND N2 e N4, accoppiate ai selettori delle bitline principali complementari MBLc<0-1>, ricevono in ingresso il valore logico negato /DIN[0] del primo segnale di controllo DIN[0] e il secondo segnale di controllo Y[0].
In modo non illustrato in figura, ma di per sé evidente al tecnico del ramo, l’uscita di ciascuna porta NAND N1-N4 può essere fornita in ingresso ad un buffer atto a regolare l’ampiezza del segnale fornito al rispettivo selettore 4a, 4b, 5a, 5b, per controllare quest’ultimo in accensione/spegnimento. L’uscita del buffer è pertanto il segnale YMPD,C<0>.
Il primo segnale di controllo DIN[0] viene alzato a “1” (DIN[0]=”1”, /DIN[0]=”0”) se il dato da scrivere PGIN[0] deve essere scritto nella porzione di memoria diretta (porzione 2a’ o 2a”); viceversa, il primo segnale di controllo DIN[0] viene portato a “0” e quindi il suo negato /DIN[0] a “1” (DIN[0]=”0”, /DIN[0]=”1”) se il dato da scrivere PGIN[0] deve essere scritto nella porzione di memoria complementare (porzione 2b’ o 2b”). Il segnale di controllo DIN[0] è comune a tutti i selettori 4a, 5a accoppiati alle bitline principali dirette MBLd<0-1> relative ad uno stesso driver di programmazione (qui, PGL[0]). Il segnale di controllo /DIN[0] è comune a tutti i selettori 4b, 5b accoppiati alle bitline principali complementari MBLc<0-1> relative ad uno stesso driver di programmazione (qui, PGL[0]).
Il secondo segnale di controllo Y[0] identifica il gruppo di bitline principali che devono essere accoppiate al driver di programmazione PGL[0]. Le bitline principali afferenti ad uno stesso sense amplifier SA[] formano detto gruppo di bitline principali. Questo aspetto si può meglio osservare con riferimento alla figura 1B.
In altre parole, con riferimento ad esempio alla figura 1B:
- le bitline principali MBLd,c<> afferenti al sense amplifier SA[0] formano un primo gruppo 30 di bitline principali, che vengono accoppiate elettricamente al driver di programmazione PGL[0] accendendo i selettori 4a, 4b, 5a, 5b quando l’uscita YMPD,C<0> dalla relativa porta logica NAND è “0” (si ricorda, infatti, che i selettori 4a, 4b, 5a, 5b sono p-MOS). L’uscita “0” dalla rispettiva porta logica NAND si ha quando DIN[0]=”1” per le bitline principali dirette o quando /DIN[0]=”1” per le complementari e, contemporaneamente, quando Y[0]=”1”;
- le bitline principali MBLd,c<> afferenti al sense amplifier SA[1] formano un secondo gruppo 32 di bitline principali, che vengono accoppiate elettricamente al driver di programmazione PGL[0] accendendo i selettori 4a, 4b, 5a, 5b quando l’uscita YMPD,C<1> dalla relativa porta logica NAND è “0”. L’uscita “0” dalla rispettiva porta logica NAND si ha quando DIN[0]=”1” per le bitline principali dirette o quando /DIN[0]=”1” per le complementari e, contemporaneamente, quando Y[1]=”1”;
- le bitline principali MBLd,c<> afferenti al sense amplifier SA[2] formano un terzo gruppo 34 di bitline principali, che vengono accoppiate elettricamente al driver di programmazione PGL[0] accendendo i selettori 4a, 4b, 5a, 5b quando l’uscita YMPD,C<2> dalla relativa porta logica NAND è “0”. L’uscita “0” dalla rispettiva porta logica NAND si ha quando DIN[0]=”1” per le bitline principali dirette o quando /DIN[0]=”1” per le complementari e, contemporaneamente, quando Y[2]=”1”; e
- le bitline principali MBLd,c<> afferenti al sense amplifier SA[3] formano un quarto gruppo 36 di bitline principali, che vengono accoppiate elettricamente al driver di programmazione PGL[0] accendendo i selettori 4a, 4b, 5a, 5b quando l’uscita YMPD,C<3> dalla relativa porta logica NAND è “0”. L’uscita “0” dalla rispettiva porta logica NAND si ha quando DIN[0]=”1” per le bitline principali dirette o quando /DIN[0]=”1” per le complementari e, contemporaneamente, quando Y[3]=”1”.
Il segnale YMPD<0> in uscita della rispettiva porta logica NAND è dato da NOT(DIN[0] AND Y[0])=NOT(“1” AND “1”)=”0”. Il segnale YMPC<0> in uscita della rispettiva porta logica NAND è dato da NOT(/DIN[0] AND Y[0])=NOT(“0” AND “1”)=”1”.
Quanto descritto con riferimento alle figure 3A-3C e 4A-4C si applica alla scrittura di una parola in una rispettiva wordline (ad esempio nella wordline WL<0>), programmando a SET o RESET una cella di memoria diretta 3a, o complementare 3b, appartenente a tale wordline. La programmazione avviene per mezzo dei driver di programmazione PGL[0-j], che ricevono in ingresso l’impulso di SET/RESET e lo trasferiscono alle bitline principali MBLd,c<0, 1, …> ad essi accoppiate. Risulta evidente che l’impulso di programmazione SET/RESET può essere trasferito alle bitline principali MBLd,c<0, 1, …> solo quando queste ultime sono elettricamente accoppiate o collegate al rispettivo driver di programmazione PGL[0-j], cioè quando il relativo selettore 4a, 4b, 5a, 5b è acceso (in conduzione). Inoltre, risulta evidente che il percorso elettrico attraverso cui l’impulso di programmazione SET/RESET si propaga, fino ad arrivare alla cella di memoria da programmare, si instaura quando la cella di memoria da programmare viene opportunamente indirizzata mediante la decodifica di colonna (in modo di per sé noto, ovvero selezionando una bitline locale BL<> e una wordline WL<> corrispondenti a tale cella di memoria).
La figura 3A illustra operazioni di programmazione di una cella di memoria diretta 3a nell’intervallo T1 di figura 2, mediante il driver di programmazione PGL[0]. La cella di memoria 3a da programmare è accoppiata alla bitline principale MBLd<0> e quest’ultima appartiene al gruppo di bitline 30, afferente al sense amplifier SA[0].
Dunque, con riferimento alla figura 3A, per scrivere il dato PGIN[0]=RESET nella cella di memoria 3a, i primi segnali di controllo sono DIN[0]=”1”, /DIN[0]=”0”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”. Il segnale di controllo DIN[1]=”1” identifica il fatto che deve essere programmata una cella diretta. Il segnale di controllo sono Y[0]=”1” identifica il fatto che tale cella da programmare è accoppiata ad una bitline principale afferente al sense amplifier SA[0].
In questo modo, solo le bitline principali dirette MBLd<0, 1, …> appartenenti al gruppo 30 vengono elettricamente collegate al driver di programmazione PGL[0] in quanto i relativi selettori 4a, 5a sono accesi, mentre tutte le restanti bitline principali complementari MBLc<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[0], in quanto i relativi selettori 4b, 5b sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3a da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> collegate a tale cella di memoria 3a).
Il segnale di programmazione PGIN[0]=RESET può quindi fluire attraverso la sola bitline principale MBLd<0> e, tramite la bitline locale, raggiungere la cella di memoria 3a indirizzata, programmandola.
La figura 3B illustra operazioni di programmazione a RESET di una cella di memoria complementare 3b nell’intervallo T1 di figura 2, mediante il driver di programmazione PGL[1] (dunque ulteriore e distinto rispetto al driver di programmazione PGL[0]). La programmazione della cella di memoria 3b avviene quindi contestualmente alla programmazione della cella di memoria 3a di figura 3A, sfruttando il fatto che entrambe le celle di memoria devono essere programmate a RESET. La cella di memoria 3b qui considerata è accoppiata alla bitline principale MBLc<0> appartenente al gruppo di bitline 30’, che afferisce al sense amplifier SA[4].
Con riferimento alla figura 3B, per scrivere il dato PGIN[1]=RESET nella cella di memoria 3b, i primi segnali di controllo sono DIN[1]=”0”, /DIN[1]=”1”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”. Il segnale di controllo /DIN[1]=”1” identifica il fatto che deve essere programmata una cella complementare. Il segnale di controllo sono Y[0]=”1” identifica il fatto che tale cella da programmare è accoppiata ad una bitline principale afferente al sense amplifier SA[4].
In questo modo, solo le bitline principali complementari MBLc<0, 1, …> appartenenti al gruppo 30’ vengono elettricamente collegate al driver di programmazione PGL[1], in quanto i relativi selettori 4b, 5b sono accesi, mentre tutte le restanti bitline principali dirette MBLd<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[1], in quanto i relativi selettori 4a, 5a sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3b da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> relative a tale cella di memoria).
Il segnale di programmazione PGIN[1]=RESET può quindi fluire attraverso la bitline principale MBLc<0> a cui la cella di memoria da programmare è accoppiata, e attraverso la bitline locale BL<> a cui la cella di memoria 3b da programmare è accoppiata, raggiungendo e programmando tale cella di memoria 3b.
La figura 3C illustra operazioni di programmazione di una cella di memoria diretta 3a nell’intervallo T1 di figura 2, mediante il driver di programmazione PGL[j] (dunque ulteriore e distinto rispetto ai driver di programmazione PGL[0] e PGL[1]). La programmazione di questa cella di memoria 3a avviene quindi contestualmente alla programmazione delle celle di memoria 3a e 3b delle figure 3A e 3B, sfruttando il fatto che tutte queste celle di memoria devono essere programmate a RESET. La cella di memoria 3a qui considerata è accoppiata alla bitline principale MBLc<0> appartenente al gruppo di bitline 30”, che afferisce al sense amplifier SA[4j].
Con riferimento alla figura 3C, per scrivere il dato PGIN[j]=RESET nella cella di memoria 3a, i primi segnali di controllo sono DIN[j]=”1”, /DIN[j]=”0”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”. Il segnale di controllo DIN[j]=”1” identifica il fatto che deve essere programmata una cella diretta. Il segnale di controllo sono Y[]=”1” identifica il fatto che tale cella da programmare è accoppiata ad una bitline principale afferente al sense amplifier SA[4j].
In questo modo, solo le bitline principali dirette MBLd<0, 1, …> appartenenti al gruppo 30” vengono elettricamente collegate al driver di programmazione PGL[j] in quanto i relativi selettori 4a, 5a sono accesi, mentre tutte le restanti bitline principali complementari MBLc<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[j] in quanto i relativi selettori 4b, 5b sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3a da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> relative a tale cella di memoria).
Il segnale di programmazione PGIN[j]=RESET può quindi fluire attraverso le bitline principale e locale a cui la cella di memoria 3a indirizzata è collegata, raggiungendo e programmando tale cella di memoria 3a indirizzata.
In conclusione, durante l’intervallo T1, il segnale di programmazione RESET è fornito contemporaneamente da ciascun driver di programmazione PGL[0-j] a una rispettiva cella di memoria che deve essere programmata a RESET, indipendentemente dal fatto che tale cella di memoria sia una cella di memoria diretta o una cella di memoria complementare.
Analogamente, durante l’intervallo temporale T2 di figura 2, in cui viene generato un impulso di SET, il segnale di programmazione SET è fornito contemporaneamente da ciascun driver di programmazione PGL[0-j] a una rispettiva cella di memoria che deve essere programmata a SET, indipendentemente dal fatto che tale cella di memoria sia una cella di memoria diretta o una cella di memoria complementare, come illustrato nelle figure 4A-4C.
La figura 4A illustra operazioni di programmazione, nell’intervallo T2, di una cella di memoria 3b complementare alla cella di memoria 3a programmata nella fase della figura 3A. Dunque, con riferimento alla figura 4A, per scrivere il dato PGIN[0]=SET nella cella di memoria 3b (cella complementare), accoppiata alla bitline principale MBLc<0> appartenente al gruppo 30 afferente al sense amplifier SA[0], i primi segnali di controllo sono DIN[0]=”0”, /DIN[0]=”1”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”.
In questo modo, solo le bitline principali complementari MBLc<0, 1, …> appartenenti al gruppo 30 vengono elettricamente collegate al driver di programmazione PGL[0] in quanto i relativi selettori sono accesi, mentre tutte le restanti bitline principali dirette MBLd<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[0] in quanto i relativi selettori sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3b da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> relative a tale cella di memoria).
Il segnale di programmazione PGIN[0]=SET può quindi fluire attraverso le bitline principale e locale a cui la cella di memoria 3b indirizzata è collegata, raggiungendo e programmando tale cella di memoria 3b indirizzata.
La figura 4B illustra operazioni di programmazione mediante il driver di programmazione PGL[1], nell’intervallo T2, di una cella di memoria diretta 3a corrispondente alla cella complementare 3b programmata nella fase di figura 3B. In altre parole, la cella 3b programmata nella fase di figura 3B contiene un dato complementare al dato previsto per la cella 3a che si programma nella fase di figura 4B. Con riferimento alla figura 4B, per scrivere il dato PGIN[1]=SET nella cella di memoria 3a, accoppiata alla bitline principale MBLd<0> appartenente al gruppo 30’ afferente al sense amplifier SA[4], i primi segnali di controllo sono DIN[1]=”1”, /DIN[1]=”0”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”.
In questo modo, solo le bitline principali dirette MBLd<0, 1, …> appartenenti al gruppo 30’ vengono elettricamente collegate al driver di programmazione PGL[1] in quanto i relativi selettori sono accesi, mentre tutte le restanti bitline principali complementari MBLc<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[1] in quanto i relativi selettori sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3a da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> relative a tale cella di memoria).
Il segnale di programmazione PGIN[1]=SET può quindi fluire attraverso le bitline principale e locale a cui la cella di memoria 3a indirizzata è collegata, raggiungendo e programmando tale cella di memoria 3a indirizzata.
La figura 4C illustra operazioni di programmazione mediante il driver di programmazione PGL[j], nell’intervallo T2, di una cella di memoria 3b che è complementare alla cella di memoria 3a programmata nella fase di figura 3C. Con riferimento alla figura 4C, per scrivere il dato PGIN[j]=SET in una cella di memoria 3b, accoppiata alla bitline principale MBLc<0> appartenente al gruppo 30” afferente al sense amplifier SA[4j], i primi segnali di controllo sono DIN[j]=”0”, /DIN[j]=”1”, e i secondi segnali di controllo sono Y[0]=”1”, Y[1]=”0”, Y[2]=”0”, Y[3]=”0”.
In questo modo, solo le bitline principali complementari MBLc<0, 1, …> appartenenti al gruppo 30” vengono elettricamente collegate al driver di programmazione PGL[j] in quanto i relativi selettori sono accesi, mentre tutte le restanti bitline principali dirette MBLd<0, 1, …> risultano disaccoppiate dal driver di programmazione PGL[j] in quanto i relativi selettori sono spenti.
Mediante decodifica di colonna, ed in modo di per sé noto, si procede quindi ad indirizzare univocamente la cella di memoria 3b da programmare (ovvero selezionando la bitline BL<> e la wordline WL<> relative a tale cella di memoria).
Il segnale di programmazione PGIN[j]=SET può quindi fluire attraverso le bitline principale e locale a cui la cella di memoria 3b indirizzata è collegata, raggiungendo e programmando tale cella di memoria 3b indirizzata.
In conclusione, procedendo come illustrato e descritto con riferimento alla figure 3A-3C e 4A-4C, la programmazione delle celle di memoria dirette e delle rispettive complementari è completata in due soli istanti temporali (T1 e T2).
Si passa quindi alla programmazione di successive celle di memoria appartenenti alla stessa parola che si sta scrivendo, secondo fasi analoghe a quelle illustrate con riferimento alle figure 3A-3C e 4A-4C, fino al completamento della scrittura della parola. Di fatto, questo significa che viene attivato il segnale Y[] successivo (es.: da Y[0]=1, Y[1]=0, Y[2]=0, Y[3]=0, si passa a Y[0]=0, Y[1]=1, Y[2]=0, Y[3]=0, e così via).
Le stesse fasi qui sopra descritte sono quindi ripetute per tutte le bitline principali dirette e complementari afferenti ad uno stesso sense amplifier SA[0, …, 4j+3], e per tutti i sense amplifier SA[] gestiti da uno stesso driver di programmazione PGL[0, …, j]. I segnali di SET e RESET generati negli intervalli temporali T2 e rispettivamente T1 sono forniti a tutti i driver di programmazione PGL[0, …, j] nei rispettivi intervalli temporali, e trasferiti a ciascuna cella di memoria da programmare sfruttando un segnale (Din[0, …, j], /Din[0, …, j]) identificativo del tipo di cella diretta o complementare e un segnale (Y[0-3]) identificativo del gruppo di bitline principali a cui tale cella di memoria da programmare è accoppiata.
Essendo il dato differenziale (se la diretta è a SET la complementare è a RESET, e viceversa) si sfrutta sempre il massimo parallelismo, perché qualunque sia il dato si avranno un numero di celle da programmare a RESET pari al numero di bit nella word, e analogamente un numero di celle da programmare a SET pari al numero di bit nella word.
Nell’intervallo T1 non viene generato alcun impulso di SET. Nell’intervallo T2 non viene generato alcun impulso di RESET.
I segnali Din[0, 1, …] ed i rispettivi negati sono generati da un controllore (non illustrato) in funzione della cella di memoria da programmare, in modo di per sé evidente al tecnico del ramo. Analogamente, anche i segnali Y[0, 1, …] sono generati in base alla cella di memoria da programmare, in modo di per sé evidente al tecnico del ramo.
In figura 5 viene mostrata una porzione di un sistema elettronico 100, secondo una ulteriore forma di realizzazione delle presente invenzione. Il sistema elettronico 100 può essere utilizzato in dispositivi elettronici, quali ad esempio: un PDA (Personal Digital Assistant); un computer portatile o fisso, eventualmente con capacità di trasferimento dati wireless; un telefono cellulare; un riproduttore di audio digitale; una foto- o video-camera; o ulteriori dispositivi in grado di elaborare, memorizzare, trasmettere e ricevere informazioni.
In dettaglio, il sistema elettronico 100 comprende: un controller 101 (ad esempio dotato di un microprocessore, un DSP, o un microcontrollore); un dispositivo di input/output 102 (ad esempio provvisto di una tastiera e un display), per immettere e visualizzare dati; il dispositivo di memoria 1 (secondo una qualsiasi delle forme di realizzazione delle figure 1A-1C); un’interfaccia wireless 104, ad esempio un’antenna, per trasmettere e ricevere dati attraverso una rete di comunicazione wireless a radiofrequenza; ed una memoria RAM 105, tutti accoppiati attraverso un bus 106. Una batteria 107 può essere utilizzata come sorgente di alimentazione elettrica nel sistema elettronico 100, che può essere inoltre dotato di una foto o videocamera 108.
Da quanto precedentemente descritto ed illustrato, sono evidenti i vantaggi che il la presente invenzione consente di ottenere.
In particolare, il tempo di programmazione (scrittura) della memoria è considerevolmente ridotto. Questo consente anche di ridurre lo stress a cui la memoria e i circuiti periferici sono sottoposti.
Risulta infine chiaro che a quanto qui descritto ed illustrato possono essere apportate modifiche e varianti senza per questo uscire dall’ambito di protezione della presente invenzione, come definito nelle rivendicazioni allegate.

Claims (14)

  1. RIVENDICAZIONI 1. Metodo di programmazione di un dispositivo di memoria a cambiamento di fase (1) di tipo differenziale, detto dispositivo di memoria a cambiamento di fase (1) comprendendo: una pluralità di celle di memoria a cambiamento di fase (3a, 3b, 6a, 6b); un primo driver di programmazione (PGL[0]) di rispettive celle di memoria a cambiamento di fase; un secondo driver di programmazione (PGL[1]) di rispettive celle di memoria a cambiamento di fase; un primo gruppo (30) di bitline principali dirette (MBLd<0, 1,…>) e rispettive bitline principali complementari (MBLc<0, 1,…>) accoppiate al primo driver di programmazione (PGL[0]) tramite rispettivi selettori diretti (4a, 5a) e complementari (4b, 5b); un secondo gruppo (30’) di bitline principali dirette (MBLd<0, 1,…>) e rispettive bitline principali complementari (MBLc<0, 1,…>) accoppiate al secondo driver di programmazione (PGL[1]) tramite rispettivi selettori diretti (4a, 5a) e complementari (4b, 5b), detta pluralità di celle di memoria a cambiamento di fase includendo prime celle di memoria dirette (3a) e complementari (3b) accoppiate alle bitline principali dirette e rispettivamente complementari del primo gruppo (30) ed afferenti al primo driver di programmazione (PGL[0]), e seconde celle di memoria dirette (3a) e complementari (3b) accoppiate alle bitline principali dirette e rispettivamente complementari del secondo gruppo (30’) ed afferenti al secondo driver di programmazione (PGL[1]); ciascuna delle prime e delle seconde celle di memoria dirette (3a) e complementari (3b) afferenti al primo driver di programmazione (PGL[0]) essendo univocamente indirizzabile mediante bitline e wordline locali, e ciascuna delle prime e delle seconde celle di memoria dirette (3a) e complementari (3b) afferenti al secondo driver di programmazione (PGL[1]) essendo univocamente indirizzabile mediante rispettive bitline (BL<>) e wordline (WL<>) locali, il metodo comprendendo le fasi di: in una prima condizione operativa associata ad un primo intervallo temporale (T1): a- per ciascuno tra il primo ed il secondo gruppo (30, 30’), attivare i selettori diretti (4a, 5a) o i selettori complementari (4b, 5b) così da collegare elettricamente ciascuna bitline principale diretta (MBLd<0, 1, …>) o, rispettivamente, complementare (MBLc<0, 1, …>) al relativo primo e secondo driver di programmazione (PGL[0], PGL[1]); b- indirizzare, tramite le bitline e wordline locali accoppiate alle prime celle di memoria afferenti al primo driver di programmazione (PGL[0]), una cella di memoria diretta o la rispettiva cella di memoria complementare, instaurando un percorso conduttivo tra il primo driver di programmazione (PGL[0]) e la prima cella di memoria indirizzata; c- indirizzare, tramite le bitline e wordline locali accoppiate alle seconde celle di memoria afferenti al secondo driver di programmazione (PGL[1]), una cella di memoria diretta o la rispettiva cella di memoria complementare, instaurando un percorso conduttivo tra il secondo driver di programmazione (PGL[1]) e la seconda cella di memoria indirizzata; d- alimentare, tramite il primo ed il secondo driver di scrittura (PGL[0], PGL[1]), una prima corrente di programmazione, di uno stesso tipo tra corrente di SET e RESET, contestualmente alla prima e seconda cella di memoria indirizzate alle fasi b- e c-; e in una seconda condizione operativa associata ad un secondo intervallo temporale (T2) diverso dal primo intervallo temporale (T1): e- per ciascuno tra il primo ed il secondo gruppo (30, 30’), attivare gli altri tra i selettori diretti (4a, 5a) o i selettori complementari (4b, 5b) attivati nella fase a-, così da collegare elettricamente ciascuna bitline principale diretta o, rispettivamente, complementare al relativo primo e secondo driver di programmazione (PGL[0], PGL[1]); f- indirizzare, tramite le bitline e wordline locali accoppiate alle prime celle di memoria afferenti al primo driver di programmazione (PGL[0]), l’altra cella di memoria diretta o complementare rispetto a quella indirizzata alla fase b-; g- indirizzare, tramite le bitline e wordline locali accoppiate alle seconde celle di memoria afferenti al secondo driver di programmazione (PGL[1]), l’altra cella di memoria diretta o complementare rispetto a quella indirizzata alla fase c-; h- alimentare, tramite il primo ed il secondo driver di programmazione (PGL[0], PGL[1]), una seconda corrente di programmazione, dell’altro tipo tra corrente di SET e RESET, contestualmente alla prima e seconda cella di memoria indirizzate alle fasi f- e g-.
  2. 2. Metodo di programmazione secondo la rivendicazione 1, in cui: se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta, generare un primo segnale di attivazione (Din[0]) dei selettori diretti (4a, 5a) afferenti al primo driver di programmazione (PGL[0]), altrimenti generare un secondo segnale di attivazione (/Din[0]) dei selettori complementari (4b, 5b) afferenti al primo driver di programmazione (PGL[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta, generare un terzo segnale di attivazione (Din[1]) dei selettori diretti (4a, 5a) afferenti al secondo driver di programmazione (PGL[1]), altrimenti generare un quarto segnale di attivazione (/Din[1]) dei selettori complementari (4b, 5b) afferenti al secondo driver di programmazione (PGL[1]); collegare o scollegare elettricamente le bitline principali dirette al/dal rispettivo primo e secondo driver di programmazione (PGL[0], PGL[1]) in funzione del valore assunto da detti primo e terzo segnale di attivazione; e collegare o scollegare elettricamente le bitline principali complementari al/dal rispettivo primo e secondo driver di programmazione (PGL[0], PGL[1]) in funzione del valore assunto da detti secondo e quarto segnale di attivazione.
  3. 3. Metodo di programmazione secondo la rivendicazione 2, in cui il primo ed il secondo segnale di attivazione (Din[0], /Din[0]) sono segnali logici binari aventi rispettivi valori che sono l’uno il negato (“negated”) dell’altro, e in cui il terzo ed il quarto segnale di attivazione (Din[1], /Din[1]) sono segnali logici binari aventi rispettivi valori che sono l’uno il negato dell’altro.
  4. 4. Metodo di programmazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detto dispositivo di memoria a cambiamento di fase (1) comprende inoltre: un terzo gruppo (32) di bitline principali dirette e rispettive bitline principali complementari accoppiate al primo driver di programmazione (PGL[0]) tramite rispettivi selettori diretti e complementari; un quarto gruppo di bitline principali dirette e rispettive bitline principali complementari accoppiate al secondo driver di programmazione (PGL[1]) tramite rispettivi selettori diretti e complementari; un primo stadio di lettura (SA[0]) accoppiato al primo gruppo (30) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del primo gruppo (30); un secondo stadio di lettura (SA[4]) accoppiato al secondo gruppo (30’) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del secondo gruppo (30’); un terzo stadio di lettura (SA[1]) accoppiato al terzo gruppo (32) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del terzo gruppo (32); un quarto stadio di lettura (SA[5]) accoppiato al quarto gruppo di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del quarto gruppo, il metodo comprendendo inoltre le fasi di: generare un primo segnale di controllo (Y[0]), che è un segnale logico binario associato al primo stadio di lettura (SA[0]); generare un secondo segnale di controllo (Y[0]), che è un segnale logico binario associato al secondo stadio di lettura (SA[4]); generare un terzo segnale di controllo (Y[1]), che è un segnale logico binario associato al terzo stadio di lettura (SA[1]); generare un quarto segnale di controllo (Y[1]), che è un segnale logico binario associato al quarto stadio di lettura (SA[5]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta afferente al primo stadio di lettura (SA[0]), accendere i selettori diretti (4a, 5a) accoppiati al primo gruppo (30) di bitline principali in funzione di un primo segnale di accensione (YMPD<0>) generato da una operazione di AND logico del primo segnale di attivazione (Din[0]) e del primo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria complementare afferente al primo stadio di lettura (SA[0]), accendere i selettori complementari (4a, 5a) accoppiati al primo gruppo (30) di bitline principali in funzione di un secondo segnale di accensione (YMPC<0>) generato da una operazione di AND logico del secondo segnale di attivazione (/Din[0]) e del primo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta afferente al terzo stadio di lettura (SA[1]), accendere i selettori diretti (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali in funzione di un terzo segnale di accensione (YMPD<1>) generato da una operazione di AND logico del primo segnale di attivazione (Din[0]) e del terzo segnale di controllo (Y[1]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria complementare afferente al terzo stadio di lettura (SA[1]), accendere i selettori complementari (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali in funzione di un quarto segnale di accensione (YMPC<1>) generato da una operazione di AND logico del secondo segnale di attivazione (/Din[0]) e del terzo segnale di controllo (Y[1]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta afferente al secondo stadio di lettura (SA[4]), accendere i selettori diretti (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali in funzione di un quinto segnale di accensione (YMPD<4>) generato da una operazione di AND logico del secondo segnale di attivazione (Din[1]) e del secondo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria complementare afferente al secondo stadio di lettura (SA[1]), accendere i selettori complementari (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali in funzione di un sesto segnale di accensione (YMPC<4>) generato da una operazione di AND logico del quarto segnale di attivazione (/Din[1]) e del secondo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta afferente al quarto stadio di lettura (SA[5]), accendere i selettori diretti (4a, 5a) accoppiati al quarto gruppo di bitline principali in funzione di un settimo segnale di accensione (YMPD<5>) generato da una operazione di AND logico del secondo segnale di attivazione (Din[1]) e del quarto segnale di controllo (Y[1]); e se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria complementare afferente al quarto stadio di lettura (SA[5]), accendere i selettori complementari (4a, 5a) accoppiati al quarto gruppo di bitline principali in funzione di un ottavo segnale di accensione (YMPC<5>) generato da una operazione di AND logico del quarto segnale di attivazione (/Din[1]) e del quarto segnale di controllo (Y[1]).
  5. 5. Metodo di programmazione secondo la rivendicazione 4, in cui detti selettori diretti e complementari (4a, 4b, 5a, 5b) accoppiati alla bitline principali dirette e complementari del primo (30), secondo (30’), terzo (32) e quarto gruppo sono p-MOS, il metodo comprendendo inoltre le fasi di: accendere i selettori diretti (4a, 5a) accoppiati al primo gruppo di bitline principali quando il primo segnale di accensione (YMPD<0>) ha valore logico “0” ed è generato da una operazione di AND logico negato del primo segnale di attivazione (Din[0]) avente valore logico “1” e del primo segnale di controllo (Y[0]) avente valore logico “1”; accendere i selettori complementari (4a, 5a) accoppiati al primo gruppo (30) di bitline principali quando il secondo segnale di accensione (YMPC<0>) ha valore logico “0” ed è generato da una operazione di AND logico negato del secondo segnale di attivazione (/Din[0]) avente valore logico “1” e del primo segnale di controllo (Y[0]) avente valore logico “1”; accendere i selettori diretti (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali quando il terzo segnale di accensione (YMPD<1>) ha valore logico “0” ed è generato da una operazione di AND logico negato del primo segnale di attivazione (Din[0]) avente valore logico “1” e del terzo segnale di controllo (Y[1]) avente valore logico “1”; accendere i selettori complementari (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali quando il quarto segnale di accensione (YMPC<1>) ha valore logico “0” ed è generato da una operazione di AND logico negato del secondo segnale di attivazione (/Din[0]) avente valore logico “1” e del terzo segnale di controllo (Y[1]) avente valore logico “1”; accendere i selettori diretti (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali quando il quinto segnale di accensione (YMPD<4>) ha valore logico “0” ed è generato da una operazione di AND logico negato del secondo segnale di attivazione (Din[1]) avente valore logico “1” e del secondo segnale di controllo (Y[0]) avente valore logico “1”; accendere i selettori complementari (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali quando il sesto segnale di accensione (YMPC<4>) ha valore logico “0” ed è generato da una operazione di AND logico negato del quarto segnale di attivazione (/Din[1]) avente valore logico “1” e del secondo segnale di controllo (Y[0]) avente valore logico “1”; accendere i selettori diretti (4a, 5a) accoppiati al quarto gruppo di bitline principali quando il settimo segnale di accensione (YMPD<5>) ha valore logico “0” ed è generato da una operazione di AND logico negato del secondo segnale di attivazione (Din[1]) avente valore logico “1” e del quarto segnale di controllo (Y[1]) avente valore logico “1”; e accendere i selettori complementari (4a, 5a) accoppiati al quarto gruppo di bitline principali quando l’ottavo segnale di accensione (YMPC<5>) ha valore logico “0” ed è generato da una operazione di AND logico negato del quarto segnale di attivazione (/Din[1]) avente valore logico “1” e del quarto segnale di controllo (Y[1]) avente valore logico “1”.
  6. 6. Metodo di programmazione secondo la rivendicazione 5, in cui: quando il primo segnale di attivazione (Din[0]) ha valore logico “1”, il secondo segnale di attivazione (/Din[0]) ha valore logico “0”, e viceversa; quando il primo segnale di controllo (Y[0]) ha valore logico “1”, il terzo segnale di controllo (Y[1]) ha valore logico “0”, e viceversa; quando il terzo segnale di attivazione (Din[1]) ha valore logico “1”, il quarto segnale di attivazione (/Din[1]) ha valore logico “0”, e viceversa; e quando il secondo segnale di controllo (Y[0]) ha valore logico “1”, il quarto segnale di controllo (Y[1]) ha valore logico “0”, e viceversa.
  7. 7. Memoria a cambiamento di fase (1) di tipo differenziale, comprendente: una pluralità di celle di memoria a cambiamento di fase (3a, 3b, 6a, 6b); un primo driver di programmazione (PGL[0]) di rispettive celle di memoria a cambiamento di fase; un secondo driver di programmazione (PGL[1]) di rispettive celle di memoria a cambiamento di fase; un primo gruppo (30) di bitline principali dirette (MBLd<0, 1,…>) e rispettive bitline principali complementari (MBLc<0, 1,…>) accoppiate al primo driver di programmazione (PGL[0]) tramite rispettivi selettori diretti (4a, 5a) e complementari (4b, 5b); un secondo gruppo (30’) di bitline principali dirette (MBLd<0, 1,…>) e rispettive bitline principali complementari (MBLc<0, 1,…>) accoppiate al secondo driver di programmazione (PGL[1]) tramite rispettivi selettori diretti (4a, 5a) e complementari (4b, 5b), detta pluralità di celle di memoria a cambiamento di fase includendo prime celle di memoria dirette (3a) e complementari (3b) accoppiate alle bitline principali dirette e rispettivamente complementari del primo gruppo (30) ed afferenti al primo driver di programmazione (PGL[0]), e seconde celle di memoria dirette (3a) e complementari (3b) accoppiate alle bitline principali dirette e rispettivamente complementari del secondo gruppo (30’) ed afferenti al secondo driver di programmazione (PGL[1]); ciascuna delle prime e delle seconde celle di memoria dirette (3a) e complementari (3b) afferenti al primo driver di programmazione (PGL[0]) essendo univocamente indirizzabile mediante bitline e wordline locali, e ciascuna delle prime e delle seconde celle di memoria dirette (3a) e complementari (3b) afferenti al secondo driver di programmazione (PGL[1]) essendo univocamente indirizzabile mediante rispettive bitline e wordline locali, in cui il dispositivo di memoria a cambiamento di fase (1) è configurato per: in una prima condizione operativa associata ad un primo intervallo temporale (T1): a- per ciascuno tra il primo ed il secondo gruppo (30, 30’), attivare i selettori diretti (4a, 5a) o i selettori complementari (4b, 5b) così da collegare elettricamente ciascuna bitline principale diretta (MBLd<0, 1, …>) o, rispettivamente, complementare (MBLc<0, 1, …>) al relativo primo e secondo driver di programmazione (PGL[0], PGL[1]); b- indirizzare, tramite le bitline e wordline locali accoppiate alle prime celle di memoria afferenti al primo driver di programmazione (PGL[0]), una cella di memoria diretta o la rispettiva cella di memoria complementare, instaurando un percorso conduttivo tra il primo driver di programmazione (PGL[0]) e la prima cella di memoria indirizzata; c- indirizzare, tramite le bitline e wordline locali accoppiate alle seconde celle di memoria afferenti al secondo driver di programmazione (PGL[1]), una cella di memoria diretta o la rispettiva cella di memoria complementare, instaurando un percorso conduttivo tra il secondo driver di programmazione (PGL[1]) e la seconda cella di memoria indirizzata; d- alimentare, tramite il primo ed il secondo driver di scrittura (PGL[0], PGL[1]), una prima corrente di programmazione, di uno stesso tipo tra corrente di SET e RESET, contestualmente alla prima e seconda cella di memoria indirizzate alle fasi b- e c-; e in una seconda condizione operativa associata ad un secondo intervallo temporale (T2) diverso dal primo intervallo temporale (T1): e- per ciascuno tra il primo ed il secondo gruppo (30, 30’), attivare gli altri tra i selettori diretti (4a, 5a) o i selettori complementari (4b, 5b) attivati nella fase a-, così da collegare elettricamente ciascuna bitline principale diretta o, rispettivamente, complementare al relativo primo e secondo driver di programmazione (PGL[0], PGL[1]); f- indirizzare, tramite le bitline e wordline locali accoppiate alle prime celle di memoria afferenti al primo driver di programmazione (PGL[0]), l’altra cella di memoria diretta o complementare rispetto a quella indirizzata alla fase b-; g- indirizzare, tramite le bitline e wordline locali accoppiate alle seconde celle di memoria afferenti al secondo driver di programmazione (PGL[1]), l’altra cella di memoria diretta o complementare rispetto a quella indirizzata alla fase c-; h- alimentare, tramite il primo ed il secondo driver di programmazione (PGL[0], PGL[1]), una seconda corrente di programmazione, dell’altro tipo tra corrente di SET e RESET, contestualmente alla prima e seconda cella di memoria indirizzate alle fasi f- e g-.
  8. 8. Dispositivo secondo la rivendicazione 7, configurato inoltre per: se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta, generare un primo segnale di attivazione (Din[0]) dei selettori diretti (4a, 5a) afferenti al primo driver di programmazione (PGL[0]), altrimenti generare un secondo segnale di attivazione (/Din[0]) dei selettori complementari (4b, 5b) afferenti al primo driver di programmazione (PGL[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta, generare un terzo segnale di attivazione (Din[1]) dei selettori diretti (4a, 5a) afferenti al secondo driver di programmazione (PGL[1]), altrimenti generare un quarto segnale di attivazione (/Din[1]) dei selettori complementari (4b, 5b) afferenti al secondo driver di programmazione (PGL[1]); collegare o scollegare elettricamente le bitline principali dirette al/dal rispettivo primo e secondo driver di programmazione (PGL[0], PGL[1]) in funzione del valore assunto da detti primo e terzo segnale di attivazione; e collegare o scollegare elettricamente le bitline principali complementari al/dal rispettivo primo e secondo driver di programmazione (PGL[0], PGL[1]) in funzione del valore assunto da detti secondo e quarto segnale di attivazione.
  9. 9. Dispositivo secondo la rivendicazione 8, in cui il primo ed il secondo segnale di attivazione (Din[0], /Din[0]) sono segnali logici binari aventi rispettivi valori che sono l’uno il negato (“negated”) dell’altro, e in cui il terzo ed il quarto segnale di attivazione (Din[1], /Din[1]) sono segnali logici binari aventi rispettivi valori che sono l’uno il negato dell’altro.
  10. 10. Dispositivo secondo una qualsiasi delle rivendicazioni 7-9, comprendente inoltre: un terzo gruppo (32) di bitline principali dirette e rispettive bitline principali complementari accoppiate al primo driver di programmazione (PGL[0]) tramite rispettivi selettori diretti e complementari; un quarto gruppo di bitline principali dirette e rispettive bitline principali complementari accoppiate al secondo driver di programmazione (PGL[1]) tramite rispettivi selettori diretti e complementari; un primo stadio di lettura (SA[0]) accoppiato al primo gruppo (30) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del primo gruppo (30); un secondo stadio di lettura (SA[4]) accoppiato al secondo gruppo (30’) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del secondo gruppo (30’); un terzo stadio di lettura (SA[1]) accoppiato al terzo gruppo (32) di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del terzo gruppo (32); un quarto stadio di lettura (SA[5]) accoppiato al quarto gruppo di bitline principali dirette e rispettive bitline principali complementari, configurato per eseguire una lettura differenziale di un dato logico memorizzato in una cella di memoria diretta e nella rispettiva cella di memoria complementare accoppiate alle bitline principali del quarto gruppo, detto dispositivo di memoria a cambiamento di fase (1) essendo inoltre configurato per: generare un primo segnale di controllo (Y[0]), che è un segnale logico binario associato al primo stadio di lettura (SA[0]); generare un secondo segnale di controllo (Y[0]), che è un segnale logico binario associato al secondo stadio di lettura (SA[4]); generare un terzo segnale di controllo (Y[1]), che è un segnale logico binario associato al terzo stadio di lettura (SA[1]); generare un quarto segnale di controllo (Y[51]), che è un segnale logico binario associato al quarto stadio di lettura (SA[5]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta afferente al primo stadio di lettura (SA[0]), accendere i selettori diretti (4a, 5a) accoppiati al primo gruppo (30) di bitline principali in funzione di un primo segnale di accensione (YMPD<0>) generato da una operazione di AND logico del primo segnale di attivazione (Din[0]) e del primo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria complementare afferente al primo stadio di lettura (SA[0]), accendere i selettori complementari (4a, 5a) accoppiati al primo gruppo (30) di bitline principali in funzione di un secondo segnale di accensione (YMPC<0>) generato da una operazione di AND logico del secondo segnale di attivazione (/Din[0]) e del primo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria diretta afferente al terzo stadio di lettura (SA[1]), accendere i selettori diretti (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali in funzione di un terzo segnale di accensione (YMPD<1>) generato da una operazione di AND logico del primo segnale di attivazione (Din[0]) e del terzo segnale di controllo (Y[1]); se la cella di memoria indirizzata alla fase b- o alla fase f- è una cella di memoria complementare afferente al terzo stadio di lettura (SA[1]), accendere i selettori complementari (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali in funzione di un quarto segnale di accensione (YMPC<1>) generato da una operazione di AND logico del secondo segnale di attivazione (/Din[0]) e del terzo segnale di controllo (Y[1]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta afferente al secondo stadio di lettura (SA[4]), accendere i selettori diretti (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali in funzione di un quinto segnale di accensione (YMPD<4>) generato da una operazione di AND logico del secondo segnale di attivazione (Din[1]) e del secondo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria complementare afferente al secondo stadio di lettura (SA[1]), accendere i selettori complementari (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali in funzione di un sesto segnale di accensione (YMPC<4>) generato da una operazione di AND logico del quarto segnale di attivazione (/Din[1]) e del secondo segnale di controllo (Y[0]); se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria diretta afferente al quarto stadio di lettura (SA[5]), accendere i selettori diretti (4a, 5a) accoppiati al quarto gruppo di bitline principali in funzione di un settimo segnale di accensione (YMPD<5>) generato da una operazione di AND logico del secondo segnale di attivazione (Din[1]) e del quarto segnale di controllo (Y[1]); e se la cella di memoria indirizzata alla fase c- o alla fase g- è una cella di memoria complementare afferente al quarto stadio di lettura (SA[5]), accendere i selettori complementari (4a, 5a) accoppiati al quarto gruppo di bitline principali in funzione di un ottavo segnale di accensione (YMPC<5>) generato da una operazione di AND logico del quarto segnale di attivazione (/Din[1]) e del quarto segnale di controllo (Y[1]).
  11. 11. Dispositivo secondo la rivendicazione 10, in cui detti selettori diretti e complementari (4a, 4b, 5a, 5b) accoppiati alla bitline principali dirette e complementari del primo (30), secondo (30’), terzo (32) e quarto gruppo sono p-MOS, detto dispositivo di memoria a cambiamento di fase (1) comprendendo inoltre: una prima porta logica NAND, configurata per ricevere in ingresso il primo segnale di attivazione (Din[0]) e il primo segnale di controllo (Y[0]), e per generare in uscita il primo segnale di accensione (YMPD<0>), così da accendere i selettori diretti (4a, 5a) accoppiati al primo gruppo di bitline principali quando il primo segnale di attivazione (Din[0]) ha valore logico “1” e il primo segnale di controllo (Y[0]) ha valore logico “1”; una seconda porta logica NAND, configurata per ricevere in ingresso il secondo segnale di attivazione (/Din[0]) e il primo segnale di controllo (Y[0]), e per generare in uscita il secondo segnale di accensione (YMPC<0>), così da accendere i selettori complementari (4a, 5a) accoppiati al primo gruppo (30) di bitline principali quando il secondo segnale di attivazione (/Din[0]) ha valore logico “1” e il primo segnale di controllo (Y[0]) ha valore logico “1”; una terza porta logica NAND, configurata per ricevere in ingresso il primo segnale di attivazione (Din[0]) e il terzo segnale di controllo (Y[1]), e generare in uscita il terzo segnale di accensione (YMPD<1>), così da accendere i selettori diretti (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali quando il primo segnale di attivazione (Din[0]) ha valore logico “1” e il terzo segnale di controllo (Y[1]) ha valore logico “1”; una quarta porta logica NAND, configurata per ricevere in ingresso il secondo segnale di attivazione (/Din[0]) e il terzo segnale di controllo (Y[1]), e generare in uscita il quarto segnale di accensione (YMPC<1>), così da accendere i selettori complementari (4a, 5a) accoppiati al terzo gruppo (32) di bitline principali quando il secondo segnale di attivazione (/Din[0]) ha valore logico “1” e il terzo segnale di controllo (Y[1]) ha valore logico “1”; una quinta porta logica NAND, configurata per ricevere in ingresso il secondo segnale di attivazione (Din[1]) e il secondo segnale di controllo (Y[0]), e generare in uscita il quinto segnale di accensione (YMPD<4>), così da accendere i selettori diretti (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali quando il secondo segnale di attivazione (Din[1]) ha valore logico “1” e il secondo segnale di controllo (Y[0]) ha valore logico “1”; una sesta porta logica NAND, configurata per ricevere in ingresso il quarto segnale di attivazione (/Din[1]) e il secondo segnale di controllo (Y[0]), e generare in uscita il sesto segnale di accensione (YMPC<4>), così da accendere i selettori complementari (4a, 5a) accoppiati al secondo gruppo (30’) di bitline principali quando il quarto segnale di attivazione (/Din[1]) ha valore logico “1” e il secondo segnale di controllo (Y[0]) ha valore logico “1”; una settima porta logica NAND, configurata per ricevere in ingresso il secondo segnale di attivazione (Din[1]) e il quarto segnale di controllo (Y[1]), e generare in uscita il settimo segnale di accensione (YMPD<5>), così da accendere i selettori diretti (4a, 5a) accoppiati al quarto gruppo di bitline principali quando il secondo segnale di attivazione (Din[1]) ha valore logico “1” e il quarto segnale di controllo (Y[1]) ha valore logico “1”; e una ottava porta logica NAND, configurata per ricevere in ingresso il quarto segnale di attivazione (/Din[1]) e il quarto segnale di controllo (Y[1]), e generare in uscita l’ottavo segnale di accensione (YMPC<5>), così da accendere i selettori complementari (4a, 5a) accoppiati al quarto gruppo di bitline principali quando il quarto segnale di attivazione (/Din[1]) ha valore logico “1” e il quarto segnale di controllo (Y[1]) ha valore logico “1”.
  12. 12. Dispositivo secondo la rivendicazione 11, in cui: quando il primo segnale di attivazione (Din[0]) ha valore logico “1”, il secondo segnale di attivazione (/Din[0]) ha valore logico “0”, e viceversa; quando il primo segnale di controllo (Y[0]) ha valore logico “1”, il terzo segnale di controllo (Y[1]) ha valore logico “0”, e viceversa; quando il terzo segnale di attivazione (Din[1]) ha valore logico “1”, il quarto segnale di attivazione (/Din[1]) ha valore logico “0”, e viceversa; e quando il secondo segnale di controllo (Y[1]) ha valore logico “1”, il quarto segnale di controllo (Y[1]) ha valore logico “0”, e viceversa.
  13. 13. Sistema elettronico (100), comprendente un dispositivo di memoria a cambiamento di fase (1) secondo una qualsiasi delle rivendicazioni 7-12.
  14. 14. Sistema elettronico secondo la rivendicazione 13, scelto tra: un PDA (Personal Digital Assistant); un computer portatile; un telefono cellulare; uno smartphone; un tablet; un riproduttore di audio digitale; una foto- o video-camera.
IT102019000019976A 2019-10-29 2019-10-29 Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico IT201900019976A1 (it)

Priority Applications (4)

Application Number Priority Date Filing Date Title
IT102019000019976A IT201900019976A1 (it) 2019-10-29 2019-10-29 Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico
EP20202266.1A EP3817001B1 (en) 2019-10-29 2020-10-16 Method for programming a phase-change memory device of differential type, phase-change memory device, and electronic system
US17/072,887 US11355191B2 (en) 2019-10-29 2020-10-16 Method for programming a phase-change memory device of differential type, phase-change memory device, and electronic system
CN202011173740.7A CN112750484A (zh) 2019-10-29 2020-10-28 相变存储器设备编程的方法、相变存储器设备和电子系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000019976A IT201900019976A1 (it) 2019-10-29 2019-10-29 Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico

Publications (1)

Publication Number Publication Date
IT201900019976A1 true IT201900019976A1 (it) 2021-04-29

Family

ID=69630571

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000019976A IT201900019976A1 (it) 2019-10-29 2019-10-29 Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico

Country Status (4)

Country Link
US (1) US11355191B2 (it)
EP (1) EP3817001B1 (it)
CN (1) CN112750484A (it)
IT (1) IT201900019976A1 (it)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067289A1 (en) * 2008-09-12 2010-03-18 Elpida Menory, Inc. Semiconductor device
US20120039132A1 (en) * 2010-08-11 2012-02-16 Samsung Electronics Co., Ltd. Memory device, systems and devices including a memory device, methods of operating a memory device, and/or methods of operating systems and devices including a memory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154296B1 (ko) * 2012-12-18 2020-09-14 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치
KR20150099092A (ko) * 2014-02-21 2015-08-31 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067289A1 (en) * 2008-09-12 2010-03-18 Elpida Menory, Inc. Semiconductor device
US20120039132A1 (en) * 2010-08-11 2012-02-16 Samsung Electronics Co., Ltd. Memory device, systems and devices including a memory device, methods of operating a memory device, and/or methods of operating systems and devices including a memory device

Also Published As

Publication number Publication date
EP3817001A1 (en) 2021-05-05
US11355191B2 (en) 2022-06-07
EP3817001B1 (en) 2023-02-15
US20210125668A1 (en) 2021-04-29
CN112750484A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
TWI480873B (zh) 非揮發性半導體記憶體裝置
JP5607870B2 (ja) 電流センス回路及びこれを備えた半導体記憶装置
US7787316B2 (en) Semiconductor memory device and write control method thereof
KR100882125B1 (ko) 상 변화 메모리 장치 및 그 동작방법
ITTO20080645A1 (it) Decodificatore di riga per dispositivi di memoria non volatili, in particolare del tipo a cambiamento di fase
JP2011204302A (ja) 半導体記憶装置
US20190214079A1 (en) Device for switching between different reading modes of a non-volatile memory and method for reading a non-volatile memory
ITTO20120192A1 (it) Architettura e metodo di decodifica per dispositivi di memoria non volatile a cambiamento di fase
ITTO20080647A1 (it) Decodificatore di colonna per dispositivi di memoria non volatili, in particolare del tipo a cambiamento di fase
IT201800000555A1 (it) Architettura di decodifica di riga per un dispositivo di memoria non volatile a cambiamento di fase e relativo metodo di decodifica di riga
KR20200009460A (ko) 저항 변화 메모리 장치 및 그것의 구동 방법
US10186317B2 (en) Phase change memory device and method of operation
JP5518441B2 (ja) 相変化メモリデバイスの低電力アクセス方法
CN110021324B (zh) 可变电阻存储器件
US11756614B2 (en) Phase change memory device, system including the memory device, and method for operating the memory device
US8036057B2 (en) Semiconductor memory device and control method thereof
US11049561B2 (en) Method for programming a phase-change memory device of differential type, memory device, and electronic system
IT201900019976A1 (it) Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico
US7710790B2 (en) Semiconductor memory device and write control method thereof
US20180096727A1 (en) Address Decoder for a Non-Volatile Memory Array Using MOS Selection Transistors
JP2014099240A (ja) 半導体記憶装置